<SEC-DOCUMENT>0000851205-20-000002.txt : 20200213
<SEC-HEADER>0000851205-20-000002.hdr.sgml : 20200213
<ACCEPTANCE-DATETIME>20200213160818
ACCESSION NUMBER:		0000851205-20-000002
CONFORMED SUBMISSION TYPE:	10-K
PUBLIC DOCUMENT COUNT:		147
CONFORMED PERIOD OF REPORT:	20191231
FILED AS OF DATE:		20200213
DATE AS OF CHANGE:		20200213

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

	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-20191231x10xk.htm
<DESCRIPTION>10-K
<TEXT>
<XBRL>
<?xml version="1.0" encoding="UTF-8"?>
<!--XBRL Document Created with Wdesk from Workiva-->
<!--p:7AB4B7B5488659EEAB006FDF85F5DD8D,x:6a8dd407a65d41ab86332cb6ec06a9a5-->
<!-- Document created using Wdesk  -->
<!-- Copyright 2020 Workiva -->
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:fs-bd="http://fasb.org/dis/fs-bd/2018-01-31" xmlns:con="http://fasb.org/dis/con/2018-01-31" xmlns:nt="http://fasb.org/dis/nt/2018-01-31" xmlns:dr="http://fasb.org/dis/dr/2018-01-31" xmlns:scf-indira="http://fasb.org/stm/scf-indira/2018-01-31" xmlns:ei="http://fasb.org/dis/ei/2018-01-31" xmlns:sic-std="http://xbrl.sec.gov/sic-std/2011-01-31" xmlns:invco="http://fasb.org/dis/invco/2018-01-31" xmlns:soi="http://fasb.org/stm/soi/2018-01-31" xmlns:stpr-std="http://xbrl.sec.gov/stpr-std-std-std/2018-01-31" xmlns:ides="http://fasb.org/dis/ides/2018-01-31" xmlns:currency="http://xbrl.sec.gov/currency/2017-01-31" xmlns:rpd="http://fasb.org/dis/rpd/2018-01-31" xmlns:crcgen="http://fasb.org/dis/crcgen/2018-01-31" xmlns:stpr-all="http://xbrl.sec.gov/stpr-all-all-all/2018-01-31" xmlns:ni="http://fasb.org/dis/ni/2018-01-31" xmlns:country-ent-std="http://xbrl.sec.gov/country-ent-std/2017-01-31" xmlns:othliab="http://fasb.org/dis/othliab/2018-01-31" xmlns:srt-all="http://fasb.org/srt-all/2018-01-31" xmlns:rd="http://fasb.org/dis/rd/2018-01-31" xmlns:country="http://xbrl.sec.gov/country/2017-01-31" xmlns:debt="http://fasb.org/dis/debt/2018-01-31" xmlns:naics="http://xbrl.sec.gov/naics/2017-01-31" xmlns:exch-std="http://xbrl.sec.gov/exch-std/2018-01-31" xmlns:sec-vq="http://fasb.org/dis/sec-vq/2018-01-31" xmlns:ocpfs="http://fasb.org/dis/ocpfs/2018-01-31" xmlns:naics-ent-std="http://xbrl.sec.gov/naics-ent-std/2017-01-31" xmlns:aro="http://fasb.org/dis/aro/2018-01-31" xmlns:stpr-ent-all="http://xbrl.sec.gov/stpr-ent-all-all-all/2018-01-31" xmlns:stpr-ent-std="http://xbrl.sec.gov/stpr-ent-std-std-std/2018-01-31" xmlns:equity="http://fasb.org/dis/equity/2018-01-31" xmlns:ero="http://fasb.org/dis/ero/2018-01-31" xmlns:sec-reins="http://fasb.org/dis/sec-reins/2018-01-31" xmlns:fs-fhlb="http://fasb.org/dis/fs-fhlb/2018-01-31" xmlns:leas="http://fasb.org/dis/leas/2018-01-31" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:dei-ent-all="http://xbrl.sec.gov/dei-ent-all/2019-01-31" xmlns:iso4217="http://www.xbrl.org/2003/iso4217" xmlns:rlnro="http://fasb.org/dis/rlnro/2018-01-31" xmlns:deprecated="http://www.xbrl.org/2009/arcrole/deprecated" xmlns:naics-all="http://xbrl.sec.gov/naics-all/2017-01-31" xmlns:sfp-clreo="http://fasb.org/stm/sfp-clreo/2018-01-31" xmlns:crcrb="http://fasb.org/dis/crcrb/2018-01-31" xmlns:soi-reit="http://fasb.org/stm/soi-reit/2018-01-31" xmlns:tin-part="http://fasb.org/tin-part/2018-01-31" xmlns:naics-std="http://xbrl.sec.gov/naics-std/2017-01-31" xmlns:scf-inv="http://fasb.org/stm/scf-inv/2018-01-31" xmlns:schedoi-iiaa="http://fasb.org/dis/schedoi-iiaa/2018-01-31" xmlns:deprecated1="http://www.xbrl.org/2009/role/deprecated" xmlns:inv="http://fasb.org/dis/inv/2018-01-31" xmlns:currency-all="http://xbrl.sec.gov/currency-all/2017-01-31" xmlns:acec="http://fasb.org/dis/acec/2018-01-31" xmlns:us-gaap-entryPoint-all="http://fasb.org/us-gaap-entryPoint-all/2018-01-31" xmlns:schedoi-sumhold="http://fasb.org/dis/schedoi-sumhold/2018-01-31" xmlns:eui="http://fasb.org/dis/eui/2018-01-31" xmlns:fs-bt="http://fasb.org/dis/fs-bt/2018-01-31" xmlns:schedoi-hold="http://fasb.org/dis/schedoi-hold/2018-01-31" xmlns:ix="http://www.xbrl.org/2013/inlineXBRL" xmlns:scf-indir="http://fasb.org/stm/scf-indir/2018-01-31" xmlns:us-gaap-ent-std="http://fasb.org/us-gaap-ent-std/2018-01-31" xmlns:soi-re="http://fasb.org/stm/soi-re/2018-01-31" xmlns:sfp-cls="http://fasb.org/stm/sfp-cls/2018-01-31" xmlns:dei-all="http://xbrl.sec.gov/dei-all/2019-01-31" xmlns:currency-ent-all="http://xbrl.sec.gov/currency-ent-all/2017-01-31" xmlns:currency-std="http://xbrl.sec.gov/currency-std/2017-01-31" xmlns:invest-all="http://xbrl.sec.gov/invest-all/2013-01-31" xmlns:reorg="http://fasb.org/dis/reorg/2018-01-31" xmlns:sec-mort="http://fasb.org/dis/sec-mort/2018-01-31" xmlns:ts="http://fasb.org/dis/ts/2018-01-31" xmlns:srt-roles="http://fasb.org/srt-roles/2018-01-31" xmlns:fs-mort="http://fasb.org/dis/fs-mort/2018-01-31" xmlns:inctax="http://fasb.org/dis/inctax/2018-01-31" xmlns:country-ent-all="http://xbrl.sec.gov/country-ent-all/2017-01-31" xmlns:foct="http://fasb.org/dis/foct/2018-01-31" xmlns:dccpoa="http://fasb.org/dis/dccpoa/2018-01-31" xmlns:ap="http://fasb.org/dis/ap/2018-01-31" xmlns:ctbl="http://fasb.org/dis/ctbl/2018-01-31" xmlns:sec-suppc="http://fasb.org/dis/sec-suppc/2018-01-31" xmlns:num="http://www.xbrl.org/dtr/type/numeric" xmlns:scf-sbo="http://fasb.org/stm/scf-sbo/2018-01-31" xmlns:oi="http://fasb.org/dis/oi/2018-01-31" xmlns:invest-std="http://xbrl.sec.gov/invest-std/2013-01-31" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:us-roles="http://fasb.org/us-roles/2018-01-31" xmlns:sic-ent-all="http://xbrl.sec.gov/sic-ent-all/2011-01-31" xmlns:srt-std="http://fasb.org/srt-std/2018-01-31" xmlns:invest-ent-all="http://xbrl.sec.gov/invest-ent-all/2013-01-31" xmlns:cce="http://fasb.org/dis/cce/2018-01-31" xmlns:edco="http://fasb.org/dis/edco/2018-01-31" xmlns:sfp-dbo="http://fasb.org/stm/sfp-dbo/2018-01-31" xmlns:soi-sbi="http://fasb.org/stm/soi-sbi/2018-01-31" xmlns:pay="http://fasb.org/dis/pay/2018-01-31" xmlns:exch-ent-all="http://xbrl.sec.gov/exch-ent-all/2018-01-31" xmlns:dei="http://xbrl.sec.gov/dei/2019-01-31" xmlns:sec-supins="http://fasb.org/dis/sec-supins/2018-01-31" xmlns:com="http://fasb.org/stm/com/2018-01-31" xmlns:link="http://www.xbrl.org/2003/linkbase" xmlns:re="http://fasb.org/dis/re/2018-01-31" xmlns:srt-types="http://fasb.org/srt-types/2018-01-31" xmlns:scf-dir="http://fasb.org/stm/scf-dir/2018-01-31" xmlns:diha="http://fasb.org/dis/diha/2018-01-31" xmlns:us-gaap="http://fasb.org/us-gaap/2018-01-31" xmlns:bsoff="http://fasb.org/dis/bsoff/2018-01-31" xmlns:dei-ent-std="http://xbrl.sec.gov/dei-ent-std/2019-01-31" xmlns:scf-sd="http://fasb.org/stm/scf-sd/2018-01-31" xmlns:ppe="http://fasb.org/dis/ppe/2018-01-31" xmlns:sfp-ibo="http://fasb.org/stm/sfp-ibo/2018-01-31" xmlns:sfp-ucreo="http://fasb.org/stm/sfp-ucreo/2018-01-31" xmlns:lea="http://fasb.org/dis/lea/2018-01-31" xmlns:scf-re="http://fasb.org/stm/scf-re/2018-01-31" xmlns:schedoi-fednote="http://fasb.org/dis/schedoi-fednote/2018-01-31" xmlns:sec-sum="http://fasb.org/dis/sec-sum/2018-01-31" xmlns:sr="http://fasb.org/dis/sr/2018-01-31" xmlns:xbrli="http://www.xbrl.org/2003/instance" xmlns:sfp-sbo="http://fasb.org/stm/sfp-sbo/2018-01-31" xmlns:ir="http://fasb.org/dis/ir/2018-01-31" xmlns:srt="http://fasb.org/srt/2018-01-31" xmlns:nonnum="http://www.xbrl.org/dtr/type/non-numeric" xmlns:eps="http://fasb.org/dis/eps/2018-01-31" xmlns:reference="http://www.xbrl.org/2009/role/reference" xmlns:scf-dbo="http://fasb.org/stm/scf-dbo/2018-01-31" xmlns:soi-int="http://fasb.org/stm/soi-int/2018-01-31" xmlns:country-std="http://xbrl.sec.gov/country-std/2017-01-31" xmlns:net="http://www.xbrl.org/2009/role/net" xmlns:exch-all="http://xbrl.sec.gov/exch-all/2018-01-31" xmlns:naics-ent-all="http://xbrl.sec.gov/naics-ent-all/2017-01-31" xmlns:ref="http://www.xbrl.org/2006/ref" xmlns:soi-ins="http://fasb.org/stm/soi-ins/2018-01-31" xmlns:us-types="http://fasb.org/us-types/2018-01-31" xmlns:iago="http://fasb.org/dis/iago/2018-01-31" xmlns:schedoi-otsh="http://fasb.org/dis/schedoi-otsh/2018-01-31" xmlns:cc="http://fasb.org/dis/cc/2018-01-31" xmlns:dei-std="http://xbrl.sec.gov/dei-std/2019-01-31" xmlns:emjv="http://fasb.org/dis/emjv/2018-01-31" xmlns:hco="http://fasb.org/dis/hco/2018-01-31" xmlns:us-gaap-all="http://fasb.org/us-gaap-all/2018-01-31" xmlns:us-arcroles="http://fasb.org/us-arcroles/2018-01-31" xmlns:ru="http://fasb.org/dis/ru/2018-01-31" xmlns:soi-indira="http://fasb.org/stm/soi-indira/2018-01-31" xmlns:fs-interest="http://fasb.org/dis/fs-interest/2018-01-31" xmlns:cgnx="http://cognex.com/20191231" xmlns:rcc="http://fasb.org/dis/rcc/2018-01-31" xmlns:schedoi-shorthold="http://fasb.org/dis/schedoi-shorthold/2018-01-31" xmlns:schedoi-oocw="http://fasb.org/dis/schedoi-oocw/2018-01-31" xmlns:invest="http://xbrl.sec.gov/invest/2013-01-31" xmlns:te="http://fasb.org/dis/te/2018-01-31" xmlns:crcsbp="http://fasb.org/dis/crcsbp/2018-01-31" xmlns:country-all="http://xbrl.sec.gov/country-all/2017-01-31" xmlns:regop="http://fasb.org/dis/regop/2018-01-31" xmlns:currency-ent-std="http://xbrl.sec.gov/currency-ent-std/2017-01-31" xmlns:fs-ins="http://fasb.org/dis/fs-ins/2018-01-31" xmlns:spc="http://fasb.org/stm/spc/2018-01-31" xmlns:soi-egm="http://fasb.org/stm/soi-egm/2018-01-31" xmlns:ixt-sec="http://www.sec.gov/inlineXBRL/transformation/2015-08-31" xmlns:fifvd="http://fasb.org/dis/fifvd/2018-01-31" xmlns:sic-ent-std="http://xbrl.sec.gov/sic-ent-std/2011-01-31" xmlns:ixt="http://www.xbrl.org/inlineXBRL/transformation/2015-02-26" xmlns:invest-ent-std="http://xbrl.sec.gov/invest-ent-std/2013-01-31" xmlns:bc="http://fasb.org/dis/bc/2018-01-31" xmlns:soc="http://fasb.org/stm/soc/2018-01-31" xmlns:sec-re="http://fasb.org/dis/sec-re/2018-01-31" xmlns:stpr="http://xbrl.sec.gov/stpr/2018-01-31" xmlns:sic="http://xbrl.sec.gov/sic/2011-01-31" xmlns:us-gaap-std="http://fasb.org/us-gaap-std/2018-01-31" xmlns:xbrldi="http://xbrl.org/2006/xbrldi" xmlns:codification-part="http://fasb.org/codification-part/2018-01-31" xmlns:otherexp="http://fasb.org/dis/otherexp/2018-01-31" xmlns:exch-ent-std="http://xbrl.sec.gov/exch-ent-std/2018-01-31" xmlns:crcpb="http://fasb.org/dis/crcpb/2018-01-31" xmlns:sec-cndfir="http://fasb.org/dis/sec-cndfir/2018-01-31" xmlns:sic-all="http://xbrl.sec.gov/sic-all/2011-01-31" xmlns:xl="http://www.xbrl.org/2003/XLink" xmlns:disops="http://fasb.org/dis/disops/2018-01-31" xmlns:iaoi="http://fasb.org/dis/iaoi/2018-01-31" xmlns:sheci="http://fasb.org/stm/sheci/2018-01-31" xmlns:se="http://fasb.org/dis/se/2018-01-31" xmlns:guar="http://fasb.org/dis/guar/2018-01-31" xmlns:negated="http://www.xbrl.org/2009/role/negated" xmlns:exch="http://xbrl.sec.gov/exch/2018-01-31" xmlns:xbrldt="http://xbrl.org/2005/xbrldt">
	<head>
		<meta http-equiv="Content-Type" content="text/html" />
		<title>Document</title>
	</head>
	<body><div style="font-family:Times New Roman;font-size:10pt;">
<div style="display:none"><ix:header><ix:hidden><ix:nonFraction decimals="0" unitRef="usd" contextRef="FI2016Q4" name="cgnx:EmployeeServiceShareBasedCompensationRecognizedPeriodCostsCapitalizedAmount" id="Fact-DCF914C7DDEFDA9E0DA28095A1980C44-wk-Fact-DCF914C7DDEFDA9E0DA28095A1980C44">0</ix:nonFraction><ix:nonFraction decimals="0" unitRef="usd" contextRef="FI2017Q4" name="cgnx:EmployeeServiceShareBasedCompensationRecognizedPeriodCostsCapitalizedAmount" id="Fact-6586C2490B5E510D63EA8095A198FE5B-wk-Fact-6586C2490B5E510D63EA8095A198FE5B">0</ix:nonFraction><ix:nonFraction decimals="0" unitRef="usd" contextRef="FI2019Q4" name="cgnx:EmployeeServiceShareBasedCompensationRecognizedPeriodCostsCapitalizedAmount" id="Fact-E9FB67B870B8F6561CB78095A197214D-wk-Fact-E9FB67B870B8F6561CB78095A197214D">0</ix:nonFraction><ix:nonNumeric contextRef="FD2019Q4YTD" name="cgnx:OpenTaxYearStateAuthorities" id="Fact-40DC01ABBAE25D70AE1C8095A19821AE-wk-Fact-40DC01ABBAE25D70AE1C8095A19821AE">2013 through 2016</ix:nonNumeric><ix:nonNumeric contextRef="FD2019Q4YTD" name="cgnx:OpentaxyearUnitedStatesInternalRevenueService" id="Fact-83878A72AF255A707CD28095A17CDAD0-wk-Fact-83878A72AF255A707CD28095A17CDAD0">2013 through 2016</ix:nonNumeric><ix:nonNumeric contextRef="FD2019Q4YTD" name="cgnx:Opentaxyearvarioustaxingauthorities" id="Fact-1F0114345B99F552EC008095A17CD631-wk-Fact-1F0114345B99F552EC008095A17CD631">2012 through 2016</ix:nonNumeric><ix:nonFraction decimals="INF" unitRef="usd" contextRef="FD2017Q4YTD_us-gaap_FairValueByMeasurementFrequencyAxis_us-gaap_FairValueMeasurementsRecurringMember" name="cgnx:OtherThanTemporaryImpairmentLossesInvestmentsPortionRecognizedInEarningsNetnoncurrent" id="Fact-B7A949BFA6D813B3C1598095A183DA79-wk-Fact-B7A949BFA6D813B3C1598095A183DA79">0</ix:nonFraction><ix:nonFraction decimals="INF" unitRef="usd" contextRef="FD2018Q4YTD_us-gaap_FairValueByMeasurementFrequencyAxis_us-gaap_FairValueMeasurementsRecurringMember" name="cgnx:OtherThanTemporaryImpairmentLossesInvestmentsPortionRecognizedInEarningsNetnoncurrent" id="Fact-68422F0B77726C84B7488095A183ADF8-wk-Fact-68422F0B77726C84B7488095A183ADF8">0</ix:nonFraction><ix:nonFraction decimals="INF" unitRef="usd" contextRef="FD2019Q4YTD_us-gaap_FairValueByMeasurementFrequencyAxis_us-gaap_FairValueMeasurementsRecurringMember" name="cgnx:OtherThanTemporaryImpairmentLossesInvestmentsPortionRecognizedInEarningsNetnoncurrent" id="Fact-CBA3D352AE855B5260C08095A183C489-wk-Fact-CBA3D352AE855B5260C08095A183C489">0</ix:nonFraction><ix:nonNumeric contextRef="FD2019Q4YTD_srt_RangeAxis_srt_MinimumMember" name="cgnx:ProductWarrantyPeriod" id="Fact-35863965D3B8EF618D5C84AA413A92A5-wk-Fact-35863965D3B8EF618D5C84AA413A92A5">P1Y</ix:nonNumeric><ix:nonNumeric contextRef="FD2019Q4YTD" name="cgnx:Stateresearchandexperimentationtaxcarryforwards" id="Fact-9A677E320136186085158095A1732F3A-wk-Fact-9A677E320136186085158095A1732F3A">2014 through 2016</ix:nonNumeric><ix:nonNumeric contextRef="FD2018Q4YTD" name="cgnx:TaxYearsCoveredThroughAdvancedPricingAgreement" id="Fact-B3747057CCD394FE95E48095A17C5CCF-wk-Fact-B3747057CCD394FE95E48095A17C5CCF">2006 through 2011</ix:nonNumeric><ix:nonNumeric contextRef="FD2019Q4YTD" name="cgnx:TaxyearsforAPAagreement" id="Fact-18E11B55A74D0581EE218095A1721184-wk-Fact-18E11B55A74D0581EE218095A1721184">Between 2014 and 2018</ix:nonNumeric><ix:nonNumeric contextRef="FD2019Q4YTD" name="dei:AmendmentFlag" id="Fact-5A83E5C16441A9CB6D7C8095A1717EE2-wk-Fact-5A83E5C16441A9CB6D7C8095A1717EE2" format="ixt:booleanfalse">false</ix:nonNumeric><ix:nonNumeric contextRef="FD2019Q4YTD" name="dei:CurrentFiscalYearEndDate" id="Fact-E53CA55F06C697B6E6CD8095A184938A-wk-Fact-E53CA55F06C697B6E6CD8095A184938A">--12-31</ix:nonNumeric><ix:nonNumeric contextRef="FD2019Q4YTD" name="dei:DocumentFiscalPeriodFocus" id="Fact-3CFFCC6ED54125E9682A8095A185A5BD-wk-Fact-3CFFCC6ED54125E9682A8095A185A5BD">FY</ix:nonNumeric><ix:nonNumeric contextRef="FD2019Q4YTD" name="dei:DocumentFiscalYearFocus" id="Fact-3A734CCF3B97ADD44F8F8095A1715C9C-wk-Fact-3A734CCF3B97ADD44F8F8095A1715C9C">2019</ix:nonNumeric><ix:nonNumeric contextRef="FD2019Q4YTD" name="dei:EntityCentralIndexKey" id="Fact-8883400E493F149E22138095A172D8FB-wk-Fact-8883400E493F149E22138095A172D8FB">0000851205</ix:nonNumeric><ix:nonNumeric contextRef="D2017Q2Apr12-Apr12_srt_RangeAxis_srt_MinimumMember_us-gaap_BusinessAcquisitionAxis_cgnx_SualabCo.Ltd.Member_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_NoncompeteAgreementsMember" name="us-gaap:AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife" id="Fact-0A42C5D89B6AF743CA3DFD89F8C8D48E-wk-Fact-0A42C5D89B6AF743CA3DFD89F8C8D48E">P6Y</ix:nonNumeric><ix:nonFraction decimals="0" unitRef="usd" contextRef="FD2018Q4YTD" name="us-gaap:AdjustmentForLongTermIntercompanyTransactionsNetOfTax" id="Fact-39A042E11F9E0032028A8095A18FE4B5-wk-Fact-39A042E11F9E0032028A8095A18FE4B5">1271000</ix:nonFraction><ix:nonFraction decimals="-3" unitRef="usd" contextRef="FD2019Q4YTD" name="us-gaap:AdjustmentForLongTermIntercompanyTransactionsNetOfTax" id="Fact-416EC4F4EE61A644CC998095A18F9E73-wk-Fact-416EC4F4EE61A644CC998095A18F9E73">1271000</ix:nonFraction><ix:nonFraction decimals="INF" unitRef="usdPerShare" contextRef="FI2018Q4" name="us-gaap:CommonStockParOrStatedValuePerShare" id="Fact-42081C8CB01C58A24C518095A18FA6C0-wk-Fact-42081C8CB01C58A24C518095A18FA6C0">0.002</ix:nonFraction><ix:nonFraction decimals="INF" unitRef="usdPerShare" contextRef="FI2019Q4" name="us-gaap:CommonStockParOrStatedValuePerShare" id="Fact-2470218D7813DD385FF58095A18F58C9-wk-Fact-2470218D7813DD385FF58095A18F58C9">0.002</ix:nonFraction><ix:nonFraction decimals="INF" unitRef="shares" contextRef="FI2018Q4" name="us-gaap:CommonStockSharesAuthorized" id="Fact-BE264CEB26A0252A85408095A18EDB5F-wk-Fact-BE264CEB26A0252A85408095A18EDB5F">300000000</ix:nonFraction><ix:nonFraction decimals="INF" unitRef="shares" contextRef="FI2019Q4" name="us-gaap:CommonStockSharesAuthorized" id="Fact-62B46566EE240CF05C318095A18FE098-wk-Fact-62B46566EE240CF05C318095A18FE098">300000000</ix:nonFraction><ix:nonFraction decimals="-3" unitRef="shares" contextRef="FI2018Q4" name="us-gaap:CommonStockSharesIssued" id="Fact-730119480E29E411C4418095A18F653A-wk-Fact-730119480E29E411C4418095A18F653A">170820000</ix:nonFraction><ix:nonFraction decimals="-3" unitRef="shares" contextRef="FI2019Q4" name="us-gaap:CommonStockSharesIssued" id="Fact-2C409909894F56E92EA98095A18F9D4C-wk-Fact-2C409909894F56E92EA98095A18F9D4C">172440000</ix:nonFraction><ix:nonFraction decimals="-3" unitRef="shares" contextRef="FI2018Q4" name="us-gaap:CommonStockSharesOutstanding" id="Fact-80A0EA9BF4D8AAC4C0C28095A18FECEC-wk-Fact-80A0EA9BF4D8AAC4C0C28095A18FECEC">170820000</ix:nonFraction><ix:nonFraction decimals="-3" unitRef="shares" contextRef="FI2019Q4" name="us-gaap:CommonStockSharesOutstanding" id="Fact-F01C726D98B2F998865E8095A18F1B7D-wk-Fact-F01C726D98B2F998865E8095A18F1B7D">172440000</ix:nonFraction><ix:nonFraction decimals="INF" unitRef="number" contextRef="FD2019Q4YTD_us-gaap_IncomeTaxAuthorityAxis_us-gaap_DomesticCountryMember" name="us-gaap:EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate" id="Fact-DEE1B0A8E19670317AF2FDC0B0A97533-wk-Fact-DEE1B0A8E19670317AF2FDC0B0A97533">0.21</ix:nonFraction><ix:nonFraction decimals="INF" unitRef="number" contextRef="FD2019Q4YTD_us-gaap_IncomeTaxAuthorityAxis_us-gaap_ForeignCountryMember_us-gaap_IncomeTaxAuthorityNameAxis_us-gaap_RevenueCommissionersIrelandMember" name="us-gaap:EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate" id="Fact-252C2C7D8C4AE8CA8EB0FDC00D2B4DBE-wk-Fact-252C2C7D8C4AE8CA8EB0FDC00D2B4DBE">0.125</ix:nonFraction><ix:nonFraction decimals="INF" unitRef="number" contextRef="FD2019Q4YTD_us-gaap_IncomeTaxAuthorityAxis_us-gaap_ForeignCountryMember_us-gaap_IncomeTaxAuthorityNameAxis_us-gaap_StateAdministrationOfTaxationChinaMember" name="us-gaap:EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate" id="Fact-4D126310C33AAE7FB41BFDC05959CB24-wk-Fact-4D126310C33AAE7FB41BFDC05959CB24">0.25</ix:nonFraction><ix:nonNumeric contextRef="FD2019Q4YTD_srt_RangeAxis_srt_MinimumMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_cgnx_CompletedTechnologiesAndOtherIntangibleAssetsMember" name="us-gaap:FiniteLivedIntangibleAssetUsefulLife" id="Fact-7261AACE0F1D8B59287384A77EA1CB3F-wk-Fact-7261AACE0F1D8B59287384A77EA1CB3F">P5Y</ix:nonNumeric><ix:nonNumeric contextRef="FD2019Q4YTD_srt_RangeAxis_srt_MinimumMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_cgnx_CustomerContractsAndRelationshipsMember" name="us-gaap:FiniteLivedIntangibleAssetUsefulLife" id="Fact-654AD3D9F1EC836BD0FE84A735867DFD-wk-Fact-654AD3D9F1EC836BD0FE84A735867DFD">P5Y</ix:nonNumeric><ix:nonNumeric contextRef="FD2019Q4YTD_srt_RangeAxis_srt_MinimumMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_DistributionRightsMember" name="us-gaap:FiniteLivedIntangibleAssetUsefulLife" id="Fact-EEB6B734E40A5A45AE1E84A6E6BB8C7F-wk-Fact-EEB6B734E40A5A45AE1E84A6E6BB8C7F">P11Y</ix:nonNumeric><ix:nonNumeric contextRef="FD2019Q4YTD_srt_RangeAxis_srt_MinimumMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_NoncompeteAgreementsMember" name="us-gaap:FiniteLivedIntangibleAssetUsefulLife" id="Fact-4FE2F2AEA6147EA94B6F17B8EDAA3B6E-wk-Fact-4FE2F2AEA6147EA94B6F17B8EDAA3B6E">P3Y</ix:nonNumeric><ix:nonFraction decimals="0" unitRef="usd" contextRef="FD2017Q4YTD_us-gaap_AdjustmentsForNewAccountingPronouncementsAxis_cgnx_AccountingStandardsUpdate201609StatutoryTaxWithholdingComponentMember" name="us-gaap:NetCashProvidedByUsedInFinancingActivities" id="Fact-1F3D07C70DBA4279214B8095A1972A7C-wk-Fact-1F3D07C70DBA4279214B8095A1972A7C" sign="-">7871000</ix:nonFraction><ix:nonFraction decimals="0" unitRef="usd" contextRef="FD2018Q4YTD_us-gaap_AdjustmentsForNewAccountingPronouncementsAxis_cgnx_AccountingStandardsUpdate201609StatutoryTaxWithholdingComponentMember" name="us-gaap:NetCashProvidedByUsedInFinancingActivities" id="Fact-C410A1E043CB8341ECFD8095A19809F4-wk-Fact-C410A1E043CB8341ECFD8095A19809F4" sign="-">9964000</ix:nonFraction><ix:nonFraction decimals="INF" unitRef="Segment" contextRef="FD2018Q4YTD" name="us-gaap:NumberOfReportableSegments" id="Fact-7378A8CA4FAC7A0290C28095A17A1CA6-wk-Fact-7378A8CA4FAC7A0290C28095A17A1CA6">1</ix:nonFraction><ix:nonFraction decimals="-3" unitRef="usd" contextRef="FD2017Q4YTD" name="us-gaap:OtherComprehensiveIncomeForeignCurrencyTranslationGainLossArisingDuringPeriodTax" id="Fact-80AEA32C9C859D2185038095A190CCD9-wk-Fact-80AEA32C9C859D2185038095A190CCD9">0</ix:nonFraction><ix:nonFraction decimals="-3" unitRef="usd" contextRef="FD2018Q4YTD" name="us-gaap:OtherComprehensiveIncomeForeignCurrencyTranslationGainLossArisingDuringPeriodTax" id="Fact-27D4B1EE80E106C124BB8095A190146F-wk-Fact-27D4B1EE80E106C124BB8095A190146F">0</ix:nonFraction><ix:nonFraction decimals="-3" unitRef="usd" contextRef="FD2019Q4YTD" name="us-gaap:OtherComprehensiveIncomeForeignCurrencyTranslationGainLossArisingDuringPeriodTax" id="Fact-5E868AEDC60872D1A4518095A190B9AF-wk-Fact-5E868AEDC60872D1A4518095A190B9AF">0</ix:nonFraction><ix:nonFraction decimals="-3" unitRef="usd" contextRef="FD2017Q4YTD" name="us-gaap:OtherComprehensiveIncomeLossDerivativesQualifyingAsHedgesTax" id="Fact-5DA59EF84CF6E75D67578095A1904760-wk-Fact-5DA59EF84CF6E75D67578095A1904760" sign="-">5000</ix:nonFraction><ix:nonFraction decimals="-3" unitRef="usd" contextRef="FD2018Q4YTD" name="us-gaap:OtherComprehensiveIncomeLossDerivativesQualifyingAsHedgesTax" id="Fact-CBF0979BC5A6BE12CB048095A190E5B2-wk-Fact-CBF0979BC5A6BE12CB048095A190E5B2">0</ix:nonFraction><ix:nonFraction decimals="-3" unitRef="usd" contextRef="FD2019Q4YTD" name="us-gaap:OtherComprehensiveIncomeLossDerivativesQualifyingAsHedgesTax" id="Fact-07D5FE19735EF97BAB788095A190A744-wk-Fact-07D5FE19735EF97BAB788095A190A744">0</ix:nonFraction><ix:nonFraction decimals="-3" unitRef="usd" contextRef="FD2017Q4YTD" name="us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTranslationAdjustmentTax" id="Fact-F9CD8863783C4A3DF4A28095A18E56FD-wk-Fact-F9CD8863783C4A3DF4A28095A18E56FD">0</ix:nonFraction><ix:nonFraction decimals="-3" unitRef="usd" contextRef="FD2018Q4YTD" name="us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTranslationAdjustmentTax" id="Fact-8A98D4C88FC159F094458095A18F9C32-wk-Fact-8A98D4C88FC159F094458095A18F9C32">0</ix:nonFraction><ix:nonFraction decimals="-3" unitRef="usd" contextRef="FD2019Q4YTD" name="us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTranslationAdjustmentTax" id="Fact-E5D8164C15219200E7838095A18E5F56-wk-Fact-E5D8164C15219200E7838095A18E5F56">0</ix:nonFraction><ix:nonFraction decimals="-3" unitRef="usd" contextRef="FD2017Q4YTD" name="us-gaap:OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodTax" id="Fact-6E50CD83CD1DBF05AA0D8095A190F57C-wk-Fact-6E50CD83CD1DBF05AA0D8095A190F57C">2000</ix:nonFraction><ix:nonFraction decimals="-3" unitRef="usd" contextRef="FD2018Q4YTD" name="us-gaap:OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodTax" id="Fact-32C82161E68B9300CB918095A190F12F-wk-Fact-32C82161E68B9300CB918095A190F12F" sign="-">188000</ix:nonFraction><ix:nonFraction decimals="-3" unitRef="usd" contextRef="FD2019Q4YTD" name="us-gaap:OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodTax" id="Fact-47D29C8055268EBDFBF08095A190A4E1-wk-Fact-47D29C8055268EBDFBF08095A190A4E1">515000</ix:nonFraction><ix:nonFraction decimals="INF" unitRef="usd" contextRef="FD2017Q4YTD_us-gaap_FairValueByMeasurementFrequencyAxis_us-gaap_FairValueMeasurementsRecurringMember" name="us-gaap:OtherThanTemporaryImpairmentLossesInvestmentsPortionRecognizedInEarningsNet" id="Fact-3D7336F765BE0007EC938095A18321CC-wk-Fact-3D7336F765BE0007EC938095A18321CC">0</ix:nonFraction><ix:nonFraction decimals="INF" unitRef="usd" contextRef="FD2018Q4YTD_us-gaap_FairValueByMeasurementFrequencyAxis_us-gaap_FairValueMeasurementsRecurringMember" name="us-gaap:OtherThanTemporaryImpairmentLossesInvestmentsPortionRecognizedInEarningsNet" id="Fact-C719D644728FFA9750298095A183EAB6-wk-Fact-C719D644728FFA9750298095A183EAB6">0</ix:nonFraction><ix:nonFraction decimals="INF" unitRef="usd" contextRef="FD2019Q4YTD_us-gaap_FairValueByMeasurementFrequencyAxis_us-gaap_FairValueMeasurementsRecurringMember" name="us-gaap:OtherThanTemporaryImpairmentLossesInvestmentsPortionRecognizedInEarningsNet" id="Fact-D689D31AAE9FC1F6D0F98095A18340AE-wk-Fact-D689D31AAE9FC1F6D0F98095A18340AE">0</ix:nonFraction><ix:nonFraction decimals="INF" unitRef="usdPerShare" contextRef="FI2018Q4" name="us-gaap:PreferredStockParOrStatedValuePerShare" id="Fact-995E957D7420CF0AABD3F3CF59E1B6CC-wk-Fact-995E957D7420CF0AABD3F3CF59E1B6CC">0.01</ix:nonFraction><ix:nonFraction decimals="INF" unitRef="shares" contextRef="FI2018Q4" name="us-gaap:PreferredStockSharesAuthorized" id="Fact-F3EAFA3DA8F5E9787F61F3CFA6B3BA4D-wk-Fact-F3EAFA3DA8F5E9787F61F3CFA6B3BA4D">400000</ix:nonFraction><ix:nonFraction decimals="INF" unitRef="shares" contextRef="FI2018Q4" name="us-gaap:PreferredStockSharesIssued" id="Fact-D30A643CA7F64EC609B9F3CFDCE9B6C2-wk-Fact-D30A643CA7F64EC609B9F3CFDCE9B6C2">0</ix:nonFraction><ix:nonFraction decimals="INF" unitRef="shares" contextRef="FI2019Q4" name="us-gaap:PreferredStockSharesIssued" id="Fact-167BAE519056F4BBA8B4F3CFDCEE4929-wk-Fact-167BAE519056F4BBA8B4F3CFDCEE4929">0</ix:nonFraction><ix:nonFraction decimals="INF" unitRef="shares" contextRef="FI2018Q4" name="us-gaap:PreferredStockSharesOutstanding" id="Fact-9DC76F3D73F161516D71F3D02897A210-wk-Fact-9DC76F3D73F161516D71F3D02897A210">0</ix:nonFraction><ix:nonFraction decimals="INF" unitRef="shares" contextRef="FI2019Q4" name="us-gaap:PreferredStockSharesOutstanding" id="Fact-C8602A543BE3B03EA7FAF3D028A62353-wk-Fact-C8602A543BE3B03EA7FAF3D028A62353">0</ix:nonFraction><ix:nonNumeric contextRef="FD2019Q4YTD_srt_RangeAxis_srt_MaximumMember_us-gaap_PropertyPlantAndEquipmentByTypeAxis_us-gaap_EquipmentMember" name="us-gaap:PropertyPlantAndEquipmentUsefulLife" id="Fact-106984A4FE0F750CE8948095A18F5DBA-wk-Fact-106984A4FE0F750CE8948095A18F5DBA">P5Y</ix:nonNumeric><ix:nonNumeric contextRef="FD2019Q4YTD_srt_RangeAxis_srt_MaximumMember_us-gaap_PropertyPlantAndEquipmentByTypeAxis_us-gaap_FurnitureAndFixturesMember" name="us-gaap:PropertyPlantAndEquipmentUsefulLife" id="Fact-713117698C1A83B918958095A18FB473-wk-Fact-713117698C1A83B918958095A18FB473">P5Y</ix:nonNumeric><ix:nonNumeric contextRef="FD2019Q4YTD_srt_RangeAxis_srt_MinimumMember_us-gaap_PropertyPlantAndEquipmentByTypeAxis_cgnx_ComputerHardwareAndSoftwareMember" name="us-gaap:PropertyPlantAndEquipmentUsefulLife" id="Fact-0F397FC767CA2392420F849DDB27876F-wk-Fact-0F397FC767CA2392420F849DDB27876F">P2Y</ix:nonNumeric><ix:nonNumeric contextRef="FD2019Q4YTD_srt_RangeAxis_srt_MinimumMember_us-gaap_PropertyPlantAndEquipmentByTypeAxis_us-gaap_EquipmentMember" name="us-gaap:PropertyPlantAndEquipmentUsefulLife" id="Fact-893D8F98A6B94F9D78338095A18F84FE-wk-Fact-893D8F98A6B94F9D78338095A18F84FE">P2Y</ix:nonNumeric><ix:nonNumeric contextRef="FD2019Q4YTD_srt_RangeAxis_srt_MinimumMember_us-gaap_PropertyPlantAndEquipmentByTypeAxis_us-gaap_FurnitureAndFixturesMember" name="us-gaap:PropertyPlantAndEquipmentUsefulLife" id="Fact-1F4D727A473A882385CD8095A18FDB0C-wk-Fact-1F4D727A473A882385CD8095A18FDB0C">P2Y</ix:nonNumeric><ix:nonFraction decimals="-3" unitRef="usd" contextRef="FI2018Q4" name="us-gaap:PropertySubjectToOrAvailableForOperatingLeaseGross" id="Fact-FB808C8C32B0F0A855AE8095A1746527-wk-Fact-FB808C8C32B0F0A855AE8095A1746527">800000</ix:nonFraction><ix:nonNumeric contextRef="FD2019Q4YTD_srt_RangeAxis_srt_MaximumMember_us-gaap_AwardTypeAxis_us-gaap_PerformanceSharesMember" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1" id="Fact-FF309D785B86E4129A8217C0124BE009-wk-Fact-FF309D785B86E4129A8217C0124BE009">P3Y</ix:nonNumeric><ix:nonNumeric contextRef="FD2019Q4YTD_srt_RangeAxis_srt_MinimumMember_us-gaap_AwardTypeAxis_us-gaap_EmployeeStockOptionMember" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1" id="Fact-16E91159CE35DA8950CA17217FF2DFFC-wk-Fact-16E91159CE35DA8950CA17217FF2DFFC">P4Y</ix:nonNumeric><ix:nonNumeric contextRef="FD2019Q4YTD_us-gaap_AwardTypeAxis_us-gaap_EmployeeStockOptionMember" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1" xsi:nil="true" id="Fact-766EB9232B132C0CE2898095A19761F8-wk-Fact-766EB9232B132C0CE2898095A19761F8" format="ixt:nocontent"></ix:nonNumeric><ix:nonFraction decimals="INF" unitRef="number" contextRef="FD2017Q4QTD" name="us-gaap:StockholdersEquityNoteStockSplitConversionRatio1" id="Fact-7F87069EEB8CEEF28F658095A17B396D-wk-Fact-7F87069EEB8CEEF28F658095A17B396D">2</ix:nonFraction><ix:nonFraction decimals="-3" unitRef="usd" contextRef="FI2018Q4" name="us-gaap:ValuationAllowancesAndReservesBalance" id="Fact-DD7CEDEC0434EBBB53B58095A18FAAB9-wk-Fact-DD7CEDEC0434EBBB53B58095A18FAAB9">1646000</ix:nonFraction><ix:nonFraction decimals="-3" unitRef="usd" contextRef="FI2019Q4" name="us-gaap:ValuationAllowancesAndReservesBalance" id="Fact-3AF445753D0205CD50C38095A18FC215-wk-Fact-3AF445753D0205CD50C38095A18FC215">1821000</ix:nonFraction><ix:footnote id="TextSelection-72B67EF8074C859EFB238095A1A7DDDC-0-wk-Footnote-72B67EF8074C859EFB238095A1A7DDDC_lbl" footnoteRole="http://www.xbrl.org/2003/role/footnote" xml:lang="en-US">Prior period amounts have been adjusted to reflect the two-for-one stock split effected in the form of a stock dividend which occurred in the fourth quarter of 2017.</ix:footnote><ix:footnote id="TextSelection-C00ECF2D823D0F66DF8B8095A1A7CC9C-0-wk-Footnote-C00ECF2D823D0F66DF8B8095A1A7CC9C_lbl" footnoteRole="http://www.xbrl.org/2003/role/footnote" xml:lang="en-US">Prior period results have been adjusted to reflect the two-for-one stock split effected in the form of a stock dividend which occurred in the fourth quarter of 2017.2</ix:footnote></ix:hidden><ix:references><link:schemaRef xlink:href="cgnx-20191231.xsd" xlink:type="simple"></link:schemaRef></ix:references><ix:resources><xbrli:context id="FD2019Q4YTD">
		<xbrli:entity>
			<xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier>
		</xbrli:entity>
		<xbrli:period>
			<xbrli:startDate>2019-01-01</xbrli:startDate>
			<xbrli:endDate>2019-12-31</xbrli:endDate>
		</xbrli:period>
	</xbrli:context><xbrli:context id="I2020Q1Jan26">
		<xbrli:entity>
			<xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier>
		</xbrli:entity>
		<xbrli:period>
			<xbrli:instant>2020-01-26</xbrli:instant>
		</xbrli:period>
	</xbrli:context><xbrli:context id="FI2019Q2">
		<xbrli:entity>
			<xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier>
		</xbrli:entity>
		<xbrli:period>
			<xbrli:instant>2019-06-30</xbrli:instant>
		</xbrli:period>
	</xbrli:context><xbrli:context id="FD2017Q4YTD">
		<xbrli:entity>
			<xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier>
		</xbrli:entity>
		<xbrli:period>
			<xbrli:startDate>2017-01-01</xbrli:startDate>
			<xbrli:endDate>2017-12-31</xbrli:endDate>
		</xbrli:period>
	</xbrli:context><xbrli:context id="FD2018Q4YTD">
		<xbrli:entity>
			<xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier>
		</xbrli:entity>
		<xbrli:period>
			<xbrli:startDate>2018-01-01</xbrli:startDate>
			<xbrli:endDate>2018-12-31</xbrli:endDate>
		</xbrli:period>
	</xbrli:context><xbrli:context id="FD2017Q4QTD">
		<xbrli:entity>
			<xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier>
		</xbrli:entity>
		<xbrli:period>
			<xbrli:startDate>2017-10-02</xbrli:startDate>
			<xbrli:endDate>2017-12-31</xbrli:endDate>
		</xbrli:period>
	</xbrli:context><xbrli:context id="FI2018Q4">
		<xbrli:entity>
			<xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier>
		</xbrli:entity>
		<xbrli:period>
			<xbrli:instant>2018-12-31</xbrli:instant>
		</xbrli:period>
	</xbrli:context><xbrli:context id="FI2019Q4">
		<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="FI2017Q4">
		<xbrli:entity>
			<xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier>
		</xbrli:entity>
		<xbrli:period>
			<xbrli:instant>2017-12-31</xbrli:instant>
		</xbrli:period>
	</xbrli:context><xbrli:context id="FI2016Q4">
		<xbrli:entity>
			<xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier>
		</xbrli:entity>
		<xbrli:period>
			<xbrli:instant>2016-12-31</xbrli:instant>
		</xbrli:period>
	</xbrli:context><xbrli:context id="FD2019Q4YTD_us-gaap_StatementEquityComponentsAxis_us-gaap_AccumulatedOtherComprehensiveIncomeMember">
		<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>2019-01-01</xbrli:startDate>
			<xbrli:endDate>2019-12-31</xbrli:endDate>
		</xbrli:period>
	</xbrli:context><xbrli:context id="FD2018Q4YTD_us-gaap_StatementEquityComponentsAxis_us-gaap_AdditionalPaidInCapitalMember">
		<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>2018-01-01</xbrli:startDate>
			<xbrli:endDate>2018-12-31</xbrli:endDate>
		</xbrli:period>
	</xbrli:context><xbrli:context id="FD2017Q4YTD_us-gaap_StatementEquityComponentsAxis_us-gaap_RetainedEarningsMember">
		<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>2017-01-01</xbrli:startDate>
			<xbrli:endDate>2017-12-31</xbrli:endDate>
		</xbrli:period>
	</xbrli:context><xbrli:context id="FD2019Q4YTD_us-gaap_StatementEquityComponentsAxis_us-gaap_CommonStockMember">
		<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>2019-01-01</xbrli:startDate>
			<xbrli:endDate>2019-12-31</xbrli:endDate>
		</xbrli:period>
	</xbrli:context><xbrli:context id="FI2018Q4_us-gaap_StatementEquityComponentsAxis_us-gaap_AccumulatedOtherComprehensiveIncomeMember">
		<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>2018-12-31</xbrli:instant>
		</xbrli:period>
	</xbrli:context><xbrli:context id="FI2017Q4_us-gaap_StatementEquityComponentsAxis_us-gaap_AdditionalPaidInCapitalMember">
		<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>2017-12-31</xbrli:instant>
		</xbrli:period>
	</xbrli:context><xbrli:context id="FD2018Q4YTD_us-gaap_StatementEquityComponentsAxis_us-gaap_CommonStockMember">
		<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>2018-01-01</xbrli:startDate>
			<xbrli:endDate>2018-12-31</xbrli:endDate>
		</xbrli:period>
	</xbrli:context><xbrli:context id="FI2016Q4_us-gaap_StatementEquityComponentsAxis_us-gaap_AccumulatedOtherComprehensiveIncomeMember">
		<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>2016-12-31</xbrli:instant>
		</xbrli:period>
	</xbrli:context><xbrli:context id="FI2016Q4_us-gaap_StatementEquityComponentsAxis_us-gaap_AdditionalPaidInCapitalMember">
		<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>2016-12-31</xbrli:instant>
		</xbrli:period>
	</xbrli:context><xbrli:context id="FD2018Q4YTD_us-gaap_StatementEquityComponentsAxis_us-gaap_AccumulatedOtherComprehensiveIncomeMember">
		<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>2018-01-01</xbrli:startDate>
			<xbrli:endDate>2018-12-31</xbrli:endDate>
		</xbrli:period>
	</xbrli:context><xbrli:context id="FI2017Q4_us-gaap_StatementEquityComponentsAxis_us-gaap_AccumulatedOtherComprehensiveIncomeMember">
		<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>2017-12-31</xbrli:instant>
		</xbrli:period>
	</xbrli:context><xbrli:context id="FD2017Q4YTD_us-gaap_StatementEquityComponentsAxis_us-gaap_CommonStockMember">
		<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>2017-01-01</xbrli:startDate>
			<xbrli:endDate>2017-12-31</xbrli:endDate>
		</xbrli:period>
	</xbrli:context><xbrli:context id="FI2017Q4_us-gaap_StatementEquityComponentsAxis_us-gaap_CommonStockMember">
		<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>2017-12-31</xbrli:instant>
		</xbrli:period>
	</xbrli:context><xbrli:context id="FI2018Q4_us-gaap_StatementEquityComponentsAxis_us-gaap_CommonStockMember">
		<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>2018-12-31</xbrli:instant>
		</xbrli:period>
	</xbrli:context><xbrli:context id="FI2016Q4_us-gaap_StatementEquityComponentsAxis_us-gaap_RetainedEarningsMember">
		<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>2016-12-31</xbrli:instant>
		</xbrli:period>
	</xbrli:context><xbrli:context id="FD2017Q4YTD_us-gaap_StatementEquityComponentsAxis_us-gaap_AccumulatedOtherComprehensiveIncomeMember">
		<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>2017-01-01</xbrli:startDate>
			<xbrli:endDate>2017-12-31</xbrli:endDate>
		</xbrli:period>
	</xbrli:context><xbrli:context id="FD2017Q4YTD_us-gaap_StatementEquityComponentsAxis_us-gaap_AdditionalPaidInCapitalMember">
		<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>2017-01-01</xbrli:startDate>
			<xbrli:endDate>2017-12-31</xbrli:endDate>
		</xbrli:period>
	</xbrli:context><xbrli:context id="FD2019Q4YTD_us-gaap_StatementEquityComponentsAxis_us-gaap_AdditionalPaidInCapitalMember">
		<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>2019-01-01</xbrli:startDate>
			<xbrli:endDate>2019-12-31</xbrli:endDate>
		</xbrli:period>
	</xbrli:context><xbrli:context id="FI2016Q4_us-gaap_StatementEquityComponentsAxis_us-gaap_CommonStockMember">
		<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>2016-12-31</xbrli:instant>
		</xbrli:period>
	</xbrli:context><xbrli:context id="FI2019Q4_us-gaap_StatementEquityComponentsAxis_us-gaap_CommonStockMember">
		<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="FD2019Q4YTD_us-gaap_StatementEquityComponentsAxis_us-gaap_RetainedEarningsMember">
		<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>2019-01-01</xbrli:startDate>
			<xbrli:endDate>2019-12-31</xbrli:endDate>
		</xbrli:period>
	</xbrli:context><xbrli:context id="FI2019Q4_us-gaap_StatementEquityComponentsAxis_us-gaap_RetainedEarningsMember">
		<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="FD2018Q4YTD_us-gaap_StatementEquityComponentsAxis_us-gaap_RetainedEarningsMember">
		<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>2018-01-01</xbrli:startDate>
			<xbrli:endDate>2018-12-31</xbrli:endDate>
		</xbrli:period>
	</xbrli:context><xbrli:context id="FI2018Q4_us-gaap_StatementEquityComponentsAxis_us-gaap_AdditionalPaidInCapitalMember">
		<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>2018-12-31</xbrli:instant>
		</xbrli:period>
	</xbrli:context><xbrli:context id="FI2018Q4_us-gaap_StatementEquityComponentsAxis_us-gaap_RetainedEarningsMember">
		<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>2018-12-31</xbrli:instant>
		</xbrli:period>
	</xbrli:context><xbrli:context id="FI2017Q4_us-gaap_StatementEquityComponentsAxis_us-gaap_RetainedEarningsMember">
		<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>2017-12-31</xbrli:instant>
		</xbrli:period>
	</xbrli:context><xbrli:context id="FI2019Q4_us-gaap_StatementEquityComponentsAxis_us-gaap_AdditionalPaidInCapitalMember">
		<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="FI2019Q4_us-gaap_StatementEquityComponentsAxis_us-gaap_AccumulatedOtherComprehensiveIncomeMember">
		<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="FD2019Q4YTD_us-gaap_PropertyPlantAndEquipmentByTypeAxis_us-gaap_BuildingImprovementsMember">
		<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>2019-01-01</xbrli:startDate>
			<xbrli:endDate>2019-12-31</xbrli:endDate>
		</xbrli:period>
	</xbrli:context><xbrli:context id="FD2019Q4YTD_srt_RangeAxis_srt_MaximumMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_cgnx_CompletedTechnologiesAndOtherIntangibleAssetsMember">
		<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:FiniteLivedIntangibleAssetsByMajorClassAxis">cgnx:CompletedTechnologiesAndOtherIntangibleAssetsMember</xbrldi:explicitMember>
			</xbrli:segment>
		</xbrli:entity>
		<xbrli:period>
			<xbrli:startDate>2019-01-01</xbrli:startDate>
			<xbrli:endDate>2019-12-31</xbrli:endDate>
		</xbrli:period>
	</xbrli:context><xbrli:context id="FD2019Q4YTD_srt_RangeAxis_srt_MaximumMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_cgnx_CustomerContractsAndRelationshipsMember">
		<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:FiniteLivedIntangibleAssetsByMajorClassAxis">cgnx:CustomerContractsAndRelationshipsMember</xbrldi:explicitMember>
			</xbrli:segment>
		</xbrli:entity>
		<xbrli:period>
			<xbrli:startDate>2019-01-01</xbrli:startDate>
			<xbrli:endDate>2019-12-31</xbrli:endDate>
		</xbrli:period>
	</xbrli:context><xbrli:context id="FD2019Q4YTD_srt_RangeAxis_srt_MaximumMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_DistributionRightsMember">
		<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:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:DistributionRightsMember</xbrldi:explicitMember>
			</xbrli:segment>
		</xbrli:entity>
		<xbrli:period>
			<xbrli:startDate>2019-01-01</xbrli:startDate>
			<xbrli:endDate>2019-12-31</xbrli:endDate>
		</xbrli:period>
	</xbrli:context><xbrli:context id="FD2019Q4YTD_srt_RangeAxis_srt_MaximumMember">
		<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>2019-01-01</xbrli:startDate>
			<xbrli:endDate>2019-12-31</xbrli:endDate>
		</xbrli:period>
	</xbrli:context><xbrli:context id="FD2019Q4YTD_srt_RangeAxis_srt_MaximumMember_us-gaap_PropertyPlantAndEquipmentByTypeAxis_cgnx_ComputerHardwareAndSoftwareMember">
		<xbrli:entity>
			<xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier>
			<xbrli:segment>
				<xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember>
				<xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">cgnx:ComputerHardwareAndSoftwareMember</xbrldi:explicitMember>
			</xbrli:segment>
		</xbrli:entity>
		<xbrli:period>
			<xbrli:startDate>2019-01-01</xbrli:startDate>
			<xbrli:endDate>2019-12-31</xbrli:endDate>
		</xbrli:period>
	</xbrli:context><xbrli:context id="FD2019Q4YTD_srt_RangeAxis_srt_MinimumMember">
		<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>2019-01-01</xbrli:startDate>
			<xbrli:endDate>2019-12-31</xbrli:endDate>
		</xbrli:period>
	</xbrli:context><xbrli:context id="FD2019Q4YTD_srt_RangeAxis_srt_MaximumMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_NoncompeteAgreementsMember">
		<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:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:NoncompeteAgreementsMember</xbrldi:explicitMember>
			</xbrli:segment>
		</xbrli:entity>
		<xbrli:period>
			<xbrli:startDate>2019-01-01</xbrli:startDate>
			<xbrli:endDate>2019-12-31</xbrli:endDate>
		</xbrli:period>
	</xbrli:context><xbrli:context id="FD2019Q4YTD_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_TrademarksMember">
		<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>2019-01-01</xbrli:startDate>
			<xbrli:endDate>2019-12-31</xbrli:endDate>
		</xbrli:period>
	</xbrli:context><xbrli:context id="FD2019Q4YTD_us-gaap_PropertyPlantAndEquipmentByTypeAxis_us-gaap_BuildingMember">
		<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>2019-01-01</xbrli:startDate>
			<xbrli:endDate>2019-12-31</xbrli:endDate>
		</xbrli:period>
	</xbrli:context><xbrli:context id="FD2019Q4YTD_srt_RangeAxis_srt_MinimumMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_cgnx_CompletedTechnologiesAndOtherIntangibleAssetsMember">
		<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>2019-01-01</xbrli:startDate>
			<xbrli:endDate>2019-12-31</xbrli:endDate>
		</xbrli:period>
	</xbrli:context><xbrli:context id="FD2019Q4YTD_srt_RangeAxis_srt_MinimumMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_DistributionRightsMember">
		<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:DistributionRightsMember</xbrldi:explicitMember>
			</xbrli:segment>
		</xbrli:entity>
		<xbrli:period>
			<xbrli:startDate>2019-01-01</xbrli:startDate>
			<xbrli:endDate>2019-12-31</xbrli:endDate>
		</xbrli:period>
	</xbrli:context><xbrli:context id="FD2019Q4YTD_srt_RangeAxis_srt_MinimumMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_NoncompeteAgreementsMember">
		<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>2019-01-01</xbrli:startDate>
			<xbrli:endDate>2019-12-31</xbrli:endDate>
		</xbrli:period>
	</xbrli:context><xbrli:context id="FD2019Q4YTD_srt_RangeAxis_srt_MinimumMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_cgnx_CustomerContractsAndRelationshipsMember">
		<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:CustomerContractsAndRelationshipsMember</xbrldi:explicitMember>
			</xbrli:segment>
		</xbrli:entity>
		<xbrli:period>
			<xbrli:startDate>2019-01-01</xbrli:startDate>
			<xbrli:endDate>2019-12-31</xbrli:endDate>
		</xbrli:period>
	</xbrli:context><xbrli:context id="FD2019Q4YTD_srt_RangeAxis_srt_MaximumMember_us-gaap_PropertyPlantAndEquipmentByTypeAxis_us-gaap_FurnitureAndFixturesMember">
		<xbrli:entity>
			<xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier>
			<xbrli:segment>
				<xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember>
				<xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:FurnitureAndFixturesMember</xbrldi:explicitMember>
			</xbrli:segment>
		</xbrli:entity>
		<xbrli:period>
			<xbrli:startDate>2019-01-01</xbrli:startDate>
			<xbrli:endDate>2019-12-31</xbrli:endDate>
		</xbrli:period>
	</xbrli:context><xbrli:context id="FD2019Q4YTD_srt_RangeAxis_srt_MinimumMember_us-gaap_PropertyPlantAndEquipmentByTypeAxis_cgnx_ComputerHardwareAndSoftwareMember">
		<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>2019-01-01</xbrli:startDate>
			<xbrli:endDate>2019-12-31</xbrli:endDate>
		</xbrli:period>
	</xbrli:context><xbrli:context id="FD2019Q4YTD_srt_RangeAxis_srt_MinimumMember_us-gaap_PropertyPlantAndEquipmentByTypeAxis_us-gaap_FurnitureAndFixturesMember">
		<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>2019-01-01</xbrli:startDate>
			<xbrli:endDate>2019-12-31</xbrli:endDate>
		</xbrli:period>
	</xbrli:context><xbrli:context id="FD2019Q4YTD_srt_RangeAxis_srt_MinimumMember_us-gaap_PropertyPlantAndEquipmentByTypeAxis_us-gaap_EquipmentMember">
		<xbrli:entity>
			<xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier>
			<xbrli:segment>
				<xbrldi:explicitMember dimension="srt:RangeAxis">srt:MinimumMember</xbrldi:explicitMember>
				<xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:EquipmentMember</xbrldi:explicitMember>
			</xbrli:segment>
		</xbrli:entity>
		<xbrli:period>
			<xbrli:startDate>2019-01-01</xbrli:startDate>
			<xbrli:endDate>2019-12-31</xbrli:endDate>
		</xbrli:period>
	</xbrli:context><xbrli:context id="FD2019Q4YTD_srt_RangeAxis_srt_MaximumMember_us-gaap_PropertyPlantAndEquipmentByTypeAxis_us-gaap_EquipmentMember">
		<xbrli:entity>
			<xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier>
			<xbrli:segment>
				<xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember>
				<xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:EquipmentMember</xbrldi:explicitMember>
			</xbrli:segment>
		</xbrli:entity>
		<xbrli:period>
			<xbrli:startDate>2019-01-01</xbrli:startDate>
			<xbrli:endDate>2019-12-31</xbrli:endDate>
		</xbrli:period>
	</xbrli:context><xbrli:context id="FD2019Q4YTD_us-gaap_BusinessAcquisitionAxis_cgnx_ChiaroTechnologiesLLCMember">
		<xbrli:entity>
			<xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier>
			<xbrli:segment>
				<xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">cgnx:ChiaroTechnologiesLLCMember</xbrldi:explicitMember>
			</xbrli:segment>
		</xbrli:entity>
		<xbrli:period>
			<xbrli:startDate>2019-01-01</xbrli:startDate>
			<xbrli:endDate>2019-12-31</xbrli:endDate>
		</xbrli:period>
	</xbrli:context><xbrli:context id="FD2018Q4YTD_us-gaap_BusinessAcquisitionAxis_cgnx_GViVenturesInc.Member">
		<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:startDate>2018-01-01</xbrli:startDate>
			<xbrli:endDate>2018-12-31</xbrli:endDate>
		</xbrli:period>
	</xbrli:context><xbrli:context id="FD2018Q4YTD_us-gaap_BusinessAcquisitionAxis_cgnx_ManateeWorksInc.Member">
		<xbrli:entity>
			<xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier>
			<xbrli:segment>
				<xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">cgnx:ManateeWorksInc.Member</xbrldi:explicitMember>
			</xbrli:segment>
		</xbrli:entity>
		<xbrli:period>
			<xbrli:startDate>2018-01-01</xbrli:startDate>
			<xbrli:endDate>2018-12-31</xbrli:endDate>
		</xbrli:period>
	</xbrli:context><xbrli:context id="FD2018Q4YTD_us-gaap_BusinessAcquisitionAxis_cgnx_ChiaroTechnologiesLLCMember">
		<xbrli:entity>
			<xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier>
			<xbrli:segment>
				<xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">cgnx:ChiaroTechnologiesLLCMember</xbrldi:explicitMember>
			</xbrli:segment>
		</xbrli:entity>
		<xbrli:period>
			<xbrli:startDate>2018-01-01</xbrli:startDate>
			<xbrli:endDate>2018-12-31</xbrli:endDate>
		</xbrli:period>
	</xbrli:context><xbrli:context id="FD2019Q4YTD_us-gaap_BusinessAcquisitionAxis_cgnx_GViVenturesInc.Member">
		<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:startDate>2019-01-01</xbrli:startDate>
			<xbrli:endDate>2019-12-31</xbrli:endDate>
		</xbrli:period>
	</xbrli:context><xbrli:context id="FI2016Q4_us-gaap_BusinessAcquisitionAxis_cgnx_ChiaroTechnologiesLLCMember">
		<xbrli:entity>
			<xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier>
			<xbrli:segment>
				<xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">cgnx:ChiaroTechnologiesLLCMember</xbrldi:explicitMember>
			</xbrli:segment>
		</xbrli:entity>
		<xbrli:period>
			<xbrli:instant>2016-12-31</xbrli:instant>
		</xbrli:period>
	</xbrli:context><xbrli:context id="FI2019Q4_us-gaap_FairValueByFairValueHierarchyLevelAxis_us-gaap_FairValueInputsLevel2Member_us-gaap_FairValueByMeasurementFrequencyAxis_us-gaap_FairValueMeasurementsRecurringMember">
		<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>2019-12-31</xbrli:instant>
		</xbrli:period>
	</xbrli:context><xbrli:context id="FI2019Q4_us-gaap_FairValueByFairValueHierarchyLevelAxis_us-gaap_FairValueInputsLevel1Member_us-gaap_FairValueByMeasurementFrequencyAxis_us-gaap_FairValueMeasurementsRecurringMember">
		<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>2019-12-31</xbrli:instant>
		</xbrli:period>
	</xbrli:context><xbrli:context id="FI2019Q4_us-gaap_FairValueByFairValueHierarchyLevelAxis_us-gaap_FairValueInputsLevel3Member_us-gaap_FairValueByMeasurementFrequencyAxis_us-gaap_FairValueMeasurementsRecurringMember">
		<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>2019-12-31</xbrli:instant>
		</xbrli:period>
	</xbrli:context><xbrli:context id="FD2017Q4YTD_us-gaap_FairValueByMeasurementFrequencyAxis_us-gaap_FairValueMeasurementsRecurringMember">
		<xbrli:entity>
			<xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier>
			<xbrli:segment>
				<xbrldi:explicitMember dimension="us-gaap:FairValueByMeasurementFrequencyAxis">us-gaap:FairValueMeasurementsRecurringMember</xbrldi:explicitMember>
			</xbrli:segment>
		</xbrli:entity>
		<xbrli:period>
			<xbrli:startDate>2017-01-01</xbrli:startDate>
			<xbrli:endDate>2017-12-31</xbrli:endDate>
		</xbrli:period>
	</xbrli:context><xbrli:context id="FD2018Q4YTD_us-gaap_FairValueByMeasurementFrequencyAxis_us-gaap_FairValueMeasurementsRecurringMember">
		<xbrli:entity>
			<xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier>
			<xbrli:segment>
				<xbrldi:explicitMember dimension="us-gaap:FairValueByMeasurementFrequencyAxis">us-gaap:FairValueMeasurementsRecurringMember</xbrldi:explicitMember>
			</xbrli:segment>
		</xbrli:entity>
		<xbrli:period>
			<xbrli:startDate>2018-01-01</xbrli:startDate>
			<xbrli:endDate>2018-12-31</xbrli:endDate>
		</xbrli:period>
	</xbrli:context><xbrli:context id="FD2019Q4YTD_us-gaap_FairValueByMeasurementFrequencyAxis_us-gaap_FairValueMeasurementsRecurringMember">
		<xbrli:entity>
			<xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier>
			<xbrli:segment>
				<xbrldi:explicitMember dimension="us-gaap:FairValueByMeasurementFrequencyAxis">us-gaap:FairValueMeasurementsRecurringMember</xbrldi:explicitMember>
			</xbrli:segment>
		</xbrli:entity>
		<xbrli:period>
			<xbrli:startDate>2019-01-01</xbrli:startDate>
			<xbrli:endDate>2019-12-31</xbrli:endDate>
		</xbrli:period>
	</xbrli:context><xbrli:context id="FI2018Q4_us-gaap_FinancialInstrumentAxis_cgnx_AgencyBondsMember">
		<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>2018-12-31</xbrli:instant>
		</xbrli:period>
	</xbrli:context><xbrli:context id="FI2019Q4_us-gaap_FinancialInstrumentAxis_us-gaap_USTreasuryBillSecuritiesMember">
		<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>2019-12-31</xbrli:instant>
		</xbrli:period>
	</xbrli:context><xbrli:context id="FI2018Q4_us-gaap_FinancialInstrumentAxis_us-gaap_CorporateBondSecuritiesMember">
		<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>2018-12-31</xbrli:instant>
		</xbrli:period>
	</xbrli:context><xbrli:context id="FI2019Q4_us-gaap_FinancialInstrumentAxis_us-gaap_MunicipalBondsMember">
		<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>2019-12-31</xbrli:instant>
		</xbrli:period>
	</xbrli:context><xbrli:context id="FI2018Q4_us-gaap_FinancialInstrumentAxis_us-gaap_USTreasuryBillSecuritiesMember">
		<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>2018-12-31</xbrli:instant>
		</xbrli:period>
	</xbrli:context><xbrli:context id="FI2018Q4_us-gaap_FinancialInstrumentAxis_us-gaap_CertificatesOfDepositMember">
		<xbrli:entity>
			<xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier>
			<xbrli:segment>
				<xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">us-gaap:CertificatesOfDepositMember</xbrldi:explicitMember>
			</xbrli:segment>
		</xbrli:entity>
		<xbrli:period>
			<xbrli:instant>2018-12-31</xbrli:instant>
		</xbrli:period>
	</xbrli:context><xbrli:context id="FI2019Q4_us-gaap_FinancialInstrumentAxis_us-gaap_CertificatesOfDepositMember">
		<xbrli:entity>
			<xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier>
			<xbrli:segment>
				<xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">us-gaap:CertificatesOfDepositMember</xbrldi:explicitMember>
			</xbrli:segment>
		</xbrli:entity>
		<xbrli:period>
			<xbrli:instant>2019-12-31</xbrli:instant>
		</xbrli:period>
	</xbrli:context><xbrli:context id="FI2018Q4_us-gaap_FinancialInstrumentAxis_us-gaap_SovereignDebtSecuritiesMember">
		<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>2018-12-31</xbrli:instant>
		</xbrli:period>
	</xbrli:context><xbrli:context id="FI2018Q4_us-gaap_FinancialInstrumentAxis_us-gaap_AssetBackedSecuritiesMember">
		<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>2018-12-31</xbrli:instant>
		</xbrli:period>
	</xbrli:context><xbrli:context id="FI2019Q4_us-gaap_FinancialInstrumentAxis_us-gaap_SovereignDebtSecuritiesMember">
		<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>2019-12-31</xbrli:instant>
		</xbrli:period>
	</xbrli:context><xbrli:context id="FI2019Q4_us-gaap_FinancialInstrumentAxis_us-gaap_AssetBackedSecuritiesMember">
		<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>2019-12-31</xbrli:instant>
		</xbrli:period>
	</xbrli:context><xbrli:context id="FI2019Q4_us-gaap_FinancialInstrumentAxis_us-gaap_CorporateBondSecuritiesMember">
		<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>2019-12-31</xbrli:instant>
		</xbrli:period>
	</xbrli:context><xbrli:context id="FI2018Q4_us-gaap_FinancialInstrumentAxis_us-gaap_MunicipalBondsMember">
		<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>2018-12-31</xbrli:instant>
		</xbrli:period>
	</xbrli:context><xbrli:context id="FI2019Q4_us-gaap_FinancialInstrumentAxis_cgnx_AgencyBondsMember">
		<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>2019-12-31</xbrli:instant>
		</xbrli:period>
	</xbrli:context><xbrli:context id="FI2019Q4_us-gaap_FinancialInstrumentAxis_us-gaap_CorporateBondSecuritiesMember_us-gaap_InvestmentTypeAxis_us-gaap_ShortTermInvestmentsMember">
		<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="us-gaap:InvestmentTypeAxis">us-gaap:ShortTermInvestmentsMember</xbrldi:explicitMember>
			</xbrli:segment>
		</xbrli:entity>
		<xbrli:period>
			<xbrli:instant>2019-12-31</xbrli:instant>
		</xbrli:period>
	</xbrli:context><xbrli:context id="FI2019Q4_us-gaap_FinancialInstrumentAxis_cgnx_AgencyBondsMember_us-gaap_InvestmentTypeAxis_cgnx_LongTermInvestmentsMember">
		<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>
				<xbrldi:explicitMember dimension="us-gaap:InvestmentTypeAxis">cgnx:LongTermInvestmentsMember</xbrldi:explicitMember>
			</xbrli:segment>
		</xbrli:entity>
		<xbrli:period>
			<xbrli:instant>2019-12-31</xbrli:instant>
		</xbrli:period>
	</xbrli:context><xbrli:context id="FI2019Q4_us-gaap_FinancialInstrumentAxis_us-gaap_MunicipalBondsMember_us-gaap_InvestmentTypeAxis_us-gaap_ShortTermInvestmentsMember">
		<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>
				<xbrldi:explicitMember dimension="us-gaap:InvestmentTypeAxis">us-gaap:ShortTermInvestmentsMember</xbrldi:explicitMember>
			</xbrli:segment>
		</xbrli:entity>
		<xbrli:period>
			<xbrli:instant>2019-12-31</xbrli:instant>
		</xbrli:period>
	</xbrli:context><xbrli:context id="FI2019Q4_us-gaap_FinancialInstrumentAxis_us-gaap_SovereignDebtSecuritiesMember_us-gaap_InvestmentTypeAxis_us-gaap_ShortTermInvestmentsMember">
		<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="us-gaap:InvestmentTypeAxis">us-gaap:ShortTermInvestmentsMember</xbrldi:explicitMember>
			</xbrli:segment>
		</xbrli:entity>
		<xbrli:period>
			<xbrli:instant>2019-12-31</xbrli:instant>
		</xbrli:period>
	</xbrli:context><xbrli:context id="FI2019Q4_us-gaap_FinancialInstrumentAxis_us-gaap_USTreasurySecuritiesMember_us-gaap_InvestmentTypeAxis_cgnx_LongTermInvestmentsMember">
		<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>
				<xbrldi:explicitMember dimension="us-gaap:InvestmentTypeAxis">cgnx:LongTermInvestmentsMember</xbrldi:explicitMember>
			</xbrli:segment>
		</xbrli:entity>
		<xbrli:period>
			<xbrli:instant>2019-12-31</xbrli:instant>
		</xbrli:period>
	</xbrli:context><xbrli:context id="FI2019Q4_us-gaap_FinancialInstrumentAxis_us-gaap_AssetBackedSecuritiesMember_us-gaap_InvestmentTypeAxis_us-gaap_ShortTermInvestmentsMember">
		<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="us-gaap:InvestmentTypeAxis">us-gaap:ShortTermInvestmentsMember</xbrldi:explicitMember>
			</xbrli:segment>
		</xbrli:entity>
		<xbrli:period>
			<xbrli:instant>2019-12-31</xbrli:instant>
		</xbrli:period>
	</xbrli:context><xbrli:context id="FI2019Q4_us-gaap_FinancialInstrumentAxis_us-gaap_MunicipalBondsMember_us-gaap_InvestmentTypeAxis_cgnx_LongTermInvestmentsMember">
		<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>
				<xbrldi:explicitMember dimension="us-gaap:InvestmentTypeAxis">cgnx:LongTermInvestmentsMember</xbrldi:explicitMember>
			</xbrli:segment>
		</xbrli:entity>
		<xbrli:period>
			<xbrli:instant>2019-12-31</xbrli:instant>
		</xbrli:period>
	</xbrli:context><xbrli:context id="FI2019Q4_us-gaap_FinancialInstrumentAxis_us-gaap_AssetBackedSecuritiesMember_us-gaap_InvestmentTypeAxis_cgnx_LongTermInvestmentsMember">
		<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="us-gaap:InvestmentTypeAxis">cgnx:LongTermInvestmentsMember</xbrldi:explicitMember>
			</xbrli:segment>
		</xbrli:entity>
		<xbrli:period>
			<xbrli:instant>2019-12-31</xbrli:instant>
		</xbrli:period>
	</xbrli:context><xbrli:context id="FI2019Q4_us-gaap_FinancialInstrumentAxis_us-gaap_USTreasurySecuritiesMember_us-gaap_InvestmentTypeAxis_us-gaap_ShortTermInvestmentsMember">
		<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>
				<xbrldi:explicitMember dimension="us-gaap:InvestmentTypeAxis">us-gaap:ShortTermInvestmentsMember</xbrldi:explicitMember>
			</xbrli:segment>
		</xbrli:entity>
		<xbrli:period>
			<xbrli:instant>2019-12-31</xbrli:instant>
		</xbrli:period>
	</xbrli:context><xbrli:context id="FI2019Q4_us-gaap_FinancialInstrumentAxis_us-gaap_SovereignDebtSecuritiesMember_us-gaap_InvestmentTypeAxis_cgnx_LongTermInvestmentsMember">
		<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="us-gaap:InvestmentTypeAxis">cgnx:LongTermInvestmentsMember</xbrldi:explicitMember>
			</xbrli:segment>
		</xbrli:entity>
		<xbrli:period>
			<xbrli:instant>2019-12-31</xbrli:instant>
		</xbrli:period>
	</xbrli:context><xbrli:context id="FI2019Q4_us-gaap_FinancialInstrumentAxis_us-gaap_CorporateBondSecuritiesMember_us-gaap_InvestmentTypeAxis_cgnx_LongTermInvestmentsMember">
		<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="us-gaap:InvestmentTypeAxis">cgnx:LongTermInvestmentsMember</xbrldi:explicitMember>
			</xbrli:segment>
		</xbrli:entity>
		<xbrli:period>
			<xbrli:instant>2019-12-31</xbrli:instant>
		</xbrli:period>
	</xbrli:context><xbrli:context id="FI2019Q4_us-gaap_FinancialInstrumentAxis_us-gaap_USTreasurySecuritiesMember">
		<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>2019-12-31</xbrli:instant>
		</xbrli:period>
	</xbrli:context><xbrli:context id="FI2018Q4_us-gaap_PropertyPlantAndEquipmentByTypeAxis_us-gaap_LeaseholdImprovementsMember">
		<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>2018-12-31</xbrli:instant>
		</xbrli:period>
	</xbrli:context><xbrli:context id="FI2018Q4_us-gaap_PropertyPlantAndEquipmentByTypeAxis_us-gaap_LandMember">
		<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>2018-12-31</xbrli:instant>
		</xbrli:period>
	</xbrli:context><xbrli:context id="FI2019Q4_us-gaap_PropertyPlantAndEquipmentByTypeAxis_cgnx_HardwareAndSoftwareMember">
		<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>2019-12-31</xbrli:instant>
		</xbrli:period>
	</xbrli:context><xbrli:context id="FI2018Q4_us-gaap_PropertyPlantAndEquipmentByTypeAxis_us-gaap_FurnitureAndFixturesMember">
		<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>2018-12-31</xbrli:instant>
		</xbrli:period>
	</xbrli:context><xbrli:context id="FI2019Q4_us-gaap_PropertyPlantAndEquipmentByTypeAxis_us-gaap_LeaseholdImprovementsMember">
		<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>2019-12-31</xbrli:instant>
		</xbrli:period>
	</xbrli:context><xbrli:context id="FI2018Q4_us-gaap_PropertyPlantAndEquipmentByTypeAxis_us-gaap_BuildingImprovementsMember">
		<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>2018-12-31</xbrli:instant>
		</xbrli:period>
	</xbrli:context><xbrli:context id="FI2019Q4_us-gaap_PropertyPlantAndEquipmentByTypeAxis_us-gaap_FurnitureAndFixturesMember">
		<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>2019-12-31</xbrli:instant>
		</xbrli:period>
	</xbrli:context><xbrli:context id="FI2019Q4_us-gaap_PropertyPlantAndEquipmentByTypeAxis_us-gaap_BuildingMember">
		<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>2019-12-31</xbrli:instant>
		</xbrli:period>
	</xbrli:context><xbrli:context id="FI2019Q4_us-gaap_PropertyPlantAndEquipmentByTypeAxis_us-gaap_BuildingImprovementsMember">
		<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>2019-12-31</xbrli:instant>
		</xbrli:period>
	</xbrli:context><xbrli:context id="FI2018Q4_us-gaap_PropertyPlantAndEquipmentByTypeAxis_cgnx_HardwareAndSoftwareMember">
		<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>2018-12-31</xbrli:instant>
		</xbrli:period>
	</xbrli:context><xbrli:context id="FI2019Q4_us-gaap_PropertyPlantAndEquipmentByTypeAxis_us-gaap_EquipmentMember">
		<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>2019-12-31</xbrli:instant>
		</xbrli:period>
	</xbrli:context><xbrli:context id="FI2018Q4_us-gaap_PropertyPlantAndEquipmentByTypeAxis_us-gaap_EquipmentMember">
		<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>2018-12-31</xbrli:instant>
		</xbrli:period>
	</xbrli:context><xbrli:context id="FI2018Q4_us-gaap_PropertyPlantAndEquipmentByTypeAxis_us-gaap_BuildingMember">
		<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>2018-12-31</xbrli:instant>
		</xbrli:period>
	</xbrli:context><xbrli:context id="FI2019Q4_us-gaap_PropertyPlantAndEquipmentByTypeAxis_us-gaap_LandMember">
		<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>2019-12-31</xbrli:instant>
		</xbrli:period>
	</xbrli:context><xbrli:context id="I2019Q1Jan01_us-gaap_AdjustmentsForNewAccountingPronouncementsAxis_us-gaap_AccountingStandardsUpdate201602Member">
		<xbrli:entity>
			<xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier>
			<xbrli:segment>
				<xbrldi:explicitMember dimension="us-gaap:AdjustmentsForNewAccountingPronouncementsAxis">us-gaap:AccountingStandardsUpdate201602Member</xbrldi:explicitMember>
			</xbrli:segment>
		</xbrli:entity>
		<xbrli:period>
			<xbrli:instant>2019-01-01</xbrli:instant>
		</xbrli:period>
	</xbrli:context><xbrli:context id="FD2019Q4YTD_us-gaap_BusinessAcquisitionAxis_cgnx_SualabCo.Ltd.Member">
		<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-01-01</xbrli:startDate>
			<xbrli:endDate>2019-12-31</xbrli:endDate>
		</xbrli:period>
	</xbrli:context><xbrli:context id="FI2019Q4_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_InProcessResearchAndDevelopmentMember">
		<xbrli:entity>
			<xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier>
			<xbrli:segment>
				<xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:InProcessResearchAndDevelopmentMember</xbrldi:explicitMember>
			</xbrli:segment>
		</xbrli:entity>
		<xbrli:period>
			<xbrli:instant>2019-12-31</xbrli:instant>
		</xbrli:period>
	</xbrli:context><xbrli:context id="FI2017Q4_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_cgnx_CustomerContractsAndRelationshipsMember">
		<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>2017-12-31</xbrli:instant>
		</xbrli:period>
	</xbrli:context><xbrli:context id="FI2017Q4_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_DistributionRightsMember">
		<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>2017-12-31</xbrli:instant>
		</xbrli:period>
	</xbrli:context><xbrli:context id="FI2017Q4_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_DevelopedTechnologyRightsMember">
		<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>2017-12-31</xbrli:instant>
		</xbrli:period>
	</xbrli:context><xbrli:context id="FI2019Q4_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_DevelopedTechnologyRightsMember">
		<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>2019-12-31</xbrli:instant>
		</xbrli:period>
	</xbrli:context><xbrli:context id="FI2019Q4_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_TrademarksMember">
		<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>2019-12-31</xbrli:instant>
		</xbrli:period>
	</xbrli:context><xbrli:context id="FI2019Q4_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_DistributionRightsMember">
		<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>2019-12-31</xbrli:instant>
		</xbrli:period>
	</xbrli:context><xbrli:context id="FI2017Q4_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_OtherIntangibleAssetsMember">
		<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>2017-12-31</xbrli:instant>
		</xbrli:period>
	</xbrli:context><xbrli:context id="FI2019Q4_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_cgnx_CustomerContractsAndRelationshipsMember">
		<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>2019-12-31</xbrli:instant>
		</xbrli:period>
	</xbrli:context><xbrli:context id="FI2019Q4_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_NoncompeteAgreementsMember">
		<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>2019-12-31</xbrli:instant>
		</xbrli:period>
	</xbrli:context><xbrli:context id="FD2019Q4YTD_us-gaap_HedgingDesignationAxis_us-gaap_NondesignatedMember">
		<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>2019-01-01</xbrli:startDate>
			<xbrli:endDate>2019-12-31</xbrli:endDate>
		</xbrli:period>
	</xbrli:context><xbrli:context id="FD2019Q4YTD_us-gaap_HedgingDesignationAxis_us-gaap_DesignatedAsHedgingInstrumentMember">
		<xbrli:entity>
			<xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier>
			<xbrli:segment>
				<xbrldi:explicitMember dimension="us-gaap:HedgingDesignationAxis">us-gaap:DesignatedAsHedgingInstrumentMember</xbrldi:explicitMember>
			</xbrli:segment>
		</xbrli:entity>
		<xbrli:period>
			<xbrli:startDate>2019-01-01</xbrli:startDate>
			<xbrli:endDate>2019-12-31</xbrli:endDate>
		</xbrli:period>
	</xbrli:context><xbrli:context id="FI2018Q4_us-gaap_BalanceSheetLocationAxis_us-gaap_PrepaidExpensesAndOtherCurrentAssetsMember_us-gaap_HedgingDesignationAxis_us-gaap_NondesignatedMember">
		<xbrli:entity>
			<xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier>
			<xbrli:segment>
				<xbrldi:explicitMember dimension="us-gaap:BalanceSheetLocationAxis">us-gaap:PrepaidExpensesAndOtherCurrentAssetsMember</xbrldi:explicitMember>
				<xbrldi:explicitMember dimension="us-gaap:HedgingDesignationAxis">us-gaap:NondesignatedMember</xbrldi:explicitMember>
			</xbrli:segment>
		</xbrli:entity>
		<xbrli:period>
			<xbrli:instant>2018-12-31</xbrli:instant>
		</xbrli:period>
	</xbrli:context><xbrli:context id="FI2018Q4_us-gaap_BalanceSheetLocationAxis_cgnx_AccruedExpensesMember_us-gaap_HedgingDesignationAxis_us-gaap_NondesignatedMember">
		<xbrli:entity>
			<xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier>
			<xbrli:segment>
				<xbrldi:explicitMember dimension="us-gaap:BalanceSheetLocationAxis">cgnx:AccruedExpensesMember</xbrldi:explicitMember>
				<xbrldi:explicitMember dimension="us-gaap:HedgingDesignationAxis">us-gaap:NondesignatedMember</xbrldi:explicitMember>
			</xbrli:segment>
		</xbrli:entity>
		<xbrli:period>
			<xbrli:instant>2018-12-31</xbrli:instant>
		</xbrli:period>
	</xbrli:context><xbrli:context id="FI2019Q4_us-gaap_BalanceSheetLocationAxis_cgnx_AccruedExpensesMember_us-gaap_HedgingDesignationAxis_us-gaap_NondesignatedMember">
		<xbrli:entity>
			<xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier>
			<xbrli:segment>
				<xbrldi:explicitMember dimension="us-gaap:BalanceSheetLocationAxis">cgnx:AccruedExpensesMember</xbrldi:explicitMember>
				<xbrldi:explicitMember dimension="us-gaap:HedgingDesignationAxis">us-gaap:NondesignatedMember</xbrldi:explicitMember>
			</xbrli:segment>
		</xbrli:entity>
		<xbrli:period>
			<xbrli:instant>2019-12-31</xbrli:instant>
		</xbrli:period>
	</xbrli:context><xbrli:context id="FI2019Q4_us-gaap_BalanceSheetLocationAxis_us-gaap_PrepaidExpensesAndOtherCurrentAssetsMember_us-gaap_HedgingDesignationAxis_us-gaap_NondesignatedMember">
		<xbrli:entity>
			<xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier>
			<xbrli:segment>
				<xbrldi:explicitMember dimension="us-gaap:BalanceSheetLocationAxis">us-gaap:PrepaidExpensesAndOtherCurrentAssetsMember</xbrldi:explicitMember>
				<xbrldi:explicitMember dimension="us-gaap:HedgingDesignationAxis">us-gaap:NondesignatedMember</xbrldi:explicitMember>
			</xbrli:segment>
		</xbrli:entity>
		<xbrli:period>
			<xbrli:instant>2019-12-31</xbrli:instant>
		</xbrli:period>
	</xbrli:context><xbrli:context id="FD2017Q4YTD_us-gaap_HedgingDesignationAxis_us-gaap_DesignatedAsHedgingInstrumentMember_us-gaap_IncomeStatementLocationAxis_us-gaap_SalesRevenueGoodsNetMember">
		<xbrli:entity>
			<xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier>
			<xbrli:segment>
				<xbrldi:explicitMember dimension="us-gaap:HedgingDesignationAxis">us-gaap:DesignatedAsHedgingInstrumentMember</xbrldi:explicitMember>
				<xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:SalesRevenueGoodsNetMember</xbrldi:explicitMember>
			</xbrli:segment>
		</xbrli:entity>
		<xbrli:period>
			<xbrli:startDate>2017-01-01</xbrli:startDate>
			<xbrli:endDate>2017-12-31</xbrli:endDate>
		</xbrli:period>
	</xbrli:context><xbrli:context id="FD2017Q4YTD_us-gaap_HedgingDesignationAxis_us-gaap_DesignatedAsHedgingInstrumentMember_us-gaap_IncomeStatementLocationAxis_us-gaap_GeneralAndAdministrativeExpenseMember">
		<xbrli:entity>
			<xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier>
			<xbrli:segment>
				<xbrldi:explicitMember dimension="us-gaap:HedgingDesignationAxis">us-gaap:DesignatedAsHedgingInstrumentMember</xbrldi:explicitMember>
				<xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:GeneralAndAdministrativeExpenseMember</xbrldi:explicitMember>
			</xbrli:segment>
		</xbrli:entity>
		<xbrli:period>
			<xbrli:startDate>2017-01-01</xbrli:startDate>
			<xbrli:endDate>2017-12-31</xbrli:endDate>
		</xbrli:period>
	</xbrli:context><xbrli:context id="FD2018Q4YTD_us-gaap_HedgingDesignationAxis_us-gaap_DesignatedAsHedgingInstrumentMember_us-gaap_IncomeStatementLocationAxis_us-gaap_CashFlowHedgingMember">
		<xbrli:entity>
			<xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier>
			<xbrli:segment>
				<xbrldi:explicitMember dimension="us-gaap:HedgingDesignationAxis">us-gaap:DesignatedAsHedgingInstrumentMember</xbrldi:explicitMember>
				<xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:CashFlowHedgingMember</xbrldi:explicitMember>
			</xbrli:segment>
		</xbrli:entity>
		<xbrli:period>
			<xbrli:startDate>2018-01-01</xbrli:startDate>
			<xbrli:endDate>2018-12-31</xbrli:endDate>
		</xbrli:period>
	</xbrli:context><xbrli:context id="FD2017Q4YTD_us-gaap_HedgingDesignationAxis_us-gaap_NondesignatedMember_us-gaap_IncomeStatementLocationAxis_us-gaap_ForeignCurrencyGainLossMember">
		<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="us-gaap:IncomeStatementLocationAxis">us-gaap:ForeignCurrencyGainLossMember</xbrldi:explicitMember>
			</xbrli:segment>
		</xbrli:entity>
		<xbrli:period>
			<xbrli:startDate>2017-01-01</xbrli:startDate>
			<xbrli:endDate>2017-12-31</xbrli:endDate>
		</xbrli:period>
	</xbrli:context><xbrli:context id="FD2017Q4YTD_us-gaap_HedgingDesignationAxis_us-gaap_DesignatedAsHedgingInstrumentMember_us-gaap_IncomeStatementLocationAxis_us-gaap_CashFlowHedgingMember">
		<xbrli:entity>
			<xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier>
			<xbrli:segment>
				<xbrldi:explicitMember dimension="us-gaap:HedgingDesignationAxis">us-gaap:DesignatedAsHedgingInstrumentMember</xbrldi:explicitMember>
				<xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:CashFlowHedgingMember</xbrldi:explicitMember>
			</xbrli:segment>
		</xbrli:entity>
		<xbrli:period>
			<xbrli:startDate>2017-01-01</xbrli:startDate>
			<xbrli:endDate>2017-12-31</xbrli:endDate>
		</xbrli:period>
	</xbrli:context><xbrli:context id="FD2019Q4YTD_us-gaap_HedgingDesignationAxis_us-gaap_NondesignatedMember_us-gaap_IncomeStatementLocationAxis_us-gaap_ForeignCurrencyGainLossMember">
		<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="us-gaap:IncomeStatementLocationAxis">us-gaap:ForeignCurrencyGainLossMember</xbrldi:explicitMember>
			</xbrli:segment>
		</xbrli:entity>
		<xbrli:period>
			<xbrli:startDate>2019-01-01</xbrli:startDate>
			<xbrli:endDate>2019-12-31</xbrli:endDate>
		</xbrli:period>
	</xbrli:context><xbrli:context id="FD2018Q4YTD_us-gaap_HedgingDesignationAxis_us-gaap_DesignatedAsHedgingInstrumentMember_us-gaap_IncomeStatementLocationAxis_us-gaap_ResearchAndDevelopmentExpenseMember">
		<xbrli:entity>
			<xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier>
			<xbrli:segment>
				<xbrldi:explicitMember dimension="us-gaap:HedgingDesignationAxis">us-gaap:DesignatedAsHedgingInstrumentMember</xbrldi:explicitMember>
				<xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:ResearchAndDevelopmentExpenseMember</xbrldi:explicitMember>
			</xbrli:segment>
		</xbrli:entity>
		<xbrli:period>
			<xbrli:startDate>2018-01-01</xbrli:startDate>
			<xbrli:endDate>2018-12-31</xbrli:endDate>
		</xbrli:period>
	</xbrli:context><xbrli:context id="FD2018Q4YTD_us-gaap_HedgingDesignationAxis_us-gaap_DesignatedAsHedgingInstrumentMember_us-gaap_IncomeStatementLocationAxis_us-gaap_SalesRevenueGoodsNetMember">
		<xbrli:entity>
			<xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier>
			<xbrli:segment>
				<xbrldi:explicitMember dimension="us-gaap:HedgingDesignationAxis">us-gaap:DesignatedAsHedgingInstrumentMember</xbrldi:explicitMember>
				<xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:SalesRevenueGoodsNetMember</xbrldi:explicitMember>
			</xbrli:segment>
		</xbrli:entity>
		<xbrli:period>
			<xbrli:startDate>2018-01-01</xbrli:startDate>
			<xbrli:endDate>2018-12-31</xbrli:endDate>
		</xbrli:period>
	</xbrli:context><xbrli:context id="FD2019Q4YTD_us-gaap_HedgingDesignationAxis_us-gaap_DesignatedAsHedgingInstrumentMember_us-gaap_IncomeStatementLocationAxis_us-gaap_GeneralAndAdministrativeExpenseMember">
		<xbrli:entity>
			<xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier>
			<xbrli:segment>
				<xbrldi:explicitMember dimension="us-gaap:HedgingDesignationAxis">us-gaap:DesignatedAsHedgingInstrumentMember</xbrldi:explicitMember>
				<xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:GeneralAndAdministrativeExpenseMember</xbrldi:explicitMember>
			</xbrli:segment>
		</xbrli:entity>
		<xbrli:period>
			<xbrli:startDate>2019-01-01</xbrli:startDate>
			<xbrli:endDate>2019-12-31</xbrli:endDate>
		</xbrli:period>
	</xbrli:context><xbrli:context id="FD2019Q4YTD_us-gaap_HedgingDesignationAxis_us-gaap_DesignatedAsHedgingInstrumentMember_us-gaap_IncomeStatementLocationAxis_us-gaap_ResearchAndDevelopmentExpenseMember">
		<xbrli:entity>
			<xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier>
			<xbrli:segment>
				<xbrldi:explicitMember dimension="us-gaap:HedgingDesignationAxis">us-gaap:DesignatedAsHedgingInstrumentMember</xbrldi:explicitMember>
				<xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:ResearchAndDevelopmentExpenseMember</xbrldi:explicitMember>
			</xbrli:segment>
		</xbrli:entity>
		<xbrli:period>
			<xbrli:startDate>2019-01-01</xbrli:startDate>
			<xbrli:endDate>2019-12-31</xbrli:endDate>
		</xbrli:period>
	</xbrli:context><xbrli:context id="FD2019Q4YTD_us-gaap_HedgingDesignationAxis_us-gaap_DesignatedAsHedgingInstrumentMember_us-gaap_IncomeStatementLocationAxis_us-gaap_CashFlowHedgingMember">
		<xbrli:entity>
			<xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier>
			<xbrli:segment>
				<xbrldi:explicitMember dimension="us-gaap:HedgingDesignationAxis">us-gaap:DesignatedAsHedgingInstrumentMember</xbrldi:explicitMember>
				<xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:CashFlowHedgingMember</xbrldi:explicitMember>
			</xbrli:segment>
		</xbrli:entity>
		<xbrli:period>
			<xbrli:startDate>2019-01-01</xbrli:startDate>
			<xbrli:endDate>2019-12-31</xbrli:endDate>
		</xbrli:period>
	</xbrli:context><xbrli:context id="FD2018Q4YTD_us-gaap_HedgingDesignationAxis_us-gaap_NondesignatedMember_us-gaap_IncomeStatementLocationAxis_us-gaap_ForeignCurrencyGainLossMember">
		<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="us-gaap:IncomeStatementLocationAxis">us-gaap:ForeignCurrencyGainLossMember</xbrldi:explicitMember>
			</xbrli:segment>
		</xbrli:entity>
		<xbrli:period>
			<xbrli:startDate>2018-01-01</xbrli:startDate>
			<xbrli:endDate>2018-12-31</xbrli:endDate>
		</xbrli:period>
	</xbrli:context><xbrli:context id="FD2019Q4YTD_us-gaap_HedgingDesignationAxis_us-gaap_DesignatedAsHedgingInstrumentMember_us-gaap_IncomeStatementLocationAxis_us-gaap_SalesRevenueGoodsNetMember">
		<xbrli:entity>
			<xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier>
			<xbrli:segment>
				<xbrldi:explicitMember dimension="us-gaap:HedgingDesignationAxis">us-gaap:DesignatedAsHedgingInstrumentMember</xbrldi:explicitMember>
				<xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:SalesRevenueGoodsNetMember</xbrldi:explicitMember>
			</xbrli:segment>
		</xbrli:entity>
		<xbrli:period>
			<xbrli:startDate>2019-01-01</xbrli:startDate>
			<xbrli:endDate>2019-12-31</xbrli:endDate>
		</xbrli:period>
	</xbrli:context><xbrli:context id="FD2017Q4YTD_us-gaap_HedgingDesignationAxis_us-gaap_DesignatedAsHedgingInstrumentMember_us-gaap_IncomeStatementLocationAxis_us-gaap_ResearchAndDevelopmentExpenseMember">
		<xbrli:entity>
			<xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier>
			<xbrli:segment>
				<xbrldi:explicitMember dimension="us-gaap:HedgingDesignationAxis">us-gaap:DesignatedAsHedgingInstrumentMember</xbrldi:explicitMember>
				<xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:ResearchAndDevelopmentExpenseMember</xbrldi:explicitMember>
			</xbrli:segment>
		</xbrli:entity>
		<xbrli:period>
			<xbrli:startDate>2017-01-01</xbrli:startDate>
			<xbrli:endDate>2017-12-31</xbrli:endDate>
		</xbrli:period>
	</xbrli:context><xbrli:context id="FD2018Q4YTD_us-gaap_HedgingDesignationAxis_us-gaap_DesignatedAsHedgingInstrumentMember_us-gaap_IncomeStatementLocationAxis_us-gaap_GeneralAndAdministrativeExpenseMember">
		<xbrli:entity>
			<xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier>
			<xbrli:segment>
				<xbrldi:explicitMember dimension="us-gaap:HedgingDesignationAxis">us-gaap:DesignatedAsHedgingInstrumentMember</xbrldi:explicitMember>
				<xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:GeneralAndAdministrativeExpenseMember</xbrldi:explicitMember>
			</xbrli:segment>
		</xbrli:entity>
		<xbrli:period>
			<xbrli:startDate>2018-01-01</xbrli:startDate>
			<xbrli:endDate>2018-12-31</xbrli:endDate>
		</xbrli:period>
	</xbrli:context><xbrli:context id="FI2018Q4_srt_CurrencyAxis_currency_SGD_us-gaap_HedgingDesignationAxis_us-gaap_NondesignatedMember">
		<xbrli:entity>
			<xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier>
			<xbrli:segment>
				<xbrldi:explicitMember dimension="srt:CurrencyAxis">currency:SGD</xbrldi:explicitMember>
				<xbrldi:explicitMember dimension="us-gaap:HedgingDesignationAxis">us-gaap:NondesignatedMember</xbrldi:explicitMember>
			</xbrli:segment>
		</xbrli:entity>
		<xbrli:period>
			<xbrli:instant>2018-12-31</xbrli:instant>
		</xbrli:period>
	</xbrli:context><xbrli:context id="FI2019Q4_srt_CurrencyAxis_currency_SGD_us-gaap_HedgingDesignationAxis_us-gaap_NondesignatedMember">
		<xbrli:entity>
			<xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier>
			<xbrli:segment>
				<xbrldi:explicitMember dimension="srt:CurrencyAxis">currency:SGD</xbrldi:explicitMember>
				<xbrldi:explicitMember dimension="us-gaap:HedgingDesignationAxis">us-gaap:NondesignatedMember</xbrldi:explicitMember>
			</xbrli:segment>
		</xbrli:entity>
		<xbrli:period>
			<xbrli:instant>2019-12-31</xbrli:instant>
		</xbrli:period>
	</xbrli:context><xbrli:context id="FI2018Q4_srt_CurrencyAxis_currency_TWD_us-gaap_HedgingDesignationAxis_us-gaap_NondesignatedMember">
		<xbrli:entity>
			<xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier>
			<xbrli:segment>
				<xbrldi:explicitMember dimension="srt:CurrencyAxis">currency:TWD</xbrldi:explicitMember>
				<xbrldi:explicitMember dimension="us-gaap:HedgingDesignationAxis">us-gaap:NondesignatedMember</xbrldi:explicitMember>
			</xbrli:segment>
		</xbrli:entity>
		<xbrli:period>
			<xbrli:instant>2018-12-31</xbrli:instant>
		</xbrli:period>
	</xbrli:context><xbrli:context id="FI2018Q4_srt_CurrencyAxis_currency_EUR_us-gaap_HedgingDesignationAxis_us-gaap_NondesignatedMember">
		<xbrli:entity>
			<xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier>
			<xbrli:segment>
				<xbrldi:explicitMember dimension="srt:CurrencyAxis">currency:EUR</xbrldi:explicitMember>
				<xbrldi:explicitMember dimension="us-gaap:HedgingDesignationAxis">us-gaap:NondesignatedMember</xbrldi:explicitMember>
			</xbrli:segment>
		</xbrli:entity>
		<xbrli:period>
			<xbrli:instant>2018-12-31</xbrli:instant>
		</xbrli:period>
	</xbrli:context><xbrli:context id="FI2019Q4_srt_CurrencyAxis_currency_KRW_us-gaap_HedgingDesignationAxis_us-gaap_NondesignatedMember">
		<xbrli:entity>
			<xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier>
			<xbrli:segment>
				<xbrldi:explicitMember dimension="srt:CurrencyAxis">currency:KRW</xbrldi:explicitMember>
				<xbrldi:explicitMember dimension="us-gaap:HedgingDesignationAxis">us-gaap:NondesignatedMember</xbrldi:explicitMember>
			</xbrli:segment>
		</xbrli:entity>
		<xbrli:period>
			<xbrli:instant>2019-12-31</xbrli:instant>
		</xbrli:period>
	</xbrli:context><xbrli:context id="FI2018Q4_srt_CurrencyAxis_currency_GBP_us-gaap_HedgingDesignationAxis_us-gaap_NondesignatedMember">
		<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>2018-12-31</xbrli:instant>
		</xbrli:period>
	</xbrli:context><xbrli:context id="FI2019Q4_srt_CurrencyAxis_currency_GBP_us-gaap_HedgingDesignationAxis_us-gaap_NondesignatedMember">
		<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>2019-12-31</xbrli:instant>
		</xbrli:period>
	</xbrli:context><xbrli:context id="FI2019Q4_srt_CurrencyAxis_currency_TWD_us-gaap_HedgingDesignationAxis_us-gaap_NondesignatedMember">
		<xbrli:entity>
			<xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier>
			<xbrli:segment>
				<xbrldi:explicitMember dimension="srt:CurrencyAxis">currency:TWD</xbrldi:explicitMember>
				<xbrldi:explicitMember dimension="us-gaap:HedgingDesignationAxis">us-gaap:NondesignatedMember</xbrldi:explicitMember>
			</xbrli:segment>
		</xbrli:entity>
		<xbrli:period>
			<xbrli:instant>2019-12-31</xbrli:instant>
		</xbrli:period>
	</xbrli:context><xbrli:context id="FI2018Q4_srt_CurrencyAxis_currency_KRW_us-gaap_HedgingDesignationAxis_us-gaap_NondesignatedMember">
		<xbrli:entity>
			<xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier>
			<xbrli:segment>
				<xbrldi:explicitMember dimension="srt:CurrencyAxis">currency:KRW</xbrldi:explicitMember>
				<xbrldi:explicitMember dimension="us-gaap:HedgingDesignationAxis">us-gaap:NondesignatedMember</xbrldi:explicitMember>
			</xbrli:segment>
		</xbrli:entity>
		<xbrli:period>
			<xbrli:instant>2018-12-31</xbrli:instant>
		</xbrli:period>
	</xbrli:context><xbrli:context id="FI2019Q4_srt_CurrencyAxis_currency_JPY_us-gaap_HedgingDesignationAxis_us-gaap_NondesignatedMember">
		<xbrli:entity>
			<xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier>
			<xbrli:segment>
				<xbrldi:explicitMember dimension="srt:CurrencyAxis">currency:JPY</xbrldi:explicitMember>
				<xbrldi:explicitMember dimension="us-gaap:HedgingDesignationAxis">us-gaap:NondesignatedMember</xbrldi:explicitMember>
			</xbrli:segment>
		</xbrli:entity>
		<xbrli:period>
			<xbrli:instant>2019-12-31</xbrli:instant>
		</xbrli:period>
	</xbrli:context><xbrli:context id="FI2019Q4_srt_CurrencyAxis_currency_MXN_us-gaap_HedgingDesignationAxis_us-gaap_NondesignatedMember">
		<xbrli:entity>
			<xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier>
			<xbrli:segment>
				<xbrldi:explicitMember dimension="srt:CurrencyAxis">currency:MXN</xbrldi:explicitMember>
				<xbrldi:explicitMember dimension="us-gaap:HedgingDesignationAxis">us-gaap:NondesignatedMember</xbrldi:explicitMember>
			</xbrli:segment>
		</xbrli:entity>
		<xbrli:period>
			<xbrli:instant>2019-12-31</xbrli:instant>
		</xbrli:period>
	</xbrli:context><xbrli:context id="FI2018Q4_srt_CurrencyAxis_currency_MXN_us-gaap_HedgingDesignationAxis_us-gaap_NondesignatedMember">
		<xbrli:entity>
			<xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier>
			<xbrli:segment>
				<xbrldi:explicitMember dimension="srt:CurrencyAxis">currency:MXN</xbrldi:explicitMember>
				<xbrldi:explicitMember dimension="us-gaap:HedgingDesignationAxis">us-gaap:NondesignatedMember</xbrldi:explicitMember>
			</xbrli:segment>
		</xbrli:entity>
		<xbrli:period>
			<xbrli:instant>2018-12-31</xbrli:instant>
		</xbrli:period>
	</xbrli:context><xbrli:context id="FI2018Q4_srt_CurrencyAxis_currency_CAD_us-gaap_HedgingDesignationAxis_us-gaap_NondesignatedMember">
		<xbrli:entity>
			<xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier>
			<xbrli:segment>
				<xbrldi:explicitMember dimension="srt:CurrencyAxis">currency:CAD</xbrldi:explicitMember>
				<xbrldi:explicitMember dimension="us-gaap:HedgingDesignationAxis">us-gaap:NondesignatedMember</xbrldi:explicitMember>
			</xbrli:segment>
		</xbrli:entity>
		<xbrli:period>
			<xbrli:instant>2018-12-31</xbrli:instant>
		</xbrli:period>
	</xbrli:context><xbrli:context id="FI2018Q4_srt_CurrencyAxis_currency_HUF_us-gaap_HedgingDesignationAxis_us-gaap_NondesignatedMember">
		<xbrli:entity>
			<xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier>
			<xbrli:segment>
				<xbrldi:explicitMember dimension="srt:CurrencyAxis">currency:HUF</xbrldi:explicitMember>
				<xbrldi:explicitMember dimension="us-gaap:HedgingDesignationAxis">us-gaap:NondesignatedMember</xbrldi:explicitMember>
			</xbrli:segment>
		</xbrli:entity>
		<xbrli:period>
			<xbrli:instant>2018-12-31</xbrli:instant>
		</xbrli:period>
	</xbrli:context><xbrli:context id="FI2019Q4_srt_CurrencyAxis_currency_CAD_us-gaap_HedgingDesignationAxis_us-gaap_NondesignatedMember">
		<xbrli:entity>
			<xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier>
			<xbrli:segment>
				<xbrldi:explicitMember dimension="srt:CurrencyAxis">currency:CAD</xbrldi:explicitMember>
				<xbrldi:explicitMember dimension="us-gaap:HedgingDesignationAxis">us-gaap:NondesignatedMember</xbrldi:explicitMember>
			</xbrli:segment>
		</xbrli:entity>
		<xbrli:period>
			<xbrli:instant>2019-12-31</xbrli:instant>
		</xbrli:period>
	</xbrli:context><xbrli:context id="FI2018Q4_srt_CurrencyAxis_currency_JPY_us-gaap_HedgingDesignationAxis_us-gaap_NondesignatedMember">
		<xbrli:entity>
			<xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier>
			<xbrli:segment>
				<xbrldi:explicitMember dimension="srt:CurrencyAxis">currency:JPY</xbrldi:explicitMember>
				<xbrldi:explicitMember dimension="us-gaap:HedgingDesignationAxis">us-gaap:NondesignatedMember</xbrldi:explicitMember>
			</xbrli:segment>
		</xbrli:entity>
		<xbrli:period>
			<xbrli:instant>2018-12-31</xbrli:instant>
		</xbrli:period>
	</xbrli:context><xbrli:context id="FI2019Q4_srt_CurrencyAxis_currency_HUF_us-gaap_HedgingDesignationAxis_us-gaap_NondesignatedMember">
		<xbrli:entity>
			<xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier>
			<xbrli:segment>
				<xbrldi:explicitMember dimension="srt:CurrencyAxis">currency:HUF</xbrldi:explicitMember>
				<xbrldi:explicitMember dimension="us-gaap:HedgingDesignationAxis">us-gaap:NondesignatedMember</xbrldi:explicitMember>
			</xbrli:segment>
		</xbrli:entity>
		<xbrli:period>
			<xbrli:instant>2019-12-31</xbrli:instant>
		</xbrli:period>
	</xbrli:context><xbrli:context id="FI2019Q4_srt_CurrencyAxis_currency_EUR_us-gaap_HedgingDesignationAxis_us-gaap_NondesignatedMember">
		<xbrli:entity>
			<xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier>
			<xbrli:segment>
				<xbrldi:explicitMember dimension="srt:CurrencyAxis">currency:EUR</xbrldi:explicitMember>
				<xbrldi:explicitMember dimension="us-gaap:HedgingDesignationAxis">us-gaap:NondesignatedMember</xbrldi:explicitMember>
			</xbrli:segment>
		</xbrli:entity>
		<xbrli:period>
			<xbrli:instant>2019-12-31</xbrli:instant>
		</xbrli:period>
	</xbrli:context><xbrli:context id="FD2017Q4YTD_srt_StatementGeographicalAxis_cgnx_OtherAsiaMember">
		<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>2017-01-01</xbrli:startDate>
			<xbrli:endDate>2017-12-31</xbrli:endDate>
		</xbrli:period>
	</xbrli:context><xbrli:context id="FD2018Q4YTD_srt_StatementGeographicalAxis_srt_EuropeMember">
		<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>2018-01-01</xbrli:startDate>
			<xbrli:endDate>2018-12-31</xbrli:endDate>
		</xbrli:period>
	</xbrli:context><xbrli:context id="FD2017Q4YTD_srt_StatementGeographicalAxis_cgnx_GreaterChinaMember">
		<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>2017-01-01</xbrli:startDate>
			<xbrli:endDate>2017-12-31</xbrli:endDate>
		</xbrli:period>
	</xbrli:context><xbrli:context id="FD2018Q4YTD_srt_StatementGeographicalAxis_cgnx_GreaterChinaMember">
		<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>2018-01-01</xbrli:startDate>
			<xbrli:endDate>2018-12-31</xbrli:endDate>
		</xbrli:period>
	</xbrli:context><xbrli:context id="FD2019Q4YTD_srt_StatementGeographicalAxis_srt_EuropeMember">
		<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>2019-01-01</xbrli:startDate>
			<xbrli:endDate>2019-12-31</xbrli:endDate>
		</xbrli:period>
	</xbrli:context><xbrli:context id="FD2018Q4YTD_srt_StatementGeographicalAxis_cgnx_OtherAsiaMember">
		<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>2018-01-01</xbrli:startDate>
			<xbrli:endDate>2018-12-31</xbrli:endDate>
		</xbrli:period>
	</xbrli:context><xbrli:context id="FD2017Q4YTD_srt_StatementGeographicalAxis_srt_AmericasMember">
		<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>2017-01-01</xbrli:startDate>
			<xbrli:endDate>2017-12-31</xbrli:endDate>
		</xbrli:period>
	</xbrli:context><xbrli:context id="FD2017Q4YTD_srt_StatementGeographicalAxis_srt_EuropeMember">
		<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>2017-01-01</xbrli:startDate>
			<xbrli:endDate>2017-12-31</xbrli:endDate>
		</xbrli:period>
	</xbrli:context><xbrli:context id="FD2019Q4YTD_srt_StatementGeographicalAxis_cgnx_GreaterChinaMember">
		<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>2019-01-01</xbrli:startDate>
			<xbrli:endDate>2019-12-31</xbrli:endDate>
		</xbrli:period>
	</xbrli:context><xbrli:context id="FD2019Q4YTD_srt_StatementGeographicalAxis_srt_AmericasMember">
		<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>2019-01-01</xbrli:startDate>
			<xbrli:endDate>2019-12-31</xbrli:endDate>
		</xbrli:period>
	</xbrli:context><xbrli:context id="FD2018Q4YTD_srt_StatementGeographicalAxis_srt_AmericasMember">
		<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>2018-01-01</xbrli:startDate>
			<xbrli:endDate>2018-12-31</xbrli:endDate>
		</xbrli:period>
	</xbrli:context><xbrli:context id="FD2019Q4YTD_srt_StatementGeographicalAxis_cgnx_OtherAsiaMember">
		<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>2019-01-01</xbrli:startDate>
			<xbrli:endDate>2019-12-31</xbrli:endDate>
		</xbrli:period>
	</xbrli:context><xbrli:context id="FD2019Q4YTD_srt_ProductOrServiceAxis_cgnx_ApplicationofCustomerSpecificSolutionsMember">
		<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>2019-01-01</xbrli:startDate>
			<xbrli:endDate>2019-12-31</xbrli:endDate>
		</xbrli:period>
	</xbrli:context><xbrli:context id="FD2019Q4YTD_srt_ProductOrServiceAxis_cgnx_StandardProductandServicesMember">
		<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>2019-01-01</xbrli:startDate>
			<xbrli:endDate>2019-12-31</xbrli:endDate>
		</xbrli:period>
	</xbrli:context><xbrli:context id="FD2017Q4YTD_srt_ProductOrServiceAxis_cgnx_StandardProductandServicesMember">
		<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>2017-01-01</xbrli:startDate>
			<xbrli:endDate>2017-12-31</xbrli:endDate>
		</xbrli:period>
	</xbrli:context><xbrli:context id="FD2018Q4YTD_srt_ProductOrServiceAxis_cgnx_StandardProductandServicesMember">
		<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>2018-01-01</xbrli:startDate>
			<xbrli:endDate>2018-12-31</xbrli:endDate>
		</xbrli:period>
	</xbrli:context><xbrli:context id="FD2018Q4YTD_srt_ProductOrServiceAxis_cgnx_ApplicationofCustomerSpecificSolutionsMember">
		<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>2018-01-01</xbrli:startDate>
			<xbrli:endDate>2018-12-31</xbrli:endDate>
		</xbrli:period>
	</xbrli:context><xbrli:context id="FD2017Q4YTD_srt_ProductOrServiceAxis_cgnx_ApplicationofCustomerSpecificSolutionsMember">
		<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>2017-01-01</xbrli:startDate>
			<xbrli:endDate>2017-12-31</xbrli:endDate>
		</xbrli:period>
	</xbrli:context><xbrli:context id="D2018Q1Feb.1-28_us-gaap_ShareRepurchaseProgramAxis_cgnx_RepurchaseProgramTwentyFifteenMember">
		<xbrli:entity>
			<xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier>
			<xbrli:segment>
				<xbrldi:explicitMember dimension="us-gaap:ShareRepurchaseProgramAxis">cgnx:RepurchaseProgramTwentyFifteenMember</xbrldi:explicitMember>
			</xbrli:segment>
		</xbrli:entity>
		<xbrli:period>
			<xbrli:startDate>2018-02-01</xbrli:startDate>
			<xbrli:endDate>2018-02-28</xbrli:endDate>
		</xbrli:period>
	</xbrli:context><xbrli:context id="FD2019Q4YTD_us-gaap_ShareRepurchaseProgramAxis_cgnx_RepurchaseProgramOctober2018Member">
		<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>2019-01-01</xbrli:startDate>
			<xbrli:endDate>2019-12-31</xbrli:endDate>
		</xbrli:period>
	</xbrli:context><xbrli:context id="I2018Q2Apr25">
		<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="FD2019Q4YTD_us-gaap_ShareRepurchaseProgramAxis_cgnx_RepurchaseProgramTwentyFifteenMember">
		<xbrli:entity>
			<xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier>
			<xbrli:segment>
				<xbrldi:explicitMember dimension="us-gaap:ShareRepurchaseProgramAxis">cgnx:RepurchaseProgramTwentyFifteenMember</xbrldi:explicitMember>
			</xbrli:segment>
		</xbrli:entity>
		<xbrli:period>
			<xbrli:startDate>2019-01-01</xbrli:startDate>
			<xbrli:endDate>2019-12-31</xbrli:endDate>
		</xbrli:period>
	</xbrli:context><xbrli:context id="FD2018Q4YTD_us-gaap_ShareRepurchaseProgramAxis_cgnx_RepurchaseProgramOctober2018Member">
		<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>2018-01-01</xbrli:startDate>
			<xbrli:endDate>2018-12-31</xbrli:endDate>
		</xbrli:period>
	</xbrli:context><xbrli:context id="FD2018Q1QTD_us-gaap_ShareRepurchaseProgramAxis_cgnx_RepurchaseProgram2014Member">
		<xbrli:entity>
			<xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier>
			<xbrli:segment>
				<xbrldi:explicitMember dimension="us-gaap:ShareRepurchaseProgramAxis">cgnx:RepurchaseProgram2014Member</xbrldi:explicitMember>
			</xbrli:segment>
		</xbrli:entity>
		<xbrli:period>
			<xbrli:startDate>2018-01-01</xbrli:startDate>
			<xbrli:endDate>2018-04-01</xbrli:endDate>
		</xbrli:period>
	</xbrli:context><xbrli:context id="FI2018Q3_us-gaap_ShareRepurchaseProgramAxis_cgnx_RepurchaseProgramNovember2015Member">
		<xbrli:entity>
			<xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier>
			<xbrli:segment>
				<xbrldi:explicitMember dimension="us-gaap:ShareRepurchaseProgramAxis">cgnx:RepurchaseProgramNovember2015Member</xbrldi:explicitMember>
			</xbrli:segment>
		</xbrli:entity>
		<xbrli:period>
			<xbrli:instant>2018-09-30</xbrli:instant>
		</xbrli:period>
	</xbrli:context><xbrli:context id="FD2018Q3YTD">
		<xbrli:entity>
			<xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier>
		</xbrli:entity>
		<xbrli:period>
			<xbrli:startDate>2018-01-01</xbrli:startDate>
			<xbrli:endDate>2018-09-30</xbrli:endDate>
		</xbrli:period>
	</xbrli:context><xbrli:context id="FD2018Q1QTD_us-gaap_ShareRepurchaseProgramAxis_cgnx_RepurchaseProgram2014Member_us-gaap_StatementClassOfStockAxis_us-gaap_CommonStockMember">
		<xbrli:entity>
			<xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier>
			<xbrli:segment>
				<xbrldi:explicitMember dimension="us-gaap:ShareRepurchaseProgramAxis">cgnx:RepurchaseProgram2014Member</xbrldi:explicitMember>
				<xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">us-gaap:CommonStockMember</xbrldi:explicitMember>
			</xbrli:segment>
		</xbrli:entity>
		<xbrli:period>
			<xbrli:startDate>2018-01-01</xbrli:startDate>
			<xbrli:endDate>2018-04-01</xbrli:endDate>
		</xbrli:period>
	</xbrli:context><xbrli:context id="D2017Q4SD">
		<xbrli:entity>
			<xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier>
		</xbrli:entity>
		<xbrli:period>
			<xbrli:startDate>2017-10-30</xbrli:startDate>
			<xbrli:endDate>2017-10-30</xbrli:endDate>
		</xbrli:period>
	</xbrli:context><xbrli:context id="I2017Q2Apr12_us-gaap_ShareRepurchaseProgramAxis_cgnx_RepurchaseProgramTwentyFifteenMember">
		<xbrli:entity>
			<xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier>
			<xbrli:segment>
				<xbrldi:explicitMember dimension="us-gaap:ShareRepurchaseProgramAxis">cgnx:RepurchaseProgramTwentyFifteenMember</xbrldi:explicitMember>
			</xbrli:segment>
		</xbrli:entity>
		<xbrli:period>
			<xbrli:instant>2017-04-12</xbrli:instant>
		</xbrli:period>
	</xbrli:context><xbrli:context id="I2016Q2Apr28">
		<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:context id="I2018Q1Feb.28_us-gaap_ShareRepurchaseProgramAxis_cgnx_RepurchaseProgramNovember2015Member">
		<xbrli:entity>
			<xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier>
			<xbrli:segment>
				<xbrldi:explicitMember dimension="us-gaap:ShareRepurchaseProgramAxis">cgnx:RepurchaseProgramNovember2015Member</xbrldi:explicitMember>
			</xbrli:segment>
		</xbrli:entity>
		<xbrli:period>
			<xbrli:instant>2018-02-01</xbrli:instant>
		</xbrli:period>
	</xbrli:context><xbrli:context id="FD2019Q4QTD">
		<xbrli:entity>
			<xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier>
		</xbrli:entity>
		<xbrli:period>
			<xbrli:startDate>2019-09-30</xbrli:startDate>
			<xbrli:endDate>2019-12-31</xbrli:endDate>
		</xbrli:period>
	</xbrli:context><xbrli:context id="I2017Q4Oct">
		<xbrli:entity>
			<xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier>
		</xbrli:entity>
		<xbrli:period>
			<xbrli:instant>2017-10-31</xbrli:instant>
		</xbrli:period>
	</xbrli:context><xbrli:context id="FD2019Q3YTD">
		<xbrli:entity>
			<xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier>
		</xbrli:entity>
		<xbrli:period>
			<xbrli:startDate>2019-01-01</xbrli:startDate>
			<xbrli:endDate>2019-09-29</xbrli:endDate>
		</xbrli:period>
	</xbrli:context><xbrli:context id="FI2019Q4_us-gaap_ShareRepurchaseProgramAxis_cgnx_RepurchaseProgramOctober2018Member">
		<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>2019-12-31</xbrli:instant>
		</xbrli:period>
	</xbrli:context><xbrli:context id="I2016Q2Apr27">
		<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="FD2019Q4YTD_us-gaap_AwardTypeAxis_us-gaap_RestrictedStockMember">
		<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>2019-01-01</xbrli:startDate>
			<xbrli:endDate>2019-12-31</xbrli:endDate>
		</xbrli:period>
	</xbrli:context><xbrli:context id="FI2019Q4_us-gaap_AwardTypeAxis_us-gaap_RestrictedStockMember">
		<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>2019-12-31</xbrli:instant>
		</xbrli:period>
	</xbrli:context><xbrli:context id="FI2018Q4_us-gaap_AwardTypeAxis_us-gaap_RestrictedStockMember">
		<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>2018-12-31</xbrli:instant>
		</xbrli:period>
	</xbrli:context><xbrli:context id="FD2019Q4YTD_us-gaap_AwardTypeAxis_us-gaap_EmployeeStockOptionMember">
		<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>2019-01-01</xbrli:startDate>
			<xbrli:endDate>2019-12-31</xbrli:endDate>
		</xbrli:period>
	</xbrli:context><xbrli:context id="FD2018Q4YTD_us-gaap_AwardTypeAxis_us-gaap_EmployeeStockOptionMember">
		<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>2018-01-01</xbrli:startDate>
			<xbrli:endDate>2018-12-31</xbrli:endDate>
		</xbrli:period>
	</xbrli:context><xbrli:context id="FD2017Q4YTD_us-gaap_AwardTypeAxis_us-gaap_EmployeeStockOptionMember">
		<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>2017-01-01</xbrli:startDate>
			<xbrli:endDate>2017-12-31</xbrli:endDate>
		</xbrli:period>
	</xbrli:context><xbrli:context id="FD2019Q4YTD_srt_RangeAxis_srt_MinimumMember_us-gaap_AwardTypeAxis_us-gaap_PerformanceSharesMember">
		<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>2019-01-01</xbrli:startDate>
			<xbrli:endDate>2019-12-31</xbrli:endDate>
		</xbrli:period>
	</xbrli:context><xbrli:context id="FI2019Q4_us-gaap_AwardTypeAxis_us-gaap_EmployeeStockOptionMember">
		<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>2019-12-31</xbrli:instant>
		</xbrli:period>
	</xbrli:context><xbrli:context id="FD2019Q4YTD_srt_RangeAxis_srt_MaximumMember_us-gaap_AwardTypeAxis_us-gaap_EmployeeStockOptionMember">
		<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>2019-01-01</xbrli:startDate>
			<xbrli:endDate>2019-12-31</xbrli:endDate>
		</xbrli:period>
	</xbrli:context><xbrli:context id="FD2018Q4YTD_us-gaap_IncomeStatementLocationAxis_cgnx_SellingGeneralAndAdministrativeMember">
		<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>2018-01-01</xbrli:startDate>
			<xbrli:endDate>2018-12-31</xbrli:endDate>
		</xbrli:period>
	</xbrli:context><xbrli:context id="FD2017Q4YTD_us-gaap_IncomeStatementLocationAxis_cgnx_ProductCostOfRevenueMember">
		<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>2017-01-01</xbrli:startDate>
			<xbrli:endDate>2017-12-31</xbrli:endDate>
		</xbrli:period>
	</xbrli:context><xbrli:context id="FD2017Q4YTD_us-gaap_IncomeStatementLocationAxis_us-gaap_ResearchAndDevelopmentExpenseMember">
		<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>2017-01-01</xbrli:startDate>
			<xbrli:endDate>2017-12-31</xbrli:endDate>
		</xbrli:period>
	</xbrli:context><xbrli:context id="FD2019Q4YTD_us-gaap_IncomeStatementLocationAxis_cgnx_SellingGeneralAndAdministrativeMember">
		<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>2019-01-01</xbrli:startDate>
			<xbrli:endDate>2019-12-31</xbrli:endDate>
		</xbrli:period>
	</xbrli:context><xbrli:context id="FD2019Q4YTD_us-gaap_IncomeStatementLocationAxis_us-gaap_ResearchAndDevelopmentExpenseMember">
		<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>2019-01-01</xbrli:startDate>
			<xbrli:endDate>2019-12-31</xbrli:endDate>
		</xbrli:period>
	</xbrli:context><xbrli:context id="FD2019Q4YTD_us-gaap_IncomeStatementLocationAxis_cgnx_ProductCostOfRevenueMember">
		<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>2019-01-01</xbrli:startDate>
			<xbrli:endDate>2019-12-31</xbrli:endDate>
		</xbrli:period>
	</xbrli:context><xbrli:context id="FD2017Q4YTD_us-gaap_IncomeStatementLocationAxis_cgnx_SellingGeneralAndAdministrativeMember">
		<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>2017-01-01</xbrli:startDate>
			<xbrli:endDate>2017-12-31</xbrli:endDate>
		</xbrli:period>
	</xbrli:context><xbrli:context id="FD2018Q4YTD_us-gaap_IncomeStatementLocationAxis_cgnx_ProductCostOfRevenueMember">
		<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>2018-01-01</xbrli:startDate>
			<xbrli:endDate>2018-12-31</xbrli:endDate>
		</xbrli:period>
	</xbrli:context><xbrli:context id="FD2018Q4YTD_us-gaap_IncomeStatementLocationAxis_us-gaap_ResearchAndDevelopmentExpenseMember">
		<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>2018-01-01</xbrli:startDate>
			<xbrli:endDate>2018-12-31</xbrli:endDate>
		</xbrli:period>
	</xbrli:context><xbrli:context id="FD2019Q4YTD_srt_RangeAxis_srt_MinimumMember_us-gaap_AwardTypeAxis_us-gaap_EmployeeStockOptionMember">
		<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>2019-01-01</xbrli:startDate>
			<xbrli:endDate>2019-12-31</xbrli:endDate>
		</xbrli:period>
	</xbrli:context><xbrli:context id="FD2019Q4YTD_srt_RangeAxis_srt_MaximumMember_us-gaap_AwardTypeAxis_us-gaap_PerformanceSharesMember">
		<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>2019-01-01</xbrli:startDate>
			<xbrli:endDate>2019-12-31</xbrli:endDate>
		</xbrli:period>
	</xbrli:context><xbrli:context id="FD2019Q4YTD_srt_RestatementAxis_srt_ScenarioPreviouslyReportedMember">
		<xbrli:entity>
			<xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier>
			<xbrli:segment>
				<xbrldi:explicitMember dimension="srt:RestatementAxis">srt:ScenarioPreviouslyReportedMember</xbrldi:explicitMember>
			</xbrli:segment>
		</xbrli:entity>
		<xbrli:period>
			<xbrli:startDate>2019-01-01</xbrli:startDate>
			<xbrli:endDate>2019-12-31</xbrli:endDate>
		</xbrli:period>
	</xbrli:context><xbrli:context id="FD2019Q4YTD_srt_RestatementAxis_srt_RestatementAdjustmentMember_us-gaap_ChangeInAccountingEstimateByTypeAxis_cgnx_ChangeinGlobalIntangibleLowTaxedIncomeMember">
		<xbrli:entity>
			<xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier>
			<xbrli:segment>
				<xbrldi:explicitMember dimension="srt:RestatementAxis">srt:RestatementAdjustmentMember</xbrldi:explicitMember>
				<xbrldi:explicitMember dimension="us-gaap:ChangeInAccountingEstimateByTypeAxis">cgnx:ChangeinGlobalIntangibleLowTaxedIncomeMember</xbrldi:explicitMember>
			</xbrli:segment>
		</xbrli:entity>
		<xbrli:period>
			<xbrli:startDate>2019-01-01</xbrli:startDate>
			<xbrli:endDate>2019-12-31</xbrli:endDate>
		</xbrli:period>
	</xbrli:context><xbrli:context id="D2018Q1Jan1_us-gaap_AdjustmentsForNewAccountingPronouncementsAxis_us-gaap_AccountingStandardsUpdate201616Member">
		<xbrli:entity>
			<xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier>
			<xbrli:segment>
				<xbrldi:explicitMember dimension="us-gaap:AdjustmentsForNewAccountingPronouncementsAxis">us-gaap:AccountingStandardsUpdate201616Member</xbrldi:explicitMember>
			</xbrli:segment>
		</xbrli:entity>
		<xbrli:period>
			<xbrli:startDate>2018-01-01</xbrli:startDate>
			<xbrli:endDate>2018-01-01</xbrli:endDate>
		</xbrli:period>
	</xbrli:context><xbrli:context id="FI2019Q4_srt_StatementGeographicalAxis_cgnx_OtherThantheU.SMember">
		<xbrli:entity>
			<xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier>
			<xbrli:segment>
				<xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">cgnx:OtherThantheU.SMember</xbrldi:explicitMember>
			</xbrli:segment>
		</xbrli:entity>
		<xbrli:period>
			<xbrli:instant>2019-12-31</xbrli:instant>
		</xbrli:period>
	</xbrli:context><xbrli:context id="FI2018Q4_srt_StatementGeographicalAxis_cgnx_OtherThantheU.SMember">
		<xbrli:entity>
			<xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier>
			<xbrli:segment>
				<xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">cgnx:OtherThantheU.SMember</xbrldi:explicitMember>
			</xbrli:segment>
		</xbrli:entity>
		<xbrli:period>
			<xbrli:instant>2018-12-31</xbrli:instant>
		</xbrli:period>
	</xbrli:context><xbrli:context id="FI2019Q4_us-gaap_BusinessAcquisitionAxis_cgnx_SualabCo.Ltd.Member">
		<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-12-31</xbrli:instant>
		</xbrli:period>
	</xbrli:context><xbrli:context id="FD2019Q4YTD_us-gaap_IncomeTaxAuthorityAxis_us-gaap_ForeignCountryMember_us-gaap_IncomeTaxAuthorityNameAxis_us-gaap_RevenueCommissionersIrelandMember">
		<xbrli:entity>
			<xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier>
			<xbrli:segment>
				<xbrldi:explicitMember dimension="us-gaap:IncomeTaxAuthorityAxis">us-gaap:ForeignCountryMember</xbrldi:explicitMember>
				<xbrldi:explicitMember dimension="us-gaap:IncomeTaxAuthorityNameAxis">us-gaap:RevenueCommissionersIrelandMember</xbrldi:explicitMember>
			</xbrli:segment>
		</xbrli:entity>
		<xbrli:period>
			<xbrli:startDate>2019-01-01</xbrli:startDate>
			<xbrli:endDate>2019-12-31</xbrli:endDate>
		</xbrli:period>
	</xbrli:context><xbrli:context id="FI2019Q4_us-gaap_TaxCreditCarryforwardAxis_cgnx_StateResearchAndExperimentationMember">
		<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>2019-12-31</xbrli:instant>
		</xbrli:period>
	</xbrli:context><xbrli:context id="FD2019Q4YTD_us-gaap_IncomeTaxAuthorityAxis_us-gaap_DomesticCountryMember">
		<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>2019-01-01</xbrli:startDate>
			<xbrli:endDate>2019-12-31</xbrli:endDate>
		</xbrli:period>
	</xbrli:context><xbrli:context id="FD2019Q4YTD_us-gaap_IncomeTaxAuthorityAxis_us-gaap_ForeignCountryMember_us-gaap_IncomeTaxAuthorityNameAxis_us-gaap_StateAdministrationOfTaxationChinaMember">
		<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>2019-01-01</xbrli:startDate>
			<xbrli:endDate>2019-12-31</xbrli:endDate>
		</xbrli:period>
	</xbrli:context><xbrli:context id="FI2019Q4_us-gaap_TaxCreditCarryforwardAxis_us-gaap_ResearchMember">
		<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>2019-12-31</xbrli:instant>
		</xbrli:period>
	</xbrli:context><xbrli:context id="FI2019Q4_srt_RestatementAxis_srt_RestatementAdjustmentMember_us-gaap_ChangeInAccountingEstimateByTypeAxis_cgnx_ChangeinGlobalIntangibleLowTaxedIncomeMember">
		<xbrli:entity>
			<xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier>
			<xbrli:segment>
				<xbrldi:explicitMember dimension="srt:RestatementAxis">srt:RestatementAdjustmentMember</xbrldi:explicitMember>
				<xbrldi:explicitMember dimension="us-gaap:ChangeInAccountingEstimateByTypeAxis">cgnx:ChangeinGlobalIntangibleLowTaxedIncomeMember</xbrldi:explicitMember>
			</xbrli:segment>
		</xbrli:entity>
		<xbrli:period>
			<xbrli:instant>2019-12-31</xbrli:instant>
		</xbrli:period>
	</xbrli:context><xbrli:context id="FI2019Q4_srt_RestatementAxis_srt_ScenarioPreviouslyReportedMember">
		<xbrli:entity>
			<xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier>
			<xbrli:segment>
				<xbrldi:explicitMember dimension="srt:RestatementAxis">srt:ScenarioPreviouslyReportedMember</xbrldi:explicitMember>
			</xbrli:segment>
		</xbrli:entity>
		<xbrli:period>
			<xbrli:instant>2019-12-31</xbrli:instant>
		</xbrli:period>
	</xbrli:context><xbrli:context id="FD2017Q4YTD_us-gaap_AdjustmentsForNewAccountingPronouncementsAxis_cgnx_AccountingStandardsUpdate201609StatutoryTaxWithholdingComponentMember">
		<xbrli:entity>
			<xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier>
			<xbrli:segment>
				<xbrldi:explicitMember dimension="us-gaap:AdjustmentsForNewAccountingPronouncementsAxis">cgnx:AccountingStandardsUpdate201609StatutoryTaxWithholdingComponentMember</xbrldi:explicitMember>
			</xbrli:segment>
		</xbrli:entity>
		<xbrli:period>
			<xbrli:startDate>2017-01-01</xbrli:startDate>
			<xbrli:endDate>2017-12-31</xbrli:endDate>
		</xbrli:period>
	</xbrli:context><xbrli:context id="FD2018Q4YTD_us-gaap_AdjustmentsForNewAccountingPronouncementsAxis_cgnx_AccountingStandardsUpdate201609StatutoryTaxWithholdingComponentMember">
		<xbrli:entity>
			<xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier>
			<xbrli:segment>
				<xbrldi:explicitMember dimension="us-gaap:AdjustmentsForNewAccountingPronouncementsAxis">cgnx:AccountingStandardsUpdate201609StatutoryTaxWithholdingComponentMember</xbrldi:explicitMember>
			</xbrli:segment>
		</xbrli:entity>
		<xbrli:period>
			<xbrli:startDate>2018-01-01</xbrli:startDate>
			<xbrli:endDate>2018-12-31</xbrli:endDate>
		</xbrli:period>
	</xbrli:context><xbrli:context id="FD2017Q4YTD_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis_us-gaap_EmployeeStockOptionMember">
		<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>2017-01-01</xbrli:startDate>
			<xbrli:endDate>2017-12-31</xbrli:endDate>
		</xbrli:period>
	</xbrli:context><xbrli:context id="FD2018Q4YTD_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis_us-gaap_EmployeeStockOptionMember">
		<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>2018-01-01</xbrli:startDate>
			<xbrli:endDate>2018-12-31</xbrli:endDate>
		</xbrli:period>
	</xbrli:context><xbrli:context id="FD2019Q4YTD_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis_us-gaap_EmployeeStockOptionMember">
		<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>2019-01-01</xbrli:startDate>
			<xbrli:endDate>2019-12-31</xbrli:endDate>
		</xbrli:period>
	</xbrli:context><xbrli:context id="FD2019Q4YTD_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis_us-gaap_RestrictedStockMember">
		<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>2019-01-01</xbrli:startDate>
			<xbrli:endDate>2019-12-31</xbrli:endDate>
		</xbrli:period>
	</xbrli:context><xbrli:context id="FI2017Q4_srt_StatementGeographicalAxis_cgnx_OtherGeographicAreaMember">
		<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>2017-12-31</xbrli:instant>
		</xbrli:period>
	</xbrli:context><xbrli:context id="FI2018Q4_srt_StatementGeographicalAxis_srt_EuropeMember">
		<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>2018-12-31</xbrli:instant>
		</xbrli:period>
	</xbrli:context><xbrli:context id="FD2019Q4YTD_srt_StatementGeographicalAxis_cgnx_OtherGeographicAreaMember">
		<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>2019-01-01</xbrli:startDate>
			<xbrli:endDate>2019-12-31</xbrli:endDate>
		</xbrli:period>
	</xbrli:context><xbrli:context id="FI2017Q4_srt_StatementGeographicalAxis_cgnx_GreaterChinaMember">
		<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>2017-12-31</xbrli:instant>
		</xbrli:period>
	</xbrli:context><xbrli:context id="FI2017Q4_srt_StatementGeographicalAxis_country_US">
		<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>2017-12-31</xbrli:instant>
		</xbrli:period>
	</xbrli:context><xbrli:context id="FD2018Q4YTD_srt_StatementGeographicalAxis_country_US">
		<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>2018-01-01</xbrli:startDate>
			<xbrli:endDate>2018-12-31</xbrli:endDate>
		</xbrli:period>
	</xbrli:context><xbrli:context id="FI2017Q4_srt_StatementGeographicalAxis_srt_EuropeMember">
		<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>2017-12-31</xbrli:instant>
		</xbrli:period>
	</xbrli:context><xbrli:context id="FI2019Q4_srt_StatementGeographicalAxis_cgnx_GreaterChinaMember">
		<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>2019-12-31</xbrli:instant>
		</xbrli:period>
	</xbrli:context><xbrli:context id="FI2019Q4_srt_StatementGeographicalAxis_srt_EuropeMember">
		<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>2019-12-31</xbrli:instant>
		</xbrli:period>
	</xbrli:context><xbrli:context id="FD2017Q4YTD_srt_StatementGeographicalAxis_country_US">
		<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>2017-01-01</xbrli:startDate>
			<xbrli:endDate>2017-12-31</xbrli:endDate>
		</xbrli:period>
	</xbrli:context><xbrli:context id="FI2018Q4_srt_StatementGeographicalAxis_country_US">
		<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>2018-12-31</xbrli:instant>
		</xbrli:period>
	</xbrli:context><xbrli:context id="FI2018Q4_srt_StatementGeographicalAxis_cgnx_GreaterChinaMember">
		<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>2018-12-31</xbrli:instant>
		</xbrli:period>
	</xbrli:context><xbrli:context id="FD2019Q4YTD_srt_StatementGeographicalAxis_country_US">
		<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>2019-01-01</xbrli:startDate>
			<xbrli:endDate>2019-12-31</xbrli:endDate>
		</xbrli:period>
	</xbrli:context><xbrli:context id="FI2019Q4_srt_StatementGeographicalAxis_cgnx_OtherGeographicAreaMember">
		<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>2019-12-31</xbrli:instant>
		</xbrli:period>
	</xbrli:context><xbrli:context id="FD2017Q4YTD_srt_StatementGeographicalAxis_cgnx_OtherGeographicAreaMember">
		<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>2017-01-01</xbrli:startDate>
			<xbrli:endDate>2017-12-31</xbrli:endDate>
		</xbrli:period>
	</xbrli:context><xbrli:context id="FI2018Q4_srt_StatementGeographicalAxis_cgnx_OtherGeographicAreaMember">
		<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>2018-12-31</xbrli:instant>
		</xbrli:period>
	</xbrli:context><xbrli:context id="FI2019Q4_srt_StatementGeographicalAxis_country_US">
		<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>2019-12-31</xbrli:instant>
		</xbrli:period>
	</xbrli:context><xbrli:context id="FD2018Q4YTD_srt_StatementGeographicalAxis_cgnx_OtherGeographicAreaMember">
		<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>2018-01-01</xbrli:startDate>
			<xbrli:endDate>2018-12-31</xbrli:endDate>
		</xbrli:period>
	</xbrli:context><xbrli:context id="FD2018Q4YTD_us-gaap_ConcentrationRiskByBenchmarkAxis_us-gaap_SalesRevenueNetMember_us-gaap_ConcentrationRiskByTypeAxis_us-gaap_CustomerConcentrationRiskMember">
		<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>
			</xbrli:segment>
		</xbrli:entity>
		<xbrli:period>
			<xbrli:startDate>2018-01-01</xbrli:startDate>
			<xbrli:endDate>2018-12-31</xbrli:endDate>
		</xbrli:period>
	</xbrli:context><xbrli:context id="FD2017Q4YTD_us-gaap_ConcentrationRiskByBenchmarkAxis_us-gaap_AccountsReceivableMember_us-gaap_ConcentrationRiskByTypeAxis_us-gaap_CustomerConcentrationRiskMember">
		<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>
			</xbrli:segment>
		</xbrli:entity>
		<xbrli:period>
			<xbrli:startDate>2017-01-01</xbrli:startDate>
			<xbrli:endDate>2017-12-31</xbrli:endDate>
		</xbrli:period>
	</xbrli:context><xbrli:context id="FD2018Q4YTD_us-gaap_ConcentrationRiskByBenchmarkAxis_us-gaap_AccountsReceivableMember_us-gaap_ConcentrationRiskByTypeAxis_us-gaap_CustomerConcentrationRiskMember">
		<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>
			</xbrli:segment>
		</xbrli:entity>
		<xbrli:period>
			<xbrli:startDate>2018-01-01</xbrli:startDate>
			<xbrli:endDate>2018-12-31</xbrli:endDate>
		</xbrli:period>
	</xbrli:context><xbrli:context id="FD2017Q4YTD_us-gaap_ConcentrationRiskByBenchmarkAxis_us-gaap_SalesRevenueNetMember_us-gaap_ConcentrationRiskByTypeAxis_us-gaap_CustomerConcentrationRiskMember">
		<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>
			</xbrli:segment>
		</xbrli:entity>
		<xbrli:period>
			<xbrli:startDate>2017-01-01</xbrli:startDate>
			<xbrli:endDate>2017-12-31</xbrli:endDate>
		</xbrli:period>
	</xbrli:context><xbrli:context id="FD2019Q4YTD_us-gaap_ConcentrationRiskByBenchmarkAxis_us-gaap_AccountsReceivableMember_us-gaap_ConcentrationRiskByTypeAxis_us-gaap_CustomerConcentrationRiskMember">
		<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>
			</xbrli:segment>
		</xbrli:entity>
		<xbrli:period>
			<xbrli:startDate>2019-01-01</xbrli:startDate>
			<xbrli:endDate>2019-12-31</xbrli:endDate>
		</xbrli:period>
	</xbrli:context><xbrli:context id="I2019Q3_us-gaap_BusinessAcquisitionAxis_cgnx_SualabCo.Ltd.Member">
		<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="I2019Q3_us-gaap_BusinessAcquisitionAxis_cgnx_SualabCo.Ltd.Member_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_NoncompeteAgreementsMember">
		<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>
				<xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:NoncompeteAgreementsMember</xbrldi:explicitMember>
			</xbrli:segment>
		</xbrli:entity>
		<xbrli:period>
			<xbrli:instant>2019-10-16</xbrli:instant>
		</xbrli:period>
	</xbrli:context><xbrli:context id="I2019Q3_us-gaap_BusinessAcquisitionAxis_cgnx_SualabCo.Ltd.Member_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_CustomerRelationshipsMember">
		<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>
				<xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:CustomerRelationshipsMember</xbrldi:explicitMember>
			</xbrli:segment>
		</xbrli:entity>
		<xbrli:period>
			<xbrli:instant>2019-10-16</xbrli:instant>
		</xbrli:period>
	</xbrli:context><xbrli:context id="I2019Q3_us-gaap_BusinessAcquisitionAxis_cgnx_SualabCo.Ltd.Member_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_cgnx_InprocessTechnologyMember">
		<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>
				<xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">cgnx:InprocessTechnologyMember</xbrldi:explicitMember>
			</xbrli:segment>
		</xbrli:entity>
		<xbrli:period>
			<xbrli:instant>2019-10-16</xbrli:instant>
		</xbrli:period>
	</xbrli:context><xbrli:context id="I2019Q3_us-gaap_BusinessAcquisitionAxis_cgnx_SualabCo.Ltd.Member_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_cgnx_CompletedTechnologyMember">
		<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>
				<xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">cgnx:CompletedTechnologyMember</xbrldi:explicitMember>
			</xbrli:segment>
		</xbrli:entity>
		<xbrli:period>
			<xbrli:instant>2019-10-16</xbrli:instant>
		</xbrli:period>
	</xbrli:context><xbrli:context id="I2019Q3_us-gaap_BusinessAcquisitionAxis_cgnx_SualabCo.Ltd.Member_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_TrademarksMember">
		<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>
				<xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:TrademarksMember</xbrldi:explicitMember>
			</xbrli:segment>
		</xbrli:entity>
		<xbrli:period>
			<xbrli:instant>2019-10-16</xbrli:instant>
		</xbrli:period>
	</xbrli:context><xbrli:context id="I2017Q2Apr12_us-gaap_BusinessAcquisitionAxis_cgnx_GViVenturesInc.Member">
		<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>2017-04-12</xbrli:instant>
		</xbrli:period>
	</xbrli:context><xbrli:context id="I2017Q2Apr12_us-gaap_BusinessAcquisitionAxis_cgnx_GViVenturesInc.Member_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_CustomerRelationshipsMember">
		<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>
				<xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:CustomerRelationshipsMember</xbrldi:explicitMember>
			</xbrli:segment>
		</xbrli:entity>
		<xbrli:period>
			<xbrli:instant>2017-04-12</xbrli:instant>
		</xbrli:period>
	</xbrli:context><xbrli:context id="I2017Q2Apr12_us-gaap_BusinessAcquisitionAxis_cgnx_GViVenturesInc.Member_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_TechnologyBasedIntangibleAssetsMember">
		<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>
				<xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:TechnologyBasedIntangibleAssetsMember</xbrldi:explicitMember>
			</xbrli:segment>
		</xbrli:entity>
		<xbrli:period>
			<xbrli:instant>2017-04-12</xbrli:instant>
		</xbrli:period>
	</xbrli:context><xbrli:context id="D2019Q4Oct16_us-gaap_BusinessAcquisitionAxis_cgnx_SualabCo.Ltd.Member">
		<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="D2017Q2Apr04-Apr04_us-gaap_BusinessAcquisitionAxis_cgnx_ViDiSystemsS.A.Member">
		<xbrli:entity>
			<xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier>
			<xbrli:segment>
				<xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">cgnx:ViDiSystemsS.A.Member</xbrldi:explicitMember>
			</xbrli:segment>
		</xbrli:entity>
		<xbrli:period>
			<xbrli:startDate>2017-04-04</xbrli:startDate>
			<xbrli:endDate>2017-04-04</xbrli:endDate>
		</xbrli:period>
	</xbrli:context><xbrli:context id="D2017Q2Apr12-Apr12_us-gaap_BusinessAcquisitionAxis_cgnx_GViVenturesInc.Member_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_CustomerRelationshipsMember">
		<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>
				<xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:CustomerRelationshipsMember</xbrldi:explicitMember>
			</xbrli:segment>
		</xbrli:entity>
		<xbrli:period>
			<xbrli:startDate>2017-04-12</xbrli:startDate>
			<xbrli:endDate>2017-04-12</xbrli:endDate>
		</xbrli:period>
	</xbrli:context><xbrli:context id="D2019Q4Oct16_us-gaap_BusinessAcquisitionAxis_cgnx_SualabCo.Ltd.Member_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_TrademarksMember">
		<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>
				<xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:TrademarksMember</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="D2019Q4Oct16_us-gaap_BusinessAcquisitionAxis_cgnx_SualabCo.Ltd.Member_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_CustomerRelationshipsMember">
		<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>
				<xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:CustomerRelationshipsMember</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="D2017Q2Apr04-Apr04_us-gaap_BusinessAcquisitionAxis_cgnx_ViDiSystemsS.A.Member_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_TechnologyBasedIntangibleAssetsMember">
		<xbrli:entity>
			<xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier>
			<xbrli:segment>
				<xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">cgnx:ViDiSystemsS.A.Member</xbrldi:explicitMember>
				<xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:TechnologyBasedIntangibleAssetsMember</xbrldi:explicitMember>
			</xbrli:segment>
		</xbrli:entity>
		<xbrli:period>
			<xbrli:startDate>2017-04-04</xbrli:startDate>
			<xbrli:endDate>2017-04-04</xbrli:endDate>
		</xbrli:period>
	</xbrli:context><xbrli:context id="D2017Q2Apr04-Apr04_us-gaap_BusinessAcquisitionAxis_cgnx_ViDiSystemsS.A.Member_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_NoncompeteAgreementsMember">
		<xbrli:entity>
			<xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier>
			<xbrli:segment>
				<xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">cgnx:ViDiSystemsS.A.Member</xbrldi:explicitMember>
				<xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:NoncompeteAgreementsMember</xbrldi:explicitMember>
			</xbrli:segment>
		</xbrli:entity>
		<xbrli:period>
			<xbrli:startDate>2017-04-04</xbrli:startDate>
			<xbrli:endDate>2017-04-04</xbrli:endDate>
		</xbrli:period>
	</xbrli:context><xbrli:context id="D2019Q4Oct16_srt_RangeAxis_srt_MaximumMember_us-gaap_BusinessAcquisitionAxis_cgnx_SualabCo.Ltd.Member_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_NoncompeteAgreementsMember">
		<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:BusinessAcquisitionAxis">cgnx:SualabCo.Ltd.Member</xbrldi:explicitMember>
				<xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:NoncompeteAgreementsMember</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="D2019Q4Oct16_us-gaap_BusinessAcquisitionAxis_cgnx_SualabCo.Ltd.Member_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_cgnx_CompletedTechnologyMember">
		<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>
				<xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">cgnx:CompletedTechnologyMember</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="D2017Q2Apr12-Apr12_us-gaap_BusinessAcquisitionAxis_cgnx_GViVenturesInc.Member">
		<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:startDate>2017-04-12</xbrli:startDate>
			<xbrli:endDate>2017-04-12</xbrli:endDate>
		</xbrli:period>
	</xbrli:context><xbrli:context id="FI2019Q4_us-gaap_BusinessAcquisitionAxis_cgnx_GViVenturesInc.Member">
		<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="I2017Q2Apr04_us-gaap_BusinessAcquisitionAxis_cgnx_ViDiSystemsS.A.Member">
		<xbrli:entity>
			<xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier>
			<xbrli:segment>
				<xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">cgnx:ViDiSystemsS.A.Member</xbrldi:explicitMember>
			</xbrli:segment>
		</xbrli:entity>
		<xbrli:period>
			<xbrli:instant>2017-04-04</xbrli:instant>
		</xbrli:period>
	</xbrli:context><xbrli:context id="D2017Q2Apr12-Apr12_us-gaap_BusinessAcquisitionAxis_cgnx_GViVenturesInc.Member_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_TechnologyBasedIntangibleAssetsMember">
		<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>
				<xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:TechnologyBasedIntangibleAssetsMember</xbrldi:explicitMember>
			</xbrli:segment>
		</xbrli:entity>
		<xbrli:period>
			<xbrli:startDate>2017-04-12</xbrli:startDate>
			<xbrli:endDate>2017-04-12</xbrli:endDate>
		</xbrli:period>
	</xbrli:context><xbrli:context id="I2017Q2Apr04_us-gaap_BusinessAcquisitionAxis_cgnx_ViDiSystemsS.A.Member_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_NoncompeteAgreementsMember">
		<xbrli:entity>
			<xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier>
			<xbrli:segment>
				<xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">cgnx:ViDiSystemsS.A.Member</xbrldi:explicitMember>
				<xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:NoncompeteAgreementsMember</xbrldi:explicitMember>
			</xbrli:segment>
		</xbrli:entity>
		<xbrli:period>
			<xbrli:instant>2017-04-04</xbrli:instant>
		</xbrli:period>
	</xbrli:context><xbrli:context id="I2017Q2Apr04_us-gaap_BusinessAcquisitionAxis_cgnx_ViDiSystemsS.A.Member_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_TechnologyBasedIntangibleAssetsMember">
		<xbrli:entity>
			<xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier>
			<xbrli:segment>
				<xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">cgnx:ViDiSystemsS.A.Member</xbrldi:explicitMember>
				<xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:TechnologyBasedIntangibleAssetsMember</xbrldi:explicitMember>
			</xbrli:segment>
		</xbrli:entity>
		<xbrli:period>
			<xbrli:instant>2017-04-04</xbrli:instant>
		</xbrli:period>
	</xbrli:context><xbrli:context id="D2017Q2Apr12-Apr12_srt_RangeAxis_srt_MinimumMember_us-gaap_BusinessAcquisitionAxis_cgnx_SualabCo.Ltd.Member_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_NoncompeteAgreementsMember">
		<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:BusinessAcquisitionAxis">cgnx:SualabCo.Ltd.Member</xbrldi:explicitMember>
				<xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:NoncompeteAgreementsMember</xbrldi:explicitMember>
			</xbrli:segment>
		</xbrli:entity>
		<xbrli:period>
			<xbrli:startDate>2017-04-12</xbrli:startDate>
			<xbrli:endDate>2017-04-12</xbrli:endDate>
		</xbrli:period>
	</xbrli:context><xbrli:context id="I2020Q1_us-gaap_SubsequentEventTypeAxis_us-gaap_SubsequentEventMember">
		<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>2020-02-13</xbrli:instant>
		</xbrli:period>
	</xbrli:context><xbrli:context id="D2020Q1_us-gaap_SubsequentEventTypeAxis_us-gaap_SubsequentEventMember">
		<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:startDate>2020-02-13</xbrli:startDate>
			<xbrli:endDate>2020-02-13</xbrli:endDate>
		</xbrli:period>
	</xbrli:context><xbrli:context id="FD2018Q2QTD">
		<xbrli:entity>
			<xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier>
		</xbrli:entity>
		<xbrli:period>
			<xbrli:startDate>2018-04-02</xbrli:startDate>
			<xbrli:endDate>2018-07-01</xbrli:endDate>
		</xbrli:period>
	</xbrli:context><xbrli:context id="FD2018Q1QTD">
		<xbrli:entity>
			<xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier>
		</xbrli:entity>
		<xbrli:period>
			<xbrli:startDate>2018-01-01</xbrli:startDate>
			<xbrli:endDate>2018-04-01</xbrli:endDate>
		</xbrli:period>
	</xbrli:context><xbrli:context id="FD2018Q3QTD">
		<xbrli:entity>
			<xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier>
		</xbrli:entity>
		<xbrli:period>
			<xbrli:startDate>2018-07-02</xbrli:startDate>
			<xbrli:endDate>2018-09-30</xbrli:endDate>
		</xbrli:period>
	</xbrli:context><xbrli:context id="FD2018Q4QTD">
		<xbrli:entity>
			<xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier>
		</xbrli:entity>
		<xbrli:period>
			<xbrli:startDate>2018-10-01</xbrli:startDate>
			<xbrli:endDate>2018-12-31</xbrli:endDate>
		</xbrli:period>
	</xbrli:context><xbrli:context id="FD2017Q3QTD">
		<xbrli:entity>
			<xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier>
		</xbrli:entity>
		<xbrli:period>
			<xbrli:startDate>2017-07-03</xbrli:startDate>
			<xbrli:endDate>2017-10-01</xbrli:endDate>
		</xbrli:period>
	</xbrli:context><xbrli:context id="FD2017Q1QTD">
		<xbrli:entity>
			<xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier>
		</xbrli:entity>
		<xbrli:period>
			<xbrli:startDate>2017-01-01</xbrli:startDate>
			<xbrli:endDate>2017-04-02</xbrli:endDate>
		</xbrli:period>
	</xbrli:context><xbrli:context id="FD2017Q2QTD">
		<xbrli:entity>
			<xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier>
		</xbrli:entity>
		<xbrli:period>
			<xbrli:startDate>2017-04-03</xbrli:startDate>
			<xbrli:endDate>2017-07-02</xbrli:endDate>
		</xbrli:period>
	</xbrli:context><xbrli:context id="FD2017Q4YTD_us-gaap_ValuationAllowancesAndReservesTypeAxis_us-gaap_UncollectibleReceivablesMember">
		<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>2017-01-01</xbrli:startDate>
			<xbrli:endDate>2017-12-31</xbrli:endDate>
		</xbrli:period>
	</xbrli:context><xbrli:context id="FD2019Q4YTD_us-gaap_ValuationAllowancesAndReservesTypeAxis_us-gaap_UncollectibleReceivablesMember">
		<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>2019-01-01</xbrli:startDate>
			<xbrli:endDate>2019-12-31</xbrli:endDate>
		</xbrli:period>
	</xbrli:context><xbrli:context id="FI2016Q4_us-gaap_ValuationAllowancesAndReservesTypeAxis_us-gaap_UncollectibleReceivablesMember">
		<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>2016-12-31</xbrli:instant>
		</xbrli:period>
	</xbrli:context><xbrli:context id="FD2018Q4YTD_us-gaap_ValuationAllowancesAndReservesTypeAxis_us-gaap_UncollectibleReceivablesMember">
		<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>2018-01-01</xbrli:startDate>
			<xbrli:endDate>2018-12-31</xbrli:endDate>
		</xbrli:period>
	</xbrli:context><xbrli:context id="FD2018Q4YTD_us-gaap_ValuationAllowancesAndReservesTypeAxis_us-gaap_ValuationAllowanceOfDeferredTaxAssetsMember">
		<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>2018-01-01</xbrli:startDate>
			<xbrli:endDate>2018-12-31</xbrli:endDate>
		</xbrli:period>
	</xbrli:context><xbrli:context id="FI2018Q4_us-gaap_ValuationAllowancesAndReservesTypeAxis_us-gaap_ValuationAllowanceOfDeferredTaxAssetsMember">
		<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>2018-12-31</xbrli:instant>
		</xbrli:period>
	</xbrli:context><xbrli:context id="FD2019Q4YTD_us-gaap_ValuationAllowancesAndReservesTypeAxis_us-gaap_ValuationAllowanceOfDeferredTaxAssetsMember">
		<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>2019-01-01</xbrli:startDate>
			<xbrli:endDate>2019-12-31</xbrli:endDate>
		</xbrli:period>
	</xbrli:context><xbrli:context id="FI2018Q4_us-gaap_ValuationAllowancesAndReservesTypeAxis_us-gaap_UncollectibleReceivablesMember">
		<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>2018-12-31</xbrli:instant>
		</xbrli:period>
	</xbrli:context><xbrli:context id="FI2017Q4_us-gaap_ValuationAllowancesAndReservesTypeAxis_us-gaap_UncollectibleReceivablesMember">
		<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>2017-12-31</xbrli:instant>
		</xbrli:period>
	</xbrli:context><xbrli:context id="FI2019Q4_us-gaap_ValuationAllowancesAndReservesTypeAxis_us-gaap_UncollectibleReceivablesMember">
		<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="FI2017Q4_us-gaap_ValuationAllowancesAndReservesTypeAxis_us-gaap_ValuationAllowanceOfDeferredTaxAssetsMember">
		<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>2017-12-31</xbrli:instant>
		</xbrli:period>
	</xbrli:context><xbrli:context id="FD2017Q4YTD_us-gaap_ValuationAllowancesAndReservesTypeAxis_us-gaap_ValuationAllowanceOfDeferredTaxAssetsMember">
		<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>2017-01-01</xbrli:startDate>
			<xbrli:endDate>2017-12-31</xbrli:endDate>
		</xbrli:period>
	</xbrli:context><xbrli:context id="FI2019Q4_us-gaap_ValuationAllowancesAndReservesTypeAxis_us-gaap_ValuationAllowanceOfDeferredTaxAssetsMember">
		<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="FI2016Q4_us-gaap_ValuationAllowancesAndReservesTypeAxis_us-gaap_ValuationAllowanceOfDeferredTaxAssetsMember">
		<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>2016-12-31</xbrli:instant>
		</xbrli:period>
	</xbrli:context><xbrli:unit id="shares">
		<xbrli:measure>xbrli:shares</xbrli:measure>
	</xbrli:unit><xbrli:unit id="usdPerShare">
		<xbrli:divide>
			<xbrli:unitNumerator>
				<xbrli:measure>iso4217:USD</xbrli:measure>
			</xbrli:unitNumerator>
			<xbrli:unitDenominator>
				<xbrli:measure>xbrli:shares</xbrli:measure>
			</xbrli:unitDenominator>
		</xbrli:divide>
	</xbrli:unit><xbrli:unit id="usd">
		<xbrli:measure>iso4217:USD</xbrli:measure>
	</xbrli:unit><xbrli:unit id="number">
		<xbrli:measure>xbrli:pure</xbrli:measure>
	</xbrli:unit><xbrli:unit id="huf">
		<xbrli:measure>iso4217:HUF</xbrli:measure>
	</xbrli:unit><xbrli:unit id="gbp">
		<xbrli:measure>iso4217:GBP</xbrli:measure>
	</xbrli:unit><xbrli:unit id="Segment">
		<xbrli:measure>cgnx:Segment</xbrli:measure>
	</xbrli:unit><xbrli:unit id="Vote">
		<xbrli:measure>cgnx:Vote</xbrli:measure>
	</xbrli:unit><xbrli:unit id="acquisition">
		<xbrli:measure>cgnx:acquisition</xbrli:measure>
	</xbrli:unit><xbrli:unit id="sgd">
		<xbrli:measure>iso4217:SGD</xbrli:measure>
	</xbrli:unit><xbrli:unit id="iso4217_JPY">
		<xbrli:measure>iso4217:JPY</xbrli:measure>
	</xbrli:unit><xbrli:unit id="iso4217_KRW">
		<xbrli:measure>iso4217:KRW</xbrli:measure>
	</xbrli:unit><xbrli:unit id="twd">
		<xbrli:measure>iso4217:TWD</xbrli:measure>
	</xbrli:unit><xbrli:unit id="group">
		<xbrli:measure>cgnx:group</xbrli:measure>
	</xbrli:unit><ix:relationship arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote" linkRole="http://www.xbrl.org/2003/role/link" order="1" fromRefs="d9036001e2214-wk-Fact-024F97ED08CD171B6D408095A17B6DC2" toRefs="TextSelection-C00ECF2D823D0F66DF8B8095A1A7CC9C-0-wk-Footnote-C00ECF2D823D0F66DF8B8095A1A7CC9C_lbl"></ix:relationship><ix:relationship arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote" linkRole="http://www.xbrl.org/2003/role/link" order="1" fromRefs="d9047537e1008-wk-Fact-0DFA7D0A63644E22B8DA8095A198BC5D" toRefs="TextSelection-72B67EF8074C859EFB238095A1A7DDDC-0-wk-Footnote-72B67EF8074C859EFB238095A1A7DDDC_lbl"></ix:relationship><ix:relationship arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote" linkRole="http://www.xbrl.org/2003/role/link" order="1" fromRefs="d9047537e1476-wk-Fact-0FA03F37FD8B58E284018095A198260E" toRefs="TextSelection-72B67EF8074C859EFB238095A1A7DDDC-0-wk-Footnote-72B67EF8074C859EFB238095A1A7DDDC_lbl"></ix:relationship><ix:relationship arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote" linkRole="http://www.xbrl.org/2003/role/link" order="1" fromRefs="d9047537e3435-wk-Fact-14BD9D0FA11EC718E9C48095A18C0BCD" toRefs="TextSelection-72B67EF8074C859EFB238095A1A7DDDC-0-wk-Footnote-72B67EF8074C859EFB238095A1A7DDDC_lbl"></ix:relationship><ix:relationship arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote" linkRole="http://www.xbrl.org/2003/role/link" order="1" fromRefs="d9047537e1339-wk-Fact-1E597A80A08359D5E82F8095A18DA81A" toRefs="TextSelection-72B67EF8074C859EFB238095A1A7DDDC-0-wk-Footnote-72B67EF8074C859EFB238095A1A7DDDC_lbl"></ix:relationship><ix:relationship arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote" linkRole="http://www.xbrl.org/2003/role/link" order="1" fromRefs="d9047537e4499-wk-Fact-214CF4D911CA612E8EF28095A18DBA24" toRefs="TextSelection-72B67EF8074C859EFB238095A1A7DDDC-0-wk-Footnote-72B67EF8074C859EFB238095A1A7DDDC_lbl"></ix:relationship><ix:relationship arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote" linkRole="http://www.xbrl.org/2003/role/link" order="1" fromRefs="d9047537e2775-wk-Fact-256ED19A8200F2A12B668095A18DD32A" toRefs="TextSelection-72B67EF8074C859EFB238095A1A7DDDC-0-wk-Footnote-72B67EF8074C859EFB238095A1A7DDDC_lbl"></ix:relationship><ix:relationship arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote" linkRole="http://www.xbrl.org/2003/role/link" order="1" fromRefs="d9047537e969-wk-Fact-2EF0F520EF139C91289E8095A187EC0C" toRefs="TextSelection-72B67EF8074C859EFB238095A1A7DDDC-0-wk-Footnote-72B67EF8074C859EFB238095A1A7DDDC_lbl"></ix:relationship><ix:relationship arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote" linkRole="http://www.xbrl.org/2003/role/link" order="1" fromRefs="d9047537e1082-wk-Fact-311BA7AD37578AB85D398095A199FF51" toRefs="TextSelection-72B67EF8074C859EFB238095A1A7DDDC-0-wk-Footnote-72B67EF8074C859EFB238095A1A7DDDC_lbl"></ix:relationship><ix:relationship arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote" linkRole="http://www.xbrl.org/2003/role/link" order="1" fromRefs="d9047537e1200-wk-Fact-33A5CB8CFD9B87D3900B8095A18D5F11" toRefs="TextSelection-72B67EF8074C859EFB238095A1A7DDDC-0-wk-Footnote-72B67EF8074C859EFB238095A1A7DDDC_lbl"></ix:relationship><ix:relationship arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote" linkRole="http://www.xbrl.org/2003/role/link" order="1" fromRefs="d9047537e4518-wk-Fact-359B3D32A906FF2F38BD8095A18DAB26" toRefs="TextSelection-72B67EF8074C859EFB238095A1A7DDDC-0-wk-Footnote-72B67EF8074C859EFB238095A1A7DDDC_lbl"></ix:relationship><ix:relationship arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote" linkRole="http://www.xbrl.org/2003/role/link" order="1" fromRefs="d9047537e2499-wk-Fact-43A9A2EF2FE1D286A7538095A18D2CD1" toRefs="TextSelection-72B67EF8074C859EFB238095A1A7DDDC-0-wk-Footnote-72B67EF8074C859EFB238095A1A7DDDC_lbl"></ix:relationship><ix:relationship arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote" linkRole="http://www.xbrl.org/2003/role/link" order="1" fromRefs="d9047537e1068-wk-Fact-466C7EDC72CEF90651EB8095A18785F4" toRefs="TextSelection-72B67EF8074C859EFB238095A1A7DDDC-0-wk-Footnote-72B67EF8074C859EFB238095A1A7DDDC_lbl"></ix:relationship><ix:relationship arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote" linkRole="http://www.xbrl.org/2003/role/link" order="1" fromRefs="d9047537e2268-wk-Fact-4A5017B5BCB9D9B35EEC8095A170D8B2" toRefs="TextSelection-72B67EF8074C859EFB238095A1A7DDDC-0-wk-Footnote-72B67EF8074C859EFB238095A1A7DDDC_lbl"></ix:relationship><ix:relationship arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote" linkRole="http://www.xbrl.org/2003/role/link" order="1" fromRefs="d9047537e3824-wk-Fact-4D85564413F6BE09D8918095A18DCB2D" toRefs="TextSelection-72B67EF8074C859EFB238095A1A7DDDC-0-wk-Footnote-72B67EF8074C859EFB238095A1A7DDDC_lbl"></ix:relationship><ix:relationship arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote" linkRole="http://www.xbrl.org/2003/role/link" order="1" fromRefs="d9047537e3586-wk-Fact-54ACEEE7AC1CF0AF0EC18095A18D8654" toRefs="TextSelection-72B67EF8074C859EFB238095A1A7DDDC-0-wk-Footnote-72B67EF8074C859EFB238095A1A7DDDC_lbl"></ix:relationship><ix:relationship arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote" linkRole="http://www.xbrl.org/2003/role/link" order="1" fromRefs="d9047537e2638-wk-Fact-550E5840D42187E40AB18095A186401E" toRefs="TextSelection-72B67EF8074C859EFB238095A1A7DDDC-0-wk-Footnote-72B67EF8074C859EFB238095A1A7DDDC_lbl"></ix:relationship><ix:relationship arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote" linkRole="http://www.xbrl.org/2003/role/link" order="1" fromRefs="d9047537e3013-wk-Fact-5DDF74EC3124404949448095A198D9B6" toRefs="TextSelection-72B67EF8074C859EFB238095A1A7DDDC-0-wk-Footnote-72B67EF8074C859EFB238095A1A7DDDC_lbl"></ix:relationship><ix:relationship arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote" linkRole="http://www.xbrl.org/2003/role/link" order="1" fromRefs="d9047537e3567-wk-Fact-5F02AAD6848DEB58B6878095A18DD83F" toRefs="TextSelection-72B67EF8074C859EFB238095A1A7DDDC-0-wk-Footnote-72B67EF8074C859EFB238095A1A7DDDC_lbl"></ix:relationship><ix:relationship arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote" linkRole="http://www.xbrl.org/2003/role/link" order="1" fromRefs="d9047537e2367-wk-Fact-632A4D8EBB7BDB0786E68095A18D1DB4" toRefs="TextSelection-72B67EF8074C859EFB238095A1A7DDDC-0-wk-Footnote-72B67EF8074C859EFB238095A1A7DDDC_lbl"></ix:relationship><ix:relationship arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote" linkRole="http://www.xbrl.org/2003/role/link" order="1" fromRefs="d9047537e3493-wk-Fact-696435B72DCA66F6B2C58095A1870320" toRefs="TextSelection-72B67EF8074C859EFB238095A1A7DDDC-0-wk-Footnote-72B67EF8074C859EFB238095A1A7DDDC_lbl"></ix:relationship><ix:relationship arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote" linkRole="http://www.xbrl.org/2003/role/link" order="1" fromRefs="d9047537e2400-wk-Fact-6B3E373CC2BF2EA408BA8095A18F4592" toRefs="TextSelection-72B67EF8074C859EFB238095A1A7DDDC-0-wk-Footnote-72B67EF8074C859EFB238095A1A7DDDC_lbl"></ix:relationship><ix:relationship arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote" linkRole="http://www.xbrl.org/2003/role/link" order="1" fromRefs="d9047537e2484-wk-Fact-78CA1F247A094B9A973B8095A18F7B2B" toRefs="TextSelection-72B67EF8074C859EFB238095A1A7DDDC-0-wk-Footnote-72B67EF8074C859EFB238095A1A7DDDC_lbl"></ix:relationship><ix:relationship arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote" linkRole="http://www.xbrl.org/2003/role/link" order="1" fromRefs="d9047537e2249-wk-Fact-8196B1AF697B90749CC68095A1878769" toRefs="TextSelection-72B67EF8074C859EFB238095A1A7DDDC-0-wk-Footnote-72B67EF8074C859EFB238095A1A7DDDC_lbl"></ix:relationship><ix:relationship arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote" linkRole="http://www.xbrl.org/2003/role/link" order="1" fromRefs="d9047537e2307-wk-Fact-87268108E9834933E8DA8095A199AF37" toRefs="TextSelection-72B67EF8074C859EFB238095A1A7DDDC-0-wk-Footnote-72B67EF8074C859EFB238095A1A7DDDC_lbl"></ix:relationship><ix:relationship arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote" linkRole="http://www.xbrl.org/2003/role/link" order="1" fromRefs="d9047537e3961-wk-Fact-880A0D55DE9642B1D56B8095A18E82A2" toRefs="TextSelection-72B67EF8074C859EFB238095A1A7DDDC-0-wk-Footnote-72B67EF8074C859EFB238095A1A7DDDC_lbl"></ix:relationship><ix:relationship arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote" linkRole="http://www.xbrl.org/2003/role/link" order="1" fromRefs="d9047537e3454-wk-Fact-895B97023DE93F1B398E8095A18712B2" toRefs="TextSelection-72B67EF8074C859EFB238095A1A7DDDC-0-wk-Footnote-72B67EF8074C859EFB238095A1A7DDDC_lbl"></ix:relationship><ix:relationship arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote" linkRole="http://www.xbrl.org/2003/role/link" order="1" fromRefs="d9047537e3670-wk-Fact-8C5B3621FD304754CCC88095A18E09CD" toRefs="TextSelection-72B67EF8074C859EFB238095A1A7DDDC-0-wk-Footnote-72B67EF8074C859EFB238095A1A7DDDC_lbl"></ix:relationship><ix:relationship arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote" linkRole="http://www.xbrl.org/2003/role/link" order="1" fromRefs="d9047537e4557-wk-Fact-9734CC62E5F44F81C8B48095A1988F00" toRefs="TextSelection-72B67EF8074C859EFB238095A1A7DDDC-0-wk-Footnote-72B67EF8074C859EFB238095A1A7DDDC_lbl"></ix:relationship><ix:relationship arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote" linkRole="http://www.xbrl.org/2003/role/link" order="1" fromRefs="d9036001e2195-wk-Fact-97BE5E31F5F06BC065418095A17CCEAE" toRefs="TextSelection-C00ECF2D823D0F66DF8B8095A1A7CC9C-0-wk-Footnote-C00ECF2D823D0F66DF8B8095A1A7CC9C_lbl"></ix:relationship><ix:relationship arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote" linkRole="http://www.xbrl.org/2003/role/link" order="1" fromRefs="d9047537e3553-wk-Fact-986704192B08E2CD48178095A18E4EAF" toRefs="TextSelection-72B67EF8074C859EFB238095A1A7DDDC-0-wk-Footnote-72B67EF8074C859EFB238095A1A7DDDC_lbl"></ix:relationship><ix:relationship arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote" linkRole="http://www.xbrl.org/2003/role/link" order="1" fromRefs="d9047537e2894-wk-Fact-9FA6580A99EAF4A3A01815F853384C3B" toRefs="TextSelection-72B67EF8074C859EFB238095A1A7DDDC-0-wk-Footnote-72B67EF8074C859EFB238095A1A7DDDC_lbl"></ix:relationship><ix:relationship arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote" linkRole="http://www.xbrl.org/2003/role/link" order="1" fromRefs="d9047537e1595-wk-Fact-A3239781C22A644465758095A17064B7" toRefs="TextSelection-72B67EF8074C859EFB238095A1A7DDDC-0-wk-Footnote-72B67EF8074C859EFB238095A1A7DDDC_lbl"></ix:relationship><ix:relationship arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote" linkRole="http://www.xbrl.org/2003/role/link" order="1" fromRefs="d9047537e1101-wk-Fact-A7D16130C4381E01DCF48095A1980393" toRefs="TextSelection-72B67EF8074C859EFB238095A1A7DDDC-0-wk-Footnote-72B67EF8074C859EFB238095A1A7DDDC_lbl"></ix:relationship><ix:relationship arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote" linkRole="http://www.xbrl.org/2003/role/link" order="1" fromRefs="d9047537e3725-wk-Fact-A821DDA6ECECA13BEF9B8095A18E66CE" toRefs="TextSelection-72B67EF8074C859EFB238095A1A7DDDC-0-wk-Footnote-72B67EF8074C859EFB238095A1A7DDDC_lbl"></ix:relationship><ix:relationship arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote" linkRole="http://www.xbrl.org/2003/role/link" order="1" fromRefs="d9047537e3473-wk-Fact-A948B583008DE67591E98095A18DF5FE" toRefs="TextSelection-72B67EF8074C859EFB238095A1A7DDDC-0-wk-Footnote-72B67EF8074C859EFB238095A1A7DDDC_lbl"></ix:relationship><ix:relationship arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote" linkRole="http://www.xbrl.org/2003/role/link" order="1" fromRefs="d9047537e3685-wk-Fact-AD52A0BD083F216E98D18095A170069F" toRefs="TextSelection-72B67EF8074C859EFB238095A1A7DDDC-0-wk-Footnote-72B67EF8074C859EFB238095A1A7DDDC_lbl"></ix:relationship><ix:relationship arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote" linkRole="http://www.xbrl.org/2003/role/link" order="1" fromRefs="d9047537e4080-wk-Fact-AD63A240E975EA8D87988095A18E12CB" toRefs="TextSelection-72B67EF8074C859EFB238095A1A7DDDC-0-wk-Footnote-72B67EF8074C859EFB238095A1A7DDDC_lbl"></ix:relationship><ix:relationship arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote" linkRole="http://www.xbrl.org/2003/role/link" order="1" fromRefs="d9047537e4537-wk-Fact-BE35B333560C4EBA7CFA8095A1871D2E" toRefs="TextSelection-72B67EF8074C859EFB238095A1A7DDDC-0-wk-Footnote-72B67EF8074C859EFB238095A1A7DDDC_lbl"></ix:relationship><ix:relationship arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote" linkRole="http://www.xbrl.org/2003/role/link" order="1" fromRefs="d9047537e2381-wk-Fact-C0E209DF7E08550BB2978095A18E54F4" toRefs="TextSelection-72B67EF8074C859EFB238095A1A7DDDC-0-wk-Footnote-72B67EF8074C859EFB238095A1A7DDDC_lbl"></ix:relationship><ix:relationship arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote" linkRole="http://www.xbrl.org/2003/role/link" order="1" fromRefs="d9047537e2287-wk-Fact-C1B23D0783F74535B02B8095A187BA66" toRefs="TextSelection-72B67EF8074C859EFB238095A1A7DDDC-0-wk-Footnote-72B67EF8074C859EFB238095A1A7DDDC_lbl"></ix:relationship><ix:relationship arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote" linkRole="http://www.xbrl.org/2003/role/link" order="1" fromRefs="d9047537e950-wk-Fact-C7F6B3F4AEF84644AB198095A198B9A6" toRefs="TextSelection-72B67EF8074C859EFB238095A1A7DDDC-0-wk-Footnote-72B67EF8074C859EFB238095A1A7DDDC_lbl"></ix:relationship><ix:relationship arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote" linkRole="http://www.xbrl.org/2003/role/link" order="1" fromRefs="d9047537e1185-wk-Fact-C8D55FB98AF7C910ACB38095A1874810" toRefs="TextSelection-72B67EF8074C859EFB238095A1A7DDDC-0-wk-Footnote-72B67EF8074C859EFB238095A1A7DDDC_lbl"></ix:relationship><ix:relationship arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote" linkRole="http://www.xbrl.org/2003/role/link" order="1" fromRefs="d9036001e2176-wk-Fact-D15F9102957FCCB7DBF48095A17BDF77" toRefs="TextSelection-C00ECF2D823D0F66DF8B8095A1A7CC9C-0-wk-Footnote-C00ECF2D823D0F66DF8B8095A1A7CC9C_lbl"></ix:relationship><ix:relationship arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote" linkRole="http://www.xbrl.org/2003/role/link" order="1" fromRefs="d9047537e988-wk-Fact-D4B78298C01F8897A8368095A18E0170" toRefs="TextSelection-72B67EF8074C859EFB238095A1A7DDDC-0-wk-Footnote-72B67EF8074C859EFB238095A1A7DDDC_lbl"></ix:relationship><ix:relationship arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote" linkRole="http://www.xbrl.org/2003/role/link" order="1" fromRefs="d9047537e2539-wk-Fact-DD4A482523388BB758218095A18E8A82" toRefs="TextSelection-72B67EF8074C859EFB238095A1A7DDDC-0-wk-Footnote-72B67EF8074C859EFB238095A1A7DDDC_lbl"></ix:relationship><ix:relationship arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote" linkRole="http://www.xbrl.org/2003/role/link" order="1" fromRefs="d9047537e1240-wk-Fact-F4A2613963AF0B8656F38095A18E3286" toRefs="TextSelection-72B67EF8074C859EFB238095A1A7DDDC-0-wk-Footnote-72B67EF8074C859EFB238095A1A7DDDC_lbl"></ix:relationship></ix:resources></ix:header></div><div><a id="s4C263FB8A5DF559888384586BC21C96B"></a></div><div><div style="line-height:120%;font-size:9pt;"><a style="font-family:inherit;font-size:9pt;" href="#sCD449198B5695D85B5494CF5DF708C26"><span style="font-family:inherit;font-size:9pt;">Table of Contents</span></a></div></div><div><br/></div><div style="line-height:120%;padding-top:4px;text-align:center;font-size:11pt;"><span style="font-family:Arial;font-size:11pt;font-weight:bold;">UNITED STATES</span></div><div style="line-height:120%;text-align:center;font-size:11pt;"><span style="font-family:Arial;font-size:11pt;font-weight:bold;">SECURITIES AND EXCHANGE COMMISSION</span></div><div style="line-height:120%;text-align:center;font-size:11pt;"><span style="font-family:Arial;font-size:11pt;font-weight:bold;">Washington, D.C. 20549</span></div><div style="line-height:120%;text-align:center;font-size:22pt;"><span style="font-family:Arial;font-size:22pt;font-weight:bold;">FORM </span><span><ix:nonNumeric id="d9024396e640-wk-Fact-B936DE8D940D98F9B29680CE7C51E372" name="dei:DocumentType" contextRef="FD2019Q4YTD"><span style="font-family:Arial;font-size:22pt;font-weight:bold;">10-K</span></ix:nonNumeric></span><span style="font-family:Arial;font-size:22pt;font-weight:bold;"> </span></div><div style="line-height:120%;padding-top:2px;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-style:italic;">(Mark One)</span></div><div style="line-height:120%;padding-top:2px;text-indent:32px;font-size:11pt;"><span><ix:nonNumeric id="d9024396e649-wk-Fact-65D09DE79C2DD89F55B784591F026E90" name="dei:DocumentQuarterlyReport" contextRef="FD2019Q4YTD" format="ixt-sec:boolballotbox"><span style="font-family:Arial Unicode MS;font-size:11pt;">&#9746;</span></ix:nonNumeric></span><span style="font-family:Arial;font-size:8pt;">   Annual report pursuant to Section&#160;13 or 15(d) of the Securities Exchange Act of 1934 for the fiscal year ended </span><span style="font-family:Arial;font-size:8pt;"><span><span style="white-space:nowrap"><ix:nonNumeric id="d9024396e654-wk-Fact-B3C9C19CE73015871C29845982E81BE6" name="dei:DocumentPeriodEndDate" contextRef="FD2019Q4YTD" format="ixt:datemonthdayyearen">December 31, 2019</ix:nonNumeric></span></span></span><span style="font-family:Arial;font-size:8pt;"> or</span></div><div style="line-height:120%;padding-top:2px;text-indent:32px;font-size:11pt;"><span><ix:nonNumeric id="d9024396e659-wk-Fact-E06B661DBB3DCC628D848459CD44656D" name="dei:DocumentTransitionReport" contextRef="FD2019Q4YTD" format="ixt-sec:boolballotbox"><span style="font-family:Arial Unicode MS;font-size:11pt;">&#9744;</span></ix:nonNumeric></span><span style="font-family:Arial Unicode MS;font-size:11pt;"> </span><span style="font-family:Arial;font-size:8pt;"> 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="font-family:Arial;font-size:8pt;text-decoration:underline;">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</span><span style="font-family:Arial;font-size:8pt;">to</span><span style="font-family:Arial;font-size:8pt;text-decoration:underline;">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</span><span style="font-family:Arial;font-size:8pt;">.</span></div><div style="line-height:120%;text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;">Commission File Number </span><span><ix:nonNumeric id="d9024396e677-wk-Fact-4BE5AC090F6D45F31E79845A1CA31C4B" name="dei:EntityFileNumber" contextRef="FD2019Q4YTD"><span style="font-family:Arial;font-size:8pt;font-weight:bold;text-decoration:underline;">001-34218</span></ix:nonNumeric></span><span style="font-family:Arial;font-size:8pt;font-weight:bold;"> </span></div><div style="line-height:120%;text-align:center;font-size:17pt;"><span><ix:nonNumeric id="d9024396e683-wk-Fact-AEF8062B1C6A4963116B845BCBFACEF1" name="dei:EntityRegistrantName" contextRef="FD2019Q4YTD"><span style="font-family:Arial;font-size:17pt;font-weight:bold;text-decoration:underline;">COGNEX CORP</span></ix:nonNumeric></span><span style="font-family:Arial;font-size:17pt;font-weight:bold;text-decoration:underline;">ORATION</span></div><div style="line-height:120%;padding-top:2px;text-align:center;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;font-style:italic;">(Exact name of registrant as specified in its charter)</span></div><div style="line-height:120%;text-align:center;font-size:10pt;"><div style="padding-left:0px;text-indent:0px;line-height:normal;padding-top:10px;"><table cellpadding="0" cellspacing="0" style="font-family:Times New Roman;font-size:10pt;margin-left:auto;margin-right:auto;width:682px;border-collapse:collapse;text-align:left;"><tr><td colspan="5"></td></tr><tr><td style="width:21px;"></td><td style="width:185px;"></td><td style="width:338px;"></td><td style="width:116px;"></td><td style="width:21px;"></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;font-weight:bold;"><span><ix:nonNumeric id="d9024396e712-wk-Fact-FC5F1C094B8CB04B04E1845CCA15E81E" name="dei:EntityIncorporationStateCountryCode" contextRef="FD2019Q4YTD" format="ixt-sec:stateprovnameen">Massachusetts</ix:nonNumeric></span></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:9pt;"><span style="font-family:inherit;font-size:9pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;font-weight:bold;"><span><ix:nonNumeric id="d9024396e722-wk-Fact-239C534772C81EFDD642845D02A7AFFD" name="dei:EntityTaxIdentificationNumber" contextRef="FD2019Q4YTD">04-2713778</ix:nonNumeric></span></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;font-style:italic;">(State or other jurisdiction of</span></div><div style="text-align:center;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;font-style:italic;">incorporation or organization)</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:9pt;"><span style="font-family:inherit;font-size:9pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;font-style:italic;">(I.R.S. Employer</span></div><div style="text-align:center;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;font-style:italic;">Identification No.)</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td></tr></table></div></div><div style="line-height:120%;text-align:center;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div><div style="line-height:120%;text-align:center;font-size:9pt;"><span><ix:nonNumeric id="d9024396e765-wk-Fact-3D16FB7213F7C7F4C846845E32BAFA34" name="dei:EntityAddressAddressLine1" contextRef="FD2019Q4YTD"><span style="font-family:Arial;font-size:9pt;font-weight:bold;">One Vision Drive</span></ix:nonNumeric></span><span style="font-family:Arial;font-size:9pt;font-weight:bold;"> </span></div><div style="line-height:120%;text-align:center;font-size:9pt;"><span><ix:nonNumeric id="d9024396e771-wk-Fact-644F6C27BC68440DAF5B845E4495033D" name="dei:EntityAddressCityOrTown" contextRef="FD2019Q4YTD"><span style="font-family:Arial;font-size:9pt;font-weight:bold;">Natick</span></ix:nonNumeric></span><span style="font-family:Arial;font-size:9pt;font-weight:bold;">,&#160;</span><span><ix:nonNumeric id="d9024396e776-wk-Fact-FC278162609999BE823A845E5727E57D" name="dei:EntityAddressStateOrProvince" contextRef="FD2019Q4YTD" format="ixt-sec:stateprovnameen"><span style="font-family:Arial;font-size:9pt;font-weight:bold;">Massachusetts</span></ix:nonNumeric></span><span style="font-family:Arial;font-size:9pt;font-weight:bold;">&#160;</span><span><ix:nonNumeric id="d9024396e781-wk-Fact-060BB5D76ECD91912FD8845E68B37D59" name="dei:EntityAddressPostalZipCode" contextRef="FD2019Q4YTD"><span style="font-family:Arial;font-size:9pt;font-weight:bold;">01760</span></ix:nonNumeric></span><span style="font-family:Arial;font-size:9pt;font-weight:bold;">-2059</span></div><div style="line-height:120%;text-align:center;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;font-weight:bold;">(</span><span><ix:nonNumeric id="d9024396e789-wk-Fact-5ACDAAE21F7CEB04D484845E785BD7FE" name="dei:CityAreaCode" contextRef="FD2019Q4YTD"><span style="font-family:Arial;font-size:9pt;font-weight:bold;">508</span></ix:nonNumeric></span><span style="font-family:Arial;font-size:9pt;font-weight:bold;">) </span><span><ix:nonNumeric id="d9024396e794-wk-Fact-F7DD32FAA65AE739A8C6845E8D339721" name="dei:LocalPhoneNumber" contextRef="FD2019Q4YTD"><span style="font-family:Arial;font-size:9pt;font-weight:bold;">650-3000</span></ix:nonNumeric></span><span style="font-family:Arial;font-size:9pt;font-weight:bold;"> </span></div><div style="line-height:120%;text-align:center;font-size:10pt;"><div style="padding-left:0px;text-indent:0px;line-height:normal;padding-top:10px;"><table cellpadding="0" cellspacing="0" style="font-family:Times New Roman;font-size:10pt;margin-left:auto;margin-right:auto;width:683px;border-collapse:collapse;text-align:left;"><tr><td colspan="5"></td></tr><tr><td style="width:106px;"></td><td style="width:117px;"></td><td style="width:234px;"></td><td style="width:117px;"></td><td style="width:106px;"></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;border-top:1px solid #000000;"><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-style:italic;">(Address, including zip code, and telephone number,</span></div><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-style:italic;">including area code, of principal executive offices)</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td></tr></table></div></div><div style="line-height:120%;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">Securities registered pursuant to Section&#160;12(b) of the Act:</span></div><div style="line-height:120%;font-size:8pt;"><div style="padding-left:0px;text-indent:0px;line-height:normal;padding-top:10px;"><table cellpadding="0" cellspacing="0" style="font-family:Times New Roman;font-size:10pt;width:100%;border-collapse:collapse;text-align:left;"><tr><td colspan="3"></td></tr><tr><td style="width:38%;"></td><td style="width:21%;"></td><td style="width:41%;"></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;text-decoration:underline;">Title of Each Class</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;text-decoration:underline;">Trading Symbol(s)</span></div><div style="font-size:8pt;"><span style="font-family:Arial;font-size:8pt;"><br/></span></div></td><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;text-decoration:underline;">Name of Exchange on Which Registered</span></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;"><span><ix:nonNumeric id="d9024396e875-wk-Fact-4AA88F8E29F3742539CF8462AED37F30" name="dei:Security12bTitle" contextRef="FD2019Q4YTD">Common Stock, par value $.002 per share</ix:nonNumeric></span></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;"><span><ix:nonNumeric id="d9024396e880-wk-Fact-311128C8ECBA7FC1F2368462C009D596" name="dei:TradingSymbol" contextRef="FD2019Q4YTD">CGNX</ix:nonNumeric></span></span></div></td><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;"><span><ix:nonNumeric id="d9024396e885-wk-Fact-3E16675563B12E7B49948462D249E5D6" name="dei:SecurityExchangeName" contextRef="FD2019Q4YTD" format="ixt-sec:exchnameen">The NASDAQ Stock Market LLC</ix:nonNumeric></span></span></div></td></tr></table></div></div><div style="line-height:120%;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">Securities registered pursuant to Section&#160;12(g) of the Act: None</span></div><div style="line-height:120%;padding-top:2px;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">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 style="line-height:120%;font-size:11pt;"><div style="padding-left:0px;text-indent:0px;line-height:normal;padding-top:10px;"><table cellpadding="0" cellspacing="0" style="font-family:Times New Roman;font-size:10pt;width:100%;border-collapse:collapse;text-align:left;"><tr><td colspan="13"></td></tr><tr><td style="width:25%;"></td><td style="width:2%;"></td><td style="width:14%;"></td><td style="width:2%;"></td><td style="width:7%;"></td><td style="width:2%;"></td><td style="width:19%;"></td><td style="width:2%;"></td><td style="width:5%;"></td><td style="width:2%;"></td><td style="width:7%;"></td><td style="width:2%;"></td><td style="width:11%;"></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;">&#160;</span></div></td><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:right;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;"><span><ix:nonNumeric id="d9024396e928-wk-Fact-DD8BC26DC3A880B10694846420458F2B" name="dei:EntityWellKnownSeasonedIssuer" contextRef="FD2019Q4YTD">Yes</ix:nonNumeric></span></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:11pt;"><span style="font-family:Arial Unicode MS;font-size:11pt;">&#9746;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;">&#160;&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:right;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">No</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;">&#160;&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:11pt;"><span style="font-family:Arial Unicode MS;font-size:11pt;">&#9744;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;">&#160;&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td></tr></table></div></div><div style="line-height:120%;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">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 style="line-height:120%;font-size:11pt;"><div style="padding-left:0px;text-indent:0px;line-height:normal;padding-top:10px;"><table cellpadding="0" cellspacing="0" style="font-family:Times New Roman;font-size:10pt;width:100%;border-collapse:collapse;text-align:left;"><tr><td colspan="13"></td></tr><tr><td style="width:25%;"></td><td style="width:2%;"></td><td style="width:14%;"></td><td style="width:2%;"></td><td style="width:7%;"></td><td style="width:2%;"></td><td style="width:19%;"></td><td style="width:2%;"></td><td style="width:5%;"></td><td style="width:2%;"></td><td style="width:7%;"></td><td style="width:2%;"></td><td style="width:11%;"></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;">&#160;</span></div></td><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:right;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">Yes</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:11pt;"><span style="font-family:Arial Unicode MS;font-size:11pt;">&#9744;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;">&#160;&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:right;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;"><span><ix:nonNumeric id="d9024396e1050-wk-Fact-45D63DE73246CD7739B6846856D25CC0" name="dei:EntityVoluntaryFilers" contextRef="FD2019Q4YTD">No</ix:nonNumeric></span></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;">&#160;&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:11pt;"><span style="font-family:Arial Unicode MS;font-size:11pt;">&#9746;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;">&#160;&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td></tr></table></div></div><div style="line-height:120%;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">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 style="line-height:120%;font-size:11pt;"><div style="padding-left:0px;text-indent:0px;line-height:normal;padding-top:10px;"><table cellpadding="0" cellspacing="0" style="font-family:Times New Roman;font-size:10pt;width:100%;border-collapse:collapse;text-align:left;"><tr><td colspan="13"></td></tr><tr><td style="width:25%;"></td><td style="width:2%;"></td><td style="width:14%;"></td><td style="width:2%;"></td><td style="width:7%;"></td><td style="width:2%;"></td><td style="width:19%;"></td><td style="width:2%;"></td><td style="width:5%;"></td><td style="width:2%;"></td><td style="width:7%;"></td><td style="width:2%;"></td><td style="width:11%;"></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;">&#160;</span></div></td><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:right;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;"><span><ix:nonNumeric id="d9024396e1111-wk-Fact-5637AA20E8C7A71A039C846911091778" name="dei:EntityCurrentReportingStatus" contextRef="FD2019Q4YTD">Yes</ix:nonNumeric></span></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:11pt;"><span style="font-family:Arial Unicode MS;font-size:11pt;">&#9746;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;">&#160;&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:right;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">No</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;">&#160;&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:11pt;"><span style="font-family:Arial Unicode MS;font-size:11pt;">&#9744;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;">&#160;&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td></tr></table></div></div><div style="line-height:120%;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">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 style="line-height:120%;font-size:11pt;"><div style="padding-left:0px;text-indent:0px;line-height:normal;padding-top:10px;"><table cellpadding="0" cellspacing="0" style="font-family:Times New Roman;font-size:10pt;width:100%;border-collapse:collapse;text-align:left;"><tr><td colspan="13"></td></tr><tr><td style="width:25%;"></td><td style="width:2%;"></td><td style="width:14%;"></td><td style="width:2%;"></td><td style="width:7%;"></td><td style="width:2%;"></td><td style="width:19%;"></td><td style="width:2%;"></td><td style="width:5%;"></td><td style="width:2%;"></td><td style="width:7%;"></td><td style="width:2%;"></td><td style="width:11%;"></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;">&#160;</span></div></td><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:right;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;"><span><ix:nonNumeric id="d9024396e1202-wk-Fact-48004E7B189DDB51FF768469AC6AB794" name="dei:EntityInteractiveDataCurrent" contextRef="FD2019Q4YTD">Yes</ix:nonNumeric></span></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:11pt;"><span style="font-family:Arial Unicode MS;font-size:11pt;">&#9746;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;">&#160;&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:right;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">No</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;">&#160;&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:11pt;"><span style="font-family:Arial Unicode MS;font-size:11pt;">&#9744;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;">&#160;&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td></tr></table></div></div><div style="line-height:120%;padding-top:2px;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">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 style="line-height:120%;font-size:11pt;"><div style="padding-left:0px;text-indent:0px;line-height:normal;padding-top:10px;"><table cellpadding="0" cellspacing="0" style="font-family:Times New Roman;font-size:10pt;width:100%;border-collapse:collapse;text-align:left;"><tr><td colspan="5"></td></tr><tr><td style="width:3%;"></td><td style="width:47%;"></td><td style="width:1%;"></td><td style="width:3%;"></td><td style="width:46%;"></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:11pt;"><span style="font-family:Arial Unicode MS;font-size:11pt;">&#9746;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;"><span><ix:nonNumeric id="d9024396e1280-wk-Fact-505E34AFDE4290123C878479DB453A20" name="dei:EntityFilerCategory" contextRef="FD2019Q4YTD" format="ixt-sec:entityfilercategoryen">Large accelerated filer</ix:nonNumeric></span></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:11pt;"><span style="font-family:Arial Unicode MS;font-size:11pt;">&#9744;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">Accelerated filer</span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:11pt;"><span style="font-family:Arial Unicode MS;font-size:11pt;">&#9744;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">Non-accelerated filer</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:11pt;"><span style="font-family:Arial Unicode MS;font-size:11pt;"><span><ix:nonNumeric id="d9024396e1316-wk-Fact-534889088805113A193C3F218EFD5A2C" name="dei:EntitySmallBusiness" contextRef="FD2019Q4YTD" format="ixt-sec:boolballotbox">&#9744;</ix:nonNumeric></span></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">Smaller&#160;reporting&#160;company</span></div><div style="font-size:9pt;"><span style="font-family:inherit;font-size:9pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:11pt;"><span style="font-family:Arial Unicode MS;font-size:11pt;"><span><ix:nonNumeric id="d9024396e1344-wk-Fact-D9FE734D4A5EE726EF06847C72868FAF" name="dei:EntityEmergingGrowthCompany" contextRef="FD2019Q4YTD" format="ixt-sec:boolballotbox">&#9744;</ix:nonNumeric></span></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">Emerging growth company</span></div><div style="font-size:9pt;"><span style="font-family:inherit;font-size:9pt;"><br/></span></div></td></tr></table></div></div><div style="line-height:120%;padding-top:2px;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">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="font-family:Wingdings;font-size:8pt;">o</span></div><div style="line-height:120%;padding-top:2px;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">Indicate by check mark whether the registrant is a shell company (as defined in Rule 12b-2 of the Exchange Act).</span></div><div style="line-height:120%;font-size:10pt;"><div style="padding-left:0px;text-indent:0px;line-height:normal;padding-top:10px;"><table cellpadding="0" cellspacing="0" style="font-family:Times New Roman;font-size:10pt;width:100%;border-collapse:collapse;text-align:left;"><tr><td colspan="13"></td></tr><tr><td style="width:25%;"></td><td style="width:2%;"></td><td style="width:14%;"></td><td style="width:2%;"></td><td style="width:7%;"></td><td style="width:2%;"></td><td style="width:19%;"></td><td style="width:2%;"></td><td style="width:5%;"></td><td style="width:2%;"></td><td style="width:7%;"></td><td style="width:2%;"></td><td style="width:11%;"></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;">&#160;</span></div></td><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:right;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">Yes</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:9pt;"><span style="font-family:Arial Unicode MS;font-size:9pt;"><span><ix:nonNumeric id="d9024396e1406-wk-Fact-2642D0C9735973603F72847E5627B2F3" name="dei:EntityShellCompany" contextRef="FD2019Q4YTD" format="ixt-sec:boolballotbox">&#9744;</ix:nonNumeric></span></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;">&#160;&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:right;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">No</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;">&#160;&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:9pt;"><span style="font-family:Arial Unicode MS;font-size:9pt;">&#9746;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;">&#160;&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td></tr></table></div></div><div style="line-height:120%;text-align:center;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;">Aggregate market value of voting stock held by non-affiliates of the registrant as of </span><span style="font-family:Arial;font-size:9pt;">June&#160;30, 2019</span><span style="font-family:Arial;font-size:9pt;">: $</span><span style="font-family:Arial;font-size:9pt;"><span><ix:nonFraction id="d9024396e1456-wk-Fact-20813A861CE0C82825508095A17A4627" name="dei:EntityPublicFloat" contextRef="FI2019Q2" unitRef="usd" decimals="0" scale="0" format="ixt:numdotdecimal">7,800,874,313</ix:nonFraction></span></span><span style="font-family:Arial;font-size:9pt;"> </span></div><div style="line-height:120%;text-align:center;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;">Common stock, par value $.002 per share, outstanding as of </span><span style="font-family:Arial;font-size:9pt;">January&#160;26, 2020</span><span style="font-family:Arial;font-size:9pt;">: </span><span style="font-family:Arial;font-size:9pt;"><span><ix:nonFraction id="d9024396e1468-wk-Fact-5BF4975AB69425BA1AF18095A185AD08" name="dei:EntityCommonStockSharesOutstanding" contextRef="I2020Q1Jan26" unitRef="shares" decimals="0" scale="0" format="ixt:numdotdecimal">172,611,232</ix:nonFraction></span></span><span style="font-family:Arial;font-size:9pt;"> shares</span></div><div style="line-height:120%;text-align:center;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;">DOCUMENTS INCORPORATED BY REFERENCE:</span></div><div style="line-height:120%;text-align:center;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;">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 </span><span style="font-family:Arial;font-size:9pt;">December&#160;31, 2019</span><span style="font-family:Arial;font-size:9pt;">. Portions of such Proxy Statement are incorporated by reference in Part&#160;III of this report.</span></div><div><br/></div><hr style="page-break-after:always"></hr><div><a id="sCD449198B5695D85B5494CF5DF708C26"></a></div><div><div style="line-height:120%;font-size:9pt;"><a style="font-family:inherit;font-size:9pt;" href="#sCD449198B5695D85B5494CF5DF708C26"><span style="font-family:inherit;font-size:9pt;">Table of Contents</span></a></div></div><div><br/></div><div style="line-height:120%;text-align:center;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">COGNEX CORPORATION</span></div><div style="line-height:120%;text-align:center;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">ANNUAL REPORT ON FORM 10-K</span></div><div style="line-height:120%;text-align:center;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">FOR THE YEAR ENDED DECEMBER 31, </span><span style="font-family:Arial;font-size:10pt;font-weight:bold;">2019</span><span style="font-family:Arial;font-size:10pt;font-weight:bold;"> </span></div><div style="line-height:120%;padding-top:24px;text-align:center;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">INDEX</span></div><div style="line-height:120%;font-size:9pt;"><span style="font-family:inherit;font-size:9pt;">&#160;</span></div><div style="line-height:120%;font-size:10pt;"><div style="padding-left:0px;text-indent:0px;line-height:normal;padding-top:10px;"><table cellpadding="0" cellspacing="0" style="font-family:Times New Roman;font-size:10pt;width:100%;border-collapse:collapse;text-align:left;"><tr><td colspan="3"></td></tr><tr><td style="width:16%;"></td><td style="width:69%;"></td><td style="width:15%;"></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="font-size:10pt;"><a style="font-family:Arial;font-size:10pt;font-weight:bold;text-decoration:underline;color:#000000;" href="#s2B2F57AF00E457BAA12D5C0A5C8D2074"><span style="font-family:Arial;font-size:10pt;font-weight:bold;text-decoration:underline;color:#000000;">PART I</span></a></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:right;font-size:10pt;"><a style="font-family:Arial;font-size:10pt;font-weight:bold;text-decoration:underline;color:#000000;" href="#s2B2F57AF00E457BAA12D5C0A5C8D2074">1</a></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">ITEM 1.</span></div></td><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="font-size:10pt;"><a style="font-family:Arial;font-size:10pt;text-decoration:underline;color:#000000;" href="#sBB350725AF6E5BECB336BFCF7CED4F1B"><span style="font-family:Arial;font-size:10pt;text-decoration:underline;color:#000000;">BUSINESS</span></a></div></td><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:right;font-size:10pt;"><a style="font-family:Arial;font-size:10pt;text-decoration:underline;color:#000000;" href="#sBB350725AF6E5BECB336BFCF7CED4F1B">1</a></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">ITEM 1A.</span></div></td><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="font-size:10pt;"><a style="font-family:Arial;font-size:10pt;text-decoration:underline;color:#000000;" href="#s81CFCFD83B665C1988D677D2095D1947"><span style="font-family:Arial;font-size:10pt;text-decoration:underline;color:#000000;">RISK FACTORS</span></a></div></td><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:right;font-size:10pt;"><a style="font-family:Arial;font-size:10pt;text-decoration:underline;color:#000000;" href="#s81CFCFD83B665C1988D677D2095D1947">6</a></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">ITEM&#160;1B.</span></div></td><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="font-size:10pt;"><a style="font-family:Arial;font-size:10pt;text-decoration:underline;color:#000000;" href="#sE4E6972AB3E15EA598B0C0AFAFFF7CCB"><span style="font-family:Arial;font-size:10pt;text-decoration:underline;color:#000000;">UNRESOLVED STAFF COMMENTS</span></a></div></td><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:right;font-size:10pt;"><a style="font-family:Arial;font-size:10pt;text-decoration:underline;color:#000000;" href="#sE4E6972AB3E15EA598B0C0AFAFFF7CCB">13</a></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">ITEM 2.</span></div></td><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="font-size:10pt;"><a style="font-family:Arial;font-size:10pt;text-decoration:underline;color:#000000;" href="#s2117F5E8FDDE5796A493A2D71A86E83A"><span style="font-family:Arial;font-size:10pt;text-decoration:underline;color:#000000;">PROPERTIES</span></a></div></td><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:right;font-size:10pt;"><a style="font-family:Arial;font-size:10pt;text-decoration:underline;color:#000000;" href="#s2117F5E8FDDE5796A493A2D71A86E83A">13</a></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">ITEM 3.</span></div></td><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="font-size:10pt;"><a style="font-family:Arial;font-size:10pt;text-decoration:underline;color:#000000;" href="#s5BC12B6428205AFB84BFEFB0A0EB2CFA"><span style="font-family:Arial;font-size:10pt;text-decoration:underline;color:#000000;">LEGAL PROCEEDINGS</span></a></div></td><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:right;font-size:10pt;"><a style="font-family:Arial;font-size:10pt;text-decoration:underline;color:#000000;" href="#s5BC12B6428205AFB84BFEFB0A0EB2CFA">14</a></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">ITEM 4.</span></div></td><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="font-size:10pt;"><a style="font-family:Arial;font-size:10pt;text-decoration:underline;color:#000000;" href="#sFE4BAE4328985A0F82C6E177B9AF8A0A"><span style="font-family:Arial;font-size:10pt;text-decoration:underline;color:#000000;">MINE SAFETY DISCLOSURES</span></a></div></td><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:right;font-size:10pt;"><a style="font-family:Arial;font-size:10pt;text-decoration:underline;color:#000000;" href="#sFE4BAE4328985A0F82C6E177B9AF8A0A">14</a></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">ITEM 4A.</span></div></td><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="font-size:10pt;"><span style="font-family:Arial;font-size:10pt;text-decoration:underline;">INFORMATION ABOUT OUR </span><a style="font-family:Arial;font-size:10pt;text-decoration:underline;color:#000000;" href="#sED4E8EAE63D857ED9725F3EDB487E8FB"><span style="font-family:Arial;font-size:10pt;text-decoration:underline;color:#000000;">EXECUTIVE OFFICERS</span></a></div></td><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:right;font-size:10pt;"><a style="font-family:Arial;font-size:10pt;text-decoration:underline;color:#000000;" href="#sED4E8EAE63D857ED9725F3EDB487E8FB">14</a></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:20px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:20px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:20px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="font-size:10pt;"><a style="font-family:Arial;font-size:10pt;font-weight:bold;text-decoration:underline;color:#000000;" href="#s200B8A29EFCB5E83B9B4851D636D9E05"><span style="font-family:Arial;font-size:10pt;font-weight:bold;text-decoration:underline;color:#000000;">PART II</span></a></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:right;font-size:10pt;"><a style="font-family:Arial;font-size:10pt;font-weight:bold;text-decoration:underline;color:#000000;" href="#s200B8A29EFCB5E83B9B4851D636D9E05">15</a></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">ITEM 5.</span></div></td><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="font-size:10pt;"><a style="font-family:Arial;font-size:10pt;text-decoration:underline;color:#000000;" href="#s2EDCEEBB0D5F5DC28B0A35FC0D0FD44F"><span style="font-family:Arial;font-size:10pt;text-decoration:underline;color:#000000;">MARKET FOR REGISTRANT&#8217;S COMMON EQUITY, RELATED STOCKHOLDER MATTERS, AND ISSUER PURCHASES OF EQUITY SECURITIES</span></a></div></td><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:right;font-size:10pt;"><a style="font-family:Arial;font-size:10pt;text-decoration:underline;color:#000000;" href="#s2EDCEEBB0D5F5DC28B0A35FC0D0FD44F">15</a></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">ITEM 6.</span></div></td><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="font-size:10pt;"><a style="font-family:Arial;font-size:10pt;text-decoration:underline;color:#000000;" href="#s1E5AD2727BD5560AA2FB6A648F8EC13A"><span style="font-family:Arial;font-size:10pt;text-decoration:underline;color:#000000;">SELECTED FINANCIAL DATA</span></a></div></td><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:right;font-size:10pt;"><a style="font-family:Arial;font-size:10pt;text-decoration:underline;color:#000000;" href="#s1E5AD2727BD5560AA2FB6A648F8EC13A">17</a></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">ITEM 7.</span></div></td><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="font-size:10pt;"><a style="font-family:Arial;font-size:10pt;text-decoration:underline;color:#000000;" href="#s179A609936A4562AABA16C134FB12BC3"><span style="font-family:Arial;font-size:10pt;text-decoration:underline;color:#000000;">MANAGEMENT&#8217;S DISCUSSION AND ANALYSIS OF FINANCIAL CONDITION AND RESULTS OF OPERATIONS</span></a></div></td><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:right;font-size:10pt;"><a style="font-family:Arial;font-size:10pt;text-decoration:underline;color:#000000;" href="#s179A609936A4562AABA16C134FB12BC3">18</a></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">ITEM&#160;7A.</span></div></td><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="font-size:10pt;"><a style="font-family:Arial;font-size:10pt;text-decoration:underline;color:#000000;" href="#s2DA9EB6C83475BBAAA6BC1E2B1D9AE0D"><span style="font-family:Arial;font-size:10pt;text-decoration:underline;color:#000000;">QUANTITATIVE AND QUALITATIVE DISCLOSURES ABOUT MARKET RISK</span></a></div></td><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:right;font-size:10pt;"><a style="font-family:Arial;font-size:10pt;text-decoration:underline;color:#000000;" href="#s2DA9EB6C83475BBAAA6BC1E2B1D9AE0D">30</a></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">ITEM 8.</span></div></td><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="font-size:10pt;"><a style="font-family:Arial;font-size:10pt;text-decoration:underline;color:#000000;" href="#sA77FF2A8DA635F319729B0D685DEED95"><span style="font-family:Arial;font-size:10pt;text-decoration:underline;color:#000000;">FINANCIAL STATEMENTS AND SUPPLEMENTARY DATA</span></a></div></td><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:right;font-size:10pt;"><a style="font-family:Arial;font-size:10pt;text-decoration:underline;color:#000000;" href="#sA77FF2A8DA635F319729B0D685DEED95">33</a></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">ITEM 9.</span></div></td><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="font-size:10pt;"><a style="font-family:Arial;font-size:10pt;text-decoration:underline;color:#000000;" href="#sBCCD78C9D393502FBBCA54235B7063E1"><span style="font-family:Arial;font-size:10pt;text-decoration:underline;color:#000000;">CHANGES IN AND DISAGREEMENTS WITH ACCOUNTANTS ON ACCOUNTING AND FINANCIAL DISCLOSURE</span></a></div></td><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:right;font-size:10pt;"><a style="font-family:Arial;font-size:10pt;text-decoration:underline;color:#000000;" href="#sBCCD78C9D393502FBBCA54235B7063E1">75</a></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">ITEM 9A.</span></div></td><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="font-size:10pt;"><a style="font-family:Arial;font-size:10pt;text-decoration:underline;color:#000000;" href="#s32A362AB876D5D768EB7E6F1A480DE5B"><span style="font-family:Arial;font-size:10pt;text-decoration:underline;color:#000000;">CONTROLS AND PROCEDURES</span></a></div></td><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:right;font-size:10pt;"><a style="font-family:Arial;font-size:10pt;text-decoration:underline;color:#000000;" href="#s32A362AB876D5D768EB7E6F1A480DE5B">75</a></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">ITEM 9B.</span></div></td><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="font-size:10pt;"><a style="font-family:Arial;font-size:10pt;text-decoration:underline;color:#000000;" href="#s82C3EBEEA8E95A7DA5884BCF80F5D101"><span style="font-family:Arial;font-size:10pt;text-decoration:underline;color:#000000;">OTHER INFORMATION</span></a></div></td><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:right;font-size:10pt;"><a style="font-family:Arial;font-size:10pt;text-decoration:underline;color:#000000;" href="#s82C3EBEEA8E95A7DA5884BCF80F5D101">77</a></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:20px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:20px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:20px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="font-size:10pt;"><a style="font-family:Arial;font-size:10pt;font-weight:bold;text-decoration:underline;color:#000000;" href="#sE90603D833A2575BA1CAD59D1597E7A7"><span style="font-family:Arial;font-size:10pt;font-weight:bold;text-decoration:underline;color:#000000;">PART&#160;III</span></a></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:right;font-size:10pt;"><a style="font-family:Arial;font-size:10pt;font-weight:bold;text-decoration:underline;color:#000000;" href="#sE90603D833A2575BA1CAD59D1597E7A7">77</a></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">ITEM&#160;10.</span></div></td><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="font-size:10pt;"><a style="font-family:Arial;font-size:10pt;text-decoration:underline;color:#000000;" href="#sF4A34F61B8AF5C50848D353F52D36E6D"><span style="font-family:Arial;font-size:10pt;text-decoration:underline;color:#000000;">DIRECTORS, EXECUTIVE OFFICERS, AND CORPORATE GOVERNANCE</span></a></div></td><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:right;font-size:10pt;"><a style="font-family:Arial;font-size:10pt;text-decoration:underline;color:#000000;" href="#sF4A34F61B8AF5C50848D353F52D36E6D">77</a></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">ITEM&#160;11.</span></div></td><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="font-size:10pt;"><a style="font-family:Arial;font-size:10pt;text-decoration:underline;color:#000000;" href="#s60E02F40BD855F7CB430F54794DCE028"><span style="font-family:Arial;font-size:10pt;text-decoration:underline;color:#000000;">EXECUTIVE COMPENSATION</span></a></div></td><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:right;font-size:10pt;"><a style="font-family:Arial;font-size:10pt;text-decoration:underline;color:#000000;" href="#s60E02F40BD855F7CB430F54794DCE028">77</a></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">ITEM&#160;12.</span></div></td><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="font-size:10pt;"><a style="font-family:Arial;font-size:10pt;text-decoration:underline;color:#000000;" href="#sB6C878B5381557A9A65C33071F0A3927"><span style="font-family:Arial;font-size:10pt;text-decoration:underline;color:#000000;">SECURITY OWNERSHIP OF CERTAIN BENEFICIAL OWNERS AND MANAGEMENT AND RELATED STOCKHOLDER MATTERS</span></a></div></td><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:right;font-size:10pt;"><a style="font-family:Arial;font-size:10pt;text-decoration:underline;color:#000000;" href="#sB6C878B5381557A9A65C33071F0A3927">77</a></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">ITEM&#160;13.</span></div></td><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="font-size:10pt;"><a style="font-family:Arial;font-size:10pt;text-decoration:underline;color:#000000;" href="#s3FA439AD6ED2565CB1E4B35DEB9C4238"><span style="font-family:Arial;font-size:10pt;text-decoration:underline;color:#000000;">CERTAIN RELATIONSHIPS AND RELATED TRANSACTIONS, AND DIRECTOR INDEPENDENCE</span></a></div></td><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:right;font-size:10pt;"><a style="font-family:Arial;font-size:10pt;text-decoration:underline;color:#000000;" href="#s3FA439AD6ED2565CB1E4B35DEB9C4238">78</a></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">ITEM&#160;14.</span></div></td><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="font-size:10pt;"><a style="font-family:Arial;font-size:10pt;color:#000000;text-decoration:underline;" href="#s9AAA4F25205855E794157B9AD0EC693A"><span style="font-family:Arial;font-size:10pt;color:#000000;text-decoration:underline;">PRINCIPAL ACCOUNTING FEES AND SERVICES</span></a></div></td><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:right;font-size:10pt;"><a style="font-family:Arial;font-size:10pt;text-decoration:underline;color:#000000;" href="#s9AAA4F25205855E794157B9AD0EC693A">78</a></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:20px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:20px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:20px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="font-size:10pt;"><a style="font-family:Arial;font-size:10pt;font-weight:bold;text-decoration:underline;color:#000000;" href="#s9D34C9E8BFE55EA194F7D12DB40625DF"><span style="font-family:Arial;font-size:10pt;font-weight:bold;text-decoration:underline;color:#000000;">PART&#160;IV</span></a></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:right;font-size:10pt;"><a style="font-family:Arial;font-size:10pt;font-weight:bold;text-decoration:underline;color:#000000;" href="#s9D34C9E8BFE55EA194F7D12DB40625DF">78</a></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">ITEM&#160;15.</span></div></td><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="font-size:10pt;"><a style="font-family:Arial;font-size:10pt;text-decoration:underline;color:#000000;" href="#s3DEB13BF9BD45184B27760FC76289FDD"><span style="font-family:Arial;font-size:10pt;text-decoration:underline;color:#000000;">EXHIBITS AND FINANCIAL STATEMENT SCHEDULES</span></a></div></td><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:right;font-size:10pt;"><a style="font-family:Arial;font-size:10pt;text-decoration:underline;color:#000000;" href="#s3DEB13BF9BD45184B27760FC76289FDD">78</a></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">ITEM 16.</span></div></td><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="font-size:10pt;"><a style="font-family:Arial;font-size:10pt;text-decoration:underline;color:#000000;" href="#sF2CF814CADE553DBA15B6A95A9E49DA7"><span style="font-family:Arial;font-size:10pt;text-decoration:underline;color:#000000;">FORM 10-K SUMMARY</span></a></div></td><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:right;font-size:10pt;"><a style="font-family:Arial;font-size:10pt;text-decoration:underline;color:#000000;" href="#sF2CF814CADE553DBA15B6A95A9E49DA7">78</a></div></td></tr></table></div></div><div><br/></div><hr style="page-break-after:always"></hr><div><a id="s2B2F57AF00E457BAA12D5C0A5C8D2074"></a></div><div><div style="line-height:120%;font-size:9pt;"><a style="font-family:inherit;font-size:9pt;" href="#sCD449198B5695D85B5494CF5DF708C26"><span style="font-family:inherit;font-size:9pt;">Table of Contents</span></a></div></div><div><br/></div><div style="line-height:120%;text-align:center;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">PART I</span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">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="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Unless the context otherwise requires, the words &#8220;Cognex</span><span style="font-family:Arial;font-size:10pt;"><sup style="vertical-align:top;line-height:120%;font-size:6pt">&#174;</sup></span><span style="font-family:Arial;font-size:10pt;">,&#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><a id="sBB350725AF6E5BECB336BFCF7CED4F1B"></a></div><div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">ITEM 1:  BUSINESS</span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">Corporate Profile</span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Cognex Corporation was incorporated in Massachusetts in 1981.  Our corporate headquarters are located at One Vision Drive, Natick, Massachusetts 01760 and our telephone number is (508)&#160;650-3000.</span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Cognex is a leading worldwide provider of machine vision products that capture and analyze visual information in order to automate manufacturing and distribution tasks where vision is required.  Machine vision is the technology that gives computers and automation equipment the ability to see.  Machine vision products are used to automate the manufacture and tracking of discrete items, such as mobile phones, aspirin bottles, and automobile tires, by locating, identifying, inspecting, and measuring them during the manufacturing or distribution process.  Machine vision is important 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.  Today, many types of manufacturing equipment require machine vision because of the increasing demands for speed and accuracy in manufacturing processes, as well as the decreasing size of items being manufactured.</span></div><div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">What is Machine Vision?</span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Since the beginning of the Industrial Revolution, human vision has played an indispensable role in the process of manufacturing products.  Human eyes did what no machines could do themselves: locating and positioning work, tracking the flow of parts, and inspecting output for quality and consistency.  Today, however, the requirements of many manufacturing processes have surpassed the limits of human eyesight.  Manufactured items often are produced too quickly or with tolerances too small to be analyzed by the human eye. In response to manufacturers&#8217; needs, &#8220;machine vision&#8221; technology emerged, providing manufacturing equipment with the gift of sight.  Machine vision systems were first widely embraced by manufacturers of electronic components who needed this technology to produce computer chips with decreasing geometries.  However, advances in technology and ease-of-use, combined with the decreasing cost of implementing vision applications, have made machine vision available to a broader range of users.</span></div><div><br/></div><div style="text-align:center;"><div style="line-height:120%;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">1</span></div></div><hr style="page-break-after:always"></hr><div><div style="line-height:120%;font-size:9pt;"><a style="font-family:inherit;font-size:9pt;" href="#sCD449198B5695D85B5494CF5DF708C26"><span style="font-family:inherit;font-size:9pt;">Table of Contents</span></a></div></div><div><br/></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Machine vision products combine cameras with innovative software to collect images and then answer questions about these images, such as:</span></div><div style="line-height:120%;text-align:justify;font-size:10pt;"><div style="padding-left:0px;text-indent:0px;line-height:normal;padding-top:10px;"><table cellpadding="0" cellspacing="0" style="font-family:Times New Roman;font-size:10pt;width:100%;border-collapse:collapse;text-align:left;"><tr><td colspan="5"></td></tr><tr><td style="width:21%;"></td><td style="width:3%;"></td><td style="width:30%;"></td><td style="width:5%;"></td><td style="width:41%;"></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;text-decoration:underline;">Question</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;">&#160;&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;text-decoration:underline;">Description</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;">&#160;&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;text-decoration:underline;">Example</span></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-style:italic;text-decoration:underline;">GUIDANCE</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;">&#160;&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;">&#160;&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Where is it?</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;">&#160;&#160;</span></div></td><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Determining the exact physical location and orientation of an object.</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;">&#160;&#160;</span></div></td><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Aligning a screen on a smartphone or guiding a robot to put a windshield on a car.</span></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-style:italic;text-decoration:underline;">IDENTIFICATION</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;">&#160;&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;">&#160;&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">What is it?</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;">&#160;&#160;</span></div></td><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Identifying an object by analyzing its physical appearance or by reading a serial number or symbol.</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;">&#160;&#160;</span></div></td><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Reading a two-dimensional barcode directly marked on an automotive airbag so that it can be tracked and processed correctly through manufacturing.</span></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-style:italic;text-decoration:underline;">INSPECTION</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;">&#160;&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;">&#160;&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">How good is it?</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;">&#160;&#160;</span></div></td><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Inspecting an object for flaws or defects.</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;">&#160;&#160;</span></div></td><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Checking for debris to ensure that foreign objects are not present in a product before shipping to consumers.</span></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-style:italic;text-decoration:underline;">GAUGING</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;">&#160;&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;">&#160;&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">What size is it?</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;">&#160;&#160;</span></div></td><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Determining the dimensions of an object.</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;">&#160;&#160;</span></div></td><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Using 3D vision to ensure the cap is secure on a bottle of detergent prior to packaging.</span></div></td></tr></table></div></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">Machine Vision Market</span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Cognex machine vision is primarily used to automate manufacturing and distribution processes in a variety of industries, where the technology is widely recognized as an important component of automated production and quality assurance. Virtually every manufacturer can achieve better quality and manufacturing efficiency by using machine vision, and therefore, Cognex products are used by a broad base of customers across a variety of industries, including consumer electronics, automotive, consumer products, food and beverage, pharmaceuticals, and medical devices.  Cognex products are also used to automate distribution processes in the logistics industry for applications in retail distribution and ecommerce to scan, track, and sort goods through distribution centers. </span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">The Company operates in one segment, machine vision technology.  We offer 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.  Information about segments may be found in Note 20 to the Consolidated Financial Statements, appearing in Part II - Item 8 of this Annual Report on Form 10-K. </span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">In 2018 and 2017, direct and indirect revenue from Apple Inc. accounted for 15% and 20% of total revenue, respectively.   In 2019, no customer accounted for greater than 10% of total revenue.</span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">Business Strategy</span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Our goal is to expand our position as a leading worldwide provider of machine vision products for industrial customers.  We are selective in choosing growth opportunities that we believe will maintain our historically high gross margin percentages, which have ranged in the mid 70s for the past several years and reflect the value our customers place on our innovative products.  Our high gross margins have the potential to provide us with strong operating leverage in our financial model, as any incremental revenue at such margins is able to fall through to operating income at a high ratio. Our strong and unique corporate culture reinforces our values of customer first and innovation, and enables us to attract and retain smart, highly-educated, experienced talent who are motivated to solve the most challenging vision tasks.</span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">We invest heavily in research and development in order to maintain our position as a technology leader in machine vision.  We invest in technology that makes vision easier to use and more affordable, and therefore, available to a broader base of customers, such as our vision sensor products that enable customers with a lower budget to use machine vision without the help of sophisticated engineers.  We also invest in technology that addresses the most challenging vision applications, such as our 3D vision products that solve applications where a height or volume measurement is required and our deep learning vision software that solves complex applications with unpredictable defects and deviations. We invest through internal development, as well as the acquisition of businesses and technologies.  We believe that our acquisition of Sualab Co., Ltd. in the fourth quarter of 2019 will expand our deep learning technology to visual inspection tasks that replace human inspectors and make automated inspection tasks fast, easy, and cost-effective.</span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">We continue to invest in our core markets, such as consumer electronics and automotive, where we are a leading provider of vision and ID products for factory automation, while making significant investments in the logistics market, </span></div><div><br/></div><div style="text-align:center;"><div style="line-height:120%;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">2</span></div></div><hr style="page-break-after:always"></hr><div><div style="line-height:120%;font-size:9pt;"><a style="font-family:inherit;font-size:9pt;" href="#sCD449198B5695D85B5494CF5DF708C26"><span style="font-family:inherit;font-size:9pt;">Table of Contents</span></a></div></div><div><br/></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">where we see opportunity to move beyond barcode reading into vision for applications in retail distribution and ecommerce.</span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">We reach a broad base of customers through our worldwide direct sales force that sells 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 and may require supplemental technical support or integration assistance.  We invest in emerging, high-growth regions where many manufacturers can benefit from incorporating machine vision into their production processes.  This includes investment in China, where rising wages for assembly workers and a greater focus on product quality are driving assembly automation, particularly in the consumer electronics industry.</span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">Acquisitions</span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Our business strategy includes selective expansion into new machine vision applications and markets through the acquisition of businesses and technologies. In 2017 and 2016, we completed six small business acquisitions, which were not significant individually or in the aggregate.  The purchase price for each business ranged from $2.5 million to $23 million.  In addition to completed technology and customer relationships, these acquisitions included engineering talent expected to help accelerate the development of future products.  </span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">On October 16, 2019, Cognex acquired Sualab Co., Ltd. (Sualab), a provider of deep learning-based vision software for industrial image analysis based in Korea.  The total consideration of $195 million included cash payments of $171 million upon closing and deferred payments of $24 million that may become payable on the fourth anniversary date  of the closing, contingent upon continued employment of key talent.  Sualab's intellectual property, engineering expertise, and market coverage are expected to increase the Company's existing deep learning capabilities.  Combined with intellectual property acquired from ViDI Systems S.A. in 2017, we believe that Cognex is now a leading provider of deep learning-based industrial vision software.  </span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Management considers business acquisitions to be an important part of our growth strategy, and although we continue to actively seek out acquisition opportunities, we are selective in choosing businesses that we believe will enhance our long-term growth rate and profitability, as well as fit within our corporate culture.  We plan to continue to seek opportunities to expand our product lines, customer base, distribution network, and technical talent through acquisitions in the machine vision industry.  </span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">Products</span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">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 low-cost vision sensors that conduct simple presence/absence inspections, to deep learning vision software that solves complex applications with unpredictable defects and deviations.  Our products also have a variety of physical forms, depending upon 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="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;text-decoration:underline;">Vision Systems and Sensors</span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Vision systems combine camera, processor, and vision software into a single, rugged package with a simple and flexible user interface for configuring applications.  General-purpose vision systems are designed to be easily programmed to perform a wide range of vision tasks including part location, identification, measurement, assembly verification, and robotic guidance.  Unlike general-purpose vision systems, vision sensors deliver an easy-to-use, low-cost, reliable solution for simple pass/fail vision applications, such as checking the presence and size of parts.  Cognex offers the In-Sight</span><span style="font-family:Arial;font-size:10pt;"><sup style="vertical-align:top;line-height:120%;font-size:6pt">&#174;</sup></span><span style="font-family:Arial;font-size:10pt;"> product line of vision systems and sensors in a wide range of models to meet various price and performance requirements.  Cognex also offers a series of 3D vision systems for use in highly demanding applications that require surface feature measurements that go beyond the capabilities of 2D vision technology.  </span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;background-color:#ffffff;text-decoration:underline;">Vision Software</span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Vision software provides users with the most flexibility by combining the full general-purpose library of Cognex vision tools with the cameras, frame grabbers, and peripheral equipment of their choice.  Applications based upon Cognex vision software perform a wide range of vision tasks, including part location, identification, measurement, assembly verification, and robotic guidance.  Cognex VisionPro</span><span style="font-family:Arial;font-size:10pt;"><sup style="vertical-align:top;line-height:120%;font-size:6pt">&#174;</sup></span><span style="font-family:Arial;font-size:10pt;"> software offers an extensive suite of patented vision tools for advanced programming, while Cognex Designer allows customers to build complete vision applications with the simplicity of a graphical, flowchart-based programming environment.  Cognex deep learning vision software solves difficult applications that are too complicated and time-consuming to program and maintain with traditional machine vision rule-based algorithms.</span></div><div><br/></div><div style="text-align:center;"><div style="line-height:120%;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">3</span></div></div><hr style="page-break-after:always"></hr><div><div style="line-height:120%;font-size:9pt;"><a style="font-family:inherit;font-size:9pt;" href="#sCD449198B5695D85B5494CF5DF708C26"><span style="font-family:inherit;font-size:9pt;">Table of Contents</span></a></div></div><div><br/></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;text-decoration:underline;">Industrial Image-Based Barcode Readers</span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Cognex barcode readers quickly and reliably read codes (e.g., one-dimensional barcodes or two-dimensional data matrix codes) that have been applied to, or directly marked on, discrete items during the manufacturing process.  Manufacturers of goods ranging from automotive parts, pharmaceutical items, aircraft components, and medical devices are increasingly using direct part mark (DPM) identification to ensure that the appropriate manufacturing processes are performed in the correct sequence and on the right parts.  In addition, DPM is used to track parts throughout the product lifecycle, and is also used in supply chain management and repair.</span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Cognex bardcode readers are also used outside of the manufacturing sector to automate distribution processes in the logistics industry for applications in retail distribution and ecommerce to scan, track, and sort goods through distribution centers, and in airports to read baggage tags.  Cognex offers the DataMan</span><span style="font-family:Arial;font-size:10pt;"><sup style="vertical-align:top;line-height:120%;font-size:6pt">&#174;</sup></span><span style="font-family:Arial;font-size:10pt;"> product line of image-based barcode readers, which includes both hand-held and fixed-mount models, and barcode verifiers, as well as the MX Series of vision-enabled mobile terminals that allow customers to leverage the latest mobile device technology for industrial barcode reading applications.</span></div><div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">Research, Development, and Engineering</span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">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.  In addition to internal research and development efforts, we intend to continue our strategy of gaining access to new technology through strategic relationships and acquisitions where appropriate.</span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">As of </span><span style="font-family:Arial;font-size:10pt;">December&#160;31, 2019</span><span style="font-family:Arial;font-size:10pt;">, Cognex employed 563 professionals in RD&amp;E, many of whom are software developers. Cognex&#8217;s RD&amp;E expenses totaled $119,427,000 in </span><span style="font-family:Arial;font-size:10pt;">2019</span><span style="font-family:Arial;font-size:10pt;">, $116,445,000 in </span><span style="font-family:Arial;font-size:10pt;">2018</span><span style="font-family:Arial;font-size:10pt;">, and $99,205,000 in </span><span style="font-family:Arial;font-size:10pt;">2017</span><span style="font-family:Arial;font-size:10pt;">, or approximately 16%, 14%, and 13% of revenue, respectively.  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 time to market for new products to be critical to our revenue growth.  Therefore, we expect to continue to make significant RD&amp;E investments in the future.  At any point in time, we have numerous research and  development projects underway.</span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">Manufacturing and Order Fulfillment</span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Cognex&#8217;s products are manufactured utilizing a turnkey operation whereby the majority of component procurement, system assembly, and initial testing are performed by third-party contract manufacturers.  Cognex&#8217;s primary contract manufacturer is located in Indonesia.  The contract manufacturers use specified components sourced from a vendor list approved by Cognex and assembly/test documentation created and controlled by Cognex.  Certain components are presently sourced from a single vendor that is selected based upon price and performance considerations.  In the event of a supply disruption from a single-source vendor, these components may be purchased from alternative vendors. </span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">After the completion of initial testing, a fully assembled product from the contract manufacturers is routed to our facility in Cork, Ireland or Natick, Massachusetts, USA, where trained Cognex personnel load Cognex software onto the product and perform quality control procedures.  Finished product for customers in the Americas is then shipped from our Natick, Massachusetts facility, while finished product for customers outside of the Americas is shipped from our Cork, Ireland facility.</span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">Sales Channels and Support Services</span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Cognex sells its products through a worldwide direct sales force that focuses on the development of strategic accounts that generate or are expected to generate significant sales volume, as well as through a global network of distribution and integration partners.  Our distribution partners provide sales and local support to help Cognex reach the many prospects for our products in factories around the world, and our integration partners are experts in vision and complementary technologies that can provide turnkey solutions for complex automation projects using vision. </span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">As of December&#160;31, 2019, Cognex&#8217;s sales force consisted of 980 professionals, and our partner network consisted of 425 authorized distributors and active integrators.  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.  Cognex has sales and support personnel located throughout the Americas, Europe, and Asia.  The majority of our sales engineers are degreed engineers.  </span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Sales to customers based outside of the United States represented approximately 66% of total revenue in 2019 compared to approximately 71% of total revenue in 2018.  In 2019, approximately 31% of our total revenue came from customers based in Europe, 16% from customers based in Greater China, 5% from customers based in Japan, and 14% from customers based in other regions outside the United States.  Sales to customers based in Europe are </span></div><div><br/></div><div style="text-align:center;"><div style="line-height:120%;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">4</span></div></div><hr style="page-break-after:always"></hr><div><div style="line-height:120%;font-size:9pt;"><a style="font-family:inherit;font-size:9pt;" href="#sCD449198B5695D85B5494CF5DF708C26"><span style="font-family:inherit;font-size:9pt;">Table of Contents</span></a></div></div><div><br/></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">denominated in Euros and U.S. Dollars, sales to customers based in Greater China are denominated in Yuan for sales within Mainland China and U.S. Dollars in other territories, sales to customers based in Japan are denominated in Yen, and sales to customers based in other regions are denominated in U.S. Dollars.  Financial information about geographic areas may be found in</span><span style="font-family:Arial;font-size:10pt;color:#ff0000;"> </span><span style="font-family:Arial;font-size:10pt;">Note 20 to the Consolidated Financial Statements, appearing in Part II - Item&#160;8 of this Annual Report on Form 10-K.</span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Cognex&#8217;s service offerings represent less than 10% of our total revenue and include maintenance and support, consulting, and training services.  Maintenance and support programs include hardware support programs that entitle customers to have failed 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 vision application or installed ID application.  Training services include a variety of product courses that are available at our offices worldwide, at customer facilities, and online at www.cognex.com. </span></div><div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">Intellectual Property</span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">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="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">As of </span><span style="font-family:Arial;font-size:10pt;">December&#160;31, 2019</span><span style="font-family:Arial;font-size:10pt;">, Cognex owned 686 patents issued worldwide and had another 514 patent applications pending worldwide.  Cognex has used, registered, or applied to register a number of trademark registrations in the United States and in other countries. Cognex&#8217;s trademark and servicemark portfolio includes various registered marks, including, among others, Cognex</span><span style="font-family:Arial;font-size:10pt;"><sup style="vertical-align:top;line-height:120%;font-size:6pt">&#174;</sup></span><span style="font-family:Arial;font-size:10pt;">, In-Sight</span><span style="font-family:Arial;font-size:10pt;"><sup style="vertical-align:top;line-height:120%;font-size:6pt">&#174;</sup></span><span style="font-family:Arial;font-size:10pt;">, VisionPro</span><span style="font-family:Arial;font-size:10pt;"><sup style="vertical-align:top;line-height:120%;font-size:6pt">&#174;</sup></span><span style="font-family:Arial;font-size:10pt;">, and  DataMan</span><span style="font-family:Arial;font-size:10pt;"><sup style="vertical-align:top;line-height:120%;font-size:6pt">&#174;</sup></span><span style="font-family:Arial;font-size:10pt;">, as well as many common-law marks.</span></div><div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">Compliance with Environmental Provisions</span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">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="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">Competition</span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">The machine vision market is highly fragmented and competitive.  Our competitors include other vendors of machine vision systems, controllers, and components; manufacturers of image processing systems, sensors, and components; and system integrators.  In addition, in the semiconductor and electronics capital equipment market, and with machine builders in the factory automation market, we compete with the internal engineering departments of current or prospective customers.  In the identification and logistics markets, we compete with manufacturers of automatic identification systems.  In the deep learning market, we compete with other industrially-focused machine vision companies, deep learning software companies, and engineering teams that use open source tools to solve applications.  Key competitors in geographies worldwide include Keyence Corporation, Sick AG, Datalogic, and Omron Corporation.  Any of these competitors may have greater financial and other resources than Cognex.  Although we consider Cognex to be one of the leading machine vision companies in the world, reliable estimates of the machine vision market and the number and relative size of competitors are not readily available.</span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Cognex&#8217;s ability to compete depends upon our ability to design, manufacture, and sell high-quality products, as well as our ability to develop new products and functionality that meet evolving customer requirements.  The primary competitive factors affecting the choice of a machine vision or identification system include vendor reputation, product functionality and performance, ease of use, price, and post-sales support.  The importance of each of these factors varies depending upon the specific customer&#8217;s needs.</span></div><div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">Backlog</span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">As of </span><span style="font-family:Arial;font-size:10pt;">December&#160;31, 2019</span><span style="font-family:Arial;font-size:10pt;">, backlog, which includes deferred revenue, totaled $74,857,000, compared to $65,408,000 as of </span><span style="font-family:Arial;font-size:10pt;">December&#160;31, 2018</span><span style="font-family:Arial;font-size:10pt;">.  Backlog reflects customer purchase orders for products scheduled for shipment primarily within 120 days for customers in the logistics industry and primarily within 60 days for customers in all other industries. The level of backlog at any particular date is not necessarily indicative of future revenue.  Delivery schedules may be extended and orders may be canceled at any time subject to certain cancellation penalties.</span></div><div><br/></div><div style="text-align:center;"><div style="line-height:120%;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">5</span></div></div><hr style="page-break-after:always"></hr><div><div style="line-height:120%;font-size:9pt;"><a style="font-family:inherit;font-size:9pt;" href="#sCD449198B5695D85B5494CF5DF708C26"><span style="font-family:inherit;font-size:9pt;">Table of Contents</span></a></div></div><div><br/></div><div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">Employees</span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">As of </span><span style="font-family:Arial;font-size:10pt;">December&#160;31, 2019</span><span style="font-family:Arial;font-size:10pt;">, Cognex employed </span><span style="font-family:Arial;font-size:10pt;">2,267</span><span style="font-family:Arial;font-size:10pt;"> persons, including 1,295 in sales, marketing, and service activities; 563 in research, development, and engineering; 193 in manufacturing and quality assurance; and 216 in information technology, finance, and administration.  Of our </span><span style="font-family:Arial;font-size:10pt;">2,267</span><span style="font-family:Arial;font-size:10pt;"> employees, 1,349 are based outside of the United States.  We have not experienced any work stoppages due to labor disputes.  We believe that our employee relations are good.</span></div><div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">Available Information</span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Cognex maintains a website on the World Wide Web 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 Information&#8221; and then &#8220;SEC FiIings,&#8221; our Annual Report on&#160;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&#160;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. &#160;Cognex&#8217;s reports filed with, or furnished to, the SEC are also available at the SEC&#8217;s website at www.sec.gov.  Information contained on our website is not a part of, or incorporated by reference into, this Annual Report on Form 10-K.</span></div><div><a id="s81CFCFD83B665C1988D677D2095D1947"></a></div><div style="line-height:120%;padding-top:12px;text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">ITEM&#160;1A:  RISK FACTORS</span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">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&#160;7 of this Annual Report on Form 10-K.</span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">Global economic conditions may continue to deteriorate and further negatively impact our operating results.</span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Our revenue levels are impacted by global economic conditions, as we have a significant business presence in many countries throughout the world.  Our revenue declined 10% in 2019 from the prior year, as industrial companies delayed and reduced spending for automation projects, including those with machine vision, amid weaker general manufacturing confidence and heightened uncertainty around global trade.  As of the date of this report, these conditions persist and we have limited visibility beyond the current quarter as to the impact on our 2020 operating results.  If global economic conditions were to continue to deteriorate, our revenue and our ability to generate operating profits could be further materially adversely affected.</span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">As a result of global economic conditions, our business is subject to the following risks, among others:</span></div><table cellpadding="0" cellspacing="0" style="padding-top:6px;font-family:Times New Roman; font-size:10pt;"><tr><td style="width:108px;"></td><td></td></tr><tr><td style="vertical-align:top"><div style="line-height:120%;font-size:10pt;padding-left:65px;"><span style="font-family:inherit;font-size:10pt;">&#8226;</span></div></td><td style="vertical-align:top;"><div style="line-height:120%;text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">our customers may not have sufficient cash flow or access to financing to purchase our products,</span></div></td></tr></table><table cellpadding="0" cellspacing="0" style="padding-top:6px;font-family:Times New Roman; font-size:10pt;"><tr><td style="width:108px;"></td><td></td></tr><tr><td style="vertical-align:top"><div style="line-height:120%;font-size:10pt;padding-left:65px;"><span style="font-family:inherit;font-size:10pt;">&#8226;</span></div></td><td style="vertical-align:top;"><div style="line-height:120%;text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">our customers may not pay us within agreed upon terms or may default on their payments altogether,</span></div></td></tr></table><table cellpadding="0" cellspacing="0" style="padding-top:6px;font-family:Times New Roman; font-size:10pt;"><tr><td style="width:108px;"></td><td></td></tr><tr><td style="vertical-align:top"><div style="line-height:120%;font-size:10pt;padding-left:65px;"><span style="font-family:inherit;font-size:10pt;">&#8226;</span></div></td><td style="vertical-align:top;"><div style="line-height:120%;text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">our vendors may be unable to fulfill their delivery obligations to us in a timely manner,</span></div></td></tr></table><table cellpadding="0" cellspacing="0" style="padding-top:6px;font-family:Times New Roman; font-size:10pt;"><tr><td style="width:108px;"></td><td></td></tr><tr><td style="vertical-align:top"><div style="line-height:120%;font-size:10pt;padding-left:65px;"><span style="font-family:inherit;font-size:10pt;">&#8226;</span></div></td><td style="vertical-align:top;"><div style="line-height:120%;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">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></td></tr></table><table cellpadding="0" cellspacing="0" style="padding-top:6px;font-family:Times New Roman; font-size:10pt;"><tr><td style="width:108px;"></td><td></td></tr><tr><td style="vertical-align:top"><div style="line-height:120%;font-size:10pt;padding-left:65px;"><span style="font-family:inherit;font-size:10pt;">&#8226;</span></div></td><td style="vertical-align:top;"><div style="line-height:120%;text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">lower cash flows may result in impairment charges for acquired intangible assets or goodwill,</span></div></td></tr></table><table cellpadding="0" cellspacing="0" style="padding-top:6px;font-family:Times New Roman; font-size:10pt;"><tr><td style="width:108px;"></td><td></td></tr><tr><td style="vertical-align:top"><div style="line-height:120%;font-size:10pt;padding-left:65px;"><span style="font-family:inherit;font-size:10pt;">&#8226;</span></div></td><td style="vertical-align:top;"><div style="line-height:120%;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">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></td></tr></table><table cellpadding="0" cellspacing="0" style="padding-top:6px;font-family:Times New Roman; font-size:10pt;"><tr><td style="width:108px;"></td><td></td></tr><tr><td style="vertical-align:top"><div style="line-height:120%;font-size:10pt;padding-left:65px;"><span style="font-family:inherit;font-size:10pt;">&#8226;</span></div></td><td style="vertical-align:top;"><div style="line-height:120%;text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">the trading price of our common stock may be volatile.</span></div></td></tr></table><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">As of December&#160;31, 2019, the Company had $845 million in cash and investments.  In addition, Cognex has no long-term debt and we do not anticipate needing debt financing in the near future.  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 2019, and could continue to be materially adversely affected in the future, as a result of unfavorable economic conditions and reduced capital spending by manufacturers worldwide.</span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">The loss of, or significant curtailment of purchases by, a large customer could continue to have an adverse effect on our business.</span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Revenue from a single customer accounted for 15% and 20% of total revenue in 2018 and 2017, respectively, but less than 10% of total revenue in 2019.  The curtailment of purchases by this customer represented a significant portion of our total revenue decrease in 2019 from the prior year.  Although no customer accounted for greater than 10% of </span></div><div><br/></div><div style="text-align:center;"><div style="line-height:120%;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">6</span></div></div><hr style="page-break-after:always"></hr><div><div style="line-height:120%;font-size:9pt;"><a style="font-family:inherit;font-size:9pt;" href="#sCD449198B5695D85B5494CF5DF708C26"><span style="font-family:inherit;font-size:9pt;">Table of Contents</span></a></div></div><div><br/></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">our total revenue in 2019, we continue to have relatively larger customers, particularly in the consumer electronics and logistics industries.  In some cases, end customers of our resellers may be large consumers of our products.  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 revenue 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, we typically extend credit terms to large customers, resulting in significant accounts receivable balances, and in certain instances due to long supplier lead times, we may purchase inventory in advance of receipt of a customer purchase order, which exposes us to an increased risk of excess or obsolete inventory and resulting charges.  The loss of, or further curtailment of purchases by, any one or more of our larger customers could have a material adverse effect on our operating results.</span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">A continued downturn in the consumer electronics or automotive industries may further adversely affect our business.</span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">In 2019, consumer electronics and automotive, our two largest markets that combined represented approximately half of our total revenue, both contracted simultaneously.  Our business is impacted by the level of capital spending in these industries, as well as the product design cycles of our major customers in these industries.  The market leaders in these industries are able to exert purchasing power over their vendors' supply chains, and our large customers in these industries may decide to purchase fewer products from Cognex or stop purchasing from Cognex altogether.  As a result, our operating results could continue to be materially and adversely affected by further declining sales in these industries.</span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">Our inability to achieve growth in revenue and profits from our logistics business may negatively impact our operating results.</span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">We are pursuing applications to automate distribution processes in the logistics industry for applications including retail distribution and ecommerce to scan, track, and sort goods through distribution centers.  Our future growth plans are dependent upon growth in this industry.  Our gross margin percentage in this industry is currently lower than our average gross margin percentage, as certain sales in this industry are for application-specific customer solutions that include deployment services.  Our strategy is to shift our focus as the logistics market matures from Cognex providing deployment services to utilizing partner integrators to provide these services for end users, which we believe will result in improved gross margins that will be more in line with our overall average over time.  In addition, we are making significant investments in engineering and sales to further develop our logistics sales.  Failure to generate revenue in this industry in the amounts anticipated may have a material adverse impact on our revenue growth and operating results.</span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">Economic, political, and other risks associated with international sales and operations could continue to adversely affect our business and operating results.</span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">In 2019, 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><table cellpadding="0" cellspacing="0" style="padding-top:6px;font-family:Times New Roman; font-size:10pt;"><tr><td style="width:108px;"></td><td></td></tr><tr><td style="vertical-align:top"><div style="line-height:120%;font-size:10pt;padding-left:65px;"><span style="font-family:inherit;font-size:10pt;">&#8226;</span></div></td><td style="vertical-align:top;"><div style="line-height:120%;text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">various regulatory and statutory requirements,</span></div></td></tr></table><table cellpadding="0" cellspacing="0" style="padding-top:6px;font-family:Times New Roman; font-size:10pt;"><tr><td style="width:108px;"></td><td></td></tr><tr><td style="vertical-align:top"><div style="line-height:120%;font-size:10pt;padding-left:65px;"><span style="font-family:inherit;font-size:10pt;">&#8226;</span></div></td><td style="vertical-align:top;"><div style="line-height:120%;text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">difficulties in injecting and repatriating cash,</span></div></td></tr></table><table cellpadding="0" cellspacing="0" style="padding-top:6px;font-family:Times New Roman; font-size:10pt;"><tr><td style="width:108px;"></td><td></td></tr><tr><td style="vertical-align:top"><div style="line-height:120%;font-size:10pt;padding-left:65px;"><span style="font-family:inherit;font-size:10pt;">&#8226;</span></div></td><td style="vertical-align:top;"><div style="line-height:120%;text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">export and import restrictions,</span></div></td></tr></table><table cellpadding="0" cellspacing="0" style="padding-top:6px;font-family:Times New Roman; font-size:10pt;"><tr><td style="width:108px;"></td><td></td></tr><tr><td style="vertical-align:top"><div style="line-height:120%;font-size:10pt;padding-left:65px;"><span style="font-family:Arial;font-size:10pt;">&#8226;</span></div></td><td style="vertical-align:top;"><div style="line-height:120%;text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">trade tariffs,</span></div></td></tr></table><table cellpadding="0" cellspacing="0" style="padding-top:6px;font-family:Times New Roman; font-size:10pt;"><tr><td style="width:108px;"></td><td></td></tr><tr><td style="vertical-align:top"><div style="line-height:120%;font-size:10pt;padding-left:65px;"><span style="font-family:inherit;font-size:10pt;">&#8226;</span></div></td><td style="vertical-align:top;"><div style="line-height:120%;text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">transportation delays,</span></div></td></tr></table><table cellpadding="0" cellspacing="0" style="padding-top:6px;font-family:Times New Roman; font-size:10pt;"><tr><td style="width:108px;"></td><td></td></tr><tr><td style="vertical-align:top"><div style="line-height:120%;font-size:10pt;padding-left:65px;"><span style="font-family:inherit;font-size:10pt;">&#8226;</span></div></td><td style="vertical-align:top;"><div style="line-height:120%;text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">employment regulations and local labor conditions,</span></div></td></tr></table><table cellpadding="0" cellspacing="0" style="padding-top:6px;font-family:Times New Roman; font-size:10pt;"><tr><td style="width:108px;"></td><td></td></tr><tr><td style="vertical-align:top"><div style="line-height:120%;font-size:10pt;padding-left:65px;"><span style="font-family:inherit;font-size:10pt;">&#8226;</span></div></td><td style="vertical-align:top;"><div style="line-height:120%;text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">difficulties in staffing and managing foreign sales operations,</span></div></td></tr></table><table cellpadding="0" cellspacing="0" style="padding-top:6px;font-family:Times New Roman; font-size:10pt;"><tr><td style="width:108px;"></td><td></td></tr><tr><td style="vertical-align:top"><div style="line-height:120%;font-size:10pt;padding-left:65px;"><span style="font-family:inherit;font-size:10pt;">&#8226;</span></div></td><td style="vertical-align:top;"><div style="line-height:120%;text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">instability in economic or political conditions, including potential adverse effects from Brexit,</span></div></td></tr></table><table cellpadding="0" cellspacing="0" style="padding-top:6px;font-family:Times New Roman; font-size:10pt;"><tr><td style="width:108px;"></td><td></td></tr><tr><td style="vertical-align:top"><div style="line-height:120%;font-size:10pt;padding-left:65px;"><span style="font-family:Arial;font-size:10pt;">&#8226;</span></div></td><td style="vertical-align:top;"><div style="line-height:120%;text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">public health epidemics, such as the coronavirus currently impacting China and elsewhere,</span></div></td></tr></table><table cellpadding="0" cellspacing="0" style="padding-top:6px;font-family:Times New Roman; font-size:10pt;"><tr><td style="width:108px;"></td><td></td></tr><tr><td style="vertical-align:top"><div style="line-height:120%;font-size:10pt;padding-left:65px;"><span style="font-family:inherit;font-size:10pt;">&#8226;</span></div></td><td style="vertical-align:top;"><div style="line-height:120%;text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">difficulties protecting intellectual property,</span></div></td></tr></table><table cellpadding="0" cellspacing="0" style="padding-top:6px;font-family:Times New Roman; font-size:10pt;"><tr><td style="width:108px;"></td><td></td></tr><tr><td style="vertical-align:top"><div style="line-height:120%;font-size:10pt;padding-left:65px;"><span style="font-family:inherit;font-size:10pt;">&#8226;</span></div></td><td style="vertical-align:top;"><div style="line-height:120%;text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">business systems connectivity issues, and</span></div></td></tr></table><div><br/></div><div style="text-align:center;"><div style="line-height:120%;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">7</span></div></div><hr style="page-break-after:always"></hr><div><div style="line-height:120%;font-size:9pt;"><a style="font-family:inherit;font-size:9pt;" href="#sCD449198B5695D85B5494CF5DF708C26"><span style="font-family:inherit;font-size:9pt;">Table of Contents</span></a></div></div><div><br/></div><table cellpadding="0" cellspacing="0" style="padding-top:6px;font-family:Times New Roman; font-size:10pt;"><tr><td style="width:108px;"></td><td></td></tr><tr><td style="vertical-align:top"><div style="line-height:120%;font-size:10pt;padding-left:65px;"><span style="font-family:inherit;font-size:10pt;">&#8226;</span></div></td><td style="vertical-align:top;"><div style="line-height:120%;text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">potentially adverse tax consequences.</span></div></td></tr></table><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Any of these factors could have a material adverse effect on our operating results.  In 2019, trade tariffs imposed by the United States on certain components imported from Chinese suppliers resulted in higher costs for our products.  To date, these cost increases have been immaterial to our total cost of goods sold and primarily relate to components sourced in China for new products that we build in the United States in their infancy before they are moved to our contract manufacturer in Indonesia; however, cost increases as a result of trade tariffs could become material in the future.  </span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Trade tariffs have also 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.  Further escalations of trade conflicts between the United States and China, or other countries where Cognex has operations, such as countries in Europe, may have a further adverse effect on our revenue.  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, without limitation, any 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.  To date, the impact of these restrictions has been immaterial to our total revenue; however, further or continued restrictions could have a material adverse effect on our operating results in the future.</span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">In addition, the coronavirus outbreak originating from China at the beginning of 2020 has resulted in extended shutdown of certain businesses in the region and disruptions to the supply chain.  Health concerns in China or other countries in which we or our customers operate could result in social, economic, and labor instability.  These uncertainties could have a material adverse effect on the continuity of our business and our results of operation and financial condition. </span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Finally, we 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="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">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="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">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="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Our foreign currency hedging program may include foreign currency cash flow hedges that protect our budgeted revenues and expenses against foreign currency exchange rate changes compared to our budgeted rates.  These derivatives are designated for hedge accounting, and therefore, the effective portion of the forward contract's gain or loss is reported in shareholders' equity as other comprehensive income (loss) and is reclassified into current operations as the hedged transaction impacts current operations.  Should these hedges fail to qualify for hedge accounting or be ineffective, the gain or loss on the forward contract would be reported in current operations immediately as opposed to when the hedged transaction impacts current operations, which may result in material foreign currency gains or losses.</span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">The success of our foreign currency risk management program depends upon 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.  Furthermore, our ability to hedge the Chinese Yuan is limited, which has resulted in unhedged exposures.  To date, foreign currency gains and losses related to the Chinese Yuan have been immaterial to our total results; however, further fluctuations in this currency may result in material foreign currency gains or losses in the future. </span></div><div><br/></div><div style="text-align:center;"><div style="line-height:120%;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">8</span></div></div><hr style="page-break-after:always"></hr><div><div style="line-height:120%;font-size:9pt;"><a style="font-family:inherit;font-size:9pt;" href="#sCD449198B5695D85B5494CF5DF708C26"><span style="font-family:inherit;font-size:9pt;">Table of Contents</span></a></div></div><div><br/></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">A significant portion of our revenues and expenses are denominated in the Euro, the Chinese Yuan, and the Japanese Yen.  Our predominant currency of sale is the U.S.&#160;Dollar in the Americas, the Euro and U.S. Dollar in Europe, the Yuan in Mainland China, the Yen in Japan, and the U.S. Dollar in other regions.  We estimate that approximately 44% of our sales in 2019 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="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">Information security breaches or business system disruptions may adversely affect our business.</span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">We rely on our information technology infrastructure and management information systems to effectively run our business.  We may be subject to information security breaches caused by hacking, malicious software, or acts of vandalism or terrorism.  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 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, the violation of privacy or other laws, 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 that have included malware, viruses, phishing attacks, and intrusion attempts to Cognex&#8217;s internet-facing systems. To date, these incidents have not had a material impact on our operations or financial results; however, future cybersecurity incidents could have a material adverse effect on our business, financial condition, or operating results.</span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">In 2018, we placed into service a new Enterprise Resource Planning (ERP) system, which is the management information system that integrates our manufacturing, order fulfillment, and financial activities.  Disruptions with our management information systems may cause significant business disruption, including our ability to process orders, ship products, invoice customers, process payments, and otherwise run our business.  Any disruption occurring with our ERP system, or any of our other management information systems, may have a material adverse effect on our operating results.</span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">Our business could suffer if we lose the services of, or fail to attract, key personnel.</span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">We are highly dependent upon the management and leadership of Robert J. Shillman, our Chairman of the Board of Directors and Chief Culture Officer, and Robert J. Willett, our President and Chief Executive Officer, as well as other members of our senior management team.  Although we have many experienced and qualified senior managers, the loss of key personnel could have a material adverse effect on our company. </span></div><div style="line-height:120%;padding-bottom:10px;padding-top:6px;text-align:justify;font-size:11pt;"><span style="font-family:Arial;font-size:10pt;">We have historically used stock options as a key component of our employee compensation program in order to align employee interests with the interests of our shareholders, provide competitive compensation packages, and encourage employee retention.  While we currently intend to continue to grant stock options as a key component of our compensation program for our senior management team, we are shifting away from granting stock options to granting restricted stock units (RSUs) as a retention tool for key employees below the senior management level.  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, which may lessen such options' retentive attributes, and therefore, we believe that RSUs may be a more effective retention tool for employees below the senior management level.  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><span style="font-family:inherit;font-size:11pt;font-weight:bold;"> </span></div><div style="line-height:120%;padding-top:6px;text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">If we fail to effectively manage our growth, our business and operating results could suffer.</span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">To help support our growth plans, our headcount increased from 2,114 employees as of December 31, 2018 to 2,267 employees as of December 31, 2019, with 90 employees added as a result of the acquisition of Sualab Co., Ltd. in the fourth quarter of 2019.   Although the remaining additions represent a net headcount increase of 63 persons, the number of new employees that we hired and trained was higher due to workforce attrition.  In addition, we currently utilize a large number of third-party contractors to provide on-site technical support and installation services.</span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">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.  We believe our strong corporate culture is critical to our ability to collaborate, innovate, execute, and adapt in a high-growth, fast-changing business environment.  We may not be able to hire and train new employees and contractors quickly enough to meet </span></div><div><br/></div><div style="text-align:center;"><div style="line-height:120%;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">9</span></div></div><hr style="page-break-after:always"></hr><div><div style="line-height:120%;font-size:9pt;"><a style="font-family:inherit;font-size:9pt;" href="#sCD449198B5695D85B5494CF5DF708C26"><span style="font-family:inherit;font-size:9pt;">Table of Contents</span></a></div></div><div><br/></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">our business needs.  If we fail to quickly adapt our hiring and training plans to our business levels or effectively execute on our hiring plans, our efficiency and ability to meet our operating goals could suffer.  Furthermore, employee productivity, morale, and retention could suffer, which may have a material adverse effect on our business and operating results.</span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Additionally, the growth and expansion of our business and product offerings place significant demand on our employees and, in particular, our management team.  The growth of our business may require significant additional resources to meet these daily requirements, which may not scale in a cost-effective manner or may negatively impact our customers&#8217; experience.  Effective management information systems, including our Enterprise Resource Planning (ERP) system placed into service in 2018, and strong internal controls are also necessary to support our growth.  If we are unable to manage the growth of our organization and business effectively, our operating results may be materially and adversely affected.</span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">The failure of a key supplier to deliver quality product in a timely manner or our inability to obtain components for our products could adversely affect our operating results.</span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">A significant portion of our product is manufactured by a third-party contractor located in Indonesia.  This contractor has agreed to provide Cognex with termination notification periods and last-time-buy rights, if and when that may be applicable.  We rely upon this contractor to provide quality product and meet delivery schedules.  We engage in extensive product quality programs and processes, including actively monitoring the performance of our third-party manufacturers; however, we may not detect all product quality issues through these programs and processes.</span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Certain components are presently sourced from a single vendor that is selected based upon price and performance considerations.  In the event of a supply disruption from a single-source vendor, these components may be purchased from alternative vendors, which may result in manufacturing delays based on the lead time of the new vendor.  Certain key electronic and mechanical components that are purchased from strategic suppliers, such as processors or imagers, are fundamental to the design of Cognex products.  A disruption in the supply of these key components, such as a last-time-buy announcement, natural disaster, financial bankruptcy, or other event, may require us to purchase a significant amount of inventory at unfavorable prices resulting in lower gross margins and higher risk of carrying excess inventory. </span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">We are subject to the requirements of the Dodd-Frank Wall Street Reform and Consumer Protection Act that obligates companies to inquire into the origin of conflict minerals in their supply chains.  We work with our supply chain partners to take reasonable steps to assure conflict minerals are not sourced by Cognex or our supply chain partners. These steps may include purchasing supply from alternative vendors. If we are unable to secure adequate supply from alternative vendors, we may have to redesign our products, which may lead to a delay in manufacturing and a possible loss of sales.  Although we are taking certain actions to mitigate supply risk, an interruption in, termination of, or material change in the purchase terms of any key components could have a material adverse effect on our operating results.</span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">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="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Because the market for our products is characterized by rapid technological changes, we frequently introduce new products with improved ease-of-use, improved hardware performance, additional software features and functionality, 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. </span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">We may strategically enter into non-cancelable commitments with vendors to purchase materials for our products in advance of demand to take advantage of favorable pricing, address concerns about the availability of future supplies, or build safety stock to help ensure customer shipments are not delayed should we experience higher than anticipated demand for materials with long lead times.  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.  Our failure to effectively manage product transitions or accurately forecast customer demand, in terms of both volume and configuration, has led to, and may again in the future lead to, an increased risk of excess or obsolete inventory and resulting charges.</span></div><div><br/></div><div style="text-align:center;"><div style="line-height:120%;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">10</span></div></div><hr style="page-break-after:always"></hr><div><div style="line-height:120%;font-size:9pt;"><a style="font-family:inherit;font-size:9pt;" href="#sCD449198B5695D85B5494CF5DF708C26"><span style="font-family:inherit;font-size:9pt;">Table of Contents</span></a></div></div><div><br/></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">Our products may contain design or manufacturing defects, which could result in reduced demand, significant delays, or substantial costs.</span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">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.  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><table cellpadding="0" cellspacing="0" style="padding-top:6px;font-family:Times New Roman; font-size:10pt;"><tr><td style="width:108px;"></td><td></td></tr><tr><td style="vertical-align:top"><div style="line-height:120%;font-size:10pt;padding-left:65px;"><span style="font-family:inherit;font-size:10pt;">&#8226;</span></div></td><td style="vertical-align:top;"><div style="line-height:120%;text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">substantial delays in shipment,</span></div></td></tr></table><table cellpadding="0" cellspacing="0" style="padding-top:6px;font-family:Times New Roman; font-size:10pt;"><tr><td style="width:108px;"></td><td></td></tr><tr><td style="vertical-align:top"><div style="line-height:120%;font-size:10pt;padding-left:65px;"><span style="font-family:inherit;font-size:10pt;">&#8226;</span></div></td><td style="vertical-align:top;"><div style="line-height:120%;text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">significant repair or replacement costs,</span></div></td></tr></table><table cellpadding="0" cellspacing="0" style="padding-top:6px;font-family:Times New Roman; font-size:10pt;"><tr><td style="width:108px;"></td><td></td></tr><tr><td style="vertical-align:top"><div style="line-height:120%;font-size:10pt;padding-left:65px;"><span style="font-family:inherit;font-size:10pt;">&#8226;</span></div></td><td style="vertical-align:top;"><div style="line-height:120%;text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">product liability claims or lawsuits, particularly in connection with life sciences customers or other high-risk end-user industries, or</span></div></td></tr></table><table cellpadding="0" cellspacing="0" style="padding-top:6px;font-family:Times New Roman; font-size:10pt;"><tr><td style="width:108px;"></td><td></td></tr><tr><td style="vertical-align:top"><div style="line-height:120%;font-size:10pt;padding-left:65px;"><span style="font-family:inherit;font-size:10pt;">&#8226;</span></div></td><td style="vertical-align:top;"><div style="line-height:120%;text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">potential damage to our reputation.</span></div></td></tr></table><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Any of these results could have a material adverse effect on our operating results.</span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">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="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">The market for our products is characterized by rapidly changing technology.  Accordingly, we believe that our future success will depend upon our ability to accelerate time-to-market for new products with improved functionality, ease-of-use, performance, or 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 in the high-technology marketplace could have a material adverse effect on our operating results.</span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">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 upon 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="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">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="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">We utilize a direct sales force, as well as a network of distribution and integration partners, to sell our products and services.  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 upon indirect selling methods may reduce visibility to demand and pricing issues.  Each sales channel has distinct risks and costs, and therefore, our failure to implement the most advantageous balance in the sales model for our products and services could adversely affect our revenue and profitability.</span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">If we fail to successfully protect our intellectual property, our competitive position and operating results could suffer.</span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">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, specifically from companies in Russia and China, may result in counterfeit products that are misrepresented in the market as Cognex products.  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><table cellpadding="0" cellspacing="0" style="padding-top:6px;font-family:Times New Roman; font-size:10pt;"><tr><td style="width:108px;"></td><td></td></tr><tr><td style="vertical-align:top"><div style="line-height:120%;font-size:10pt;padding-left:65px;"><span style="font-family:inherit;font-size:10pt;">&#8226;</span></div></td><td style="vertical-align:top;"><div style="line-height:120%;text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">protect our proprietary technology,</span></div></td></tr></table><table cellpadding="0" cellspacing="0" style="padding-top:6px;font-family:Times New Roman; font-size:10pt;"><tr><td style="width:108px;"></td><td></td></tr><tr><td style="vertical-align:top"><div style="line-height:120%;font-size:10pt;padding-left:65px;"><span style="font-family:inherit;font-size:10pt;">&#8226;</span></div></td><td style="vertical-align:top;"><div style="line-height:120%;text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">protect our patents from challenge, invalidation, or circumvention, or</span></div></td></tr></table><table cellpadding="0" cellspacing="0" style="padding-top:6px;font-family:Times New Roman; font-size:10pt;"><tr><td style="width:108px;"></td><td></td></tr><tr><td style="vertical-align:top"><div style="line-height:120%;font-size:10pt;padding-left:65px;"><span style="font-family:inherit;font-size:10pt;">&#8226;</span></div></td><td style="vertical-align:top;"><div style="line-height:120%;text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">ensure that our intellectual property will provide us with competitive advantages.</span></div></td></tr></table><div><br/></div><div style="text-align:center;"><div style="line-height:120%;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">11</span></div></div><hr style="page-break-after:always"></hr><div><div style="line-height:120%;font-size:9pt;"><a style="font-family:inherit;font-size:9pt;" href="#sCD449198B5695D85B5494CF5DF708C26"><span style="font-family:inherit;font-size:9pt;">Table of Contents</span></a></div></div><div><br/></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">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 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="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">Our Company may be subject to time-consuming and costly litigation.</span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">From time to time, we may be subject to various claims and lawsuits by competitors, shareholders, customers, distributors, 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.  We may be a party to actions that are described in the section captioned &#8220;Legal Proceedings,&#8221; appearing in Part I - Item&#160;3 of this Annual Report on Form 10-K.  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 style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">Increased competition may result in decreased demand or prices for our products and services.</span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">The machine vision market is highly fragmented and competitive.  Our competitors include other vendors of machine vision systems, controllers, and components; manufacturers of image processing systems, sensors, and components; and system integrators.  We may also compete with internal engineering departments of current or prospective customers, as well as open source tools available for free by various companies.  Any of these competitors may have greater financial and other resources than we do.  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.  We refer you to the section captioned &#8220;Competition,&#8221; appearing in Part I - Item&#160;1 of this Annual Report on Form 10-K for further information regarding the competition that we face.</span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">Implementation of our acquisition strategy may not be successful, which could affect our ability to increase our revenue or profitability and result in the impairment of acquired intangible assets.</span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">On October 16, 2019, we completed our largest acquisition to date when we acquired Sualab Co., Ltd., a provider of deep learning-based vision software based in Korea.  The total consideration of approximately $195 million included cash payments of approximately $171 million paid at closing and deferred payments of approximately $24 million payable on the fourth anniversary date of the closing, contingent upon the continued employment of key talent. </span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Our business may be negatively impacted by risks related to this acquisition, as well as other smaller acquisitions we have completed in the past few years, and future acquisitions that we may make.  These risks include, among others:</span></div><table cellpadding="0" cellspacing="0" style="padding-top:6px;font-family:Times New Roman; font-size:10pt;"><tr><td style="width:108px;"></td><td></td></tr><tr><td style="vertical-align:top"><div style="line-height:120%;font-size:10pt;padding-left:65px;"><span style="font-family:Arial;font-size:10pt;">&#8226;</span></div></td><td style="vertical-align:top;"><div style="line-height:120%;text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">the diversion of management's attention from other operational matters,</span></div></td></tr></table><table cellpadding="0" cellspacing="0" style="padding-top:6px;font-family:Times New Roman; font-size:10pt;"><tr><td style="width:108px;"></td><td></td></tr><tr><td style="vertical-align:top"><div style="line-height:120%;font-size:10pt;padding-left:65px;"><span style="font-family:inherit;font-size:10pt;">&#8226;</span></div></td><td style="vertical-align:top;"><div style="line-height:120%;text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">difficulties or delays integrating personnel, operations, technologies, products, and systems of the acquired business, particularly in remote locations,</span></div></td></tr></table><table cellpadding="0" cellspacing="0" style="padding-top:6px;font-family:Times New Roman; font-size:10pt;"><tr><td style="width:108px;"></td><td></td></tr><tr><td style="vertical-align:top"><div style="line-height:120%;font-size:10pt;padding-left:65px;"><span style="font-family:inherit;font-size:10pt;">&#8226;</span></div></td><td style="vertical-align:top;"><div style="line-height:120%;text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">the inability to realize expected synergies or other benefits resulting from the acquisition,</span></div></td></tr></table><table cellpadding="0" cellspacing="0" style="padding-top:6px;font-family:Times New Roman; font-size:10pt;"><tr><td style="width:108px;"></td><td></td></tr><tr><td style="vertical-align:top"><div style="line-height:120%;font-size:10pt;padding-left:65px;"><span style="font-family:inherit;font-size:10pt;">&#8226;</span></div></td><td style="vertical-align:top;"><div style="line-height:120%;text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">the failure to retain key talent,</span></div></td></tr></table><table cellpadding="0" cellspacing="0" style="padding-top:6px;font-family:Times New Roman; font-size:10pt;"><tr><td style="width:108px;"></td><td></td></tr><tr><td style="vertical-align:top"><div style="line-height:120%;font-size:10pt;padding-left:65px;"><span style="font-family:Arial;font-size:10pt;">&#8226;</span></div></td><td style="vertical-align:top;"><div style="line-height:120%;text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">the impairment of acquired intangible assets resulting from lower-than-expected cash flows from the acquired assets,</span></div></td></tr></table><table cellpadding="0" cellspacing="0" style="padding-top:6px;font-family:Times New Roman; font-size:10pt;"><tr><td style="width:108px;"></td><td></td></tr><tr><td style="vertical-align:top"><div style="line-height:120%;font-size:10pt;padding-left:65px;"><span style="font-family:Arial;font-size:10pt;">&#8226;</span></div></td><td style="vertical-align:top;"><div style="line-height:120%;text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">the inability to protect and secure acquired intellectual property or confidential information,</span></div></td></tr></table><table cellpadding="0" cellspacing="0" style="padding-top:6px;font-family:Times New Roman; font-size:10pt;"><tr><td style="width:108px;"></td><td></td></tr><tr><td style="vertical-align:top"><div style="line-height:120%;font-size:10pt;padding-left:65px;"><span style="font-family:inherit;font-size:10pt;">&#8226;</span></div></td><td style="vertical-align:top;"><div style="line-height:120%;text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">difficulties or delays completing the development of acquired in-process technology,</span></div></td></tr></table><table cellpadding="0" cellspacing="0" style="padding-top:6px;font-family:Times New Roman; font-size:10pt;"><tr><td style="width:108px;"></td><td></td></tr><tr><td style="vertical-align:top"><div style="line-height:120%;font-size:10pt;padding-left:65px;"><span style="font-family:inherit;font-size:10pt;">&#8226;</span></div></td><td style="vertical-align:top;"><div style="line-height:120%;text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">the failure to retain key customers, and</span></div></td></tr></table><table cellpadding="0" cellspacing="0" style="padding-top:6px;font-family:Times New Roman; font-size:10pt;"><tr><td style="width:108px;"></td><td></td></tr><tr><td style="vertical-align:top"><div style="line-height:120%;font-size:10pt;padding-left:65px;"><span style="font-family:Arial;font-size:10pt;">&#8226;</span></div></td><td style="vertical-align:top;"><div style="line-height:120%;text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">the failure to achieve projected sales of acquired products.</span></div></td></tr></table><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">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><br/></div><div style="text-align:center;"><div style="line-height:120%;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">12</span></div></div><hr style="page-break-after:always"></hr><div><div style="line-height:120%;font-size:9pt;"><a style="font-family:inherit;font-size:9pt;" href="#sCD449198B5695D85B5494CF5DF708C26"><span style="font-family:inherit;font-size:9pt;">Table of Contents</span></a></div></div><div><br/></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">We are at risk for impairment charges with respect to our investments or for acquired intangible assets or goodwill, which could have a material adverse effect on our results of operations.</span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">As of December&#160;31, 2019, our investment portfolio of debt securities totaled $669,594,000.  These debt securities are reported at fair value, with unrealized gains and losses, net of tax, recorded in shareholders&#8217; equity as other comprehensive income (loss) since these securities are designated as available-for-sale securities. </span><span style="font-family:Arial;font-size:10pt;color:#ff0000;"> </span><span style="font-family:Arial;font-size:10pt;">As of December&#160;31, 2019, our portfolio of debt securities had a net unrealized gain of $2,351,000.  Included in this net gain were gross unrealized losses totaling $65,000, of which $39,000 were in a loss position for less than twelve months and $26,000 were in a loss position for greater than twelve months.  As of December&#160;31, 2019, these unrealized losses were determined to be temporary.  However, if conditions change and future unrealized losses were determined to be other-than-temporary, we would be required to record an impairment charge.</span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Management monitors the carrying value of its debt securities compared to their fair value to determine whether an other-than-temporary impairment has occurred.  In considering whether a decline in fair value is other-than-temporary, we consider many factors, both qualitative and quantitative.  Management considers the type of security, the credit rating of the security, the length of time the security has been in a loss position, the size of the loss position, our ability and intent to hold the security to expected recovery of value, and other meaningful information.  If a decline in fair value is determined to be other-than-temporary, an impairment charge would be recorded in current operations to reduce the carrying value of the investment to its fair value.  Should the fair value of investments decline in future periods below their carrying value, management will need to determine whether this decline is other-than-temporary and future impairment charges may be required.</span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">As of December&#160;31, 2019, we had $243 million in acquired goodwill.  The fair value of goodwill is susceptible to changes in the fair value of the reporting segment in which the goodwill resides, and therefore, a decline in our market capitalization or cash flows relative to our net book value may result in future impairment charges.</span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">As of December&#160;31, 2019, we had $39 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. A decline in the cash flows generated by these assets may result in future impairment charges.</span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">If we determine that any of these investments, goodwill, or intangible assets is impaired, we would be required to take a related charge to earnings that could have a material adverse effect on our results of operations.</span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">We may have additional tax liabilities, which could adversely affect our operating results and financial condition.</span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">We are subject to taxes in the United States, as well as in numerous foreign jurisdictions, including income taxes, indirect taxes such as value-added taxes (VAT), and payroll-related taxes and withholding obligations.  Significant judgment is required in determining our worldwide provision for income and other taxes.  In the ordinary course of business, there are many transactions and calculations where the ultimate tax determination is uncertain.  We are regularly under audit by tax authorities and may be assessed additional taxes, penalties, fees or interest, which could have an adverse effect on our financial position, liquidity, or results of operation. </span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">In the fourth quarter of 2019, we made changes to our international tax structure as a result of tax reform legislation enacted by the European Union.  In addition, in connection with the acquisition of Sualab Co., Ltd., we migrated acquired intellectual property to certain subsidiaries in order to align with our corporate tax structure.  The Company has made certain judgments and estimates in connection with these transactions, which have impacted the amount and timing of current and deferred tax expense in 2019 and in future years.  </span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Although we believe our tax positions are reasonable, the final determination of tax audits and any related litigation could be materially different than that which 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><a id="sE4E6972AB3E15EA598B0C0AFAFFF7CCB"></a></div><div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">ITEM 1B:  UNRESOLVED STAFF COMMENTS</span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">None</span></div><div><a id="s2117F5E8FDDE5796A493A2D71A86E83A"></a></div><div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">ITEM 2:  PROPERTIES</span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">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><br/></div><div style="text-align:center;"><div style="line-height:120%;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">13</span></div></div><hr style="page-break-after:always"></hr><div><div style="line-height:120%;font-size:9pt;"><a style="font-family:inherit;font-size:9pt;" href="#sCD449198B5695D85B5494CF5DF708C26"><span style="font-family:inherit;font-size:9pt;">Table of Contents</span></a></div></div><div><br/></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">In 1995, Cognex purchased an 83,000 square-foot office building adjacent to our corporate headquarters that is occupied by employees primarily in sales, marketing, service, logistics, finance, and information technology functions.</span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">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.</span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">In 2007, Cognex purchased a 19,000 square-foot building adjacent to our corporate headquarters.  A portion of this facility serves as the distribution center for customers in the Americas.  The remainder of this building is occupied by a tenant who has a lease agreement that expires in 2022.</span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">In 2014, Cognex purchased a 50,000 square foot building in Cork, Ireland where we had previously leased space for several years.  This facility serves as the distribution center for customers outside of the Americas. </span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Cognex conducts certain of its operations in leased facilities.  These lease agreements expire at various dates through 2025.  Certain of these leases contain renewal options, retirement obligations, escalation clauses, rent holidays, and leasehold improvement incentives.</span></div><div><a id="s5BC12B6428205AFB84BFEFB0A0EB2CFA"></a></div><div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">ITEM 3:  LEGAL PROCEEDINGS</span></div><div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">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><a id="sFE4BAE4328985A0F82C6E177B9AF8A0A"></a></div><div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">ITEM 4:  MINE SAFETY DISCLOSURES</span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Not applicable.</span></div><div><a id="sED4E8EAE63D857ED9725F3EDB487E8FB"></a></div><div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">ITEM 4A:  INFORMATION ABOUT OUR EXECUTIVE OFFICERS</span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">The following table sets forth the names, ages, and titles of Cognex&#8217;s executive officers as of </span><span style="font-family:Arial;font-size:10pt;">December&#160;31, 2019</span><span style="font-family:Arial;font-size:10pt;">:</span></div><div style="line-height:120%;text-align:justify;font-size:10pt;"><div style="padding-left:0px;text-indent:0px;line-height:normal;padding-top:10px;"><table cellpadding="0" cellspacing="0" style="font-family:Times New Roman;font-size:10pt;width:100%;border-collapse:collapse;text-align:left;"><tr><td colspan="5"></td></tr><tr><td style="width:19%;"></td><td style="width:1%;"></td><td style="width:5%;"></td><td style="width:1%;"></td><td style="width:74%;"></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;text-decoration:underline;">Name</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;text-decoration:underline;">Age</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;text-decoration:underline;">Title</span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Robert&#160;J.&#160;Shillman</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">73</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Chairman of the Board of Directors and Chief Culture Officer</span></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Robert J. Willett</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">52</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">President and Chief Executive Officer</span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Laura A. MacDonald</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">51</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Vice President and Corporate Controller</span></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Sheila M. DiPalma</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">53</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Senior Vice President of Employee Services</span></div></td></tr></table></div></div><div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Executive officers are elected annually by the Board of Directors.  There are no family relationships among the directors and executive officers of the Company.</span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Dr.&#160;Shillman and Mr. Willett have been employed by Cognex in their current positions for no less than the past five years.</span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Ms. MacDonald joined Cognex in 1994.  She has served for more than 25 years in a series of increasingly responsible roles in the finance function, and has served as the Company's Vice President and Corporate Controller since 2007.  Prior to joining Cognex, Ms. MacDonald was a member of the audit firm PricewaterhouseCoopers, where she practiced as a Certified Public Accountant. She holds a Bachelor of Science degree in Accounting from Providence College and a Master of Business Administration from Babson College. </span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Ms. DiPalma joined Cognex in 1992.  She has served for more than 25 years in a series of increasingly responsible roles in the finance function, including six years as Cognex Treasurer, before transitioning to Employee Services in 2016.  Prior to joining Cognex, Ms. DiPalma was a member of the audit firm PricewaterhouseCoopers.  She holds a Bachelor of Science degree in Accounting from Boston College, a Master of Science degree in Taxation from Bentley College, and is a Certified Public Accountant. </span></div><div><br/></div><div style="text-align:center;"><div style="line-height:120%;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">14</span></div></div><hr style="page-break-after:always"></hr><div><a id="s200B8A29EFCB5E83B9B4851D636D9E05"></a></div><div><div style="line-height:120%;font-size:9pt;"><a style="font-family:inherit;font-size:9pt;" href="#sCD449198B5695D85B5494CF5DF708C26"><span style="font-family:inherit;font-size:9pt;">Table of Contents</span></a></div></div><div><br/></div><div style="line-height:120%;padding-bottom:12px;text-align:center;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">PART II</span></div><div><a id="s2EDCEEBB0D5F5DC28B0A35FC0D0FD44F"></a></div><div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">ITEM&#160;5:  MARKET FOR REGISTRANT&#8217;S COMMON EQUITY, RELATED STOCKHOLDER MATTERS, AND ISSUER PURCHASES OF EQUITY SECURITIES</span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">The Company&#8217;s common stock is traded on The NASDAQ Stock Market LLC, under the symbol CGNX.  As of </span><span style="font-family:Arial;font-size:10pt;">January&#160;26, 2020</span><span style="font-family:Arial;font-size:10pt;">, 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="line-height:120%;text-align:justify;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div><div style="line-height:120%;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">In October 2018, the Company's Board of Directors authorized the repurchase of $200,000,000 of the Company's common stock. As of December 31, 2019, the Company repurchased 1,601,000 shares at a cost of $70,312,000 under this program, including 1,398,000 shares at a cost of $61,690,000 during 2019, leaving a remaining balance of $129,688,000.  The Company may repurchase shares under this program in future periods depending upon a variety of factors, including, among other things, the impact of dilution from employee stock awards, stock price, share availability, and cash requirements.</span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">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 2019:</span></div><div style="line-height:120%;text-align:justify;font-size:10pt;"><div style="padding-left:0px;text-indent:0px;line-height:normal;padding-top:10px;"><table cellpadding="0" cellspacing="0" style="font-family:Times New Roman;font-size:10pt;width:100%;border-collapse:collapse;text-align:left;"><tr><td colspan="14"></td></tr><tr><td style="width:34%;"></td><td style="width:15%;"></td><td style="width:1%;"></td><td style="width:1%;"></td><td style="width:1%;"></td><td style="width:11%;"></td><td style="width:1%;"></td><td style="width:1%;"></td><td style="width:16%;"></td><td style="width:1%;"></td><td style="width:1%;"></td><td style="width:1%;"></td><td style="width:15%;"></td><td style="width:1%;"></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;">Total Number of</span></div><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;">Shares&#160;Purchased</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;">Average</span></div><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;">Price&#160;Paid</span></div><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;">per Share</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;">Total Number of</span></div><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;">Shares&#160;Purchased&#160;as</span></div><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;">Part of Publicly</span></div><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;">Announced Plans or</span></div><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;">Programs</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;">Approximate Dollar</span></div><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;">Value of Shares that</span></div><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;">May Yet Be</span></div><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;">Purchased&#160;Under&#160;the</span></div><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;">Plans or Programs</span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">September 30 - October 27, 2019</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">&#8212;</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">&#8212;</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">&#8212;</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">129,688,000</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">October 28 - November 24, 2019</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">&#8212;</span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">&#8212;</span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">&#8212;</span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">129,688,000</span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">November 25 - December 31, 2019</span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">&#8212;</span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">&#8212;</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">&#8212;</span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">129,688,000</span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Total</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">&#8212;</span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">&#8212;</span></div></td><td style="vertical-align:bottom;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">&#8212;</span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">129,688,000</span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr></table></div></div><div style="line-height:120%;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><br/></span></div><div style="line-height:120%;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><br/></span></div><div><br/></div><div style="text-align:center;"><div style="line-height:120%;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">15</span></div></div><hr style="page-break-after:always"></hr><div><div style="line-height:120%;font-size:9pt;"><a style="font-family:inherit;font-size:9pt;" href="#sCD449198B5695D85B5494CF5DF708C26"><span style="font-family:inherit;font-size:9pt;">Table of Contents</span></a></div></div><div><br/></div><div style="line-height:120%;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">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 upon 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="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><br/></span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><br/></span></div><div style="line-height:120%;text-align:center;"><img src="chart-1bf0ef3173995f79bb7.jpg" alt="chart-1bf0ef3173995f79bb7.jpg" style="height:533px;width:666px;"></img></div><div style="line-height:120%;text-align:justify;font-size:14pt;"><span style="font-family:inherit;font-size:14pt;"><br/></span></div><div style="line-height:120%;text-align:justify;font-size:14pt;"><span style="font-family:inherit;font-size:14pt;"><br/></span></div><div style="line-height:120%;text-align:justify;font-size:14pt;"><span style="font-family:inherit;font-size:14pt;"><br/></span></div><div style="line-height:120%;text-align:justify;font-size:10pt;"><div style="padding-left:0px;text-indent:0px;line-height:normal;padding-top:10px;"><table cellpadding="0" cellspacing="0" style="font-family:Times New Roman;font-size:10pt;width:98.4375%;border-collapse:collapse;text-align:left;"><tr><td colspan="18"></td></tr><tr><td style="width:41%;"></td><td style="width:8%;"></td><td style="width:1%;"></td><td style="width:1%;"></td><td style="width:8%;"></td><td style="width:1%;"></td><td style="width:1%;"></td><td style="width:8%;"></td><td style="width:1%;"></td><td style="width:1%;"></td><td style="width:8%;"></td><td style="width:1%;"></td><td style="width:1%;"></td><td style="width:8%;"></td><td style="width:1%;"></td><td style="width:1%;"></td><td style="width:8%;"></td><td style="width:1%;"></td></tr><tr><td colspan="18" style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">*$100 invested on 12/31/2014 in stock or index, including reinvestment of dividends.  Fiscal year ended December 31.</span></div></td></tr><tr><td style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;">12/14</span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;">12/15</span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;">12/16</span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;">12/17</span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;">12/18</span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;">12/19</span></div></td></tr><tr><td style="vertical-align:top;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;">Cognex Corporation</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;font-weight:bold;">100.00</span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;border-top:1px solid #000000;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;font-weight:bold;">82.15</span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;border-top:1px solid #000000;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;font-weight:bold;">155.73</span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;border-top:1px solid #000000;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;font-weight:bold;">300.42</span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;border-top:1px solid #000000;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;font-weight:bold;">190.68</span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;border-top:1px solid #000000;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;font-weight:bold;">277.52</span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;">NASDAQ Composite</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;font-weight:bold;">100.00</span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;font-weight:bold;">106.96</span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;font-weight:bold;">116.45</span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;font-weight:bold;">150.96</span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;font-weight:bold;">146.67</span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;font-weight:bold;">200.49</span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;">NASDAQ Stocks</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;font-weight:bold;">100.00</span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;font-weight:bold;">100.11</span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;font-weight:bold;">103.09</span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;font-weight:bold;">153.38</span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;font-weight:bold;">144.64</span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;font-weight:bold;">195.94</span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td colspan="15" style="vertical-align:top;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-style:italic;font-weight:bold;">(SIC 3820-3829 U.S. Companies) Lab Apparatus &amp; Analyt,Opt, Measuring, and Controlling Instrument</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td></tr></table></div></div><div><br/></div><div style="text-align:center;"><div style="line-height:120%;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">16</span></div></div><hr style="page-break-after:always"></hr><div><a id="s1E5AD2727BD5560AA2FB6A648F8EC13A"></a></div><div><div style="line-height:120%;font-size:9pt;"><a style="font-family:inherit;font-size:9pt;" href="#sCD449198B5695D85B5494CF5DF708C26"><span style="font-family:inherit;font-size:9pt;">Table of Contents</span></a></div></div><div><br/></div><div style="line-height:120%;padding-top:12px;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">ITEM&#160;6:&#160;&#160;SELECTED FINANCIAL DATA</span><div style="padding-left:0px;text-indent:0px;line-height:normal;padding-top:10px;"><table cellpadding="0" cellspacing="0" style="font-family:Times New Roman;font-size:10pt;width:100%;border-collapse:collapse;text-align:left;"><tr><td colspan="20"></td></tr><tr><td style="width:41%;"></td><td style="width:1%;"></td><td style="width:9%;"></td><td style="width:1%;"></td><td style="width:1%;"></td><td style="width:1%;"></td><td style="width:9%;"></td><td style="width:1%;"></td><td style="width:1%;"></td><td style="width:1%;"></td><td style="width:9%;"></td><td style="width:1%;"></td><td style="width:1%;"></td><td style="width:1%;"></td><td style="width:9%;"></td><td style="width:1%;"></td><td style="width:1%;"></td><td style="width:1%;"></td><td style="width:9%;"></td><td style="width:1%;"></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;">&#160;</span></div></td><td colspan="19" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;">Year Ended December&#160;31,</span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;">2019</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">2018</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">2017</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">2016</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">2015</span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;">&#160;</span></div></td><td colspan="19" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">(In thousands, except per share amounts)</span></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:9.5pt;"><span style="font-family:Arial;font-size:9.5pt;">Statement of Operations Data:</span></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:9.5pt;"><span style="font-family:Arial;font-size:9.5pt;">Revenue</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">725,625</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">806,338</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">766,083</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">529,515</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">470,991</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:9.5pt;"><span style="font-family:Arial;font-size:9.5pt;">Cost of revenue (1)</span></div></td><td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">189,754</span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">206,052</span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">187,289</span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">131,070</span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">123,085</span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:9.5pt;"><span style="font-family:Arial;font-size:9.5pt;">Gross margin</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">535,871</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">600,286</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">578,794</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">398,445</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">347,906</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:9.5pt;"><span style="font-family:Arial;font-size:9.5pt;">Research, development, and engineering expenses (1)</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">119,427</span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">116,445</span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">99,205</span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">78,269</span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">69,791</span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:9.5pt;"><span style="font-family:Arial;font-size:9.5pt;">Selling, general, and administrative expenses (1)</span></div></td><td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">273,842</span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">262,699</span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">220,728</span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">166,110</span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">156,674</span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:9.5pt;"><span style="font-family:Arial;font-size:9.5pt;">Operating income</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">142,602</span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">221,142</span></div></td><td style="vertical-align:bottom;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">258,861</span></div></td><td style="vertical-align:bottom;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">154,066</span></div></td><td style="vertical-align:bottom;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">121,441</span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:9.5pt;"><span style="font-family:Arial;font-size:9.5pt;">Non-operating income</span></div></td><td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">20,392</span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">13,432</span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">7,603</span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">8,011</span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">5,441</span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:9.5pt;"><span style="font-family:Arial;font-size:9.5pt;">Income from continuing operations before income tax expense</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">162,994</span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">234,574</span></div></td><td style="vertical-align:bottom;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">266,464</span></div></td><td style="vertical-align:bottom;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">162,077</span></div></td><td style="vertical-align:bottom;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">126,882</span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:9.5pt;"><span style="font-family:Arial;font-size:9.5pt;">Income tax expense (benefit) on continuing operations</span></div></td><td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">(40,871</span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">)</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">15,307</span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">89,752</span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">18,128</span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">19,288</span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:9.5pt;"><span style="font-family:Arial;font-size:9.5pt;">Net income from continuing operations</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">203,865</span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">219,267</span></div></td><td style="vertical-align:bottom;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">176,712</span></div></td><td style="vertical-align:bottom;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">143,949</span></div></td><td style="vertical-align:bottom;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">107,594</span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:9.5pt;"><span style="font-family:Arial;font-size:9.5pt;">Net income (loss) from discontinued operations (1)</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">&#8212;</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">&#8212;</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">&#8212;</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">(255</span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">)</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">79,410</span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:9.5pt;"><span style="font-family:Arial;font-size:9.5pt;">Net income </span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">203,865</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">219,267</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">176,712</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">143,694</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">187,004</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:5px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:5px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:5px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:5px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:5px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:5px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:5px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:5px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:5px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:5px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:9.5pt;"><span style="font-family:Arial;font-size:9.5pt;">Basic earnings per weighted-average common and common-equivalent share (2):</span></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:9.5pt;"><span style="font-family:Arial;font-size:9.5pt;">Net income from continuing operations</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">1.19</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">1.27</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">1.02</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">0.84</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">0.62</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:9.5pt;"><span style="font-family:Arial;font-size:9.5pt;">Net income (loss) from discontinued operations</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">$</span></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">&#8212;</span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">&#8212;</span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">&#8212;</span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">&#8212;</span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">0.46</span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:9.5pt;"><span style="font-family:Arial;font-size:9.5pt;">Net income</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">1.19</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">1.27</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">1.02</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">0.84</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">1.08</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:5px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:5px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:5px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:5px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:5px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:5px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:5px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:5px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:5px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:5px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:9.5pt;"><span style="font-family:Arial;font-size:9.5pt;">Diluted earnings per weighted-average common and common-equivalent share (2):</span></div></td><td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td></tr><tr><td style="vertical-align:top;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:9.5pt;"><span style="font-family:Arial;font-size:9.5pt;">Net income from continuing operations</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">$</span></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">1.16</span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">1.24</span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">0.98</span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">0.83</span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">0.61</span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:9.5pt;"><span style="font-family:Arial;font-size:9.5pt;">Net income (loss) from discontinued operations</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">&#8212;</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">&#8212;</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">&#8212;</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">&#8212;</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">0.45</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:9.5pt;"><span style="font-family:Arial;font-size:9.5pt;">Net income</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">1.16</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">1.24</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">0.98</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">0.83</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">1.06</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:5px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:5px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:5px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:5px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:5px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:5px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:5px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:5px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:5px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:5px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:9.5pt;"><span style="font-family:Arial;font-size:9.5pt;">Weighted-average common and common-equivalent shares outstanding (2):</span></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:9.5pt;"><span style="font-family:Arial;font-size:9.5pt;">Basic</span></div></td><td colspan="2" style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">171,194</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">172,333</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">173,287</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">170,676</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">172,592</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:9.5pt;"><span style="font-family:Arial;font-size:9.5pt;">Diluted</span></div></td><td colspan="2" style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">175,269</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">177,406</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">179,551</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">174,144</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">175,982</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:18px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:18px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:18px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:18px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:18px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:18px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:18px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:18px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:18px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:18px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:9.5pt;"><span style="font-family:Arial;font-size:9.5pt;">Cash dividends per common share (2)</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">0.2050</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">0.1850</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">0.1675</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">0.1475</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">0.1050</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:5px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:5px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:5px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:5px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:5px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:5px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:5px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:5px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:5px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:5px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:9.5pt;"><span style="font-family:Arial;font-size:9.5pt;">(1) Amounts include stock-based compensation expense, as follows:</span></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:9.5pt;"><span style="font-family:Arial;font-size:9.5pt;">Cost of revenue</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">1,504</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">2,447</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">1,881</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">1,052</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">1,515</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:9.5pt;"><span style="font-family:Arial;font-size:9.5pt;">Research, development, and engineering</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">15,748</span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">14,578</span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">11,022</span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">6,271</span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">5,194</span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:9.5pt;"><span style="font-family:Arial;font-size:9.5pt;">Selling, general, and administrative</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">28,337</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">24,065</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">19,039</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">13,235</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">13,032</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:9.5pt;"><span style="font-family:Arial;font-size:9.5pt;">Discontinued operations</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">&#8212;</span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">&#8212;</span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">&#8212;</span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">&#8212;</span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">1,533</span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:9.5pt;"><span style="font-family:Arial;font-size:9.5pt;">Total stock-based compensation expense</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">45,589</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">41,090</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">31,942</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">20,558</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">21,274</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:5px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:5px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:5px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:5px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:5px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:5px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:5px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:5px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:5px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:5px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td></tr><tr><td colspan="20" style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:9.5pt;"><span style="font-family:Arial;font-size:9.5pt;">(2)  Prior period results have been adjusted to reflect the two-for-one stock split effected in the form of a stock dividend which occurred in 2017.</span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;">&#160;</span></div></td><td colspan="19" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;">December 31,</span></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;">2019</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">2018</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">2017</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">2016</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">2015</span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;">&#160;</span></div></td><td colspan="19" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">(In thousands)</span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:9.5pt;"><span style="font-family:Arial;font-size:9.5pt;">Balance Sheet Data:</span></div></td><td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td></tr><tr><td style="vertical-align:top;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:9.5pt;"><span style="font-family:Arial;font-size:9.5pt;">Working capital</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:9.5pt;"><span style="font-family:Arial;font-size:9.5pt;font-weight:bold;">$</span></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:9.5pt;"><span style="font-family:Arial;font-size:9.5pt;font-weight:bold;">486,754</span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:9.5pt;"><span style="font-family:Arial;font-size:9.5pt;">$</span></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:9.5pt;"><span style="font-family:Arial;font-size:9.5pt;">688,969</span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:9.5pt;"><span style="font-family:Arial;font-size:9.5pt;">$</span></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:9.5pt;"><span style="font-family:Arial;font-size:9.5pt;">517,356</span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:9.5pt;"><span style="font-family:Arial;font-size:9.5pt;">$</span></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:9.5pt;"><span style="font-family:Arial;font-size:9.5pt;">461,357</span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:9.5pt;"><span style="font-family:Arial;font-size:9.5pt;">$</span></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:9.5pt;"><span style="font-family:Arial;font-size:9.5pt;">397,470</span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:9.5pt;"><span style="font-family:Arial;font-size:9.5pt;">Total assets</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:9.5pt;"><span style="font-family:Arial;font-size:9.5pt;font-weight:bold;">1,885,935</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:9.5pt;"><span style="font-family:Arial;font-size:9.5pt;">1,289,667</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:9.5pt;"><span style="font-family:Arial;font-size:9.5pt;">1,287,753</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:9.5pt;"><span style="font-family:Arial;font-size:9.5pt;">1,038,361</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:9.5pt;"><span style="font-family:Arial;font-size:9.5pt;">877,421</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:9.5pt;"><span style="font-family:Arial;font-size:9.5pt;">Shareholders&#8217; equity</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:9.5pt;"><span style="font-family:Arial;font-size:9.5pt;font-weight:bold;">1,355,710</span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:9.5pt;"><span style="font-family:Arial;font-size:9.5pt;">1,135,263</span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:9.5pt;"><span style="font-family:Arial;font-size:9.5pt;">1,095,673</span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:9.5pt;"><span style="font-family:Arial;font-size:9.5pt;">963,385</span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:9.5pt;"><span style="font-family:Arial;font-size:9.5pt;">832,331</span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr></table></div></div><div><br/></div><div style="text-align:center;"><div style="line-height:120%;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">17</span></div></div><hr style="page-break-after:always"></hr><div><a id="s179A609936A4562AABA16C134FB12BC3"></a></div><div><div style="line-height:120%;font-size:9pt;"><a style="font-family:inherit;font-size:9pt;" href="#sCD449198B5695D85B5494CF5DF708C26"><span style="font-family:inherit;font-size:9pt;">Table of Contents</span></a></div></div><div><br/></div><div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">ITEM&#160;7:&#160;&#160;MANAGEMENT&#8217;S DISCUSSION AND ANALYSIS OF FINANCIAL CONDITION AND RESULTS OF OPERATIONS</span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">FORWARD-LOOKING STATEMENTS</span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">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; &#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 upon 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, customer order rates and timing of related revenue, expected areas of growth, emerging markets, future product mix, research and development activities, investments, strategic plans, expected benefits from acquisitions, dividends, stock repurchases, and 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)&#160;current and future conditions in the global economy, including the imposition of tariffs or export controls and the impact of the coronavirus outbreak; (2)&#160;the loss of, or curtailment of purchases by, a large customer; (3)&#160;the reliance on revenue from the consumer electronics or automotive industries; (4)&#160;the inability to penetrate the logistics industry and other new markets; (5)&#160;the inability to achieve significant international revenue; (6)&#160;fluctuations in foreign currency exchange rates and the use of derivative instruments; (7)&#160;information security breaches or business system disruptions; (8)&#160;the inability to attract and retain skilled employees; (9) the failure to effectively manage our growth; (10)&#160;the reliance upon key suppliers to manufacture and deliver critical components for our products; (11)&#160;the failure to effectively manage product transitions or accurately forecast customer demand; (12)&#160;the inability to design and manufacture high-quality products; (13)&#160;the technological obsolescence of current products and the inability to develop new products; (14)&#160;the failure to properly manage the distribution of products and services; (15)&#160;the inability to protect our proprietary technology and intellectual property; (16)&#160;our involvement in time-consuming and costly litigation; (17)&#160;the impact of competitive pressures; (18)&#160;the challenges in integrating and achieving expected results from acquired businesses, including the recent acquisition of Sualab; (19)&#160;potential impairment charges with respect to our investments or for acquired intangible assets or goodwill; and (20)&#160;exposure to additional tax liabilities.  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="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">EXECUTIVE OVERVIEW</span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Cognex Corporation is a leading worldwide provider of machine vision products that capture and analyze visual information in order to automate manufacturing and distribution tasks where vision is required.  In addition to product revenue derived from the sale of machine vision products, the Company also generates revenue by providing maintenance and support, consulting, and training services to its customers; however, service revenue accounted for less than 10% of total revenue for all periods presented.</span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Cognex machine vision is used to automate manufacturing and distribution processes in a variety of industries, where the technology is widely recognized as an important component of automated production and quality assurance. Virtually every manufacturer can achieve better quality and manufacturing efficiency by using machine vision, and therefore, Cognex products are used by a broad base of customers across a variety of industries, including consumer electronics, automotive, consumer products, food and beverage, pharmaceuticals, and medical devices.  Cognex products are also used to automate distribution processes in the logistics industry, including for applications in retail distribution and ecommerce to scan, track, and sort goods through distribution centers. </span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Revenue for the year ended December&#160;31, 2019 totaled $725,625,000, representing a decrease of 10% from 2018 driven by significantly lower revenue in the consumer electronics industry related to smartphone manufacturing.  Gross margin as a percentage of revenue was 74% for both years.  Operating expenses increased by 4% over 2018, as the impact of additional headcount to support our future growth plans was offset by lower expenses related to incentive compensation plans.  As a result of the lower revenue level and continued investments, operating income was 20% of revenue in 2019 compared to 27% of revenue in 2018.  A higher level of discrete tax benefits in 2019 related to tax structure changes resulted in net income of 28% of revenue in 2019 compared to 27% of revenue in 2018.  Net income per diluted share was $1.16 in 2019 compared to $1.24 in 2018.</span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><br/></span></div><div><br/></div><div style="text-align:center;"><div style="line-height:120%;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">18</span></div></div><hr style="page-break-after:always"></hr><div><div style="line-height:120%;font-size:9pt;"><a style="font-family:inherit;font-size:9pt;" href="#sCD449198B5695D85B5494CF5DF708C26"><span style="font-family:inherit;font-size:9pt;">Table of Contents</span></a></div></div><div><br/></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">The following table sets forth certain consolidated financial data as a percentage of revenue:</span></div><div style="line-height:120%;text-align:justify;font-size:10pt;"><div style="padding-left:0px;text-indent:0px;line-height:normal;padding-top:10px;"><table cellpadding="0" cellspacing="0" style="font-family:Times New Roman;font-size:10pt;width:100%;border-collapse:collapse;text-align:left;"><tr><td colspan="9"></td></tr><tr><td style="width:56%;"></td><td style="width:13%;"></td><td style="width:1%;"></td><td style="width:1%;"></td><td style="width:13%;"></td><td style="width:1%;"></td><td style="width:1%;"></td><td style="width:13%;"></td><td style="width:1%;"></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;">&#160;</span></div></td><td colspan="8" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;">Year Ended December&#160;31,</span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;text-decoration:underline;">2019</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;text-decoration:underline;">2018</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;text-decoration:underline;">2017</span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Revenue</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">100</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">&#160;%</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">100</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">%</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">100</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">%</span></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Cost of revenue</span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">26</span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">26</span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">24</span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Gross margin</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">74</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">74</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">76</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Research, development, and engineering expenses</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">16</span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">14</span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">13</span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Selling, general, and administrative expenses</span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">38</span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">33</span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">29</span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Operating income</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">20</span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">27</span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">34</span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Non-operating income</span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">3</span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">2</span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">1</span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Income before income tax expense</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">23</span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">29</span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">35</span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Income tax expense (benefit)</span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">(5</span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">)</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">2</span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">12</span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Net income</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">28</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">&#160;%</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">27</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">%</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">23</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">%</span></div></td></tr></table></div></div><div><a id="s60D0AAB9587C53CCBB8F7E398EA02025"></a></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">RESULTS OF OPERATIONS</span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">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 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.&#160; 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="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">Year Ended December&#160;31, 2019 Compared to Year Ended December&#160;31, 2018 </span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;text-decoration:underline;">Revenue</span></div><div style="line-height:120%;padding-bottom:10px;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Revenue for the year ended December 31, 2019 was $725,625,000 compared to $806,338,000 for the prior year, representing a decrease of $80,713,000, or 10%.  Changes in foreign currency exchange rates accounted for approximately 2% of the revenue decrease from 2018 to 2019, primarily related to the translation of Euro-denominated and Chinese Yuan-denominated revenue to U.S. Dollars.</span></div><div style="line-height:120%;padding-bottom:10px;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">In 2019, industrial companies delayed and reduced spending for automation projects, including those with machine vision, amid weaker general manufacturing confidence and heightened uncertainty around global trade.  This decrease in capital spending, along with the decision by certain of our larger customers to retrofit existing equipment rather than invest in new production lines or facilities, contributed to the decrease in revenue from the prior year.</span></div><div style="line-height:120%;padding-bottom:10px;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">The impact to our business was most significant in our two largest markets, consumer electronics and automotive, which together represent approximately half of our total revenue.  Consumer electronics revenue was approximately 30% lower than the prior year, with the majority of this decrease related to smartphone manufacturing, while automotive revenue was approximately 10% lower than the prior year.</span></div><div style="line-height:120%;padding-bottom:10px;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">These decreases were only partially offset by higher revenue in the logistics industry, which increased by approximately 15% from the prior year.  This growth rate was slower than 2018 due to a major customer delaying deliveries for new facilities until mid-2020 after building adequate capacity for 2019 by upgrading existing facilities.  Excluding revenue from this major customer, logistics revenue increased by approximately 50% from the prior year.  We expect this customer to grow at a lower rate than our total logistics business in 2020.</span></div><div style="line-height:120%;padding-bottom:10px;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">From a geographic perspective, revenue from customers based in the Americas increased by 5% driven by higher sales in the logistics industry, partially offset by lower sales in the automotive industry.  Revenue from customers based in Europe decreased by 27% driven by lower sales in the consumer electronics industry, and to a lesser extent, the automotive industry.  Revenue from customers based in Greater China decreased by 7% across a variety of industries.  The decline would have been larger in Greater China, and less extreme in Europe, if not for procurement changes made by certain consumer electronics customers, shifting their purchases to China from Europe.  Revenue from customers based in other regions in Asia were relatively flat.</span></div><div><br/></div><div style="text-align:center;"><div style="line-height:120%;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">19</span></div></div><hr style="page-break-after:always"></hr><div><div style="line-height:120%;font-size:9pt;"><a style="font-family:inherit;font-size:9pt;" href="#sCD449198B5695D85B5494CF5DF708C26"><span style="font-family:inherit;font-size:9pt;">Table of Contents</span></a></div></div><div><br/></div><div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">As of the date of this report, we expect revenue for the first quarter of 2020 to be lower than the fourth quarter of 2019 due to continued weakness in the automotive industry and the estimated impact of the recent coronavirus outbreak on our business.  </span><span style="font-family:Arial;font-size:10pt;background-color:#ffffff;">This decrease is expected to be partially offset by higher sales to customers in the logistics industry from the prior quarter.</span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;text-decoration:underline;">Gross Margin</span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Gross margin as a percentage of revenue was 74% for both years.  The unfavorable absorption of manufacturing overhead costs over the lower level of revenue was offset by favorable product mix. </span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">As of the date of this report, we expect gross margin as a percentage of revenue for the first quarter of 2020 to be relatively consistent with the gross margin reported in the fourth quarter of 2019.</span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;text-decoration:underline;">Operating Expenses</span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-style:italic;">Research, Development, and Engineering Expenses</span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Research, development, and engineering (RD&amp;E) expenses in 2019 increased by $2,982,000, or 3%, from the prior year as detailed in the table below (in thousands).</span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><div style="padding-left:0px;text-indent:0px;line-height:normal;padding-top:10px;"><table cellpadding="0" cellspacing="0" style="font-family:Times New Roman;font-size:10pt;width:100%;border-collapse:collapse;text-align:left;"><tr><td colspan="4"></td></tr><tr><td style="width:82%;"></td><td style="width:1%;"></td><td style="width:16%;"></td><td style="width:1%;"></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">RD&amp;E expenses in 2018</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">116,445</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Personnel-related costs</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">5,782</span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Incentive compensation plans</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">(3,852</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">)</span></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Other</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">1,052</span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">RD&amp;E expenses in 2019</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">119,427</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr></table></div></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">RD&amp;E expenses increased due to higher personnel-related costs resulting primarily from headcount additions to support new product initiatives, of which $1,013,000 related to a new team of deep learning engineers from the Company's acquisition of Sualab Co., Ltd. on October 16, 2019.  The consideration from this acquisition included deferred payments that are being recorded as compensation expense over four years from the closing date, which accounted for an additional $1,092,000 of the increase in personnel-related costs.  These increases were partially offset by lower expenses related to incentive compensation plans resulting from lower levels of achievement on performance plans that were set at the beginning of the year.  These annual incentive compensation plans will be reset with relevant performance goals for 2020, which would result in higher expense if the targeted achievements are met.</span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">RD&amp;E expenses as a percentage of revenue were 16% in 2019 compared to 14% in 2018.  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 time to market for new products to be critical to our revenue growth.  Therefore, we expect to continue to make significant RD&amp;E investments in the future, and currently intend to continue our product development plans during periods of lower revenue levels, which would result in a higher level of RD&amp;E expenses as a percentage of revenue in the first quarter of 2020 than the 16% in 2019.</span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-style:italic;">Selling, General, and Administrative Expenses</span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Selling, general, and administrative (SG&amp;A) expenses in 2019 increased by $11,143,000, or 4%, from the prior year as detailed in the table below (in thousands). </span></div><div style="line-height:120%;text-align:justify;font-size:10pt;"><div style="padding-left:0px;text-indent:0px;line-height:normal;padding-top:10px;"><table cellpadding="0" cellspacing="0" style="font-family:Times New Roman;font-size:10pt;width:100%;border-collapse:collapse;text-align:left;"><tr><td colspan="4"></td></tr><tr><td style="width:82%;"></td><td style="width:1%;"></td><td style="width:16%;"></td><td style="width:1%;"></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">SG&amp;A expenses in 2018</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">262,699</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Personnel-related costs</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">23,811</span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Incentive compensation plans</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">(8,742</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">)</span></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Foreign currency exchange rate changes</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">(5,085</span></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">)</span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">ERP project costs</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">(4,967</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">)</span></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Other</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">6,126</span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">SG&amp;A expenses in 2019</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">273,842</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr></table></div></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">SG&amp;A expenses increased due to higher personnel-related costs resulting primarily from headcount additions, principally sales personnel.  In addition to salaries and fringe benefits, these personnel-related costs included sales commissions and travel expenses related to the additional headcount.  These increases were partially offset by lower expenses related to incentive compensation plans resulting from lower levels of achievement on performance plans that were set at the beginning of the year.  These annual incentive compensation plans will be reset with relevant performance goals for 2020, which would result in higher expense if the targeted achievements are met.  Changes in foreign currency exchange rates also resulted in a lower level of expenses, as costs denominated in foreign currencies </span></div><div><br/></div><div style="text-align:center;"><div style="line-height:120%;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">20</span></div></div><hr style="page-break-after:always"></hr><div><div style="line-height:120%;font-size:9pt;"><a style="font-family:inherit;font-size:9pt;" href="#sCD449198B5695D85B5494CF5DF708C26"><span style="font-family:inherit;font-size:9pt;">Table of Contents</span></a></div></div><div><br/></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">were translated to U.S. Dollars at a lower rate.  Expenses were also lower due to project costs incurred in 2018 related to the Company's new Enterprise Resource Planning (ERP) system.  This system was placed into service during the third quarter of 2018, and therefore, similar costs were not incurred in 2019.  </span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;text-decoration:underline;">Non-operating Income (Expense)</span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">The Company recorded foreign currency losses of $509,000 in 2019 and $1,064,000 in 2018.  Foreign currency gains and losses result primarily from the revaluation and settlement of accounts receivable, accounts payable, and intercompany balances that are reported in one currency and collected in another.</span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Investment income increased by $4,974,000 or 34%, from the prior year.  The increase was due to higher yields on the Company's portfolio of debt securities, and to a lesser extent, higher average investment balances.</span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">The Company recorded other income of $1,212,000 in 2019 and other expense of $219,000 in 2018.  Other income (expense) includes fair value adjustments of contingent consideration liabilities arising from business acquisitions.  A higher level of fair value adjustments to income was recorded in 2019 related to the Company's acquisition of GVi Ventures, Inc., resulting from a lower level of revenue in the Americas' automotive industry. </span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;text-decoration:underline;">Income Tax Expense</span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">The Company&#8217;s effective tax rate was a benefit of 25% of pre-tax income in 2019 compared to an expense of 7% in 2018.</span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">The European Union has enacted a series of tax reform legislation over the past few years regarding low tax structures.  The Company made changes to its international tax structure in the fourth quarter of 2019 as a result of this legislation, and as a result, recorded a net discrete tax benefit of $87,500,000.  Management expects its current effective tax rate excluding discrete events to increase slightly in future years as a result of this change.</span></div><div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">On October 16, 2019, the Company acquired Sualab Co., Ltd., a provider of deep learning-based vision software based in Korea.  The Company migrated acquired intellectual property to certain subsidiaries in the fourth quarter of 2019, and as a result, recorded a discrete tax expense of $28,528,000.</span></div><div style="line-height:120%;padding-bottom:10px;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">In addition, the effective tax rate included a decrease in tax expense of $6,472,000 in 2019 and $8,488,000 in 2018 related to stock options, primarily from the excess tax benefit arising from the difference between the deduction for tax purposes and the compensation cost recognized for financial reporting purposes from stock option exercises.  The Company cannot predict the level of stock option exercises by employees in future periods.  </span></div><div style="line-height:120%;padding-bottom:10px;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Other discrete tax events included a net decrease in tax expense of $1,932,000 in 2019 and $1,847,000 in 2018, consisting primarily of the expiration of the statutes of limitations for certain reserves for income tax uncertainties and the final true-up of the prior year's tax accrual upon filing the related tax returns.</span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Excluding the impact of these discrete events, the Company&#8217;s effective tax rate was an expense of 16% of pre-tax income in 2019.  This represents an increase in the effective tax rate excluding discrete events from 14% in 2018 due to more of the Company's profits being earned and taxed in higher tax jurisdictions. </span></div><div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">Year Ended December&#160;31, 2018 Compared to Year Ended December&#160;31, 2017 </span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;text-decoration:underline;">Revenue</span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Revenue for the year ended December&#160;31, 2018 was $806,338,000 compared to $766,083,000 for the prior year, representing an increase of $40,255,000, or 5%.  Revenue in 2018 was impacted by lower sales in the consumer electronics industry primarily due to significantly lower revenue from a few large customers in OLED (organic light-emitting diode) display and smartphone manufacturing following a high level of investment from these customers in 2017.  Excluding sales to customers in the consumer electronics industry, revenue increased by approximately 18% from the prior year, driven by growth in the logistics industry of over 50%.  Changes in foreign currency exchange rates accounted for approximately 2% of the revenue increase from 2017 to 2018, primarily related to the translation of Euro-denominated and Chinese Yuan-denominated revenue to U.S. Dollars.</span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Revenue from customers based in the Americas increased by 24% in 2018 from the prior year driven by strong sales in the logistics industry.  Revenue from customers based in Greater China increased by 14% in 2018 from 2017, although this business was relatively flat in the fourth quarter of 2018 over the fourth quarter of 2017.  Revenue from customers based in Europe decreased by 5% and revenue from customers based in other Asia regions decreased by 8% in 2018 from the prior year.  Revenue for both the Europe and Asia regions outside of Greater China was impacted by the lower sales in the consumer electronics industry noted above.</span></div><div><br/></div><div style="text-align:center;"><div style="line-height:120%;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">21</span></div></div><hr style="page-break-after:always"></hr><div><div style="line-height:120%;font-size:9pt;"><a style="font-family:inherit;font-size:9pt;" href="#sCD449198B5695D85B5494CF5DF708C26"><span style="font-family:inherit;font-size:9pt;">Table of Contents</span></a></div></div><div><br/></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;text-decoration:underline;">Gross Margin</span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Gross margin as a percentage of revenue was 74.4% in 2018 compared to 75.6% in 2017.  The decrease in gross margin was due primarily to a higher percentage of total revenue from the logistics industry.  Certain sales in this industry are for application-specific customer solutions, which typically have lower gross margins due to deployment services. Unfavorable product mix for sales in the logistics industry also contributed to the lower gross margin percentage.</span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;text-decoration:underline;">Operating Expenses</span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-style:italic;">Research, Development, and Engineering Expenses</span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Research, development, and engineering (RD&amp;E) expenses in 2018 increased by $17,240,000, or 17%, from the prior year as detailed in the table below (in thousands).</span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><div style="padding-left:0px;text-indent:0px;line-height:normal;padding-top:10px;"><table cellpadding="0" cellspacing="0" style="font-family:Times New Roman;font-size:10pt;width:100%;border-collapse:collapse;text-align:left;"><tr><td colspan="4"></td></tr><tr><td style="width:82%;"></td><td style="width:1%;"></td><td style="width:16%;"></td><td style="width:1%;"></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">RD&amp;E expenses in 2017</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">99,205</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Personnel-related costs</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">10,173</span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Stock-based compensation expense</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">3,493</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Other</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">3,574</span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">RD&amp;E expenses in 2018</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">116,445</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr></table></div></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">RD&amp;E expenses increased due to higher personnel-related costs resulting primarily from headcount additions to support new product initiatives.  Stock-based compensation expense was higher than the prior year due to a higher valuation of stock options granted, as well as a decrease in the estimated forfeiture rate in 2018. </span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-style:italic;">Selling, General, and Administrative Expenses</span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Selling, general, and administrative (SG&amp;A) expenses in 2018 increased by $41,971,000, or 19%, from the prior year as detailed in the table below (in thousands). </span></div><div style="line-height:120%;text-align:justify;font-size:10pt;"><div style="padding-left:0px;text-indent:0px;line-height:normal;padding-top:10px;"><table cellpadding="0" cellspacing="0" style="font-family:Times New Roman;font-size:10pt;width:100%;border-collapse:collapse;text-align:left;"><tr><td colspan="4"></td></tr><tr><td style="width:82%;"></td><td style="width:1%;"></td><td style="width:16%;"></td><td style="width:1%;"></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">SG&amp;A expenses in 2017</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">220,728</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Personnel-related costs</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">36,569</span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Stock-based compensation expense</span></div><div style="font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><br/></span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">4,912</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Depreciation expense</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">3,744</span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Incentive compensation plans</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">(7,967</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">)</span></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Other</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">4,713</span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">SG&amp;A expenses in 2018</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">262,699</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr></table></div></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">SG&amp;A expenses increased due to higher personnel-related costs resulting primarily from headcount additions, principally sales personnel.  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 was higher than the prior year due to a higher valuation of stock options granted, as well as a decrease in the estimated forfeiture rate in 2018.  Depreciation expense increased from the prior year due primarily to information technology investments in infrastructure, security, and business applications, including a new Enterprise Resource Planning (ERP) system that was placed into service in the middle of 2018.  Offsetting these increases were lower expenses related to incentive compensation plans, including company bonuses and sales commissions, resulting from lower levels of achievement on performance plans that were set at the beginning of the year.</span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;text-decoration:underline;">Non-operating Income (Expense)</span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">The Company recorded foreign currency losses of $1,064,000 in 2018 and $1,601,000 in 2017.  The foreign currency gains and losses result primarily from the revaluation and settlement of accounts receivable, accounts payable, and intercompany balances that are reported in one currency and collected or paid in another. </span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Investment income increased by $5,173,000, or 54%, from the prior year.  The increase was primarily due to higher yields on the Company's portfolio of debt securities.</span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">The Company recorded other expense of $219,000 in 2018 and $338,000 in 2017.  Other income (expense) includes fair value adjustments of contingent consideration liabilities arising from business acquisitions, as well as  rental income, net of associated expenses, from leasing space in buildings adjacent to the Company&#8217;s corporate headquarters. </span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;text-decoration:underline;">Income Tax Expense</span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">The Company&#8217;s effective tax rate was 7% of the Company&#8217;s pre-tax income in 2018 compared to 34% in 2017.</span></div><div><br/></div><div style="text-align:center;"><div style="line-height:120%;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">22</span></div></div><hr style="page-break-after:always"></hr><div><div style="line-height:120%;font-size:9pt;"><a style="font-family:inherit;font-size:9pt;" href="#sCD449198B5695D85B5494CF5DF708C26"><span style="font-family:inherit;font-size:9pt;">Table of Contents</span></a></div></div><div><br/></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-style:italic;text-decoration:underline;">The Tax Act</span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">On December 22, 2017, the Tax Cuts and Jobs Act of 2017 (Tax Act) was signed into law.  The Tax Act resulted in a decrease in the U.S. federal statutory corporate tax rate from 35% to 21%.  As a result of the reduction in anticipated tax rate, the Company remeasured its deferred tax positions as of December 31, 2017 at the new enacted tax rate, and accordingly, recorded tax expense of $12,523,000 in 2017 from the associated write-down of its deferred tax assets.  In 2018, the Company recorded an increase in tax expense of $3,240,000 from the write-down of its deferred tax assets primarily relating to guidance under the Tax Act regarding stock-based compensation.</span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">The Tax Act subjects unrepatriated foreign earnings to a one-time transition tax, regardless of the Company's financial statement assertion related to indefinite reinvestment or whether the Company ultimately repatriates any of the foreign earnings, for which the Company recorded estimated tax expense of $101,379,000 in 2017.  In 2018, the Company revised its estimate of the one-time transition tax and recorded a decrease in tax expense of $11,028,000, which resulted in a revised estimate for the one-time transition tax of $90,351,000.</span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">The Tax Act replaces the current system of taxing U.S. corporations on repatriated foreign earnings with a partial territorial system that provides a 100% dividends-received deduction to domestic corporations for foreign-source dividends received from 10% or more owned foreign corporations.  The Company recorded a decrease in tax expense of $3,843,000 in 2017 from the reversal of the tax effect of a 2016 dividend paid in 2017 from a wholly-owned foreign subsidiary to its domestic entity.</span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-style:italic;text-decoration:underline;">Other Discrete Tax Events</span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">The effective tax rate also included a decrease in tax expense of $8,488,000 in 2018 and $38,569,000 in 2017 from the excess tax benefit arising from the difference between the deduction for tax purposes and the compensation cost recognized for financial reporting purposes from stock option exercises. </span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">In 2018, tax expense included a provision for state income taxes of $620,000 from a change in management's financial statement assertion related to the indefinite reinvestment of foreign earnings.  Management has determined that earnings from its legal entity in China will remain indefinitely reinvested to provide local funding for growth, and that earnings from all other jurisdictions will not be indefinitely reinvested, resulting in the additional state income tax provision.</span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Other discrete tax events resulted in a net decrease in tax expense of $2,467,000 in 2018 and $2,502,000 in 2017, consisting primarily of the final true-up of the prior year's tax accrual upon filing the related tax returns and the expiration of the statutes of limitations for certain reserves for income tax uncertainties. </span></div><div style="line-height:120%;padding-bottom:10px;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Excluding the impact of these discrete tax events, the Company's effective tax rate was 14% in 2018.</span></div><div><a id="sDE8F80E83D3255009C755B4691A6434A"></a></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">LIQUIDITY AND CAPITAL RESOURCES</span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">The Company has historically been able to generate positive cash flow from operations, which has funded its operating activities and other cash requirements and has resulted in an accumulated cash and investment balance of $845,353,000 as of </span><span style="font-family:Arial;font-size:10pt;">December&#160;31, 2019</span><span style="font-family:Arial;font-size:10pt;">.  The Company has established guidelines relative to credit ratings, diversification, and maturities of its investments that maintain liquidity.</span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">The Company&#8217;s cash requirements in 2019 were primarily met with positive cash flows from operations and the proceeds from stock option exercises.  Cash requirements consisted of operating activities, the repurchase of common stock, the payment of dividends, the acquisition of Sualab Co., Ltd., and capital expenditures.   Capital expenditures in 2019 totaled $21,745,000 and consisted primarily of computer hardware and software, manufacturing test equipment related to new product introductions, and improvements made to the Company's headquarters building in Natick, Massachusetts and various leased facilities.</span></div><div><br/></div><div style="text-align:center;"><div style="line-height:120%;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">23</span></div></div><hr style="page-break-after:always"></hr><div><div style="line-height:120%;font-size:9pt;"><a style="font-family:inherit;font-size:9pt;" href="#sCD449198B5695D85B5494CF5DF708C26"><span style="font-family:inherit;font-size:9pt;">Table of Contents</span></a></div></div><div><br/></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">The following table summarizes the Company&#8217;s material contractual obligations, both fixed and contingent (in thousands):</span></div><div style="line-height:120%;text-align:justify;font-size:10pt;"><div style="padding-left:0px;text-indent:0px;line-height:normal;padding-top:10px;"><table cellpadding="0" cellspacing="0" style="font-family:Times New Roman;font-size:10pt;width:100%;border-collapse:collapse;text-align:left;"><tr><td colspan="12"></td></tr><tr><td style="width:56%;"></td><td style="width:1%;"></td><td style="width:12%;"></td><td style="width:1%;"></td><td style="width:1%;"></td><td style="width:1%;"></td><td style="width:12%;"></td><td style="width:1%;"></td><td style="width:1%;"></td><td style="width:1%;"></td><td style="width:12%;"></td><td style="width:1%;"></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">Year Ended December&#160;31,</span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">Inventory Purchase Commitments</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">Leases</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">Total</span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">2020</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">7,707</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">6,565</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">14,272</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">2021</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">&#8212;</span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">5,558</span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">5,558</span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">2022</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">&#8212;</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">3,822</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">3,822</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">2023</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">&#8212;</span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">3,000</span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">3,000</span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">2024</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">&#8212;</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">927</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">927</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Thereafter</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">&#8212;</span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">310</span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">310</span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">7,707</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">20,182</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">27,889</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr></table></div></div><div style="line-height:120%;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><br/></span></div><div style="line-height:120%;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">In addition to the obligations described above, the following items may also result in future material uses of cash:</span></div><div style="line-height:120%;padding-top:12px;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">Stock Repurchases</span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">In October 2018, the Company's Board of Directors authorized the repurchase of $200,000,000 of the Company's common stock.  As of December 31, 2019, the Company repurchased 1,601,000 shares at a cost of $70,312,000 under this program, including 1,398,000 shares at a cost of $61,690,000 in 2019.  The Company may repurchase shares under this program in future periods, up to the remaining balance of $129,688,000, depending on a variety of factors, including, among other things, the impact of dilution from employee stock options, stock price, share availability, and cash requirements.</span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">Dividends</span></div><div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">The Company&#8217;s Board of Directors declared and paid cash dividends of $0.050 per share in the first, second, and third quarters of 2019.  The dividend was increased to $0.055 per share in the fourth quarter of 2019.  Total dividends amounted to $35,124,000 in 2019.  Future dividends will be declared at the discretion of the Company&#8217;s Board of Directors and will depend upon such factors as the Board deems relevant including, among other things, the Company&#8217;s ability to generate positive cash flows from operations.</span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">Business Acquisitions</span></div><div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">On October 16, 2019, the Company acquired Sualab Co., Ltd. for cash payments of $170,602,000 upon closing and deferred payments of $24,040,000 that may become payable on the fourth anniversary date of the closing, contingent upon the continued employment of key talent.  </span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Certain of the Company's business acquisitions that closed in 2017 and 2016 have contractual obligations for deferred cash payments, contingent cash payments tied to performance, and special incentive cash payments tied to employment, none of which are material individually or in the aggregate to the Company's cash flows.</span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">Income Taxes</span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">In conjunction with the acquisition of Sualab, the Company migrated acquired intellectual property to certain subsidiaries in the fourth quarter of 2019, which is expected to result in a foreign tax payment of approximately $30,000,000 in early 2020.</span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">The Tax Act subjected unrepatriated foreign earnings to a one-time transition tax, which is expected to result in tax payments of $51,113,000 starting in 2021 through 2025. </span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">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.  As of December 31, 2019, the Company had $845,353,000 in cash and investments.  In addition, the Company has no long-term debt and does not anticipate needing debt financing in the near future.  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="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">OFF-BALANCE SHEET ARRANGEMENTS</span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">As of </span><span style="font-family:Arial;font-size:10pt;">December&#160;31, 2019</span><span style="font-family:Arial;font-size:10pt;">, the Company has no off-balance sheet arrangements as defined in Item 303(a)(4)(ii) of Regulation S-K.</span></div><div><br/></div><div style="text-align:center;"><div style="line-height:120%;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">24</span></div></div><hr style="page-break-after:always"></hr><div><a id="s168E2A5CF8355405BF504D2072DA4871"></a></div><div><div style="line-height:120%;font-size:9pt;"><a style="font-family:inherit;font-size:9pt;" href="#sCD449198B5695D85B5494CF5DF708C26"><span style="font-family:inherit;font-size:9pt;">Table of Contents</span></a></div></div><div><br/></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">CRITICAL ACCOUNTING POLICIES AND ESTIMATES</span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Our discussion and analysis of the Company&#8217;s financial condition and results of operations are based upon 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.  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="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">Revenue Recognition</span></div><div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">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="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-style:italic;">Identifying the Contract with the Customer</span></div><div style="line-height:120%;padding-top:4px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">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.  </span></div><div style="line-height:120%;padding-top:8px;text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-style:italic;">Identifying the Performance Obligations in the Contract</span></div><div style="line-height:120%;padding-top:4px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">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 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, logistics, and automotive industries.   </span></div><div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">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="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">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="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-style:italic;">Determining the Transaction Price</span></div><div style="line-height:120%;padding-top:4px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">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="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">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 upon 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="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-style:italic;">Allocating the Transaction Price to the Performance Obligations</span></div><div style="line-height:120%;padding-top:4px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">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><br/></div><div style="text-align:center;"><div style="line-height:120%;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">25</span></div></div><hr style="page-break-after:always"></hr><div><div style="line-height:120%;font-size:9pt;"><a style="font-family:inherit;font-size:9pt;" href="#sCD449198B5695D85B5494CF5DF708C26"><span style="font-family:inherit;font-size:9pt;">Table of Contents</span></a></div></div><div><br/></div><div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-style:italic;">Recognizing Revenue When (or As) the Performance Obligations are Satisfied</span></div><div style="line-height:120%;padding-top:4px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">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="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">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 will 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="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">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 specifications.  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 specifications 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="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">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="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">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="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">Investments</span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">As of </span><span style="font-family:Arial;font-size:10pt;">December&#160;31, 2019</span><span style="font-family:Arial;font-size:10pt;">, the Company&#8217;s investment portfolio of debt securities totaled $669,594,000.  The debt securities are reported at fair value, with unrealized gains and losses, net of tax, recorded in shareholders&#8217; equity as other comprehensive income (loss) since these securities are designated as available-for-sale securities.  As of </span><span style="font-family:Arial;font-size:10pt;">December&#160;31, 2019</span><span style="font-family:Arial;font-size:10pt;">, the Company&#8217;s portfolio of debt securities had a net unrealized gain of $2,351,000.  Included in this net gain were gross unrealized losses totaling $65,000 of which $39,000 were in a loss position for less than twelve months and $26,000 were in a loss position for greater than twelve months.</span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">The Company applies a three-level valuation hierarchy for fair value measurements.  The categorization of assets and liabilities within the valuation hierarchy is based upon the lowest level of input that is significant to the measurement of fair value.  Level 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 upon 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.  Changes in the valuation methodology, interest rates, credit rates, or the market for these investments could result in changes to their fair values.  Changes to the Level of an investment within the fair value hierarchy are determined at the end of the reporting period.</span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">The Company&#8217;s debt securities are reported at fair value based upon 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 </span></div><div><br/></div><div style="text-align:center;"><div style="line-height:120%;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">26</span></div></div><hr style="page-break-after:always"></hr><div><div style="line-height:120%;font-size:9pt;"><a style="font-family:inherit;font-size:9pt;" href="#sCD449198B5695D85B5494CF5DF708C26"><span style="font-family:inherit;font-size:9pt;">Table of Contents</span></a></div></div><div><br/></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">of the asset, 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.  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.</span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Management monitors the carrying value of its debt securities compared to their fair value to determine whether an other-than-temporary impairment has occurred.  In considering whether a decline in fair value is other-than-temporary, we consider many factors, both qualitative and quantitative in nature, including the type of security, the credit rating of the security, the length of time the security has been in a loss position, the size of the loss position, our ability and intent to hold the security to expected recovery of value, and other meaningful information.  If a decline in fair value is determined to be other-than-temporary, an impairment charge would be recorded in current operations to reduce the carrying value of the investment to its fair value.  There were no other-than-temporary impairments of investments in 2019, 2018, or 2017.</span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">Accounts Receivable</span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">The Company maintains reserves against its accounts receivable for potential credit losses.  Ongoing credit evaluations of customers are performed and the Company has historically not experienced significant losses related to the collection of its accounts receivable.  Allowances for specific accounts determined to be at risk for collection are estimated by management taking into account the length of time the receivable has been outstanding, the customer&#8217;s current ability to pay its obligations to the Company, general economic and industry conditions, as well as various other factors. Global economic uncertainty may result in longer payment cycles and challenges in collecting accounts receivable balances, which make these estimates more judgmental.  An adverse change in any of these factors could result in higher than expected customer defaults and may result in the need for additional bad debt provisions.  As of </span><span style="font-family:Arial;font-size:10pt;">December&#160;31, 2019</span><span style="font-family:Arial;font-size:10pt;">, the Company&#8217;s reserve against accounts receivable was $1,821,000, or 2% of the gross accounts receivable balance.  A 10% difference in the reserve against accounts receivable as of </span><span style="font-family:Arial;font-size:10pt;">December&#160;31, 2019</span><span style="font-family:Arial;font-size:10pt;"> would have affected net income by approximately $153,000.</span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">Inventories</span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Inventories are stated at the lower of cost and net realizable value.  Net realizable value is the estimated selling price in the ordinary course of business, less readily predictable costs of completion, disposal, and transportation.  Management estimates excess and obsolescence exposures based upon assumptions about future demand, product transitions, and market conditions, and records reserves to reduce the carrying value of inventories to their net realizable value.  Volatility in the global economy makes these assumptions about future demand more judgmental.  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.  In addition, we may strategically enter into non-cancelable commitments with vendors to purchase materials for products in advance of demand to take advantage of favorable pricing or address concerns about the availability of future supplies and long lead times.  As of </span><span style="font-family:Arial;font-size:10pt;">December&#160;31, 2019</span><span style="font-family:Arial;font-size:10pt;">, the Company&#8217;s reserve for excess and obsolete inventory totaled $7,066,000, or 10% of the gross inventory balance.  A 10% difference in inventory reserves as of </span><span style="font-family:Arial;font-size:10pt;">December&#160;31, 2019</span><span style="font-family:Arial;font-size:10pt;"> would have affected net income by approximately $595,000.</span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">Leases</span></div><div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">The Company accounts for leases in accordance with Accounting Standard Codification (ASC) 842, "Leases."  The core principle of ASC 842 is that a lessee should recognize on the balance sheet the assets and liabilities that arise from leases.  The application of this rule requires the Company to determine whether a 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. 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="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">The Company must also determine whether the lease meets the criteria for classification as a finance lease by assessing whether the lease transfers ownership of the underlying asset to the Company by the end of the lease term, the lease grants the Company an option to purchase the underlying asset that the Company is reasonably certain to exercise, the lease term is for the major part of the remaining economic life of the underlying asset, 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, and 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.</span></div><div><br/></div><div style="text-align:center;"><div style="line-height:120%;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">27</span></div></div><hr style="page-break-after:always"></hr><div><div style="line-height:120%;font-size:9pt;"><a style="font-family:inherit;font-size:9pt;" href="#sCD449198B5695D85B5494CF5DF708C26"><span style="font-family:inherit;font-size:9pt;">Table of Contents</span></a></div></div><div><br/></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">Long-lived Assets</span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">The Company has long-lived assets, including property, plant, and equipment and acquired intangible assets.  These assets are susceptible to shortened estimated useful lives and changes in fair value due to changes in their use, market or economic changes, or other events or circumstances.  The Company evaluates the potential impairment of these long-lived assets whenever events or circumstances indicate their carrying value may not be recoverable.  Factors that could trigger an impairment review include historical or projected results that are less than the assumptions used in the original valuation of an acquired asset, a change in the Company&#8217;s business strategy or its use of an acquired asset, or negative economic or industry trends.</span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">If an event or circumstance indicates the carrying value of long-lived assets may not be recoverable, the Company assesses the recoverability of the assets by comparing the carrying value of the assets to the sum of the undiscounted future cash flows that the assets are expected to generate over their remaining economic lives.  If the carrying value exceeds the sum of the undiscounted future cash flows, the Company compares the fair value of the long-lived assets to the carrying value and records an impairment loss for the difference.  The Company generally estimates the fair value of its long-lived assets using the income approach based upon a discounted cash flow model.  The income approach requires the use of many assumptions and estimates including future revenues and expenses, discount factors, income tax rates, the identification of groups of assets with highly independent cash flows, and assets&#8217; economic lives.  Volatility in the global economy makes these assumptions and estimates more judgmental.  In 2017, the Company determined that the carrying value of the customer relationships arising from the acquisition of AQSense S.L. was impaired and reduced this value to zero, resulting in an impairment charge of $469,000.  The Company did not record an impairment charge related to long-lived assets in 2019 or 2018.  Actual future operating results and the remaining economic lives of our long-lived assets could differ from those used in assessing the recoverability of these assets and could result in an impairment of long-lived assets in future periods.</span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">Internal-use Software</span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">The accounting treatment for computer software developed for internal use depends upon 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.  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.  The application of these rules requires the use of judgment to determine when the project has reached the next stage of development, which costs are directly associated with the project, and when the asset is ready for its intended use.</span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">Goodwill</span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Management evaluates the potential impairment of goodwill annually each fourth quarter and whenever events or circumstances indicate the carrying value may not be recoverable.  Impairment of goodwill is the condition that exists when the carrying amount of a reporting unit exceeds its fair value.  The Company currently operates under one reporting unit which is the level at which the goodwill impairment analysis is performed.</span><span style="font-family:inherit;font-size:10pt;"> </span><span style="font-family:Arial;font-size:10pt;"> Determining the Company&#8217;s reporting units requires judgments regarding what constitutes a business and at what level discrete financial information is available and reviewed by management.</span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">The Company performs a qualitative assessment of goodwill to determine whether further impairment testing is necessary.  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 amount, the entity would proceed to perform a quantitative impairment test. Under this quantitative analysis, the Company compares the fair value of the reporting unit with its carrying value, including goodwill.  If the carrying amount 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 upon a discounted cash flow model.  In addition, the Company uses the market approach, which compares the reporting unit to publicly-traded companies and transactions involving similar businesses, to support the conclusions based upon the income approach.  The income approach requires the use of many assumptions and estimates including future revenues, expenses, capital expenditures, and working capital, as well as discount factors and income tax rates.</span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Factors that management considered in the qualitative assessment include macroeconomic conditions, industry and market considerations, overall financial performance (both current and projected), changes in management or strategy, </span></div><div><br/></div><div style="text-align:center;"><div style="line-height:120%;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">28</span></div></div><hr style="page-break-after:always"></hr><div><div style="line-height:120%;font-size:9pt;"><a style="font-family:inherit;font-size:9pt;" href="#sCD449198B5695D85B5494CF5DF708C26"><span style="font-family:inherit;font-size:9pt;">Table of Contents</span></a></div></div><div><br/></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">changes in the composition or carrying amount of net assets, and market capitalization. Based on the qualitative assessment, management does not believe that it is more likely than not that the carrying value of its reporting unit exceeds its fair value.  No impairment losses were recorded in 2019, 2018, or 2017.</span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">Warranty Obligations</span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">The Company records the estimated cost of fulfilling product warranties at the time of sale based upon 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.  While we engage in extensive product quality programs and processes, including actively monitoring and evaluating the quality of our component suppliers and third-party contract manufacturers, the Company&#8217;s warranty obligation is affected by product failure rates, material usage, and service delivery costs incurred in correcting a product failure.  An adverse change in any of these factors may result in the need for additional warranty provisions.  As of </span><span style="font-family:Arial;font-size:10pt;">December&#160;31, 2019</span><span style="font-family:Arial;font-size:10pt;">, the Company&#8217;s accrued warranty obligations amounted to $4,713,000.  A 10% difference in accrued warranty obligations as of </span><span style="font-family:Arial;font-size:10pt;">December&#160;31, 2019</span><span style="font-family:Arial;font-size:10pt;"> would have affected net income by approximately $397,000.</span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">Contingencies</span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Estimated losses from contingencies are accrued by management based upon whether a loss is probable and whether management has the ability to reasonably estimate the amount of the loss.  Estimating potential losses, or even a range of losses, is difficult and involves a great deal of judgment.  Management relies primarily on assessments made by its internal and external legal counsel to make the determination as to whether a loss contingency arising from litigation should be recorded or disclosed.  This analysis is performed each reporting period or when facts and circumstances dictate.  Should the resolution of a contingency result in a loss that we did not accrue because management did not believe that the loss was probable or capable of being reasonably estimated, then this loss would result in a charge to income in the period the contingency was resolved.  The Company did not have any significant accrued contingencies as of December&#160;31, 2019.</span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">Derivative Instruments</span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">In certain instances, the Company enters into forward contracts to hedge against foreign currency fluctuations.  The Company's forward contracts are reported at fair value based upon 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.  The Company's forward contracts are typically traded or executed in over-the-counter markets with a relatively high degree of pricing transparency.  The market participants are generally large commercial banks.</span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">The Company may enter into two types of hedges to manage foreign currency exchange rate risk.  The first are economic hedges which utilize foreign currency forward contracts to manage the exposure to fluctuations in foreign currency exchange rates arising primarily from foreign-denominated receivables and payables.  The gains and losses on these derivatives are intended to be offset by the changes in the fair value of the assets and liabilities being hedged.  These economic hedges are not designated as effective hedges, and therefore, do not qualify for effective hedge accounting.  The second are cash flow hedges which utilize foreign currency forward contracts to protect our budgeted revenues and expenses against foreign currency exchange rate changes compared to our budgeted rates.  These cash flow hedges are designated for hedge accounting, and therefore, the effective portion of the forward contract's gain or loss is reported in shareholders' equity as other comprehensive income (loss) and is reclassified into current operations as the hedged transaction impacts current operations.  Should these hedges fail to qualify for hedge accounting or be ineffective, the gain or loss on the forward contract would be reported in current operations immediately as opposed to when the hedged transaction impacts current operations.  This may result in material foreign currency gains or losses.</span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">Stock-Based Compensation</span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Compensation expense is recognized for all grants of stock options and restricted stock units.  Determining the appropriate valuation model and estimating the fair values of these grants requires the input of subjective assumptions, including expected stock price volatility, dividend yields, expected term, and forfeiture rates.  The expected volatility assumption is based partially upon the historical volatility of the Company&#8217;s common stock, which may or may not be a true indicator of future volatility.  The assumptions used in calculating the fair values of stock option grants represent management&#8217;s best estimates, but these estimates involve inherent uncertainties and the application of judgment.  As a result, if factors change and different assumptions are used, stock-based compensation expense could be significantly different from what the Company recorded in the current period.</span></div><div><br/></div><div style="text-align:center;"><div style="line-height:120%;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">29</span></div></div><hr style="page-break-after:always"></hr><div><div style="line-height:120%;font-size:9pt;"><a style="font-family:inherit;font-size:9pt;" href="#sCD449198B5695D85B5494CF5DF708C26"><span style="font-family:inherit;font-size:9pt;">Table of Contents</span></a></div></div><div><br/></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">Income Taxes</span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Significant judgment is required in determining worldwide income tax expense based upon tax laws in the various jurisdictions in which the Company operates.  The Company has established reserves for income taxes by applying the &#8220;more likely than not&#8221; criteria, under which the recognition threshold is met when an entity concludes that a tax position, based solely on its technical merits, is more likely than not to be sustained upon examination by the relevant tax authority.  All tax positions are analyzed periodically and adjustments are made as events occur that warrant modification, such as the completion of audits or the expiration of statutes of limitations, which may result in future charges or credits to income tax expense.</span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">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.  This process involves estimating the current tax liability, as well as assessing temporary differences arising from the different treatment of items for financial statement and tax purposes.  These differences result in deferred tax assets and liabilities, which are recorded on the Consolidated Balance Sheets.</span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">The Tax Act imposed a minimum tax on foreign earnings related to intangible assets, known as the Global Intangible Low-Taxed Income (GILTI) tax.  In the fourth quarter of 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 the third quarter of 2018 whereby the GILTI minimum tax was included in income tax expense as incurred on an annual basis. Management has determined that this change is considered preferable, based upon 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="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">In the fourth quarter of 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 upon the fair value of this intellectual property.  Also in the fourth quarter of 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 style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">Business Acquisitions</span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Business combinations are accounted for under the acquisition method of accounting.  Determining what constitutes a business to qualify as a business combination requires some judgment.  Allocating the purchase price requires the Company to identify and estimate the fair values of various assets acquired and liabilities assumed.  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 upon 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 upon 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 value of these contingent consideration liabilities are remeasured each reporting period, with changes in the fair value recorded in "Other income (expense)" on the Consolidated Statement of Operations.  The remeasured liability amount could be significantly different from the amount at the acquisition date, resulting in material charges or credits in future reporting periods. </span></div><div><a id="s4E8446FDB49B52DC86186FB8C52797D2"></a></div><div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">NEW PRONOUNCEMENTS</span></div><div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">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><a id="s2DA9EB6C83475BBAAA6BC1E2B1D9AE0D"></a></div><div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">ITEM&#160;7A:&#160;&#160;QUANTITATIVE AND QUALITATIVE DISCLOSURES ABOUT MARKET RISK</span></div><div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">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><br/></div><div style="text-align:center;"><div style="line-height:120%;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">30</span></div></div><hr style="page-break-after:always"></hr><div><div style="line-height:120%;font-size:9pt;"><a style="font-family:inherit;font-size:9pt;" href="#sCD449198B5695D85B5494CF5DF708C26"><span style="font-family:inherit;font-size:9pt;">Table of Contents</span></a></div></div><div><br/></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">Foreign Currency Risk</span></div><div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">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 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="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">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 may enter into two types of hedges to manage this risk.  The first are economic hedges which utilize foreign currency forward contracts with maturities of up to </span><span style="font-family:Arial;font-size:10pt;">45 days</span><span style="font-family:Arial;font-size:10pt;"> to manage the exposure to fluctuations in foreign currency exchange rates arising primarily from foreign-denominated receivables and payables.  The gains and losses on these derivatives are intended to be offset by the changes in the fair value of the assets and liabilities being hedged.  The second are cash flow hedges which utilize foreign currency forward contracts with maturities of up to </span><span style="font-family:Arial;font-size:10pt;">18 months</span><span style="font-family:Arial;font-size:10pt;"> to hedge specific forecasted transactions of the Company's foreign subsidiaries with the goal of protecting our budgeted revenues and expenses against foreign currency exchange rate changes compared to our budgeted rates.  The Company did not have any cash flow hedges as of December 31, 2019 and 2018. </span></div><div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">The Company had the following outstanding forward contracts (in thousands): </span></div><div style="line-height:120%;padding-top:6px;text-align:center;font-size:10pt;"><div style="padding-left:0px;text-indent:0px;line-height:normal;padding-top:10px;"><table cellpadding="0" cellspacing="0" style="font-family:Times New Roman;font-size:10pt;margin-left:auto;margin-right:auto;width:100%;border-collapse:collapse;text-align:left;"><tr><td colspan="20"></td></tr><tr><td style="width:17%;"></td><td style="width:12%;"></td><td style="width:1%;"></td><td style="width:1%;"></td><td style="width:10%;"></td><td style="width:1%;"></td><td style="width:7%;"></td><td style="width:1%;"></td><td style="width:7%;"></td><td style="width:1%;"></td><td style="width:1%;"></td><td style="width:12%;"></td><td style="width:1%;"></td><td style="width:1%;"></td><td style="width:10%;"></td><td style="width:1%;"></td><td style="width:7%;"></td><td style="width:1%;"></td><td style="width:7%;"></td><td style="width:1%;"></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="9" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:center;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">December 31, 2019</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="9" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:center;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">December 31, 2018</span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;text-decoration:underline;">Currency</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;text-decoration:underline;">Notional Value</span></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;text-decoration:underline;">USD Equivalent</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;text-decoration:underline;">High Rate</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;text-decoration:underline;">Low Rate</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;text-decoration:underline;">Notional Value</span></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;text-decoration:underline;">USD Equivalent</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;text-decoration:underline;">High Rate</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;text-decoration:underline;">Low Rate</span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:6px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:6px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:6px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:6px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:6px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:6px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:6px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:6px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:6px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:6px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td></tr><tr><td colspan="16" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-style:italic;">Derivatives Not Designated as Hedging Instruments:</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Korean Won</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">161,951,500</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">139,688</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">1,155</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">1,155</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">3,125,000</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">2,808</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">1,113</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">1,113</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Euro</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">18,000</span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">20,249</span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">0.8917</span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">0.8917</span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">23,000</span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">26,330</span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">0.8735</span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">0.8735</span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Japanese Yen</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">575,000</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">5,291</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">108.70</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">108.70</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">380,000</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">3,459</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">109.86</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">109.86</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Mexican Peso</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">80,000</span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">4,223</span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">18.94</span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">18.94</span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">&#8212;</span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">&#8212;</span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">&#8212;</span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">&#8212;</span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">British Pound</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">2,700</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">3,569</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">0.7541</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">0.7541</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">2,500</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">3,204</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">0.7803</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">0.7803</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Hungarian Forint</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">870,000</span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">2,962</span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">295.3</span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">295.3</span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">750,000</span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">2,685</span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">279.3</span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">279.3</span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Taiwanese Dollar</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">37,450</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">1,256</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">29.91</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">29.91</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">55,000</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">1,807</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">30.43</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">30.43</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Canadian Dollar</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">1,300</span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">1,000</span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">1.2989</span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">1.2989</span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">990</span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">726</span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">1.3639</span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">1.3639</span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Singapore Dollar</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">845</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">628</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">1.3461</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">1.3461</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">700</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">514</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">1.3628</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">1.3628</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr></table></div></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">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="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">The success of our foreign currency risk management program depends upon 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="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">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.  A significant portion of our revenues and expenses are denominated in the Euro, the Chinese Yuan, and the Japanese Yen.  Our predominant currency of sale is the U.S.&#160;Dollar in the Americas, the Euro and U.S. Dollar in Europe, the Yuan in Mainland China, the Yen in Japan, and the U.S.&#160;Dollar in other regions.  We estimate that approximately 44% of our sales in 2019 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, </span></div><div><br/></div><div style="text-align:center;"><div style="line-height:120%;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">31</span></div></div><hr style="page-break-after:always"></hr><div><div style="line-height:120%;font-size:9pt;"><a style="font-family:inherit;font-size:9pt;" href="#sCD449198B5695D85B5494CF5DF708C26"><span style="font-family:inherit;font-size:9pt;">Table of Contents</span></a></div></div><div><br/></div><div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">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="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">Interest Rate Risk</span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">The Company&#8217;s investment portfolio of debt securities includes corporate bonds, treasury bills, asset-backed securities, sovereign bonds, agency 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 </span><span style="font-family:Arial;font-size:10pt;">December&#160;31, 2019</span><span style="font-family:Arial;font-size:10pt;">, the fair value of the Company&#8217;s portfolio of debt securities amounted to $669,594,000 with amortized cost amounts totaling </span><span style="font-family:Arial;font-size:10pt;">$667,243,000</span><span style="font-family:Arial;font-size:10pt;">, maturities that do not exceed five years, and a yield to maturity of 2.2%.  Differences between</span><span style="font-family:Arial;font-size:10pt;color:#ee2724;"> </span><span style="font-family:Arial;font-size:10pt;">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.</span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">The Company&#8217;s investment policy allows investment in debt securities with effective maturities up to ten years, however   as of </span><span style="font-family:Arial;font-size:10pt;">December&#160;31, 2019</span><span style="font-family:Arial;font-size:10pt;">, 99% 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 </span><span style="font-family:Arial;font-size:10pt;">December&#160;31, 2019</span><span style="font-family:Arial;font-size:10pt;">, 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="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">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="line-height:120%;text-align:justify;font-size:10pt;"><div style="padding-left:0px;text-indent:0px;line-height:normal;padding-top:10px;"><table cellpadding="0" cellspacing="0" style="font-family:Times New Roman;font-size:10pt;width:100%;border-collapse:collapse;text-align:left;"><tr><td colspan="21"></td></tr><tr><td style="width:20%;"></td><td style="width:1%;"></td><td style="width:1%;"></td><td style="width:13%;"></td><td style="width:1%;"></td><td style="width:1%;"></td><td style="width:1%;"></td><td style="width:13%;"></td><td style="width:1%;"></td><td style="width:1%;"></td><td style="width:1%;"></td><td style="width:13%;"></td><td style="width:1%;"></td><td style="width:1%;"></td><td style="width:1%;"></td><td style="width:13%;"></td><td style="width:1%;"></td><td style="width:1%;"></td><td style="width:1%;"></td><td style="width:13%;"></td><td style="width:1%;"></td></tr><tr><td style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">Type of security</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="7" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:center;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">Valuation&#160;of&#160;securities&#160;given</span></div><div style="text-align:center;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">an&#160;interest&#160;rate&#160;decrease</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">No&#160;change&#160;in</span></div><div style="text-align:center;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">interest&#160;rates</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="7" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:center;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">Valuation&#160;of&#160;securities&#160;given</span></div><div style="text-align:center;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">an interest&#160;rate&#160;increase</span></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">(100 BP)</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">(50 BP)</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">50 BP</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">100 BP</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">Treasury bills</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">$</span></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">312,063</span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">$</span></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">310,656</span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">$</span></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">309,248</span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">$</span></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">307,841</span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">$</span></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">306,434</span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">Corporate bonds</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">214,029</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">213,064</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">212,098</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">211,134</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">210,169</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">Asset-backed&#160;securities</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">114,111</span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">113,596</span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">113,083</span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">112,567</span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">112,053</span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">Sovereign bonds</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">22,502</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">22,400</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">22,299</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">22,197</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">22,096</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">Municipal bonds</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">7,015</span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">6,984</span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">6,952</span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">6,921</span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">6,889</span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">Agency bonds</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">5,967</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">5,941</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">5,914</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">5,887</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">5,860</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:left;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;">675,687</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:left;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;">672,641</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:left;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;">669,594</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:left;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;">666,547</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:left;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;">663,501</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr></table></div></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><br/></span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><br/></span></div><div><br/></div><div style="text-align:center;"><div style="line-height:120%;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">32</span></div></div><hr style="page-break-after:always"></hr><div><a id="sA77FF2A8DA635F319729B0D685DEED95"></a></div><div><div style="line-height:120%;font-size:9pt;"><a style="font-family:inherit;font-size:9pt;" href="#sCD449198B5695D85B5494CF5DF708C26"><span style="font-family:inherit;font-size:9pt;">Table of Contents</span></a></div></div><div><br/></div><div style="line-height:120%;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">ITEM&#160;8:&#160;&#160;FINANCIAL STATEMENTS AND SUPPLEMENTARY DATA</span></div><div style="line-height:120%;padding-top:18px;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">INDEX TO FINANCIAL STATEMENTS AND SUPPLEMENTARY DATA</span></div><div style="line-height:120%;font-size:10pt;"><div style="padding-left:0px;text-indent:0px;line-height:normal;padding-top:10px;"><table cellpadding="0" cellspacing="0" style="font-family:Times New Roman;font-size:10pt;width:100%;border-collapse:collapse;text-align:left;"><tr><td colspan="2"></td></tr><tr><td style="width:90%;"></td><td style="width:10%;"></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">Consolidated Financial Statements:</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><a style="font-family:Arial;font-size:10pt;color:#000000;" href="#s19D34B3FEAF2534F9E626025DAF8D52A"><span style="font-family:Arial;font-size:10pt;color:#000000;">Report of Independent Registered Public Accounting Firm</span></a></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:right;font-size:10pt;"><a style="font-family:Arial;font-size:10pt;color:#000000;" href="#s19D34B3FEAF2534F9E626025DAF8D52A">34</a></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><a style="font-family:Arial;font-size:10pt;color:#000000;" href="#sF07A69BF461D5441B6687CDD3CDFE770"><span style="font-family:Arial;font-size:10pt;color:#000000;">Consolidated Statements of Operations for the Years Ended December&#160;31, 2019, 2018, and 2017</span></a></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:right;font-size:10pt;"><a style="font-family:Arial;font-size:10pt;color:#000000;" href="#sF07A69BF461D5441B6687CDD3CDFE770">37</a></div></td></tr><tr><td style="vertical-align:bottom;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><a style="font-family:Arial;font-size:10pt;color:#000000;" href="#s934E98CA1A095E419C168B0AAA6ACE7E"><span style="font-family:Arial;font-size:10pt;color:#000000;">Consolidated Statements of Comprehensive Income for the Years Ended December&#160;31, 2019, 2018, and 2017</span></a></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:right;font-size:10pt;"><a style="font-family:Arial;font-size:10pt;color:#000000;" href="#s934E98CA1A095E419C168B0AAA6ACE7E">38</a></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><a style="font-family:Arial;font-size:10pt;color:#000000;" href="#sF545DE387F6559FD857624576610DB2A"><span style="font-family:Arial;font-size:10pt;color:#000000;">Consolidated Balance Sheets as of December&#160;31, 2019 and 2018</span></a></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:right;font-size:10pt;"><a style="font-family:Arial;font-size:10pt;color:#000000;" href="#sF545DE387F6559FD857624576610DB2A">39</a></div></td></tr><tr><td style="vertical-align:bottom;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><a style="font-family:Arial;font-size:10pt;color:#000000;" href="#s6975FEE70F7B5C7FBA8264395BA3E759"><span style="font-family:Arial;font-size:10pt;color:#000000;">Consolidated Statements of Cash Flows for the Years Ended December&#160;31, 2019, 2018, and 2017</span></a></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:right;font-size:10pt;"><a style="font-family:Arial;font-size:10pt;color:#000000;" href="#s6975FEE70F7B5C7FBA8264395BA3E759">40</a></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><a style="font-family:Arial;font-size:10pt;color:#000000;" href="#sC49FD3782AA85EAC90F7E4FE572A4B45"><span style="font-family:Arial;font-size:10pt;color:#000000;">Consolidated Statements of Shareholders&#8217; Equity for the Years Ended December&#160;31, 2019, 2018, and 2017</span></a></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:right;font-size:10pt;"><a style="font-family:Arial;font-size:10pt;color:#000000;" href="#sC49FD3782AA85EAC90F7E4FE572A4B45">41</a></div></td></tr><tr><td style="vertical-align:bottom;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><a style="font-family:Arial;font-size:10pt;color:#000000;" href="#sDCADA852CFC65797B78720ED229DEAF2"><span style="font-family:Arial;font-size:10pt;color:#000000;">Notes to the Consolidated Financial Statements</span></a></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:right;font-size:10pt;"><a style="font-family:Arial;font-size:10pt;color:#000000;" href="#sDCADA852CFC65797B78720ED229DEAF2">42</a></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><a style="font-family:Arial;font-size:10pt;color:#000000;" href="#s6D6286318AC2577392B7E8E47A52C597"><span style="font-family:Arial;font-size:10pt;color:#000000;">Selected Quarterly Financial Data (unaudited)</span></a></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:right;font-size:10pt;"><a style="font-family:Arial;font-size:10pt;color:#000000;" href="#s6D6286318AC2577392B7E8E47A52C597">73</a></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">Financial Statement Schedule:</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><a style="font-family:Arial;font-size:10pt;color:#000000;" href="#s23839431187757F4810E6F30D5A0908E"><span style="font-family:Arial;font-size:10pt;color:#000000;">Schedule II &#8211; Valuation and Qualifying Accounts for the Years Ended December&#160;31, 2019, 2018, and 2017</span></a></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:right;font-size:10pt;"><a style="font-family:Arial;font-size:10pt;color:#000000;" href="#s23839431187757F4810E6F30D5A0908E">74</a></div></td></tr></table></div></div><div><br/></div><div style="text-align:center;"><div style="line-height:120%;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">33</span></div></div><hr style="page-break-after:always"></hr><div><a id="s19D34B3FEAF2534F9E626025DAF8D52A"></a></div><div><div style="line-height:120%;font-size:9pt;"><a style="font-family:inherit;font-size:9pt;" href="#sCD449198B5695D85B5494CF5DF708C26"><span style="font-family:inherit;font-size:9pt;">Table of Contents</span></a></div></div><div><br/></div><div style="line-height:120%;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">REPORT OF INDEPENDENT REGISTERED PUBLIC ACCOUNTING FIRM</span></div><div style="line-height:120%;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><br/></span></div><div style="line-height:120%;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><br/></span></div><div style="line-height:120%;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Board of Directors and Shareholders</span></div><div style="line-height:120%;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Cognex Corporation</span></div><div style="line-height:174%;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><br/></span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Opinion on the financial statements </span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">We have audited the accompanying consolidated balance sheets of Cognex Corporation (a Massachusetts corporation) and subsidiaries (the &#8220;Company&#8221;) as of </span><span style="font-family:Arial;font-size:10pt;">December&#160;31, 2019</span><span style="font-family:Arial;font-size:10pt;"> and </span><span style="font-family:Arial;font-size:10pt;">2018</span><span style="font-family:Arial;font-size:10pt;">, the related consolidated statements of operations, comprehensive income, shareholders&#8217; equity, and cash flows for each of the three years in the period ended</span><span style="font-family:Arial;font-size:9pt;"> </span><span style="font-family:Arial;font-size:10pt;">December&#160;31, 2019</span><span style="font-family:Arial;font-size:10pt;">, and the related notes and financial statement schedule included under Item 15(2) (collectively referred to as the &#8220;financial statements&#8221;). </span><span style="font-family:Arial;font-size:9pt;"> </span><span style="font-family:Arial;font-size:10pt;">In our opinion, the financial statements present fairly, in all material respects, the financial position of the Company as of </span><span style="font-family:Arial;font-size:10pt;">December&#160;31, 2019</span><span style="font-family:Arial;font-size:10pt;"> and </span><span style="font-family:Arial;font-size:10pt;">2018</span><span style="font-family:Arial;font-size:10pt;">, and the results of its operations and its cash flows for each of the three years in the period ended </span><span style="font-family:Arial;font-size:10pt;">December&#160;31, 2019</span><span style="font-family:Arial;font-size:10pt;">, in conformity with accounting principles generally accepted in the United States of America. </span></div><div style="line-height:120%;padding-bottom:18px;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">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 </span><span style="font-family:Arial;font-size:10pt;">December&#160;31, 2019</span><span style="font-family:Arial;font-size:10pt;">, based on criteria established in the 2013 </span><span style="font-family:Arial;font-size:10pt;font-style:italic;">Internal Control-Integrated Framework</span><span style="font-family:Arial;font-size:10pt;"> issued by the Committee of Sponsoring Organizations of the Treadway Commission (&#8220;COSO&#8221;), and our report dated </span><span style="font-family:Arial;font-size:10pt;">February&#160;13, 2020</span><span style="font-family:Arial;font-size:10pt;"> expressed an unqualified opinion. </span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Basis for opinion </span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">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="line-height:120%;padding-bottom:18px;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">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 supporting 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="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Critical audit matters</span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">The critical audit matters communicated below are matters arising from the current period audit of the financial statements that were 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 matters below, providing separate opinions on the critical audit matters or on the accounts or disclosures to which they relate. </span></div><div style="line-height:120%;padding-top:6px;text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-style:italic;">Revenue recognition - Application-Specific Customer Solutions</span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">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 control is transferred to the customer, which is when the solution is validated, and 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="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">The principal considerations for our determination that application-specific customer solutions revenue is a critical audit matter are that determining the timing of validation and that the agreed-upon specifications in the contract have been met relies on the use of management estimates and requires a higher degree of auditor subjectivity and judgment in designing and executing audit procedures. Accounting for application-specific customer solutions requires the Company to monitor and evaluate customer contracts on an ongoing basis to determine the point in time at which the agreed-upon specifications in the contract have been met.  </span></div><div><br/></div><div style="text-align:center;"><div style="line-height:120%;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">34</span></div></div><hr style="page-break-after:always"></hr><div><div style="line-height:120%;font-size:9pt;"><a style="font-family:inherit;font-size:9pt;" href="#sCD449198B5695D85B5494CF5DF708C26"><span style="font-family:inherit;font-size:9pt;">Table of Contents</span></a></div></div><div><br/></div><div style="line-height:120%;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><br/></span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Our audit procedures related to the revenue recognition of application-specific customer solutions included the following, among others.</span></div><table cellpadding="0" cellspacing="0" style="padding-top:6px;font-family:Times New Roman; font-size:10pt;"><tr><td style="width:48px;"></td><td></td></tr><tr><td style="vertical-align:top"><div style="line-height:120%;font-size:10pt;padding-left:24px;"><span style="font-family:Arial;font-size:10pt;">&#8226;</span></div></td><td style="vertical-align:top;"><div style="line-height:120%;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">We tested the design and operating effectiveness of internal controls related to the monitoring of application-specific customer solutions and the determination of the timing of revenue recognition.</span></div></td></tr></table><table cellpadding="0" cellspacing="0" style="padding-top:6px;font-family:Times New Roman; font-size:10pt;"><tr><td style="width:48px;"></td><td></td></tr><tr><td style="vertical-align:top"><div style="line-height:120%;font-size:10pt;padding-left:24px;"><span style="font-family:Arial;font-size:10pt;">&#8226;</span></div></td><td style="vertical-align:top;"><div style="line-height:120%;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">We evaluated management&#8217;s significant accounting policies related to these customer contracts for appropriate revenue recognition based on key terms and provisions.</span></div></td></tr></table><table cellpadding="0" cellspacing="0" style="padding-top:6px;font-family:Times New Roman; font-size:10pt;"><tr><td style="width:48px;"></td><td></td></tr><tr><td style="vertical-align:top"><div style="line-height:120%;font-size:10pt;padding-left:24px;"><span style="font-family:Arial;font-size:10pt;">&#8226;</span></div></td><td style="vertical-align:top;"><div style="line-height:120%;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">For a sample of transactions, we inspected source documents, including the customer contract or purchase order, third-party shipping information, invoice, and relevant communications.</span></div></td></tr></table><div style="line-height:120%;padding-top:6px;text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-style:italic;">Income Taxes - Fair Value of Intellectual Property and Change in Accounting Policy for Global Intangible Low-Taxed Income (GILTI)</span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">As described further in Notes 1 and 18 to the consolidated financial statements, effective December 31, 2019, the Company executed an intercompany sale of intellectual property that resulted in the establishment of a deferred tax asset and an income tax benefit in Ireland based on the fair value of the intellectual property. From a United States tax perspective the sale is disregarded and any future tax deduction in Ireland will not be regarded when determining Global Intangible Low-Taxed Income (GILTI). The Company determined that changing their accounting policy to recognize deferred tax assets and liabilities for basis differences that are expected to affect the amount of GILTI inclusion upon reversal is preferable. As a result of this change in accounting policy, the Company recorded a deferred tax liability and corresponding deferred income tax expense representing the future GILTI tax implications related to the fair value of intellectual property transferred to Ireland. We identified the Company&#8217;s determination of the fair value of the intellectual property sold and related change in accounting policy as a critical audit matter.  </span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">The principal considerations for our determination that the sale of intellectual property and change in accounting policy is a critical audit matter are that the determination of the fair value of the intellectual property relies on the use of management estimates related to forecasted future cash flows and discount rates. This requires management to evaluate historical results and expectations of future operating performance based on relevant information available to them regarding expectations of industry performance, as well as, expectations for company-specific performance. Determining the discount rate requires management to evaluate the appropriate risk premium based on their judgment of industry and company-specific risks. Significant management judgments and estimates utilized to determine the fair value are subject to estimation uncertainty and require significant auditor subjectivity in evaluating the reasonableness of those judgments and estimates. In addition, changing the Company&#8217;s accounting policy requires management to make a judgment as to the preferability of the accounting policy in relation to the financial statements taken as a whole. </span></div><div style="line-height:120%;padding-top:6px;text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Our audit procedures related to this critical audit matter included the following, among others.</span></div><table cellpadding="0" cellspacing="0" style="padding-top:6px;font-family:Times New Roman; font-size:10pt;"><tr><td style="width:48px;"></td><td></td></tr><tr><td style="vertical-align:top"><div style="line-height:120%;font-size:10pt;padding-left:24px;"><span style="font-family:Arial;font-size:10pt;">&#8226;</span></div></td><td style="vertical-align:top;"><div style="line-height:120%;text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">We tested the design and operating effectiveness of internal controls related to management&#8217;s determination of the fair value of the Company&#8217;s intellectual property, including controls over the determination of key inputs related to forecasting of future cash flows and determination of the discount rate.</span></div></td></tr></table><table cellpadding="0" cellspacing="0" style="padding-top:6px;font-family:Times New Roman; font-size:10pt;"><tr><td style="width:48px;"></td><td></td></tr><tr><td style="vertical-align:top"><div style="line-height:120%;font-size:10pt;padding-left:24px;"><span style="font-family:Arial;font-size:10pt;">&#8226;</span></div></td><td style="vertical-align:top;"><div style="line-height:120%;text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">We evaluated management&#8217;s historical ability to achieve forecasted revenue and operating results.</span></div></td></tr></table><table cellpadding="0" cellspacing="0" style="padding-top:6px;font-family:Times New Roman; font-size:10pt;"><tr><td style="width:48px;"></td><td></td></tr><tr><td style="vertical-align:top"><div style="line-height:120%;font-size:10pt;padding-left:24px;"><span style="font-family:Arial;font-size:10pt;">&#8226;</span></div></td><td style="vertical-align:top;"><div style="line-height:120%;text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">We compared management&#8217;s forecasts of future revenue and operating results to third-party industry projections and historical operating results.</span></div></td></tr></table><table cellpadding="0" cellspacing="0" style="padding-top:6px;font-family:Times New Roman; font-size:10pt;"><tr><td style="width:48px;"></td><td></td></tr><tr><td style="vertical-align:top"><div style="line-height:120%;font-size:10pt;padding-left:24px;"><span style="font-family:Arial;font-size:10pt;">&#8226;</span></div></td><td style="vertical-align:top;"><div style="line-height:120%;text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">We performed sensitivity analysis on the Company&#8217;s future cash flows and discount rate to evaluate the reasonableness of management&#8217;s forecasts.</span></div></td></tr></table><table cellpadding="0" cellspacing="0" style="padding-top:6px;font-family:Times New Roman; font-size:10pt;"><tr><td style="width:48px;"></td><td></td></tr><tr><td style="vertical-align:top"><div style="line-height:120%;font-size:10pt;padding-left:24px;"><span style="font-family:Arial;font-size:10pt;">&#8226;</span></div></td><td style="vertical-align:top;"><div style="line-height:120%;text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">We utilized a valuation specialist to assist in testing the Company&#8217;s discounted cash flow model and in evaluating the reasonableness of significant assumptions to the model, including the discount rate. </span></div></td></tr></table><table cellpadding="0" cellspacing="0" style="padding-top:6px;font-family:Times New Roman; font-size:10pt;"><tr><td style="width:48px;"></td><td></td></tr><tr><td style="vertical-align:top"><div style="line-height:120%;font-size:10pt;padding-left:24px;"><span style="font-family:Arial;font-size:10pt;">&#8226;</span></div></td><td style="vertical-align:top;"><div style="line-height:120%;text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">We consulted with our national office and utilized individuals with specialized skill and knowledge in income tax accounting in evaluating the preferability of the change in accounting policy.</span></div></td></tr></table><div style="line-height:120%;padding-top:6px;text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-style:italic;">Business Combinations - Acquisition of Sualab Co., Ltd.</span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">As described further in notes 1 and 21 to the consolidated financial statements, on October 16, 2019, the Company acquired Sualab Co., Ltd.  In accordance with ASC 805, </span><span style="font-family:Arial;font-size:10pt;font-style:italic;">Business Combinations</span><span style="font-family:Arial;font-size:10pt;">, the Company allocated the purchase price to the identifiable assets acquired based on their fair values. We identified the Company&#8217;s determination of the fair value of the identifiable intangible assets acquired as a critical audit matter.  </span></div><div style="line-height:120%;text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><br/></span></div><div><br/></div><div style="text-align:center;"><div style="line-height:120%;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">35</span></div></div><hr style="page-break-after:always"></hr><div><div style="line-height:120%;font-size:9pt;"><a style="font-family:inherit;font-size:9pt;" href="#sCD449198B5695D85B5494CF5DF708C26"><span style="font-family:inherit;font-size:9pt;">Table of Contents</span></a></div></div><div><br/></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">The principal considerations for our determination that the fair value of identifiable intangible assets acquired is a critical audit matter are that the determination of the fair value of the intangible assets relies on the use of management estimates related to forecasted future cash flows and discount rates. This requires management to evaluate historical results and expectations of future operating performance based on relevant information available to them regarding expectations of industry performance, as well as, expectations for company-specific performance. Determining the discount rate requires management to evaluate the appropriate risk premium based on their judgment of industry and company-specific risks. Significant management judgments and estimates utilized to determine the fair value are subject to estimation uncertainty and require significant auditor subjectivity in evaluating the reasonableness of those judgments and estimates.</span></div><div style="line-height:120%;padding-top:6px;text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Our audit procedures related to the determination of the fair value of acquired intangible assets included the following, among others.</span></div><table cellpadding="0" cellspacing="0" style="padding-top:6px;font-family:Times New Roman; font-size:10pt;"><tr><td style="width:48px;"></td><td></td></tr><tr><td style="vertical-align:top"><div style="line-height:120%;font-size:10pt;padding-left:24px;"><span style="font-family:Arial;font-size:10pt;">&#8226;</span></div></td><td style="vertical-align:top;"><div style="line-height:120%;text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">We tested the design and operating effectiveness of internal controls relating to management&#8217;s determination of the fair value of the acquired identifiable intangible assets, including controls over the determination of key inputs related to forecasting of future cash flows and determination of the discount rate.</span></div></td></tr></table><table cellpadding="0" cellspacing="0" style="padding-top:6px;font-family:Times New Roman; font-size:10pt;"><tr><td style="width:48px;"></td><td></td></tr><tr><td style="vertical-align:top"><div style="line-height:120%;font-size:10pt;padding-left:24px;"><span style="font-family:Arial;font-size:10pt;">&#8226;</span></div></td><td style="vertical-align:top;"><div style="line-height:120%;text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">We evaluated management&#8217;s historical ability to achieve forecasted revenue and operating results.</span></div></td></tr></table><table cellpadding="0" cellspacing="0" style="padding-top:6px;font-family:Times New Roman; font-size:10pt;"><tr><td style="width:48px;"></td><td></td></tr><tr><td style="vertical-align:top"><div style="line-height:120%;font-size:10pt;padding-left:24px;"><span style="font-family:Arial;font-size:10pt;">&#8226;</span></div></td><td style="vertical-align:top;"><div style="line-height:120%;text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">We compared management&#8217;s forecasts of future revenue and operating margin to third-party industry projections and historical operating results.</span></div></td></tr></table><table cellpadding="0" cellspacing="0" style="padding-top:6px;font-family:Times New Roman; font-size:10pt;"><tr><td style="width:48px;"></td><td></td></tr><tr><td style="vertical-align:top"><div style="line-height:120%;font-size:10pt;padding-left:24px;"><span style="font-family:Arial;font-size:10pt;">&#8226;</span></div></td><td style="vertical-align:top;"><div style="line-height:120%;text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">We performed sensitivity analysis on the Company&#8217;s future cash flows and discount rate to evaluate the reasonableness of management&#8217;s forecasts.</span></div></td></tr></table><table cellpadding="0" cellspacing="0" style="padding-top:6px;font-family:Times New Roman; font-size:10pt;"><tr><td style="width:48px;"></td><td></td></tr><tr><td style="vertical-align:top"><div style="line-height:120%;font-size:10pt;padding-left:24px;"><span style="font-family:Arial;font-size:10pt;">&#8226;</span></div></td><td style="vertical-align:top;"><div style="line-height:120%;text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">We utilized a valuation specialist to assist in testing the Company&#8217;s discounted cash flow model and in evaluating the reasonableness of significant assumptions to the model, including the discount rate.</span></div></td></tr></table><div style="line-height:120%;padding-top:24px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">/s/ GRANT THORNTON LLP</span></div><div style="line-height:174%;text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><br/></span></div><div style="line-height:174%;text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">We have served as the Company&#8217;s auditor since 2007. </span></div><div style="line-height:174%;text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><br/></span></div><div style="line-height:174%;text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Boston, Massachusetts</span></div><div style="line-height:120%;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">February&#160;13, 2020</span><span style="font-family:Arial;font-size:10pt;"> </span></div><div><br/></div><div style="text-align:center;"><div style="line-height:120%;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">36</span></div></div><hr style="page-break-after:always"></hr><div><a id="sF07A69BF461D5441B6687CDD3CDFE770"></a></div><div><div style="line-height:120%;font-size:9pt;"><a style="font-family:inherit;font-size:9pt;" href="#sCD449198B5695D85B5494CF5DF708C26"><span style="font-family:inherit;font-size:9pt;">Table of Contents</span></a></div></div><div><br/></div><div style="line-height:120%;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">COGNEX CORPORATION &#8211; CONSOLIDATED STATEMENTS OF OPERATIONS</span></div><div style="line-height:120%;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div><div style="line-height:120%;font-size:10pt;"><div style="padding-left:0px;text-indent:0px;line-height:normal;padding-top:10px;"><table cellpadding="0" cellspacing="0" style="font-family:Times New Roman;font-size:10pt;width:100%;border-collapse:collapse;text-align:left;"><tr><td colspan="12"></td></tr><tr><td style="width:57%;"></td><td style="width:1%;"></td><td style="width:12%;"></td><td style="width:1%;"></td><td style="width:1%;"></td><td style="width:1%;"></td><td style="width:11%;"></td><td style="width:1%;"></td><td style="width:1%;"></td><td style="width:1%;"></td><td style="width:12%;"></td><td style="width:1%;"></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;">&#160;</span></div></td><td colspan="11" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;">Year Ended December&#160;31,</span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-top:2px;padding-bottom:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;">2019</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-top:2px;padding-bottom:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">2018</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-top:2px;padding-bottom:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">2017</span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;">&#160;</span></div></td><td colspan="11" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">(In thousands, except per share amounts)</span></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:18px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:18px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:18px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:18px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:18px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:18px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Revenue</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">$</span></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span><ix:nonFraction id="d9036001e914-wk-Fact-B06BBDF776878FE4B2BC8095A17D5E83" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" contextRef="FD2019Q4YTD" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">725,625</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9036001e933-wk-Fact-D6E1BF373058FA9CCF958095A18F656B" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" contextRef="FD2018Q4YTD" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">806,338</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9036001e952-wk-Fact-53B0A8CFBD2030E181408095A17CDF23" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" contextRef="FD2017Q4YTD" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">766,083</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Cost of revenue</span></div></td><td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span><ix:nonFraction id="d9036001e968-wk-Fact-78D9CBF7F5FBB884E2EF8095A18F8656" name="us-gaap:CostOfGoodsAndServicesSold" contextRef="FD2019Q4YTD" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">189,754</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9036001e987-wk-Fact-9984E8A90AAC5E48F0B48095A17C1CB0" name="us-gaap:CostOfGoodsAndServicesSold" contextRef="FD2018Q4YTD" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">206,052</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9036001e1006-wk-Fact-A879BBCD8FD3C10B45AE8095A17CEEC6" name="us-gaap:CostOfGoodsAndServicesSold" contextRef="FD2017Q4YTD" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">187,289</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Gross margin</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span><ix:nonFraction id="d9036001e1027-wk-Fact-CB4B6CD2C3026A12615E8095A18F8E31" name="us-gaap:GrossProfit" contextRef="FD2019Q4YTD" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">535,871</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9036001e1046-wk-Fact-7C7C2B6A0A5890E4CBA78095A17B7702" name="us-gaap:GrossProfit" contextRef="FD2018Q4YTD" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">600,286</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9036001e1065-wk-Fact-5530F51EF2DDBC4F0B628095A18FFCF0" name="us-gaap:GrossProfit" contextRef="FD2017Q4YTD" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">578,794</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Research, development, and engineering expenses</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span><ix:nonFraction id="d9036001e1086-wk-Fact-71666BEAFCF4D72F0F618095A17BA924" name="us-gaap:ResearchAndDevelopmentExpense" contextRef="FD2019Q4YTD" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">119,427</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9036001e1105-wk-Fact-5F95449A6590E7CDF97C8095A17B024C" name="us-gaap:ResearchAndDevelopmentExpense" contextRef="FD2018Q4YTD" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">116,445</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9036001e1124-wk-Fact-DEB1B91A21F8A5B2903B8095A17B3717" name="us-gaap:ResearchAndDevelopmentExpense" contextRef="FD2017Q4YTD" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">99,205</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Selling, general, and administrative expenses</span></div></td><td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span><ix:nonFraction id="d9036001e1145-wk-Fact-1AE01E951AF9D69CB8FD8095A17BA6CC" name="us-gaap:SellingGeneralAndAdministrativeExpense" contextRef="FD2019Q4YTD" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">273,842</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9036001e1164-wk-Fact-199184EBED54F12F5A8C8095A17CCF70" name="us-gaap:SellingGeneralAndAdministrativeExpense" contextRef="FD2018Q4YTD" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">262,699</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9036001e1183-wk-Fact-EE9303A7334EC21565958095A18E9684" name="us-gaap:SellingGeneralAndAdministrativeExpense" contextRef="FD2017Q4YTD" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">220,728</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Operating income</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span><ix:nonFraction id="d9036001e1204-wk-Fact-B737D4567D44E36E1DCC8095A18EDF4E" name="us-gaap:OperatingIncomeLoss" contextRef="FD2019Q4YTD" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">142,602</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9036001e1223-wk-Fact-D464B39DBBEBD1BAF2648095A17B7743" name="us-gaap:OperatingIncomeLoss" contextRef="FD2018Q4YTD" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">221,142</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9036001e1242-wk-Fact-BE3502110251A23E64728095A18EDC1F" name="us-gaap:OperatingIncomeLoss" contextRef="FD2017Q4YTD" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">258,861</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Foreign currency gain (loss)</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>(<ix:nonFraction id="d9036001e1263-wk-Fact-DF5B4884170F7BC9930F8095A18E250E" name="us-gaap:ForeignCurrencyTransactionGainLossBeforeTax" contextRef="FD2019Q4YTD" unitRef="usd" decimals="-3" scale="3" sign="-" format="ixt:numdotdecimal">509</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">)</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>(<ix:nonFraction id="d9036001e1283-wk-Fact-82B86D0A41A9B39871D88095A17BBB5B" name="us-gaap:ForeignCurrencyTransactionGainLossBeforeTax" contextRef="FD2018Q4YTD" unitRef="usd" decimals="-3" scale="3" sign="-" format="ixt:numdotdecimal">1,064</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">)</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>(<ix:nonFraction id="d9036001e1303-wk-Fact-73D9FE538F1504EB08498095A17C0C83" name="us-gaap:ForeignCurrencyTransactionGainLossBeforeTax" contextRef="FD2017Q4YTD" unitRef="usd" decimals="-3" scale="3" sign="-" format="ixt:numdotdecimal">1,601</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">)</span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Investment income</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span><ix:nonFraction id="d9036001e1326-wk-Fact-4357D13F8FC1AE0345BE8095A18F93AF" name="us-gaap:InvestmentIncomeNonoperating" contextRef="FD2019Q4YTD" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">19,689</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9036001e1345-wk-Fact-3A7E5061A47F12C657FA8095A18F8726" name="us-gaap:InvestmentIncomeNonoperating" contextRef="FD2018Q4YTD" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">14,715</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9036001e1364-wk-Fact-A34F8327259264ABE82C8095A17BB013" name="us-gaap:InvestmentIncomeNonoperating" contextRef="FD2017Q4YTD" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">9,542</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Other income (expense)</span></div></td><td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span><ix:nonFraction id="d9036001e1385-wk-Fact-486A2DD462459033FE358095A17C5F4B" name="us-gaap:OtherNonoperatingIncomeExpense" contextRef="FD2019Q4YTD" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">1,212</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>(<ix:nonFraction id="d9036001e1404-wk-Fact-7F375505EB662D5E912E8095A18E95F1" name="us-gaap:OtherNonoperatingIncomeExpense" contextRef="FD2018Q4YTD" unitRef="usd" decimals="-3" scale="3" sign="-" format="ixt:numdotdecimal">219</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">)</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>(<ix:nonFraction id="d9036001e1424-wk-Fact-98F7101D0E2A99A121A68095A18F643F" name="us-gaap:OtherNonoperatingIncomeExpense" contextRef="FD2017Q4YTD" unitRef="usd" decimals="-3" scale="3" sign="-" format="ixt:numdotdecimal">338</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">)</span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Income before income tax expense</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span><ix:nonFraction id="d9036001e1446-wk-Fact-11356283C594F0D652E68095A17C4913" name="us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments" contextRef="FD2019Q4YTD" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">162,994</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9036001e1465-wk-Fact-7BFF4678DA05B7DEAC038095A17C7226" name="us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments" contextRef="FD2018Q4YTD" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">234,574</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9036001e1484-wk-Fact-285AAD060675169875B78095A17C86D2" name="us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments" contextRef="FD2017Q4YTD" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">266,464</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Income tax expense (benefit)</span></div></td><td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>(<ix:nonFraction id="d9036001e1505-wk-Fact-F330DB1560316A224D428095A18EC1D6" name="us-gaap:IncomeTaxExpenseBenefit" contextRef="FD2019Q4YTD" unitRef="usd" decimals="-3" scale="3" sign="-" format="ixt:numdotdecimal">40,871</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">)</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9036001e1525-wk-Fact-874D0B25503039A801968095A17B9ED6" name="us-gaap:IncomeTaxExpenseBenefit" contextRef="FD2018Q4YTD" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">15,307</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9036001e1544-wk-Fact-3C978299D4B7227ABE098095A17CACD6" name="us-gaap:IncomeTaxExpenseBenefit" contextRef="FD2017Q4YTD" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">89,752</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Net income</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span><ix:nonFraction id="d9036001e1570-wk-Fact-7A2F7F14108749D162188095A17CA207" name="us-gaap:NetIncomeLoss" contextRef="FD2019Q4YTD" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">203,865</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9036001e1589-wk-Fact-1AC51EC9E270CE718EBD8095A18E3121" name="us-gaap:NetIncomeLoss" contextRef="FD2018Q4YTD" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">219,267</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9036001e1608-wk-Fact-B391D3198F1CC415B9AA8095A17B728A" name="us-gaap:NetIncomeLoss" contextRef="FD2017Q4YTD" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">176,712</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:18px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:18px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:18px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:18px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:18px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:18px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Net Income per weighted-average common and common-equivalent share (1):</span></div></td><td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td></tr><tr><td style="vertical-align:top;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Basic</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span><ix:nonFraction id="d9036001e1753-wk-Fact-EFE5EB1E695D8201B7288095A17CDD88" name="us-gaap:EarningsPerShareBasic" contextRef="FD2019Q4YTD" unitRef="usdPerShare" decimals="2" scale="0" format="ixt:numdotdecimal">1.19</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9036001e1772-wk-Fact-1AB42C7C55BD2C60AD3E8095A18E18F6" name="us-gaap:EarningsPerShareBasic" contextRef="FD2018Q4YTD" unitRef="usdPerShare" decimals="2" scale="0" format="ixt:numdotdecimal">1.27</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9036001e1791-wk-Fact-D60F4B1AF3F17360DF718095A18FC454" name="us-gaap:EarningsPerShareBasic" contextRef="FD2017Q4YTD" unitRef="usdPerShare" decimals="2" scale="0" format="ixt:numdotdecimal">1.02</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Diluted</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span><ix:nonFraction id="d9036001e1812-wk-Fact-3ED4FD47A316C81069598095A18E3CB0" name="us-gaap:EarningsPerShareDiluted" contextRef="FD2019Q4YTD" unitRef="usdPerShare" decimals="2" scale="0" format="ixt:numdotdecimal">1.16</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9036001e1831-wk-Fact-9463F86170C2FBD637FF8095A18E94A7" name="us-gaap:EarningsPerShareDiluted" contextRef="FD2018Q4YTD" unitRef="usdPerShare" decimals="2" scale="0" format="ixt:numdotdecimal">1.24</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9036001e1850-wk-Fact-81BF010C8161F7A66CD18095A18E4F0F" name="us-gaap:EarningsPerShareDiluted" contextRef="FD2017Q4YTD" unitRef="usdPerShare" decimals="2" scale="0" format="ixt:numdotdecimal">0.98</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:10px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:10px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:10px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:10px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:10px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:10px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Weighted-average common and common-equivalent shares outstanding (1):</span></div></td><td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td></tr><tr><td style="vertical-align:top;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Basic</span></div></td><td colspan="2" style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span><ix:nonFraction id="d9036001e1991-wk-Fact-7088F56A600431DA334F8095A18F2AB4" name="us-gaap:WeightedAverageNumberOfSharesOutstandingBasic" contextRef="FD2019Q4YTD" unitRef="shares" decimals="-3" scale="3" format="ixt:numdotdecimal">171,194</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9036001e2010-wk-Fact-D3C52957E5467B5121488095A18E5877" name="us-gaap:WeightedAverageNumberOfSharesOutstandingBasic" contextRef="FD2018Q4YTD" unitRef="shares" decimals="-3" scale="3" format="ixt:numdotdecimal">172,333</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9036001e2029-wk-Fact-F100B30FB31E7AE1BF208095A17B8FE2" name="us-gaap:WeightedAverageNumberOfSharesOutstandingBasic" contextRef="FD2017Q4YTD" unitRef="shares" decimals="-3" scale="3" format="ixt:numdotdecimal">173,287</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Diluted</span></div></td><td colspan="2" style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span><ix:nonFraction id="d9036001e2050-wk-Fact-D5734F0FAB5E10C2BF8F8095A18E8C75" name="us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding" contextRef="FD2019Q4YTD" unitRef="shares" decimals="-3" scale="3" format="ixt:numdotdecimal">175,269</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9036001e2069-wk-Fact-8C961D180BA7FE998E388095A17C4AED" name="us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding" contextRef="FD2018Q4YTD" unitRef="shares" decimals="-3" scale="3" format="ixt:numdotdecimal">177,406</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9036001e2088-wk-Fact-F0CCA5ACB6DDF0BB1FA98095A18E3C36" name="us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding" contextRef="FD2017Q4YTD" unitRef="shares" decimals="-3" scale="3" format="ixt:numdotdecimal">179,551</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:14px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:14px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:14px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:14px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:14px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:14px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Cash dividends per common share (1)</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span><ix:nonFraction id="d9036001e2176-wk-Fact-D15F9102957FCCB7DBF48095A17BDF77" name="us-gaap:CommonStockDividendsPerShareCashPaid" contextRef="FD2019Q4YTD" unitRef="usdPerShare" decimals="4" scale="0" format="ixt:numdotdecimal">0.2050</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9036001e2195-wk-Fact-97BE5E31F5F06BC065418095A17CCEAE" name="us-gaap:CommonStockDividendsPerShareCashPaid" contextRef="FD2018Q4YTD" unitRef="usdPerShare" decimals="4" scale="0" format="ixt:numdotdecimal">0.1850</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9036001e2214-wk-Fact-024F97ED08CD171B6D408095A17B6DC2" name="us-gaap:CommonStockDividendsPerShareCashPaid" contextRef="FD2017Q4YTD" unitRef="usdPerShare" decimals="4" scale="0" format="ixt:numdotdecimal">0.1675</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:18px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:18px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:18px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:18px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:18px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:18px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td></tr><tr><td colspan="12" style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">(1) Prior period results have been adjusted to reflect the two-for-one stock split effected in the form of a stock dividend which occurred in the fourth quarter of 2017.</span></div><div style="font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><br/></span></div></td></tr></table></div></div><div style="line-height:120%;text-align:left;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;"><br/></span></div><div style="line-height:120%;text-align:left;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;"><br/></span></div><div style="line-height:120%;text-align:center;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><br/></span></div><div style="line-height:120%;text-align:center;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><br/></span></div><div style="line-height:120%;text-align:center;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><br/></span></div><div style="line-height:120%;text-align:center;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><br/></span></div><div style="line-height:120%;text-align:center;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><br/></span></div><div style="line-height:120%;text-align:center;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><br/></span></div><div style="line-height:120%;text-align:center;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><br/></span></div><div style="line-height:120%;text-align:center;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><br/></span></div><div style="line-height:120%;text-align:center;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><br/></span></div><div style="line-height:120%;text-align:center;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><br/></span></div><div style="line-height:120%;text-align:center;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><br/></span></div><div style="line-height:120%;text-align:center;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><br/></span></div><div style="line-height:120%;text-align:center;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><br/></span></div><div style="line-height:120%;text-align:center;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><br/></span></div><div style="line-height:120%;text-align:center;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><br/></span></div><div style="line-height:120%;text-align:center;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><br/></span></div><div style="line-height:120%;text-align:center;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><br/></span></div><div style="line-height:120%;text-align:center;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><br/></span></div><div style="line-height:120%;text-align:center;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><br/></span></div><div style="line-height:120%;text-align:center;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">The accompanying notes are an integral part of these consolidated financial statements.</span></div><div><br/></div><div style="text-align:center;"><div style="line-height:120%;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">37</span></div></div><hr style="page-break-after:always"></hr><div><a id="s934E98CA1A095E419C168B0AAA6ACE7E"></a></div><div><div style="line-height:120%;font-size:9pt;"><a style="font-family:inherit;font-size:9pt;" href="#sCD449198B5695D85B5494CF5DF708C26"><span style="font-family:inherit;font-size:9pt;">Table of Contents</span></a></div></div><div><br/></div><div style="line-height:120%;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">COGNEX CORPORATION &#8211; CONSOLIDATED STATEMENTS OF COMPREHENSIVE INCOME</span></div><div style="line-height:120%;font-size:9pt;"><span style="font-family:inherit;font-size:9pt;">&#160;</span></div><div style="line-height:120%;font-size:10pt;"><div style="padding-left:0px;text-indent:0px;line-height:normal;padding-top:10px;"><table cellpadding="0" cellspacing="0" style="font-family:Times New Roman;font-size:10pt;width:100%;border-collapse:collapse;text-align:left;"><tr><td colspan="12"></td></tr><tr><td style="width:59%;"></td><td style="width:1%;"></td><td style="width:11%;"></td><td style="width:1%;"></td><td style="width:1%;"></td><td style="width:1%;"></td><td style="width:11%;"></td><td style="width:1%;"></td><td style="width:1%;"></td><td style="width:1%;"></td><td style="width:11%;"></td><td style="width:1%;"></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;">&#160;</span></div></td><td colspan="11" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;">Year Ended December&#160;31,</span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-top:2px;padding-bottom:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;">2019</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-top:2px;padding-bottom:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">2018</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-top:2px;padding-bottom:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">2017</span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;">&#160;</span></div></td><td colspan="11" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">(In thousands)</span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Net income</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span><ix:nonFraction id="d9042542e852-wk-Fact-7A2F7F14108749D162188095A17CA207" name="us-gaap:NetIncomeLoss" contextRef="FD2019Q4YTD" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">203,865</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9042542e871-wk-Fact-1AC51EC9E270CE718EBD8095A18E3121" name="us-gaap:NetIncomeLoss" contextRef="FD2018Q4YTD" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">219,267</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9042542e890-wk-Fact-B391D3198F1CC415B9AA8095A17B728A" name="us-gaap:NetIncomeLoss" contextRef="FD2017Q4YTD" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">176,712</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Other comprehensive income (loss), net of tax:</span></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Cash flow hedges:</span></div></td><td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td></tr><tr><td style="vertical-align:top;padding-left:20px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Net unrealized gain (loss), net of tax of $0, $0, and ($5) in 2019, 2018, and 2017, respectively</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span><ix:nonFraction id="d9042542e1030-wk-Fact-BB6BB7DF765C521927758095A18669CA" name="us-gaap:OtherComprehensiveIncomeUnrealizedGainLossOnDerivativesArisingDuringPeriodNetOfTax" contextRef="FD2019Q4YTD" unitRef="usd" decimals="-3" scale="3" format="ixt:zerodash">&#8212;</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9042542e1049-wk-Fact-33F2D1AB128BAA66657D8095A1983EC3" name="us-gaap:OtherComprehensiveIncomeUnrealizedGainLossOnDerivativesArisingDuringPeriodNetOfTax" contextRef="FD2018Q4YTD" unitRef="usd" decimals="-3" scale="3" format="ixt:zerodash">&#8212;</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9042542e1068-wk-Fact-9D3EEBB7BBBF4F7B14EC8095A186B36F" name="us-gaap:OtherComprehensiveIncomeUnrealizedGainLossOnDerivativesArisingDuringPeriodNetOfTax" contextRef="FD2017Q4YTD" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">4</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:20px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Reclassification of net realized (gain) loss into current operations</span></div></td><td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span><ix:nonFraction id="d9042542e1089-wk-Fact-0F3F016BCDD39E85BD148095A198FA01" name="us-gaap:OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIOnDerivativesNetOfTax" contextRef="FD2019Q4YTD" unitRef="usd" decimals="-3" scale="3" format="ixt:zerodash">&#8212;</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9042542e1108-wk-Fact-B2A1FA798D75EEA235B78095A186BE0A" name="us-gaap:OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIOnDerivativesNetOfTax" contextRef="FD2018Q4YTD" unitRef="usd" decimals="-3" scale="3" format="ixt:zerodash">&#8212;</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>(<ix:nonFraction id="d9042542e1127-wk-Fact-6950DADA9B2258A903F38095A199F7D8" name="us-gaap:OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIOnDerivativesNetOfTax" contextRef="FD2017Q4YTD" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">41</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">)</span></div></td></tr><tr><td style="vertical-align:top;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Net change related to cash flow hedges</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span><ix:nonFraction id="d9042542e1149-wk-Fact-5DC0993CB052E0C61D6C8095A198E350" name="us-gaap:OtherComprehensiveIncomeLossDerivativesQualifyingAsHedgesNetOfTax" contextRef="FD2019Q4YTD" unitRef="usd" decimals="-3" scale="3" format="ixt:zerodash">&#8212;</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9042542e1168-wk-Fact-500A77C0EAF51EF3D7FF8095A186C5D0" name="us-gaap:OtherComprehensiveIncomeLossDerivativesQualifyingAsHedgesNetOfTax" contextRef="FD2018Q4YTD" unitRef="usd" decimals="-3" scale="3" format="ixt:zerodash">&#8212;</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>(<ix:nonFraction id="d9042542e1187-wk-Fact-89FC3E1E80FACF7761F68095A19851CE" name="us-gaap:OtherComprehensiveIncomeLossDerivativesQualifyingAsHedgesNetOfTax" contextRef="FD2017Q4YTD" unitRef="usd" decimals="-3" scale="3" sign="-" format="ixt:numdotdecimal">37</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">)</span></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:21px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:21px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:21px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:21px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:21px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:21px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td></tr><tr><td style="vertical-align:top;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Available-for-sale investments:</span></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:20px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Net unrealized gain (loss), net of tax of $515, ($188), and $2 in 2019, 2018, and 2017, respectively</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span><ix:nonFraction id="d9042542e1334-wk-Fact-C853D237AA029C0D23CB8095A198A145" name="us-gaap:OtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax" contextRef="FD2019Q4YTD" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">5,219</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>(<ix:nonFraction id="d9042542e1353-wk-Fact-1EB19325C22C5963C4518095A198EE2F" name="us-gaap:OtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax" contextRef="FD2018Q4YTD" unitRef="usd" decimals="-3" scale="3" sign="-" format="ixt:numdotdecimal">1,185</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">)</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9042542e1373-wk-Fact-2649AF33EDB459FBDB228095A186AC77" name="us-gaap:OtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax" contextRef="FD2017Q4YTD" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">703</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;padding-left:20px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Reclassification of net realized (gain) loss into current operations</span></div></td><td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>(<ix:nonFraction id="d9042542e1394-wk-Fact-1567E4B2250861FD85178095A199E5ED" name="us-gaap:OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax" contextRef="FD2019Q4YTD" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">1,452</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">)</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>(<ix:nonFraction id="d9042542e1414-wk-Fact-D5FB4181AACCF5EC38828095A1853D44" name="us-gaap:OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax" contextRef="FD2018Q4YTD" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">501</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">)</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>(<ix:nonFraction id="d9042542e1434-wk-Fact-365F7222BF418912580A8095A198B1DD" name="us-gaap:OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax" contextRef="FD2017Q4YTD" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">829</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">)</span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Net change related to available-for-sale investments</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span><ix:nonFraction id="d9042542e1456-wk-Fact-4B8E6662D18C0F367A328095A185FA4A" name="us-gaap:OtherComprehensiveIncomeAvailableforsaleSecuritiesAdjustmentNetOfTaxPortionAttributableToParent" contextRef="FD2019Q4YTD" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">3,767</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>(<ix:nonFraction id="d9042542e1475-wk-Fact-4B6DCA4B258059F0C9838095A1981ED7" name="us-gaap:OtherComprehensiveIncomeAvailableforsaleSecuritiesAdjustmentNetOfTaxPortionAttributableToParent" contextRef="FD2018Q4YTD" unitRef="usd" decimals="-3" scale="3" sign="-" format="ixt:numdotdecimal">1,686</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">)</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>(<ix:nonFraction id="d9042542e1495-wk-Fact-FA1C1AFC6E6FE48251718095A1989A15" name="us-gaap:OtherComprehensiveIncomeAvailableforsaleSecuritiesAdjustmentNetOfTaxPortionAttributableToParent" contextRef="FD2017Q4YTD" unitRef="usd" decimals="-3" scale="3" sign="-" format="ixt:numdotdecimal">126</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">)</span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:16px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:16px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:16px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:16px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:16px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:16px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Foreign currency translation adjustments:</span></div></td><td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td></tr><tr><td style="vertical-align:top;padding-left:20px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Foreign currency translation adjustments</span></div></td><td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>(<ix:nonFraction id="d9042542e1641-wk-Fact-C43E1D54DB9ED91AE9648095A16B2041" name="us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax" contextRef="FD2019Q4YTD" unitRef="usd" decimals="-3" scale="3" sign="-" format="ixt:numdotdecimal">541</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">)</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>(<ix:nonFraction id="d9042542e1661-wk-Fact-926E0D61C87F4EC5C4DE8095A171F3CA" name="us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax" contextRef="FD2018Q4YTD" unitRef="usd" decimals="-3" scale="3" sign="-" format="ixt:numdotdecimal">4,216</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">)</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9042542e1681-wk-Fact-CBF8BB82F455EF0A025A8095A1983172" name="us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax" contextRef="FD2017Q4YTD" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">21,992</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Net change related to foreign currency translation adjustments</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>(<ix:nonFraction id="d9042542e1702-wk-Fact-DDE79517041AA1B612118095A199E2DD" name="us-gaap:OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent" contextRef="FD2019Q4YTD" unitRef="usd" decimals="-3" scale="3" sign="-" format="ixt:numdotdecimal">541</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">)</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>(<ix:nonFraction id="d9042542e1722-wk-Fact-7A3C112C9ACA452CB46B8095A199505D" name="us-gaap:OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent" contextRef="FD2018Q4YTD" unitRef="usd" decimals="-3" scale="3" sign="-" format="ixt:numdotdecimal">4,216</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">)</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9042542e1742-wk-Fact-274F920878F8541C39658095A198DE49" name="us-gaap:OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent" contextRef="FD2017Q4YTD" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">21,992</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:20px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:20px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:20px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:20px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:20px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:20px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Other comprehensive income (loss), net of tax</span></div></td><td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span><ix:nonFraction id="d9042542e1825-wk-Fact-975646D53AB2829CD3A98095A1869741" name="us-gaap:OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent" contextRef="FD2019Q4YTD" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">3,226</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>(<ix:nonFraction id="d9042542e1844-wk-Fact-26FDB14E33A69E401B118095A1700EA5" name="us-gaap:OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent" contextRef="FD2018Q4YTD" unitRef="usd" decimals="-3" scale="3" sign="-" format="ixt:numdotdecimal">5,902</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">)</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9042542e1864-wk-Fact-21013AE4D974869D2C1A8095A198B81B" name="us-gaap:OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent" contextRef="FD2017Q4YTD" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">21,829</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Total comprehensive income</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span><ix:nonFraction id="d9042542e1890-wk-Fact-6AA66EEEB8A51EA1021A8095A1860354" name="us-gaap:ComprehensiveIncomeNetOfTax" contextRef="FD2019Q4YTD" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">207,091</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9042542e1909-wk-Fact-B57BB779ECE4C5375A7D8095A199F8B6" name="us-gaap:ComprehensiveIncomeNetOfTax" contextRef="FD2018Q4YTD" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">213,365</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9042542e1928-wk-Fact-DC2AC57B0A4D997155698095A1716FBA" name="us-gaap:ComprehensiveIncomeNetOfTax" contextRef="FD2017Q4YTD" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">198,541</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr></table></div></div><div style="line-height:120%;font-size:72pt;"><span style="font-family:inherit;font-size:72pt;">&#160;</span></div><div style="line-height:120%;font-size:72pt;"><span style="font-family:inherit;font-size:72pt;"><br/></span></div><div style="line-height:120%;padding-top:6px;text-align:center;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><br/></span></div><div style="line-height:120%;padding-top:6px;text-align:center;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><br/></span></div><div style="line-height:120%;padding-top:6px;text-align:center;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><br/></span></div><div style="line-height:120%;padding-top:6px;text-align:center;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><br/></span></div><div style="line-height:120%;padding-top:6px;text-align:center;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><br/></span></div><div style="line-height:120%;text-align:center;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><br/></span></div><div style="line-height:120%;text-align:center;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><br/></span></div><div style="line-height:120%;text-align:center;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><br/></span></div><div style="line-height:120%;text-align:center;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><br/></span></div><div style="line-height:120%;text-align:center;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><br/></span></div><div style="line-height:120%;text-align:center;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><br/></span></div><div style="line-height:120%;text-align:center;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">The accompanying notes are an integral part of these consolidated financial statements.</span></div><div><br/></div><div style="text-align:center;"><div style="line-height:120%;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">38</span></div></div><hr style="page-break-after:always"></hr><div><a id="sF545DE387F6559FD857624576610DB2A"></a></div><div><div style="line-height:120%;font-size:9pt;"><a style="font-family:inherit;font-size:9pt;" href="#sCD449198B5695D85B5494CF5DF708C26"><span style="font-family:inherit;font-size:9pt;">Table of Contents</span></a></div></div><div><br/></div><div style="line-height:120%;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">COGNEX CORPORATION &#8211; CONSOLIDATED BALANCE SHEETS</span></div><div style="line-height:120%;font-size:10pt;"><span style="font-family:inherit;font-size:9pt;">&#160;</span><div style="padding-left:0px;text-indent:0px;line-height:normal;padding-top:10px;"><table cellpadding="0" cellspacing="0" style="font-family:Times New Roman;font-size:10pt;width:100%;border-collapse:collapse;text-align:left;"><tr><td colspan="8"></td></tr><tr><td style="width:69%;"></td><td style="width:1%;"></td><td style="width:13%;"></td><td style="width:1%;"></td><td style="width:1%;"></td><td style="width:1%;"></td><td style="width:13%;"></td><td style="width:1%;"></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="7" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:center;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">December&#160;31,</span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-top:2px;padding-bottom:2px;"><div style="text-align:center;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">2019</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-top:2px;padding-bottom:2px;"><div style="text-align:center;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">2018</span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="7" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:center;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">(In thousands)</span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">ASSETS</span></div></td><td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Current assets:</span></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:28px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Cash and cash equivalents</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span><ix:nonFraction id="d9040405e866-wk-Fact-D8633F16D33E937CA4698095A1867C44" name="us-gaap:CashAndCashEquivalentsAtCarryingValue" contextRef="FI2019Q4" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">171,431</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9040405e885-wk-Fact-0113DCF56F3641DF075C8095A187DA3D" name="us-gaap:CashAndCashEquivalentsAtCarryingValue" contextRef="FI2018Q4" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">108,212</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;padding-left:28px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Current investments</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span><ix:nonFraction id="d9040405e900-wk-Fact-A2C8F9A16077219CCA148095A1878B63" name="us-gaap:AvailableForSaleSecuritiesDebtSecuritiesCurrent" contextRef="FI2019Q4" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">240,470</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9040405e919-wk-Fact-8D57C642684FB1404A548095A171A66F" name="us-gaap:AvailableForSaleSecuritiesDebtSecuritiesCurrent" contextRef="FI2018Q4" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">427,348</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:28px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Accounts receivable, less reserves of $1,821 and $1,646 in 2019 and 2018, respectively</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span><ix:nonFraction id="d9040405e939-wk-Fact-FA795AF59BFFEA95042A8095A186B9AB" name="us-gaap:AccountsReceivableNetCurrent" contextRef="FI2019Q4" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">103,447</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9040405e958-wk-Fact-041828E1544D114CFEE38095A1868ADF" name="us-gaap:AccountsReceivableNetCurrent" contextRef="FI2018Q4" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">119,172</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;padding-left:28px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Unbilled revenue</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span><ix:nonFraction id="d9040405e978-wk-Fact-E51F52370F21B26DAFE28095A18DC706" name="us-gaap:UnbilledReceivablesCurrent" contextRef="FI2019Q4" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">4,782</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9040405e997-wk-Fact-23A96ED4F43F7628AC208095A1876C4D" name="us-gaap:UnbilledReceivablesCurrent" contextRef="FI2018Q4" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">8,312</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:28px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Inventories</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span><ix:nonFraction id="d9040405e1017-wk-Fact-F82BFB3E5789124E33788095A18C509C" name="us-gaap:InventoryNet" contextRef="FI2019Q4" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">60,261</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9040405e1036-wk-Fact-8C11A83E6F7307E19AA68095A18DF44A" name="us-gaap:InventoryNet" contextRef="FI2018Q4" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">83,282</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;padding-left:28px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Prepaid expenses and other current assets</span></div></td><td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span><ix:nonFraction id="d9040405e1056-wk-Fact-B19FA8561C7646F75F4B8095A18D5190" name="us-gaap:PrepaidExpenseAndOtherAssetsCurrent" contextRef="FI2019Q4" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">26,840</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9040405e1075-wk-Fact-BC9AF9410612559CD1408095A18CABBB" name="us-gaap:PrepaidExpenseAndOtherAssetsCurrent" contextRef="FI2018Q4" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">34,000</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:44px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Total current assets</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span><ix:nonFraction id="d9040405e1096-wk-Fact-5AB6EE4813CA36C6D6968095A1870EC7" name="us-gaap:AssetsCurrent" contextRef="FI2019Q4" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">607,231</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9040405e1115-wk-Fact-297D5F967A8929974E498095A18739A7" name="us-gaap:AssetsCurrent" contextRef="FI2018Q4" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">780,326</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Non-current investments</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span><ix:nonFraction id="d9040405e1135-wk-Fact-DF042BAB946939B448EB8095A187F505" name="us-gaap:LongTermInvestments" contextRef="FI2019Q4" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">433,452</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9040405e1154-wk-Fact-D0E7E30446713E43A7318095A187F414" name="us-gaap:LongTermInvestments" contextRef="FI2018Q4" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">262,039</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Property, plant, and equipment, net</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span><ix:nonFraction id="d9040405e1174-wk-Fact-F511143035B105728FC78095A199C654" name="us-gaap:PropertyPlantAndEquipmentNet" contextRef="FI2019Q4" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">89,443</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9040405e1193-wk-Fact-BA9205C02800F53EC4D88095A186B6D1" name="us-gaap:PropertyPlantAndEquipmentNet" contextRef="FI2018Q4" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">91,396</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Operating lease assets</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span><ix:nonFraction id="d9040405e1213-wk-Fact-FA2BFEFBEA7088F69CC7F3C8D744A446" name="us-gaap:OperatingLeaseRightOfUseAsset" contextRef="FI2019Q4" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">17,522</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9040405e1232-wk-Fact-AAF78FD080140BEB73F115E89D6B5193" name="us-gaap:OperatingLeaseRightOfUseAsset" contextRef="FI2018Q4" unitRef="usd" decimals="-3" scale="3" format="ixt:zerodash">&#8212;</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Goodwill</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span><ix:nonFraction id="d9040405e1252-wk-Fact-81F94E54D4E5D51829658095A18DD1F9" name="us-gaap:Goodwill" contextRef="FI2019Q4" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">243,445</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9040405e1271-wk-Fact-0E49DD13D0281181743F8095A1866117" name="us-gaap:Goodwill" contextRef="FI2018Q4" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">113,208</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Intangible assets, net</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span><ix:nonFraction id="d9040405e1291-wk-Fact-2EC1FDBB90E3477C8D588095A186CF61" name="us-gaap:IntangibleAssetsNetExcludingGoodwill" contextRef="FI2019Q4" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">39,490</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9040405e1310-wk-Fact-56BD9BB0167E5592E4378095A1875821" name="us-gaap:IntangibleAssetsNetExcludingGoodwill" contextRef="FI2018Q4" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">10,113</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Deferred income taxes</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span><ix:nonFraction id="d9040405e1330-wk-Fact-2D8FC969E128A40EF74E8095A1876609" name="us-gaap:DeferredTaxAssetsNetNoncurrent" contextRef="FI2019Q4" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">449,519</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9040405e1349-wk-Fact-6C905471FCC5433BC9038095A18DDEA0" name="us-gaap:DeferredTaxAssetsNetNoncurrent" contextRef="FI2018Q4" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">28,660</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Other assets</span></div></td><td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span><ix:nonFraction id="d9040405e1369-wk-Fact-018CB81B94DD3185D0418095A18620DB" name="us-gaap:OtherAssetsNoncurrent" contextRef="FI2019Q4" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">5,833</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9040405e1388-wk-Fact-CCF7105BA27E3C7174EE8095A18D66E0" name="us-gaap:OtherAssetsNoncurrent" contextRef="FI2018Q4" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">3,925</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:44px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Total assets</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span><ix:nonFraction id="d9040405e1413-wk-Fact-7B98B62531FB45E491FF8095A18D4216" name="us-gaap:Assets" contextRef="FI2019Q4" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">1,885,935</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9040405e1432-wk-Fact-D71507BC79C71C351F368095A18DBC3D" name="us-gaap:Assets" contextRef="FI2018Q4" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">1,289,667</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:18px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:18px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:18px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:18px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">LIABILITIES AND SHAREHOLDERS&#8217; EQUITY</span></div></td><td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Current liabilities:</span></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:28px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Accounts payable</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span><ix:nonFraction id="d9040405e1576-wk-Fact-0E5E9304C3523D94E89A8095A186FC2E" name="us-gaap:AccountsPayableCurrent" contextRef="FI2019Q4" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">17,866</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9040405e1595-wk-Fact-846D113C77E0DEAC221E8095A18DA0E9" name="us-gaap:AccountsPayableCurrent" contextRef="FI2018Q4" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">16,230</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;padding-left:28px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Accrued expenses</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span><ix:nonFraction id="d9040405e1610-wk-Fact-7D43CCBB2F2D2C0F66F78095A18D6138" name="us-gaap:AccruedLiabilitiesCurrent" contextRef="FI2019Q4" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">52,199</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9040405e1629-wk-Fact-08CBA18F4B05B33341B48095A18D7935" name="us-gaap:AccruedLiabilitiesCurrent" contextRef="FI2018Q4" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">60,220</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:28px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Accrued income taxes</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span><ix:nonFraction id="d9040405e1649-wk-Fact-222C5DD6E4A5991D0EB98095A187E160" name="us-gaap:AccruedIncomeTaxesCurrent" contextRef="FI2019Q4" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">30,333</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9040405e1668-wk-Fact-5198E6505346F36B079A8095A187BB9A" name="us-gaap:AccruedIncomeTaxesCurrent" contextRef="FI2018Q4" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">5,062</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;padding-left:28px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Deferred revenue and customer deposits</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span><ix:nonFraction id="d9040405e1688-wk-Fact-B00B536426D8C662A8C08095A18D619F" name="us-gaap:ContractWithCustomerLiabilityCurrent" contextRef="FI2019Q4" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">14,432</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9040405e1707-wk-Fact-2F24B1342D743CBA5DE98095A1878266" name="us-gaap:ContractWithCustomerLiabilityCurrent" contextRef="FI2018Q4" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">9,845</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:28px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Operating lease liabilities</span></div></td><td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span><ix:nonFraction id="d9040405e1727-wk-Fact-EA0CE907035CE12BC8AAF3CA5DF78AD7" name="us-gaap:OperatingLeaseLiabilityCurrent" contextRef="FI2019Q4" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">5,647</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9040405e1746-wk-Fact-9A27E71960B107BD695115E9BABA035D" name="us-gaap:OperatingLeaseLiabilityCurrent" contextRef="FI2018Q4" unitRef="usd" decimals="-3" scale="3" format="ixt:zerodash">&#8212;</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;padding-left:44px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Total current liabilities</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span><ix:nonFraction id="d9040405e1766-wk-Fact-A0CC62E526B6414CFF128095A187C835" name="us-gaap:LiabilitiesCurrent" contextRef="FI2019Q4" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">120,477</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9040405e1785-wk-Fact-BAE57259347B02D0A0338095A18D2900" name="us-gaap:LiabilitiesCurrent" contextRef="FI2018Q4" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">91,357</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Non-current operating lease liabilities</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span><ix:nonFraction id="d9040405e1805-wk-Fact-DE584AA2D460B2B6BFE0F3CB2F36DF72" name="us-gaap:OperatingLeaseLiabilityNoncurrent" contextRef="FI2019Q4" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">12,326</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9040405e1824-wk-Fact-87B819E8544F90CA4B9E15E9EA4A9293" name="us-gaap:OperatingLeaseLiabilityNoncurrent" contextRef="FI2018Q4" unitRef="usd" decimals="-3" scale="3" format="ixt:zerodash">&#8212;</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Deferred income taxes</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span><ix:nonFraction id="d9040405e1844-wk-Fact-62F4DB6E3A9EC3A5C4758095A18DB24B" name="us-gaap:DeferredIncomeTaxLiabilitiesNet" contextRef="FI2019Q4" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">332,344</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9040405e1863-wk-Fact-54DB1BB69A2CAEC7A4EF8095A18D8196" name="us-gaap:DeferredIncomeTaxLiabilitiesNet" contextRef="FI2018Q4" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">962</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Reserve for income taxes</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span><ix:nonFraction id="d9040405e1883-wk-Fact-DA663987ECFB01A58A7F8095A186C97C" name="us-gaap:LiabilityForUncertainTaxPositionsNoncurrent" contextRef="FI2019Q4" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">11,563</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9040405e1902-wk-Fact-B143EE273FA7989FF8518095A186EBCE" name="us-gaap:LiabilityForUncertainTaxPositionsNoncurrent" contextRef="FI2018Q4" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">7,106</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Non-current accrued income taxes</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span><ix:nonFraction id="d9040405e1922-wk-Fact-DA2CC88FD6B7535886B18095A1860297" name="us-gaap:AccruedIncomeTaxesNoncurrent" contextRef="FI2019Q4" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">51,113</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9040405e1941-wk-Fact-C7EAD3C3D5DD48B844CD8095A18DAE56" name="us-gaap:AccruedIncomeTaxesNoncurrent" contextRef="FI2018Q4" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">51,113</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Other liabilities</span></div></td><td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span><ix:nonFraction id="d9040405e1962-wk-Fact-2D02FB07A95DAB0B1FCB8095A1867D1D" name="us-gaap:OtherLiabilitiesNoncurrent" contextRef="FI2019Q4" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">2,402</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9040405e1981-wk-Fact-831FC86250D4F5BF1FC98095A18DC3A7" name="us-gaap:OtherLiabilitiesNoncurrent" contextRef="FI2018Q4" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">3,866</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;padding-left:44px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Total liabilities</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span><ix:nonFraction id="d9040405e2001-wk-Fact-C9F419259C3EB1FDF9238095A16B58E9" name="us-gaap:Liabilities" contextRef="FI2019Q4" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">530,225</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9040405e2020-wk-Fact-204FB052023E23AAF7978095A18DECF3" name="us-gaap:Liabilities" contextRef="FI2018Q4" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">154,404</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:18px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:18px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:18px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:18px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Commitments and contingencies (Note 11)</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9040405e2081-wk-Fact-7A7FC418CE102E8DDB878095A18DA645" name="us-gaap:CommitmentsAndContingencies" contextRef="FI2019Q4" unitRef="usd" xsi:nil="true" scale="3" format="ixt:nocontent"></ix:nonFraction></span><br/></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9040405e2099-wk-Fact-0878CC5CDDDC1657F7AD8095A186E032" name="us-gaap:CommitmentsAndContingencies" contextRef="FI2018Q4" unitRef="usd" xsi:nil="true" scale="3" format="ixt:nocontent"></ix:nonFraction></span><br/></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Shareholders&#8217; equity:</span></div></td><td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:28px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Preferred stock,$.01 par value - Authorized: 400 shares in 2019 and 2018, respectively, no shares issued and outstanding</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span><ix:nonFraction id="d9040405e2159-wk-Fact-C6C7CF2B4CFC44D4B3D8F3CBF50D7230" name="us-gaap:PreferredStockValueOutstanding" contextRef="FI2019Q4" unitRef="usd" decimals="-3" scale="3" format="ixt:zerodash">&#8212;</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9040405e2178-wk-Fact-7727FA4C6D25AF5DB744F3CBF5124D92" name="us-gaap:PreferredStockValueOutstanding" contextRef="FI2018Q4" unitRef="usd" decimals="-3" scale="3" format="ixt:zerodash">&#8212;</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:28px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Common stock, $.002 par value &#8211; Authorized: 300,000 shares in 2019 and 2018, respectively, issued and outstanding: 172,440 and 170,820 shares in 2019 and 2018, respectively</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span><ix:nonFraction id="d9040405e2198-wk-Fact-970D0363E95C80B572A18095A171517A" name="us-gaap:CommonStockValueOutstanding" contextRef="FI2019Q4" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">345</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9040405e2217-wk-Fact-B9E0BA7E171FD1966E9B8095A1711B4D" name="us-gaap:CommonStockValueOutstanding" contextRef="FI2018Q4" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">342</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;padding-left:28px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Additional paid-in capital</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span><ix:nonFraction id="d9040405e2237-wk-Fact-C4676F8C5ED79176AE7A8095A18778D5" name="us-gaap:AdditionalPaidInCapitalCommonStock" contextRef="FI2019Q4" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">639,372</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9040405e2256-wk-Fact-EFB92590A628974DEAC08095A186EC71" name="us-gaap:AdditionalPaidInCapitalCommonStock" contextRef="FI2018Q4" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">529,208</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:28px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Retained earnings</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span><ix:nonFraction id="d9040405e2276-wk-Fact-B4B3C6B41A482608B4F88095A1872DF0" name="us-gaap:RetainedEarningsAccumulatedDeficit" contextRef="FI2019Q4" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">753,268</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9040405e2295-wk-Fact-71E5C10282AFE1A65F108095A1866662" name="us-gaap:RetainedEarningsAccumulatedDeficit" contextRef="FI2018Q4" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">646,214</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;padding-left:28px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Accumulated other comprehensive loss, net of tax</span></div></td><td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>(<ix:nonFraction id="d9040405e2315-wk-Fact-3E92D646063F869A10FD8095A1869862" name="us-gaap:AccumulatedOtherComprehensiveIncomeLossNetOfTax" contextRef="FI2019Q4" unitRef="usd" decimals="-3" scale="3" sign="-" format="ixt:numdotdecimal">37,275</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">)</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>(<ix:nonFraction id="d9040405e2335-wk-Fact-1BC0B78B2841249D93428095A187B894" name="us-gaap:AccumulatedOtherComprehensiveIncomeLossNetOfTax" contextRef="FI2018Q4" unitRef="usd" decimals="-3" scale="3" sign="-" format="ixt:numdotdecimal">40,501</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">)</span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:44px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Total shareholders&#8217; equity</span></div></td><td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span><ix:nonFraction id="d9040405e2356-wk-Fact-751ED66657CA2A1D86818095A1860236" name="us-gaap:StockholdersEquity" contextRef="FI2019Q4" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">1,355,710</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9040405e2375-wk-Fact-F33407DFC1DCE288A4348095A18C5D27" name="us-gaap:StockholdersEquity" contextRef="FI2018Q4" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">1,135,263</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span><ix:nonFraction id="d9040405e2401-wk-Fact-831D894B7CC2043495708095A18D51FC" name="us-gaap:LiabilitiesAndStockholdersEquity" contextRef="FI2019Q4" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">1,885,935</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9040405e2420-wk-Fact-331D1A2194186AFD60AC8095A18D3606" name="us-gaap:LiabilitiesAndStockholdersEquity" contextRef="FI2018Q4" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">1,289,667</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr></table></div></div><div style="line-height:120%;text-align:center;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">The accompanying notes are an integral part of these consolidated financial statements.</span></div><div><br/></div><div style="text-align:center;"><div style="line-height:120%;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">39</span></div></div><hr style="page-break-after:always"></hr><div><a id="s6975FEE70F7B5C7FBA8264395BA3E759"></a></div><div><div style="line-height:120%;font-size:9pt;"><a style="font-family:inherit;font-size:9pt;" href="#sCD449198B5695D85B5494CF5DF708C26"><span style="font-family:inherit;font-size:9pt;">Table of Contents</span></a></div></div><div><br/></div><div style="line-height:120%;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">COGNEX CORPORATION &#8211; CONSOLIDATED STATEMENTS OF CASH FLOWS</span></div><div style="line-height:120%;text-align:center;font-size:10pt;"><span style="font-family:inherit;font-size:9pt;">&#160;</span><div style="padding-left:0px;text-indent:0px;line-height:normal;padding-top:10px;"><table cellpadding="0" cellspacing="0" style="font-family:Times New Roman;font-size:10pt;margin-left:auto;margin-right:auto;width:100%;border-collapse:collapse;text-align:left;"><tr><td colspan="12"></td></tr><tr><td style="width:65%;"></td><td style="width:1%;"></td><td style="width:9%;"></td><td style="width:1%;"></td><td style="width:1%;"></td><td style="width:1%;"></td><td style="width:9%;"></td><td style="width:1%;"></td><td style="width:1%;"></td><td style="width:1%;"></td><td style="width:9%;"></td><td style="width:1%;"></td></tr><tr><td style="vertical-align:bottom;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:9pt;"><span style="font-family:inherit;font-size:9pt;">&#160;</span></div></td><td colspan="11" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:center;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;font-weight:bold;">Year Ended December&#160;31,</span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-top:2px;padding-bottom:2px;"><div style="text-align:center;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;font-weight:bold;">2019</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-top:2px;padding-bottom:2px;"><div style="text-align:center;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;">2018</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-top:2px;padding-bottom:2px;"><div style="text-align:center;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;">2017</span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:9pt;"><span style="font-family:inherit;font-size:9pt;">&#160;</span></div></td><td colspan="11" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:center;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;">(In thousands)</span></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;">Cash flows from operating activities:</span></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;">Net income</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;font-weight:bold;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;font-weight:bold;"><span><ix:nonFraction id="d9042541e913-wk-Fact-7A2F7F14108749D162188095A17CA207" name="us-gaap:NetIncomeLoss" contextRef="FD2019Q4YTD" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">203,865</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;"><span><ix:nonFraction id="d9042541e932-wk-Fact-1AC51EC9E270CE718EBD8095A18E3121" name="us-gaap:NetIncomeLoss" contextRef="FD2018Q4YTD" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">219,267</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;"><span><ix:nonFraction id="d9042541e951-wk-Fact-B391D3198F1CC415B9AA8095A17B728A" name="us-gaap:NetIncomeLoss" contextRef="FD2017Q4YTD" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">176,712</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;">Adjustments to reconcile net income to net cash provided by operating activities:</span></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:28px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;">Stock-based compensation expense</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;font-weight:bold;"><span><ix:nonFraction id="d9042541e1029-wk-Fact-1691321010D2F46AB2568095A18DA5E5" name="us-gaap:StockOptionPlanExpense" contextRef="FD2019Q4YTD" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">45,589</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;"><span><ix:nonFraction id="d9042541e1048-wk-Fact-3F856B8DE79BB5B824F58095A1870C4B" name="us-gaap:StockOptionPlanExpense" contextRef="FD2018Q4YTD" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">41,090</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;"><span><ix:nonFraction id="d9042541e1067-wk-Fact-6A745DB789E3710A4D5E8095A18D6935" name="us-gaap:StockOptionPlanExpense" contextRef="FD2017Q4YTD" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">31,942</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;padding-left:28px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;">Depreciation of property, plant, and equipment</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;font-weight:bold;"><span><ix:nonFraction id="d9042541e1088-wk-Fact-345861B76488689975458095A18C4859" name="us-gaap:Depreciation" contextRef="FD2019Q4YTD" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">21,527</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;"><span><ix:nonFraction id="d9042541e1107-wk-Fact-66AD2CC9C84580DD61668095A18F14B8" name="us-gaap:Depreciation" contextRef="FD2018Q4YTD" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">18,473</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;"><span><ix:nonFraction id="d9042541e1126-wk-Fact-21EF43A2C318CBE533768095A18D6E2C" name="us-gaap:Depreciation" contextRef="FD2017Q4YTD" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">13,683</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:28px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;">Amortization of intangible assets</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;font-weight:bold;"><span><ix:nonFraction id="d9042541e1147-wk-Fact-4F8845D1F0DB310DF5448095A186517E" name="us-gaap:AmortizationOfIntangibleAssets" contextRef="FD2019Q4YTD" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">3,373</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;"><span><ix:nonFraction id="d9042541e1166-wk-Fact-6C8967467C838170B9F48095A18F8319" name="us-gaap:AmortizationOfIntangibleAssets" contextRef="FD2018Q4YTD" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">3,076</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;"><span><ix:nonFraction id="d9042541e1185-wk-Fact-55ABD08327ED3E4A9E148095A1864F2B" name="us-gaap:AmortizationOfIntangibleAssets" contextRef="FD2017Q4YTD" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">3,308</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;padding-left:28px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;">Impairment of intangible assets</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;font-weight:bold;"><span><ix:nonFraction id="d9042541e1206-wk-Fact-180DE89378DDF8852AFD8095A18E5360" name="us-gaap:AssetImpairmentCharges" contextRef="FD2019Q4YTD" unitRef="usd" decimals="-3" scale="3" format="ixt:zerodash">&#8212;</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;"><span><ix:nonFraction id="d9042541e1225-wk-Fact-BEF0D6DDF1E7368D84348095A187C926" name="us-gaap:AssetImpairmentCharges" contextRef="FD2018Q4YTD" unitRef="usd" decimals="-3" scale="3" format="ixt:zerodash">&#8212;</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;"><span><ix:nonFraction id="d9042541e1244-wk-Fact-49D878D14530ED04822D8095A18F4E31" name="us-gaap:AssetImpairmentCharges" contextRef="FD2017Q4YTD" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">469</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:28px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;">Amortization of discounts or premiums on investments</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;font-weight:bold;"><span>(<ix:nonFraction id="d9042541e1265-wk-Fact-3825E8F4E180AE0819648095A18E899E" name="us-gaap:AccretionAmortizationOfDiscountsAndPremiumsInvestments" contextRef="FD2019Q4YTD" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">618</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;font-weight:bold;">)</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;"><span><ix:nonFraction id="d9042541e1285-wk-Fact-7A28FBBD115E23BD1A958095A1870CB4" name="us-gaap:AccretionAmortizationOfDiscountsAndPremiumsInvestments" contextRef="FD2018Q4YTD" unitRef="usd" decimals="-3" scale="3" sign="-" format="ixt:numdotdecimal">108</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;"><span><ix:nonFraction id="d9042541e1304-wk-Fact-E2CEE9BB10DD71D0E1768095A187730E" name="us-gaap:AccretionAmortizationOfDiscountsAndPremiumsInvestments" contextRef="FD2017Q4YTD" unitRef="usd" decimals="-3" scale="3" sign="-" format="ixt:numdotdecimal">205</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;padding-left:28px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;">Realized (gain) loss on sale of investments</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;font-weight:bold;"><span>(<ix:nonFraction id="d9042541e1326-wk-Fact-A8AAA01F323BB6B0D1298095A187EA1F" name="us-gaap:GainLossOnSaleOfInvestments" contextRef="FD2019Q4YTD" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">1,452</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;font-weight:bold;">)</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;"><span>(<ix:nonFraction id="d9042541e1346-wk-Fact-90D20272B1C722073BBA8095A18D999B" name="us-gaap:GainLossOnSaleOfInvestments" contextRef="FD2018Q4YTD" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">501</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;">)</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;"><span>(<ix:nonFraction id="d9042541e1366-wk-Fact-8CFD214B8968474BD65E8095A18E945F" name="us-gaap:GainLossOnSaleOfInvestments" contextRef="FD2017Q4YTD" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">829</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;">)</span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:28px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;">Revaluation of contingent consideration</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;font-weight:bold;"><span>(<ix:nonFraction id="d9042541e1388-wk-Fact-A6EAD1957EF4155F22CA8095A18E4CAB" name="us-gaap:BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1" contextRef="FD2019Q4YTD" unitRef="usd" decimals="-3" scale="3" sign="-" format="ixt:numdotdecimal">1,401</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;font-weight:bold;">)</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;"><span>(<ix:nonFraction id="d9042541e1408-wk-Fact-77431FB16A3FD9ABDA808095A18DCD61" name="us-gaap:BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1" contextRef="FD2018Q4YTD" unitRef="usd" decimals="-3" scale="3" sign="-" format="ixt:numdotdecimal">3</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;">)</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;"><span>(<ix:nonFraction id="d9042541e1428-wk-Fact-35581D2FE81CBF1C3CBD8095A18E2303" name="us-gaap:BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1" contextRef="FD2017Q4YTD" unitRef="usd" decimals="-3" scale="3" sign="-" format="ixt:numdotdecimal">28</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;">)</span></div></td></tr><tr><td style="vertical-align:top;padding-left:28px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;">Change in deferred income taxes</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;font-weight:bold;"><span>(<ix:nonFraction id="d9042541e1450-wk-Fact-A8597E2D1E31BE68C2438095A18C0811" name="us-gaap:IncreaseDecreaseInDeferredIncomeTaxes" contextRef="FD2019Q4YTD" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">94,866</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;font-weight:bold;">)</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;"><span>(<ix:nonFraction id="d9042541e1470-wk-Fact-CB35E4CDBA46DECF717C8095A1872851" name="us-gaap:IncreaseDecreaseInDeferredIncomeTaxes" contextRef="FD2018Q4YTD" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">413</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;">)</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;"><span><ix:nonFraction id="d9042541e1490-wk-Fact-E1F993412CCC080ADCC38095A18E35C0" name="us-gaap:IncreaseDecreaseInDeferredIncomeTaxes" contextRef="FD2017Q4YTD" unitRef="usd" decimals="-3" scale="3" sign="-" format="ixt:numdotdecimal">1,787</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;">Changes in operating assets and liabilities:</span></div></td><td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td></tr><tr><td style="vertical-align:top;padding-left:28px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;">Accounts receivable</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;font-weight:bold;"><span><ix:nonFraction id="d9042541e1573-wk-Fact-1A6A5D489F8C2D2FA7288095A1875D7B" name="us-gaap:IncreaseDecreaseInAccountsReceivable" contextRef="FD2019Q4YTD" unitRef="usd" decimals="-3" scale="3" sign="-" format="ixt:numdotdecimal">16,807</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;"><span>(<ix:nonFraction id="d9042541e1592-wk-Fact-89163CC043B2BB9926B68095A18D0401" name="us-gaap:IncreaseDecreaseInAccountsReceivable" contextRef="FD2018Q4YTD" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">1,867</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;">)</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;"><span>(<ix:nonFraction id="d9042541e1612-wk-Fact-F231EF8C31712FB1CB878095A18EFF6F" name="us-gaap:IncreaseDecreaseInAccountsReceivable" contextRef="FD2017Q4YTD" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">55,185</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;">)</span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:28px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;">Unbilled revenue</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;font-weight:bold;"><span><ix:nonFraction id="d9042541e1634-wk-Fact-FB183E78F8BB2AC6E7D08095A18D60F7" name="us-gaap:IncreaseDecreaseInUnbilledReceivables" contextRef="FD2019Q4YTD" unitRef="usd" decimals="-3" scale="3" sign="-" format="ixt:numdotdecimal">3,530</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;"><span>(<ix:nonFraction id="d9042541e1653-wk-Fact-C9FC87E4BC9858CF676F8095A18FCAB2" name="us-gaap:IncreaseDecreaseInUnbilledReceivables" contextRef="FD2018Q4YTD" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">906</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;">)</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;"><span>(<ix:nonFraction id="d9042541e1673-wk-Fact-CA258F8A78767E8E84748095A18F9B5E" name="us-gaap:IncreaseDecreaseInUnbilledReceivables" contextRef="FD2017Q4YTD" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">4,604</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;">)</span></div></td></tr><tr><td style="vertical-align:top;padding-left:28px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;">Inventories</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;font-weight:bold;"><span><ix:nonFraction id="d9042541e1695-wk-Fact-4401F8BBD8A7D781AE028095A18D5662" name="us-gaap:IncreaseDecreaseInInventories" contextRef="FD2019Q4YTD" unitRef="usd" decimals="-3" scale="3" sign="-" format="ixt:numdotdecimal">23,137</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;"><span>(<ix:nonFraction id="d9042541e1714-wk-Fact-A9E30C21A384173FDE268095A18E98C9" name="us-gaap:IncreaseDecreaseInInventories" contextRef="FD2018Q4YTD" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">16,946</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;">)</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;"><span>(<ix:nonFraction id="d9042541e1734-wk-Fact-B5369CCFF455272F982A8095A18D7605" name="us-gaap:IncreaseDecreaseInInventories" contextRef="FD2017Q4YTD" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">37,088</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;">)</span></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:28px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;">Prepaid expenses and other current assets</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;font-weight:bold;"><span><ix:nonFraction id="d9042541e1756-wk-Fact-D18F7AB0C969575A16878095A1866754" name="us-gaap:IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets" contextRef="FD2019Q4YTD" unitRef="usd" decimals="-3" scale="3" sign="-" format="ixt:numdotdecimal">7,405</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;"><span>(<ix:nonFraction id="d9042541e1775-wk-Fact-43D0A77234F1C46D03F68095A18C32C8" name="us-gaap:IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets" contextRef="FD2018Q4YTD" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">9,750</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;">)</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;"><span>(<ix:nonFraction id="d9042541e1795-wk-Fact-320DBABD8E6C07478CF88095A1875687" name="us-gaap:IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets" contextRef="FD2017Q4YTD" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">7,016</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;">)</span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:28px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;">Accounts payable</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;font-weight:bold;"><span><ix:nonFraction id="d9042541e1817-wk-Fact-05B8A9D75242860349E98095A18D85CC" name="us-gaap:IncreaseDecreaseInAccountsPayable" contextRef="FD2019Q4YTD" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">1,633</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;"><span>(<ix:nonFraction id="d9042541e1836-wk-Fact-377AF7EA6024B126C7088095A1871834" name="us-gaap:IncreaseDecreaseInAccountsPayable" contextRef="FD2018Q4YTD" unitRef="usd" decimals="-3" scale="3" sign="-" format="ixt:numdotdecimal">7,247</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;">)</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;"><span><ix:nonFraction id="d9042541e1856-wk-Fact-550421A08EF03EF8C3508095A18E8CF0" name="us-gaap:IncreaseDecreaseInAccountsPayable" contextRef="FD2017Q4YTD" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">12,322</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:28px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;">Accrued expenses</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;font-weight:bold;"><span>(<ix:nonFraction id="d9042541e1877-wk-Fact-B276CA4F94FC40385EAE8095A18D1628" name="us-gaap:IncreaseDecreaseInAccruedLiabilities" contextRef="FD2019Q4YTD" unitRef="usd" decimals="-3" scale="3" sign="-" format="ixt:numdotdecimal">8,938</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;font-weight:bold;">)</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;"><span><ix:nonFraction id="d9042541e1897-wk-Fact-CC2B8DEC983379E454F88095A1864266" name="us-gaap:IncreaseDecreaseInAccruedLiabilities" contextRef="FD2018Q4YTD" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">380</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;"><span><ix:nonFraction id="d9042541e1916-wk-Fact-A5E756E5087CB33164F88095A18ECB81" name="us-gaap:IncreaseDecreaseInAccruedLiabilities" contextRef="FD2017Q4YTD" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">14,476</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;padding-left:28px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;">Accrued income taxes</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;font-weight:bold;"><span><ix:nonFraction id="d9042541e1937-wk-Fact-FA9C5CC435562AB5E2F98095A18EEA56" name="us-gaap:IncreaseDecreaseInAccruedIncomeTaxesPayable" contextRef="FD2019Q4YTD" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">25,266</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;"><span>(<ix:nonFraction id="d9042541e1956-wk-Fact-53912837B9805BE423978095A186C448" name="us-gaap:IncreaseDecreaseInAccruedIncomeTaxesPayable" contextRef="FD2018Q4YTD" unitRef="usd" decimals="-3" scale="3" sign="-" format="ixt:numdotdecimal">21,903</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;">)</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;"><span><ix:nonFraction id="d9042541e1976-wk-Fact-D7170209F3658948671B8095A18E5D81" name="us-gaap:IncreaseDecreaseInAccruedIncomeTaxesPayable" contextRef="FD2017Q4YTD" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">71,335</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:28px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;">Deferred revenue and customer deposits</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;font-weight:bold;"><span><ix:nonFraction id="d9042541e1998-wk-Fact-973973F8C67C3FDD294F8095A18E2D2E" name="us-gaap:IncreaseDecreaseInDeferredRevenueAndCustomerAdvancesAndDeposits" contextRef="FD2019Q4YTD" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">3,875</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;"><span><ix:nonFraction id="d9042541e2017-wk-Fact-24F5F9B6C007C05929FD8095A187A0E7" name="us-gaap:IncreaseDecreaseInDeferredRevenueAndCustomerAdvancesAndDeposits" contextRef="FD2018Q4YTD" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">1,434</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;"><span><ix:nonFraction id="d9042541e2036-wk-Fact-A524AF76B4C12DE8D5898095A18675A8" name="us-gaap:IncreaseDecreaseInDeferredRevenueAndCustomerAdvancesAndDeposits" contextRef="FD2017Q4YTD" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">1,619</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;padding-left:28px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;">Other</span></div></td><td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;font-weight:bold;"><span><ix:nonFraction id="d9042541e2057-wk-Fact-81C059EB9756C5185EDB8095A18E6B58" name="us-gaap:IncreaseDecreaseInOtherOperatingCapitalNet" contextRef="FD2019Q4YTD" unitRef="usd" decimals="-3" scale="3" sign="-" format="ixt:numdotdecimal">4,493</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;"><span>(<ix:nonFraction id="d9042541e2076-wk-Fact-B548C4E59D02AB0435EB8095A18E5D23" name="us-gaap:IncreaseDecreaseInOtherOperatingCapitalNet" contextRef="FD2018Q4YTD" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">838</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;">)</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;"><span><ix:nonFraction id="d9042541e2096-wk-Fact-D94BC322A292B1D5805C8095A1873AFA" name="us-gaap:IncreaseDecreaseInOtherOperatingCapitalNet" contextRef="FD2017Q4YTD" unitRef="usd" decimals="-3" scale="3" sign="-" format="ixt:numdotdecimal">1,215</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;">Net cash provided by operating activities</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;font-weight:bold;"><span><ix:nonFraction id="d9042541e2117-wk-Fact-7FE297FD6D775290F9C18095A186C355" name="us-gaap:NetCashProvidedByUsedInOperatingActivities" contextRef="FD2019Q4YTD" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">253,225</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;"><span><ix:nonFraction id="d9042541e2136-wk-Fact-C76038DCAC388244A8E38095A18FF6CD" name="us-gaap:NetCashProvidedByUsedInOperatingActivities" contextRef="FD2018Q4YTD" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">223,454</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;"><span><ix:nonFraction id="d9042541e2155-wk-Fact-FD3145F03E4E5B7BA64C8095A18F86C9" name="us-gaap:NetCashProvidedByUsedInOperatingActivities" contextRef="FD2017Q4YTD" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">224,323</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;">Cash flows from investing activities:</span></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;">Purchases of investments</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;font-weight:bold;"><span>(<ix:nonFraction id="d9042541e2238-wk-Fact-13EF8BD254E1AB0030A08095A18E5449" name="us-gaap:PaymentsToAcquireInvestments" contextRef="FD2019Q4YTD" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">1,031,642</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;font-weight:bold;">)</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;"><span>(<ix:nonFraction id="d9042541e2258-wk-Fact-D1A6FB9839727DC9F1588095A18EE7EF" name="us-gaap:PaymentsToAcquireInvestments" contextRef="FD2018Q4YTD" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">782,032</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;">)</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;"><span>(<ix:nonFraction id="d9042541e2278-wk-Fact-3EA0D9DC34D01A27A1A38095A18D67C6" name="us-gaap:PaymentsToAcquireInvestments" contextRef="FD2017Q4YTD" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">636,856</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;">)</span></div></td></tr><tr><td style="vertical-align:top;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;">Maturities and sales of investments</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;font-weight:bold;"><span><ix:nonFraction id="d9042541e2300-wk-Fact-7F11A866C3B7F51E98EB8095A18D4CBB" name="us-gaap:ProceedsFromSaleMaturityAndCollectionsOfInvestments" contextRef="FD2019Q4YTD" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">1,062,962</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;"><span><ix:nonFraction id="d9042541e2319-wk-Fact-601D4DCC048A4F4791C88095A18F1BF4" name="us-gaap:ProceedsFromSaleMaturityAndCollectionsOfInvestments" contextRef="FD2018Q4YTD" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">812,565</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;"><span><ix:nonFraction id="d9042541e2338-wk-Fact-9ED28666533004BB15B88095A18E7DEC" name="us-gaap:ProceedsFromSaleMaturityAndCollectionsOfInvestments" contextRef="FD2017Q4YTD" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">584,464</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;">Purchases of property, plant, and equipment</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;font-weight:bold;"><span>(<ix:nonFraction id="d9042541e2359-wk-Fact-F4F850E1A25E419F99808095A18FC61D" name="us-gaap:PaymentsToAcquirePropertyPlantAndEquipment" contextRef="FD2019Q4YTD" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">21,745</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;font-weight:bold;">)</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;"><span>(<ix:nonFraction id="d9042541e2379-wk-Fact-35774225F7A7FF1928C18095A18E6B36" name="us-gaap:PaymentsToAcquirePropertyPlantAndEquipment" contextRef="FD2018Q4YTD" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">37,095</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;">)</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;"><span>(<ix:nonFraction id="d9042541e2399-wk-Fact-CD4553461E2DA76B440D8095A18EFEA2" name="us-gaap:PaymentsToAcquirePropertyPlantAndEquipment" contextRef="FD2017Q4YTD" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">28,754</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;">)</span></div></td></tr><tr><td style="vertical-align:top;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;">Cash paid for acquisition of business, net of cash acquired</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;font-weight:bold;"><span>(<ix:nonFraction id="d9042541e2421-wk-Fact-6E2CE1284676E4CBA02A8095A18ED3DE" name="us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired" contextRef="FD2019Q4YTD" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">166,911</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;font-weight:bold;">)</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;"><span>(<ix:nonFraction id="d9042541e2441-wk-Fact-025ED5DDB189F832A3B08095A18E53D1" name="us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired" contextRef="FD2018Q4YTD" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">4,265</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;">)</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;"><span>(<ix:nonFraction id="d9042541e2461-wk-Fact-B202BF61D13DA385EB928095A187EDED" name="us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired" contextRef="FD2017Q4YTD" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">24,118</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;">)</span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;">Net cash paid from sale of discontinued business</span></div></td><td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;font-weight:bold;"><span><ix:nonFraction id="d9042541e2483-wk-Fact-47D10A61CB60AEBA83CD8095A18F7A29" name="us-gaap:PaymentsForProceedsFromBusinessesAndInterestInAffiliates" contextRef="FD2019Q4YTD" unitRef="usd" decimals="-3" scale="3" format="ixt:zerodash">&#8212;</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;"><span><ix:nonFraction id="d9042541e2502-wk-Fact-A335ABD1DE22F296AFBC8095A18D0C98" name="us-gaap:PaymentsForProceedsFromBusinessesAndInterestInAffiliates" contextRef="FD2018Q4YTD" unitRef="usd" decimals="-3" scale="3" format="ixt:zerodash">&#8212;</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;"><span>(<ix:nonFraction id="d9042541e2521-wk-Fact-B485D2374B317721490C8095A18E4868" name="us-gaap:PaymentsForProceedsFromBusinessesAndInterestInAffiliates" contextRef="FD2017Q4YTD" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">291</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;">)</span></div></td></tr><tr><td style="vertical-align:top;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;">Net cash used in investing activities</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;font-weight:bold;"><span>(<ix:nonFraction id="d9042541e2543-wk-Fact-BCA92FCD3039774625378095A18E0AE7" name="us-gaap:NetCashProvidedByUsedInInvestingActivities" contextRef="FD2019Q4YTD" unitRef="usd" decimals="-3" scale="3" sign="-" format="ixt:numdotdecimal">157,336</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;font-weight:bold;">)</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;"><span>(<ix:nonFraction id="d9042541e2563-wk-Fact-EE682B7E2317505419998095A18D4E36" name="us-gaap:NetCashProvidedByUsedInInvestingActivities" contextRef="FD2018Q4YTD" unitRef="usd" decimals="-3" scale="3" sign="-" format="ixt:numdotdecimal">10,827</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;">)</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;"><span>(<ix:nonFraction id="d9042541e2583-wk-Fact-E7EE526DD96264A730B28095A18FC76E" name="us-gaap:NetCashProvidedByUsedInInvestingActivities" contextRef="FD2017Q4YTD" unitRef="usd" decimals="-3" scale="3" sign="-" format="ixt:numdotdecimal">105,555</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;">)</span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;">Cash flows from financing activities:</span></div></td><td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td></tr><tr><td style="vertical-align:top;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;">Issuance of common stock under stock plans</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;font-weight:bold;"><span><ix:nonFraction id="d9042541e2668-wk-Fact-19439D83A6046F4D1D138095A18E4D58" name="us-gaap:ProceedsFromIssuanceOfSharesUnderIncentiveAndShareBasedCompensationPlansIncludingStockOptions" contextRef="FD2019Q4YTD" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">64,581</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;"><span><ix:nonFraction id="d9042541e2687-wk-Fact-7284B53E11A93934DAD38095A18717EB" name="us-gaap:ProceedsFromIssuanceOfSharesUnderIncentiveAndShareBasedCompensationPlansIncludingStockOptions" contextRef="FD2018Q4YTD" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">26,783</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;"><span><ix:nonFraction id="d9042541e2706-wk-Fact-4D81C557150FA29C9B658095A18E56E8" name="us-gaap:ProceedsFromIssuanceOfSharesUnderIncentiveAndShareBasedCompensationPlansIncludingStockOptions" contextRef="FD2017Q4YTD" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">54,557</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;">Repurchase of common stock</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;font-weight:bold;"><span>(<ix:nonFraction id="d9042541e2727-wk-Fact-10756628F64C4FA11C9C8095A18EA244" name="us-gaap:PaymentsForRepurchaseOfCommonStock" contextRef="FD2019Q4YTD" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">61,690</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;font-weight:bold;">)</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;"><span>(<ix:nonFraction id="d9042541e2747-wk-Fact-94B306C525197F538E3E8095A18EF580" name="us-gaap:PaymentsForRepurchaseOfCommonStock" contextRef="FD2018Q4YTD" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">203,822</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;">)</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;"><span>(<ix:nonFraction id="d9042541e2767-wk-Fact-68170DB7E544BEA7A3208095A1871C7C" name="us-gaap:PaymentsForRepurchaseOfCommonStock" contextRef="FD2017Q4YTD" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">123,715</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;">)</span></div></td></tr><tr><td style="vertical-align:top;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;">Payment of dividends</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;font-weight:bold;"><span>(<ix:nonFraction id="d9042541e2789-wk-Fact-1BC97380958928D576DA8095A18F42AE" name="us-gaap:PaymentsOfDividendsCommonStock" contextRef="FD2019Q4YTD" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">35,124</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;font-weight:bold;">)</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;"><span>(<ix:nonFraction id="d9042541e2809-wk-Fact-3C49F3058A7CCFEC6C2C8095A18F417B" name="us-gaap:PaymentsOfDividendsCommonStock" contextRef="FD2018Q4YTD" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">31,865</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;">)</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;"><span>(<ix:nonFraction id="d9042541e2829-wk-Fact-2E65D1AE622D0F60C0868095A18ED05B" name="us-gaap:PaymentsOfDividendsCommonStock" contextRef="FD2017Q4YTD" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">29,037</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;">)</span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;">Payment of contingent consideration</span></div></td><td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;font-weight:bold;"><span><ix:nonFraction id="d9042541e2851-wk-Fact-4C7885E33F421B166F218095A187C976" name="us-gaap:PaymentsForPreviousAcquisition" contextRef="FD2019Q4YTD" unitRef="usd" decimals="-3" scale="3" format="ixt:zerodash">&#8212;</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;"><span>(<ix:nonFraction id="d9042541e2870-wk-Fact-6EE15592DD4D873B2FD68095A18F1B00" name="us-gaap:PaymentsForPreviousAcquisition" contextRef="FD2018Q4YTD" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">1,000</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;">)</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;"><span>(<ix:nonFraction id="d9042541e2890-wk-Fact-4D7153991AB187B207A48095A187A231" name="us-gaap:PaymentsForPreviousAcquisition" contextRef="FD2017Q4YTD" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">1,926</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;">)</span></div></td></tr><tr><td style="vertical-align:top;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;">Net cash used in financing activities</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;font-weight:bold;"><span>(<ix:nonFraction id="d9042541e2912-wk-Fact-18500A769A9EF6A5EB8C8095A18D4D4B" name="us-gaap:NetCashProvidedByUsedInFinancingActivities" contextRef="FD2019Q4YTD" unitRef="usd" decimals="-3" scale="3" sign="-" format="ixt:numdotdecimal">32,233</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;font-weight:bold;">)</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;"><span>(<ix:nonFraction id="d9042541e2932-wk-Fact-831CE39F13562E5E4E888095A1869B7A" name="us-gaap:NetCashProvidedByUsedInFinancingActivities" contextRef="FD2018Q4YTD" unitRef="usd" decimals="-3" scale="3" sign="-" format="ixt:numdotdecimal">209,904</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;">)</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;"><span>(<ix:nonFraction id="d9042541e2952-wk-Fact-E1BB5FFE2A03D66AB2198095A18D2973" name="us-gaap:NetCashProvidedByUsedInFinancingActivities" contextRef="FD2017Q4YTD" unitRef="usd" decimals="-3" scale="3" sign="-" format="ixt:numdotdecimal">100,121</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;">)</span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;">Effect of foreign exchange rate changes on cash and cash equivalents</span></div></td><td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;font-weight:bold;"><span>(<ix:nonFraction id="d9042541e2974-wk-Fact-CA6502F026705B24D05D8095A18E1FF1" name="us-gaap:EffectOfExchangeRateOnCashAndCashEquivalents" contextRef="FD2019Q4YTD" unitRef="usd" decimals="-3" scale="3" sign="-" format="ixt:numdotdecimal">437</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;font-weight:bold;">)</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;"><span>(<ix:nonFraction id="d9042541e2994-wk-Fact-B19F1CAD02C8BF36EE828095A18E1277" name="us-gaap:EffectOfExchangeRateOnCashAndCashEquivalents" contextRef="FD2018Q4YTD" unitRef="usd" decimals="-3" scale="3" sign="-" format="ixt:numdotdecimal">1,093</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;">)</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;"><span><ix:nonFraction id="d9042541e3014-wk-Fact-E008F3814E9BCE5B8FF98095A18C8316" name="us-gaap:EffectOfExchangeRateOnCashAndCashEquivalents" contextRef="FD2017Q4YTD" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">8,294</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;">Net change in cash and cash equivalents</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;font-weight:bold;"><span><ix:nonFraction id="d9042541e3035-wk-Fact-373FAA7144536BD56D1A8095A1869B3F" name="us-gaap:CashAndCashEquivalentsPeriodIncreaseDecrease" contextRef="FD2019Q4YTD" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">63,219</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;"><span><ix:nonFraction id="d9042541e3054-wk-Fact-68CD7DAC8E9497249A208095A18DF32F" name="us-gaap:CashAndCashEquivalentsPeriodIncreaseDecrease" contextRef="FD2018Q4YTD" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">1,630</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;"><span><ix:nonFraction id="d9042541e3073-wk-Fact-F92A413536ECA8E94B678095A18774AC" name="us-gaap:CashAndCashEquivalentsPeriodIncreaseDecrease" contextRef="FD2017Q4YTD" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">26,941</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;">Cash and cash equivalents at beginning of year</span></div></td><td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;font-weight:bold;"><span><ix:nonFraction id="d9042541e3094-wk-Fact-0113DCF56F3641DF075C8095A187DA3D" name="us-gaap:CashAndCashEquivalentsAtCarryingValue" contextRef="FI2018Q4" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">108,212</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;"><span><ix:nonFraction id="d9042541e3113-wk-Fact-344EAA3B9234FD47CCF28095A18F7AD1" name="us-gaap:CashAndCashEquivalentsAtCarryingValue" contextRef="FI2017Q4" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">106,582</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;"><span><ix:nonFraction id="d9042541e3132-wk-Fact-8529C14A9B0169ED4E378095A18EE8F4" name="us-gaap:CashAndCashEquivalentsAtCarryingValue" contextRef="FI2016Q4" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">79,641</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;">Cash and cash equivalents at end of year</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;font-weight:bold;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;font-weight:bold;"><span><ix:nonFraction id="d9042541e3158-wk-Fact-D8633F16D33E937CA4698095A1867C44" name="us-gaap:CashAndCashEquivalentsAtCarryingValue" contextRef="FI2019Q4" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">171,431</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;"><span><ix:nonFraction id="d9042541e3177-wk-Fact-0113DCF56F3641DF075C8095A187DA3D" name="us-gaap:CashAndCashEquivalentsAtCarryingValue" contextRef="FI2018Q4" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">108,212</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:left;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;"><span><ix:nonFraction id="d9042541e3196-wk-Fact-344EAA3B9234FD47CCF28095A18F7AD1" name="us-gaap:CashAndCashEquivalentsAtCarryingValue" contextRef="FI2017Q4" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">106,582</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr></table></div></div><div style="line-height:120%;text-align:center;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><br/></span></div><div style="line-height:120%;text-align:center;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><br/></span></div><div style="line-height:120%;text-align:center;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><br/></span></div><div style="line-height:120%;text-align:center;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><br/></span></div><div style="line-height:120%;text-align:center;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><br/></span></div><div style="line-height:120%;text-align:center;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><br/></span></div><div style="line-height:120%;text-align:center;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">The accompanying notes are an integral part of these consolidated financial statements.</span></div><div><br/></div><div style="text-align:center;"><div style="line-height:120%;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">40</span></div></div><hr style="page-break-after:always"></hr><div><a id="sC49FD3782AA85EAC90F7E4FE572A4B45"></a></div><div><div style="line-height:120%;font-size:9pt;"><a style="font-family:inherit;font-size:9pt;" href="#sCD449198B5695D85B5494CF5DF708C26"><span style="font-family:inherit;font-size:9pt;">Table of Contents</span></a></div></div><div><br/></div><div style="line-height:120%;text-align:center;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">COGNEX CORPORATION &#8211; CONSOLIDATED STATEMENTS OF SHAREHOLDERS&#8217; EQUITY</span></div><div style="line-height:120%;text-align:center;font-size:10pt;"><span style="font-family:inherit;font-size:9pt;">&#160;</span><div style="padding-left:0px;text-indent:0px;line-height:normal;padding-top:10px;"><table cellpadding="0" cellspacing="0" style="font-family:Times New Roman;font-size:10pt;margin-left:auto;margin-right:auto;width:97.39884393063583%;border-collapse:collapse;text-align:left;"><tr><td colspan="24"></td></tr><tr><td style="width:47%;"></td><td style="width:1%;"></td><td style="width:4%;"></td><td style="width:1%;"></td><td style="width:1%;"></td><td style="width:1%;"></td><td style="width:5%;"></td><td style="width:1%;"></td><td style="width:1%;"></td><td style="width:1%;"></td><td style="width:5%;"></td><td style="width:1%;"></td><td style="width:1%;"></td><td style="width:1%;"></td><td style="width:5%;"></td><td style="width:1%;"></td><td style="width:1%;"></td><td style="width:1%;"></td><td style="width:9%;"></td><td style="width:1%;"></td><td style="width:1%;"></td><td style="width:1%;"></td><td style="width:8%;"></td><td style="width:1%;"></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="6" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;">Common Stock (1)</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" rowspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;">Additional</span></div><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;">Paid-in</span></div><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;">Capital (1)</span></div></td><td rowspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" rowspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;">Retained</span></div><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;">Earnings (1)</span></div></td><td rowspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" rowspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;">Accumulated</span></div><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;">Other</span></div><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;">Comprehensive</span></div><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;">Loss</span></div></td><td rowspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" rowspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;">Total</span></div><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;">Shareholders&#8217;</span></div><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;">Equity</span></div></td></tr><tr><td style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">(In thousands)</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;">Shares</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;">Par&#160;Value</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;border-top:1px solid #000000;"><div style="text-align:left;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">Balance as of December 31, 2016</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;"><span><ix:nonFraction id="d9047537e950-wk-Fact-C7F6B3F4AEF84644AB198095A198B9A6" name="us-gaap:CommonStockSharesIssued" contextRef="FI2016Q4_us-gaap_StatementEquityComponentsAxis_us-gaap_CommonStockMember" unitRef="shares" decimals="-3" scale="3" format="ixt:numdotdecimal">171,878</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;"><span><ix:nonFraction id="d9047537e969-wk-Fact-2EF0F520EF139C91289E8095A187EC0C" name="us-gaap:StockholdersEquity" contextRef="FI2016Q4_us-gaap_StatementEquityComponentsAxis_us-gaap_CommonStockMember" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">344</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;"><span><ix:nonFraction id="d9047537e988-wk-Fact-D4B78298C01F8897A8368095A18E0170" name="us-gaap:StockholdersEquity" contextRef="FI2016Q4_us-gaap_StatementEquityComponentsAxis_us-gaap_AdditionalPaidInCapitalMember" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">374,847</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;"><span><ix:nonFraction id="d9047537e1008-wk-Fact-0DFA7D0A63644E22B8DA8095A198BC5D" name="us-gaap:StockholdersEquity" contextRef="FI2016Q4_us-gaap_StatementEquityComponentsAxis_us-gaap_RetainedEarningsMember" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">644,622</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;"><span>(<ix:nonFraction id="d9047537e1027-wk-Fact-4258255F21EBC032B7148095A1982532" name="us-gaap:StockholdersEquity" contextRef="FI2016Q4_us-gaap_StatementEquityComponentsAxis_us-gaap_AccumulatedOtherComprehensiveIncomeMember" unitRef="usd" decimals="-3" scale="3" sign="-" format="ixt:numdotdecimal">56,428</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:left;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">)</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;"><span><ix:nonFraction id="d9047537e1048-wk-Fact-818FD2712B30D2B8AB0E8095A1863233" name="us-gaap:StockholdersEquity" contextRef="FI2016Q4" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">963,385</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">Issuance of common stock under stock plans</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;"><span><ix:nonFraction id="d9047537e1068-wk-Fact-466C7EDC72CEF90651EB8095A18785F4" name="us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised" contextRef="FD2017Q4YTD_us-gaap_StatementEquityComponentsAxis_us-gaap_CommonStockMember" unitRef="shares" decimals="-3" scale="3" format="ixt:numdotdecimal">4,162</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;"><span><ix:nonFraction id="d9047537e1082-wk-Fact-311BA7AD37578AB85D398095A199FF51" name="us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised" contextRef="FD2017Q4YTD_us-gaap_StatementEquityComponentsAxis_us-gaap_CommonStockMember" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">8</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;"><span><ix:nonFraction id="d9047537e1101-wk-Fact-A7D16130C4381E01DCF48095A1980393" name="us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised" contextRef="FD2017Q4YTD_us-gaap_StatementEquityComponentsAxis_us-gaap_AdditionalPaidInCapitalMember" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">54,549</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">&#8212;</span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">&#8212;</span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;"><span><ix:nonFraction id="d9047537e1159-wk-Fact-13C2163703DD0A90FC348095A1872937" name="us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised" contextRef="FD2017Q4YTD" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">54,557</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">Repurchase of common stock</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;"><span>(<ix:nonFraction id="d9047537e1185-wk-Fact-C8D55FB98AF7C910ACB38095A1874810" name="us-gaap:StockRepurchasedDuringPeriodShares" contextRef="FD2017Q4YTD_us-gaap_StatementEquityComponentsAxis_us-gaap_CommonStockMember" unitRef="shares" decimals="-3" scale="3" format="ixt:numdotdecimal">2,533</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">)</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;"><span>(<ix:nonFraction id="d9047537e1200-wk-Fact-33A5CB8CFD9B87D3900B8095A18D5F11" name="us-gaap:StockRepurchasedDuringPeriodValue" contextRef="FD2017Q4YTD_us-gaap_StatementEquityComponentsAxis_us-gaap_CommonStockMember" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">5</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">)</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">&#8212;</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;"><span>(<ix:nonFraction id="d9047537e1240-wk-Fact-F4A2613963AF0B8656F38095A18E3286" name="us-gaap:StockRepurchasedDuringPeriodValue" contextRef="FD2017Q4YTD_us-gaap_StatementEquityComponentsAxis_us-gaap_RetainedEarningsMember" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">123,710</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">)</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">&#8212;</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;"><span>(<ix:nonFraction id="d9047537e1279-wk-Fact-AEEAC713547B48F4540E8095A19849AE" name="us-gaap:StockRepurchasedDuringPeriodValue" contextRef="FD2017Q4YTD" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">123,715</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">)</span></div></td></tr><tr><td style="vertical-align:top;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">Stock-based compensation expense</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">&#8212;</span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">&#8212;</span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;"><span><ix:nonFraction id="d9047537e1339-wk-Fact-1E597A80A08359D5E82F8095A18DA81A" name="us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue" contextRef="FD2017Q4YTD_us-gaap_StatementEquityComponentsAxis_us-gaap_AdditionalPaidInCapitalMember" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">31,942</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">&#8212;</span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">&#8212;</span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;"><span><ix:nonFraction id="d9047537e1397-wk-Fact-7D1413DF2E6DCA94BCC88095A186D1E3" name="us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue" contextRef="FD2017Q4YTD" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">31,942</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">Payment of dividends</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">&#8212;</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">&#8212;</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">&#8212;</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;"><span>(<ix:nonFraction id="d9047537e1476-wk-Fact-0FA03F37FD8B58E284018095A198260E" name="us-gaap:DividendsCommonStockCash" contextRef="FD2017Q4YTD_us-gaap_StatementEquityComponentsAxis_us-gaap_RetainedEarningsMember" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">29,037</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">)</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">&#8212;</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;"><span>(<ix:nonFraction id="d9047537e1515-wk-Fact-63C6AEB17E887CF030958095A18EBDC6" name="us-gaap:DividendsCommonStockCash" contextRef="FD2017Q4YTD" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">29,037</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">)</span></div></td></tr><tr><td style="vertical-align:top;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">Net income</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">&#8212;</span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">&#8212;</span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">&#8212;</span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;"><span><ix:nonFraction id="d9047537e1595-wk-Fact-A3239781C22A644465758095A17064B7" name="us-gaap:NetIncomeLoss" contextRef="FD2017Q4YTD_us-gaap_StatementEquityComponentsAxis_us-gaap_RetainedEarningsMember" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">176,712</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">&#8212;</span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;"><span><ix:nonFraction id="d9047537e1633-wk-Fact-B391D3198F1CC415B9AA8095A17B728A" name="us-gaap:NetIncomeLoss" contextRef="FD2017Q4YTD" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">176,712</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">Net unrealized gain (loss) on cash flow hedges, net of tax of ($5)</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">&#8212;</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">&#8212;</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">&#8212;</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">&#8212;</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;"><span><ix:nonFraction id="d9047537e1731-wk-Fact-3315BC306B0ABE9DF29B8095A1877D3A" name="us-gaap:OtherComprehensiveIncomeUnrealizedGainLossOnDerivativesArisingDuringPeriodNetOfTax" contextRef="FD2017Q4YTD_us-gaap_StatementEquityComponentsAxis_us-gaap_AccumulatedOtherComprehensiveIncomeMember" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">4</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;"><span><ix:nonFraction id="d9047537e1750-wk-Fact-9D3EEBB7BBBF4F7B14EC8095A186B36F" name="us-gaap:OtherComprehensiveIncomeUnrealizedGainLossOnDerivativesArisingDuringPeriodNetOfTax" contextRef="FD2017Q4YTD" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">4</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">Reclassification of net realized (gain) loss on cash flow hedges</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">&#8212;</span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">&#8212;</span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">&#8212;</span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">&#8212;</span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;"><span>(<ix:nonFraction id="d9047537e1848-wk-Fact-64AD72FE7233E281A5368095A1989CF0" name="us-gaap:OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIOnDerivativesNetOfTax" contextRef="FD2017Q4YTD_us-gaap_StatementEquityComponentsAxis_us-gaap_AccumulatedOtherComprehensiveIncomeMember" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">41</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">)</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;"><span>(<ix:nonFraction id="d9047537e1868-wk-Fact-6950DADA9B2258A903F38095A199F7D8" name="us-gaap:OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIOnDerivativesNetOfTax" contextRef="FD2017Q4YTD" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">41</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">)</span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">Net unrealized gain (loss) on available-for-sale investments, net of tax of $2</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">&#8212;</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">&#8212;</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">&#8212;</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">&#8212;</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;"><span><ix:nonFraction id="d9047537e1967-wk-Fact-2A6E4746722818F53E078095A1865D8B" name="us-gaap:OtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax" contextRef="FD2017Q4YTD_us-gaap_StatementEquityComponentsAxis_us-gaap_AccumulatedOtherComprehensiveIncomeMember" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">703</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;"><span><ix:nonFraction id="d9047537e1986-wk-Fact-2649AF33EDB459FBDB228095A186AC77" name="us-gaap:OtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax" contextRef="FD2017Q4YTD" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">703</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">Reclassification of net realized (gain) loss on the sale of available-for-sale investments</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">&#8212;</span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">&#8212;</span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">&#8212;</span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">&#8212;</span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;"><span>(<ix:nonFraction id="d9047537e2085-wk-Fact-A0BC0330C2316101D8238095A18F60AF" name="us-gaap:OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax" contextRef="FD2017Q4YTD_us-gaap_StatementEquityComponentsAxis_us-gaap_AccumulatedOtherComprehensiveIncomeMember" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">829</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">)</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;"><span>(<ix:nonFraction id="d9047537e2105-wk-Fact-365F7222BF418912580A8095A198B1DD" name="us-gaap:OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax" contextRef="FD2017Q4YTD" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">829</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">)</span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">Foreign currency translation adjustment, net of tax of $0</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">&#8212;</span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">&#8212;</span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">&#8212;</span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">&#8212;</span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;"><span><ix:nonFraction id="d9047537e2204-wk-Fact-488786CA93DBE495C0798095A18DABFF" name="us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax" contextRef="FD2017Q4YTD_us-gaap_StatementEquityComponentsAxis_us-gaap_AccumulatedOtherComprehensiveIncomeMember" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">21,992</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;"><span><ix:nonFraction id="d9047537e2223-wk-Fact-CBF8BB82F455EF0A025A8095A1983172" name="us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax" contextRef="FD2017Q4YTD" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">21,992</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">Balance as of December 31, 2017</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;"><span><ix:nonFraction id="d9047537e2249-wk-Fact-8196B1AF697B90749CC68095A1878769" name="us-gaap:CommonStockSharesIssued" contextRef="FI2017Q4_us-gaap_StatementEquityComponentsAxis_us-gaap_CommonStockMember" unitRef="shares" decimals="-3" scale="3" format="ixt:numdotdecimal">173,507</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">$</span></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;"><span><ix:nonFraction id="d9047537e2268-wk-Fact-4A5017B5BCB9D9B35EEC8095A170D8B2" name="us-gaap:StockholdersEquity" contextRef="FI2017Q4_us-gaap_StatementEquityComponentsAxis_us-gaap_CommonStockMember" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">347</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">$</span></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;"><span><ix:nonFraction id="d9047537e2287-wk-Fact-C1B23D0783F74535B02B8095A187BA66" name="us-gaap:StockholdersEquity" contextRef="FI2017Q4_us-gaap_StatementEquityComponentsAxis_us-gaap_AdditionalPaidInCapitalMember" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">461,338</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">$</span></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;"><span><ix:nonFraction id="d9047537e2307-wk-Fact-87268108E9834933E8DA8095A199AF37" name="us-gaap:StockholdersEquity" contextRef="FI2017Q4_us-gaap_StatementEquityComponentsAxis_us-gaap_RetainedEarningsMember" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">668,587</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">$</span></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;"><span>(<ix:nonFraction id="d9047537e2326-wk-Fact-1E91F36300CFF1EF05778095A18D8B91" name="us-gaap:StockholdersEquity" contextRef="FI2017Q4_us-gaap_StatementEquityComponentsAxis_us-gaap_AccumulatedOtherComprehensiveIncomeMember" unitRef="usd" decimals="-3" scale="3" sign="-" format="ixt:numdotdecimal">34,599</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">)</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:left;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">$</span></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;"><span><ix:nonFraction id="d9047537e2347-wk-Fact-208AF2DD65D7FC5DA7518095A18D579D" name="us-gaap:StockholdersEquity" contextRef="FI2017Q4" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">1,095,673</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">Issuance of common stock under stock plans</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;"><span><ix:nonFraction id="d9047537e2367-wk-Fact-632A4D8EBB7BDB0786E68095A18D1DB4" name="us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised" contextRef="FD2018Q4YTD_us-gaap_StatementEquityComponentsAxis_us-gaap_CommonStockMember" unitRef="shares" decimals="-3" scale="3" format="ixt:numdotdecimal">1,493</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;"><span><ix:nonFraction id="d9047537e2381-wk-Fact-C0E209DF7E08550BB2978095A18E54F4" name="us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised" contextRef="FD2018Q4YTD_us-gaap_StatementEquityComponentsAxis_us-gaap_CommonStockMember" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">3</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;"><span><ix:nonFraction id="d9047537e2400-wk-Fact-6B3E373CC2BF2EA408BA8095A18F4592" name="us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised" contextRef="FD2018Q4YTD_us-gaap_StatementEquityComponentsAxis_us-gaap_AdditionalPaidInCapitalMember" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">26,780</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">&#8212;</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">&#8212;</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;"><span><ix:nonFraction id="d9047537e2458-wk-Fact-85857C0FE8134F1CF63E8095A18670AC" name="us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised" contextRef="FD2018Q4YTD" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">26,783</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">Repurchase of common stock</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;"><span>(<ix:nonFraction id="d9047537e2484-wk-Fact-78CA1F247A094B9A973B8095A18F7B2B" name="us-gaap:StockRepurchasedDuringPeriodShares" contextRef="FD2018Q4YTD_us-gaap_StatementEquityComponentsAxis_us-gaap_CommonStockMember" unitRef="shares" decimals="-3" scale="3" format="ixt:numdotdecimal">4,180</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">)</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;"><span>(<ix:nonFraction id="d9047537e2499-wk-Fact-43A9A2EF2FE1D286A7538095A18D2CD1" name="us-gaap:StockRepurchasedDuringPeriodValue" contextRef="FD2018Q4YTD_us-gaap_StatementEquityComponentsAxis_us-gaap_CommonStockMember" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">8</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">)</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">&#8212;</span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;"><span>(<ix:nonFraction id="d9047537e2539-wk-Fact-DD4A482523388BB758218095A18E8A82" name="us-gaap:StockRepurchasedDuringPeriodValue" contextRef="FD2018Q4YTD_us-gaap_StatementEquityComponentsAxis_us-gaap_RetainedEarningsMember" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">203,814</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">)</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">&#8212;</span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;"><span>(<ix:nonFraction id="d9047537e2578-wk-Fact-513FAFBB2B011831C1E68095A18ECF36" name="us-gaap:StockRepurchasedDuringPeriodValue" contextRef="FD2018Q4YTD" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">203,822</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">)</span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">Stock-based compensation expense</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">&#8212;</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">&#8212;</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;"><span><ix:nonFraction id="d9047537e2638-wk-Fact-550E5840D42187E40AB18095A186401E" name="us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue" contextRef="FD2018Q4YTD_us-gaap_StatementEquityComponentsAxis_us-gaap_AdditionalPaidInCapitalMember" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">41,090</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">&#8212;</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">&#8212;</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;"><span><ix:nonFraction id="d9047537e2696-wk-Fact-671DAE40504148E9B1A38095A199B09D" name="us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue" contextRef="FD2018Q4YTD" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">41,090</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">Payment of dividends</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">&#8212;</span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">&#8212;</span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">&#8212;</span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;"><span>(<ix:nonFraction id="d9047537e2775-wk-Fact-256ED19A8200F2A12B668095A18DD32A" name="us-gaap:DividendsCommonStockCash" contextRef="FD2018Q4YTD_us-gaap_StatementEquityComponentsAxis_us-gaap_RetainedEarningsMember" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">31,865</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">)</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">&#8212;</span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;"><span>(<ix:nonFraction id="d9047537e2814-wk-Fact-A1C910D938D2E744650C8095A198441C" name="us-gaap:DividendsCommonStockCash" contextRef="FD2018Q4YTD" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">31,865</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">)</span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">Adjustment as a result of the adoption of ASU 2016-06 "Income Taxes - Intra-Entity Transfers Other than Inventory" (Note 18)</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">&#8212;</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">&#8212;</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">&#8212;</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;"><span>(<ix:nonFraction id="d9047537e2894-wk-Fact-9FA6580A99EAF4A3A01815F853384C3B" name="us-gaap:CumulativeEffectOfNewAccountingPrincipleInPeriodOfAdoption" contextRef="FI2017Q4_us-gaap_StatementEquityComponentsAxis_us-gaap_RetainedEarningsMember" unitRef="usd" decimals="-3" scale="3" sign="-" format="ixt:numdotdecimal">5,961</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">)</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">&#8212;</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;"><span>(<ix:nonFraction id="d9047537e2933-wk-Fact-297F5B9376F53ED3600A15F90FB4CBE0" name="us-gaap:CumulativeEffectOfNewAccountingPrincipleInPeriodOfAdoption" contextRef="FI2017Q4" unitRef="usd" decimals="-3" scale="3" sign="-" format="ixt:numdotdecimal">5,961</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">)</span></div></td></tr><tr><td style="vertical-align:top;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">Net income</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">&#8212;</span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">&#8212;</span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">&#8212;</span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;"><span><ix:nonFraction id="d9047537e3013-wk-Fact-5DDF74EC3124404949448095A198D9B6" name="us-gaap:NetIncomeLoss" contextRef="FD2018Q4YTD_us-gaap_StatementEquityComponentsAxis_us-gaap_RetainedEarningsMember" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">219,267</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">&#8212;</span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;"><span><ix:nonFraction id="d9047537e3051-wk-Fact-1AC51EC9E270CE718EBD8095A18E3121" name="us-gaap:NetIncomeLoss" contextRef="FD2018Q4YTD" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">219,267</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">Net unrealized gain (loss) on available-for-sale investments, net of tax of ($188)</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">&#8212;</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">&#8212;</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">&#8212;</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">&#8212;</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;"><span>(<ix:nonFraction id="d9047537e3149-wk-Fact-6E6076120702385C5CC48095A18DE614" name="us-gaap:OtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax" contextRef="FD2018Q4YTD_us-gaap_StatementEquityComponentsAxis_us-gaap_AccumulatedOtherComprehensiveIncomeMember" unitRef="usd" decimals="-3" scale="3" sign="-" format="ixt:numdotdecimal">1,185</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">)</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;"><span>(<ix:nonFraction id="d9047537e3169-wk-Fact-1EB19325C22C5963C4518095A198EE2F" name="us-gaap:OtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax" contextRef="FD2018Q4YTD" unitRef="usd" decimals="-3" scale="3" sign="-" format="ixt:numdotdecimal">1,185</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">)</span></div></td></tr><tr><td style="vertical-align:top;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">Reclassification of net realized (gain) loss on the sale of available-for-sale investments</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">&#8212;</span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">&#8212;</span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">&#8212;</span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">&#8212;</span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;"><span>(<ix:nonFraction id="d9047537e3268-wk-Fact-0F26117749BD6AFDD12E8095A18E35DA" name="us-gaap:OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax" contextRef="FD2018Q4YTD_us-gaap_StatementEquityComponentsAxis_us-gaap_AccumulatedOtherComprehensiveIncomeMember" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">501</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">)</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;"><span>(<ix:nonFraction id="d9047537e3288-wk-Fact-D5FB4181AACCF5EC38828095A1853D44" name="us-gaap:OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax" contextRef="FD2018Q4YTD" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">501</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">)</span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">Foreign currency translation adjustment, net of tax of $0</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">&#8212;</span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">&#8212;</span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">&#8212;</span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">&#8212;</span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;"><span>(<ix:nonFraction id="d9047537e3388-wk-Fact-4DA6BF279BCFF15A7D128095A1863625" name="us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax" contextRef="FD2018Q4YTD_us-gaap_StatementEquityComponentsAxis_us-gaap_AccumulatedOtherComprehensiveIncomeMember" unitRef="usd" decimals="-3" scale="3" sign="-" format="ixt:numdotdecimal">4,216</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">)</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;"><span>(<ix:nonFraction id="d9047537e3408-wk-Fact-926E0D61C87F4EC5C4DE8095A171F3CA" name="us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax" contextRef="FD2018Q4YTD" unitRef="usd" decimals="-3" scale="3" sign="-" format="ixt:numdotdecimal">4,216</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">)</span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">Balance as of December 31, 2018</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;"><span><ix:nonFraction id="d9047537e3435-wk-Fact-14BD9D0FA11EC718E9C48095A18C0BCD" name="us-gaap:CommonStockSharesIssued" contextRef="FI2018Q4_us-gaap_StatementEquityComponentsAxis_us-gaap_CommonStockMember" unitRef="shares" decimals="-3" scale="3" format="ixt:numdotdecimal">170,820</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">$</span></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;"><span><ix:nonFraction id="d9047537e3454-wk-Fact-895B97023DE93F1B398E8095A18712B2" name="us-gaap:StockholdersEquity" contextRef="FI2018Q4_us-gaap_StatementEquityComponentsAxis_us-gaap_CommonStockMember" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">342</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">$</span></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;"><span><ix:nonFraction id="d9047537e3473-wk-Fact-A948B583008DE67591E98095A18DF5FE" name="us-gaap:StockholdersEquity" contextRef="FI2018Q4_us-gaap_StatementEquityComponentsAxis_us-gaap_AdditionalPaidInCapitalMember" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">529,208</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">$</span></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;"><span><ix:nonFraction id="d9047537e3493-wk-Fact-696435B72DCA66F6B2C58095A1870320" name="us-gaap:StockholdersEquity" contextRef="FI2018Q4_us-gaap_StatementEquityComponentsAxis_us-gaap_RetainedEarningsMember" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">646,214</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">$</span></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;"><span>(<ix:nonFraction id="d9047537e3512-wk-Fact-94AE3EFFD8CDE05C2B9D8095A18EA568" name="us-gaap:StockholdersEquity" contextRef="FI2018Q4_us-gaap_StatementEquityComponentsAxis_us-gaap_AccumulatedOtherComprehensiveIncomeMember" unitRef="usd" decimals="-3" scale="3" sign="-" format="ixt:numdotdecimal">40,501</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">)</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">$</span></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;"><span><ix:nonFraction id="d9047537e3533-wk-Fact-F33407DFC1DCE288A4348095A18C5D27" name="us-gaap:StockholdersEquity" contextRef="FI2018Q4" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">1,135,263</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">Issuance of common stock under stock plans</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;"><span><ix:nonFraction id="d9047537e3553-wk-Fact-986704192B08E2CD48178095A18E4EAF" name="us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised" contextRef="FD2019Q4YTD_us-gaap_StatementEquityComponentsAxis_us-gaap_CommonStockMember" unitRef="shares" decimals="-3" scale="3" format="ixt:numdotdecimal">3,018</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;"><span><ix:nonFraction id="d9047537e3567-wk-Fact-5F02AAD6848DEB58B6878095A18DD83F" name="us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised" contextRef="FD2019Q4YTD_us-gaap_StatementEquityComponentsAxis_us-gaap_CommonStockMember" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">6</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;"><span><ix:nonFraction id="d9047537e3586-wk-Fact-54ACEEE7AC1CF0AF0EC18095A18D8654" name="us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised" contextRef="FD2019Q4YTD_us-gaap_StatementEquityComponentsAxis_us-gaap_AdditionalPaidInCapitalMember" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">64,575</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">&#8212;</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">&#8212;</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;"><span><ix:nonFraction id="d9047537e3644-wk-Fact-112D3EBB8630F4D3C5BD8095A18E5D4F" name="us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised" contextRef="FD2019Q4YTD" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">64,581</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">Repurchase of common stock</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;"><span>(<ix:nonFraction id="d9047537e3670-wk-Fact-8C5B3621FD304754CCC88095A18E09CD" name="us-gaap:StockRepurchasedDuringPeriodShares" contextRef="FD2019Q4YTD_us-gaap_StatementEquityComponentsAxis_us-gaap_CommonStockMember" unitRef="shares" decimals="-3" scale="3" format="ixt:numdotdecimal">1,398</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">)</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;"><span>(<ix:nonFraction id="d9047537e3685-wk-Fact-AD52A0BD083F216E98D18095A170069F" name="us-gaap:StockRepurchasedDuringPeriodValue" contextRef="FD2019Q4YTD_us-gaap_StatementEquityComponentsAxis_us-gaap_CommonStockMember" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">3</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">)</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">&#8212;</span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;"><span>(<ix:nonFraction id="d9047537e3725-wk-Fact-A821DDA6ECECA13BEF9B8095A18E66CE" name="us-gaap:StockRepurchasedDuringPeriodValue" contextRef="FD2019Q4YTD_us-gaap_StatementEquityComponentsAxis_us-gaap_RetainedEarningsMember" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">61,687</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">)</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">&#8212;</span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;"><span>(<ix:nonFraction id="d9047537e3764-wk-Fact-5D2D9093680F05E0CC878095A18ED23A" name="us-gaap:StockRepurchasedDuringPeriodValue" contextRef="FD2019Q4YTD" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">61,690</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">)</span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">Stock-based compensation expense</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">&#8212;</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">&#8212;</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;"><span><ix:nonFraction id="d9047537e3824-wk-Fact-4D85564413F6BE09D8918095A18DCB2D" name="us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue" contextRef="FD2019Q4YTD_us-gaap_StatementEquityComponentsAxis_us-gaap_AdditionalPaidInCapitalMember" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">45,589</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">&#8212;</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">&#8212;</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;"><span><ix:nonFraction id="d9047537e3882-wk-Fact-FCFAF142A9B795EF70E08095A18765D1" name="us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue" contextRef="FD2019Q4YTD" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">45,589</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">Payment of dividends</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">&#8212;</span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">&#8212;</span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">&#8212;</span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;"><span>(<ix:nonFraction id="d9047537e3961-wk-Fact-880A0D55DE9642B1D56B8095A18E82A2" name="us-gaap:DividendsCommonStockCash" contextRef="FD2019Q4YTD_us-gaap_StatementEquityComponentsAxis_us-gaap_RetainedEarningsMember" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">35,124</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">)</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">&#8212;</span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;"><span>(<ix:nonFraction id="d9047537e4000-wk-Fact-2AB12BBD4BAB5BB3E8328095A19932A6" name="us-gaap:DividendsCommonStockCash" contextRef="FD2019Q4YTD" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">35,124</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">)</span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">Net income</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">&#8212;</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">&#8212;</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">&#8212;</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;"><span><ix:nonFraction id="d9047537e4080-wk-Fact-AD63A240E975EA8D87988095A18E12CB" name="us-gaap:NetIncomeLoss" contextRef="FD2019Q4YTD_us-gaap_StatementEquityComponentsAxis_us-gaap_RetainedEarningsMember" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">203,865</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">&#8212;</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;"><span><ix:nonFraction id="d9047537e4118-wk-Fact-7A2F7F14108749D162188095A17CA207" name="us-gaap:NetIncomeLoss" contextRef="FD2019Q4YTD" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">203,865</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">Net unrealized gain (loss) on available-for-sale investments, net of tax of $515</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">&#8212;</span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">&#8212;</span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">&#8212;</span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">&#8212;</span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;"><span><ix:nonFraction id="d9047537e4216-wk-Fact-A62E62FE8F7A290826278095A18721C6" name="us-gaap:OtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax" contextRef="FD2019Q4YTD_us-gaap_StatementEquityComponentsAxis_us-gaap_AccumulatedOtherComprehensiveIncomeMember" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">5,219</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;"><span><ix:nonFraction id="d9047537e4235-wk-Fact-C853D237AA029C0D23CB8095A198A145" name="us-gaap:OtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax" contextRef="FD2019Q4YTD" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">5,219</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">Reclassification of net realized (gain) loss on the sale of available-for-sale investments</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">&#8212;</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">&#8212;</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">&#8212;</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">&#8212;</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;"><span>(<ix:nonFraction id="d9047537e4333-wk-Fact-B19F70CC5D3A31D449118095A1868FE5" name="us-gaap:OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax" contextRef="FD2019Q4YTD_us-gaap_StatementEquityComponentsAxis_us-gaap_AccumulatedOtherComprehensiveIncomeMember" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">1,452</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">)</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;"><span>(<ix:nonFraction id="d9047537e4353-wk-Fact-1567E4B2250861FD85178095A199E5ED" name="us-gaap:OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax" contextRef="FD2019Q4YTD" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">1,452</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">)</span></div></td></tr><tr><td style="vertical-align:top;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">Foreign currency translation adjustment, net of tax of $0</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">&#8212;</span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">&#8212;</span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">&#8212;</span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">&#8212;</span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;"><span>(<ix:nonFraction id="d9047537e4452-wk-Fact-74299650C75602D626A58095A17094D1" name="us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax" contextRef="FD2019Q4YTD_us-gaap_StatementEquityComponentsAxis_us-gaap_AccumulatedOtherComprehensiveIncomeMember" unitRef="usd" decimals="-3" scale="3" sign="-" format="ixt:numdotdecimal">541</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">)</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;"><span>(<ix:nonFraction id="d9047537e4472-wk-Fact-C43E1D54DB9ED91AE9648095A16B2041" name="us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax" contextRef="FD2019Q4YTD" unitRef="usd" decimals="-3" scale="3" sign="-" format="ixt:numdotdecimal">541</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">)</span></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;">Balance as of December 31, 2019</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;"><span><ix:nonFraction id="d9047537e4499-wk-Fact-214CF4D911CA612E8EF28095A18DBA24" name="us-gaap:CommonStockSharesIssued" contextRef="FI2019Q4_us-gaap_StatementEquityComponentsAxis_us-gaap_CommonStockMember" unitRef="shares" decimals="-3" scale="3" format="ixt:numdotdecimal">172,440</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;"><span><ix:nonFraction id="d9047537e4518-wk-Fact-359B3D32A906FF2F38BD8095A18DAB26" name="us-gaap:StockholdersEquity" contextRef="FI2019Q4_us-gaap_StatementEquityComponentsAxis_us-gaap_CommonStockMember" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">345</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;"><span><ix:nonFraction id="d9047537e4537-wk-Fact-BE35B333560C4EBA7CFA8095A1871D2E" name="us-gaap:StockholdersEquity" contextRef="FI2019Q4_us-gaap_StatementEquityComponentsAxis_us-gaap_AdditionalPaidInCapitalMember" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">639,372</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;"><span><ix:nonFraction id="d9047537e4557-wk-Fact-9734CC62E5F44F81C8B48095A1988F00" name="us-gaap:StockholdersEquity" contextRef="FI2019Q4_us-gaap_StatementEquityComponentsAxis_us-gaap_RetainedEarningsMember" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">753,268</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;"><span>(<ix:nonFraction id="d9047537e4576-wk-Fact-8696A7066648E88A5F4E8095A18DEC85" name="us-gaap:StockholdersEquity" contextRef="FI2019Q4_us-gaap_StatementEquityComponentsAxis_us-gaap_AccumulatedOtherComprehensiveIncomeMember" unitRef="usd" decimals="-3" scale="3" sign="-" format="ixt:numdotdecimal">37,275</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;">)</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;"><span><ix:nonFraction id="d9047537e4597-wk-Fact-751ED66657CA2A1D86818095A1860236" name="us-gaap:StockholdersEquity" contextRef="FI2019Q4" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">1,355,710</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:6px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:6px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:6px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:6px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:6px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:6px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:6px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:6px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:6px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:6px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:6px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:6px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:6px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td></tr><tr><td colspan="24" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">(1) Prior period amounts have been adjusted to reflect the two-for-one stock split effected in the form of a stock dividend which occurred in the fourth quarter of 2017.</span></div><div style="text-align:left;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;"><br/></span></div></td></tr></table></div></div><div style="line-height:120%;text-align:center;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><br/></span></div><div style="line-height:120%;text-align:center;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><br/></span></div><div style="line-height:120%;text-align:center;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><br/></span></div><div style="line-height:120%;text-align:center;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><br/></span></div><div style="line-height:120%;text-align:center;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><br/></span></div><div style="line-height:120%;text-align:center;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">The accompanying notes are an integral part of these consolidated financial statements.</span></div><div><br/></div><div style="text-align:center;"><div style="line-height:120%;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">41</span></div></div><hr style="page-break-after:always"></hr><div><a id="sDCADA852CFC65797B78720ED229DEAF2"></a></div><div><div style="line-height:120%;font-size:9pt;"><a style="font-family:inherit;font-size:9pt;" href="#sCD449198B5695D85B5494CF5DF708C26"><span style="font-family:inherit;font-size:9pt;">Table of Contents</span></a></div><div style="line-height:120%;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><br/></span></div><div style="line-height:120%;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">COGNEX CORPORATION - NOTES TO CONSOLIDATED FINANCIAL STATEMENTS</span></div></div><div><br/></div><div style="line-height:120%;font-size:6pt;"><span style="font-family:Arial;font-size:6pt;"><br/></span></div><div><a id="sBE8FE055196658AA9179FCFA3E97C7A8"></a></div><div style="line-height:120%;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">NOTE 1:&#160;&#160;<ix:nonNumeric contextRef="FD2019Q4YTD" name="us-gaap:SignificantAccountingPoliciesTextBlock" id="TextSelection-5F447AE7E4EF7F4830048095A1A77FB3-0-wk-Fact-103D7370D7BFFC95C1B18095A17236CC" continuedAt="TextSelection-5F447AE7E4EF7F4830048095A1A77FB3-1" escape="true">Summary of Significant Accounting Policies</ix:nonNumeric></span></div><ix:continuation id="TextSelection-5F447AE7E4EF7F4830048095A1A77FB3-1" continuedAt="TextSelection-5F447AE7E4EF7F4830048095A1A77FB3-2"><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">The accompanying consolidated financial statements reflect the application of the significant accounting policies described below.</span></div><ix:nonNumeric contextRef="FD2019Q4YTD" name="cgnx:NatureOfOperationsPolicyTextBlock" id="TextSelection-E927F48CD072188847BC8095A1A76873-0-wk-Fact-4C30E9D884938878B4538095A1744D42" escape="true"><div style="line-height:120%;padding-bottom:6px;padding-top:12px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;text-decoration:underline;">Nature of Operations</span></div><div style="line-height:120%;padding-bottom:6px;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Cognex Corporation is a leading provider of machine vision products that capture and analyze visual information in order to automate manufacturing and distribution tasks where vision is required.</span></div></ix:nonNumeric><ix:nonNumeric contextRef="FD2019Q4YTD" name="us-gaap:UseOfEstimates" id="TextSelection-06E5F9740E6EF0B255828095A1A754BB-0-wk-Fact-436EC985EE5D2E10DDC88095A171F145" escape="true"><div style="line-height:120%;padding-bottom:6px;padding-top:12px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;text-decoration:underline;">Use of Estimates in the Preparation of Financial Statements</span></div><div style="line-height:120%;padding-bottom:6px;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">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, accounts receivable, inventories, leases, long-lived assets, internal-use software, goodwill, warranty obligations, contingencies, derivative instruments, stock-based compensation, income taxes, and business combinations.</span></div></ix:nonNumeric><ix:nonNumeric contextRef="FD2019Q4YTD" name="us-gaap:ConsolidationPolicyTextBlock" id="TextSelection-3BFE7166368262FF31A48095A1A705B4-0-wk-Fact-51C9377C06C0DC9C80148095A172067E" escape="true"><div style="line-height:120%;padding-bottom:6px;padding-top:12px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;text-decoration:underline;">Basis of Consolidation</span></div><div style="line-height:120%;padding-bottom:6px;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">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="FD2019Q4YTD" name="us-gaap:ForeignCurrencyTransactionsAndTranslationsPolicyTextBlock" id="TextSelection-D60399509A6EEB9731528095A1A78B0E-0-wk-Fact-7DC9DF3D946D53719E258095A1729051" escape="true"><div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;text-decoration:underline;">Foreign Currency Translation</span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">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 recorded in shareholders&#8217; equity as other comprehensive income (loss).</span></div></ix:nonNumeric><ix:nonNumeric contextRef="FD2019Q4YTD" name="us-gaap:FairValueOfFinancialInstrumentsPolicy" id="TextSelection-5BE74C4E36233ABCAB628095A1A77DCC-0-wk-Fact-0F7B0F873DFB39CD3A8F8095A172927D" escape="true"><div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;text-decoration:underline;">Fair Value Measurements</span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">The Company applies a three-level valuation hierarchy for fair value measurements.  The categorization of assets and liabilities within the valuation hierarchy is based upon 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 upon 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="FD2019Q4YTD" name="us-gaap:CashAndCashEquivalentsPolicyTextBlock" id="TextSelection-625624401A87568A1C328095A1A72F71-0-wk-Fact-9CDB27AF1650E97F55B48095A1726C1D" continuedAt="TextSelection-625624401A87568A1C328095A1A72F71-1" escape="true"><div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;text-decoration:underline;">Cash, Cash Equivalents, and Investments</span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Money market instruments, as well as certificates of deposits and debt securities with original maturities of three months or less, are classified as cash equivalents and are stated at amortized cost.  Certificates of deposit and debt securities with original maturities greater than three months and remaining maturities of one year or less are classified as short-term investments.  Debt securities with remaining maturities greater than one year are classified as long-term investments.  It is the Company&#8217;s policy to invest in debt securities with effective maturities that do not exceed </span><span style="font-family:Arial;font-size:10pt;"><span><ix:nonNumeric id="d9048161e769-wk-Fact-4E0DD2C02485939B23B88496EF3077AB" name="cgnx:AvailableforsaleSecuritiesDebtMaturitiesEffectiveTermMaximum" contextRef="FD2019Q4YTD" format="ixt-sec:durwordsen">ten years</ix:nonNumeric></span></span><span style="font-family:Arial;font-size:10pt;">.</span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">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, recorded in shareholders&#8217; equity as other comprehensive income (loss).  Realized gains and losses are included in current operations, along with the amortization of the discount or premium on debt securities arising at acquisition, and are calculated using the specific identification method.  The Company&#8217;s limited partnership interest is accounted for using the cost method because the Company&#8217;s investment is less than </span><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9048161e776-wk-Fact-77F8B1A1F11B7EBE75CB8095A174ED58" name="cgnx:MaximumInvestmentOfCompanyInPartnership" contextRef="FD2019Q4YTD" unitRef="number" decimals="INF" scale="-2" format="ixt:numdotdecimal">5</ix:nonFraction>%</span></span><span style="font-family:Arial;font-size:10pt;"> of the partnership and the Company has no influence over the partnership&#8217;s operating and financial policies.  The carrying value of this investment has been reduced to zero, and therefore, distributions are recorded as investment income as they occur.  </span></div></ix:nonNumeric></ix:continuation><div><br/></div><div style="text-align:center;"><div style="line-height:120%;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">42</span></div></div><hr style="page-break-after:always"></hr><div><div style="line-height:120%;font-size:9pt;"><a style="font-family:inherit;font-size:9pt;" href="#sCD449198B5695D85B5494CF5DF708C26"><span style="font-family:inherit;font-size:9pt;">Table of Contents</span></a></div><div style="line-height:120%;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><br/></span></div><div style="line-height:120%;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">COGNEX CORPORATION - NOTES TO CONSOLIDATED FINANCIAL STATEMENTS</span></div></div><div><br/></div><ix:continuation id="TextSelection-5F447AE7E4EF7F4830048095A1A77FB3-2" continuedAt="TextSelection-5F447AE7E4EF7F4830048095A1A77FB3-3"><ix:continuation id="TextSelection-625624401A87568A1C328095A1A72F71-1"><div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Management monitors the carrying value of its investments in debt securities compared to their fair value to determine whether an other-than-temporary impairment has occurred.  If the fair value of a debt security is less than its amortized cost, the Company assesses whether the impairment is other-than-temporary.  In considering whether a decline in fair value is other-than-temporary, we consider many factors.  In its evaluation of its debt securities, management considers the type of security, the credit rating of the security, the length of time the security has been in a loss position, the size of the loss position, our intent and ability to hold the security to expected recovery of value, and other meaningful information.  An impairment is considered other-than-temporary if (i)&#160;the Company has the intent to sell the security, (ii)&#160;it is more likely than not that the Company will be required to sell the security before recovery of the entire amortized cost basis, or (iii)&#160;the Company does not expect to recover the entire amortized cost basis of the security.  If impairment is considered other-than-temporary based upon condition (i)&#160;or (ii)&#160;described above, the entire difference between the amortized cost and the fair value of the security is recognized in current operations.  If an impairment is considered other-than-temporary based upon condition (iii), the amount representing credit losses (defined as the difference between the present value of the cash flows expected to be collected and the amortized cost basis of the security) is recognized in current operations and the amount relating to all other factors is recognized in shareholders' equity as other comprehensive income (loss). </span></div></ix:continuation><ix:nonNumeric contextRef="FD2019Q4YTD" name="us-gaap:ReceivablesPolicyTextBlock" id="TextSelection-17A51A29F97B15806A3F8095A1A719F7-0-wk-Fact-1C64EB51CCFFAB9EDA4F8095A1722FC7" escape="true"><div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;text-decoration:underline;">Accounts Receivable</span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">The Company extends credit with various payment terms to customers based upon an evaluation of their financial condition.  Accounts that are outstanding longer than the payment terms are considered to be past due.  The Company establishes reserves against accounts receivable for potential credit losses and records bad debt expense in current operations when it determines receivables are at risk for collection based upon the length of time the receivable has been outstanding, the customer&#8217;s current ability to pay its obligations to the Company, general economic and industry conditions, as well as various other factors.  Receivables are written off against these reserves in the period they are determined to be uncollectible and payments subsequently received on previously written-off receivables are recorded as a reversal of the bad debt expense.</span></div></ix:nonNumeric><ix:nonNumeric contextRef="FD2019Q4YTD" name="us-gaap:InventoryPolicyTextBlock" id="TextSelection-24AA15BF352ACDB5FAD18095A1A7B182-0-wk-Fact-45E0D9D1784567937EB88095A17167E1" escape="true"><div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;text-decoration:underline;">Inventories</span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">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 prices in the ordinary course of business, less reasonably predictable costs of completion, disposal, and transportation.</span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">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 upon assumptions about future demand, product transitions, and market conditions, 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="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">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 would recognize a higher than normal gross margin if the reserved inventory were subsequently sold.</span></div></ix:nonNumeric><ix:nonNumeric contextRef="FD2019Q4YTD" name="us-gaap:PropertyPlantAndEquipmentPolicyTextBlock" id="TextSelection-2C4ADAEFF1CEC196161A8095A1A72A26-0-wk-Fact-A31765549B007087570C8095A1724A8D" escape="true"><div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;text-decoration:underline;">Property, Plant, and Equipment</span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">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 </span><span style="font-family:Arial;font-size:10pt;"><span><ix:nonNumeric id="d9048161e856-wk-Fact-FD1AF8B32F6A81ED8D4C84983DDF66FE" name="us-gaap:PropertyPlantAndEquipmentUsefulLife" contextRef="FD2019Q4YTD_us-gaap_PropertyPlantAndEquipmentByTypeAxis_us-gaap_BuildingMember" format="ixt-sec:duryear">39</ix:nonNumeric> years</span></span><span style="font-family:Arial;font-size:10pt;">, building improvements&#8217; useful lives are </span><span style="font-family:Arial;font-size:10pt;"><span><ix:nonNumeric id="d9048161e860-wk-Fact-A9A3EE6FC337DB34CC9684993C607109" name="us-gaap:PropertyPlantAndEquipmentUsefulLife" contextRef="FD2019Q4YTD_us-gaap_PropertyPlantAndEquipmentByTypeAxis_us-gaap_BuildingImprovementsMember" format="ixt-sec:durwordsen">ten years</ix:nonNumeric></span></span><span style="font-family:Arial;font-size:10pt;">, and the useful lives of computer hardware and software, manufacturing test equipment, and furniture and fixtures range from </span><span style="font-family:Arial;font-size:10pt;">two</span><span style="font-family:Arial;font-size:10pt;"> to </span><span style="font-family:Arial;font-size:10pt;"><span><ix:nonNumeric id="d9048161e868-wk-Fact-B8B32C4A3AAA1125E495849A2E40AD48" name="us-gaap:PropertyPlantAndEquipmentUsefulLife" contextRef="FD2019Q4YTD_srt_RangeAxis_srt_MaximumMember_us-gaap_PropertyPlantAndEquipmentByTypeAxis_cgnx_ComputerHardwareAndSoftwareMember" format="ixt-sec:durwordsen">ten years</ix:nonNumeric></span></span><span style="font-family:Arial;font-size:10pt;">.  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><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;text-decoration:underline;">Leases</span></div><div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">The Company accounts for leases in accordance with Accounting Standard Codification (ASC) 842, "Leases."  The core principle of ASC 842 is that a lessee should recognize on the balance sheet the assets and liabilities that arise from leases.  </span></div></ix:continuation><div><br/></div><div style="text-align:center;"><div style="line-height:120%;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">43</span></div></div><hr style="page-break-after:always"></hr><div><div style="line-height:120%;font-size:9pt;"><a style="font-family:inherit;font-size:9pt;" href="#sCD449198B5695D85B5494CF5DF708C26"><span style="font-family:inherit;font-size:9pt;">Table of Contents</span></a></div><div style="line-height:120%;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><br/></span></div><div style="line-height:120%;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">COGNEX CORPORATION - NOTES TO CONSOLIDATED FINANCIAL STATEMENTS</span></div></div><div><br/></div><ix:continuation id="TextSelection-5F447AE7E4EF7F4830048095A1A77FB3-3" continuedAt="TextSelection-5F447AE7E4EF7F4830048095A1A77FB3-4"><div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">At inception of a contract, the Company determines whether that contract is or contains a lease. The Company determines whether a contract 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="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">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="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Lease contracts may include 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="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">The Company classifies a lease as a finance lease when it meets any of the following criteria at the lease commencement date: a) the lease transfers ownership of the underlying asset to the Company by the end of the lease term; b) the lease grants the Company an option to purchase the underlying asset that the Company is reasonably certain to exercise; c) 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); d) 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 e) 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="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">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 is the three-month London Interbank Offered Rate (LIBOR) plus a 2.5% credit risk spread.</span></div><div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">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="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;text-decoration:underline;">Internal-use Software</span></div><div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Internal-use software is software acquired, internally developed, or modified solely to meet the entity'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 upon 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="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">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="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><br/></span></div><div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><br/></span></div><div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><br/></span></div></ix:continuation><div><br/></div><div style="text-align:center;"><div style="line-height:120%;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">44</span></div></div><hr style="page-break-after:always"></hr><div><div style="line-height:120%;font-size:9pt;"><a style="font-family:inherit;font-size:9pt;" href="#sCD449198B5695D85B5494CF5DF708C26"><span style="font-family:inherit;font-size:9pt;">Table of Contents</span></a></div><div style="line-height:120%;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><br/></span></div><div style="line-height:120%;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">COGNEX CORPORATION - NOTES TO CONSOLIDATED FINANCIAL STATEMENTS</span></div></div><div><br/></div><ix:continuation id="TextSelection-5F447AE7E4EF7F4830048095A1A77FB3-4" continuedAt="TextSelection-5F447AE7E4EF7F4830048095A1A77FB3-5"><ix:nonNumeric contextRef="FD2019Q4YTD" name="us-gaap:GoodwillAndIntangibleAssetsGoodwillPolicy" id="TextSelection-3C65F29AB24511D9D2E58095A1A75C57-0-wk-Fact-A9F7118F7EBAD37215BD8095A1737A89" continuedAt="TextSelection-3C65F29AB24511D9D2E58095A1A75C57-1" escape="true"><div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;text-decoration:underline;">Goodwill</span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Goodwill is stated at cost.  The Company evaluates the possible 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 macroeconomic conditions, industry and market considerations, overall financial performance (both current and projected), changes in management or 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 amount, the entity 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 amount 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 upon a discounted cash flow model.  In addition, the Company uses the market approach, which compares the reporting unit to publicly-traded companies and transactions involving similar businesses, to support the conclusions based upon the income approach. </span></div></ix:nonNumeric><ix:nonNumeric contextRef="FD2019Q4YTD" name="us-gaap:IntangibleAssetsFiniteLivedPolicy" id="TextSelection-F7E893AAE30B395A54A98095A1A7A02F-0-wk-Fact-00BE403EEDEE92D5C7C18095A1724A13" escape="true"><div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;text-decoration:underline;"><ix:continuation id="TextSelection-3C65F29AB24511D9D2E58095A1A75C57-1"></ix:continuation>Intangible Assets</span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">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 upon facts and circumstances.  The useful lives of distribution networks range from </span><span style="font-family:Arial;font-size:10pt;">eleven</span><span style="font-family:Arial;font-size:10pt;"> to </span><span style="font-family:Arial;font-size:10pt;"><span><ix:nonNumeric id="d9048161e955-wk-Fact-DFDD58287F29FD2CDD5584A1BFDA6ECD" name="us-gaap:FiniteLivedIntangibleAssetUsefulLife" contextRef="FD2019Q4YTD_srt_RangeAxis_srt_MaximumMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_DistributionRightsMember" format="ixt-sec:durwordsen">twelve years</ix:nonNumeric></span></span><span style="font-family:Arial;font-size:10pt;">, of completed technologies from </span><span style="font-family:Arial;font-size:10pt;">five</span><span style="font-family:Arial;font-size:10pt;"> to </span><span style="font-family:Arial;font-size:10pt;"><span><ix:nonNumeric id="d9048161e963-wk-Fact-95E4A50A4622CB52EFF584A331B6BBEF" name="us-gaap:FiniteLivedIntangibleAssetUsefulLife" contextRef="FD2019Q4YTD_srt_RangeAxis_srt_MaximumMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_cgnx_CompletedTechnologiesAndOtherIntangibleAssetsMember" format="ixt-sec:durwordsen">eight years</ix:nonNumeric></span></span><span style="font-family:Arial;font-size:10pt;">, of customer relationships from </span><span style="font-family:Arial;font-size:10pt;">five</span><span style="font-family:Arial;font-size:10pt;"> to </span><span style="font-family:Arial;font-size:10pt;"><span><ix:nonNumeric id="d9048161e972-wk-Fact-FF90B40A29D6E8F7341D84A28D570ABB" name="us-gaap:FiniteLivedIntangibleAssetUsefulLife" contextRef="FD2019Q4YTD_srt_RangeAxis_srt_MaximumMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_cgnx_CustomerContractsAndRelationshipsMember" format="ixt-sec:durwordsen">eight years</ix:nonNumeric></span></span><span style="font-family:Arial;font-size:10pt;">, of non-compete agreements from </span><span style="font-family:Arial;font-size:10pt;">three</span><span style="font-family:Arial;font-size:10pt;"> to </span><span style="font-family:Arial;font-size:10pt;"><span><ix:nonNumeric id="d9048161e980-wk-Fact-C86A251DA064F34B07FF166A0E9493FF" name="us-gaap:FiniteLivedIntangibleAssetUsefulLife" contextRef="FD2019Q4YTD_srt_RangeAxis_srt_MaximumMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_NoncompeteAgreementsMember" format="ixt-sec:durwordsen">seven years</ix:nonNumeric></span></span><span style="font-family:Arial;font-size:10pt;">, and trademarks </span><span style="font-family:Arial;font-size:10pt;"><span><ix:nonNumeric id="d9048161e984-wk-Fact-CD33DC9EE00E4A97151E17BBD5AA6CF8" name="us-gaap:FiniteLivedIntangibleAssetUsefulLife" contextRef="FD2019Q4YTD_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_TrademarksMember" format="ixt-sec:durwordsen">two years</ix:nonNumeric></span></span><span style="font-family:Arial;font-size:10pt;">.  In-process technology is  an indefinite-lived intangible asset until the technology is finalized, at which point it is amortized over its estimated useful life.  The Company evaluates the possible impairment of long-lived assets, including intangible assets, whenever events or circumstances indicate the carrying value of the assets may not be recoverable. At the occurrence of a certain event or change in circumstances, the Company evaluates the potential impairment of an asset by estimating the future undiscounted cash flows expected to result from the use and eventual disposition of the asset.  If the sum of the estimated future cash flows is less than the carrying value, the Company determines the amount of such impairment by comparing the fair value of the asset to its carrying value.  The fair value is based upon the present value of the estimated future cash flows using a discount rate commensurate with the risks involved.</span></div></ix:nonNumeric><ix:nonNumeric contextRef="FD2019Q4YTD" name="us-gaap:StandardProductWarrantyPolicy" id="TextSelection-EB6F517A0A3A8450A51C8095A1A7C81B-0-wk-Fact-0A6CFCCF9B757A945A878095A173C6FF" escape="true"><div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;text-decoration:underline;">Warranty Obligations</span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">The Company warrants its products to be free from defects in material and workmanship for periods primarily ranging from </span><span style="font-family:Arial;font-size:10pt;">one</span><span style="font-family:Arial;font-size:10pt;"> to </span><span style="font-family:Arial;font-size:10pt;"><span><ix:nonNumeric id="d9048161e1022-wk-Fact-BB51E65A25B9DC5596E684A9849BF7CB" name="cgnx:ProductWarrantyPeriod" contextRef="FD2019Q4YTD_srt_RangeAxis_srt_MaximumMember" format="ixt-sec:durwordsen">three years</ix:nonNumeric></span></span><span style="font-family:Arial;font-size:10pt;"> from the time of sale based upon 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 upon 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="FD2019Q4YTD" name="us-gaap:CommitmentsAndContingenciesPolicyTextBlock" id="TextSelection-3A4CE66C552C835C6C568095A1A788A2-0-wk-Fact-7EE89D1861D05EFEE9A48095A17307A2" escape="true"><div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;text-decoration:underline;">Contingencies</span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">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, such as patent infringement matters, are expensed as incurred.</span></div></ix:nonNumeric><ix:nonNumeric contextRef="FD2019Q4YTD" name="us-gaap:RevenueRecognitionPolicyTextBlock" id="TextSelection-50D04527AC96CD36763A8095A1A77984-0-wk-Fact-37DFDB9EC4740E6FCBF58095A1732899" continuedAt="TextSelection-50D04527AC96CD36763A8095A1A77984-1" escape="true"><div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;text-decoration:underline;">Revenue Recognition</span></div><div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">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="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-style:italic;">Identifying the Contract with the Customer</span></div><div style="line-height:120%;padding-top:4px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">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.  </span></div></ix:nonNumeric></ix:continuation><div><br/></div><div style="text-align:center;"><div style="line-height:120%;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">45</span></div></div><hr style="page-break-after:always"></hr><div><div style="line-height:120%;font-size:9pt;"><a style="font-family:inherit;font-size:9pt;" href="#sCD449198B5695D85B5494CF5DF708C26"><span style="font-family:inherit;font-size:9pt;">Table of Contents</span></a></div><div style="line-height:120%;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><br/></span></div><div style="line-height:120%;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">COGNEX CORPORATION - NOTES TO CONSOLIDATED FINANCIAL STATEMENTS</span></div></div><div><br/></div><ix:continuation id="TextSelection-50D04527AC96CD36763A8095A1A77984-1" continuedAt="TextSelection-50D04527AC96CD36763A8095A1A77984-2"><ix:continuation id="TextSelection-5F447AE7E4EF7F4830048095A1A77FB3-5" continuedAt="TextSelection-5F447AE7E4EF7F4830048095A1A77FB3-6"><div style="line-height:120%;padding-top:8px;text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-style:italic;">Identifying the Performance Obligations in the Contract</span></div><div style="line-height:120%;padding-top:4px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">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 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, logistics, and automotive industries.   </span></div><div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">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="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">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="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-style:italic;">Determining the Transaction Price</span></div><div style="line-height:120%;padding-top:4px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">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="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">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 upon 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="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-style:italic;">Allocating the Transaction Price to the Performance Obligations</span></div><div style="line-height:120%;padding-top:4px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">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="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-style:italic;">Recognizing Revenue When (or As) the Performance Obligations are Satisfied</span></div><div style="line-height:120%;padding-top:4px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">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="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">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 will 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="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">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 specifications.  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 specifications 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="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">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 </span><span style="font-family:Arial;font-size:10pt;"><span><ix:nonNumeric id="d9048161e1126-wk-Fact-C99B0E67FF564BDD13B9166CD89104F3" name="cgnx:RevenuePaymentTerms" contextRef="FD2019Q4YTD_srt_RangeAxis_srt_MinimumMember" format="ixt-sec:durday">30</ix:nonNumeric></span></span><span style="font-family:Arial;font-size:10pt;"> to </span><span style="font-family:Arial;font-size:10pt;"><span><ix:nonNumeric id="d9048161e1130-wk-Fact-3AB561AFA4DA4BF79DC284AC29D4543C" name="cgnx:RevenuePaymentTerms" contextRef="FD2019Q4YTD_srt_RangeAxis_srt_MaximumMember" format="ixt-sec:durday">90</ix:nonNumeric> days</span></span><span style="font-family:Arial;font-size:10pt;"> 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 </span></div></ix:continuation></ix:continuation><div><br/></div><div style="text-align:center;"><div style="line-height:120%;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">46</span></div></div><hr style="page-break-after:always"></hr><div><div style="line-height:120%;font-size:9pt;"><a style="font-family:inherit;font-size:9pt;" href="#sCD449198B5695D85B5494CF5DF708C26"><span style="font-family:inherit;font-size:9pt;">Table of Contents</span></a></div><div style="line-height:120%;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><br/></span></div><div style="line-height:120%;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">COGNEX CORPORATION - NOTES TO CONSOLIDATED FINANCIAL STATEMENTS</span></div></div><div><br/></div><ix:continuation id="TextSelection-5F447AE7E4EF7F4830048095A1A77FB3-6" continuedAt="TextSelection-5F447AE7E4EF7F4830048095A1A77FB3-7"><ix:continuation id="TextSelection-50D04527AC96CD36763A8095A1A77984-2"><div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">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="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Management exercises judgment when determining the amount of revenue to be recognized each period.  Such judgments include, but are not limited to, assessing the customer&#8217;s ability and intention to pay substantially all of the contract consideration when due, determining when two or more contracts should be combined and accounted for as a single contract, determining whether a contract modification has occurred, assessing whether promises are immaterial in the context of the contract, determining whether material promises in a contract represent distinct performance obligations, estimating the transaction price for a contract that contains variable consideration, determining the stand-alone selling price of each performance obligation, determining whether control is transferred over time or at a point in time for performance obligations, and assessing whether formal customer acceptance provisions are substantive.</span></div></ix:continuation><ix:nonNumeric contextRef="FD2019Q4YTD" name="us-gaap:ResearchDevelopmentAndComputerSoftwarePolicyTextBlock" id="TextSelection-F9DB3B4200E09EA0FCAB8095A1A75D25-0-wk-Fact-A71C3C468CD36E9A013E8095A17130B5" escape="true"><div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;text-decoration:underline;">Research and Development</span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Research and development costs for internally-developed or acquired products 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></ix:nonNumeric><ix:nonNumeric contextRef="FD2019Q4YTD" name="us-gaap:AdvertisingCostsPolicyTextBlock" id="TextSelection-D07CFD876B966ABA5B928095A1A76F27-0-wk-Fact-7A6F739C46031EBFA6C38095A1727B0D" escape="true"><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;text-decoration:underline;">Advertising Costs</span></div><div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Advertising costs are expensed as incurred and totaled </span><span style="font-family:Arial;font-size:10pt;"><span>$<ix:nonFraction id="d9048161e1179-wk-Fact-59F511D17B740660BB178095A172B329" name="us-gaap:AdvertisingExpense" contextRef="FD2019Q4YTD" unitRef="usd" decimals="0" scale="0" format="ixt:numdotdecimal">1,385,000</ix:nonFraction></span></span><span style="font-family:Arial;font-size:10pt;"> in </span><span style="font-family:Arial;font-size:10pt;">2019</span><span style="font-family:Arial;font-size:10pt;">, </span><span style="font-family:Arial;font-size:10pt;"><span>$<ix:nonFraction id="d9048161e1187-wk-Fact-063E5FA12E68C9561DE48095A1723F85" name="us-gaap:AdvertisingExpense" contextRef="FD2018Q4YTD" unitRef="usd" decimals="0" scale="0" format="ixt:numdotdecimal">1,662,000</ix:nonFraction></span></span><span style="font-family:Arial;font-size:10pt;"> in </span><span style="font-family:Arial;font-size:10pt;">2018</span><span style="font-family:Arial;font-size:10pt;">, and </span><span style="font-family:Arial;font-size:10pt;"><span>$<ix:nonFraction id="d9048161e1195-wk-Fact-46712EF71DEA06189C0C8095A172DB75" name="us-gaap:AdvertisingExpense" contextRef="FD2017Q4YTD" unitRef="usd" decimals="0" scale="0" format="ixt:numdotdecimal">1,679,000</ix:nonFraction></span></span><span style="font-family:Arial;font-size:10pt;"> in </span><span style="font-family:Arial;font-size:10pt;">2017</span><span style="font-family:Arial;font-size:10pt;">.</span></div></ix:nonNumeric><ix:nonNumeric contextRef="FD2019Q4YTD" name="us-gaap:ShareBasedCompensationOptionAndIncentivePlansPolicy" id="TextSelection-81426F43D981050B32668095A1A76EA7-0-wk-Fact-406A14248BAB9310E7808095A172C46A" continuedAt="TextSelection-81426F43D981050B32668095A1A76EA7-1" escape="true"><div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;text-decoration:underline;">Stock-Based Compensation</span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">The Company&#8217;s stock-based awards that result in compensation expense consist of stock options and restricted stock units (RSUs).  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 restricted stock units.  When a stock option is exercised or a restricted stock unit is settled, the Company issues new shares from this pool.  The fair values of stock options are estimated on the grant date using a binomial lattice model.  Management is responsible for determining the appropriate valuation model and estimating these fair values, and in doing so, considers a number of factors, including information provided by an outside valuation advisor.  The fair value of RSUs are determined based upon the market value of the Company's common stock on the grant date. </span></div></ix:nonNumeric><div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><ix:continuation id="TextSelection-81426F43D981050B32668095A1A76EA7-1">The Company recognizes compensation expense related to stock options and RSUs 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 upon 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 upon the employee&#8217;s service, and an increase or decrease to compensation expense is recorded </ix:continuation>to true up the final expense.</span></div><ix:nonNumeric contextRef="FD2019Q4YTD" name="us-gaap:IncomeTaxPolicyTextBlock" id="TextSelection-E98911F286AF7AE29A9D8095A1A7D694-0-wk-Fact-58DA73D46B068E7B8F888095A1737D08" continuedAt="TextSelection-E98911F286AF7AE29A9D8095A1A7D694-1" escape="true"><div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;text-decoration:underline;">Taxes</span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">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="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">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></ix:nonNumeric></ix:continuation><div><br/></div><div style="text-align:center;"><div style="line-height:120%;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">47</span></div></div><hr style="page-break-after:always"></hr><div><div style="line-height:120%;font-size:9pt;"><a style="font-family:inherit;font-size:9pt;" href="#sCD449198B5695D85B5494CF5DF708C26"><span style="font-family:inherit;font-size:9pt;">Table of Contents</span></a></div><div style="line-height:120%;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><br/></span></div><div style="line-height:120%;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">COGNEX CORPORATION - NOTES TO CONSOLIDATED FINANCIAL STATEMENTS</span></div></div><div><br/></div><ix:continuation id="TextSelection-5F447AE7E4EF7F4830048095A1A77FB3-7" continuedAt="TextSelection-5F447AE7E4EF7F4830048095A1A77FB3-8"><ix:continuation id="TextSelection-E98911F286AF7AE29A9D8095A1A7D694-1"><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Deferred tax assets and liabilities are determined based upon 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 upon 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="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">In December 2017, the Tax Cuts and Jobs Act (&#8220;Tax Act&#8221;) was signed into law. The Tax Act imposed a minimum tax on foreign earnings related to intangible assets, known as the Global Intangible Low-Taxed Income (GILTI) tax  In the fourth quarter of 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 the third quarter of 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="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">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:continuation><ix:nonNumeric contextRef="FD2019Q4YTD" name="us-gaap:EarningsPerSharePolicyTextBlock" id="TextSelection-F8A77325D5A8F0A148F98095A1A73BE2-0-wk-Fact-9F4405D67977B563C5A18095A17272DD" escape="true"><div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;text-decoration:underline;">Net Income Per Share</span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">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="FD2019Q4YTD" name="us-gaap:ComprehensiveIncomePolicyPolicyTextBlock" id="TextSelection-03EF1EF938B4FE3C0DB98095A1A77743-0-wk-Fact-B15B063D62F0FFAFF1698095A173C45F" escape="true"><div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;text-decoration:underline;">Comprehensive Income</span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">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 </span><span style="font-family:Arial;font-size:10pt;"><span>$<ix:nonFraction id="d9048161e1309-wk-Fact-C75286CF4CCA602492E18095A172726A" name="us-gaap:AccumulatedOtherComprehensiveIncomeLossForeignCurrencyTranslationAdjustmentNetOfTax" contextRef="FI2019Q4" unitRef="usd" decimals="0" scale="0" format="ixt:numdotdecimal">38,027,000</ix:nonFraction></span></span><span style="font-family:Arial;font-size:10pt;"> and </span><span style="font-family:Arial;font-size:10pt;"><span>$<ix:nonFraction id="d9048161e1313-wk-Fact-A81B61C66B8A268051C38095A172B7D7" name="us-gaap:AccumulatedOtherComprehensiveIncomeLossForeignCurrencyTranslationAdjustmentNetOfTax" contextRef="FI2018Q4" unitRef="usd" decimals="0" scale="0" format="ixt:numdotdecimal">37,486,000</ix:nonFraction></span></span><span style="font-family:Arial;font-size:10pt;">, as of December 31, </span><span style="font-family:Arial;font-size:10pt;">2019</span><span style="font-family:Arial;font-size:10pt;"> and December 31, </span><span style="font-family:Arial;font-size:10pt;">2018</span><span style="font-family:Arial;font-size:10pt;">, respectively; net unrealized gains on available-for-sale investments of </span><span style="font-family:Arial;font-size:10pt;"><span>$<ix:nonFraction id="d9048161e1325-wk-Fact-926836B2AB8E6639A5228095A1737F96" name="us-gaap:AccumulatedOtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax" contextRef="FI2019Q4" unitRef="usd" decimals="0" scale="0" format="ixt:numdotdecimal">2,023,000</ix:nonFraction></span></span><span style="font-family:Arial;font-size:10pt;"> as of December 31, 2019 and net unrealized losses on available-for-sale investments of </span><span style="font-family:Arial;font-size:10pt;"><span>$<ix:nonFraction id="d9048161e1330-wk-Fact-03F10BB1CC0BE4FB51D98095A172D26A" name="us-gaap:AccumulatedOtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax" contextRef="FI2018Q4" unitRef="usd" decimals="0" scale="0" format="ixt:numdotdecimal">1,744,000</ix:nonFraction></span></span><span style="font-family:Arial;font-size:10pt;"> as of December 31, 2018; and losses on currency swaps, net of gains on long-term intercompany loans of </span><span style="font-family:Arial;font-size:10pt;"><span>$<ix:nonFraction id="d9048161e1334-wk-Fact-DE1E6A659BBE7554AA708095A173B140" name="us-gaap:AdjustmentForLongTermIntercompanyTransactionsNetOfTax" contextRef="FD2019Q4YTD" unitRef="usd" decimals="0" scale="0" format="ixt:numdotdecimal">1,271,000</ix:nonFraction></span></span><span style="font-family:Arial;font-size:10pt;"> at each year end.</span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Amounts reclassified from accumulated other comprehensive income (loss) to investment income on the Consolidated Statements of Operations were net realized gains of </span><span style="font-family:Arial;font-size:10pt;"><span>$<ix:nonFraction id="d9048161e1347-wk-Fact-2228B7B68FD5B30AA9188095A174473D" name="us-gaap:OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax" contextRef="FD2019Q4YTD_us-gaap_StatementEquityComponentsAxis_us-gaap_AccumulatedOtherComprehensiveIncomeMember" unitRef="usd" decimals="0" scale="0" format="ixt:numdotdecimal">1,452,000</ix:nonFraction></span></span><span style="font-family:Arial;font-size:10pt;">, </span><span style="font-family:Arial;font-size:10pt;"><span>$<ix:nonFraction id="d9048161e1351-wk-Fact-BC33E1FE46D39FE120358095A173453F" name="us-gaap:OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax" contextRef="FD2018Q4YTD_us-gaap_StatementEquityComponentsAxis_us-gaap_AccumulatedOtherComprehensiveIncomeMember" unitRef="usd" decimals="0" scale="0" format="ixt:numdotdecimal">501,000</ix:nonFraction></span></span><span style="font-family:Arial;font-size:10pt;">, and </span><span style="font-family:Arial;font-size:10pt;"><span>$<ix:nonFraction id="d9048161e1355-wk-Fact-A180BBA40FED5AB07FC48095A1733D93" name="us-gaap:OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax" contextRef="FD2017Q4YTD_us-gaap_StatementEquityComponentsAxis_us-gaap_AccumulatedOtherComprehensiveIncomeMember" unitRef="usd" decimals="0" scale="0" format="ixt:numdotdecimal">829,000</ix:nonFraction></span></span><span style="font-family:Arial;font-size:10pt;"> for </span><span style="font-family:Arial;font-size:10pt;">2019</span><span style="font-family:Arial;font-size:10pt;">, </span><span style="font-family:Arial;font-size:10pt;">2018</span><span style="font-family:Arial;font-size:10pt;">, and </span><span style="font-family:Arial;font-size:10pt;">2017</span><span style="font-family:Arial;font-size:10pt;">, respectively.</span></div></ix:nonNumeric><ix:nonNumeric contextRef="FD2019Q4YTD" name="cgnx:ConcentrationsOfRiskPolicyPolicyTextBlock" id="TextSelection-FF6FECC82F1BEF4C3CCA8095A1A70E08-0-wk-Fact-980E51F904F4C78DAD448095A1739D5C" continuedAt="TextSelection-FF6FECC82F1BEF4C3CCA8095A1A70E08-1" escape="true"><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;text-decoration:underline;">Concentrations of Risk</span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Financial instruments that potentially subject the Company to concentrations of credit risk consist primarily of cash, cash equivalents, investments, and trade receivables.  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 not experienced any significant realized losses on its debt securities.</span></div><div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">The Company performs ongoing credit evaluations of its customers and maintains allowances for potential credit losses. The Company has not experienced any significant losses related to the collection of its accounts receivable.</span></div><div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">A significant portion of the Company's product is manufactured by a third-party contractor located in Indonesia.  This contractor has agreed to provide Cognex with termination notification periods and last-time-buy rights, if and when that may be applicable.  We rely upon this contractor to provide quality product and meet delivery schedules.  We engage in extensive product quality programs and processes, including actively monitoring the performance of our third-party manufacturers; however, we may not detect all product quality issues through these programs and processes.</span></div><div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Certain components are presently sourced from a single vendor that is selected based on price and performance considerations.  In the event of a supply disruption from a single-source vendor, these components may be purchased from alternative vendors, which may result in manufacturing delays based on the lead time of the new vendor.  Certain </span></div></ix:nonNumeric></ix:continuation><div><br/></div><div style="text-align:center;"><div style="line-height:120%;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">48</span></div></div><hr style="page-break-after:always"></hr><div><div style="line-height:120%;font-size:9pt;"><a style="font-family:inherit;font-size:9pt;" href="#sCD449198B5695D85B5494CF5DF708C26"><span style="font-family:inherit;font-size:9pt;">Table of Contents</span></a></div><div style="line-height:120%;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><br/></span></div><div style="line-height:120%;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">COGNEX CORPORATION - NOTES TO CONSOLIDATED FINANCIAL STATEMENTS</span></div></div><div><br/></div><ix:continuation id="TextSelection-5F447AE7E4EF7F4830048095A1A77FB3-8" continuedAt="TextSelection-5F447AE7E4EF7F4830048095A1A77FB3-9"><ix:continuation id="TextSelection-FF6FECC82F1BEF4C3CCA8095A1A70E08-1" continuedAt="TextSelection-FF6FECC82F1BEF4C3CCA8095A1A70E08-2"><div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">key electronic and mechanical components that are purchased from strategic suppliers, such as processors or imagers, are fundamental to the design of Cognex products.  A disruption in the supply of these key components, such as a last-time-buy announcement, natural disaster, financial bankruptcy, or other event, may require us to purchase a significant amount of inventory at unfavorable prices resulting in lower gross margins and higher risk of carrying excess inventory.  If we are unable to secure adequate supply from alternative sources, we may have to redesign our products, which may lead to a delay in manufacturing and a possible loss of sales.</span></div></ix:continuation><ix:nonNumeric contextRef="FD2019Q4YTD" name="us-gaap:DerivativesPolicyTextBlock" id="TextSelection-9FB8408E9EAAD2289E078095A1A7F820-0-wk-Fact-7F98C3918E612C8325E38095A173854E" continuedAt="TextSelection-9FB8408E9EAAD2289E078095A1A7F820-1" escape="true"><div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;text-decoration:underline;"><ix:continuation id="TextSelection-FF6FECC82F1BEF4C3CCA8095A1A70E08-2"></ix:continuation>Derivative Instruments</span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Derivative instruments are recorded on the Consolidated Balance Sheets at fair value.  Changes in the fair value of derivatives are recorded each period in current operations or in shareholders' equity as other comprehensive income (loss), depending upon whether the derivative is designated as a hedge transaction and, if it is, the effectiveness of the hedge.  At the inception of the contract, the Company designates foreign currency forward exchange contracts as either a cash flow hedge of certain forecasted foreign currency denominated sales and purchase transactions or as an economic hedge.  Changes in the fair value of a derivative that is highly effective and that is designated and qualifies as a cash flow hedge are recorded in shareholders' equity as other comprehensive income (loss), and reclassified into current operations in the same period during which the hedged transaction affects current operations and in the same financial statement line item as that of the forecasted transaction.  Cash flow hedges are evaluated for effectiveness quarterly.  Any hedge ineffectiveness (which represents the amount by which the changes in the fair value of the derivative exceed the variability in the cash flows of the forecasted transaction) is recorded in current operations in the period in which ineffectiveness is determined.  Changes in the fair value of the Company&#8217;s economic hedges (not designated as a cash flow hedge) are reported in current operations.  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="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">The Company formally documents all relationships between hedging instruments and hedged items, as well as its risk-management objective and strategy for undertaking various hedge transactions.  This process includes linking all derivatives that are designated as cash flow hedges to specific forecasted transactions.  The Company also formally assesses (both at the hedge&#8217;s inception and on an ongoing basis) whether the derivatives that are used in hedging transactions have been highly effective in offsetting changes in the fair value or cash flows of hedged items and whether those derivatives may be expected to remain highly effective in future periods.  When it is determined that a derivative is not (or has ceased to be) highly effective as a hedge, the Company discontinues hedge accounting prospectively, as discussed below.</span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">The Company discontinues hedge accounting prospectively when (1) it determines that the derivative is no longer effective in offsetting changes in the cash flows of a hedged item; (2) the derivative expires or is sold, terminated, or exercised; (3) it is no longer probable that the forecasted transaction will occur; or (4) management determines that designating the derivative as a hedging instrument is no longer appropriate or desired.  When the Company discontinues hedge accounting because it is no longer probable that the forecasted transaction will occur in the originally expected period, the gain or loss on the derivative remains in accumulated other comprehensive income (loss) and is reclassified into current operations when the forecasted transaction affects current operations.  However, if it is probable that a forecasted transaction will not occur by the end of the originally specified time period or within an additional two-month period of time thereafter, the gain or loss that was accumulated in other comprehensive income (loss) is recognized immediately in current operations.  In all situations in which hedge accounting is discontinued and the derivative remains outstanding, the Company carries the derivative at fair value on the Consolidated Balance Sheets, recognizing changes in the fair value in current operations, unless it is designated in a new hedging relationship.</span></div></ix:nonNumeric><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><ix:continuation id="TextSelection-9FB8408E9EAAD2289E078095A1A7F820-1">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.  Accordingly, cash flow hedges are presented net on the Consolidated Balance Sheets.</ix:continuation>  </span></div><ix:nonNumeric contextRef="FD2019Q4YTD" name="us-gaap:BusinessCombinationsPolicy" id="TextSelection-4D0ABEAB4F902A319BEE8095A1A7E7CD-0-wk-Fact-BEF3EFFA23BB2A0215D78095A1738DBB" continuedAt="TextSelection-4D0ABEAB4F902A319BEE8095A1A7E7CD-1" escape="true"><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;text-decoration:underline;">Business Acquisitions</span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">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 contriubte 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 </span></div></ix:nonNumeric></ix:continuation><div><br/></div><div style="text-align:center;"><div style="line-height:120%;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">49</span></div></div><hr style="page-break-after:always"></hr><div><div style="line-height:120%;font-size:9pt;"><a style="font-family:inherit;font-size:9pt;" href="#sCD449198B5695D85B5494CF5DF708C26"><span style="font-family:inherit;font-size:9pt;">Table of Contents</span></a></div><div style="line-height:120%;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><br/></span></div><div style="line-height:120%;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">COGNEX CORPORATION - NOTES TO CONSOLIDATED FINANCIAL STATEMENTS</span></div></div><div><br/></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><ix:continuation id="TextSelection-4D0ABEAB4F902A319BEE8095A1A7E7CD-1"><ix:continuation id="TextSelection-5F447AE7E4EF7F4830048095A1A77FB3-9">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 upon 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 upon 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 each reporting period with changes in fair value recorded 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></ix:continuation> </span></div><div><a id="s83F5A6DD4E1F5EA6A8BC305A68E22383"></a></div><div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">NOTE 2: <ix:nonNumeric contextRef="FD2019Q4YTD" name="us-gaap:NewAccountingPronouncementsAndChangesInAccountingPrinciplesTextBlock" id="TextSelection-961D4CB619002D60F03E8095A1A7C3D3-0-wk-Fact-0F8902A60E561E9375568095A18F2EC1" continuedAt="TextSelection-961D4CB619002D60F03E8095A1A7C3D3-1" escape="true"> New Pronouncements</ix:nonNumeric></span></div><ix:continuation id="TextSelection-961D4CB619002D60F03E8095A1A7C3D3-1" continuedAt="TextSelection-961D4CB619002D60F03E8095A1A7C3D3-2"><div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;text-decoration:underline;">Accounting Standards Update (ASU) 2016-13, "Financial Instruments - Measurement of Credit Losses"</span></div><div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">ASU 2016-13 applies to all reporting entities holding financial assets that are not accounted for at fair value through net income.&#160; The amendments in this ASU eliminate the probable initial recognition threshold to recognize a credit loss under current GAAP and, instead, reflect an entity&#8217;s current estimate of all expected credit losses.  In addition, this ASU broadens the information an entity must consider in developing the credit loss estimate, including the use of reasonable and supportable forecasted information.&#160; The amendments in this ASU require that credit losses be presented as an allowance rather than as a write-down, and an entity will be able to record reversals of credit losses in current period net income.  The guidance in this ASU is effective for annual periods, and interim periods within those annual periods, beginning after December 15, 2019.&#160; This ASU should be applied through a cumulative-effect adjustment to retained earnings as of the beginning of the first reporting period in which the guidance is effective. Available-for-sale debt securities and  accounts receivable are the account balances primarily impacted by the guidance in this ASU.  Management adopted this ASU on January 1, 2020, and we do not expect this ASU to have a material impact on the Company's consolidated financial statements and disclosures. </span></div><div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;text-decoration:underline;">Accounting Standards Update (ASU) 2018-15, "Intangibles - Goodwill and Other - Internal-Use Software"</span></div><div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">ASU 2018-15 applies to entities that are a customer in a hosting arrangement that is a service contract.  The amendments  in this ASU align the requirements for capitalizing implementation costs incurred in a hosting arrangement that is a service contract with the requirements for capitalizing implementation costs incurred to develop or obtain internal-use software.  Accordingly, the amendments in this ASU require an entity in a hosting arrangement that is a service contract to follow the guidance in Subtopic 350-40 to determine which implementation costs to capitalize as an asset related to the service contract and which costs to expense. Further, it requires the entity to expense the capitalized implementation costs over the term of the hosting arrangement.  In addition, it requires the presentation of the expenses related to the capitalized implementation costs in the same line item in the statement of income as the fees associated with the hosting element of the arrangement and the classification of the payments for the capitalized implementation costs in the statement of cash flows in the same manner as the payments made for the fees associated with the hosting element.  The amendments in this ASU are effective for public entities for annual periods, and for interim periods within those annual periods, beginning after December 15, 2019.  Management adopted this ASU on January 1, 2020, and we do not expect this ASU to have a material impact on the Company's consolidated financial statements and disclosures.</span></div></ix:continuation><div><br/></div><div style="text-align:center;"><div style="line-height:120%;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">50</span></div></div><hr style="page-break-after:always"></hr><div><div style="line-height:120%;font-size:9pt;"><a style="font-family:inherit;font-size:9pt;" href="#sCD449198B5695D85B5494CF5DF708C26"><span style="font-family:inherit;font-size:9pt;">Table of Contents</span></a></div><div style="line-height:120%;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><br/></span></div><div style="line-height:120%;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">COGNEX CORPORATION - NOTES TO CONSOLIDATED FINANCIAL STATEMENTS</span></div></div><div><br/></div><ix:continuation id="TextSelection-961D4CB619002D60F03E8095A1A7C3D3-2"><div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;text-decoration:underline;">Accounting Standards Update (ASU) 2019-12, "Simplifying the Accounting for Income Taxes"</span></div><div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">ASU 2019-12 applies to all entities within the scope of Topic 740, Income Taxes.  The amendments in this ASU simplify the accounting for income taxes by removing the following exceptions: 1) exception to the incremental approach for intraperiod tax allocation when there is a loss from continuing operations and income or a gain from other items; 2) exception to the requirement to recognize a deferred tax liability for equity method investments when a foreign subsidiary becomes an equity method investment; 3) exception to the ability not to recognize a deferred tax liability for a foreign subsidiary when a foreign equity method investment becomes a subsidiary; and 4) exception to the general methodology for calculating income taxes in an interim period when a year-to-date loss exceeds the anticipated loss for the year.  The amendments in this ASU also simplify the accounting for income taxes by doing the following: 1) requiring that an entity recognize a franchise tax that is partially based on income as an income-based tax and account for any incremental amount incurred as a non-income-based tax; 2) requiring that an entity evaluate when a step up in the tax basis of goodwill should be considered part of the business combination in which the book goodwill was originally recognized and when it should be considered a separate transaction; 3) specifying that an entity is not required to allocate the consolidated amount of current and deferred tax expense to a legal entity that is not subject to tax in its separate financial statements; and 4) requiring that an entity reflect the effect of an enacted change in tax laws or rates in the annual effective tax rate computation in the interim period that included the enacted date.  The amendments in this ASU are effective for public companies for annual periods, and interim periods within those annual periods, beginning after December 15, 2020.  Early adoption is permitted; however, an entity that elects to early adopt the amendments must adopt all the amendments in the same period. The amendments in this ASU related to separate financial statements of legal entities that are not subject to tax should be applied on a retrospective basis for all periods presented. The amendments related to changes in ownership of foreign equity method investments or foreign subsidiaries should be applied on a modified retrospective basis through a cumulative-effect adjustment to retained earnings as of the beginning of the fiscal year of adoption. The amendments related to franchise taxes that are partially based on income should be applied on either a retrospective basis for all periods presented or a modified retrospective basis through a cumulative-effect adjustment to retained earnings as of the beginning of the fiscal year of adoption. All other amendments should be applied on a prospective basis.   Management does not expect ASU 2019-12 to have a material impact on the Company's consolidated financial statements and disclosures.</span></div></ix:continuation><div><a id="sBC7A82D8EB855FBCA37892940D13BCC3"></a></div><div style="line-height:120%;padding-top:12px;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">NOTE 3:&#160;&#160;<ix:nonNumeric contextRef="FD2019Q4YTD" name="us-gaap:FairValueDisclosuresTextBlock" id="TextSelection-090EC2082490AB2BE1E18095A1A76373-0-wk-Fact-054713FBD610A85E23738095A173CCB2" continuedAt="TextSelection-090EC2082490AB2BE1E18095A1A76373-1" escape="true">Fair Value Measurements</ix:nonNumeric></span></div><ix:continuation id="TextSelection-090EC2082490AB2BE1E18095A1A76373-1" continuedAt="TextSelection-090EC2082490AB2BE1E18095A1A76373-2"><div style="line-height:120%;padding-top:6px;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;text-decoration:underline;">Financial Assets and Liabilities that are Measured at Fair Value on a Recurring Basis</span></div><ix:nonNumeric contextRef="FD2019Q4YTD" name="us-gaap:ScheduleOfFairValueAssetsAndLiabilitiesMeasuredOnRecurringBasisTableTextBlock" id="TextSelection-313F86F5E8A26A38FF828095A1A7CAC6-0-wk-Fact-4A289548F609A711F6AB8095A173F87E" escape="true"><div style="line-height:120%;padding-top:6px;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">The following table summarizes the financial assets and liabilities measured at fair value on a recurring basis as of December&#160;31, </span><span style="font-family:Arial;font-size:10pt;color:#000000;text-decoration:none;">2019</span><span style="font-family:Arial;font-size:10pt;"> (in thousands):</span><div style="padding-left:0px;text-indent:0px;line-height:normal;padding-top:10px;"><table cellpadding="0" cellspacing="0" style="font-family:Times New Roman;font-size:10pt;width:93.56725146198829%;border-collapse:collapse;text-align:left;"><tr><td colspan="12"></td></tr><tr><td style="width:50%;"></td><td style="width:1%;"></td><td style="width:14%;"></td><td style="width:1%;"></td><td style="width:1%;"></td><td style="width:1%;"></td><td style="width:14%;"></td><td style="width:1%;"></td><td style="width:1%;"></td><td style="width:1%;"></td><td style="width:14%;"></td><td style="width:1%;"></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;">Quoted&#160;Prices&#160;in</span></div><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;">Active Markets</span></div><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;">for Identical</span></div><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;">Assets (Level&#160;1)</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;">Significant&#160;Other</span></div><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;">Observable</span></div><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;">Inputs (Level&#160;2)</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;">Unobservable Inputs                       (Level 3)</span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Assets:</span></div></td><td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td></tr><tr><td style="vertical-align:top;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Money market instruments</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9049532e830-wk-Fact-9043A597EC894121FF838095A17B9B37" name="cgnx:MoneyMarketInstrumentsFairValueDisclosure" contextRef="FI2019Q4_us-gaap_FairValueByFairValueHierarchyLevelAxis_us-gaap_FairValueInputsLevel1Member_us-gaap_FairValueByMeasurementFrequencyAxis_us-gaap_FairValueMeasurementsRecurringMember" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">15,933</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9049532e849-wk-Fact-E350826669D0058E1F978095A17B460D" name="cgnx:MoneyMarketInstrumentsFairValueDisclosure" contextRef="FI2019Q4_us-gaap_FairValueByFairValueHierarchyLevelAxis_us-gaap_FairValueInputsLevel2Member_us-gaap_FairValueByMeasurementFrequencyAxis_us-gaap_FairValueMeasurementsRecurringMember" unitRef="usd" decimals="-3" scale="3" format="ixt:zerodash">&#8212;</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">&#8212;</span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Treasury bills</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9049532e884-wk-Fact-C499F35F3E0EC0D3610F910720C35DFF" name="cgnx:TreasuryBillsFairValueDisclosure" contextRef="FI2019Q4_us-gaap_FairValueByFairValueHierarchyLevelAxis_us-gaap_FairValueInputsLevel1Member_us-gaap_FairValueByMeasurementFrequencyAxis_us-gaap_FairValueMeasurementsRecurringMember" unitRef="usd" decimals="-3" scale="3" format="ixt:zerodash">&#8212;</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9049532e903-wk-Fact-C8D92CB3D0D4AEE5170B9106E26756FD" name="cgnx:TreasuryBillsFairValueDisclosure" contextRef="FI2019Q4_us-gaap_FairValueByFairValueHierarchyLevelAxis_us-gaap_FairValueInputsLevel2Member_us-gaap_FairValueByMeasurementFrequencyAxis_us-gaap_FairValueMeasurementsRecurringMember" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">309,248</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td></tr><tr><td style="vertical-align:top;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Corporate bonds</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9049532e944-wk-Fact-7552B1143D57DAE05F6D8095A171C4EB" name="cgnx:CorporateBondsFairValueDisclosure" contextRef="FI2019Q4_us-gaap_FairValueByFairValueHierarchyLevelAxis_us-gaap_FairValueInputsLevel1Member_us-gaap_FairValueByMeasurementFrequencyAxis_us-gaap_FairValueMeasurementsRecurringMember" unitRef="usd" decimals="-3" scale="3" format="ixt:zerodash">&#8212;</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9049532e963-wk-Fact-E484481256651AEC0CA68095A17BD858" name="cgnx:CorporateBondsFairValueDisclosure" contextRef="FI2019Q4_us-gaap_FairValueByFairValueHierarchyLevelAxis_us-gaap_FairValueInputsLevel2Member_us-gaap_FairValueByMeasurementFrequencyAxis_us-gaap_FairValueMeasurementsRecurringMember" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">212,098</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">&#8212;</span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Asset-backed securities</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9049532e1003-wk-Fact-0E610EF523D36E2B89268095A17079CC" name="cgnx:AssetBackedSecuritiesFairValueDisclosure" contextRef="FI2019Q4_us-gaap_FairValueByFairValueHierarchyLevelAxis_us-gaap_FairValueInputsLevel1Member_us-gaap_FairValueByMeasurementFrequencyAxis_us-gaap_FairValueMeasurementsRecurringMember" unitRef="usd" decimals="-3" scale="3" format="ixt:zerodash">&#8212;</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9049532e1022-wk-Fact-030A6D047319144A714E8095A17B14A7" name="cgnx:AssetBackedSecuritiesFairValueDisclosure" contextRef="FI2019Q4_us-gaap_FairValueByFairValueHierarchyLevelAxis_us-gaap_FairValueInputsLevel2Member_us-gaap_FairValueByMeasurementFrequencyAxis_us-gaap_FairValueMeasurementsRecurringMember" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">113,083</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">&#8212;</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Sovereign bonds</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9049532e1062-wk-Fact-7AEB2C3B2AEE13077A6F8095A17AB2F4" name="cgnx:SovereignBondsFairValueDisclosure" contextRef="FI2019Q4_us-gaap_FairValueByFairValueHierarchyLevelAxis_us-gaap_FairValueInputsLevel1Member_us-gaap_FairValueByMeasurementFrequencyAxis_us-gaap_FairValueMeasurementsRecurringMember" unitRef="usd" decimals="-3" scale="3" format="ixt:zerodash">&#8212;</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9049532e1081-wk-Fact-5DB20320732E1C8C1CA38095A171DC92" name="cgnx:SovereignBondsFairValueDisclosure" contextRef="FI2019Q4_us-gaap_FairValueByFairValueHierarchyLevelAxis_us-gaap_FairValueInputsLevel2Member_us-gaap_FairValueByMeasurementFrequencyAxis_us-gaap_FairValueMeasurementsRecurringMember" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">22,299</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">&#8212;</span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Municipal bonds</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9049532e1121-wk-Fact-C57581B7879EAD2433819107A880F4B6" name="cgnx:MunicipalBondsFairValueDisclosure" contextRef="FI2019Q4_us-gaap_FairValueByFairValueHierarchyLevelAxis_us-gaap_FairValueInputsLevel1Member_us-gaap_FairValueByMeasurementFrequencyAxis_us-gaap_FairValueMeasurementsRecurringMember" unitRef="usd" decimals="-3" scale="3" format="ixt:zerodash">&#8212;</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9049532e1140-wk-Fact-D323AE1417668AF44B5C9107AC6AE4A2" name="cgnx:MunicipalBondsFairValueDisclosure" contextRef="FI2019Q4_us-gaap_FairValueByFairValueHierarchyLevelAxis_us-gaap_FairValueInputsLevel2Member_us-gaap_FairValueByMeasurementFrequencyAxis_us-gaap_FairValueMeasurementsRecurringMember" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">6,952</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td></tr><tr><td style="vertical-align:top;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Agency bonds</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9049532e1181-wk-Fact-9753CF14B729E206E9488095A1719797" name="cgnx:AgencyBondsFairValueDisclosure" contextRef="FI2019Q4_us-gaap_FairValueByFairValueHierarchyLevelAxis_us-gaap_FairValueInputsLevel1Member_us-gaap_FairValueByMeasurementFrequencyAxis_us-gaap_FairValueMeasurementsRecurringMember" unitRef="usd" decimals="-3" scale="3" format="ixt:zerodash">&#8212;</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9049532e1200-wk-Fact-E135C979C2402A0712188095A171AE1A" name="cgnx:AgencyBondsFairValueDisclosure" contextRef="FI2019Q4_us-gaap_FairValueByFairValueHierarchyLevelAxis_us-gaap_FairValueInputsLevel2Member_us-gaap_FairValueByMeasurementFrequencyAxis_us-gaap_FairValueMeasurementsRecurringMember" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">5,914</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">&#8212;</span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Certificate of deposit</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span><ix:nonFraction id="d9049532e1240-wk-Fact-248D10A168F97775AD2EF3D363199F33" name="cgnx:CertificateOfDepositFairValueDisclosure" contextRef="FI2019Q4_us-gaap_FairValueByFairValueHierarchyLevelAxis_us-gaap_FairValueInputsLevel1Member_us-gaap_FairValueByMeasurementFrequencyAxis_us-gaap_FairValueMeasurementsRecurringMember" unitRef="usd" decimals="-3" scale="0" format="ixt:zerodash">&#8212;</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9049532e1259-wk-Fact-A1DA6A1433807ED447F2F3D3654BB3E0" name="cgnx:CertificateOfDepositFairValueDisclosure" contextRef="FI2019Q4_us-gaap_FairValueByFairValueHierarchyLevelAxis_us-gaap_FairValueInputsLevel2Member_us-gaap_FairValueByMeasurementFrequencyAxis_us-gaap_FairValueMeasurementsRecurringMember" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">4,328</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">&#8212;</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Economic hedge forward contracts</span></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span><ix:nonFraction id="d9049532e1299-wk-Fact-7C2A1EB22861B747FBD58095A171D290" name="us-gaap:ForeignCurrencyContractAssetFairValueDisclosure" contextRef="FI2019Q4_us-gaap_FairValueByFairValueHierarchyLevelAxis_us-gaap_FairValueInputsLevel1Member_us-gaap_FairValueByMeasurementFrequencyAxis_us-gaap_FairValueMeasurementsRecurringMember" unitRef="usd" xsi:nil="true" scale="0" format="ixt:nocontent"></ix:nonFraction></span><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9049532e1318-wk-Fact-173198BF16DAB13768438095A170668E" name="us-gaap:ForeignCurrencyContractAssetFairValueDisclosure" contextRef="FI2019Q4_us-gaap_FairValueByFairValueHierarchyLevelAxis_us-gaap_FairValueInputsLevel2Member_us-gaap_FairValueByMeasurementFrequencyAxis_us-gaap_FairValueMeasurementsRecurringMember" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">857</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">&#8212;</span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Liabilities:</span></div></td><td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td></tr><tr><td style="vertical-align:top;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Economic hedge forward contracts</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9049532e1421-wk-Fact-7ED329B688920FCF8D988095A17124FA" name="us-gaap:ForeignCurrencyContractsLiabilityFairValueDisclosure" contextRef="FI2019Q4_us-gaap_FairValueByFairValueHierarchyLevelAxis_us-gaap_FairValueInputsLevel1Member_us-gaap_FairValueByMeasurementFrequencyAxis_us-gaap_FairValueMeasurementsRecurringMember" unitRef="usd" decimals="-3" scale="3" format="ixt:zerodash">&#8212;</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9049532e1440-wk-Fact-36DA13874530C08F99368095A170B373" name="us-gaap:ForeignCurrencyContractsLiabilityFairValueDisclosure" contextRef="FI2019Q4_us-gaap_FairValueByFairValueHierarchyLevelAxis_us-gaap_FairValueInputsLevel2Member_us-gaap_FairValueByMeasurementFrequencyAxis_us-gaap_FairValueMeasurementsRecurringMember" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">23</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">&#8212;</span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Contingent consideration liabilities</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9049532e1480-wk-Fact-46193CB9DE3A33F8EDFE8095A17102EC" name="us-gaap:BusinessCombinationContingentConsiderationLiability" contextRef="FI2019Q4_us-gaap_FairValueByFairValueHierarchyLevelAxis_us-gaap_FairValueInputsLevel1Member_us-gaap_FairValueByMeasurementFrequencyAxis_us-gaap_FairValueMeasurementsRecurringMember" unitRef="usd" decimals="-3" scale="3" format="ixt:zerodash">&#8212;</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9049532e1499-wk-Fact-4A5B6AE0EBC71AB6F9608095A171B365" name="us-gaap:BusinessCombinationContingentConsiderationLiability" contextRef="FI2019Q4_us-gaap_FairValueByFairValueHierarchyLevelAxis_us-gaap_FairValueInputsLevel2Member_us-gaap_FairValueByMeasurementFrequencyAxis_us-gaap_FairValueMeasurementsRecurringMember" unitRef="usd" decimals="-3" scale="3" format="ixt:zerodash">&#8212;</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9049532e1518-wk-Fact-105201868BF34F14BC738095A17A83C3" name="us-gaap:BusinessCombinationContingentConsiderationLiability" contextRef="FI2019Q4_us-gaap_FairValueByFairValueHierarchyLevelAxis_us-gaap_FairValueInputsLevel3Member_us-gaap_FairValueByMeasurementFrequencyAxis_us-gaap_FairValueMeasurementsRecurringMember" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">1,153</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr></table></div><span style="font-family:inherit;font-size:10pt;"><br/></span></div></ix:nonNumeric><div style="line-height:120%;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><br/></span></div><div style="line-height:120%;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">The Company&#8217;s money market instruments are reported at fair value based upon the daily market price for identical assets in active markets, and are therefore classified as Level 1. </span></div></ix:continuation><div><br/></div><div style="text-align:center;"><div style="line-height:120%;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">51</span></div></div><hr style="page-break-after:always"></hr><div><div style="line-height:120%;font-size:9pt;"><a style="font-family:inherit;font-size:9pt;" href="#sCD449198B5695D85B5494CF5DF708C26"><span style="font-family:inherit;font-size:9pt;">Table of Contents</span></a></div><div style="line-height:120%;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><br/></span></div><div style="line-height:120%;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">COGNEX CORPORATION - NOTES TO CONSOLIDATED FINANCIAL STATEMENTS</span></div></div><div><br/></div><ix:continuation id="TextSelection-090EC2082490AB2BE1E18095A1A76373-2"><div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">The Company&#8217;s debt securities and forward contracts are reported at fair value based upon 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.  The Company's certificate of deposit is valued at cost, which approximates fair value given its short term to maturity.</span></div><div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">The Company did not record an other-than-temporary impairment of these financial assets in </span><span style="font-family:Arial;font-size:10pt;">2019</span><span style="font-family:Arial;font-size:10pt;">, </span><span style="font-family:Arial;font-size:10pt;">2018</span><span style="font-family:Arial;font-size:10pt;">, or </span><span style="font-family:Arial;font-size:10pt;">2017</span><span style="font-family:Arial;font-size:10pt;">.</span></div><div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">The Company's contingent consideration liabilities are reported at fair value based upon 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.  Key assumptions used in these estimates include probability assessments with respect to the likelihood of achieving certain revenue milestones.  The fair values of these contingent consideration liabilities were calculated using discount rates consistent with the level of risk of achievement, and are remeasured each reporting period with changes in fair value recorded in "Other income (expense)" on the Consolidated Statements of Operations. </span></div><ix:nonNumeric contextRef="FD2019Q4YTD" name="us-gaap:FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationTextBlock" id="TextSelection-66557414AFE0AEEE85268095A1A72974-0-wk-Fact-55E6A56723DAA46B5FA78095A1736706" escape="true"><div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">The following table summarizes the activity for the Company's liabilities measured at fair value using Level 3 inputs (in thousands):</span></div><div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><div style="padding-left:0px;text-indent:0px;line-height:normal;padding-top:10px;"><table cellpadding="0" cellspacing="0" style="font-family:Times New Roman;font-size:10pt;width:100%;border-collapse:collapse;text-align:left;"><tr><td colspan="4"></td></tr><tr><td style="width:86%;"></td><td style="width:1%;"></td><td style="width:12%;"></td><td style="width:1%;"></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Balance as of December 31, 2017</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9049532e1600-wk-Fact-42212DCEC2E5E66E86328095A18EC7DA" name="us-gaap:FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue" contextRef="FI2017Q4" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">3,557</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Payment of GVi contingent consideration</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>(<ix:nonFraction id="d9049532e1615-wk-Fact-2475AAD2FD2F45B45C678095A1909CCE" name="us-gaap:FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilitySettlements" contextRef="FD2018Q4YTD_us-gaap_BusinessAcquisitionAxis_cgnx_GViVenturesInc.Member" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">1,000</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">)</span></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Fair value adjustment to GVi contingent consideration</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9049532e1636-wk-Fact-5B1ECDF8B279050A0A0CC51068531A16" name="us-gaap:LiabilitiesFairValueAdjustment" contextRef="FD2018Q4YTD_us-gaap_BusinessAcquisitionAxis_cgnx_GViVenturesInc.Member" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">1,065</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Fair value adjustment to Manatee contingent consideration</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>(<ix:nonFraction id="d9049532e1656-wk-Fact-10118E7E594FE4EA42628095A18E857F" name="us-gaap:LiabilitiesFairValueAdjustment" contextRef="FD2018Q4YTD_us-gaap_BusinessAcquisitionAxis_cgnx_ManateeWorksInc.Member" unitRef="usd" decimals="-3" scale="3" sign="-" format="ixt:numdotdecimal">1,350</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">)</span></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Fair value adjustment to Chiaro contingent consideration</span></div></td><td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9049532e1677-wk-Fact-D91437EF3C781A338A1D8095A190E4E1" name="us-gaap:LiabilitiesFairValueAdjustment" contextRef="FD2018Q4YTD_us-gaap_BusinessAcquisitionAxis_cgnx_ChiaroTechnologiesLLCMember" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">282</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Balance as of December 31, 2018</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9049532e1697-wk-Fact-D05E12AFFCA12F66205D8095A18FC613" name="us-gaap:FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue" contextRef="FI2018Q4" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">2,554</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Fair value adjustment to GVi contingent consideration</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>(<ix:nonFraction id="d9049532e1717-wk-Fact-C94D4417A6307F3FB89FC510EC72A95C" name="us-gaap:LiabilitiesFairValueAdjustment" contextRef="FD2019Q4YTD_us-gaap_BusinessAcquisitionAxis_cgnx_GViVenturesInc.Member" unitRef="usd" decimals="-3" scale="3" sign="-" format="ixt:numdotdecimal">1,646</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">)</span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Fair value adjustment to Chiaro contingent consideration</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9049532e1738-wk-Fact-61450EF95060C33DB53D8095A18FBEBC" name="us-gaap:LiabilitiesFairValueAdjustment" contextRef="FD2019Q4YTD_us-gaap_BusinessAcquisitionAxis_cgnx_ChiaroTechnologiesLLCMember" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">245</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Balance as of December 31, 2019</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span><ix:nonFraction id="d9049532e1763-wk-Fact-0E35A196C4BDAB1E986D8095A18F9E02" name="us-gaap:FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue" contextRef="FI2019Q4" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">1,153</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr></table></div><span style="font-family:inherit;font-size:10pt;"><br/></span></div></ix:nonNumeric><div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">The contingent consideration liability as of December 31, 2019 in the amount of </span><span style="font-family:Arial;font-size:10pt;"><span>$<ix:nonFraction id="d9049532e1779-wk-Fact-0E35A196C4BDAB1E986D8095A18F9E02" name="us-gaap:FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue" contextRef="FI2019Q4" unitRef="usd" decimals="-3" scale="0" format="ixt:numdotdecimal">1,153,000</ix:nonFraction></span></span><span style="font-family:Arial;font-size:10pt;"> relates to the Company's acquisition of Chiaro Techologies, LLC in 2016.  The undiscounted potential outcomes related to the contingent consideration range from </span><span style="font-family:Arial;font-size:10pt;"><span>$<ix:nonFraction id="d9049532e1783-wk-Fact-B1702162308B1807B914C53753F1F7F4" name="us-gaap:BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueLow" contextRef="FI2016Q4_us-gaap_BusinessAcquisitionAxis_cgnx_ChiaroTechnologiesLLCMember" unitRef="usd" decimals="-3" scale="0" format="ixt:numdotdecimal">0</ix:nonFraction></span></span><span style="font-family:Arial;font-size:10pt;"> to </span><span style="font-family:Arial;font-size:10pt;"><span>$<ix:nonFraction id="d9049532e1787-wk-Fact-B6D05BA502D17F4FA0EEC5376A43208D" name="us-gaap:BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueHigh" contextRef="FI2016Q4_us-gaap_BusinessAcquisitionAxis_cgnx_ChiaroTechnologiesLLCMember" unitRef="usd" decimals="-3" scale="0" format="ixt:numdotdecimal">1,250,000</ix:nonFraction></span></span><span style="font-family:Arial;font-size:10pt;"> based upon certain milestone revenue levels to be paid in 2020 if earned. </span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;text-decoration:underline;">Non-financial Assets that are Measured at Fair Value on a Non-recurring Basis</span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Non-financial assets such as property, plant, and equipment, goodwill, and intangible assets are required to be measured at fair value only when an impairment loss is recognized. In 2017, the Company determined that the carrying value of the customer relationships arising from the acquisition of AQSense, S.L. was impaired and reduced this value to zero, resulting in an impairment charge of </span><span style="font-family:Arial;font-size:10pt;"><span>$<ix:nonFraction id="d9049532e1798-wk-Fact-7C0ACBFC490B32C957E88095A17377E2" name="us-gaap:GoodwillAndIntangibleAssetImpairment" contextRef="FD2017Q4YTD" unitRef="usd" decimals="-3" scale="0" format="ixt:numdotdecimal">469,000</ix:nonFraction></span></span><span style="font-family:Arial;font-size:10pt;">.  The Company did not record an impairment charge related to non-financial assets in </span><span style="font-family:Arial;font-size:10pt;">2019</span><span style="font-family:Arial;font-size:10pt;"> or 2018. </span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Refer to Note 21 to the Consolidated Financial Statements for further information regarding acquisitions.</span></div></ix:continuation><div><br/></div><div style="text-align:center;"><div style="line-height:120%;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">52</span></div></div><hr style="page-break-after:always"></hr><div><a id="s816B29C73FFF5A668F40EAD0C461FF8E"></a></div><div><div style="line-height:120%;font-size:9pt;"><a style="font-family:inherit;font-size:9pt;" href="#sCD449198B5695D85B5494CF5DF708C26"><span style="font-family:inherit;font-size:9pt;">Table of Contents</span></a></div><div style="line-height:120%;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><br/></span></div><div style="line-height:120%;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">COGNEX CORPORATION - NOTES TO CONSOLIDATED FINANCIAL STATEMENTS</span></div></div><div><br/></div><div style="line-height:120%;padding-top:12px;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">NOTE 4:&#160;&#160;<ix:nonNumeric contextRef="FD2019Q4YTD" name="us-gaap:InvestmentsInDebtAndEquityInstrumentsCashAndCashEquivalentsUnrealizedAndRealizedGainsLossesTextBlock" id="TextSelection-86FAFD81AF38F97E66188095A1A8D20C-0-wk-Fact-06389795AEBD8E70C5D18095A190E6EB" continuedAt="TextSelection-86FAFD81AF38F97E66188095A1A8D20C-1" escape="true">Cash, Cash Equivalents, and Investments</ix:nonNumeric></span></div><ix:continuation id="TextSelection-86FAFD81AF38F97E66188095A1A8D20C-1" continuedAt="TextSelection-86FAFD81AF38F97E66188095A1A8D20C-2"><ix:nonNumeric contextRef="FD2019Q4YTD" name="cgnx:ComponentsOfCashCashEquivalentsAndInvestmentsTableTableTextBlock" id="TextSelection-C9E9C866A2BC847767CF8095A1A89D11-0-wk-Fact-CDDFEB31FCE9C45EDAAD8095A18FBE5E" escape="true"><div style="line-height:120%;padding-top:6px;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Cash, cash equivalents, and investments consisted of the following (in thousands):</span></div><div style="line-height:120%;font-size:10pt;"><div style="padding-left:0px;text-indent:0px;line-height:normal;padding-top:10px;"><table cellpadding="0" cellspacing="0" style="font-family:Times New Roman;font-size:10pt;width:99.80506822612085%;border-collapse:collapse;text-align:left;"><tr><td colspan="8"></td></tr><tr><td style="width:66%;"></td><td style="width:1%;"></td><td style="width:14%;"></td><td style="width:1%;"></td><td style="width:1%;"></td><td style="width:1%;"></td><td style="width:15%;"></td><td style="width:1%;"></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;">&#160;</span></div></td><td colspan="7" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;">December&#160;31,</span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;">2019</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">2018</span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Cash</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span><ix:nonFraction id="d9055830e761-wk-Fact-8127F9D2C7D3DE83988F8095A17D35F0" name="us-gaap:Cash" contextRef="FI2019Q4" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">155,498</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9055830e780-wk-Fact-7C3414A74B36CC0577138095A1838B03" name="us-gaap:Cash" contextRef="FI2018Q4" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">104,655</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Money market instruments</span></div></td><td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span><ix:nonFraction id="d9055830e795-wk-Fact-752065E624053C6BCD508095A1821C56" name="us-gaap:MoneyMarketFundsAtCarryingValue" contextRef="FI2019Q4" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">15,933</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9055830e814-wk-Fact-F6F18117D9273E40A1148095A17DAEE6" name="us-gaap:MoneyMarketFundsAtCarryingValue" contextRef="FI2018Q4" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">3,557</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Cash and cash equivalents</span></div></td><td colspan="2" style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span><ix:nonFraction id="d9055830e834-wk-Fact-D8633F16D33E937CA4698095A1867C44" name="us-gaap:CashAndCashEquivalentsAtCarryingValue" contextRef="FI2019Q4" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">171,431</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9055830e853-wk-Fact-0113DCF56F3641DF075C8095A187DA3D" name="us-gaap:CashAndCashEquivalentsAtCarryingValue" contextRef="FI2018Q4" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">108,212</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Treasury bills</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span><ix:nonFraction id="d9055830e873-wk-Fact-F3C3AC61CF3A7E8EEE928095A1838813" name="us-gaap:AvailableForSaleSecuritiesDebtSecuritiesCurrent" contextRef="FI2019Q4_us-gaap_FinancialInstrumentAxis_us-gaap_USTreasuryBillSecuritiesMember" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">92,914</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;border-top:3px double #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9055830e892-wk-Fact-2D6E5E69923FD58609208095A17CAC97" name="us-gaap:AvailableForSaleSecuritiesDebtSecuritiesCurrent" contextRef="FI2018Q4_us-gaap_FinancialInstrumentAxis_us-gaap_USTreasuryBillSecuritiesMember" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">198,477</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;border-top:3px double #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Asset-backed securities</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span><ix:nonFraction id="d9055830e912-wk-Fact-CA07A5EA775D08AC8F1091098245F408" name="us-gaap:AvailableForSaleSecuritiesDebtSecuritiesCurrent" contextRef="FI2019Q4_us-gaap_FinancialInstrumentAxis_us-gaap_AssetBackedSecuritiesMember" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">66,680</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9055830e931-wk-Fact-6A0AEDC539D940B24B36910985CC9F20" name="us-gaap:AvailableForSaleSecuritiesDebtSecuritiesCurrent" contextRef="FI2018Q4_us-gaap_FinancialInstrumentAxis_us-gaap_AssetBackedSecuritiesMember" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">78,407</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Corporate bonds</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span><ix:nonFraction id="d9055830e951-wk-Fact-BEBCAAA869419B97DEF58095A183C866" name="us-gaap:AvailableForSaleSecuritiesDebtSecuritiesCurrent" contextRef="FI2019Q4_us-gaap_FinancialInstrumentAxis_us-gaap_CorporateBondSecuritiesMember" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">65,624</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9055830e970-wk-Fact-24A0AD1FF5961EC4D6D38095A1837FA0" name="us-gaap:AvailableForSaleSecuritiesDebtSecuritiesCurrent" contextRef="FI2018Q4_us-gaap_FinancialInstrumentAxis_us-gaap_CorporateBondSecuritiesMember" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">137,871</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Sovereign bonds</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span><ix:nonFraction id="d9055830e990-wk-Fact-27E0A5087167C05F7DFE8095A17CBD5C" name="us-gaap:AvailableForSaleSecuritiesDebtSecuritiesCurrent" contextRef="FI2019Q4_us-gaap_FinancialInstrumentAxis_us-gaap_SovereignDebtSecuritiesMember" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">6,294</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9055830e1009-wk-Fact-A735CC2B9B67C08D5F378095A17CFAC5" name="us-gaap:AvailableForSaleSecuritiesDebtSecuritiesCurrent" contextRef="FI2018Q4_us-gaap_FinancialInstrumentAxis_us-gaap_SovereignDebtSecuritiesMember" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">8,101</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Municipal bonds</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span><ix:nonFraction id="d9055830e1029-wk-Fact-98D82EAB90750ACAD2078095A17D2438" name="us-gaap:AvailableForSaleSecuritiesDebtSecuritiesCurrent" contextRef="FI2019Q4_us-gaap_FinancialInstrumentAxis_us-gaap_MunicipalBondsMember" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">4,630</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9055830e1048-wk-Fact-2D29F0105FD086C82A178095A17C2A4B" name="us-gaap:AvailableForSaleSecuritiesDebtSecuritiesCurrent" contextRef="FI2018Q4_us-gaap_FinancialInstrumentAxis_us-gaap_MunicipalBondsMember" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">4,492</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Certificate of deposit</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span><ix:nonFraction id="d9055830e1068-wk-Fact-D0AD200E4A86D7F68EC6F3E2DE134B00" name="us-gaap:AvailableForSaleSecuritiesDebtSecuritiesCurrent" contextRef="FI2019Q4_us-gaap_FinancialInstrumentAxis_us-gaap_CertificatesOfDepositMember" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">4,328</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9055830e1087-wk-Fact-B96C4D852920CAB9E8A5F3E2E0618247" name="us-gaap:AvailableForSaleSecuritiesDebtSecuritiesCurrent" contextRef="FI2018Q4_us-gaap_FinancialInstrumentAxis_us-gaap_CertificatesOfDepositMember" unitRef="usd" decimals="-3" scale="3" format="ixt:zerodash">&#8212;</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Current investments</span></div></td><td colspan="2" style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span><ix:nonFraction id="d9055830e1108-wk-Fact-A2C8F9A16077219CCA148095A1878B63" name="us-gaap:AvailableForSaleSecuritiesDebtSecuritiesCurrent" contextRef="FI2019Q4" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">240,470</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9055830e1127-wk-Fact-8D57C642684FB1404A548095A171A66F" name="us-gaap:AvailableForSaleSecuritiesDebtSecuritiesCurrent" contextRef="FI2018Q4" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">427,348</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Treasury bills</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span><ix:nonFraction id="d9055830e1147-wk-Fact-AC34A3E11DD39164B7FD910A0A1FFCFC" name="us-gaap:AvailableForSaleSecuritiesDebtSecuritiesNoncurrent" contextRef="FI2019Q4_us-gaap_FinancialInstrumentAxis_us-gaap_USTreasuryBillSecuritiesMember" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">216,334</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9055830e1166-wk-Fact-4B765D6AC82BA5D75266910A0D3E1E53" name="us-gaap:AvailableForSaleSecuritiesDebtSecuritiesNoncurrent" contextRef="FI2018Q4_us-gaap_FinancialInstrumentAxis_us-gaap_USTreasuryBillSecuritiesMember" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">32,760</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Corporate bonds</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span><ix:nonFraction id="d9055830e1186-wk-Fact-1857AD5E719ED8A56FA98095A1839890" name="us-gaap:AvailableForSaleSecuritiesDebtSecuritiesNoncurrent" contextRef="FI2019Q4_us-gaap_FinancialInstrumentAxis_us-gaap_CorporateBondSecuritiesMember" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">146,474</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9055830e1205-wk-Fact-9ABDDFE4B17C7C5312438095A18325EE" name="us-gaap:AvailableForSaleSecuritiesDebtSecuritiesNoncurrent" contextRef="FI2018Q4_us-gaap_FinancialInstrumentAxis_us-gaap_CorporateBondSecuritiesMember" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">162,566</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Asset-backed securities</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span><ix:nonFraction id="d9055830e1225-wk-Fact-EA8CBAA6088BF1EF4D198095A1833481" name="us-gaap:AvailableForSaleSecuritiesDebtSecuritiesNoncurrent" contextRef="FI2019Q4_us-gaap_FinancialInstrumentAxis_us-gaap_AssetBackedSecuritiesMember" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">46,403</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9055830e1244-wk-Fact-D956A1F4A40D2F402CF78095A17D0689" name="us-gaap:AvailableForSaleSecuritiesDebtSecuritiesNoncurrent" contextRef="FI2018Q4_us-gaap_FinancialInstrumentAxis_us-gaap_AssetBackedSecuritiesMember" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">53,631</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Sovereign bonds</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span><ix:nonFraction id="d9055830e1264-wk-Fact-C2CD097529212AD698358095A17D5380" name="us-gaap:AvailableForSaleSecuritiesDebtSecuritiesNoncurrent" contextRef="FI2019Q4_us-gaap_FinancialInstrumentAxis_us-gaap_SovereignDebtSecuritiesMember" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">16,005</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9055830e1283-wk-Fact-7EA46809B5E7E0A75F8D8095A17C2768" name="us-gaap:AvailableForSaleSecuritiesDebtSecuritiesNoncurrent" contextRef="FI2018Q4_us-gaap_FinancialInstrumentAxis_us-gaap_SovereignDebtSecuritiesMember" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">6,316</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Agency bonds</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span><ix:nonFraction id="d9055830e1303-wk-Fact-3F97EEBAB108FDF5B0518095A1833A49" name="us-gaap:AvailableForSaleSecuritiesDebtSecuritiesNoncurrent" contextRef="FI2019Q4_us-gaap_FinancialInstrumentAxis_cgnx_AgencyBondsMember" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">5,914</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9055830e1322-wk-Fact-6E586826AEE4051E42D78095A17DFCD9" name="us-gaap:AvailableForSaleSecuritiesDebtSecuritiesNoncurrent" contextRef="FI2018Q4_us-gaap_FinancialInstrumentAxis_cgnx_AgencyBondsMember" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">5,921</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Municipal bonds</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span><ix:nonFraction id="d9055830e1342-wk-Fact-EA19150D8496A92FF1A08095A17CDD71" name="us-gaap:AvailableForSaleSecuritiesDebtSecuritiesNoncurrent" contextRef="FI2019Q4_us-gaap_FinancialInstrumentAxis_us-gaap_MunicipalBondsMember" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">2,322</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9055830e1361-wk-Fact-1A24C52F823A1E4722118095A17D385A" name="us-gaap:AvailableForSaleSecuritiesDebtSecuritiesNoncurrent" contextRef="FI2018Q4_us-gaap_FinancialInstrumentAxis_us-gaap_MunicipalBondsMember" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">845</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Non-current investments</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span><ix:nonFraction id="d9055830e1381-wk-Fact-DF042BAB946939B448EB8095A187F505" name="us-gaap:LongTermInvestments" contextRef="FI2019Q4" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">433,452</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9055830e1400-wk-Fact-D0E7E30446713E43A7318095A187F414" name="us-gaap:LongTermInvestments" contextRef="FI2018Q4" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">262,039</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span><ix:nonFraction id="d9055830e1425-wk-Fact-CE81F22E58AC71ED46768095A17C17DD" name="cgnx:CashCashEquivalentsShortTermAndLongTermInvestments" contextRef="FI2019Q4" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">845,353</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9055830e1444-wk-Fact-4141674BB98564E829648095A182B786" name="cgnx:CashCashEquivalentsShortTermAndLongTermInvestments" contextRef="FI2018Q4" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">797,599</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr></table></div><span style="font-family:inherit;font-size:10pt;"><br/></span></div></ix:nonNumeric><div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">The Company&#8217;s cash balance included foreign bank balances totaling </span><span style="font-family:Arial;font-size:10pt;"><span>$<ix:nonFraction id="d9055830e1462-wk-Fact-266D26EF251C0393AE208095A18F8704" name="cgnx:DueFromForeignBanks" contextRef="FI2019Q4" unitRef="usd" decimals="-3" scale="0" format="ixt:numdotdecimal">123,499,000</ix:nonFraction></span></span><span style="font-family:Arial;font-size:10pt;"> and </span><span style="font-family:Arial;font-size:10pt;"><span>$<ix:nonFraction id="d9055830e1466-wk-Fact-DDE06AD4A1586715BB038095A18FD8B5" name="cgnx:DueFromForeignBanks" contextRef="FI2018Q4" unitRef="usd" decimals="-3" scale="0" format="ixt:numdotdecimal">67,502,000</ix:nonFraction></span></span><span style="font-family:Arial;font-size:10pt;"> as of December&#160;31, </span><span style="font-family:Arial;font-size:10pt;">2019</span><span style="font-family:Arial;font-size:10pt;"> and </span><span style="font-family:Arial;font-size:10pt;">2018</span><span style="font-family:Arial;font-size:10pt;">, respectively.</span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Treasury bills consist of debt securities issued by the U.S. government; asset-backed securities consist of debt securities collateralized by pools of receivables or loans with credit enhancement; corporate bonds consist of debt securities issued by both domestic and foreign companies; sovereign bonds consist of direct debt issued by foreign governments; municipal bonds consist of debt securities issued by state and local government entities; agency bonds consist of domestic or foreign obligations of government agencies and government-sponsored enterprises that have government backing; and certificates of deposit are time deposits held by financial institutions with a fixed interest rate.</span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><br/></span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><br/></span></div></ix:continuation><div><br/></div><div style="text-align:center;"><div style="line-height:120%;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">53</span></div></div><hr style="page-break-after:always"></hr><div><div style="line-height:120%;font-size:9pt;"><a style="font-family:inherit;font-size:9pt;" href="#sCD449198B5695D85B5494CF5DF708C26"><span style="font-family:inherit;font-size:9pt;">Table of Contents</span></a></div><div style="line-height:120%;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><br/></span></div><div style="line-height:120%;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">COGNEX CORPORATION - NOTES TO CONSOLIDATED FINANCIAL STATEMENTS</span></div></div><div><br/></div><ix:continuation id="TextSelection-86FAFD81AF38F97E66188095A1A8D20C-2" continuedAt="TextSelection-86FAFD81AF38F97E66188095A1A8D20C-3"><ix:nonNumeric contextRef="FD2019Q4YTD" name="us-gaap:ScheduleOfAvailableForSaleSecuritiesReconciliationTableTextBlock" id="TextSelection-0050E97E85E70C972F198095A1A84314-0-wk-Fact-B0D489257672B0CDFA2A8095A18FC332" escape="true"><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">The following table summarizes the Company&#8217;s available-for-sale investments as of December&#160;31, </span><span style="font-family:Arial;font-size:10pt;color:#000000;text-decoration:none;">2019</span><span style="font-family:Arial;font-size:10pt;"> (in thousands):</span></div><div style="line-height:120%;font-size:10pt;"><div style="padding-left:0px;text-indent:0px;line-height:normal;padding-top:10px;"><table cellpadding="0" cellspacing="0" style="font-family:Times New Roman;font-size:10pt;width:99.80506822612085%;border-collapse:collapse;text-align:left;"><tr><td colspan="16"></td></tr><tr><td style="width:37%;"></td><td style="width:1%;"></td><td style="width:13%;"></td><td style="width:1%;"></td><td style="width:1%;"></td><td style="width:1%;"></td><td style="width:13%;"></td><td style="width:1%;"></td><td style="width:1%;"></td><td style="width:1%;"></td><td style="width:13%;"></td><td style="width:1%;"></td><td style="width:1%;"></td><td style="width:1%;"></td><td style="width:13%;"></td><td style="width:1%;"></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">Amortized</span></div><div style="text-align:center;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">Cost</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">Gross</span></div><div style="text-align:center;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">Unrealized</span></div><div style="text-align:center;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">Gains</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">Gross</span></div><div style="text-align:center;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">Unrealized</span></div><div style="text-align:center;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">Losses</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-top:2px;padding-bottom:2px;"><div style="text-align:center;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">Fair Value</span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Current:</span></div></td><td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td></tr><tr><td style="vertical-align:top;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Treasury bills</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9055830e1717-wk-Fact-9591F14754E738B40EEE8095A1843B8D" name="us-gaap:AvailableForSaleDebtSecuritiesAmortizedCostBasis" contextRef="FI2019Q4_us-gaap_FinancialInstrumentAxis_us-gaap_USTreasurySecuritiesMember_us-gaap_InvestmentTypeAxis_us-gaap_ShortTermInvestmentsMember" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">92,782</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9055830e1736-wk-Fact-6CC53D618C1A7FAF03DA8095A17DC117" name="us-gaap:AvailableForSaleSecuritiesAccumulatedGrossUnrealizedGainBeforeTax" contextRef="FI2019Q4_us-gaap_FinancialInstrumentAxis_us-gaap_USTreasurySecuritiesMember_us-gaap_InvestmentTypeAxis_us-gaap_ShortTermInvestmentsMember" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">137</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>(<ix:nonFraction id="d9055830e1755-wk-Fact-03542337AEBF979C1ABA8095A17C64B6" name="us-gaap:AvailableForSaleSecuritiesAccumulatedGrossUnrealizedLossBeforeTax" contextRef="FI2019Q4_us-gaap_FinancialInstrumentAxis_us-gaap_USTreasurySecuritiesMember_us-gaap_InvestmentTypeAxis_us-gaap_ShortTermInvestmentsMember" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">5</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">)</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9055830e1776-wk-Fact-992AE972AAD683647ABC8095A1841DE9" name="us-gaap:AvailableForSaleSecuritiesDebtSecurities" contextRef="FI2019Q4_us-gaap_FinancialInstrumentAxis_us-gaap_USTreasurySecuritiesMember_us-gaap_InvestmentTypeAxis_us-gaap_ShortTermInvestmentsMember" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">92,914</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Asset-backed securities</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9055830e1791-wk-Fact-752E464F90AB00A5381991315240FAE8" name="us-gaap:AvailableForSaleDebtSecuritiesAmortizedCostBasis" contextRef="FI2019Q4_us-gaap_FinancialInstrumentAxis_us-gaap_AssetBackedSecuritiesMember_us-gaap_InvestmentTypeAxis_us-gaap_ShortTermInvestmentsMember" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">66,474</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9055830e1810-wk-Fact-7093A2DC34F92450F4059131573F9E08" name="us-gaap:AvailableForSaleSecuritiesAccumulatedGrossUnrealizedGainBeforeTax" contextRef="FI2019Q4_us-gaap_FinancialInstrumentAxis_us-gaap_AssetBackedSecuritiesMember_us-gaap_InvestmentTypeAxis_us-gaap_ShortTermInvestmentsMember" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">207</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>(<ix:nonFraction id="d9055830e1829-wk-Fact-8CBC97FE1B01EB69F26791315AF709B2" name="us-gaap:AvailableForSaleSecuritiesAccumulatedGrossUnrealizedLossBeforeTax" contextRef="FI2019Q4_us-gaap_FinancialInstrumentAxis_us-gaap_AssetBackedSecuritiesMember_us-gaap_InvestmentTypeAxis_us-gaap_ShortTermInvestmentsMember" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">1</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">)</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9055830e1850-wk-Fact-34098CBB3D73F32183E991315E866872" name="us-gaap:AvailableForSaleSecuritiesDebtSecurities" contextRef="FI2019Q4_us-gaap_FinancialInstrumentAxis_us-gaap_AssetBackedSecuritiesMember_us-gaap_InvestmentTypeAxis_us-gaap_ShortTermInvestmentsMember" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">66,680</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Corporate bonds</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9055830e1870-wk-Fact-457AD0DB070218EA1F388095A184D390" name="us-gaap:AvailableForSaleDebtSecuritiesAmortizedCostBasis" contextRef="FI2019Q4_us-gaap_FinancialInstrumentAxis_us-gaap_CorporateBondSecuritiesMember_us-gaap_InvestmentTypeAxis_us-gaap_ShortTermInvestmentsMember" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">65,440</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9055830e1889-wk-Fact-0AFC928B4C8FF1B7482E8095A183A36C" name="us-gaap:AvailableForSaleSecuritiesAccumulatedGrossUnrealizedGainBeforeTax" contextRef="FI2019Q4_us-gaap_FinancialInstrumentAxis_us-gaap_CorporateBondSecuritiesMember_us-gaap_InvestmentTypeAxis_us-gaap_ShortTermInvestmentsMember" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">188</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>(<ix:nonFraction id="d9055830e1908-wk-Fact-B9A3C8D1F258CC246DF58095A17CA0D4" name="us-gaap:AvailableForSaleSecuritiesAccumulatedGrossUnrealizedLossBeforeTax" contextRef="FI2019Q4_us-gaap_FinancialInstrumentAxis_us-gaap_CorporateBondSecuritiesMember_us-gaap_InvestmentTypeAxis_us-gaap_ShortTermInvestmentsMember" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">4</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">)</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9055830e1929-wk-Fact-7FF0372A8606A6F52C7E8095A17C2F76" name="us-gaap:AvailableForSaleSecuritiesDebtSecurities" contextRef="FI2019Q4_us-gaap_FinancialInstrumentAxis_us-gaap_CorporateBondSecuritiesMember_us-gaap_InvestmentTypeAxis_us-gaap_ShortTermInvestmentsMember" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">65,624</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Sovereign bonds</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9055830e1949-wk-Fact-323F3DFF62376A9E49878095A184C0EA" name="us-gaap:AvailableForSaleDebtSecuritiesAmortizedCostBasis" contextRef="FI2019Q4_us-gaap_FinancialInstrumentAxis_us-gaap_SovereignDebtSecuritiesMember_us-gaap_InvestmentTypeAxis_us-gaap_ShortTermInvestmentsMember" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">6,286</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9055830e1968-wk-Fact-32D9F525F9DA907F4B168095A184190E" name="us-gaap:AvailableForSaleSecuritiesAccumulatedGrossUnrealizedGainBeforeTax" contextRef="FI2019Q4_us-gaap_FinancialInstrumentAxis_us-gaap_SovereignDebtSecuritiesMember_us-gaap_InvestmentTypeAxis_us-gaap_ShortTermInvestmentsMember" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">8</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9055830e1987-wk-Fact-B09F72082201F03ADFA08095A17CB9AC" name="us-gaap:AvailableForSaleSecuritiesAccumulatedGrossUnrealizedLossBeforeTax" contextRef="FI2019Q4_us-gaap_FinancialInstrumentAxis_us-gaap_SovereignDebtSecuritiesMember_us-gaap_InvestmentTypeAxis_us-gaap_ShortTermInvestmentsMember" unitRef="usd" decimals="-3" scale="3" format="ixt:zerodash">&#8212;</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9055830e2007-wk-Fact-D6DFFB5BC252D6FA674C8095A184E80C" name="us-gaap:AvailableForSaleSecuritiesDebtSecurities" contextRef="FI2019Q4_us-gaap_FinancialInstrumentAxis_us-gaap_SovereignDebtSecuritiesMember_us-gaap_InvestmentTypeAxis_us-gaap_ShortTermInvestmentsMember" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">6,294</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Municipal bonds</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9055830e2027-wk-Fact-53D301A7B7E4C6392D548095A17DDDA5" name="us-gaap:AvailableForSaleDebtSecuritiesAmortizedCostBasis" contextRef="FI2019Q4_us-gaap_FinancialInstrumentAxis_us-gaap_MunicipalBondsMember_us-gaap_InvestmentTypeAxis_us-gaap_ShortTermInvestmentsMember" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">4,628</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9055830e2046-wk-Fact-0912C135AE8A04093EAA8095A184681E" name="us-gaap:AvailableForSaleSecuritiesAccumulatedGrossUnrealizedGainBeforeTax" contextRef="FI2019Q4_us-gaap_FinancialInstrumentAxis_us-gaap_MunicipalBondsMember_us-gaap_InvestmentTypeAxis_us-gaap_ShortTermInvestmentsMember" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">3</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>(<ix:nonFraction id="d9055830e2065-wk-Fact-FCE0AF50AF5E286765CD8095A17C5E28" name="us-gaap:AvailableForSaleSecuritiesAccumulatedGrossUnrealizedLossBeforeTax" contextRef="FI2019Q4_us-gaap_FinancialInstrumentAxis_us-gaap_MunicipalBondsMember_us-gaap_InvestmentTypeAxis_us-gaap_ShortTermInvestmentsMember" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">1</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">)</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9055830e2086-wk-Fact-B2AE7E5B173DB36A610C8095A17D25CE" name="us-gaap:AvailableForSaleSecuritiesDebtSecurities" contextRef="FI2019Q4_us-gaap_FinancialInstrumentAxis_us-gaap_MunicipalBondsMember_us-gaap_InvestmentTypeAxis_us-gaap_ShortTermInvestmentsMember" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">4,630</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Non-current:</span></div></td><td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Treasury bills</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9055830e2186-wk-Fact-7D7F702956C3A8D604339111266E68B4" name="us-gaap:AvailableForSaleDebtSecuritiesAmortizedCostBasis" contextRef="FI2019Q4_us-gaap_FinancialInstrumentAxis_us-gaap_USTreasurySecuritiesMember_us-gaap_InvestmentTypeAxis_cgnx_LongTermInvestmentsMember" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">215,339</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9055830e2205-wk-Fact-83AD1A6B73B285598B4B911129CA9F34" name="us-gaap:AvailableForSaleSecuritiesAccumulatedGrossUnrealizedGainBeforeTax" contextRef="FI2019Q4_us-gaap_FinancialInstrumentAxis_us-gaap_USTreasurySecuritiesMember_us-gaap_InvestmentTypeAxis_cgnx_LongTermInvestmentsMember" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">1,005</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>(<ix:nonFraction id="d9055830e2224-wk-Fact-363711CAB807027F053091112DEBF1ED" name="us-gaap:AvailableForSaleSecuritiesAccumulatedGrossUnrealizedLossBeforeTax" contextRef="FI2019Q4_us-gaap_FinancialInstrumentAxis_us-gaap_USTreasurySecuritiesMember_us-gaap_InvestmentTypeAxis_cgnx_LongTermInvestmentsMember" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">10</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">)</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9055830e2245-wk-Fact-7FFD014647A3845F3E32911132C63B17" name="us-gaap:AvailableForSaleSecuritiesDebtSecurities" contextRef="FI2019Q4_us-gaap_FinancialInstrumentAxis_us-gaap_USTreasurySecuritiesMember_us-gaap_InvestmentTypeAxis_cgnx_LongTermInvestmentsMember" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">216,334</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Corporate bonds</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9055830e2265-wk-Fact-8304B2C5522D9708AED28095A17C6DFB" name="us-gaap:AvailableForSaleDebtSecuritiesAmortizedCostBasis" contextRef="FI2019Q4_us-gaap_FinancialInstrumentAxis_us-gaap_CorporateBondSecuritiesMember_us-gaap_InvestmentTypeAxis_cgnx_LongTermInvestmentsMember" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">145,806</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9055830e2284-wk-Fact-9EE4817500543E38DE8F8095A17D9109" name="us-gaap:AvailableForSaleSecuritiesAccumulatedGrossUnrealizedGainBeforeTax" contextRef="FI2019Q4_us-gaap_FinancialInstrumentAxis_us-gaap_CorporateBondSecuritiesMember_us-gaap_InvestmentTypeAxis_cgnx_LongTermInvestmentsMember" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">674</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>(<ix:nonFraction id="d9055830e2303-wk-Fact-B04E172D129B905FAF0B8095A17C3652" name="us-gaap:AvailableForSaleSecuritiesAccumulatedGrossUnrealizedLossBeforeTax" contextRef="FI2019Q4_us-gaap_FinancialInstrumentAxis_us-gaap_CorporateBondSecuritiesMember_us-gaap_InvestmentTypeAxis_cgnx_LongTermInvestmentsMember" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">6</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">)</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9055830e2324-wk-Fact-255EA2ED3A90DFBD351C8095A1845C36" name="us-gaap:AvailableForSaleSecuritiesDebtSecurities" contextRef="FI2019Q4_us-gaap_FinancialInstrumentAxis_us-gaap_CorporateBondSecuritiesMember_us-gaap_InvestmentTypeAxis_cgnx_LongTermInvestmentsMember" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">146,474</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Asset-backed securities</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9055830e2344-wk-Fact-857D7ECAE46E5601BF9F8095A1839ECA" name="us-gaap:AvailableForSaleDebtSecuritiesAmortizedCostBasis" contextRef="FI2019Q4_us-gaap_FinancialInstrumentAxis_us-gaap_AssetBackedSecuritiesMember_us-gaap_InvestmentTypeAxis_cgnx_LongTermInvestmentsMember" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">46,269</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9055830e2363-wk-Fact-06ED50CBAC41034552CF8095A17C7E1F" name="us-gaap:AvailableForSaleSecuritiesAccumulatedGrossUnrealizedGainBeforeTax" contextRef="FI2019Q4_us-gaap_FinancialInstrumentAxis_us-gaap_AssetBackedSecuritiesMember_us-gaap_InvestmentTypeAxis_cgnx_LongTermInvestmentsMember" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">150</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>(<ix:nonFraction id="d9055830e2382-wk-Fact-66E1858DEB7C2946E96B8095A1824D88" name="us-gaap:AvailableForSaleSecuritiesAccumulatedGrossUnrealizedLossBeforeTax" contextRef="FI2019Q4_us-gaap_FinancialInstrumentAxis_us-gaap_AssetBackedSecuritiesMember_us-gaap_InvestmentTypeAxis_cgnx_LongTermInvestmentsMember" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">16</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">)</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9055830e2403-wk-Fact-1ABA3031D608EB3666E78095A17C4C87" name="us-gaap:AvailableForSaleSecuritiesDebtSecurities" contextRef="FI2019Q4_us-gaap_FinancialInstrumentAxis_us-gaap_AssetBackedSecuritiesMember_us-gaap_InvestmentTypeAxis_cgnx_LongTermInvestmentsMember" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">46,403</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Sovereign bonds</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9055830e2424-wk-Fact-71F54AF44E313894D3B48095A1835F44" name="us-gaap:AvailableForSaleDebtSecuritiesAmortizedCostBasis" contextRef="FI2019Q4_us-gaap_FinancialInstrumentAxis_us-gaap_SovereignDebtSecuritiesMember_us-gaap_InvestmentTypeAxis_cgnx_LongTermInvestmentsMember" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">15,971</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9055830e2443-wk-Fact-E52DE0205EE112B262F98095A17D7E22" name="us-gaap:AvailableForSaleSecuritiesAccumulatedGrossUnrealizedGainBeforeTax" contextRef="FI2019Q4_us-gaap_FinancialInstrumentAxis_us-gaap_SovereignDebtSecuritiesMember_us-gaap_InvestmentTypeAxis_cgnx_LongTermInvestmentsMember" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">40</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>(<ix:nonFraction id="d9055830e2462-wk-Fact-A50E9DE053452502B9FD8095A17CF149" name="us-gaap:AvailableForSaleSecuritiesAccumulatedGrossUnrealizedLossBeforeTax" contextRef="FI2019Q4_us-gaap_FinancialInstrumentAxis_us-gaap_SovereignDebtSecuritiesMember_us-gaap_InvestmentTypeAxis_cgnx_LongTermInvestmentsMember" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">6</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">)</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9055830e2483-wk-Fact-66E6B843AAA99648CFBC8095A1846356" name="us-gaap:AvailableForSaleSecuritiesDebtSecurities" contextRef="FI2019Q4_us-gaap_FinancialInstrumentAxis_us-gaap_SovereignDebtSecuritiesMember_us-gaap_InvestmentTypeAxis_cgnx_LongTermInvestmentsMember" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">16,005</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Agency bonds</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9055830e2503-wk-Fact-D1B63A85CB5163D696D38095A17D78BE" name="us-gaap:AvailableForSaleDebtSecuritiesAmortizedCostBasis" contextRef="FI2019Q4_us-gaap_FinancialInstrumentAxis_cgnx_AgencyBondsMember_us-gaap_InvestmentTypeAxis_cgnx_LongTermInvestmentsMember" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">5,930</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9055830e2522-wk-Fact-016B02587693910B42C88095A182204B" name="us-gaap:AvailableForSaleSecuritiesAccumulatedGrossUnrealizedGainBeforeTax" contextRef="FI2019Q4_us-gaap_FinancialInstrumentAxis_cgnx_AgencyBondsMember_us-gaap_InvestmentTypeAxis_cgnx_LongTermInvestmentsMember" unitRef="usd" decimals="-3" scale="3" format="ixt:zerodash">&#8212;</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>(<ix:nonFraction id="d9055830e2541-wk-Fact-792AD065D159A5439CA68095A17D0FEA" name="us-gaap:AvailableForSaleSecuritiesAccumulatedGrossUnrealizedLossBeforeTax" contextRef="FI2019Q4_us-gaap_FinancialInstrumentAxis_cgnx_AgencyBondsMember_us-gaap_InvestmentTypeAxis_cgnx_LongTermInvestmentsMember" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">16</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">)</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9055830e2562-wk-Fact-9B375E9FD1F1CA6DAFE68095A182AD44" name="us-gaap:AvailableForSaleSecuritiesDebtSecurities" contextRef="FI2019Q4_us-gaap_FinancialInstrumentAxis_cgnx_AgencyBondsMember_us-gaap_InvestmentTypeAxis_cgnx_LongTermInvestmentsMember" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">5,914</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Municipal bonds</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9055830e2582-wk-Fact-29DDC59391331C3DA7298095A183599E" name="us-gaap:AvailableForSaleDebtSecuritiesAmortizedCostBasis" contextRef="FI2019Q4_us-gaap_FinancialInstrumentAxis_us-gaap_MunicipalBondsMember_us-gaap_InvestmentTypeAxis_cgnx_LongTermInvestmentsMember" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">2,318</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9055830e2601-wk-Fact-C826E46B6F5A2CA62CDB8095A18325B8" name="us-gaap:AvailableForSaleSecuritiesAccumulatedGrossUnrealizedGainBeforeTax" contextRef="FI2019Q4_us-gaap_FinancialInstrumentAxis_us-gaap_MunicipalBondsMember_us-gaap_InvestmentTypeAxis_cgnx_LongTermInvestmentsMember" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">4</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9055830e2620-wk-Fact-95BC178ED5255A697BE38095A1832752" name="us-gaap:AvailableForSaleSecuritiesAccumulatedGrossUnrealizedLossBeforeTax" contextRef="FI2019Q4_us-gaap_FinancialInstrumentAxis_us-gaap_MunicipalBondsMember_us-gaap_InvestmentTypeAxis_cgnx_LongTermInvestmentsMember" unitRef="usd" decimals="-3" scale="3" format="ixt:zerodash">&#8212;</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9055830e2640-wk-Fact-402DF44D3AB20509FCD48095A17DA940" name="us-gaap:AvailableForSaleSecuritiesDebtSecurities" contextRef="FI2019Q4_us-gaap_FinancialInstrumentAxis_us-gaap_MunicipalBondsMember_us-gaap_InvestmentTypeAxis_cgnx_LongTermInvestmentsMember" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">2,322</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span><ix:nonFraction id="d9055830e2665-wk-Fact-FEF1B9407593A816EDC58095A1841AEB" name="us-gaap:AvailableForSaleDebtSecuritiesAmortizedCostBasis" contextRef="FI2019Q4" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">667,243</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span><ix:nonFraction id="d9055830e2684-wk-Fact-E9B4911199B347568BBF8095A1844965" name="us-gaap:AvailableForSaleSecuritiesAccumulatedGrossUnrealizedGainBeforeTax" contextRef="FI2019Q4" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">2,416</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>(<ix:nonFraction id="d9055830e2703-wk-Fact-A48BDD771B9DBD44A0088095A17CFDBA" name="us-gaap:AvailableForSaleSecuritiesAccumulatedGrossUnrealizedLossBeforeTax" contextRef="FI2019Q4" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">65</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-right:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">)</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span><ix:nonFraction id="d9055830e2724-wk-Fact-407782CEF3C3CA9A50488095A17C8917" name="us-gaap:AvailableForSaleSecuritiesDebtSecurities" contextRef="FI2019Q4" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">669,594</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr></table></div><span style="font-family:inherit;font-size:10pt;"><br/></span></div></ix:nonNumeric><ix:nonNumeric contextRef="FD2019Q4YTD" name="us-gaap:ScheduleOfUnrealizedLossOnInvestmentsTableTextBlock" id="TextSelection-A404DBC00B6275BFFD5C8095A1A8AA98-0-wk-Fact-CCAA511FC80D183457F28095A18FED93" escape="true"><div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">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, </span><span style="font-family:Arial;font-size:10pt;color:#000000;text-decoration:none;">2019</span><span style="font-family:Arial;font-size:10pt;"> (in thousands):</span></div><div style="line-height:120%;font-size:10pt;"><div style="padding-left:0px;text-indent:0px;line-height:normal;padding-top:10px;"><table cellpadding="0" cellspacing="0" style="font-family:Times New Roman;font-size:10pt;width:100%;border-collapse:collapse;text-align:left;"><tr><td colspan="24"></td></tr><tr><td style="width:35%;"></td><td style="width:1%;"></td><td style="width:8%;"></td><td style="width:1%;"></td><td style="width:1%;"></td><td style="width:1%;"></td><td style="width:8%;"></td><td style="width:1%;"></td><td style="width:1%;"></td><td style="width:1%;"></td><td style="width:8%;"></td><td style="width:1%;"></td><td style="width:1%;"></td><td style="width:1%;"></td><td style="width:8%;"></td><td style="width:1%;"></td><td style="width:1%;"></td><td style="width:1%;"></td><td style="width:8%;"></td><td style="width:1%;"></td><td style="width:1%;"></td><td style="width:1%;"></td><td style="width:8%;"></td><td style="width:1%;"></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;">&#160;</span></div></td><td colspan="7" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;">Unrealized Loss</span></div><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;">Position For Less than</span></div><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;">12 Months</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="7" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;">Unrealized Loss<br/>Position For Greater than<br/>12 Months</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="7" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;">Total</span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;">Fair Value</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;">Unrealized</span></div><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;">Losses</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;">Fair Value</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;">Unrealized<br/>Losses</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;">Fair Value</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;">Unrealized<br/>Losses</span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Treasury bills</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9055830e3054-wk-Fact-96804600C09ACFF568CF9111D6F27898" name="us-gaap:AvailableForSaleSecuritiesContinuousUnrealizedLossPositionLessThanTwelveMonthsFairValue" contextRef="FI2019Q4_us-gaap_FinancialInstrumentAxis_us-gaap_USTreasurySecuritiesMember" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">27,121</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>(<ix:nonFraction id="d9055830e3073-wk-Fact-CE2AFA8C5114B579A54C9111D9FB28AF" name="us-gaap:AvailableForSaleSecuritiesContinuousUnrealizedLossPositionLessThan12MonthsAccumulatedLoss" contextRef="FI2019Q4_us-gaap_FinancialInstrumentAxis_us-gaap_USTreasurySecuritiesMember" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">13</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">)</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9055830e3093-wk-Fact-E48078D3D235436224379111DC843255" name="us-gaap:AvailableForSaleSecuritiesContinuousUnrealizedLossPositionTwelveMonthsOrLongerFairValue" contextRef="FI2019Q4_us-gaap_FinancialInstrumentAxis_us-gaap_USTreasurySecuritiesMember" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">7,488</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>(<ix:nonFraction id="d9055830e3113-wk-Fact-9FE8FA16553580B60A8C9111E01855DD" name="us-gaap:AvailableForSaleSecuritiesContinuousUnrealizedLossPosition12MonthsOrLongerAccumulatedLoss" contextRef="FI2019Q4_us-gaap_FinancialInstrumentAxis_us-gaap_USTreasurySecuritiesMember" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">2</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">)</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9055830e3133-wk-Fact-4A6B5D77751ABC4AFE639111E4577684" name="us-gaap:AvailableForSaleSecuritiesContinuousUnrealizedLossPositionFairValue" contextRef="FI2019Q4_us-gaap_FinancialInstrumentAxis_us-gaap_USTreasurySecuritiesMember" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">34,609</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>(<ix:nonFraction id="d9055830e3153-wk-Fact-70640A9C65CF1492F8409111E7C18DBF" name="us-gaap:AvailableForSaleSecuritiesContinuousUnrealizedLossPositionAccumulatedLoss" contextRef="FI2019Q4_us-gaap_FinancialInstrumentAxis_us-gaap_USTreasurySecuritiesMember" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">15</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">)</span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Asset-backed securities</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9055830e3169-wk-Fact-C24F31E43D9383A50AFB91129E66E685" name="us-gaap:AvailableForSaleSecuritiesContinuousUnrealizedLossPositionLessThanTwelveMonthsFairValue" contextRef="FI2019Q4_us-gaap_FinancialInstrumentAxis_us-gaap_AssetBackedSecuritiesMember" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">11,621</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>(<ix:nonFraction id="d9055830e3188-wk-Fact-A016119768735CC740529112A0CE6BC7" name="us-gaap:AvailableForSaleSecuritiesContinuousUnrealizedLossPositionLessThan12MonthsAccumulatedLoss" contextRef="FI2019Q4_us-gaap_FinancialInstrumentAxis_us-gaap_AssetBackedSecuritiesMember" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">16</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">)</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9055830e3208-wk-Fact-ACA803356C72AEA857469112A36E9BDE" name="us-gaap:AvailableForSaleSecuritiesContinuousUnrealizedLossPositionTwelveMonthsOrLongerFairValue" contextRef="FI2019Q4_us-gaap_FinancialInstrumentAxis_us-gaap_AssetBackedSecuritiesMember" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">2,469</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>(<ix:nonFraction id="d9055830e3228-wk-Fact-FBAC5E162793516656599112A68F67B8" name="us-gaap:AvailableForSaleSecuritiesContinuousUnrealizedLossPosition12MonthsOrLongerAccumulatedLoss" contextRef="FI2019Q4_us-gaap_FinancialInstrumentAxis_us-gaap_AssetBackedSecuritiesMember" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">1</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">)</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9055830e3248-wk-Fact-5CD5FC5393D1476F234A9112AB191FD1" name="us-gaap:AvailableForSaleSecuritiesContinuousUnrealizedLossPositionFairValue" contextRef="FI2019Q4_us-gaap_FinancialInstrumentAxis_us-gaap_AssetBackedSecuritiesMember" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">14,090</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>(<ix:nonFraction id="d9055830e3267-wk-Fact-EC1DB7220454E886EE9E9112ADB3DF94" name="us-gaap:AvailableForSaleSecuritiesContinuousUnrealizedLossPositionAccumulatedLoss" contextRef="FI2019Q4_us-gaap_FinancialInstrumentAxis_us-gaap_AssetBackedSecuritiesMember" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">17</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">)</span></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Sovereign bonds</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9055830e3289-wk-Fact-587CCC53FDD3D05C8F169112F6F9427F" name="us-gaap:AvailableForSaleSecuritiesContinuousUnrealizedLossPositionLessThanTwelveMonthsFairValue" contextRef="FI2019Q4_us-gaap_FinancialInstrumentAxis_us-gaap_SovereignDebtSecuritiesMember" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">11,566</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>(<ix:nonFraction id="d9055830e3308-wk-Fact-5F6EB794CF7CBEDF1BEC9112FA031070" name="us-gaap:AvailableForSaleSecuritiesContinuousUnrealizedLossPositionLessThan12MonthsAccumulatedLoss" contextRef="FI2019Q4_us-gaap_FinancialInstrumentAxis_us-gaap_SovereignDebtSecuritiesMember" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">6</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">)</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9055830e3328-wk-Fact-F00A006F39CAAA1927459112FC77E44B" name="us-gaap:AvailableForSaleSecuritiesContinuousUnrealizedLossPositionTwelveMonthsOrLongerFairValue" contextRef="FI2019Q4_us-gaap_FinancialInstrumentAxis_us-gaap_SovereignDebtSecuritiesMember" unitRef="usd" decimals="-3" scale="3" format="ixt:zerodash">&#8212;</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9055830e3348-wk-Fact-E1C2220294F8D4C7FCC29112FEF5C967" name="us-gaap:AvailableForSaleSecuritiesContinuousUnrealizedLossPosition12MonthsOrLongerAccumulatedLoss" contextRef="FI2019Q4_us-gaap_FinancialInstrumentAxis_us-gaap_SovereignDebtSecuritiesMember" unitRef="usd" decimals="-3" scale="3" format="ixt:zerodash">&#8212;</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9055830e3367-wk-Fact-4C56E8BB47BA3FB7B6A0911302A72198" name="us-gaap:AvailableForSaleSecuritiesContinuousUnrealizedLossPositionFairValue" contextRef="FI2019Q4_us-gaap_FinancialInstrumentAxis_us-gaap_SovereignDebtSecuritiesMember" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">11,566</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>(<ix:nonFraction id="d9055830e3386-wk-Fact-AE9286EA4E7CE07CF3669113054127C5" name="us-gaap:AvailableForSaleSecuritiesContinuousUnrealizedLossPositionAccumulatedLoss" contextRef="FI2019Q4_us-gaap_FinancialInstrumentAxis_us-gaap_SovereignDebtSecuritiesMember" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">6</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">)</span></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Corporate bonds</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9055830e3408-wk-Fact-08E9A3B924B1A03691CA8095A1983642" name="us-gaap:AvailableForSaleSecuritiesContinuousUnrealizedLossPositionLessThanTwelveMonthsFairValue" contextRef="FI2019Q4_us-gaap_FinancialInstrumentAxis_us-gaap_CorporateBondSecuritiesMember" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">8,128</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>(<ix:nonFraction id="d9055830e3427-wk-Fact-60456E4008378CD6D5448095A1980B04" name="us-gaap:AvailableForSaleSecuritiesContinuousUnrealizedLossPositionLessThan12MonthsAccumulatedLoss" contextRef="FI2019Q4_us-gaap_FinancialInstrumentAxis_us-gaap_CorporateBondSecuritiesMember" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">4</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">)</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9055830e3447-wk-Fact-AD8212A3FCB7C93E63F18095A198554A" name="us-gaap:AvailableForSaleSecuritiesContinuousUnrealizedLossPositionTwelveMonthsOrLongerFairValue" contextRef="FI2019Q4_us-gaap_FinancialInstrumentAxis_us-gaap_CorporateBondSecuritiesMember" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">2,804</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>(<ix:nonFraction id="d9055830e3467-wk-Fact-5D4EF6B12DDE6D83666B8095A198A43A" name="us-gaap:AvailableForSaleSecuritiesContinuousUnrealizedLossPosition12MonthsOrLongerAccumulatedLoss" contextRef="FI2019Q4_us-gaap_FinancialInstrumentAxis_us-gaap_CorporateBondSecuritiesMember" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">6</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">)</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9055830e3487-wk-Fact-3797768C05EAAD478BFF8095A198C248" name="us-gaap:AvailableForSaleSecuritiesContinuousUnrealizedLossPositionFairValue" contextRef="FI2019Q4_us-gaap_FinancialInstrumentAxis_us-gaap_CorporateBondSecuritiesMember" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">10,932</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>(<ix:nonFraction id="d9055830e3506-wk-Fact-4F8DBA4C01B41FEE26288095A1714CC4" name="us-gaap:AvailableForSaleSecuritiesContinuousUnrealizedLossPositionAccumulatedLoss" contextRef="FI2019Q4_us-gaap_FinancialInstrumentAxis_us-gaap_CorporateBondSecuritiesMember" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">10</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">)</span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Agency Bonds</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9055830e3528-wk-Fact-5BCF4393B544E6DFA8128095A1705FD3" name="us-gaap:AvailableForSaleSecuritiesContinuousUnrealizedLossPositionLessThanTwelveMonthsFairValue" contextRef="FI2019Q4_us-gaap_FinancialInstrumentAxis_cgnx_AgencyBondsMember" unitRef="usd" decimals="-3" scale="3" format="ixt:zerodash">&#8212;</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9055830e3547-wk-Fact-C88CA5E7DD2D697F28958095A171B78A" name="us-gaap:AvailableForSaleSecuritiesContinuousUnrealizedLossPositionLessThan12MonthsAccumulatedLoss" contextRef="FI2019Q4_us-gaap_FinancialInstrumentAxis_cgnx_AgencyBondsMember" unitRef="usd" decimals="-3" scale="3" format="ixt:zerodash">&#8212;</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9055830e3566-wk-Fact-B52FA20BA6284B201EA88095A1705367" name="us-gaap:AvailableForSaleSecuritiesContinuousUnrealizedLossPositionTwelveMonthsOrLongerFairValue" contextRef="FI2019Q4_us-gaap_FinancialInstrumentAxis_cgnx_AgencyBondsMember" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">5,914</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>(<ix:nonFraction id="d9055830e3586-wk-Fact-4E644C0186EF4D5E9AD78095A1715F9E" name="us-gaap:AvailableForSaleSecuritiesContinuousUnrealizedLossPosition12MonthsOrLongerAccumulatedLoss" contextRef="FI2019Q4_us-gaap_FinancialInstrumentAxis_cgnx_AgencyBondsMember" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">16</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">)</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9055830e3606-wk-Fact-3FE5EBDA0DAD225CD4598095A170702B" name="us-gaap:AvailableForSaleSecuritiesContinuousUnrealizedLossPositionFairValue" contextRef="FI2019Q4_us-gaap_FinancialInstrumentAxis_cgnx_AgencyBondsMember" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">5,914</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>(<ix:nonFraction id="d9055830e3625-wk-Fact-B855AAEB6FCE2843BA2B8095A170B5C4" name="us-gaap:AvailableForSaleSecuritiesContinuousUnrealizedLossPositionAccumulatedLoss" contextRef="FI2019Q4_us-gaap_FinancialInstrumentAxis_cgnx_AgencyBondsMember" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">16</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">)</span></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Municipal bonds</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9055830e3647-wk-Fact-A1262FC8393EFBEBDDA58095A1982ED0" name="us-gaap:AvailableForSaleSecuritiesContinuousUnrealizedLossPositionLessThanTwelveMonthsFairValue" contextRef="FI2019Q4_us-gaap_FinancialInstrumentAxis_us-gaap_MunicipalBondsMember" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">2,111</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9055830e3666-wk-Fact-9BD077DE9B87396617FD8095A1999BB0" name="us-gaap:AvailableForSaleSecuritiesContinuousUnrealizedLossPositionLessThan12MonthsAccumulatedLoss" contextRef="FI2019Q4_us-gaap_FinancialInstrumentAxis_us-gaap_MunicipalBondsMember" unitRef="usd" decimals="-3" scale="3" format="ixt:zerodash">&#8212;</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9055830e3685-wk-Fact-96D1509367CB869137168095A1982885" name="us-gaap:AvailableForSaleSecuritiesContinuousUnrealizedLossPositionTwelveMonthsOrLongerFairValue" contextRef="FI2019Q4_us-gaap_FinancialInstrumentAxis_us-gaap_MunicipalBondsMember" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">344</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>(<ix:nonFraction id="d9055830e3705-wk-Fact-0C8CD1F530838E03C33D8095A1978CD5" name="us-gaap:AvailableForSaleSecuritiesContinuousUnrealizedLossPosition12MonthsOrLongerAccumulatedLoss" contextRef="FI2019Q4_us-gaap_FinancialInstrumentAxis_us-gaap_MunicipalBondsMember" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">1</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">)</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9055830e3725-wk-Fact-D20061AE493362E7763D8095A171BBAC" name="us-gaap:AvailableForSaleSecuritiesContinuousUnrealizedLossPositionFairValue" contextRef="FI2019Q4_us-gaap_FinancialInstrumentAxis_us-gaap_MunicipalBondsMember" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">2,455</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>(<ix:nonFraction id="d9055830e3744-wk-Fact-8CA5A3CA44443AC2FCAF8095A1999AFD" name="us-gaap:AvailableForSaleSecuritiesContinuousUnrealizedLossPositionAccumulatedLoss" contextRef="FI2019Q4_us-gaap_FinancialInstrumentAxis_us-gaap_MunicipalBondsMember" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">1</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">)</span></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span><ix:nonFraction id="d9055830e3771-wk-Fact-EA2EE00268B9C8E3CA5F8095A1984DB8" name="us-gaap:AvailableForSaleSecuritiesContinuousUnrealizedLossPositionLessThanTwelveMonthsFairValue" contextRef="FI2019Q4" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">60,547</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>(<ix:nonFraction id="d9055830e3790-wk-Fact-DFCAEF497C00F1D9F3AC8095A1989A55" name="us-gaap:AvailableForSaleSecuritiesContinuousUnrealizedLossPositionLessThan12MonthsAccumulatedLoss" contextRef="FI2019Q4" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">39</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">)</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span><ix:nonFraction id="d9055830e3810-wk-Fact-75534A7D592CC637608B8095A171B1EE" name="us-gaap:AvailableForSaleSecuritiesContinuousUnrealizedLossPositionTwelveMonthsOrLongerFairValue" contextRef="FI2019Q4" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">19,019</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>(<ix:nonFraction id="d9055830e3830-wk-Fact-E77A03C9D740E65417DD8095A198F7D5" name="us-gaap:AvailableForSaleSecuritiesContinuousUnrealizedLossPosition12MonthsOrLongerAccumulatedLoss" contextRef="FI2019Q4" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">26</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">)</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span><ix:nonFraction id="d9055830e3850-wk-Fact-5A6E8FC77E91C97DE2248095A198ED17" name="us-gaap:AvailableForSaleSecuritiesContinuousUnrealizedLossPositionFairValue" contextRef="FI2019Q4" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">79,566</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>(<ix:nonFraction id="d9055830e3870-wk-Fact-922FAACCC3B213E90BF68095A198FCC1" name="us-gaap:AvailableForSaleSecuritiesContinuousUnrealizedLossPositionAccumulatedLoss" contextRef="FI2019Q4" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">65</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">)</span></div></td></tr></table></div><span style="font-family:inherit;font-size:10pt;"><br/></span></div></ix:nonNumeric><div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">As of December&#160;31, </span><span style="font-family:Arial;font-size:10pt;color:#000000;text-decoration:none;">2019</span><span style="font-family:Arial;font-size:10pt;">, the Company did not recognize any other-than-temporary impairment of these investments. In its evaluation, management considered the type of security, the credit rating of the security, the length of time the security has been in a loss position, the size of the loss position, our intent and ability to hold the security to expected recovery of value, and other meaningful information.  The Company does not intend to sell, and is unlikely to be required to sell, any of these available-for-sale investments before its effective maturity or market price recovery.</span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">The Company recorded gross realized gains on the sale of debt securities totaling </span><span style="font-family:Arial;font-size:10pt;"><span>$<ix:nonFraction id="d9055830e3897-wk-Fact-1558A005A0C864A3B2898095A195A75B" name="us-gaap:AvailableForSaleSecuritiesGrossRealizedGains" contextRef="FD2019Q4YTD" unitRef="usd" decimals="-3" scale="0" format="ixt:numdotdecimal">1,581,000</ix:nonFraction></span></span><span style="font-family:Arial;font-size:10pt;"> in </span><span style="font-family:Arial;font-size:10pt;">2019</span><span style="font-family:Arial;font-size:10pt;">, </span><span style="font-family:Arial;font-size:10pt;"><span>$<ix:nonFraction id="d9055830e3905-wk-Fact-AAFEA8F702A0C18640348095A190348C" name="us-gaap:AvailableForSaleSecuritiesGrossRealizedGains" contextRef="FD2018Q4YTD" unitRef="usd" decimals="-3" scale="0" format="ixt:numdotdecimal">669,000</ix:nonFraction></span></span><span style="font-family:Arial;font-size:10pt;"> in </span><span style="font-family:Arial;font-size:10pt;">2018</span><span style="font-family:Arial;font-size:10pt;">, and </span><span style="font-family:Arial;font-size:10pt;"><span>$<ix:nonFraction id="d9055830e3913-wk-Fact-22AF0AAD31649B85FE018095A18FFF25" name="us-gaap:AvailableForSaleSecuritiesGrossRealizedGains" contextRef="FD2017Q4YTD" unitRef="usd" decimals="-3" scale="0" format="ixt:numdotdecimal">929,000</ix:nonFraction></span></span><span style="font-family:Arial;font-size:10pt;"> in 2017, and gross realized losses on the sale of debt securities totaling </span><span style="font-family:Arial;font-size:10pt;"><span>$<ix:nonFraction id="d9055830e3918-wk-Fact-80D206587E9BFA35AD408095A190ADE9" name="us-gaap:AvailableForSaleSecuritiesGrossRealizedLosses" contextRef="FD2019Q4YTD" unitRef="usd" decimals="-3" scale="0" format="ixt:numdotdecimal">129,000</ix:nonFraction></span></span><span style="font-family:Arial;font-size:10pt;"> in </span><span style="font-family:Arial;font-size:10pt;">2019</span><span style="font-family:Arial;font-size:10pt;">, </span><span style="font-family:Arial;font-size:10pt;"><span>$<ix:nonFraction id="d9055830e3926-wk-Fact-BD2A5C14C0B6FF377CF18095A18DBFB6" name="us-gaap:AvailableForSaleSecuritiesGrossRealizedLosses" contextRef="FD2018Q4YTD" unitRef="usd" decimals="-3" scale="0" format="ixt:numdotdecimal">168,000</ix:nonFraction></span></span><span style="font-family:Arial;font-size:10pt;"> in </span><span style="font-family:Arial;font-size:10pt;">2018</span><span style="font-family:Arial;font-size:10pt;">, and </span><span style="font-family:Arial;font-size:10pt;"><span>$<ix:nonFraction id="d9055830e3934-wk-Fact-A4261BBB7876B3C83E298095A190981E" name="us-gaap:AvailableForSaleSecuritiesGrossRealizedLosses" contextRef="FD2017Q4YTD" unitRef="usd" decimals="-3" scale="0" format="ixt:numdotdecimal">100,000</ix:nonFraction></span></span><span style="font-family:Arial;font-size:10pt;"> in 2017.  These gains and losses are included in "Investment income" on the Consolidated Statement of Operations.  Prior to the sale of these securities, unrealized gains and losses for these debt securities, net of tax, are recorded in shareholders&#8217; equity as other comprehensive income (loss). </span></div></ix:continuation><div><br/></div><div style="text-align:center;"><div style="line-height:120%;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">54</span></div></div><hr style="page-break-after:always"></hr><div><div style="line-height:120%;font-size:9pt;"><a style="font-family:inherit;font-size:9pt;" href="#sCD449198B5695D85B5494CF5DF708C26"><span style="font-family:inherit;font-size:9pt;">Table of Contents</span></a></div><div style="line-height:120%;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><br/></span></div><div style="line-height:120%;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">COGNEX CORPORATION - NOTES TO CONSOLIDATED FINANCIAL STATEMENTS</span></div></div><div><br/></div><ix:nonNumeric contextRef="FD2019Q4YTD" name="us-gaap:InvestmentsClassifiedByContractualMaturityDateTableTextBlock" id="TextSelection-9910F8B9219EB5AE4F688095A1A84A13-0-wk-Fact-82E32E9E3DB8567FBD948095A18FFCFD" escape="true"><ix:continuation id="TextSelection-86FAFD81AF38F97E66188095A1A8D20C-3"><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">The following table summarizes the effective maturity dates of the Company&#8217;s available-for-sale investments as of December&#160;31, </span><span style="font-family:Arial;font-size:10pt;color:#000000;text-decoration:none;">2019</span><span style="font-family:Arial;font-size:10pt;"> (in thousands):</span></div><div style="line-height:120%;font-size:10pt;"><div style="padding-left:0px;text-indent:0px;line-height:normal;padding-top:10px;"><table cellpadding="0" cellspacing="0" style="font-family:Times New Roman;font-size:10pt;width:100%;border-collapse:collapse;text-align:left;"><tr><td colspan="24"></td></tr><tr><td style="width:35%;"></td><td style="width:1%;"></td><td style="width:9%;"></td><td style="width:1%;"></td><td style="width:1%;"></td><td style="width:1%;"></td><td style="width:9%;"></td><td style="width:1%;"></td><td style="width:1%;"></td><td style="width:1%;"></td><td style="width:7%;"></td><td style="width:1%;"></td><td style="width:1%;"></td><td style="width:1%;"></td><td style="width:7%;"></td><td style="width:1%;"></td><td style="width:1%;"></td><td style="width:1%;"></td><td style="width:7%;"></td><td style="width:1%;"></td><td style="width:1%;"></td><td style="width:1%;"></td><td style="width:9%;"></td><td style="width:1%;"></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-top:2px;padding-bottom:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;">&lt;1&#160;Year</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-top:2px;padding-bottom:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;">1-2&#160;Years</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-top:2px;padding-bottom:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;">2-3&#160;Years</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-top:2px;padding-bottom:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;">3-4&#160;Years</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-top:2px;padding-bottom:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;">4-5&#160;Years</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-top:2px;padding-bottom:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;">Total</span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Treasury bills</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9055830e4123-wk-Fact-BBB31AC25E694E0A71B99113D1C13E5E" name="us-gaap:AvailableForSaleSecuritiesDebtMaturitiesWithinOneYearFairValue" contextRef="FI2019Q4_us-gaap_FinancialInstrumentAxis_us-gaap_USTreasurySecuritiesMember" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">92,914</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9055830e4142-wk-Fact-9BE28FAFA637B10CAFCC9113D51BAEE0" name="cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterOneYearBeforeTwoYearsFairValue" contextRef="FI2019Q4_us-gaap_FinancialInstrumentAxis_us-gaap_USTreasurySecuritiesMember" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">187,917</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9055830e4161-wk-Fact-4A2C85122FF679420F5E9113D88D121E" name="cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterTwoYearsBeforeThreeYearsFairValue" contextRef="FI2019Q4_us-gaap_FinancialInstrumentAxis_us-gaap_USTreasurySecuritiesMember" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">28,417</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9055830e4181-wk-Fact-53B0DD984076B8652CDA9113DB202008" name="cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterThreeYearsBeforeFourYearsFairValue" contextRef="FI2019Q4_us-gaap_FinancialInstrumentAxis_us-gaap_USTreasurySecuritiesMember" unitRef="usd" decimals="-3" scale="3" format="ixt:zerodash">&#8212;</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9055830e4200-wk-Fact-7D5C4407B5FDEC8931899113DE692165" name="cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterFourYearsBeforeFiveYearsFairValue" contextRef="FI2019Q4_us-gaap_FinancialInstrumentAxis_us-gaap_USTreasurySecuritiesMember" unitRef="usd" decimals="-3" scale="3" format="ixt:zerodash">&#8212;</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9055830e4220-wk-Fact-234E6551190CB3DB15829113E343E0DC" name="us-gaap:AvailableForSaleSecuritiesDebtSecurities" contextRef="FI2019Q4_us-gaap_FinancialInstrumentAxis_us-gaap_USTreasurySecuritiesMember" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">309,248</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Corporate bonds</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9055830e4235-wk-Fact-E066CEA99BFA5F345AC08095A1719FCA" name="us-gaap:AvailableForSaleSecuritiesDebtMaturitiesWithinOneYearFairValue" contextRef="FI2019Q4_us-gaap_FinancialInstrumentAxis_us-gaap_CorporateBondSecuritiesMember" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">65,624</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9055830e4254-wk-Fact-880AF2CAC4B2E2C7FC6C8095A172F29F" name="cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterOneYearBeforeTwoYearsFairValue" contextRef="FI2019Q4_us-gaap_FinancialInstrumentAxis_us-gaap_CorporateBondSecuritiesMember" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">88,033</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9055830e4273-wk-Fact-40622CAC869B6989779C8095A1714A0F" name="cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterTwoYearsBeforeThreeYearsFairValue" contextRef="FI2019Q4_us-gaap_FinancialInstrumentAxis_us-gaap_CorporateBondSecuritiesMember" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">54,208</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9055830e4293-wk-Fact-0B825DA7A839E2FB2EAA8095A17059EA" name="cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterThreeYearsBeforeFourYearsFairValue" contextRef="FI2019Q4_us-gaap_FinancialInstrumentAxis_us-gaap_CorporateBondSecuritiesMember" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">4,233</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9055830e4312-wk-Fact-85260E3B82CB712A52068095A198DF54" name="cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterFourYearsBeforeFiveYearsFairValue" contextRef="FI2019Q4_us-gaap_FinancialInstrumentAxis_us-gaap_CorporateBondSecuritiesMember" unitRef="usd" decimals="-3" scale="3" format="ixt:zerodash">&#8212;</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9055830e4331-wk-Fact-781B4F8AC072B5DBEA268095A1725EAF" name="us-gaap:AvailableForSaleSecuritiesDebtSecurities" contextRef="FI2019Q4_us-gaap_FinancialInstrumentAxis_us-gaap_CorporateBondSecuritiesMember" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">212,098</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Asset-backed securities</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9055830e4352-wk-Fact-EB2564FB359500E4934A8095A172F4A8" name="us-gaap:AvailableForSaleSecuritiesDebtMaturitiesWithinOneYearFairValue" contextRef="FI2019Q4_us-gaap_FinancialInstrumentAxis_us-gaap_AssetBackedSecuritiesMember" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">66,680</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9055830e4371-wk-Fact-611358E723F7D8E463198095A172512D" name="cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterOneYearBeforeTwoYearsFairValue" contextRef="FI2019Q4_us-gaap_FinancialInstrumentAxis_us-gaap_AssetBackedSecuritiesMember" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">17,744</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9055830e4390-wk-Fact-06F739167F96AE6329A68095A1991153" name="cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterTwoYearsBeforeThreeYearsFairValue" contextRef="FI2019Q4_us-gaap_FinancialInstrumentAxis_us-gaap_AssetBackedSecuritiesMember" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">24,089</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9055830e4410-wk-Fact-1EB107BE524C706D3C068095A17120C7" name="cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterThreeYearsBeforeFourYearsFairValue" contextRef="FI2019Q4_us-gaap_FinancialInstrumentAxis_us-gaap_AssetBackedSecuritiesMember" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">3,423</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9055830e4429-wk-Fact-242382469AC6C8CD80878095A1715988" name="cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterFourYearsBeforeFiveYearsFairValue" contextRef="FI2019Q4_us-gaap_FinancialInstrumentAxis_us-gaap_AssetBackedSecuritiesMember" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">1,147</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9055830e4448-wk-Fact-FF4FE11157EDA281A4AA8095A171AD2B" name="us-gaap:AvailableForSaleSecuritiesDebtSecurities" contextRef="FI2019Q4_us-gaap_FinancialInstrumentAxis_us-gaap_AssetBackedSecuritiesMember" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">113,083</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Sovereign bonds</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9055830e4469-wk-Fact-05A1D7BD2BC380FE5C538095A17245AE" name="us-gaap:AvailableForSaleSecuritiesDebtMaturitiesWithinOneYearFairValue" contextRef="FI2019Q4_us-gaap_FinancialInstrumentAxis_us-gaap_SovereignDebtSecuritiesMember" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">6,294</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9055830e4488-wk-Fact-0C4266DD430FF3B1FFD48095A170C9C1" name="cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterOneYearBeforeTwoYearsFairValue" contextRef="FI2019Q4_us-gaap_FinancialInstrumentAxis_us-gaap_SovereignDebtSecuritiesMember" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">16,005</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9055830e4507-wk-Fact-CCB952D7B3D31E2D73908095A171A673" name="cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterTwoYearsBeforeThreeYearsFairValue" contextRef="FI2019Q4_us-gaap_FinancialInstrumentAxis_us-gaap_SovereignDebtSecuritiesMember" unitRef="usd" decimals="-3" scale="3" format="ixt:zerodash">&#8212;</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9055830e4527-wk-Fact-A3F398D3908899ACED388095A172ECBE" name="cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterThreeYearsBeforeFourYearsFairValue" contextRef="FI2019Q4_us-gaap_FinancialInstrumentAxis_us-gaap_SovereignDebtSecuritiesMember" unitRef="usd" decimals="-3" scale="3" format="ixt:zerodash">&#8212;</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9055830e4546-wk-Fact-B36AB5D8852C104BA38A8095A1980222" name="cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterFourYearsBeforeFiveYearsFairValue" contextRef="FI2019Q4_us-gaap_FinancialInstrumentAxis_us-gaap_SovereignDebtSecuritiesMember" unitRef="usd" decimals="-3" scale="3" format="ixt:zerodash">&#8212;</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9055830e4565-wk-Fact-466877E091AD9E5036D78095A1719A78" name="us-gaap:AvailableForSaleSecuritiesDebtSecurities" contextRef="FI2019Q4_us-gaap_FinancialInstrumentAxis_us-gaap_SovereignDebtSecuritiesMember" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">22,299</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Municipal bonds</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9055830e4586-wk-Fact-898D2F9D2369DB7D6B2CC4D5898F8740" name="us-gaap:AvailableForSaleSecuritiesDebtMaturitiesWithinOneYearFairValue" contextRef="FI2019Q4_us-gaap_FinancialInstrumentAxis_us-gaap_MunicipalBondsMember" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">4,630</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9055830e4605-wk-Fact-9C7A8F1844549BCAA0A3C4D58C7C142A" name="cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterOneYearBeforeTwoYearsFairValue" contextRef="FI2019Q4_us-gaap_FinancialInstrumentAxis_us-gaap_MunicipalBondsMember" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">2,322</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9055830e4624-wk-Fact-6D15ADC5F970FECBF7A5C4D58EEB80E8" name="cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterTwoYearsBeforeThreeYearsFairValue" contextRef="FI2019Q4_us-gaap_FinancialInstrumentAxis_us-gaap_MunicipalBondsMember" unitRef="usd" decimals="-3" scale="3" format="ixt:zerodash">&#8212;</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9055830e4644-wk-Fact-0FD6A801B57998EF581CC4D592B5415F" name="cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterThreeYearsBeforeFourYearsFairValue" contextRef="FI2019Q4_us-gaap_FinancialInstrumentAxis_us-gaap_MunicipalBondsMember" unitRef="usd" decimals="-3" scale="3" format="ixt:zerodash">&#8212;</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9055830e4663-wk-Fact-7D5E2796B364CDEFB0D1C4D59691C771" name="cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterFourYearsBeforeFiveYearsFairValue" contextRef="FI2019Q4_us-gaap_FinancialInstrumentAxis_us-gaap_MunicipalBondsMember" unitRef="usd" decimals="-3" scale="3" format="ixt:zerodash">&#8212;</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9055830e4682-wk-Fact-A69199C9B6C10495F80BC4D59C619829" name="us-gaap:AvailableForSaleSecuritiesDebtSecurities" contextRef="FI2019Q4_us-gaap_FinancialInstrumentAxis_us-gaap_MunicipalBondsMember" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">6,952</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Agency bonds</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9055830e4703-wk-Fact-675084540ED24CDF71B58095A1718843" name="us-gaap:AvailableForSaleSecuritiesDebtMaturitiesWithinOneYearFairValue" contextRef="FI2019Q4_us-gaap_FinancialInstrumentAxis_cgnx_AgencyBondsMember" unitRef="usd" decimals="-3" scale="3" format="ixt:zerodash">&#8212;</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9055830e4722-wk-Fact-DB9ED47BC4D658365AC58095A19999C8" name="cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterOneYearBeforeTwoYearsFairValue" contextRef="FI2019Q4_us-gaap_FinancialInstrumentAxis_cgnx_AgencyBondsMember" unitRef="usd" decimals="-3" scale="3" format="ixt:zerodash">&#8212;</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9055830e4741-wk-Fact-889938BF580CAB3371D58095A17175FC" name="cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterTwoYearsBeforeThreeYearsFairValue" contextRef="FI2019Q4_us-gaap_FinancialInstrumentAxis_cgnx_AgencyBondsMember" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">5,914</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9055830e4761-wk-Fact-23A076F425FA2C5494C28095A1997FB6" name="cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterThreeYearsBeforeFourYearsFairValue" contextRef="FI2019Q4_us-gaap_FinancialInstrumentAxis_cgnx_AgencyBondsMember" unitRef="usd" decimals="-3" scale="3" format="ixt:zerodash">&#8212;</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9055830e4780-wk-Fact-FF148AF9A5EE771D01E48095A199956E" name="cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterFourYearsBeforeFiveYearsFairValue" contextRef="FI2019Q4_us-gaap_FinancialInstrumentAxis_cgnx_AgencyBondsMember" unitRef="usd" decimals="-3" scale="3" format="ixt:zerodash">&#8212;</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9055830e4799-wk-Fact-599D191162A4E82C4C8B8095A1728607" name="us-gaap:AvailableForSaleSecuritiesDebtSecurities" contextRef="FI2019Q4_us-gaap_FinancialInstrumentAxis_cgnx_AgencyBondsMember" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">5,914</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span><ix:nonFraction id="d9055830e4825-wk-Fact-1786A8654A2770F171AC8095A199D451" name="us-gaap:AvailableForSaleSecuritiesDebtMaturitiesWithinOneYearFairValue" contextRef="FI2019Q4" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">236,142</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span><ix:nonFraction id="d9055830e4844-wk-Fact-8CA59A4827A98EDB34DB8095A1712AB8" name="cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterOneYearBeforeTwoYearsFairValue" contextRef="FI2019Q4" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">312,021</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span><ix:nonFraction id="d9055830e4863-wk-Fact-06C2C38F906DF874E4E08095A171A31C" name="cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterTwoYearsBeforeThreeYearsFairValue" contextRef="FI2019Q4" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">112,628</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span><ix:nonFraction id="d9055830e4883-wk-Fact-2D942BB7ED9AA995CB998095A1714C4E" name="cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterThreeYearsBeforeFourYearsFairValue" contextRef="FI2019Q4" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">7,656</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span><ix:nonFraction id="d9055830e4902-wk-Fact-49451CD252E0A90751FF8095A1722E8C" name="cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterFourYearsBeforeFiveYearsFairValue" contextRef="FI2019Q4" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">1,147</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span><ix:nonFraction id="d9055830e4922-wk-Fact-407782CEF3C3CA9A50488095A17C8917" name="us-gaap:AvailableForSaleSecuritiesDebtSecurities" contextRef="FI2019Q4" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">669,594</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr></table></div><span style="font-family:inherit;font-size:10pt;"><br/></span></div></ix:continuation></ix:nonNumeric><div><a id="s19D54AE4308A599984A20A9442B6D1BB"></a></div><div style="line-height:120%;padding-top:12px;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">NOTE 5:&#160;&#160;<ix:nonNumeric contextRef="FD2019Q4YTD" name="us-gaap:InventoryDisclosureTextBlock" id="TextSelection-F5D2EC8275EA7371285A8095A1A8E223-0-wk-Fact-198631D812C806D397948095A18422EB" continuedAt="TextSelection-F5D2EC8275EA7371285A8095A1A8E223-1" escape="true">Inventories</ix:nonNumeric></span></div><ix:nonNumeric contextRef="FD2019Q4YTD" name="us-gaap:ScheduleOfInventoryCurrentTableTextBlock" id="TextSelection-BE5FE71DD8207FDA133F8095A1A8D1D9-0-wk-Fact-A5E78745A35113F57B6E8095A18469C3" escape="true"><ix:continuation id="TextSelection-F5D2EC8275EA7371285A8095A1A8E223-1"><div style="line-height:120%;padding-top:6px;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Inventories consisted of the following (in thousands):</span></div><div style="line-height:120%;font-size:10pt;"><div style="padding-left:0px;text-indent:0px;line-height:normal;padding-top:10px;"><table cellpadding="0" cellspacing="0" style="font-family:Times New Roman;font-size:10pt;width:100%;border-collapse:collapse;text-align:left;"><tr><td colspan="8"></td></tr><tr><td style="width:71%;"></td><td style="width:1%;"></td><td style="width:12%;"></td><td style="width:1%;"></td><td style="width:1%;"></td><td style="width:1%;"></td><td style="width:12%;"></td><td style="width:1%;"></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span><span style="font-family:inherit;font-size:8pt;">&#160;</span></div></td><td colspan="7" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;">December&#160;31,</span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;">2019</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">2018</span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Raw materials</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span><ix:nonFraction id="d9049948e763-wk-Fact-612682226646DCF05F7B8095A1856498" name="us-gaap:InventoryRawMaterialsNetOfReserves" contextRef="FI2019Q4" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">27,285</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9049948e782-wk-Fact-9D721913AF37E04ECCAE8095A185FF70" name="us-gaap:InventoryRawMaterialsNetOfReserves" contextRef="FI2018Q4" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">42,738</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Work-in-process</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span><ix:nonFraction id="d9049948e797-wk-Fact-AFD62498C9B079FC5E088095A18572BD" name="us-gaap:InventoryWorkInProcessNetOfReserves" contextRef="FI2019Q4" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">5,503</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9049948e816-wk-Fact-EE715E5F6DE5E1AB01D68095A185544C" name="us-gaap:InventoryWorkInProcessNetOfReserves" contextRef="FI2018Q4" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">3,435</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Finished goods</span></div></td><td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span><ix:nonFraction id="d9049948e836-wk-Fact-C9B1D08F041A686A5C998095A1852A7D" name="us-gaap:InventoryFinishedGoodsNetOfReserves" contextRef="FI2019Q4" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">27,473</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9049948e855-wk-Fact-BAAD54F83F11E2DDFCBC8095A1856296" name="us-gaap:InventoryFinishedGoodsNetOfReserves" contextRef="FI2018Q4" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">37,109</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span><ix:nonFraction id="d9049948e880-wk-Fact-F82BFB3E5789124E33788095A18C509C" name="us-gaap:InventoryNet" contextRef="FI2019Q4" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">60,261</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9049948e899-wk-Fact-8C11A83E6F7307E19AA68095A18DF44A" name="us-gaap:InventoryNet" contextRef="FI2018Q4" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">83,282</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr></table></div><span style="font-family:inherit;font-size:10pt;"><br/></span></div></ix:continuation></ix:nonNumeric><div><a id="sD936E5C59A8F54FA8513B3B06A3C2BC6"></a></div><div style="line-height:120%;padding-top:6px;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">NOTE 6:&#160;&#160;<ix:nonNumeric contextRef="FD2019Q4YTD" name="us-gaap:PropertyPlantAndEquipmentDisclosureTextBlock" id="TextSelection-4E3C43513DAA19BD5D8C8095A1A82F58-0-wk-Fact-3010EDCED83AF77C5E148095A18D6A75" continuedAt="TextSelection-4E3C43513DAA19BD5D8C8095A1A82F58-1" escape="true">Property, Plant, and Equipment</ix:nonNumeric></span></div><ix:continuation id="TextSelection-4E3C43513DAA19BD5D8C8095A1A82F58-1"><ix:nonNumeric contextRef="FD2019Q4YTD" name="us-gaap:PropertyPlantAndEquipmentTextBlock" id="TextSelection-08C909EA75E1B6AE8B998095A1A87EE9-0-wk-Fact-6EA4392DB3A4F415D1318095A18DDD29" escape="true"><div style="line-height:120%;padding-top:6px;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Property, plant, and equipment consisted of the following (in thousands):</span></div><div style="line-height:120%;font-size:10pt;"><div style="padding-left:0px;text-indent:0px;line-height:normal;padding-top:10px;"><table cellpadding="0" cellspacing="0" style="font-family:Times New Roman;font-size:10pt;width:100%;border-collapse:collapse;text-align:left;"><tr><td colspan="8"></td></tr><tr><td style="width:71%;"></td><td style="width:1%;"></td><td style="width:12%;"></td><td style="width:1%;"></td><td style="width:1%;"></td><td style="width:1%;"></td><td style="width:12%;"></td><td style="width:1%;"></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;">&#160;</span></div></td><td colspan="7" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;">December&#160;31,</span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;">2019</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">2018</span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Land</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span><ix:nonFraction id="d9050577e761-wk-Fact-93AB2CCC49E434C14BC98095A17D7F97" name="us-gaap:PropertyPlantAndEquipmentGross" contextRef="FI2019Q4_us-gaap_PropertyPlantAndEquipmentByTypeAxis_us-gaap_LandMember" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">3,951</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9050577e780-wk-Fact-628CBB0B03D3834A48AE8095A1838475" name="us-gaap:PropertyPlantAndEquipmentGross" contextRef="FI2018Q4_us-gaap_PropertyPlantAndEquipmentByTypeAxis_us-gaap_LandMember" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">3,951</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Buildings</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span><ix:nonFraction id="d9050577e795-wk-Fact-D3D76491CCBDC281131F8095A17D5FC7" name="us-gaap:PropertyPlantAndEquipmentGross" contextRef="FI2019Q4_us-gaap_PropertyPlantAndEquipmentByTypeAxis_us-gaap_BuildingMember" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">24,533</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9050577e814-wk-Fact-55E53873113F9CEAE1378095A18200B6" name="us-gaap:PropertyPlantAndEquipmentGross" contextRef="FI2018Q4_us-gaap_PropertyPlantAndEquipmentByTypeAxis_us-gaap_BuildingMember" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">24,533</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Building improvements</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span><ix:nonFraction id="d9050577e834-wk-Fact-52C306A2F9071500BF638095A183AFEE" name="us-gaap:PropertyPlantAndEquipmentGross" contextRef="FI2019Q4_us-gaap_PropertyPlantAndEquipmentByTypeAxis_us-gaap_BuildingImprovementsMember" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">49,289</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9050577e853-wk-Fact-D8F697E47D46FA02BBB88095A183CAA7" name="us-gaap:PropertyPlantAndEquipmentGross" contextRef="FI2018Q4_us-gaap_PropertyPlantAndEquipmentByTypeAxis_us-gaap_BuildingImprovementsMember" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">45,067</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Leasehold improvements</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span><ix:nonFraction id="d9050577e873-wk-Fact-DBFD7E94189561513E4B8095A18250C6" name="us-gaap:PropertyPlantAndEquipmentGross" contextRef="FI2019Q4_us-gaap_PropertyPlantAndEquipmentByTypeAxis_us-gaap_LeaseholdImprovementsMember" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">10,790</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9050577e892-wk-Fact-0EE8B5506283B14F58878095A17D5F61" name="us-gaap:PropertyPlantAndEquipmentGross" contextRef="FI2018Q4_us-gaap_PropertyPlantAndEquipmentByTypeAxis_us-gaap_LeaseholdImprovementsMember" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">9,095</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Computer hardware and software</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span><ix:nonFraction id="d9050577e912-wk-Fact-15C1831A002D7127320A8095A183A6B8" name="us-gaap:PropertyPlantAndEquipmentGross" contextRef="FI2019Q4_us-gaap_PropertyPlantAndEquipmentByTypeAxis_cgnx_HardwareAndSoftwareMember" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">67,474</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9050577e931-wk-Fact-28304FB527491A7DF1988095A1837A91" name="us-gaap:PropertyPlantAndEquipmentGross" contextRef="FI2018Q4_us-gaap_PropertyPlantAndEquipmentByTypeAxis_cgnx_HardwareAndSoftwareMember" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">66,542</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Manufacturing test equipment</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span><ix:nonFraction id="d9050577e951-wk-Fact-BEED5A617EE9DC9A2F108095A1826FB0" name="us-gaap:PropertyPlantAndEquipmentGross" contextRef="FI2019Q4_us-gaap_PropertyPlantAndEquipmentByTypeAxis_us-gaap_EquipmentMember" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">31,278</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9050577e970-wk-Fact-60AE0289B613B8C780C38095A1833B24" name="us-gaap:PropertyPlantAndEquipmentGross" contextRef="FI2018Q4_us-gaap_PropertyPlantAndEquipmentByTypeAxis_us-gaap_EquipmentMember" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">27,378</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Furniture and fixtures</span></div></td><td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span><ix:nonFraction id="d9050577e990-wk-Fact-5E19A3036C12E8EE0AD98095A18368F4" name="us-gaap:PropertyPlantAndEquipmentGross" contextRef="FI2019Q4_us-gaap_PropertyPlantAndEquipmentByTypeAxis_us-gaap_FurnitureAndFixturesMember" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">6,800</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9050577e1009-wk-Fact-1C8D7E95F7BA5D3D66538095A183631D" name="us-gaap:PropertyPlantAndEquipmentGross" contextRef="FI2018Q4_us-gaap_PropertyPlantAndEquipmentByTypeAxis_us-gaap_FurnitureAndFixturesMember" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">6,904</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span><ix:nonFraction id="d9050577e1029-wk-Fact-C3CC2C97D590BC5FFE4E8095A1831B04" name="us-gaap:PropertyPlantAndEquipmentGross" contextRef="FI2019Q4" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">194,115</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9050577e1048-wk-Fact-9D94DA76869CCF4C447B8095A1839B95" name="us-gaap:PropertyPlantAndEquipmentGross" contextRef="FI2018Q4" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">183,470</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Less: accumulated depreciation</span></div></td><td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>(<ix:nonFraction id="d9050577e1068-wk-Fact-4C9D1C692C57BDA4DC698095A1831963" name="us-gaap:AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment" contextRef="FI2019Q4" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">104,672</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">)</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>(<ix:nonFraction id="d9050577e1088-wk-Fact-4A859B28B588B795A6558095A17D00D7" name="us-gaap:AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment" contextRef="FI2018Q4" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">92,074</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">)</span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span><ix:nonFraction id="d9050577e1115-wk-Fact-F511143035B105728FC78095A199C654" name="us-gaap:PropertyPlantAndEquipmentNet" contextRef="FI2019Q4" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">89,443</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9050577e1134-wk-Fact-BA9205C02800F53EC4D88095A186B6D1" name="us-gaap:PropertyPlantAndEquipmentNet" contextRef="FI2018Q4" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">91,396</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr></table></div><span style="font-family:inherit;font-size:10pt;"><br/></span></div></ix:nonNumeric><div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">The cost of disposed property, plant, and equipment totaling </span><span style="font-family:Arial;font-size:10pt;"><span>$<ix:nonFraction id="d9050577e1152-wk-Fact-F99D04EF37F117518C548095A18D20A2" name="us-gaap:PropertyPlantAndEquipmentDisposals" contextRef="FD2019Q4YTD" unitRef="usd" decimals="-3" scale="0" format="ixt:numdotdecimal">8,883,000</ix:nonFraction></span></span><span style="font-family:Arial;font-size:10pt;"> and </span><span style="font-family:Arial;font-size:10pt;color:#000000;text-decoration:none;"><span>$<ix:nonFraction id="d9050577e1156-wk-Fact-970D24255619DA8F91D18095A18D3E1D" name="us-gaap:PropertyPlantAndEquipmentDisposals" contextRef="FD2018Q4YTD" unitRef="usd" decimals="-3" scale="0" format="ixt:numdotdecimal">6,367,000</ix:nonFraction></span></span><span style="font-family:Arial;font-size:10pt;"> was removed from the asset balance in </span><span style="font-family:Arial;font-size:10pt;color:#000000;text-decoration:none;">2019</span><span style="font-family:Arial;font-size:10pt;"> and </span><span style="font-family:Arial;font-size:10pt;color:#000000;text-decoration:none;">2018</span><span style="font-family:Arial;font-size:10pt;">, respectively.  The cost of disposed property, plant, and equipment totaling </span><span style="font-family:Arial;font-size:10pt;"><span>$<ix:nonFraction id="d9050577e1168-wk-Fact-05D51A9B9B0BE2E0A5F0F3EF40A08E46" name="us-gaap:AccumulatedDepreciationDepletionAndAmortizationSaleOfPropertyPlantAndEquipment1" contextRef="FD2019Q4YTD" unitRef="usd" decimals="-3" scale="0" format="ixt:numdotdecimal">8,559,000</ix:nonFraction></span></span><span style="font-family:Arial;font-size:10pt;"> and </span><span style="font-family:Arial;font-size:10pt;"><span>$<ix:nonFraction id="d9050577e1173-wk-Fact-44AB3960479D826A41C3F3EF735526F0" name="us-gaap:AccumulatedDepreciationDepletionAndAmortizationSaleOfPropertyPlantAndEquipment1" contextRef="FD2018Q4YTD" unitRef="usd" decimals="-3" scale="0" format="ixt:numdotdecimal">6,367,000</ix:nonFraction></span></span><span style="font-family:Arial;font-size:10pt;"> was removed from the accumulated depreciation balance in </span><span style="font-family:Arial;font-size:10pt;">2019</span><span style="font-family:Arial;font-size:10pt;"> and </span><span style="font-family:Arial;font-size:10pt;">2018</span><span style="font-family:Arial;font-size:10pt;">, respectively.  Gains and losses on these disposals were immaterial in both years.</span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Buildings include rental property with a cost basis of </span><span style="font-family:Arial;font-size:10pt;"><span>$<ix:nonFraction id="d9050577e1188-wk-Fact-13A61ECE60A520C9159F8095A18D71B9" name="us-gaap:PropertySubjectToOrAvailableForOperatingLeaseGross" contextRef="FI2019Q4" unitRef="usd" decimals="-3" scale="0" format="ixt:numdotdecimal">800,000</ix:nonFraction></span></span><span style="font-family:Arial;font-size:10pt;"> as of December&#160;31, </span><span style="font-family:Arial;font-size:10pt;">2019</span><span style="font-family:Arial;font-size:10pt;"> and </span><span style="font-family:Arial;font-size:10pt;">2018</span><span style="font-family:Arial;font-size:10pt;">, and accumulated depreciation of </span><span style="font-family:Arial;font-size:10pt;"><span>$<ix:nonFraction id="d9050577e1200-wk-Fact-4E327C5E404651A3D3DB8095A18D5487" name="us-gaap:PropertySubjectToOrAvailableForOperatingLeaseAccumulatedDepreciation" contextRef="FI2019Q4" unitRef="usd" decimals="-3" scale="0" format="ixt:numdotdecimal">255,000</ix:nonFraction></span></span><span style="font-family:Arial;font-size:10pt;"> and </span><span style="font-family:Arial;font-size:10pt;"><span>$<ix:nonFraction id="d9050577e1204-wk-Fact-344E4C80FA088C40AD4E8095A18DEE80" name="us-gaap:PropertySubjectToOrAvailableForOperatingLeaseAccumulatedDepreciation" contextRef="FI2018Q4" unitRef="usd" decimals="-3" scale="0" format="ixt:numdotdecimal">234,000</ix:nonFraction></span></span><span style="font-family:Arial;font-size:10pt;"> as of December&#160;31, </span><span style="font-family:Arial;font-size:10pt;">2019</span><span style="font-family:Arial;font-size:10pt;"> and </span><span style="font-family:Arial;font-size:10pt;">2018</span><span style="font-family:Arial;font-size:10pt;">, respectively.</span></div></ix:continuation><div><a id="s5cfb90f61d934dceacdfcd92f20a0aec"></a></div><div style="line-height:120%;padding-top:12px;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">NOTE 7:&#160; <ix:nonNumeric contextRef="FD2019Q4YTD" name="us-gaap:LesseeOperatingLeasesTextBlock" id="TextSelection-C67ED3F256DB24929E82F3F55346F422-0-wk-Fact-D62B94CAD74EDC81EA23F3F5D2E4F577" continuedAt="TextSelection-C67ED3F256DB24929E82F3F55346F422-1" escape="true"><ix:nonNumeric contextRef="FD2019Q4YTD" name="us-gaap:OperatingLeasesOfLessorDisclosureTextBlock" id="TextSelection-F65E5943607F5D4682FCF3F792EA73A3-0-wk-Fact-0173C4FA561C586553F7F3F7D616BB5B" continuedAt="TextSelection-F65E5943607F5D4682FCF3F792EA73A3-1" escape="true">Leases</ix:nonNumeric></ix:nonNumeric></span></div><ix:continuation id="TextSelection-C67ED3F256DB24929E82F3F55346F422-1" continuedAt="TextSelection-C67ED3F256DB24929E82F3F55346F422-2"><ix:continuation id="TextSelection-F65E5943607F5D4682FCF3F792EA73A3-1" continuedAt="TextSelection-F65E5943607F5D4682FCF3F792EA73A3-2"><div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">On January 1, 2019, the Company adopted Accounting Standards Codification (ASC) 842,  &#8220;Leases,&#8221; using the transition method of adoption, which allowed the Company to apply the standard on a prospective basis with a cumulative-effect adjustment to the opening balance sheet as of the adoption date.  Accordingly, the Company recorded lease assets of $</span><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9051125e637-wk-Fact-01AC14980AF79A50DA25F3F97C75E680" name="us-gaap:OperatingLeaseRightOfUseAsset" contextRef="I2019Q1Jan01_us-gaap_AdjustmentsForNewAccountingPronouncementsAxis_us-gaap_AccountingStandardsUpdate201602Member" unitRef="usd" decimals="-3" scale="0" format="ixt:numdotdecimal">17,522,000</ix:nonFraction></span></span><span style="font-family:Arial;font-size:10pt;">, current lease liabilities of $</span><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9051125e641-wk-Fact-F86761D7B00F0FE626DAF3FB0D6573B8" name="us-gaap:OperatingLeaseLiabilityCurrent" contextRef="I2019Q1Jan01_us-gaap_AdjustmentsForNewAccountingPronouncementsAxis_us-gaap_AccountingStandardsUpdate201602Member" unitRef="usd" decimals="-3" scale="0" format="ixt:numdotdecimal">4,736,000</ix:nonFraction></span></span><span style="font-family:Arial;font-size:10pt;">, and non-current lease liabilities of $</span><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9051125e645-wk-Fact-BC0BB2C50D0453507696F3F90CFE1AA8" name="us-gaap:OperatingLeaseLiabilityNoncurrent" contextRef="I2019Q1Jan01_us-gaap_AdjustmentsForNewAccountingPronouncementsAxis_us-gaap_AccountingStandardsUpdate201602Member" unitRef="usd" decimals="-3" scale="0" format="ixt:numdotdecimal">12,669,000</ix:nonFraction></span></span><span style="font-family:Arial;font-size:10pt;"> on its Consolidated Balance Sheet as of January 1, 2019.</span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">As part of the adoption, the Company elected a practical expedient package to be applied to all of its leases upon transition, and as a result, the Company did not reassess: 1) whether any expired or existing contracts contain leases; </span></div></ix:continuation></ix:continuation><div><br/></div><div style="text-align:center;"><div style="line-height:120%;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">55</span></div></div><hr style="page-break-after:always"></hr><div><div style="line-height:120%;font-size:9pt;"><a style="font-family:inherit;font-size:9pt;" href="#sCD449198B5695D85B5494CF5DF708C26"><span style="font-family:inherit;font-size:9pt;">Table of Contents</span></a></div><div style="line-height:120%;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><br/></span></div><div style="line-height:120%;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">COGNEX CORPORATION - NOTES TO CONSOLIDATED FINANCIAL STATEMENTS</span></div></div><div><br/></div><ix:continuation id="TextSelection-C67ED3F256DB24929E82F3F55346F422-2"><ix:continuation id="TextSelection-F65E5943607F5D4682FCF3F792EA73A3-2"><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">2) the lease classification for any expired or existing leases; and 3) the accounting for initial direct costs for any existing leases. </span></div><div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">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.  There were no options to extend or terminate that were included in the determination of the lease term for the leases outstanding as of </span><span style="font-family:Arial;font-size:10pt;">December&#160;31, 2019</span><span style="font-family:Arial;font-size:10pt;">.  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 leases outstanding as of </span><span style="font-family:Arial;font-size:10pt;">December&#160;31, 2019</span><span style="font-family:Arial;font-size:10pt;">.</span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">The total operating lease expense and operating lease cash payments in 2019 were </span><span style="font-family:Arial;font-size:10pt;"><span>$<ix:nonFraction id="d9051125e669-wk-Fact-E3A3181EAB67B064AA9EF3FD0F035BD9" name="us-gaap:OperatingLeaseExpense" contextRef="FD2019Q4YTD" unitRef="usd" decimals="-3" scale="0" format="ixt:numdotdecimal">6,893,000</ix:nonFraction></span></span><span style="font-family:Arial;font-size:10pt;"> and </span><span style="font-family:Arial;font-size:10pt;"><span>$<ix:nonFraction id="d9051125e673-wk-Fact-42C3E106AC1AF9E24E64F3FDAA269269" name="us-gaap:OperatingLeasePayments" contextRef="FD2019Q4YTD" unitRef="usd" decimals="-3" scale="0" format="ixt:numdotdecimal">6,530,000</ix:nonFraction></span></span><span style="font-family:Arial;font-size:10pt;">, respectively.  The total lease expense for leases with a term of twelve months or less for which the Company elected </span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><br/></span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">not to recognize a lease asset or lease liability was </span><span style="font-family:Arial;font-size:10pt;"><span>$<ix:nonFraction id="d9051125e682-wk-Fact-DEDFD704E606812A7887F3FFA8B30734" name="cgnx:OperatingLeaseExpenseNoLiabilityOrAssetRecognized" contextRef="FD2019Q4YTD" unitRef="usd" decimals="-3" scale="0" format="ixt:numdotdecimal">275,000</ix:nonFraction></span></span><span style="font-family:Arial;font-size:10pt;"> in 2019. Annual rental expense prior to the adoption of ASC 842 was </span><span style="font-family:Arial;font-size:10pt;"><span>$<ix:nonFraction id="d9051125e686-wk-Fact-B7FD86B6040C8E1101BEF3FE808D0DD4" name="us-gaap:LeaseAndRentalExpense" contextRef="FD2018Q4YTD" unitRef="usd" decimals="-3" scale="0" format="ixt:numdotdecimal">8,186,000</ix:nonFraction></span></span><span style="font-family:Arial;font-size:10pt;"> in </span><span style="font-family:Arial;font-size:10pt;">2018</span><span style="font-family:Arial;font-size:10pt;"> and </span><span style="font-family:Arial;font-size:10pt;"><span>$<ix:nonFraction id="d9051125e694-wk-Fact-05EF2C3BA13DE07C0C7AF3FE808A5168" name="us-gaap:LeaseAndRentalExpense" contextRef="FD2017Q4YTD" unitRef="usd" decimals="-3" scale="0" format="ixt:numdotdecimal">6,738,000</ix:nonFraction></span></span><span style="font-family:Arial;font-size:10pt;"> in </span><span style="font-family:Arial;font-size:10pt;">2017</span><span style="font-family:Arial;font-size:10pt;">. </span></div><ix:nonNumeric contextRef="FD2019Q4YTD" name="us-gaap:LesseeOperatingLeaseLiabilityMaturityTableTextBlock" id="TextSelection-2DCE27FA1036A8E0F021F3F6642DCD50-0-wk-Fact-75D89B0ADF8A0AD3C316F3F6B517EB91" escape="true"><div style="line-height:120%;padding-top:12px;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Future operating lease cash payments are as follows (in thousands):</span></div><div style="line-height:120%;padding-top:12px;text-align:center;font-size:10pt;"><div style="padding-left:0px;text-indent:0px;line-height:normal;padding-top:10px;"><table cellpadding="0" cellspacing="0" style="font-family:Times New Roman;font-size:10pt;margin-left:auto;margin-right:auto;width:99.80506822612085%;border-collapse:collapse;text-align:left;"><tr><td colspan="5"></td></tr><tr><td style="width:84%;"></td><td style="width:3%;"></td><td style="width:1%;"></td><td style="width:11%;"></td><td style="width:1%;"></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;font-weight:bold;text-decoration:underline;">Year Ended December&#160;31,</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;font-weight:bold;">Amount </span></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">2020</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9051125e758-wk-Fact-E189E36FB34053BFE3DAF4010F4D5236" name="us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths" contextRef="FI2019Q4" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">6,565</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">2021</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9051125e783-wk-Fact-73E6BEEC080594B06EA7F4013944E2B0" name="us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearTwo" contextRef="FI2019Q4" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">5,558</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">2022</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9051125e808-wk-Fact-48F681819E88FD853E7BF4014A3F986D" name="us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearThree" contextRef="FI2019Q4" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">3,822</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">2023</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9051125e833-wk-Fact-0CEE30E29F134D6937C6F40159E7417A" name="us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearFour" contextRef="FI2019Q4" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">3,000</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">2024</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9051125e858-wk-Fact-FE7ED961839B27FF16B6F4016B893CC5" name="us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearFive" contextRef="FI2019Q4" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">927</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Thereafter</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9051125e883-wk-Fact-041DEE609784498E7ECAF4017C4C120F" name="us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive" contextRef="FI2019Q4" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">310</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span><ix:nonFraction id="d9051125e913-wk-Fact-D53142CE10DFC3315279F4018D9A8361" name="us-gaap:LesseeOperatingLeaseLiabilityPaymentsDue" contextRef="FI2019Q4" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">20,182</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr></table></div><span style="font-family:inherit;font-size:10pt;"><br/></span></div></ix:nonNumeric><div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">The discounted present value of the future lease cash payments resulted in a lease liability of $</span><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9051125e924-wk-Fact-4D819F232EEE3E7C1819F402F3E7BA1A" name="us-gaap:OperatingLeaseLiability" contextRef="FI2019Q4" unitRef="usd" decimals="-3" scale="0" format="ixt:numdotdecimal">17,973,000</ix:nonFraction></span></span><span style="font-family:Arial;font-size:10pt;"> as of </span><span style="font-family:Arial;">December 31, 2019</span><span style="font-family:Arial;font-size:10pt;">.</span></div><div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">The weighted-average discount rate was </span><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9051125e937-wk-Fact-F95A66D8E76F8B068D59F4044E094AE0" name="us-gaap:OperatingLeaseWeightedAverageDiscountRatePercent" contextRef="FI2019Q4" unitRef="number" decimals="3" scale="-2" format="ixt:numdotdecimal">4.6</ix:nonFraction>%</span></span><span style="font-family:Arial;font-size:10pt;"> for the leases outstanding as of </span><span style="font-family:Arial;">December 31, 2019</span><span style="font-family:Arial;font-size:10pt;">.  The weighted-average remaining lease term was </span><span style="font-family:Arial;font-size:10pt;"><span><ix:nonNumeric id="d9051125e946-wk-Fact-E73D9120401FB7E8796EF405606BF5A5" name="us-gaap:OperatingLeaseWeightedAverageRemainingLeaseTerm1" contextRef="FI2019Q4" format="ixt-sec:duryear">3.7</ix:nonNumeric></span></span><span style="font-family:Arial;font-size:10pt;"> years for the leases outstanding as of </span><span style="font-family:Arial;">December 31, 2019</span><span style="font-family:Arial;font-size:10pt;">.  The Company did not have any leases that have not yet commenced but that create significant rights and obligations as of </span><span style="font-family:Arial;">December 31, 2019</span><span style="font-family:Arial;font-size:10pt;">. </span></div><div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">The Company owns a building adjacent to its corporate headquarters that is partially occupied with a tenant who has a lease agreement that will expire in 2022.  Annual rental income totaled </span><span style="font-family:Arial;font-size:10pt;"><span>$<ix:nonFraction id="d9051125e963-wk-Fact-43F0B6D594E9D80B413CF406DDBD9DA8" name="us-gaap:OperatingLeaseLeaseIncome" contextRef="FD2019Q4YTD" unitRef="usd" decimals="-3" scale="0" format="ixt:numdotdecimal">311,000</ix:nonFraction></span></span><span style="font-family:Arial;font-size:10pt;"> in </span><span style="font-family:Arial;font-size:10pt;">2019</span><span style="font-family:Arial;font-size:10pt;">, </span><span style="font-family:Arial;font-size:10pt;"><span>$<ix:nonFraction id="d9051125e971-wk-Fact-81B451F98CFEB02A48D3F408ECD8E5CE" name="us-gaap:RentalIncomeNonoperating" contextRef="FD2018Q4YTD" unitRef="usd" decimals="-3" scale="0" format="ixt:numdotdecimal">1,116,000</ix:nonFraction></span></span><span style="font-family:Arial;font-size:10pt;"> in </span><span style="font-family:Arial;font-size:10pt;">2018</span><span style="font-family:Arial;font-size:10pt;">, and </span><span style="font-family:Arial;font-size:10pt;"><span>$<ix:nonFraction id="d9051125e979-wk-Fact-8D8FB07A12463958ADDAF408ECCBCED9" name="us-gaap:RentalIncomeNonoperating" contextRef="FD2017Q4YTD" unitRef="usd" decimals="-3" scale="0" format="ixt:numdotdecimal">1,474,000</ix:nonFraction></span></span><span style="font-family:Arial;font-size:10pt;"> in </span><span style="font-family:Arial;font-size:10pt;">2017</span><span style="font-family:Arial;font-size:10pt;">.  Rental income and related expenses are included in "Other income (expense)" on the Consolidated Statements of Operations. </span></div><ix:nonNumeric contextRef="FD2019Q4YTD" name="us-gaap:LessorOperatingLeasePaymentsToBeReceivedMaturityTableTextBlock" id="TextSelection-B2212775BBF850424662F3F81FF980B4-0-wk-Fact-F11F463883A0982241D4F3F87295A720" escape="true"><div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Future minimum rental receipts under non-cancelable lease agreements are as follows (in thousands):</span></div><div style="line-height:120%;padding-top:12px;text-align:center;font-size:10pt;"><div style="padding-left:0px;text-indent:0px;line-height:normal;padding-top:10px;"><table cellpadding="0" cellspacing="0" style="font-family:Times New Roman;font-size:10pt;margin-left:auto;margin-right:auto;width:99.41520467836257%;border-collapse:collapse;text-align:left;"><tr><td colspan="5"></td></tr><tr><td style="width:84%;"></td><td style="width:3%;"></td><td style="width:1%;"></td><td style="width:11%;"></td><td style="width:1%;"></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;font-weight:bold;text-decoration:underline;">Year Ended December&#160;31,</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;font-weight:bold;">Amount</span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">2020</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9051125e1044-wk-Fact-A244FCE4890CF8DAC9F4F40A9F07582C" name="us-gaap:LessorOperatingLeasePaymentsToBeReceivedNextTwelveMonths" contextRef="FI2019Q4" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">307</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">2021</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9051125e1069-wk-Fact-F6BB13D5A82A526DA19DF40AB35230D0" name="us-gaap:LessorOperatingLeasePaymentsToBeReceivedTwoYears" contextRef="FI2019Q4" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">307</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">2022</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9051125e1094-wk-Fact-8B6885CA27D9B47DB9D6F40AC210F117" name="us-gaap:LessorOperatingLeasePaymentsToBeReceivedThreeYears" contextRef="FI2019Q4" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">307</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span><ix:nonFraction id="d9051125e1124-wk-Fact-75D0C8932E50928D7265F40AD9D6B3E2" name="us-gaap:LessorOperatingLeasePaymentsToBeReceived" contextRef="FI2019Q4" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">921</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr></table></div><span style="font-family:inherit;font-size:10pt;"><br/></span></div></ix:nonNumeric></ix:continuation></ix:continuation><div><br/></div><div style="text-align:center;"><div style="line-height:120%;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">56</span></div></div><hr style="page-break-after:always"></hr><div><a id="sE896516B59E250B9854E25898A942430"></a></div><div><div style="line-height:120%;font-size:9pt;"><a style="font-family:inherit;font-size:9pt;" href="#sCD449198B5695D85B5494CF5DF708C26"><span style="font-family:inherit;font-size:9pt;">Table of Contents</span></a></div><div style="line-height:120%;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><br/></span></div><div style="line-height:120%;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">COGNEX CORPORATION - NOTES TO CONSOLIDATED FINANCIAL STATEMENTS</span></div></div><div><br/></div><div style="line-height:120%;padding-top:12px;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">NOTE 8:&#160;&#160;<ix:nonNumeric contextRef="FD2019Q4YTD" name="us-gaap:GoodwillDisclosureTextBlock" id="TextSelection-1BD438A1C178077D27FE8095A1A8D69A-0-wk-Fact-7750E5F4BC7E4AAF2D168095A17A1971" continuedAt="TextSelection-1BD438A1C178077D27FE8095A1A8D69A-1" escape="true">Goodwill</ix:nonNumeric></span></div><ix:continuation id="TextSelection-1BD438A1C178077D27FE8095A1A8D69A-1"><ix:nonNumeric contextRef="FD2019Q4YTD" name="us-gaap:ScheduleOfGoodwillTextBlock" id="TextSelection-E7D82CE02B41986F9C958095A1A80E93-0-wk-Fact-7BD78BA154AF1D937C408095A17AE0AF" escape="true"><div style="line-height:120%;padding-top:6px;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">The changes in the carrying value of goodwill were as follows (in thousands):</span></div><div style="line-height:120%;font-size:10pt;"><div style="padding-left:0px;text-indent:0px;line-height:normal;padding-top:10px;"><table cellpadding="0" cellspacing="0" style="font-family:Times New Roman;font-size:10pt;width:100%;border-collapse:collapse;text-align:left;"><tr><td colspan="5"></td></tr><tr><td style="width:84%;"></td><td style="width:1%;"></td><td style="width:1%;"></td><td style="width:13%;"></td><td style="width:1%;"></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;">Amount</span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Balance as of December 31, 2017</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9056095e709-wk-Fact-19987B64D69EF21D42358095A190D309" name="us-gaap:Goodwill" contextRef="FI2017Q4" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">113,208</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Balance as of December 31, 2018</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9056095e729-wk-Fact-0E49DD13D0281181743F8095A1866117" name="us-gaap:Goodwill" contextRef="FI2018Q4" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">113,208</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Acquisition of Sualab Co., Ltd.</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9056095e754-wk-Fact-2339774AC72155A0358DF40E8CE6FD98" name="us-gaap:GoodwillAcquiredDuringPeriod" contextRef="FD2019Q4YTD_us-gaap_BusinessAcquisitionAxis_cgnx_SualabCo.Ltd.Member" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">130,142</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">&#160;&#160;Foreign exchange rate changes</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9056095e779-wk-Fact-7011986211E683C5246BF41256127DB8" name="us-gaap:GoodwillForeignCurrencyTranslationGainLoss" contextRef="FD2019Q4YTD" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">95</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Balance as of December 31, 2019</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span><ix:nonFraction id="d9056095e809-wk-Fact-81F94E54D4E5D51829658095A18DD1F9" name="us-gaap:Goodwill" contextRef="FI2019Q4" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">243,445</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr></table></div><span style="font-family:inherit;font-size:10pt;"><br/></span></div></ix:nonNumeric><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Refer to Note 21 to the Consolidated Financial Statements for further information regarding acquisitions.  </span></div><div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">For its </span><span style="font-family:Arial;font-size:10pt;">2019</span><span style="font-family:Arial;font-size:10pt;"> analysis of goodwill, management elected to perform a qualitative assessment.  Based upon this assessment, management believes that it is more likely than not that the fair value of the reporting unit exceeds its carrying amount.  Factors that management considered in the qualitative assessment include macroeconomic conditions, industry and market considerations, overall financial performance (both current and projected), changes in management or strategy, changes in the composition or carrying amount of net assets, and market capitalization.</span></div></ix:continuation><div><a id="s1D547B33BD625BD4A97313E174EBEEE9"></a></div><div style="line-height:120%;padding-top:12px;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">NOTE 9:&#160; <ix:nonNumeric contextRef="FD2019Q4YTD" name="us-gaap:IntangibleAssetsDisclosureTextBlock" id="TextSelection-60A48FAD8C2B1A9FA2EF8095A1A8F1BA-0-wk-Fact-F7CC756F044A9A900D758095A17B09E6" continuedAt="TextSelection-60A48FAD8C2B1A9FA2EF8095A1A8F1BA-1" escape="true">Intangible Assets</ix:nonNumeric></span></div><ix:continuation id="TextSelection-60A48FAD8C2B1A9FA2EF8095A1A8F1BA-1"><div style="line-height:120%;padding-top:6px;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">I<ix:nonNumeric contextRef="FD2019Q4YTD" name="us-gaap:ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock" id="TextSelection-D6C30299278CCC37BBA88095A1A86813-0-wk-Fact-C11F20E14558C918A24D8095A17BF5BB" continuedAt="TextSelection-D6C30299278CCC37BBA88095A1A86813-1" escape="true">ntangible assets consisted of the following (in thousands):</ix:nonNumeric></span></div><ix:continuation id="TextSelection-D6C30299278CCC37BBA88095A1A86813-1"><div style="line-height:120%;font-size:10pt;"><div style="padding-left:0px;text-indent:0px;line-height:normal;padding-top:10px;"><table cellpadding="0" cellspacing="0" style="font-family:Times New Roman;font-size:10pt;width:99.80506822612085%;border-collapse:collapse;text-align:left;"><tr><td colspan="12"></td></tr><tr><td style="width:53%;"></td><td style="width:1%;"></td><td style="width:13%;"></td><td style="width:1%;"></td><td style="width:1%;"></td><td style="width:1%;"></td><td style="width:13%;"></td><td style="width:1%;"></td><td style="width:1%;"></td><td style="width:1%;"></td><td style="width:13%;"></td><td style="width:1%;"></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">Gross</span></div><div style="text-align:center;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">Carrying</span></div><div style="text-align:center;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">Value</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">Accumulated</span></div><div style="text-align:center;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">Amortization</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">Net</span></div><div style="text-align:center;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">Carrying</span></div><div style="text-align:center;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">Value</span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Distribution networks</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span><ix:nonFraction id="d9057519e763-wk-Fact-C1C797B6FB8311C5FDA68095A1734B42" name="us-gaap:FiniteLivedIntangibleAssetsGross" contextRef="FI2019Q4_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_DistributionRightsMember" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">38,060</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span><ix:nonFraction id="d9057519e782-wk-Fact-A62EF0EA0A81C845C39E8095A173168E" name="us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization" contextRef="FI2019Q4_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_DistributionRightsMember" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">38,060</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span><ix:nonFraction id="d9057519e801-wk-Fact-CC43215B09C61C1FF6A28095A1723E05" name="us-gaap:FiniteLivedIntangibleAssetsNet" contextRef="FI2019Q4_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_DistributionRightsMember" unitRef="usd" decimals="-3" scale="3" format="ixt:zerodash">&#8212;</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Completed technologies</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span><ix:nonFraction id="d9057519e817-wk-Fact-C2CE340F4018E81294AE8095A172A5C6" name="us-gaap:FiniteLivedIntangibleAssetsGross" contextRef="FI2019Q4_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_DevelopedTechnologyRightsMember" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">31,987</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span><ix:nonFraction id="d9057519e836-wk-Fact-FFD04EE83482831E12168095A173D9DB" name="us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization" contextRef="FI2019Q4_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_DevelopedTechnologyRightsMember" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">9,160</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span><ix:nonFraction id="d9057519e855-wk-Fact-31674EF878C1C535A7958095A173391F" name="us-gaap:FiniteLivedIntangibleAssetsNet" contextRef="FI2019Q4_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_DevelopedTechnologyRightsMember" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">22,827</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Customer relationships</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span><ix:nonFraction id="d9057519e876-wk-Fact-36DCCD01B8EC43C61DC28095A173765A" name="us-gaap:FiniteLivedIntangibleAssetsGross" contextRef="FI2019Q4_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_cgnx_CustomerContractsAndRelationshipsMember" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">14,407</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span><ix:nonFraction id="d9057519e895-wk-Fact-B54D523204A16E75CDB58095A173F921" name="us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization" contextRef="FI2019Q4_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_cgnx_CustomerContractsAndRelationshipsMember" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">6,402</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span><ix:nonFraction id="d9057519e914-wk-Fact-DBA5FD867D71BB4C89C38095A173B539" name="us-gaap:FiniteLivedIntangibleAssetsNet" contextRef="FI2019Q4_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_cgnx_CustomerContractsAndRelationshipsMember" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">8,005</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">In-process technologies</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span><ix:nonFraction id="d9057519e935-wk-Fact-A1F15DC5102BCC61140A167A3D3E3C62" name="us-gaap:FiniteLivedIntangibleAssetsGross" contextRef="FI2019Q4_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_InProcessResearchAndDevelopmentMember" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">8,200</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span><ix:nonFraction id="d9057519e954-wk-Fact-57C5B72978493A4934C41678A5F30358" name="us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization" contextRef="FI2019Q4_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_InProcessResearchAndDevelopmentMember" unitRef="usd" decimals="-3" scale="3" format="ixt:zerodash">&#8212;</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span><ix:nonFraction id="d9057519e973-wk-Fact-0193F9568E166F71D5801678E5CF8BEE" name="us-gaap:FiniteLivedIntangibleAssetsNet" contextRef="FI2019Q4_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_InProcessResearchAndDevelopmentMember" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">8,200</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Non-compete agreements</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span><ix:nonFraction id="d9057519e994-wk-Fact-AF1888E6432CE0908BB98095A1724D89" name="us-gaap:FiniteLivedIntangibleAssetsGross" contextRef="FI2019Q4_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_NoncompeteAgreementsMember" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">710</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span><ix:nonFraction id="d9057519e1013-wk-Fact-5FAEC84664E7D61756588095A172F8D5" name="us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization" contextRef="FI2019Q4_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_NoncompeteAgreementsMember" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">350</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span><ix:nonFraction id="d9057519e1032-wk-Fact-D80B651A1D0CDA8AF3FE8095A1725BAE" name="us-gaap:FiniteLivedIntangibleAssetsNet" contextRef="FI2019Q4_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_NoncompeteAgreementsMember" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">360</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Trademarks</span></div></td><td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span><ix:nonFraction id="d9057519e1053-wk-Fact-FD1000C05020A3224A211676F4F6B5BA" name="us-gaap:FiniteLivedIntangibleAssetsGross" contextRef="FI2019Q4_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_TrademarksMember" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">110</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span><ix:nonFraction id="d9057519e1072-wk-Fact-D1BB786D073C4E6576AA1677600D52B5" name="us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization" contextRef="FI2019Q4_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_TrademarksMember" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">12</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span><ix:nonFraction id="d9057519e1091-wk-Fact-87376E39E9011DD458DF1677F3084A5F" name="us-gaap:FiniteLivedIntangibleAssetsNet" contextRef="FI2019Q4_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_TrademarksMember" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">98</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Balance as of December 31, 2019</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span><ix:nonFraction id="d9057519e1117-wk-Fact-DE069372D2995E673D1A8095A17375A9" name="us-gaap:FiniteLivedIntangibleAssetsGross" contextRef="FI2019Q4" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">93,474</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span><ix:nonFraction id="d9057519e1136-wk-Fact-6A44CE686A50E5DF75B18095A1729C9F" name="us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization" contextRef="FI2019Q4" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">53,984</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span><ix:nonFraction id="d9057519e1155-wk-Fact-7A830800501D25D7E6308095A172DBD7" name="us-gaap:IntangibleAssetsNetIncludingGoodwill" contextRef="FI2019Q4" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">39,490</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:12px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:12px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:12px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:12px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:12px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:12px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">Gross</span></div><div style="text-align:center;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">Carrying</span></div><div style="text-align:center;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">Value</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">Accumulated</span></div><div style="text-align:center;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">Amortization</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">Net</span></div><div style="text-align:center;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">Carrying</span></div><div style="text-align:center;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">Value</span></div></td></tr><tr><td style="vertical-align:top;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Distribution networks</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9057519e1315-wk-Fact-160CE5AFF9ED398E38ED8095A1734F0E" name="us-gaap:FiniteLivedIntangibleAssetsGross" contextRef="FI2017Q4_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_DistributionRightsMember" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">38,060</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9057519e1334-wk-Fact-56B0E8B952CF2A5B55198095A172E5AE" name="us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization" contextRef="FI2017Q4_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_DistributionRightsMember" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">38,060</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9057519e1353-wk-Fact-62445D6E15BC9F7549E88095A17394FF" name="us-gaap:FiniteLivedIntangibleAssetsNet" contextRef="FI2017Q4_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_DistributionRightsMember" unitRef="usd" decimals="-3" scale="3" format="ixt:zerodash">&#8212;</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Completed technologies</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9057519e1370-wk-Fact-259F04A3702F1F8E81438095A1729507" name="us-gaap:FiniteLivedIntangibleAssetsGross" contextRef="FI2017Q4_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_DevelopedTechnologyRightsMember" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">13,687</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9057519e1389-wk-Fact-582B099EEE1AC825469F8095A1730E70" name="us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization" contextRef="FI2017Q4_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_DevelopedTechnologyRightsMember" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">6,619</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9057519e1408-wk-Fact-D67269166C0D6A2B202B8095A17242C0" name="us-gaap:FiniteLivedIntangibleAssetsNet" contextRef="FI2017Q4_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_DevelopedTechnologyRightsMember" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">7,068</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Customer relationships</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9057519e1429-wk-Fact-E856789D873649644E888095A173CC30" name="us-gaap:FiniteLivedIntangibleAssetsGross" contextRef="FI2017Q4_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_cgnx_CustomerContractsAndRelationshipsMember" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">8,607</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9057519e1448-wk-Fact-35F09D05673FE4A5F6758095A1728528" name="us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization" contextRef="FI2017Q4_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_cgnx_CustomerContractsAndRelationshipsMember" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">5,716</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9057519e1467-wk-Fact-EFB554B5E1988736FD088095A171CA18" name="us-gaap:FiniteLivedIntangibleAssetsNet" contextRef="FI2017Q4_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_cgnx_CustomerContractsAndRelationshipsMember" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">2,891</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Non-compete agreements</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9057519e1488-wk-Fact-F7E81B56B1F6BB0E900F8095A1735067" name="us-gaap:FiniteLivedIntangibleAssetsGross" contextRef="FI2017Q4_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_OtherIntangibleAssetsMember" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">370</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9057519e1507-wk-Fact-DF71D18F0A3AC01354C58095A1725A0A" name="us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization" contextRef="FI2017Q4_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_OtherIntangibleAssetsMember" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">216</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9057519e1526-wk-Fact-561F600947763AF050E08095A173E572" name="us-gaap:FiniteLivedIntangibleAssetsNet" contextRef="FI2017Q4_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_OtherIntangibleAssetsMember" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">154</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Balance as of December 31, 2018</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9057519e1552-wk-Fact-6AF51F2F5978088A8C538095A1736F8B" name="us-gaap:FiniteLivedIntangibleAssetsGross" contextRef="FI2017Q4" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">60,724</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9057519e1571-wk-Fact-D4BC8A22D62611FA138F8095A172A4CA" name="us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization" contextRef="FI2017Q4" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">50,611</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9057519e1590-wk-Fact-1AF6959CE3A116831F518095A172D708" name="us-gaap:FiniteLivedIntangibleAssetsNet" contextRef="FI2017Q4" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">10,113</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr></table></div><span style="font-family:inherit;font-size:10pt;"><br/></span></div></ix:continuation><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">In connection with the acquisition of Sualab Co., Ltd. in the fourth quarter of 2019, the Company acquired in-process technologies valued at </span><span style="font-family:Arial;font-size:10pt;"><span>$<ix:nonFraction id="d9057519e1609-wk-Fact-A1F15DC5102BCC61140A167A3D3E3C62" name="us-gaap:FiniteLivedIntangibleAssetsGross" contextRef="FI2019Q4_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_InProcessResearchAndDevelopmentMember" unitRef="usd" decimals="-3" scale="0" format="ixt:numdotdecimal">8,200,000</ix:nonFraction></span></span><span style="font-family:Arial;font-size:10pt;">.  In-process technology is an indefinite-lived intangible asset until the technology is finalized, at which point it is amortized over its estimated useful life.</span></div><ix:nonNumeric contextRef="FD2019Q4YTD" name="us-gaap:ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock" id="TextSelection-0C7D9E68AF55F3D97A538095A1A8FB70-0-wk-Fact-50F6FA1732116668EA128095A17B2980" escape="true"><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Estimated amortization expense for each of the five succeeding fiscal years and thereafter is as follows (in thousands):</span></div><div style="line-height:120%;font-size:10pt;"><div style="padding-left:0px;text-indent:0px;line-height:normal;padding-top:10px;"><table cellpadding="0" cellspacing="0" style="font-family:Times New Roman;font-size:10pt;width:100%;border-collapse:collapse;text-align:left;"><tr><td colspan="5"></td></tr><tr><td style="width:82%;"></td><td style="width:1%;"></td><td style="width:1%;"></td><td style="width:15%;"></td><td style="width:1%;"></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;text-decoration:underline;">Year Ended December&#160;31,</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;">Amount</span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">2020</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9057519e1681-wk-Fact-E8F8745CD94B0F13D18B8095A1830717" name="us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths" contextRef="FI2019Q4" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">5,412</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">2021</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9057519e1701-wk-Fact-249005F6FEA00DC3E4798095A1837DBF" name="us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo" contextRef="FI2019Q4" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">5,232</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">2022</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9057519e1726-wk-Fact-FEB8C02BDDE5DF0014CB8095A183DFAE" name="us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseYearThree" contextRef="FI2019Q4" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">4,862</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">2023</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9057519e1751-wk-Fact-4B031FD4069E4A1AF6CB8095A182871F" name="us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseYearFour" contextRef="FI2019Q4" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">4,160</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">2024</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9057519e1776-wk-Fact-8C27EAA156F950378D858095A183B0AB" name="us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseYearFive" contextRef="FI2019Q4" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">3,593</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Thereafter</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9057519e1801-wk-Fact-1317AEC84C91C4D32DF08095A1832046" name="us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive" contextRef="FI2019Q4" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">8,031</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span><ix:nonFraction id="d9057519e1831-wk-Fact-7C3C8AC02782D01DACC78095A1831F6F" name="us-gaap:FiniteLivedIntangibleAssetsNet" contextRef="FI2019Q4" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">31,290</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr></table></div><span style="font-family:inherit;font-size:10pt;"><br/></span></div></ix:nonNumeric></ix:continuation><div><br/></div><div style="text-align:center;"><div style="line-height:120%;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">57</span></div></div><hr style="page-break-after:always"></hr><div><a id="s429DB5599F9053C3AF5AFCBCBCD370A8"></a></div><div><div style="line-height:120%;font-size:9pt;"><a style="font-family:inherit;font-size:9pt;" href="#sCD449198B5695D85B5494CF5DF708C26"><span style="font-family:inherit;font-size:9pt;">Table of Contents</span></a></div><div style="line-height:120%;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><br/></span></div><div style="line-height:120%;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">COGNEX CORPORATION - NOTES TO CONSOLIDATED FINANCIAL STATEMENTS</span></div></div><div><br/></div><div style="line-height:120%;padding-top:12px;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">NOTE 10:&#160;&#160;<ix:nonNumeric contextRef="FD2019Q4YTD" name="us-gaap:AccountsPayableAndAccruedLiabilitiesDisclosureTextBlock" id="TextSelection-FE3798F3555DC69F0C8F8095A1A8F754-0-wk-Fact-9D5DEBAE4BB00FB58F568095A1707A9A" continuedAt="TextSelection-FE3798F3555DC69F0C8F8095A1A8F754-1" escape="true">Accrued Expenses</ix:nonNumeric></span></div><ix:continuation id="TextSelection-FE3798F3555DC69F0C8F8095A1A8F754-1"><ix:nonNumeric contextRef="FD2019Q4YTD" name="us-gaap:ScheduleOfAccruedLiabilitiesTableTextBlock" id="TextSelection-19308F885603102280698095A1A80053-0-wk-Fact-3E4086F9E77C371D7D028095A1711EE1" escape="true"><div style="line-height:120%;padding-top:6px;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Accrued expenses consisted of the following (in thousands):</span></div><div style="line-height:120%;font-size:10pt;"><div style="padding-left:0px;text-indent:0px;line-height:normal;padding-top:10px;"><table cellpadding="0" cellspacing="0" style="font-family:Times New Roman;font-size:10pt;width:99.80506822612085%;border-collapse:collapse;text-align:left;"><tr><td colspan="8"></td></tr><tr><td style="width:65%;"></td><td style="width:1%;"></td><td style="width:15%;"></td><td style="width:1%;"></td><td style="width:1%;"></td><td style="width:1%;"></td><td style="width:15%;"></td><td style="width:1%;"></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;">&#160;</span></div></td><td colspan="7" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;">December&#160;31,</span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-top:2px;padding-bottom:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;">2019</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-top:2px;padding-bottom:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;">2018</span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Salaries, commissions, and payroll taxes</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span><ix:nonFraction id="d9058253e761-wk-Fact-D1F6BE442C2CA9FD97F58095A196F687" name="us-gaap:AccruedSalariesCurrent" contextRef="FI2019Q4" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">11,500</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9058253e780-wk-Fact-824F0EB2B229C00734C78095A19036BD" name="us-gaap:AccruedSalariesCurrent" contextRef="FI2018Q4" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">11,039</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Foreign retirement obligations</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span><ix:nonFraction id="d9058253e795-wk-Fact-A8314783D0C9B4119BE0AB97994DF22A" name="cgnx:RetirementAllowance" contextRef="FI2019Q4" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">6,146</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9058253e814-wk-Fact-3906FB5307383B83FC37AB97B20D7CD6" name="cgnx:RetirementAllowance" contextRef="FI2018Q4" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">4,816</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Warranty obligations</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span><ix:nonFraction id="d9058253e834-wk-Fact-F13CCBCD6C1DDE0274B8AB9709A9A61A" name="us-gaap:ProductWarrantyAccrualClassifiedCurrent" contextRef="FI2019Q4" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">4,713</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9058253e853-wk-Fact-970169A556C101EA66C5AB9721108CFC" name="us-gaap:ProductWarrantyAccrualClassifiedCurrent" contextRef="FI2018Q4" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">4,743</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Vacation</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span><ix:nonFraction id="d9058253e873-wk-Fact-6CD812F60E6A0BED3CC58095A195F692" name="us-gaap:AccruedVacationCurrent" contextRef="FI2019Q4" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">4,708</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9058253e892-wk-Fact-68126BC9985B5D5BD2AF8095A190F5BB" name="us-gaap:AccruedVacationCurrent" contextRef="FI2018Q4" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">6,507</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Acquisition deferred and contingent liabilities</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span><ix:nonFraction id="d9058253e912-wk-Fact-4C5E928F387DDBBD9B098095A1907A45" name="us-gaap:BusinessCombinationSeparatelyRecognizedTransactionsLiabilitiesRecognized" contextRef="FI2019Q4" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">2,103</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9058253e931-wk-Fact-C1F81CAC3E888BC775948095A1954A2F" name="us-gaap:BusinessCombinationSeparatelyRecognizedTransactionsLiabilitiesRecognized" contextRef="FI2018Q4" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">1,706</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Company bonuses</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span><ix:nonFraction id="d9058253e951-wk-Fact-63A2FB27FFAF7447ABFDAB969B25D26F" name="us-gaap:AccruedBonusesCurrent" contextRef="FI2019Q4" unitRef="usd" decimals="-3" scale="3" format="ixt:zerodash">&#8212;</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9058253e970-wk-Fact-C140FEEE37806B66DD85AB969D17BDD6" name="us-gaap:AccruedBonusesCurrent" contextRef="FI2018Q4" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">9,134</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Other</span></div></td><td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span><ix:nonFraction id="d9058253e990-wk-Fact-CEFE12089032F8980AA78095A196DBA4" name="us-gaap:OtherAccruedLiabilitiesCurrent" contextRef="FI2019Q4" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">23,029</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9058253e1009-wk-Fact-14E2E7D5D5ABCE7842AE8095A1968734" name="us-gaap:OtherAccruedLiabilitiesCurrent" contextRef="FI2018Q4" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">22,275</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span><ix:nonFraction id="d9058253e1034-wk-Fact-7D43CCBB2F2D2C0F66F78095A18D6138" name="us-gaap:AccruedLiabilitiesCurrent" contextRef="FI2019Q4" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">52,199</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9058253e1053-wk-Fact-08CBA18F4B05B33341B48095A18D7935" name="us-gaap:AccruedLiabilitiesCurrent" contextRef="FI2018Q4" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">60,220</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr></table></div><span style="font-family:inherit;font-size:10pt;"><br/></span></div></ix:nonNumeric><ix:nonNumeric contextRef="FD2019Q4YTD" name="us-gaap:ScheduleOfProductWarrantyLiabilityTableTextBlock" id="TextSelection-0F47E614BC9DFA99A0338095A1A8579A-0-wk-Fact-B8C3D0B98DFE47CB2A4D8095A171F50D" escape="true"><div style="line-height:120%;padding-top:12px;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">The changes in the warranty obligation were as follows (in thousands):</span></div><div style="line-height:120%;font-size:10pt;"><div style="padding-left:0px;text-indent:0px;line-height:normal;padding-top:10px;"><table cellpadding="0" cellspacing="0" style="font-family:Times New Roman;font-size:10pt;width:100%;border-collapse:collapse;text-align:left;"><tr><td colspan="4"></td></tr><tr><td style="width:82%;"></td><td style="width:1%;"></td><td style="width:16%;"></td><td style="width:1%;"></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Balance as of December 31, 2017</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9058253e1104-wk-Fact-D35925738CCCB8D6A8958095A174FDD1" name="us-gaap:ProductWarrantyAccrual" contextRef="FI2017Q4" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">4,701</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Provisions for warranties issued during the period</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9058253e1119-wk-Fact-044B383E3B90FFFEFAC68095A1744082" name="us-gaap:ProductWarrantyAccrualWarrantiesIssued" contextRef="FD2018Q4YTD" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">4,184</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Fulfillment of warranty obligations</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>(<ix:nonFraction id="d9058253e1139-wk-Fact-A7566A58081197E8D5B58095A1724841" name="us-gaap:ProductWarrantyAccrualPayments" contextRef="FD2018Q4YTD" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">4,024</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">)</span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Foreign exchange rate changes</span></div></td><td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>(<ix:nonFraction id="d9058253e1160-wk-Fact-FC3793B402BFBC1B726D8095A17146A9" name="us-gaap:StandardAndExtendedProductWarrantyAccrualForeignCurrencyTranslationGainLoss" contextRef="FD2018Q4YTD" unitRef="usd" decimals="-3" scale="3" sign="-" format="ixt:numdotdecimal">118</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">)</span></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Balance as of December 31, 2018</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9058253e1181-wk-Fact-834E76962585736255E88095A174F25A" name="us-gaap:ProductWarrantyAccrual" contextRef="FI2018Q4" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">4,743</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Provisions for warranties issued during the period</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9058253e1201-wk-Fact-9A18967CA0633F08F9E88095A171B1C1" name="us-gaap:ProductWarrantyAccrualWarrantiesIssued" contextRef="FD2019Q4YTD" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">3,841</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Fulfillment of warranty obligations</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>(<ix:nonFraction id="d9058253e1221-wk-Fact-2B9AD3048C8E800A5B458095A1723A55" name="us-gaap:ProductWarrantyAccrualPayments" contextRef="FD2019Q4YTD" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">3,871</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">)</span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Balance as of December 31, 2019</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span><ix:nonFraction id="d9058253e1247-wk-Fact-81ABAB5E278EAF3A7CDE8095A1741CB8" name="us-gaap:ProductWarrantyAccrual" contextRef="FI2019Q4" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">4,713</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr></table></div><span style="font-family:inherit;font-size:10pt;"><br/></span></div></ix:nonNumeric></ix:continuation><div><a id="s81A25C307E3351339774376DE2EA11D1"></a></div><div style="line-height:120%;padding-top:12px;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">NOTE 11:&#160;&#160;<ix:nonNumeric contextRef="FD2019Q4YTD" name="us-gaap:CommitmentsAndContingenciesDisclosureTextBlock" id="TextSelection-489283F9C1CD6AD01F458095A1A8591A-0-wk-Fact-78F00D5A8365545D98288095A17D3E49" continuedAt="TextSelection-489283F9C1CD6AD01F458095A1A8591A-1" escape="true">Commitments and Contingencies</ix:nonNumeric></span></div><ix:continuation id="TextSelection-489283F9C1CD6AD01F458095A1A8591A-1"><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">As of </span><span style="font-family:Arial;font-size:10pt;">December&#160;31, 2019</span><span style="font-family:Arial;font-size:10pt;">, the Company had outstanding purchase orders totaling </span><span style="font-family:Arial;font-size:10pt;"><span>$<ix:nonFraction id="d9058311e647-wk-Fact-3AACDD4E1567A8B271D98095A183C4C8" name="us-gaap:PurchaseCommitmentRemainingMinimumAmountCommitted" contextRef="FI2019Q4" unitRef="usd" decimals="0" scale="0" format="ixt:numdotdecimal">7,707,000</ix:nonFraction></span></span><span style="font-family:Arial;font-size:10pt;"> to purchase inventory from various vendors.  Certain of these purchase orders may be canceled by the Company, subject to cancellation penalties.  These purchase commitments relate to expected sales in 2020.</span></div><div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">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><a id="s2AADE27DB5F457A8B062E83AF5BF670E"></a></div><div style="line-height:120%;padding-top:12px;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">NOTE 12:&#160;&#160;<ix:nonNumeric contextRef="FD2019Q4YTD" name="cgnx:IndemnificationProvisionsTextBlock" id="TextSelection-755432FBD4A61DCB1AFA8095A1A8BCC0-0-wk-Fact-653E178D7F9D9896E5C98095A1733820" continuedAt="TextSelection-755432FBD4A61DCB1AFA8095A1A8BCC0-1" escape="true">Indemnification Provisions</ix:nonNumeric></span></div><ix:continuation id="TextSelection-755432FBD4A61DCB1AFA8095A1A8BCC0-1" continuedAt="TextSelection-755432FBD4A61DCB1AFA8095A1A8BCC0-2"><div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">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="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">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 generally 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><div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">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.  The maximum potential amount of future payments the Company could be required to make under these provisions is generally limited and is likely recoverable under the </span></div></ix:continuation><div><br/></div><div style="text-align:center;"><div style="line-height:120%;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">58</span></div></div><hr style="page-break-after:always"></hr><div><div style="line-height:120%;font-size:9pt;"><a style="font-family:inherit;font-size:9pt;" href="#sCD449198B5695D85B5494CF5DF708C26"><span style="font-family:inherit;font-size:9pt;">Table of Contents</span></a></div><div style="line-height:120%;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><br/></span></div><div style="line-height:120%;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">COGNEX CORPORATION - NOTES TO CONSOLIDATED FINANCIAL STATEMENTS</span></div></div><div><br/></div><ix:continuation id="TextSelection-755432FBD4A61DCB1AFA8095A1A8BCC0-2"><div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">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></div></ix:continuation><div><a id="s54BB7306F51A557F9D73EDB0D9567D41"></a></div><div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">NOTE 13:&#160;&#160;<ix:nonNumeric contextRef="FD2019Q4YTD" name="us-gaap:DerivativeInstrumentsAndHedgingActivitiesDisclosureTextBlock" id="TextSelection-4E0B86019E3091872BE48095A1A82A08-0-wk-Fact-391920C33B1BEF9BA0E08095A1900152" continuedAt="TextSelection-4E0B86019E3091872BE48095A1A82A08-1" escape="true">Derivative Instruments</ix:nonNumeric></span></div><ix:continuation id="TextSelection-4E0B86019E3091872BE48095A1A82A08-1" continuedAt="TextSelection-4E0B86019E3091872BE48095A1A82A08-2"><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">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 may enter into two types of hedges to manage this risk.  The first are economic hedges which utilize foreign currency forward contracts with maturities of up to </span><span style="font-family:Arial;font-size:10pt;"><span><ix:nonNumeric id="d9062756e642-wk-Fact-878A08C70ECAAB1CC6868095A18D8ED2" name="us-gaap:MaximumRemainingMaturityOfForeignCurrencyDerivatives1" contextRef="FD2019Q4YTD_us-gaap_HedgingDesignationAxis_us-gaap_NondesignatedMember" format="ixt-sec:durday">45</ix:nonNumeric> days</span></span><span style="font-family:Arial;font-size:10pt;"> to manage the exposure to fluctuations in foreign currency exchange rates arising primarily from foreign-denominated receivables and payables.  The gains and losses on these derivatives are intended to be offset by the changes in the fair value of the assets and liabilities being hedged.  These economic hedges are not designated as hedging instruments for hedge accounting treatment.  The second are cash flow hedges which utilize foreign currency forward contracts with maturities of up to </span><span style="font-family:Arial;font-size:10pt;"><span><ix:nonNumeric id="d9062756e646-wk-Fact-9F0B7E733FB0F06F4CF08095A18EB83D" name="us-gaap:MaximumLengthOfTimeHedgedInCashFlowHedge1" contextRef="FD2019Q4YTD_us-gaap_HedgingDesignationAxis_us-gaap_DesignatedAsHedgingInstrumentMember" format="ixt-sec:durmonth">18</ix:nonNumeric> months</span></span><span style="font-family:Arial;font-size:10pt;"> to hedge specific forecasted transactions of the Company's foreign subsidiaries with the goal of protecting our budgeted revenues and expenses against foreign currency exchange rate changes compared to our budgeted rates.  These cash flow hedges are designated as hedging instruments for hedge accounting treatment. The Company did not have any cash flow hedges as of December 31, 2019 and 2018. </span></div><ix:nonNumeric contextRef="FD2019Q4YTD" name="us-gaap:ScheduleOfNotionalAmountsOfOutstandingDerivativePositionsTableTextBlock" id="TextSelection-B9D183BC3760A19924A98095A1A87F5C-0-wk-Fact-257F12CD210C19E00C9C8095A196ACE2" escape="true"><div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">The Company had the following outstanding forward contracts (in thousands): </span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><div style="padding-left:0px;text-indent:0px;line-height:normal;padding-top:10px;"><table cellpadding="0" cellspacing="0" style="font-family:Times New Roman;font-size:10pt;width:100%;border-collapse:collapse;text-align:left;"><tr><td colspan="12"></td></tr><tr><td style="width:49%;"></td><td style="width:12%;"></td><td style="width:1%;"></td><td style="width:1%;"></td><td style="width:10%;"></td><td style="width:1%;"></td><td style="width:1%;"></td><td style="width:11%;"></td><td style="width:1%;"></td><td style="width:1%;"></td><td style="width:11%;"></td><td style="width:1%;"></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="5" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:center;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">December 31, 2019</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="5" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:center;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">December 31, 2018</span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;text-decoration:underline;">Currency</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;text-decoration:underline;">Notional Value</span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;text-decoration:underline;">USD Equivalent</span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;text-decoration:underline;">Notional Value</span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;text-decoration:underline;">USD Equivalent</span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:13px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:13px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:13px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:13px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:13px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:13px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td></tr><tr><td colspan="12" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-style:italic;">Derivatives Not Designated as Hedging Instruments:</span></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Korean Won</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9062756e931-wk-Fact-DB3FC914BB18F9B9C5CE911585E2F14A" name="us-gaap:DerivativeAssetNotionalAmount" contextRef="FI2019Q4_srt_CurrencyAxis_currency_KRW_us-gaap_HedgingDesignationAxis_us-gaap_NondesignatedMember" unitRef="iso4217_KRW" decimals="-3" scale="3" format="ixt:numdotdecimal">161,951,500</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9062756e945-wk-Fact-A46D5DC22C5F7CDE44569115887D679E" name="us-gaap:DerivativeAssetNotionalAmount" contextRef="FI2019Q4_srt_CurrencyAxis_currency_KRW_us-gaap_HedgingDesignationAxis_us-gaap_NondesignatedMember" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">139,688</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9062756e959-wk-Fact-1EA7620CC2E808DBFBC491158BBCE137" name="us-gaap:DerivativeAssetNotionalAmount" contextRef="FI2018Q4_srt_CurrencyAxis_currency_KRW_us-gaap_HedgingDesignationAxis_us-gaap_NondesignatedMember" unitRef="iso4217_KRW" decimals="-3" scale="3" format="ixt:numdotdecimal">3,125,000</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9062756e973-wk-Fact-113FA21D69C75A36710391158EF4AF37" name="us-gaap:DerivativeAssetNotionalAmount" contextRef="FI2018Q4_srt_CurrencyAxis_currency_KRW_us-gaap_HedgingDesignationAxis_us-gaap_NondesignatedMember" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">2,808</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Euro</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9062756e989-wk-Fact-F1631206B58FBBE7E3B38095A174CFC7" name="us-gaap:DerivativeAssetNotionalAmount" contextRef="FI2019Q4_srt_CurrencyAxis_currency_EUR_us-gaap_HedgingDesignationAxis_us-gaap_NondesignatedMember" unitRef="iso4217_JPY" decimals="-3" scale="3" format="ixt:numdotdecimal">18,000</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9062756e998-wk-Fact-8A85D5C1B6109BE6CB458095A17A3DAE" name="us-gaap:DerivativeAssetNotionalAmount" contextRef="FI2019Q4_srt_CurrencyAxis_currency_EUR_us-gaap_HedgingDesignationAxis_us-gaap_NondesignatedMember" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">20,249</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9062756e1017-wk-Fact-C7E2D90F55B70F51B12E8095A17AFC45" name="us-gaap:DerivativeAssetNotionalAmount" contextRef="FI2018Q4_srt_CurrencyAxis_currency_EUR_us-gaap_HedgingDesignationAxis_us-gaap_NondesignatedMember" unitRef="iso4217_JPY" decimals="-3" scale="3" format="ixt:numdotdecimal">23,000</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9062756e1026-wk-Fact-9A344ACEFF907481534F8095A17AA296" name="us-gaap:DerivativeAssetNotionalAmount" contextRef="FI2018Q4_srt_CurrencyAxis_currency_EUR_us-gaap_HedgingDesignationAxis_us-gaap_NondesignatedMember" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">26,330</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Japanese Yen</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9062756e1047-wk-Fact-0AD09FCD8F030715F82D8095A17ADC9A" name="us-gaap:DerivativeAssetNotionalAmount" contextRef="FI2019Q4_srt_CurrencyAxis_currency_JPY_us-gaap_HedgingDesignationAxis_us-gaap_NondesignatedMember" unitRef="iso4217_JPY" decimals="-3" scale="3" format="ixt:numdotdecimal">575,000</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9062756e1056-wk-Fact-F3300AE6216113C271558095A17A8F55" name="us-gaap:DerivativeAssetNotionalAmount" contextRef="FI2019Q4_srt_CurrencyAxis_currency_JPY_us-gaap_HedgingDesignationAxis_us-gaap_NondesignatedMember" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">5,291</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9062756e1075-wk-Fact-9E97ECC6ADF36346F1CD8095A173B980" name="us-gaap:DerivativeAssetNotionalAmount" contextRef="FI2018Q4_srt_CurrencyAxis_currency_JPY_us-gaap_HedgingDesignationAxis_us-gaap_NondesignatedMember" unitRef="iso4217_JPY" decimals="-3" scale="3" format="ixt:numdotdecimal">380,000</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9062756e1084-wk-Fact-1746DCAF4FA020378D4F8095A17AAD10" name="us-gaap:DerivativeAssetNotionalAmount" contextRef="FI2018Q4_srt_CurrencyAxis_currency_JPY_us-gaap_HedgingDesignationAxis_us-gaap_NondesignatedMember" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">3,459</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Mexican Peso</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9062756e1105-wk-Fact-E0C7835FE6CBE4614FDDFD17F46279F3" name="us-gaap:DerivativeAssetNotionalAmount" contextRef="FI2019Q4_srt_CurrencyAxis_currency_MXN_us-gaap_HedgingDesignationAxis_us-gaap_NondesignatedMember" unitRef="iso4217_JPY" decimals="-3" scale="3" format="ixt:numdotdecimal">80,000</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9062756e1114-wk-Fact-DD6AF3D9128D05B2FC9BFD17F6892AE3" name="us-gaap:DerivativeAssetNotionalAmount" contextRef="FI2019Q4_srt_CurrencyAxis_currency_MXN_us-gaap_HedgingDesignationAxis_us-gaap_NondesignatedMember" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">4,223</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9062756e1133-wk-Fact-04C55D805DCAE68DA980FD17F89412EC" name="us-gaap:DerivativeAssetNotionalAmount" contextRef="FI2018Q4_srt_CurrencyAxis_currency_MXN_us-gaap_HedgingDesignationAxis_us-gaap_NondesignatedMember" unitRef="iso4217_JPY" decimals="-3" scale="3" format="ixt:zerodash">&#8212;</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9062756e1142-wk-Fact-FB9921B4242E57DC29DAFD17FA34E36A" name="us-gaap:DerivativeAssetNotionalAmount" contextRef="FI2018Q4_srt_CurrencyAxis_currency_MXN_us-gaap_HedgingDesignationAxis_us-gaap_NondesignatedMember" unitRef="usd" decimals="-3" scale="3" format="ixt:zerodash">&#8212;</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">British Pound</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9062756e1163-wk-Fact-8347E7420847BBB11A9D8095A17471DD" name="us-gaap:DerivativeAssetNotionalAmount" contextRef="FI2019Q4_srt_CurrencyAxis_currency_GBP_us-gaap_HedgingDesignationAxis_us-gaap_NondesignatedMember" unitRef="gbp" decimals="-3" scale="3" format="ixt:numdotdecimal">2,700</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9062756e1172-wk-Fact-5470CBD6532610654C928095A174F54A" name="us-gaap:DerivativeAssetNotionalAmount" contextRef="FI2019Q4_srt_CurrencyAxis_currency_GBP_us-gaap_HedgingDesignationAxis_us-gaap_NondesignatedMember" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">3,569</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9062756e1191-wk-Fact-181362343EED8CB88BCF8095A1746DDD" name="us-gaap:DerivativeAssetNotionalAmount" contextRef="FI2018Q4_srt_CurrencyAxis_currency_GBP_us-gaap_HedgingDesignationAxis_us-gaap_NondesignatedMember" unitRef="gbp" decimals="-3" scale="3" format="ixt:numdotdecimal">2,500</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9062756e1200-wk-Fact-E97E4A3364B5175B2F1F8095A17A8138" name="us-gaap:DerivativeAssetNotionalAmount" contextRef="FI2018Q4_srt_CurrencyAxis_currency_GBP_us-gaap_HedgingDesignationAxis_us-gaap_NondesignatedMember" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">3,204</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Hungarian Forint</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9062756e1221-wk-Fact-3B09B5845451F83A78B48095A17AC8B7" name="us-gaap:DerivativeAssetNotionalAmount" contextRef="FI2019Q4_srt_CurrencyAxis_currency_HUF_us-gaap_HedgingDesignationAxis_us-gaap_NondesignatedMember" unitRef="huf" decimals="-3" scale="3" format="ixt:numdotdecimal">870,000</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9062756e1230-wk-Fact-E8A00AD733E35B948C168095A174F592" name="us-gaap:DerivativeAssetNotionalAmount" contextRef="FI2019Q4_srt_CurrencyAxis_currency_HUF_us-gaap_HedgingDesignationAxis_us-gaap_NondesignatedMember" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">2,962</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9062756e1249-wk-Fact-A25A231E5EC5DE32E1668095A17432C0" name="us-gaap:DerivativeAssetNotionalAmount" contextRef="FI2018Q4_srt_CurrencyAxis_currency_HUF_us-gaap_HedgingDesignationAxis_us-gaap_NondesignatedMember" unitRef="huf" decimals="-3" scale="3" format="ixt:numdotdecimal">750,000</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9062756e1258-wk-Fact-46BB6E58A2C12FA4548C8095A17AFC6B" name="us-gaap:DerivativeAssetNotionalAmount" contextRef="FI2018Q4_srt_CurrencyAxis_currency_HUF_us-gaap_HedgingDesignationAxis_us-gaap_NondesignatedMember" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">2,685</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Taiwanese Dollar</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9062756e1279-wk-Fact-054CE3A3E59B79B142F68095A173C888" name="us-gaap:DerivativeAssetNotionalAmount" contextRef="FI2019Q4_srt_CurrencyAxis_currency_TWD_us-gaap_HedgingDesignationAxis_us-gaap_NondesignatedMember" unitRef="twd" decimals="-3" scale="3" format="ixt:numdotdecimal">37,450</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9062756e1288-wk-Fact-F415D6FC83B2A608D7A18095A17A957D" name="us-gaap:DerivativeAssetNotionalAmount" contextRef="FI2019Q4_srt_CurrencyAxis_currency_TWD_us-gaap_HedgingDesignationAxis_us-gaap_NondesignatedMember" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">1,256</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9062756e1307-wk-Fact-7997B8B6305750E84FD08095A17AA5AF" name="us-gaap:DerivativeAssetNotionalAmount" contextRef="FI2018Q4_srt_CurrencyAxis_currency_TWD_us-gaap_HedgingDesignationAxis_us-gaap_NondesignatedMember" unitRef="twd" decimals="-3" scale="3" format="ixt:numdotdecimal">55,000</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9062756e1316-wk-Fact-036BACE46B0B89F729418095A173D521" name="us-gaap:DerivativeAssetNotionalAmount" contextRef="FI2018Q4_srt_CurrencyAxis_currency_TWD_us-gaap_HedgingDesignationAxis_us-gaap_NondesignatedMember" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">1,807</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Canadian Dollar</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9062756e1338-wk-Fact-C430AC03E705BE73064C8095A173265F" name="us-gaap:DerivativeAssetNotionalAmount" contextRef="FI2019Q4_srt_CurrencyAxis_currency_CAD_us-gaap_HedgingDesignationAxis_us-gaap_NondesignatedMember" unitRef="twd" decimals="-3" scale="3" format="ixt:numdotdecimal">1,300</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9062756e1347-wk-Fact-E6415B6FE16A2458CD2B8095A17424EF" name="us-gaap:DerivativeAssetNotionalAmount" contextRef="FI2019Q4_srt_CurrencyAxis_currency_CAD_us-gaap_HedgingDesignationAxis_us-gaap_NondesignatedMember" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">1,000</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9062756e1366-wk-Fact-376F0DE1EF0B811B23A18095A17A4268" name="us-gaap:DerivativeAssetNotionalAmount" contextRef="FI2018Q4_srt_CurrencyAxis_currency_CAD_us-gaap_HedgingDesignationAxis_us-gaap_NondesignatedMember" unitRef="twd" decimals="-3" scale="3" format="ixt:numdotdecimal">990</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9062756e1375-wk-Fact-E64CD1F51D409DE429F98095A17314CE" name="us-gaap:DerivativeAssetNotionalAmount" contextRef="FI2018Q4_srt_CurrencyAxis_currency_CAD_us-gaap_HedgingDesignationAxis_us-gaap_NondesignatedMember" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">726</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Singapore Dollar</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9062756e1396-wk-Fact-269B6387334FA7AEFB2A8095A173C07E" name="us-gaap:DerivativeAssetNotionalAmount" contextRef="FI2019Q4_srt_CurrencyAxis_currency_SGD_us-gaap_HedgingDesignationAxis_us-gaap_NondesignatedMember" unitRef="sgd" decimals="-3" scale="3" format="ixt:numdotdecimal">845</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9062756e1405-wk-Fact-B35577C40B60C4417F278095A1733866" name="us-gaap:DerivativeAssetNotionalAmount" contextRef="FI2019Q4_srt_CurrencyAxis_currency_SGD_us-gaap_HedgingDesignationAxis_us-gaap_NondesignatedMember" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">628</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9062756e1424-wk-Fact-50E263B2CD43930FF8B08095A17A391A" name="us-gaap:DerivativeAssetNotionalAmount" contextRef="FI2018Q4_srt_CurrencyAxis_currency_SGD_us-gaap_HedgingDesignationAxis_us-gaap_NondesignatedMember" unitRef="sgd" decimals="-3" scale="3" format="ixt:numdotdecimal">700</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9062756e1433-wk-Fact-DA0B972F4E92D35608E68095A179A84C" name="us-gaap:DerivativeAssetNotionalAmount" contextRef="FI2018Q4_srt_CurrencyAxis_currency_SGD_us-gaap_HedgingDesignationAxis_us-gaap_NondesignatedMember" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">514</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr></table></div><span style="font-family:inherit;font-size:10pt;"><br/></span></div></ix:nonNumeric><ix:nonNumeric contextRef="FD2019Q4YTD" name="us-gaap:ScheduleOfDerivativeInstrumentsInStatementOfFinancialPositionFairValueTextBlock" id="TextSelection-B75F98AEE5E1F289C38B8095A1A847F7-0-wk-Fact-FC3723EEAF16A06428F48095A190B7D9" escape="true"><div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Information regarding the fair value of the outstanding forward contracts was as follows (in thousands):</span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><div style="padding-left:0px;text-indent:0px;line-height:normal;padding-top:10px;"><table cellpadding="0" cellspacing="0" style="font-family:Times New Roman;font-size:10pt;width:100%;border-collapse:collapse;text-align:left;"><tr><td colspan="20"></td></tr><tr><td style="width:15%;"></td><td style="width:14%;"></td><td style="width:1%;"></td><td style="width:1%;"></td><td style="width:11%;"></td><td style="width:1%;"></td><td style="width:1%;"></td><td style="width:1%;"></td><td style="width:11%;"></td><td style="width:1%;"></td><td style="width:1%;"></td><td style="width:14%;"></td><td style="width:1%;"></td><td style="width:1%;"></td><td style="width:11%;"></td><td style="width:1%;"></td><td style="width:1%;"></td><td style="width:1%;"></td><td style="width:11%;"></td><td style="width:1%;"></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">&#160;</span></div></td><td colspan="9" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;font-weight:bold;">Asset Derivatives</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="9" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;font-weight:bold;">Liability Derivatives</span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td rowspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;border-top:1px solid #000000;"><div style="text-align:center;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;font-weight:bold;">Balance</span></div><div style="text-align:center;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;font-weight:bold;">Sheet</span></div><div style="text-align:center;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;font-weight:bold;">Location&#160; &#160;&#160;&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="7" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:center;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;font-weight:bold;">Fair Value</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td rowspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;border-top:1px solid #000000;"><div style="text-align:center;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;font-weight:bold;">Balance</span></div><div style="text-align:center;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;font-weight:bold;">Sheet</span></div><div style="text-align:center;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;font-weight:bold;">Location&#160; &#160;&#160;&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="7" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:center;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;font-weight:bold;">Fair Value</span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;font-weight:bold;">December 31, 2019</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;">December 31, 2018</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;font-weight:bold;">December 31, 2019</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;">December 31, 2018</span></div></td></tr><tr><td colspan="20" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-style:italic;">Derivatives Not Designated as Hedging Instruments:</span></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Economic hedge forward contracts</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Prepaid expenses and other current assets</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span><ix:nonFraction id="d9062756e1933-wk-Fact-25E3D9EEA1B6C77F12938095A172A44C" name="us-gaap:DerivativeAssets" contextRef="FI2019Q4_us-gaap_BalanceSheetLocationAxis_us-gaap_PrepaidExpensesAndOtherCurrentAssetsMember_us-gaap_HedgingDesignationAxis_us-gaap_NondesignatedMember" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">857</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9062756e1952-wk-Fact-A4F0D314D57A3D0E30FB8095A1715A7D" name="us-gaap:DerivativeAssets" contextRef="FI2018Q4_us-gaap_BalanceSheetLocationAxis_us-gaap_PrepaidExpensesAndOtherCurrentAssetsMember_us-gaap_HedgingDesignationAxis_us-gaap_NondesignatedMember" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">1</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Accrued expenses</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span><ix:nonFraction id="d9062756e1982-wk-Fact-03171D838C76FD40B5468095A171AE82" name="us-gaap:DerivativeLiabilities" contextRef="FI2019Q4_us-gaap_BalanceSheetLocationAxis_cgnx_AccruedExpensesMember_us-gaap_HedgingDesignationAxis_us-gaap_NondesignatedMember" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">23</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9062756e2001-wk-Fact-D93926EF5582581EB3368095A1710002" name="us-gaap:DerivativeLiabilities" contextRef="FI2018Q4_us-gaap_BalanceSheetLocationAxis_cgnx_AccruedExpensesMember_us-gaap_HedgingDesignationAxis_us-gaap_NondesignatedMember" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">106</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr></table></div><span style="font-family:inherit;font-size:10pt;"><br/></span></div></ix:nonNumeric></ix:continuation><div><br/></div><div style="text-align:center;"><div style="line-height:120%;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">59</span></div></div><hr style="page-break-after:always"></hr><div><div style="line-height:120%;font-size:9pt;"><a style="font-family:inherit;font-size:9pt;" href="#sCD449198B5695D85B5494CF5DF708C26"><span style="font-family:inherit;font-size:9pt;">Table of Contents</span></a></div><div style="line-height:120%;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><br/></span></div><div style="line-height:120%;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">COGNEX CORPORATION - NOTES TO CONSOLIDATED FINANCIAL STATEMENTS</span></div></div><div><br/></div><ix:continuation id="TextSelection-4E0B86019E3091872BE48095A1A82A08-2"><ix:nonNumeric contextRef="FD2019Q4YTD" name="us-gaap:OffsettingAssetsTableTextBlock" id="TextSelection-D4AE74F15B45AB072BEA8095A1A8D606-0-wk-Fact-9A6CD844C079C1861E858095A196BB2F" escape="true"><div style="line-height:120%;padding-top:12px;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">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 style="padding-left:0px;text-indent:0px;line-height:normal;padding-top:10px;"><table cellpadding="0" cellspacing="0" style="font-family:Times New Roman;font-size:10pt;width:99.80506822612085%;border-collapse:collapse;text-align:left;"><tr><td colspan="19"></td></tr><tr><td style="width:18%;"></td><td style="width:1%;"></td><td style="width:1%;"></td><td style="width:13%;"></td><td style="width:1%;"></td><td style="width:1%;"></td><td style="width:1%;"></td><td style="width:13%;"></td><td style="width:1%;"></td><td style="width:1%;"></td><td style="width:19%;"></td><td style="width:1%;"></td><td style="width:1%;"></td><td style="width:13%;"></td><td style="width:1%;"></td><td style="width:1%;"></td><td style="width:1%;"></td><td style="width:11%;"></td><td style="width:1%;"></td></tr><tr><td colspan="9" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">Asset Derivatives</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="9" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">Liability Derivatives</span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">December&#160;31, 2019</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">December&#160;31, 2018</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">December&#160;31, 2019</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;border-top:1px solid #000000;"><div style="text-align:center;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">December&#160;31, 2018</span></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Gross amounts of recognized assets</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span><ix:nonFraction id="d9062756e2263-wk-Fact-65C7EBF3835A7AAD8AC78095A184D76B" name="us-gaap:DerivativeFairValueOfDerivativeAsset" contextRef="FI2019Q4" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">857</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9062756e2282-wk-Fact-2E9448F224F4C8FC0CF88095A184C75C" name="us-gaap:DerivativeFairValueOfDerivativeAsset" contextRef="FI2018Q4" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">1</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Gross amounts of recognized liabilities</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span><ix:nonFraction id="d9062756e2312-wk-Fact-ACD1E7517200CD9DED4D8095A1855102" name="us-gaap:DerivativeFairValueOfDerivativeLiability" contextRef="FI2019Q4" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">23</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9062756e2331-wk-Fact-9D6D99721815584F5DE48095A17CEDC9" name="us-gaap:DerivativeFairValueOfDerivativeLiability" contextRef="FI2018Q4" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">106</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Gross amounts offset</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span><ix:nonFraction id="d9062756e2351-wk-Fact-BF8CC178EEFCD25B03788095A1847945" name="us-gaap:DerivativeAssetCollateralObligationToReturnCashOffset" contextRef="FI2019Q4" unitRef="usd" decimals="-3" scale="3" format="ixt:zerodash">&#8212;</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9062756e2370-wk-Fact-AD283AA66E593495CC8C8095A1844562" name="us-gaap:DerivativeAssetCollateralObligationToReturnCashOffset" contextRef="FI2018Q4" unitRef="usd" decimals="-3" scale="3" format="ixt:zerodash">&#8212;</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Gross amounts offset</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span><ix:nonFraction id="d9062756e2400-wk-Fact-84D07FD9EFADFD4B1DA18095A17C7EC5" name="us-gaap:DerivativeLiabilityCollateralRightToReclaimCashOffset" contextRef="FI2019Q4" unitRef="usd" decimals="-3" scale="3" format="ixt:zerodash">&#8212;</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9062756e2419-wk-Fact-C14ABDD632A193154F588095A17D8289" name="us-gaap:DerivativeLiabilityCollateralRightToReclaimCashOffset" contextRef="FI2018Q4" unitRef="usd" decimals="-3" scale="3" format="ixt:zerodash">&#8212;</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Net amount of assets presented</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span><ix:nonFraction id="d9062756e2449-wk-Fact-765A305A2CE38375E3748095A17CE156" name="us-gaap:DerivativeAssets" contextRef="FI2019Q4" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">857</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9062756e2468-wk-Fact-CFB225053FA2B51B9BCA8095A17DAAA7" name="us-gaap:DerivativeAssets" contextRef="FI2018Q4" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">1</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Net amount of liabilities presented</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span><ix:nonFraction id="d9062756e2498-wk-Fact-E030F7B8F30D63BBBB228095A1845071" name="us-gaap:DerivativeLiabilities" contextRef="FI2019Q4" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">23</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9062756e2517-wk-Fact-5A23CC8F9B5A52D72CE38095A184CD4B" name="us-gaap:DerivativeLiabilities" contextRef="FI2018Q4" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">106</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr></table></div><span style="font-family:inherit;font-size:10pt;"><br/></span></div></ix:nonNumeric><ix:nonNumeric contextRef="FD2019Q4YTD" name="us-gaap:ScheduleOfDerivativeInstrumentsGainLossInStatementOfFinancialPerformanceTextBlock" id="TextSelection-B6E57FCDC456CC61160D8095A1A8F4D1-0-wk-Fact-EAB8B32FD99738D0BB908095A196D59E" escape="true"><div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Information regarding the effect of derivative instruments, net of the underlying exposure, on the consolidated financial statements was as follows (in thousands):</span></div><ix:nonNumeric contextRef="FD2019Q4YTD" name="us-gaap:ScheduleOfDerivativeInstrumentsEffectOnOtherComprehensiveIncomeLossTableTextBlock" id="TextSelection-91C99287049A8E0BB26C8095A1A87322-0-wk-Fact-134AFD0DEE9BC61A7C008095A196B42D" escape="true"><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><div style="padding-left:0px;text-indent:0px;line-height:normal;padding-top:10px;"><table cellpadding="0" cellspacing="0" style="font-family:Times New Roman;font-size:10pt;width:99.80506822612085%;border-collapse:collapse;text-align:left;"><tr><td colspan="14"></td></tr><tr><td style="width:22%;"></td><td style="width:24%;"></td><td style="width:1%;"></td><td style="width:1%;"></td><td style="width:15%;"></td><td style="width:1%;"></td><td style="width:1%;"></td><td style="width:1%;"></td><td style="width:15%;"></td><td style="width:1%;"></td><td style="width:1%;"></td><td style="width:1%;"></td><td style="width:15%;"></td><td style="width:1%;"></td></tr><tr><td rowspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">&#160;</span></div></td><td rowspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;">Location in Financial Statements</span></div></td><td rowspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="11" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;">Year Ended December 31,</span></div></td></tr><tr><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;">2019</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">2018</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">2017</span></div></td></tr><tr><td colspan="14" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-style:italic;">Derivatives Designated as Hedging Instruments:</span></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Gains (losses) reclassified from accumulated other comprehensive income (loss) into current operations (effective portion)</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Revenue</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span><ix:nonFraction id="d9062756e2808-wk-Fact-E7DDFDB4060F0502F7448095A196DA3B" name="us-gaap:DerivativeInstrumentsGainLossReclassifiedFromAccumulatedOCIIntoIncomeEffectivePortionNet" contextRef="FD2019Q4YTD_us-gaap_HedgingDesignationAxis_us-gaap_DesignatedAsHedgingInstrumentMember_us-gaap_IncomeStatementLocationAxis_us-gaap_SalesRevenueGoodsNetMember" unitRef="usd" decimals="-3" scale="3" format="ixt:zerodash">&#8212;</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9062756e2827-wk-Fact-072780C402F73024DB5F8095A19001E8" name="us-gaap:DerivativeInstrumentsGainLossReclassifiedFromAccumulatedOCIIntoIncomeEffectivePortionNet" contextRef="FD2018Q4YTD_us-gaap_HedgingDesignationAxis_us-gaap_DesignatedAsHedgingInstrumentMember_us-gaap_IncomeStatementLocationAxis_us-gaap_SalesRevenueGoodsNetMember" unitRef="usd" decimals="-3" scale="3" format="ixt:zerodash">&#8212;</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9062756e2847-wk-Fact-04BCB39AE6CF52267DA58095A190FD77" name="us-gaap:DerivativeInstrumentsGainLossReclassifiedFromAccumulatedOCIIntoIncomeEffectivePortionNet" contextRef="FD2017Q4YTD_us-gaap_HedgingDesignationAxis_us-gaap_DesignatedAsHedgingInstrumentMember_us-gaap_IncomeStatementLocationAxis_us-gaap_SalesRevenueGoodsNetMember" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">30</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Research, development, and engineering expenses</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span><ix:nonFraction id="d9062756e2872-wk-Fact-855EDD003C82802058D98095A196D71F" name="us-gaap:DerivativeInstrumentsGainLossReclassifiedFromAccumulatedOCIIntoIncomeEffectivePortionNet" contextRef="FD2019Q4YTD_us-gaap_HedgingDesignationAxis_us-gaap_DesignatedAsHedgingInstrumentMember_us-gaap_IncomeStatementLocationAxis_us-gaap_ResearchAndDevelopmentExpenseMember" unitRef="usd" decimals="-3" scale="3" format="ixt:zerodash">&#8212;</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9062756e2891-wk-Fact-E42E735442ED4B384BCD8095A196083A" name="us-gaap:DerivativeInstrumentsGainLossReclassifiedFromAccumulatedOCIIntoIncomeEffectivePortionNet" contextRef="FD2018Q4YTD_us-gaap_HedgingDesignationAxis_us-gaap_DesignatedAsHedgingInstrumentMember_us-gaap_IncomeStatementLocationAxis_us-gaap_ResearchAndDevelopmentExpenseMember" unitRef="usd" decimals="-3" scale="3" format="ixt:zerodash">&#8212;</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9062756e2911-wk-Fact-1C16A8C793F910B512EA8095A19601F8" name="us-gaap:DerivativeInstrumentsGainLossReclassifiedFromAccumulatedOCIIntoIncomeEffectivePortionNet" contextRef="FD2017Q4YTD_us-gaap_HedgingDesignationAxis_us-gaap_DesignatedAsHedgingInstrumentMember_us-gaap_IncomeStatementLocationAxis_us-gaap_ResearchAndDevelopmentExpenseMember" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">3</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Selling, general, and administrative expenses</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span><ix:nonFraction id="d9062756e2941-wk-Fact-0675B881A6F6970AF9688095A1905468" name="us-gaap:DerivativeInstrumentsGainLossReclassifiedFromAccumulatedOCIIntoIncomeEffectivePortionNet" contextRef="FD2019Q4YTD_us-gaap_HedgingDesignationAxis_us-gaap_DesignatedAsHedgingInstrumentMember_us-gaap_IncomeStatementLocationAxis_us-gaap_GeneralAndAdministrativeExpenseMember" unitRef="usd" decimals="-3" scale="3" format="ixt:zerodash">&#8212;</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9062756e2960-wk-Fact-3AFCA5E0949E2B02827D8095A1966883" name="us-gaap:DerivativeInstrumentsGainLossReclassifiedFromAccumulatedOCIIntoIncomeEffectivePortionNet" contextRef="FD2018Q4YTD_us-gaap_HedgingDesignationAxis_us-gaap_DesignatedAsHedgingInstrumentMember_us-gaap_IncomeStatementLocationAxis_us-gaap_GeneralAndAdministrativeExpenseMember" unitRef="usd" decimals="-3" scale="3" format="ixt:zerodash">&#8212;</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9062756e2980-wk-Fact-3195AC4AE43498467B478095A1964912" name="us-gaap:DerivativeInstrumentsGainLossReclassifiedFromAccumulatedOCIIntoIncomeEffectivePortionNet" contextRef="FD2017Q4YTD_us-gaap_HedgingDesignationAxis_us-gaap_DesignatedAsHedgingInstrumentMember_us-gaap_IncomeStatementLocationAxis_us-gaap_GeneralAndAdministrativeExpenseMember" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">8</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Total gains (losses) reclassified from accumulated other comprehensive income (loss) into current operations</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span><ix:nonFraction id="d9062756e3015-wk-Fact-413E2E0FE174B50DCED58095A19627CD" name="us-gaap:OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIOnDerivativesNetOfTax" contextRef="FD2019Q4YTD_us-gaap_HedgingDesignationAxis_us-gaap_DesignatedAsHedgingInstrumentMember_us-gaap_IncomeStatementLocationAxis_us-gaap_CashFlowHedgingMember" unitRef="usd" decimals="-3" scale="3" format="ixt:zerodash">&#8212;</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9062756e3034-wk-Fact-4CE424E649F704C5BB668095A190EBA7" name="us-gaap:OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIOnDerivativesNetOfTax" contextRef="FD2018Q4YTD_us-gaap_HedgingDesignationAxis_us-gaap_DesignatedAsHedgingInstrumentMember_us-gaap_IncomeStatementLocationAxis_us-gaap_CashFlowHedgingMember" unitRef="usd" decimals="-3" scale="3" format="ixt:zerodash">&#8212;</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9062756e3054-wk-Fact-E41657BC1A65F3C212578095A1950850" name="us-gaap:OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIOnDerivativesNetOfTax" contextRef="FD2017Q4YTD_us-gaap_HedgingDesignationAxis_us-gaap_DesignatedAsHedgingInstrumentMember_us-gaap_IncomeStatementLocationAxis_us-gaap_CashFlowHedgingMember" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">41</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:13px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:13px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:13px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:13px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:13px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:13px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:13px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:13px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td></tr><tr><td colspan="14" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-style:italic;">Derivatives Not Designated as Hedging Instruments:</span></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Gains (losses) recognized in current operations</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Foreign currency gain (loss)</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span><ix:nonFraction id="d9062756e3227-wk-Fact-6048481774032BE1C9548095A1967E87" name="us-gaap:DerivativeGainLossOnDerivativeNet" contextRef="FD2019Q4YTD_us-gaap_HedgingDesignationAxis_us-gaap_NondesignatedMember_us-gaap_IncomeStatementLocationAxis_us-gaap_ForeignCurrencyGainLossMember" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">1,305</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>(<ix:nonFraction id="d9062756e3246-wk-Fact-1FF59CC25E7A15B4B23E8095A196C1A8" name="us-gaap:DerivativeGainLossOnDerivativeNet" contextRef="FD2018Q4YTD_us-gaap_HedgingDesignationAxis_us-gaap_NondesignatedMember_us-gaap_IncomeStatementLocationAxis_us-gaap_ForeignCurrencyGainLossMember" unitRef="usd" decimals="-3" scale="3" sign="-" format="ixt:numdotdecimal">285</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">)</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9062756e3267-wk-Fact-B563B94C74F0E8F1ACAA8095A19684AC" name="us-gaap:DerivativeGainLossOnDerivativeNet" contextRef="FD2017Q4YTD_us-gaap_HedgingDesignationAxis_us-gaap_NondesignatedMember_us-gaap_IncomeStatementLocationAxis_us-gaap_ForeignCurrencyGainLossMember" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">270</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr></table></div><span style="font-family:inherit;font-size:10pt;"><br/></span></div></ix:nonNumeric></ix:nonNumeric></ix:continuation><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div><div><br/></div><div style="text-align:center;"><div style="line-height:120%;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">60</span></div></div><hr style="page-break-after:always"></hr><div><a id="sB47121FC51565B489B4EB9DC4BA69EFF"></a></div><div><div style="line-height:120%;font-size:9pt;"><a style="font-family:inherit;font-size:9pt;" href="#sCD449198B5695D85B5494CF5DF708C26"><span style="font-family:inherit;font-size:9pt;">Table of Contents</span></a></div><div style="line-height:120%;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><br/></span></div><div style="line-height:120%;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">COGNEX CORPORATION - NOTES TO CONSOLIDATED FINANCIAL STATEMENTS</span></div></div><div><br/></div><div style="line-height:120%;padding-top:8px;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><br/></span></div><div style="line-height:120%;padding-top:8px;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">NOTE 14: <ix:nonNumeric contextRef="FD2019Q4YTD" name="us-gaap:RevenueFromContractWithCustomerTextBlock" id="TextSelection-93424D43624CA1B7BE0B8095A1A8ED71-0-wk-Fact-1E7EDC353B147F9B5C4A8095A196D37E" continuedAt="TextSelection-93424D43624CA1B7BE0B8095A1A8ED71-1" escape="true">Revenue Recognition</ix:nonNumeric></span></div><ix:continuation id="TextSelection-93424D43624CA1B7BE0B8095A1A8ED71-1"><ix:nonNumeric contextRef="FD2019Q4YTD" name="us-gaap:DisaggregationOfRevenueTableTextBlock" id="TextSelection-0F3D50274211A742BEB18095A1A8341E-0-wk-Fact-7BD2AC752E02781495328095A1977052" escape="true"><div style="line-height:120%;padding-top:8px;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><ix:nonNumeric contextRef="FD2019Q4YTD" name="us-gaap:ScheduleOfNewAccountingPronouncementsAndChangesInAccountingPrinciplesTextBlock" id="TextSelection-26CB341D4613333EE4BA8095A1A825D7-0-wk-Fact-9B9EB6B7D2C20670AC928095A197AB32" escape="true"></ix:nonNumeric>The following table summarizes disaggregated revenue information by geographic area based upon the customer's country of domicile (in thousands):</span></div><div style="line-height:120%;padding-top:8px;text-align:center;font-size:10pt;"><div style="padding-left:0px;text-indent:0px;line-height:normal;padding-top:10px;"><table cellpadding="0" cellspacing="0" style="font-family:Times New Roman;font-size:10pt;margin-left:auto;margin-right:auto;width:100%;border-collapse:collapse;text-align:left;"><tr><td colspan="13"></td></tr><tr><td style="width:61%;"></td><td style="width:1%;"></td><td style="width:1%;"></td><td style="width:10%;"></td><td style="width:1%;"></td><td style="width:1%;"></td><td style="width:1%;"></td><td style="width:10%;"></td><td style="width:1%;"></td><td style="width:1%;"></td><td style="width:1%;"></td><td style="width:10%;"></td><td style="width:1%;"></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="11" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:center;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">Year Ended December 31,</span></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">2019</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">2018</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">2017</span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Americas</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">$</span></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span><ix:nonFraction id="d9059886e820-wk-Fact-213074FAB065ACB9A0898095A196D5CD" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" contextRef="FD2019Q4YTD_srt_StatementGeographicalAxis_srt_AmericasMember" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">277,155</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9059886e839-wk-Fact-3A750AA6DD7B83023D2F8095A197E42F" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" contextRef="FD2018Q4YTD_srt_StatementGeographicalAxis_srt_AmericasMember" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">265,175</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9059886e853-wk-Fact-8D26CE03CA9EABE6CF4A8095A197EF78" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" contextRef="FD2017Q4YTD_srt_StatementGeographicalAxis_srt_AmericasMember" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">214,338</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Europe</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span><ix:nonFraction id="d9059886e879-wk-Fact-4A22F78C245DA60EE1438095A1973821" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" contextRef="FD2019Q4YTD_srt_StatementGeographicalAxis_srt_EuropeMember" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">227,738</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9059886e898-wk-Fact-A3C61C1D09BD291DC6B88095A197A9C4" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" contextRef="FD2018Q4YTD_srt_StatementGeographicalAxis_srt_EuropeMember" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">311,914</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9059886e917-wk-Fact-8FAC4E07DE74039DB1D38095A1970DBC" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" contextRef="FD2017Q4YTD_srt_StatementGeographicalAxis_srt_EuropeMember" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">328,826</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Greater China</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span><ix:nonFraction id="d9059886e943-wk-Fact-30EB577D07973FA5B10F8095A19737BE" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" contextRef="FD2019Q4YTD_srt_StatementGeographicalAxis_cgnx_GreaterChinaMember" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">115,061</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9059886e962-wk-Fact-E4401311B4DC979D24148095A1969303" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" contextRef="FD2018Q4YTD_srt_StatementGeographicalAxis_cgnx_GreaterChinaMember" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">123,708</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9059886e981-wk-Fact-0060F6986FB9683616C98095A1960597" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" contextRef="FD2017Q4YTD_srt_StatementGeographicalAxis_cgnx_GreaterChinaMember" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">108,738</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Other Asia</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span><ix:nonFraction id="d9059886e1007-wk-Fact-4FE69912D7B1475EA0638095A19700E5" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" contextRef="FD2019Q4YTD_srt_StatementGeographicalAxis_cgnx_OtherAsiaMember" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">105,671</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9059886e1026-wk-Fact-91A36C39E3EB6FF95E718095A196B4D9" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" contextRef="FD2018Q4YTD_srt_StatementGeographicalAxis_cgnx_OtherAsiaMember" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">105,541</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9059886e1045-wk-Fact-941FE048B8D453266C7C8095A196301A" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" contextRef="FD2017Q4YTD_srt_StatementGeographicalAxis_cgnx_OtherAsiaMember" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">114,181</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span><ix:nonFraction id="d9059886e1076-wk-Fact-B06BBDF776878FE4B2BC8095A17D5E83" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" contextRef="FD2019Q4YTD" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">725,625</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9059886e1095-wk-Fact-D6E1BF373058FA9CCF958095A18F656B" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" contextRef="FD2018Q4YTD" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">806,338</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9059886e1115-wk-Fact-53B0A8CFBD2030E181408095A17CDF23" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" contextRef="FD2017Q4YTD" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">766,083</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr></table></div></div><div style="line-height:120%;padding-top:8px;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">The following table summarizes disaggregated revenue information by revenue type (in thousands):</span></div><div style="line-height:120%;padding-top:8px;text-align:center;font-size:10pt;"><div style="padding-left:0px;text-indent:0px;line-height:normal;padding-top:10px;"><table cellpadding="0" cellspacing="0" style="font-family:Times New Roman;font-size:10pt;margin-left:auto;margin-right:auto;width:100%;border-collapse:collapse;text-align:left;"><tr><td colspan="13"></td></tr><tr><td style="width:61%;"></td><td style="width:1%;"></td><td style="width:1%;"></td><td style="width:10%;"></td><td style="width:1%;"></td><td style="width:1%;"></td><td style="width:1%;"></td><td style="width:10%;"></td><td style="width:1%;"></td><td style="width:1%;"></td><td style="width:1%;"></td><td style="width:10%;"></td><td style="width:1%;"></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="11" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:center;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">Year Ended December 31,</span></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">2019</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">2018</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">2017</span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Standard products and services</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">$</span></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span><ix:nonFraction id="d9059886e1297-wk-Fact-DBDB57CB139D5A7320F68095A1979DA5" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" contextRef="FD2019Q4YTD_srt_ProductOrServiceAxis_cgnx_StandardProductandServicesMember" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">629,220</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9059886e1316-wk-Fact-793112A97EA86E0EEDFE8095A1960C31" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" contextRef="FD2018Q4YTD_srt_ProductOrServiceAxis_cgnx_StandardProductandServicesMember" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">654,509</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9059886e1336-wk-Fact-21F7621435CFBE603CDA8095A1979EA8" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" contextRef="FD2017Q4YTD_srt_ProductOrServiceAxis_cgnx_StandardProductandServicesMember" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">603,196</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Application-specific customer solutions</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span><ix:nonFraction id="d9059886e1356-wk-Fact-751DC980189C3729843C8095A196F73C" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" contextRef="FD2019Q4YTD_srt_ProductOrServiceAxis_cgnx_ApplicationofCustomerSpecificSolutionsMember" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">96,405</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9059886e1375-wk-Fact-4BC7F3587AD58EBE63678095A196CDB5" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" contextRef="FD2018Q4YTD_srt_ProductOrServiceAxis_cgnx_ApplicationofCustomerSpecificSolutionsMember" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">151,829</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9059886e1394-wk-Fact-6E71E891A5850A3306828095A196184A" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" contextRef="FD2017Q4YTD_srt_ProductOrServiceAxis_cgnx_ApplicationofCustomerSpecificSolutionsMember" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">162,887</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span><ix:nonFraction id="d9059886e1425-wk-Fact-B06BBDF776878FE4B2BC8095A17D5E83" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" contextRef="FD2019Q4YTD" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">725,625</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9059886e1444-wk-Fact-D6E1BF373058FA9CCF958095A18F656B" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" contextRef="FD2018Q4YTD" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">806,338</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9059886e1464-wk-Fact-53B0A8CFBD2030E181408095A17CDF23" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" contextRef="FD2017Q4YTD" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">766,083</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr></table></div><span style="font-family:inherit;font-size:10pt;"><br/></span></div></ix:nonNumeric><div style="line-height:120%;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><br/></span></div><div style="line-height:120%;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;text-decoration:underline;">Costs to Fulfill a Contract</span></div><div style="line-height:120%;padding-top:4px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Costs to fulfill a contract are included in "Prepaid expenses and other current assets" on the Consolidated Balance Sheet and amounted to $</span><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9059886e1481-wk-Fact-33234CF73C73DB57ECEE8095A196BB58" name="us-gaap:CapitalizedContractCostGross" contextRef="FI2019Q4" unitRef="usd" decimals="0" scale="0" format="ixt:numdotdecimal">3,963,000</ix:nonFraction></span></span><span style="font-family:Arial;font-size:10pt;"> and $</span><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9059886e1485-wk-Fact-16941EBBC119C150F99D8095A197155B" name="us-gaap:CapitalizedContractCostGross" contextRef="FI2018Q4" unitRef="usd" decimals="0" scale="0" format="ixt:numdotdecimal">3,514,000</ix:nonFraction></span></span><span style="font-family:Arial;font-size:10pt;"> as of December 31, 2019 and 2018, respectively. </span></div><div style="line-height:120%;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><br/></span></div><div style="line-height:120%;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;text-decoration:underline;">Accounts Receivable, Contract Assets, and Contract Liabilities</span></div><div style="line-height:120%;padding-top:4px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Accounts receivable represent amounts billed and currently due from customers which are reported at their net estimated realizable value.  The Company maintains reserves against its accounts receivable for potential credit losses.  Credit losses recognized on accounts receivable were immaterial for the year ended December 31, 2019 and 2018.  Contract assets consist of unbilled revenue which arises when revenue is recognized in advance of billing for certain application-specific customer solutions contracts.  Contract liabilities consist of deferred revenue and customer deposits which arise when amounts are billed to or collected from customers in advance of revenue recognition.</span></div><div style="line-height:120%;padding-top:4px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><br/></span></div><ix:nonNumeric contextRef="FD2019Q4YTD" name="us-gaap:ContractWithCustomerAssetAndLiabilityTableTextBlock" id="TextSelection-3D68C9415EACC07DB64C8095A1A8A779-0-wk-Fact-08F7DD589B230F96C48B8095A1967B3F" escape="true"><div style="line-height:120%;padding-top:4px;text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">The following table summarizes the deferred revenue and customer deposits activity (in thousands):</span></div><div style="line-height:120%;padding-top:4px;text-align:center;font-size:10pt;"><div style="padding-left:0px;text-indent:0px;line-height:normal;padding-top:10px;"><table cellpadding="0" cellspacing="0" style="font-family:Times New Roman;font-size:10pt;margin-left:auto;margin-right:auto;width:100%;border-collapse:collapse;text-align:left;"><tr><td colspan="4"></td></tr><tr><td style="width:80%;"></td><td style="width:1%;"></td><td style="width:18%;"></td><td style="width:1%;"></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Amount</span></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Balance as of December 31, 2017</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9059886e1551-wk-Fact-2E8B3FDED0E0068A88A88095A18555C1" name="us-gaap:ContractWithCustomerLiabilityCurrent" contextRef="FI2017Q4" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">9,420</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Increases to deferred revenue and customer deposits</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9059886e1566-wk-Fact-B4E8053142BD465C1FD28095A185CCDE" name="us-gaap:IncreaseDecreaseInContractWithCustomerLiability" contextRef="FD2018Q4YTD" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">63,231</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Recognition of revenue</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>(<ix:nonFraction id="d9059886e1586-wk-Fact-1F8FD05353831D594FD48095A18470C2" name="us-gaap:ContractWithCustomerLiabilityRevenueRecognized" contextRef="FD2018Q4YTD" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">61,819</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">)</span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Foreign exchange rate changes</span></div></td><td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>(<ix:nonFraction id="d9059886e1607-wk-Fact-0ED7131D36F1F539D59F8095A18493DD" name="cgnx:ContractLiabilityForeignExchangeRateChanges" contextRef="FD2018Q4YTD" unitRef="usd" decimals="-3" scale="3" sign="-" format="ixt:numdotdecimal">987</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">)</span></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Balance as of December 31, 2018</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9059886e1628-wk-Fact-2F24B1342D743CBA5DE98095A1878266" name="us-gaap:ContractWithCustomerLiabilityCurrent" contextRef="FI2018Q4" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">9,845</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Increases to deferred revenue and customer deposits</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9059886e1648-wk-Fact-5B58CBFB810AB390D34C8095A184C311" name="us-gaap:IncreaseDecreaseInContractWithCustomerLiability" contextRef="FD2019Q4YTD" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">53,422</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Recognition of revenue</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>(<ix:nonFraction id="d9059886e1668-wk-Fact-3D54B02470B2763C48368095A184CB52" name="us-gaap:ContractWithCustomerLiabilityRevenueRecognized" contextRef="FD2019Q4YTD" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">48,730</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">)</span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Foreign exchange rate changes</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>(<ix:nonFraction id="d9059886e1689-wk-Fact-DA7DF815FE3C0F4EC3F88095A1851978" name="cgnx:ContractLiabilityForeignExchangeRateChanges" contextRef="FD2019Q4YTD" unitRef="usd" decimals="-3" scale="3" sign="-" format="ixt:numdotdecimal">105</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">)</span></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Balance as of December 31, 2019</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span><ix:nonFraction id="d9059886e1715-wk-Fact-B00B536426D8C662A8C08095A18D619F" name="us-gaap:ContractWithCustomerLiabilityCurrent" contextRef="FI2019Q4" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">14,432</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr></table></div><span style="font-family:inherit;font-size:10pt;"><br/></span></div></ix:nonNumeric><div style="line-height:120%;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><br/></span></div><div style="line-height:120%;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">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><br/></div><div style="text-align:center;"><div style="line-height:120%;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">61</span></div></div><hr style="page-break-after:always"></hr><div><a id="sE3434CF699575287A8C36035DC9CF6EF"></a></div><div><div style="line-height:120%;font-size:9pt;"><a style="font-family:inherit;font-size:9pt;" href="#sCD449198B5695D85B5494CF5DF708C26"><span style="font-family:inherit;font-size:9pt;">Table of Contents</span></a></div><div style="line-height:120%;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><br/></span></div><div style="line-height:120%;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">COGNEX CORPORATION - NOTES TO CONSOLIDATED FINANCIAL STATEMENTS</span></div></div><div><br/></div><div style="line-height:120%;padding-top:12px;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">NOTE 15:&#160;&#160;<ix:nonNumeric contextRef="FD2019Q4YTD" name="us-gaap:StockholdersEquityNoteDisclosureTextBlock" id="TextSelection-0B819C386B62EE5D909F8095A1A811D4-0-wk-Fact-7FB98D7CF87A9E5612E88095A190B945" continuedAt="TextSelection-0B819C386B62EE5D909F8095A1A811D4-1" escape="true">Shareholders&#8217; Equity</ix:nonNumeric></span></div><ix:continuation id="TextSelection-0B819C386B62EE5D909F8095A1A811D4-1"><div style="line-height:120%;padding-top:6px;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;text-decoration:underline;">Preferred Stock</span></div><div style="line-height:120%;padding-top:6px;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">The Company has </span><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9063996e646-wk-Fact-13FCF98A50558CE5F0A1F3CFA6AF6F0A" name="us-gaap:PreferredStockSharesAuthorized" contextRef="FI2019Q4" unitRef="shares" decimals="INF" scale="0" format="ixt:numdotdecimal">400,000</ix:nonFraction></span></span><span style="font-family:Arial;font-size:10pt;"> shares of authorized but unissued </span><span style="font-family:Arial;font-size:10pt;"><span>$<ix:nonFraction id="d9063996e650-wk-Fact-396187459BD05201E354F3CF59DBAE21" name="us-gaap:PreferredStockParOrStatedValuePerShare" contextRef="FI2019Q4" unitRef="usdPerShare" decimals="INF" scale="0">.01</ix:nonFraction></span></span><span style="font-family:Arial;font-size:10pt;"> par value preferred stock.</span></div><div style="line-height:120%;padding-top:12px;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;text-decoration:underline;">Common Stock</span></div><div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">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 common stock from </span><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9063996e660-wk-Fact-CE00FD8CF297DDEE40E18095A17BD59B" name="us-gaap:CommonStockSharesAuthorized" contextRef="I2016Q2Apr27" unitRef="shares" decimals="INF" scale="0" format="ixt:numdotdecimal">200,000,000</ix:nonFraction></span></span><span style="font-family:Arial;font-size:10pt;"> to </span><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9063996e664-wk-Fact-B2BCE3ABDEEB64ABCE948095A196FCE5" name="us-gaap:CommonStockSharesAuthorized" contextRef="I2018Q2Apr25" unitRef="shares" decimals="INF" scale="0" format="ixt:numdotdecimal">300,000,000</ix:nonFraction></span></span><span style="font-family:Arial;font-size:10pt;">. 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 </span><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9063996e668-wk-Fact-7A3D2F8B39099EE901608095A18F3C56" name="us-gaap:CommonStockSharesAuthorized" contextRef="I2016Q2Apr28" unitRef="shares" decimals="INF" scale="0" format="ixt:numdotdecimal">10,000,000</ix:nonFraction></span></span><span style="font-family:Arial;font-size:10pt;">.</span></div><div style="line-height:120%;text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><br/></span></div><div style="line-height:120%;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">In October 2017, the Company&#8217;s Board of Directors declared a </span><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9063996e677-wk-Fact-EC62EB017CF9BAF4FFF88095A19655C2" name="us-gaap:StockholdersEquityNoteStockSplitConversionRatio1" contextRef="D2017Q4SD" unitRef="number" decimals="INF" scale="0" format="ixt-sec:numwordsen">two</ix:nonFraction></span></span><span style="font-family:Arial;font-size:10pt;">-for-one stock split, effected in the form of a stock dividend, on the shares of the Company&#8217;s common stock.  Each shareholder of record on November&#160;17, 2017 received an additional share of common stock for each share of common stock then held.  The stock was distributed on December&#160;1, 2017.  The Company retained the current par value of </span><span style="font-family:Arial;font-size:10pt;"><span>$<ix:nonFraction id="d9063996e681-wk-Fact-378D72E0C415922DB1358095A1967402" name="us-gaap:CommonStockParOrStatedValuePerShare" contextRef="I2017Q4Oct" unitRef="usdPerShare" decimals="INF" scale="0">.002</ix:nonFraction></span></span><span style="font-family:Arial;font-size:10pt;"> per share for all shares of common stock.  All references in the financial statements to the number of shares outstanding, number of shares repurchased, per-share amounts, and stock option data related to the Company&#8217;s common stock have been adjusted to reflect the effect of the stock split for all periods presented.  Shareholders&#8217; equity reflects the stock split by reclassifying from &#8220;Additional paid in capital&#8221; and "Retained earnings" to &#8220;Common stock&#8221; an amount equal to the par value of the additional shares arising from the split.</span></div><div style="line-height:120%;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><br/></span></div><div style="line-height:120%;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Each outstanding share of common stock entitles the record holder to </span><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9063996e690-wk-Fact-E72FE0C73EA6AD838CDF8095A1962EE0" name="cgnx:VoteEntitledForEachCommonShareOutstanding" contextRef="FI2019Q4" unitRef="Vote" decimals="INF" scale="0" format="ixt-sec:numwordsen">one</ix:nonFraction></span></span><span style="font-family:Arial;font-size:10pt;"> 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="line-height:120%;padding-top:8px;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;text-decoration:underline;">Shareholder Rights Agreement</span></div><div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">On December 5, 2018, the Company&#8217;s Board of Directors allowed the Company&#8217;s Shareholder Rights Agreement and associated rights to expire in accordance with their terms without renewal. In connection with the adoption of the Shareholder Rights Agreement, the Company had filed Articles of Amendment to its Restated Articles of Organization establishing Series E Junior Participating Cumulative Preferred Stock with the Secretary of State of The Commonwealth of Massachusetts, setting forth the rights, powers, and preferences of the Series E Junior Participating Cumulative Preferred Stock issuable upon exercise of the rights (the &#8220;Preferred Shares&#8221;). Effective on April 26, 2019, the Company filed Articles of Amendment to the Company&#8217;s Restated Articles of Organization with the Secretary of State of The Commonwealth of Massachusetts eliminating the Preferred Shares and returning them to authorized but undesignated shares of the Company&#8217;s preferred stock.</span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;text-decoration:underline;">Stock Repurchases</span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">In April 2017, the Company's Board of Directors authorized the repurchase of </span><span style="font-family:Arial;font-size:10pt;"><span>$<ix:nonFraction id="d9063996e707-wk-Fact-9318604D3FAC8823EF228095A1971714" name="us-gaap:StockRepurchaseProgramAuthorizedAmount1" contextRef="I2017Q2Apr12_us-gaap_ShareRepurchaseProgramAxis_cgnx_RepurchaseProgramTwentyFifteenMember" unitRef="usd" decimals="INF" scale="0" format="ixt:numdotdecimal">100,000,000</ix:nonFraction></span></span><span style="font-family:Arial;font-size:10pt;"> of the Company's common stock.  The Company repurchased </span><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9063996e711-wk-Fact-B804FC9763455F8D05198095A195843A" name="cgnx:Totalsharesrepurchased" contextRef="FD2018Q1QTD_us-gaap_ShareRepurchaseProgramAxis_cgnx_RepurchaseProgram2014Member" unitRef="shares" decimals="0" scale="0" format="ixt:numdotdecimal">1,744,000</ix:nonFraction></span></span><span style="font-family:Arial;font-size:10pt;"> shares at a cost of </span><span style="font-family:Arial;font-size:10pt;"><span>$<ix:nonFraction id="d9063996e715-wk-Fact-C1EA680E3AB57F5B063C8095A196AB98" name="cgnx:Repurchasedsharestotalcost" contextRef="FD2018Q1QTD_us-gaap_ShareRepurchaseProgramAxis_cgnx_RepurchaseProgram2014Member_us-gaap_StatementClassOfStockAxis_us-gaap_CommonStockMember" unitRef="usd" decimals="0" scale="0" format="ixt:numdotdecimal">100,000,000</ix:nonFraction></span></span><span style="font-family:Arial;font-size:10pt;"> under this April 2017 program, including </span><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9063996e719-wk-Fact-63A8DE95D191EE2E95D48095A196CC0A" name="us-gaap:StockRepurchasedDuringPeriodShares" contextRef="FD2018Q1QTD_us-gaap_ShareRepurchaseProgramAxis_cgnx_RepurchaseProgram2014Member" unitRef="shares" decimals="INF" scale="0" format="ixt:numdotdecimal">803,000</ix:nonFraction></span></span><span style="font-family:Arial;font-size:10pt;"> shares at a cost of </span><span style="font-family:Arial;font-size:10pt;"><span>$<ix:nonFraction id="d9063996e723-wk-Fact-C59C9996D4F8A7C5F8E98095A196BE57" name="us-gaap:StockRepurchasedDuringPeriodValue" contextRef="FD2018Q1QTD_us-gaap_ShareRepurchaseProgramAxis_cgnx_RepurchaseProgram2014Member" unitRef="usd" decimals="0" scale="0" format="ixt:numdotdecimal">45,200,000</ix:nonFraction></span></span><span style="font-family:Arial;font-size:10pt;"> in 2018.  In February 2018, the Company's Board of Directors authorized the repurchase of </span><span style="font-family:Arial;font-size:10pt;"><span>$<ix:nonFraction id="d9063996e728-wk-Fact-BF9CE8630FCC00405C8B8095A18F9994" name="us-gaap:StockRepurchaseProgramAuthorizedAmount1" contextRef="I2018Q1Feb.28_us-gaap_ShareRepurchaseProgramAxis_cgnx_RepurchaseProgramNovember2015Member" unitRef="usd" decimals="INF" scale="0" format="ixt:numdotdecimal">150,000,000</ix:nonFraction></span></span><span style="font-family:Arial;font-size:10pt;"> of the Company's common stock.  The Company repurchased </span><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9063996e732-wk-Fact-843028F7EDF9A04043DE8095A190ACE6" name="us-gaap:StockRepurchasedDuringPeriodShares" contextRef="D2018Q1Feb.1-28_us-gaap_ShareRepurchaseProgramAxis_cgnx_RepurchaseProgramTwentyFifteenMember" unitRef="shares" decimals="INF" scale="0" format="ixt:numdotdecimal">3,174,000</ix:nonFraction></span></span><span style="font-family:Arial;font-size:10pt;"> shares at a cost of </span><span style="font-family:Arial;font-size:10pt;"><span>$<ix:nonFraction id="d9063996e736-wk-Fact-29F71F6AC4552CAB9A798095A1906978" name="us-gaap:StockRepurchasedDuringPeriodValue" contextRef="D2018Q1Feb.1-28_us-gaap_ShareRepurchaseProgramAxis_cgnx_RepurchaseProgramTwentyFifteenMember" unitRef="usd" decimals="0" scale="0" format="ixt:numdotdecimal">150,000,000</ix:nonFraction></span></span><span style="font-family:Arial;font-size:10pt;"> in 2018 under this February 2018 program.  In October 2018, the Company's Board of Directors authorized the repurchase of </span><span style="font-family:Arial;font-size:10pt;"><span>$<ix:nonFraction id="d9063996e740-wk-Fact-E6902076864C61586A768095A17B3BF3" name="us-gaap:StockRepurchaseProgramAuthorizedAmount1" contextRef="FI2018Q3_us-gaap_ShareRepurchaseProgramAxis_cgnx_RepurchaseProgramNovember2015Member" unitRef="usd" decimals="INF" scale="0" format="ixt:numdotdecimal">200,000,000</ix:nonFraction></span></span><span style="font-family:Arial;font-size:10pt;"> of the Company's common stock.  The Company repurchased </span><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9063996e744-wk-Fact-696F9C3556836D789984168367BE8CE4" name="us-gaap:StockRepurchasedDuringPeriodShares" contextRef="FD2018Q4YTD_us-gaap_ShareRepurchaseProgramAxis_cgnx_RepurchaseProgramOctober2018Member" unitRef="shares" decimals="INF" scale="0" format="ixt:numdotdecimal">203,000</ix:nonFraction></span></span><span style="font-family:Arial;font-size:10pt;"> shares at a cost of </span><span style="font-family:Arial;font-size:10pt;"><span>$<ix:nonFraction id="d9063996e748-wk-Fact-E56F6489602FC67452DB168492FA0147" name="us-gaap:StockRepurchasedDuringPeriodValue" contextRef="FD2018Q4YTD_us-gaap_ShareRepurchaseProgramAxis_cgnx_RepurchaseProgramOctober2018Member" unitRef="usd" decimals="0" scale="0" format="ixt:numdotdecimal">8,622,000</ix:nonFraction></span></span><span style="font-family:Arial;font-size:10pt;"> in 2018 under this October 2018 program.  Total stock repurchases amounted to </span><span style="font-family:Arial;font-size:10pt;"><span>$<ix:nonFraction id="d9063996e753-wk-Fact-11FD1439B907C786688C168536A52EED" name="us-gaap:StockRepurchasedDuringPeriodValue" contextRef="FD2018Q4YTD" unitRef="usd" decimals="0" scale="0" format="ixt:numdotdecimal">203,822,000</ix:nonFraction></span></span><span style="font-family:Arial;font-size:10pt;"> in 2018.  The Company repurchased </span><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9063996e757-wk-Fact-1ED6671C4C0BC70B6EA616866E761C95" name="us-gaap:StockRepurchasedDuringPeriodShares" contextRef="FD2019Q4YTD_us-gaap_ShareRepurchaseProgramAxis_cgnx_RepurchaseProgramOctober2018Member" unitRef="shares" decimals="INF" scale="0" format="ixt:numdotdecimal">1,398,000</ix:nonFraction></span></span><span style="font-family:Arial;font-size:10pt;"> shares at a cost of </span><span style="font-family:Arial;font-size:10pt;"><span>$<ix:nonFraction id="d9063996e761-wk-Fact-2F9FC3DCDA671D023B62168731E226AD" name="us-gaap:StockRepurchasedDuringPeriodValue" contextRef="FD2019Q4YTD_us-gaap_ShareRepurchaseProgramAxis_cgnx_RepurchaseProgramOctober2018Member" unitRef="usd" decimals="0" scale="0" format="ixt:numdotdecimal">61,690,000</ix:nonFraction></span></span><span style="font-family:Arial;font-size:10pt;"> in 2019 under this October 2018 program. As of December 31, 2019, the Company repurchased </span><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9063996e765-wk-Fact-EFC20982A5632D8405018095A18F2F71" name="us-gaap:StockRepurchasedDuringPeriodShares" contextRef="FD2019Q4YTD_us-gaap_ShareRepurchaseProgramAxis_cgnx_RepurchaseProgramTwentyFifteenMember" unitRef="shares" decimals="INF" scale="0" format="ixt:numdotdecimal">1,601,000</ix:nonFraction></span></span><span style="font-family:Arial;font-size:10pt;"> shares at a cost of </span><span style="font-family:Arial;font-size:10pt;"><span>$<ix:nonFraction id="d9063996e769-wk-Fact-C207D729DE7C19507F648095A17B462D" name="us-gaap:StockRepurchasedDuringPeriodValue" contextRef="FD2019Q4YTD_us-gaap_ShareRepurchaseProgramAxis_cgnx_RepurchaseProgramTwentyFifteenMember" unitRef="usd" decimals="0" scale="0" format="ixt:numdotdecimal">70,312,000</ix:nonFraction></span></span><span style="font-family:Arial;font-size:10pt;"> under this October 2018 program, leaving a remaining balance of </span><span style="font-family:Arial;font-size:10pt;"><span>$<ix:nonFraction id="d9063996e774-wk-Fact-2DCA1AC493246BCB87268095A17B70BD" name="us-gaap:StockRepurchaseProgramAuthorizedAmount1" contextRef="FI2019Q4_us-gaap_ShareRepurchaseProgramAxis_cgnx_RepurchaseProgramOctober2018Member" unitRef="usd" decimals="0" scale="0" format="ixt:numdotdecimal">129,688,000</ix:nonFraction></span></span><span style="font-family:Arial;font-size:10pt;">.  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.</span></div><div style="line-height:120%;padding-top:12px;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;text-decoration:underline;">Dividends</span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">The Company&#8217;s Board of Directors declared and paid cash dividends of </span><span style="font-family:Arial;font-size:10pt;"><span>$<ix:nonFraction id="d9063996e784-wk-Fact-0E85B296BF36F5FA0ED58095A190651C" name="us-gaap:CommonStockDividendsPerShareDeclared" contextRef="FD2018Q3YTD" unitRef="usdPerShare" decimals="3" scale="0" format="ixt:numdotdecimal">0.045</ix:nonFraction></span></span><span style="font-family:Arial;font-size:10pt;"> per share in the first, second, and third quarters of 2018, and </span><span style="font-family:Arial;font-size:10pt;"><span>$<ix:nonFraction id="d9063996e788-wk-Fact-781B30E0639EE4F094828095A1973FEA" name="us-gaap:CommonStockDividendsPerShareDeclared" contextRef="FD2019Q3YTD" unitRef="usdPerShare" decimals="4" scale="0" format="ixt:numdotdecimal">0.050</ix:nonFraction></span></span><span style="font-family:Arial;font-size:10pt;"> in the fourth quarter of 2018, as well as in the first, second, and third quarters of 2019. The dividend was increased to </span><span style="font-family:Arial;font-size:10pt;"><span>$<ix:nonFraction id="d9063996e792-wk-Fact-32D4F319771EF486A2AC8095A190C9F6" name="us-gaap:CommonStockDividendsPerShareDeclared" contextRef="FD2019Q4QTD" unitRef="usdPerShare" decimals="4" scale="0" format="ixt:numdotdecimal">0.055</ix:nonFraction></span></span><span style="font-family:Arial;font-size:10pt;"> per share in the fourth quarter of 2019.  Total dividends amounted to </span><span style="font-family:Arial;font-size:10pt;"><span>$<ix:nonFraction id="d9063996e796-wk-Fact-91D8B3DBBB2B71804D578095A19028B7" name="us-gaap:PaymentsOfDividends" contextRef="FD2019Q4YTD" unitRef="usd" decimals="0" scale="0" format="ixt:numdotdecimal">35,124,000</ix:nonFraction></span></span><span style="font-family:Arial;font-size:10pt;"> and </span><span style="font-family:Arial;font-size:10pt;"><span>$<ix:nonFraction id="d9063996e800-wk-Fact-98A70D118C453FBAFB1F8095A1976BC7" name="us-gaap:PaymentsOfDividends" contextRef="FD2018Q4YTD" unitRef="usd" decimals="0" scale="0" format="ixt:numdotdecimal">31,865,000</ix:nonFraction></span></span><span style="font-family:Arial;font-size:10pt;"> in 2019 and 2018, respectively.  Future dividends will be declared at the discretion of the Company's Board of Directors and will depend upon 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><br/></div><div style="text-align:center;"><div style="line-height:120%;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">62</span></div></div><hr style="page-break-after:always"></hr><div><a id="sC3D11AEC6D8850E58070C70BCBA1294D"></a></div><div><div style="line-height:120%;font-size:9pt;"><a style="font-family:inherit;font-size:9pt;" href="#sCD449198B5695D85B5494CF5DF708C26"><span style="font-family:inherit;font-size:9pt;">Table of Contents</span></a></div><div style="line-height:120%;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><br/></span></div><div style="line-height:120%;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">COGNEX CORPORATION - NOTES TO CONSOLIDATED FINANCIAL STATEMENTS</span></div></div><div><br/></div><div style="line-height:120%;padding-top:12px;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">NOTE 16:&#160;&#160;<ix:nonNumeric contextRef="FD2019Q4YTD" name="us-gaap:DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock" id="TextSelection-AA44B4D0A9D50AC75D448095A1A887F1-0-wk-Fact-B3F1860182D79EC2DD8B8095A197ADA8" continuedAt="TextSelection-AA44B4D0A9D50AC75D448095A1A887F1-1" escape="true">Stock-Based Compensation</ix:nonNumeric></span></div><ix:continuation id="TextSelection-AA44B4D0A9D50AC75D448095A1A887F1-1" continuedAt="TextSelection-AA44B4D0A9D50AC75D448095A1A887F1-2"><div style="line-height:120%;padding-top:6px;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;text-decoration:underline;">Stock Plans</span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">The Company&#8217;s stock-based awards that result in compensation expense consist of stock options and restricted stock units (RSUs).  As of December&#160;31, </span><span style="font-family:Arial;font-size:10pt;">2019</span><span style="font-family:Arial;font-size:10pt;">, the Company had </span><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9067284e650-wk-Fact-0D4573E0C663496D8B9A8095A197212A" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant" contextRef="FI2019Q4_us-gaap_AwardTypeAxis_us-gaap_EmployeeStockOptionMember" unitRef="shares" decimals="0" scale="0" format="ixt:numdotdecimal">17,300,802</ix:nonFraction></span></span><span style="font-family:Arial;font-size:10pt;"> shares available for grant.  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><span style="font-family:Arial;font-size:10pt;">four</span><span style="font-family:Arial;font-size:10pt;"> or </span><span style="font-family:Arial;font-size:10pt;"><span><ix:nonNumeric id="d9067284e658-wk-Fact-E3CC7E131F5D2C48C11517BDF702D6E8" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1" contextRef="FD2019Q4YTD_srt_RangeAxis_srt_MaximumMember_us-gaap_AwardTypeAxis_us-gaap_EmployeeStockOptionMember" format="ixt-sec:durwordsen">five years</ix:nonNumeric></span></span><span style="font-family:Arial;font-size:10pt;"> based upon continuous employment and expire </span><span style="font-family:Arial;font-size:10pt;"><span><ix:nonNumeric id="d9067284e662-wk-Fact-09268AB2B7B8FF060CA017AE4418E828" name="cgnx:ExpirationPeriodOfStockOptionPlan" contextRef="FD2019Q4YTD_us-gaap_AwardTypeAxis_us-gaap_EmployeeStockOptionMember" format="ixt-sec:durwordsen">ten years</ix:nonNumeric></span></span><span style="font-family:Arial;font-size:10pt;"> from the grant date.  RSUs generally vest upon </span><span style="font-family:Arial;font-size:10pt;"><span><ix:nonNumeric id="d9067284e667-wk-Fact-2B2DAC187665D77778D117BEFB73010D" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1" contextRef="FD2019Q4YTD_srt_RangeAxis_srt_MinimumMember_us-gaap_AwardTypeAxis_us-gaap_PerformanceSharesMember" format="ixt-sec:durwordsen">three years</ix:nonNumeric></span></span><span style="font-family:Arial;font-size:10pt;"> of continuous employment or incrementally over such </span><span style="font-family:Arial;font-size:10pt;">three</span><span style="font-family:Arial;font-size:10pt;">-year period.  Participants are not entitled to dividends on RSUs.</span></div><div style="line-height:120%;padding-top:6px;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;text-decoration:underline;">Stock Options</span></div><ix:nonNumeric contextRef="FD2019Q4YTD" name="us-gaap:ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock" id="TextSelection-4AEA1A0B44AE73DB512A8095A1A843B3-0-wk-Fact-379071BD14013535CACE8095A197EBE5" escape="true"><div style="line-height:120%;padding-top:6px;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">The following table summarizes the Company&#8217;s stock option activity:</span></div><div style="line-height:120%;padding-bottom:6px;font-size:10pt;"><div style="padding-left:0px;text-indent:0px;line-height:normal;padding-top:10px;"><table cellpadding="0" cellspacing="0" style="font-family:Times New Roman;font-size:10pt;width:99.80506822612085%;border-collapse:collapse;text-align:left;"><tr><td colspan="13"></td></tr><tr><td style="width:45%;"></td><td style="width:12%;"></td><td style="width:1%;"></td><td style="width:1%;"></td><td style="width:1%;"></td><td style="width:11%;"></td><td style="width:1%;"></td><td style="width:1%;"></td><td style="width:13%;"></td><td style="width:1%;"></td><td style="width:1%;"></td><td style="width:11%;"></td><td style="width:1%;"></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;">Shares</span></div><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;">(in&#160;thousands)</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;">Weighted-</span></div><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;">Average</span></div><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;">Exercise</span></div><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;">Price</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;">Weighted-</span></div><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;">Average</span></div><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;">Remaining</span></div><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;">Contractual</span></div><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;">Term</span></div><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;">(in&#160;years)</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;">Aggregate</span></div><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;">Intrinsic Value</span></div><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;">(in&#160;thousands)</span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Outstanding as of December 31, 2018</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9067284e819-wk-Fact-97572658C8D3154CA5058095A17A5144" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber" contextRef="FI2018Q4" unitRef="shares" decimals="-3" scale="3" format="ixt:numdotdecimal">13,789</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9067284e838-wk-Fact-1B9568B256756DC118A68095A17AAC16" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice" contextRef="FI2018Q4" unitRef="usdPerShare" decimals="2" scale="0" format="ixt:numdotdecimal">31.73</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td></tr><tr><td style="vertical-align:top;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Granted</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9067284e884-wk-Fact-4D7E94755C990C390A408095A173EA9F" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriod" contextRef="FD2019Q4YTD" unitRef="shares" decimals="-3" scale="3" format="ixt:numdotdecimal">2,990</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9067284e898-wk-Fact-8BD6C22077187A5A8FC88095A17B8343" name="us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice" contextRef="FD2019Q4YTD" unitRef="usdPerShare" decimals="2" scale="0" format="ixt:numdotdecimal">51.25</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Exercised</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>(<ix:nonFraction id="d9067284e949-wk-Fact-9C5970694FF991A7378D8095A17B2672" name="us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised" contextRef="FD2019Q4YTD" unitRef="shares" decimals="-3" scale="3" format="ixt:numdotdecimal">3,018</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">)</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9067284e964-wk-Fact-A565EAAA387AD7E337BC8095A1733708" name="us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice" contextRef="FD2019Q4YTD" unitRef="usdPerShare" decimals="2" scale="0" format="ixt:numdotdecimal">21.40</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td></tr><tr><td style="vertical-align:top;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Forfeited or expired</span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>(<ix:nonFraction id="d9067284e1015-wk-Fact-361ABC215FE51461025E8095A1739BB3" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriod" contextRef="FD2019Q4YTD" unitRef="shares" decimals="-3" scale="3" format="ixt:numdotdecimal">862</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">)</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9067284e1030-wk-Fact-01ADABDA2C10F8E4D8DD8095A17422CF" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriodWeightedAverageExercisePrice" contextRef="FD2019Q4YTD" unitRef="usdPerShare" decimals="2" scale="0" format="ixt:numdotdecimal">42.53</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Outstanding as of December 31, 2019</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span><ix:nonFraction id="d9067284e1081-wk-Fact-00E745319299B85BFCFA8095A17ABE47" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber" contextRef="FI2019Q4" unitRef="shares" decimals="-3" scale="3" format="ixt:numdotdecimal">12,899</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span><ix:nonFraction id="d9067284e1100-wk-Fact-60DC33EEB4FFC18063A28095A1727D9E" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice" contextRef="FI2019Q4" unitRef="usdPerShare" decimals="2" scale="0" format="ixt:numdotdecimal">37.95</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span><ix:nonNumeric id="d9067284e1114-wk-Fact-EC62ADE42EC135C99DEE8095A174E23A" name="us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2" contextRef="FD2019Q4YTD" format="ixt-sec:duryear">7.14</ix:nonNumeric></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span><ix:nonFraction id="d9067284e1130-wk-Fact-6BB9C1CAA61DFDE967A38095A173E952" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue" contextRef="FI2019Q4" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">236,318</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Exercisable as of December 31, 2019</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span><ix:nonFraction id="d9067284e1145-wk-Fact-CF20D9917A14B58B26198095A17BDE56" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber" contextRef="FI2019Q4" unitRef="shares" decimals="-3" scale="3" format="ixt:numdotdecimal">4,775</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span><ix:nonFraction id="d9067284e1164-wk-Fact-EA2B753FB7A9CE727B938095A17BCB48" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice" contextRef="FI2019Q4" unitRef="usdPerShare" decimals="2" scale="0" format="ixt:numdotdecimal">26.67</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;border-top:3px double #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span><ix:nonNumeric id="d9067284e1178-wk-Fact-F91CBE4B59B9BC6C19848095A17BA3B9" name="us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1" contextRef="FD2019Q4YTD" format="ixt-sec:duryear">5.61</ix:nonNumeric></span></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span><ix:nonFraction id="d9067284e1194-wk-Fact-4CFE5DB009DD82994C538095A17ABCFC" name="cgnx:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableAggregateIntrinsicValue" contextRef="FI2019Q4" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">141,277</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Options vested or expected to vest as of&#160;<br/>&#160;December 31, 2019 (1)</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span><ix:nonFraction id="d9067284e1209-wk-Fact-0C396A2385B5F620C17D8095A17B5DFC" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableNumber" contextRef="FI2019Q4" unitRef="shares" decimals="-3" scale="3" format="ixt:numdotdecimal">11,724</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span><ix:nonFraction id="d9067284e1228-wk-Fact-1A1921D0C01C7C0B63BF8095A173BD61" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice" contextRef="FI2019Q4" unitRef="usdPerShare" decimals="2" scale="0" format="ixt:numdotdecimal">36.84</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span><ix:nonNumeric id="d9067284e1242-wk-Fact-D2DB7DD75B5D4146C68E8095A17A065B" name="us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1" contextRef="FD2019Q4YTD" format="ixt-sec:duryear">7.00</ix:nonNumeric></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span><ix:nonFraction id="d9067284e1258-wk-Fact-94D8976DF7B0D6B042EB8095A17BDC47" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue" contextRef="FI2019Q4" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">227,779</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr></table></div></div><div style="line-height:120%;padding-left:4px;padding-top:12px;text-align:left;padding-left:48px;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">(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="FD2019Q4YTD" name="us-gaap:ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock" id="TextSelection-104D78C2DA4854E289F28095A1A84656-0-wk-Fact-7B9416A49B1CA6CA303D8095A19781B9" escape="true"><div style="line-height:120%;padding-top:6px;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">The fair values of stock options granted in each period presented were estimated using the following weighted-average assumptions:</span></div><div style="line-height:120%;font-size:10pt;"><div style="padding-left:0px;text-indent:0px;line-height:normal;padding-top:10px;"><table cellpadding="0" cellspacing="0" style="font-family:Times New Roman;font-size:10pt;width:99.80506822612085%;border-collapse:collapse;text-align:left;"><tr><td colspan="9"></td></tr><tr><td style="width:56%;"></td><td style="width:13%;"></td><td style="width:1%;"></td><td style="width:1%;"></td><td style="width:13%;"></td><td style="width:1%;"></td><td style="width:1%;"></td><td style="width:13%;"></td><td style="width:1%;"></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;color:#ee2724;">&#160;</span></div></td><td colspan="8" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;">Year&#160;Ended&#160;December&#160;31,</span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;color:#ee2724;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;">2019</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">2018</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">2017</span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Risk-free rate</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span><ix:nonFraction id="d9067284e1408-wk-Fact-92667450E2EAC79122768095A17259E0" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate" contextRef="FD2019Q4YTD_us-gaap_AwardTypeAxis_us-gaap_EmployeeStockOptionMember" unitRef="number" decimals="3" scale="-2" format="ixt:numdotdecimal">2.7</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">%</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9067284e1423-wk-Fact-1190217AAFAB5FD88B628095A173DF21" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate" contextRef="FD2018Q4YTD_us-gaap_AwardTypeAxis_us-gaap_EmployeeStockOptionMember" unitRef="number" decimals="3" scale="-2" format="ixt:numdotdecimal">2.9</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">%</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9067284e1438-wk-Fact-A3486C076DC971DA8ECA8095A1720A8E" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate" contextRef="FD2017Q4YTD_us-gaap_AwardTypeAxis_us-gaap_EmployeeStockOptionMember" unitRef="number" decimals="3" scale="-2" format="ixt:numdotdecimal">2.4</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">%</span></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Expected dividend yield</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span><ix:nonFraction id="d9067284e1454-wk-Fact-F0836FE90A4C4EF6E4DD8095A17200F9" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate" contextRef="FD2019Q4YTD_us-gaap_AwardTypeAxis_us-gaap_EmployeeStockOptionMember" unitRef="number" decimals="4" scale="-2" format="ixt:numdotdecimal">0.39</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">%</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9067284e1469-wk-Fact-402A7511416E81FC23208095A174E2A8" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate" contextRef="FD2018Q4YTD_us-gaap_AwardTypeAxis_us-gaap_EmployeeStockOptionMember" unitRef="number" decimals="4" scale="-2" format="ixt:numdotdecimal">0.35</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">%</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9067284e1484-wk-Fact-EDD8A4950308BD8888C38095A1722533" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate" contextRef="FD2017Q4YTD_us-gaap_AwardTypeAxis_us-gaap_EmployeeStockOptionMember" unitRef="number" decimals="4" scale="-2" format="ixt:numdotdecimal">0.40</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">%</span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Expected volatility</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span><ix:nonFraction id="d9067284e1500-wk-Fact-8A028D399687A78606F88095A173F04C" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate" contextRef="FD2019Q4YTD_us-gaap_AwardTypeAxis_us-gaap_EmployeeStockOptionMember" unitRef="number" decimals="2" scale="-2" format="ixt:numdotdecimal">37</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">%</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9067284e1515-wk-Fact-6CDC72D2CB86A6E21D098095A1732436" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate" contextRef="FD2018Q4YTD_us-gaap_AwardTypeAxis_us-gaap_EmployeeStockOptionMember" unitRef="number" decimals="2" scale="-2" format="ixt:numdotdecimal">39</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">%</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9067284e1530-wk-Fact-FCAF94BA08017D24C8C88095A1713246" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate" contextRef="FD2017Q4YTD_us-gaap_AwardTypeAxis_us-gaap_EmployeeStockOptionMember" unitRef="number" decimals="2" scale="-2" format="ixt:numdotdecimal">41</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">%</span></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Expected term (in years)</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span><ix:nonNumeric id="d9067284e1546-wk-Fact-4DE48D1C89EEEDDB0AC68095A17372E9" name="us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1" contextRef="FD2019Q4YTD_us-gaap_AwardTypeAxis_us-gaap_EmployeeStockOptionMember" format="ixt-sec:duryear">5.3</ix:nonNumeric></span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonNumeric id="d9067284e1560-wk-Fact-8190BACB5C69A046BCC88095A171498B" name="us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1" contextRef="FD2018Q4YTD_us-gaap_AwardTypeAxis_us-gaap_EmployeeStockOptionMember" format="ixt-sec:duryear">5.4</ix:nonNumeric></span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonNumeric id="d9067284e1574-wk-Fact-46EF17F9B9EEEC9781488095A172500F" name="us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1" contextRef="FD2017Q4YTD_us-gaap_AwardTypeAxis_us-gaap_EmployeeStockOptionMember" format="ixt-sec:duryear">5.4</ix:nonNumeric></span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr></table></div><span style="font-family:inherit;font-size:10pt;"><br/></span></div></ix:nonNumeric><div style="line-height:120%;padding-top:12px;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;text-decoration:underline;">Risk-free rate</span></div><div style="line-height:120%;padding-top:6px;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">The risk-free rate was based upon a treasury instrument whose term was consistent with the contractual term of the option.</span></div><div style="line-height:120%;padding-top:12px;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;text-decoration:underline;">Expected dividend yield</span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">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="line-height:120%;padding-top:12px;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;text-decoration:underline;">Expected volatility</span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">The expected volatility was based upon 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="line-height:120%;padding-top:12px;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;text-decoration:underline;">Expected term</span></div><div style="line-height:120%;padding-top:6px;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">The expected term was derived from the binomial lattice model from the impact of events that trigger exercises over time.</span></div></ix:continuation><div><br/></div><div style="text-align:center;"><div style="line-height:120%;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">63</span></div></div><hr style="page-break-after:always"></hr><div><div style="line-height:120%;font-size:9pt;"><a style="font-family:inherit;font-size:9pt;" href="#sCD449198B5695D85B5494CF5DF708C26"><span style="font-family:inherit;font-size:9pt;">Table of Contents</span></a></div><div style="line-height:120%;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><br/></span></div><div style="line-height:120%;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">COGNEX CORPORATION - NOTES TO CONSOLIDATED FINANCIAL STATEMENTS</span></div></div><div><br/></div><ix:continuation id="TextSelection-AA44B4D0A9D50AC75D448095A1A887F1-2"><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">The weighted-average grant-date fair value of stock options granted was </span><span style="font-family:Arial;font-size:10pt;"><span>$<ix:nonFraction id="d9067284e1617-wk-Fact-D86D01648E796ED893AD8095A197D9E4" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" contextRef="FD2019Q4YTD" unitRef="usdPerShare" decimals="2" scale="0" format="ixt:numdotdecimal">18.62</ix:nonFraction></span></span><span style="font-family:Arial;font-size:10pt;"> in </span><span style="font-family:Arial;font-size:10pt;">2019</span><span style="font-family:Arial;font-size:10pt;">, </span><span style="font-family:Arial;font-size:10pt;"><span>$<ix:nonFraction id="d9067284e1625-wk-Fact-CC49D39E3E53550923878095A197FA95" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" contextRef="FD2018Q4YTD" unitRef="usdPerShare" decimals="2" scale="0" format="ixt:numdotdecimal">20.84</ix:nonFraction></span></span><span style="font-family:Arial;font-size:10pt;"> in </span><span style="font-family:Arial;font-size:10pt;">2018</span><span style="font-family:Arial;font-size:10pt;">, and </span><span style="font-family:Arial;font-size:10pt;"><span>$<ix:nonFraction id="d9067284e1633-wk-Fact-42CD94CB9343F961203D8095A1974968" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" contextRef="FD2017Q4YTD" unitRef="usdPerShare" decimals="2" scale="0" format="ixt:numdotdecimal">15.59</ix:nonFraction></span></span><span style="font-family:Arial;font-size:10pt;"> in </span><span style="font-family:Arial;font-size:10pt;">2017</span><span style="font-family:Arial;font-size:10pt;">.</span></div><div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">The total intrinsic value of stock options exercised was </span><span style="font-family:Arial;font-size:10pt;"><span>$<ix:nonFraction id="d9067284e1645-wk-Fact-8FA227D668347EB6C63D8095A1989A76" name="cgnx:SharesBasedCompensationArrangementBySharesBasedPaymentAwardOptionsExercisableIntrinsicValue" contextRef="FD2019Q4YTD" unitRef="usd" decimals="0" scale="0" format="ixt:numdotdecimal">90,762,000</ix:nonFraction></span></span><span style="font-family:Arial;font-size:10pt;"> in </span><span style="font-family:Arial;font-size:10pt;">2019</span><span style="font-family:Arial;font-size:10pt;">, </span><span style="font-family:Arial;font-size:10pt;"><span>$<ix:nonFraction id="d9067284e1653-wk-Fact-56425578A80ACDFD37FD8095A197C6A6" name="cgnx:SharesBasedCompensationArrangementBySharesBasedPaymentAwardOptionsExercisableIntrinsicValue" contextRef="FD2018Q4YTD" unitRef="usd" decimals="0" scale="0" format="ixt:numdotdecimal">52,629,000</ix:nonFraction></span></span><span style="font-family:Arial;font-size:10pt;"> in </span><span style="font-family:Arial;font-size:10pt;">2018</span><span style="font-family:Arial;font-size:10pt;">, and </span><span style="font-family:Arial;font-size:10pt;"><span>$<ix:nonFraction id="d9067284e1661-wk-Fact-FCA2AFFBE29802C8B5A88095A197454E" name="cgnx:SharesBasedCompensationArrangementBySharesBasedPaymentAwardOptionsExercisableIntrinsicValue" contextRef="FD2017Q4YTD" unitRef="usd" decimals="0" scale="0" format="ixt:numdotdecimal">136,672,000</ix:nonFraction></span></span><span style="font-family:Arial;font-size:10pt;"> in </span><span style="font-family:Arial;font-size:10pt;">2017</span><span style="font-family:Arial;font-size:10pt;">. The total fair value of stock options vested was </span><span style="font-family:Arial;font-size:10pt;"><span>$<ix:nonFraction id="d9067284e1670-wk-Fact-C39FEC3C7A0C4ADDD9898095A197524B" name="cgnx:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedFairValue" contextRef="FD2019Q4YTD" unitRef="usd" decimals="0" scale="0" format="ixt:numdotdecimal">38,974,000</ix:nonFraction></span></span><span style="font-family:Arial;font-size:10pt;"> in </span><span style="font-family:Arial;font-size:10pt;">2019</span><span style="font-family:Arial;font-size:10pt;">, </span><span style="font-family:Arial;font-size:10pt;"><span>$<ix:nonFraction id="d9067284e1678-wk-Fact-BC6B4C677BB8AD60AF838095A1976338" name="cgnx:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedFairValue" contextRef="FD2018Q4YTD" unitRef="usd" decimals="0" scale="0" format="ixt:numdotdecimal">31,106,000</ix:nonFraction></span></span><span style="font-family:Arial;font-size:10pt;"> in </span><span style="font-family:Arial;font-size:10pt;">2018</span><span style="font-family:Arial;font-size:10pt;">, and </span><span style="font-family:Arial;font-size:10pt;"><span>$<ix:nonFraction id="d9067284e1686-wk-Fact-6A886485ED695120CF4C8095A1972FFF" name="cgnx:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedFairValue" contextRef="FD2017Q4YTD" unitRef="usd" decimals="0" scale="0" format="ixt:numdotdecimal">21,519,000</ix:nonFraction></span></span><span style="font-family:Arial;font-size:10pt;"> in </span><span style="font-family:Arial;font-size:10pt;">2017</span><span style="font-family:Arial;font-size:10pt;">.</span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;text-decoration:underline;">Restricted Stock Units (RSUs)</span></div><ix:nonNumeric contextRef="FD2019Q4YTD" name="us-gaap:NonvestedRestrictedStockSharesActivityTableTextBlock" id="TextSelection-961086AD06E8D8A0F6C08095A1A86425-0-wk-Fact-0191BF1E1761C71634738095A1970ECF" escape="true"><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">The following tables summarizes the Company's RSU activity:</span></div><div style="line-height:120%;padding-top:6px;text-align:center;font-size:10pt;"><div style="padding-left:0px;text-indent:0px;line-height:normal;padding-top:10px;"><table cellpadding="0" cellspacing="0" style="font-family:Times New Roman;font-size:10pt;margin-left:auto;margin-right:auto;width:100%;border-collapse:collapse;text-align:left;"><tr><td colspan="7"></td></tr><tr><td style="width:63%;"></td><td style="width:14%;"></td><td style="width:1%;"></td><td style="width:1%;"></td><td style="width:1%;"></td><td style="width:19%;"></td><td style="width:1%;"></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">Shares</span></div><div style="text-align:center;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">(in&#160;thousands)</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">Weighted-</span></div><div style="text-align:center;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">Average</span></div><div style="text-align:center;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">Grant Date Fair Value</span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Nonvested as of December 31, 2018</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9067284e1770-wk-Fact-BEA0EDF5FF3590B503F8FD22E01929FA" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber" contextRef="FI2018Q4_us-gaap_AwardTypeAxis_us-gaap_RestrictedStockMember" unitRef="shares" decimals="-3" scale="3" format="ixt:zerodash">&#8212;</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9067284e1789-wk-Fact-5D307307D1F8E2B174F7FD23447D3E15" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue" contextRef="FI2018Q4_us-gaap_AwardTypeAxis_us-gaap_RestrictedStockMember" unitRef="usdPerShare" decimals="2" scale="0" format="ixt:zerodash">&#8212;</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Granted</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9067284e1804-wk-Fact-AE933AECDCAD9414595DFD22EE1B2CA8" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod" contextRef="FD2019Q4YTD_us-gaap_AwardTypeAxis_us-gaap_RestrictedStockMember" unitRef="shares" decimals="-3" scale="3" format="ixt:numdotdecimal">151</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9067284e1818-wk-Fact-53DA923B855F91895840FD235418463E" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" contextRef="FD2019Q4YTD_us-gaap_AwardTypeAxis_us-gaap_RestrictedStockMember" unitRef="usdPerShare" decimals="2" scale="0" format="ixt:numdotdecimal">48.61</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Vested</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9067284e1838-wk-Fact-B03CC6E74E0B2E33D292FD22FD317B29" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod" contextRef="FD2019Q4YTD_us-gaap_AwardTypeAxis_us-gaap_RestrictedStockMember" unitRef="shares" decimals="-3" scale="3" format="ixt:zerodash">&#8212;</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9067284e1852-wk-Fact-E991E3E246A81C7D74EBFD236100E023" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue" contextRef="FD2019Q4YTD_us-gaap_AwardTypeAxis_us-gaap_RestrictedStockMember" unitRef="usdPerShare" decimals="2" scale="0" format="ixt:zerodash">&#8212;</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Forfeited or expired</span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>(<ix:nonFraction id="d9067284e1872-wk-Fact-93E27F27CEAB6A9DAC87FD230D0113CB" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod" contextRef="FD2019Q4YTD_us-gaap_AwardTypeAxis_us-gaap_RestrictedStockMember" unitRef="shares" decimals="-3" scale="3" format="ixt:numdotdecimal">1</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">)</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9067284e1887-wk-Fact-75EC0ED8F294144669A5FD237249F842" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue" contextRef="FD2019Q4YTD_us-gaap_AwardTypeAxis_us-gaap_RestrictedStockMember" unitRef="usdPerShare" decimals="2" scale="0" format="ixt:numdotdecimal">45.20</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Nonvested as of December 31, 2019</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span><ix:nonFraction id="d9067284e1907-wk-Fact-08BA43C4A0B657BC0D3CFD23253A7065" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber" contextRef="FI2019Q4_us-gaap_AwardTypeAxis_us-gaap_RestrictedStockMember" unitRef="shares" decimals="-3" scale="3" format="ixt:numdotdecimal">150</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span><ix:nonFraction id="d9067284e1926-wk-Fact-A4A3BCE1DB29B8148474FD23834D334D" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue" contextRef="FI2019Q4_us-gaap_AwardTypeAxis_us-gaap_RestrictedStockMember" unitRef="usdPerShare" decimals="2" scale="0" format="ixt:numdotdecimal">48.63</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr></table></div><span style="font-family:inherit;font-size:10pt;"><br/></span></div></ix:nonNumeric><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;text-decoration:underline;">Stock-Based Compensation Expense</span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">The Company stratifies its employee population into </span><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9067284e1941-wk-Fact-A8AB730623218252923AFD2169F5BEEB" name="cgnx:NumberOfGroupsWithinEmployeePopulation" contextRef="FI2019Q4" unitRef="group" decimals="INF" scale="0" format="ixt-sec:numwordsen">two</ix:nonFraction></span></span><span style="font-family:Arial;font-size:10pt;"> groups: one consisting of senior management and another consisting of all other employees.  The Company currently applies an estimated forfeiture rate of </span><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9067284e1945-wk-Fact-FEF019A34A06C7115F01FD21C95AB5B5" name="cgnx:EstimatedForfeitureRateForUnvestedOptionsForSeniorManagement" contextRef="FI2019Q4" unitRef="number" decimals="2" scale="-2" format="ixt:numdotdecimal">9</ix:nonFraction>%</span></span><span style="font-family:Arial;font-size:10pt;"> to all unvested options for senior management and a rate of </span><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9067284e1949-wk-Fact-9DEF209C251FB6815B59FD21FA2EF15C" name="cgnx:EstimatedForfeitureRateForUnvestedOptionsForAllNonSeniorManagement" contextRef="FI2019Q4" unitRef="number" decimals="2" scale="-2" format="ixt:numdotdecimal">12</ix:nonFraction>%</span></span><span style="font-family:Arial;font-size:10pt;"> for all other employees.  Each year during the first quarter, the Company revises its forfeiture rate.  This resulted in a decrease to compensation expense of </span><span style="font-family:Arial;font-size:10pt;"><span>$<ix:nonFraction id="d9067284e1953-wk-Fact-7E43E88181341FCE2F618095A197E2C8" name="cgnx:IncreaseInCompensationExpenseDueToRevisedEstimatedForfeitureRates" contextRef="FD2019Q4YTD" unitRef="usd" decimals="0" scale="0" format="ixt:numdotdecimal">499,000</ix:nonFraction></span></span><span style="font-family:Arial;font-size:10pt;"> in 2019, an increase to compensation expense of </span><span style="font-family:Arial;font-size:10pt;"><span>$<ix:nonFraction id="d9067284e1957-wk-Fact-D078DDF2A5979EDB1A198095A1971E07" name="cgnx:IncreaseInCompensationExpenseDueToRevisedEstimatedForfeitureRates" contextRef="FD2018Q4YTD" unitRef="usd" decimals="0" scale="0" format="ixt:numdotdecimal">1,283,000</ix:nonFraction></span></span><span style="font-family:Arial;font-size:10pt;"> in </span><span style="font-family:Arial;font-size:10pt;">2018</span><span style="font-family:Arial;font-size:10pt;">, and a decrease to compensation expense of </span><span style="font-family:Arial;font-size:10pt;"><span>$<ix:nonFraction id="d9067284e1966-wk-Fact-BD44F17D680ADB2B18AD8095A19635DC" name="cgnx:IncreaseInCompensationExpenseDueToRevisedEstimatedForfeitureRates" contextRef="FD2017Q4YTD" unitRef="usd" decimals="0" scale="0" format="ixt:numdotdecimal">673,000</ix:nonFraction></span></span><span style="font-family:Arial;font-size:10pt;"> in </span><span style="font-family:Arial;font-size:10pt;">2017</span><span style="font-family:Arial;font-size:10pt;">.</span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">As of December&#160;31, </span><span style="font-family:Arial;font-size:10pt;">2019</span><span style="font-family:Arial;font-size:10pt;">, total unrecognized compensation expense related to non-vested stock-based awards, including stock options and RSUs, was </span><span style="font-family:Arial;font-size:10pt;"><span>$<ix:nonFraction id="d9067284e1981-wk-Fact-71E27C44357AAA3CBBE68095A1972139" name="us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedStockOptions" contextRef="FI2019Q4" unitRef="usd" decimals="0" scale="0" format="ixt:numdotdecimal">53,491,000</ix:nonFraction></span></span><span style="font-family:Arial;font-size:10pt;">, which is expected to be recognized over a weighted-average period of </span><span style="font-family:Arial;font-size:10pt;"><span><ix:nonNumeric id="d9067284e1985-wk-Fact-71ABB08189E23114DE3B8095A1977029" name="us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1" contextRef="FD2019Q4YTD" format="ixt-sec:duryear">1.66</ix:nonNumeric></span></span><span style="font-family:Arial;font-size:10pt;"> years.</span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">The total stock-based compensation expense and the related income tax benefit recognized was </span><span style="font-family:Arial;font-size:10pt;"><span>$<ix:nonFraction id="d9067284e2002-wk-Fact-7D99C0F12E7E5F14EE028095A197CE7D" name="us-gaap:AllocatedShareBasedCompensationExpense" contextRef="FD2019Q4YTD" unitRef="usd" decimals="-3" scale="0" format="ixt:numdotdecimal">45,589,000</ix:nonFraction></span></span><span style="font-family:Arial;font-size:10pt;"> and </span><span style="font-family:Arial;font-size:10pt;"><span>$<ix:nonFraction id="d9067284e2006-wk-Fact-5FB5D6B63E8870678F8E8095A197D794" name="us-gaap:EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense" contextRef="FD2019Q4YTD" unitRef="usd" decimals="0" scale="0" format="ixt:numdotdecimal">7,756,000</ix:nonFraction></span></span><span style="font-family:Arial;font-size:10pt;">, respectively, in </span><span style="font-family:Arial;font-size:10pt;">2019</span><span style="font-family:Arial;font-size:10pt;">, </span><span style="font-family:Arial;font-size:10pt;"><span>$<ix:nonFraction id="d9067284e2014-wk-Fact-AA9652E3E83350868B708095A197D9CE" name="us-gaap:AllocatedShareBasedCompensationExpense" contextRef="FD2018Q4YTD" unitRef="usd" decimals="-3" scale="0" format="ixt:numdotdecimal">41,090,000</ix:nonFraction></span></span><span style="font-family:Arial;font-size:10pt;"> and </span><span style="font-family:Arial;font-size:10pt;"><span>$<ix:nonFraction id="d9067284e2018-wk-Fact-E7D0BAEF0B3F1C333BA58095A197782E" name="us-gaap:EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense" contextRef="FD2018Q4YTD" unitRef="usd" decimals="0" scale="0" format="ixt:numdotdecimal">7,317,000</ix:nonFraction></span></span><span style="font-family:Arial;font-size:10pt;">, respectively, in </span><span style="font-family:Arial;font-size:10pt;">2018</span><span style="font-family:Arial;font-size:10pt;">, and </span><span style="font-family:Arial;font-size:10pt;"><span>$<ix:nonFraction id="d9067284e2027-wk-Fact-391C044C35430DF423838095A197E5DD" name="us-gaap:AllocatedShareBasedCompensationExpense" contextRef="FD2017Q4YTD" unitRef="usd" decimals="-3" scale="0" format="ixt:numdotdecimal">31,942,000</ix:nonFraction></span></span><span style="font-family:Arial;font-size:10pt;"> and </span><span style="font-family:Arial;font-size:10pt;"><span>$<ix:nonFraction id="d9067284e2031-wk-Fact-7CD6E7A0EAA1387E60AE8095A197A8A7" name="us-gaap:EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense" contextRef="FD2017Q4YTD" unitRef="usd" decimals="0" scale="0" format="ixt:numdotdecimal">10,473,000</ix:nonFraction></span></span><span style="font-family:Arial;font-size:10pt;">, respectively, in </span><span style="font-family:Arial;font-size:10pt;">2017</span><span style="font-family:Arial;font-size:10pt;">.  No compensation expense was capitalized in </span><span style="font-family:Arial;font-size:10pt;">2019</span><span style="font-family:Arial;font-size:10pt;">, </span><span style="font-family:Arial;font-size:10pt;">2018</span><span style="font-family:Arial;font-size:10pt;">, or </span><span style="font-family:Arial;font-size:10pt;">2017</span><span style="font-family:Arial;font-size:10pt;">.</span></div><ix:nonNumeric contextRef="FD2019Q4YTD" name="us-gaap:ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock" id="TextSelection-3CF3EDBE00EBE8AD46788095A1A8EEF9-0-wk-Fact-676BD7558C05DA46B8CF8095A1978D86" escape="true"><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">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="line-height:120%;font-size:10pt;"><div style="padding-left:0px;text-indent:0px;line-height:normal;padding-top:10px;"><table cellpadding="0" cellspacing="0" style="font-family:Times New Roman;font-size:10pt;width:99.80506822612085%;border-collapse:collapse;text-align:left;"><tr><td colspan="12"></td></tr><tr><td style="width:53%;"></td><td style="width:1%;"></td><td style="width:13%;"></td><td style="width:1%;"></td><td style="width:1%;"></td><td style="width:1%;"></td><td style="width:13%;"></td><td style="width:1%;"></td><td style="width:1%;"></td><td style="width:1%;"></td><td style="width:13%;"></td><td style="width:1%;"></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;color:#ee2724;">&#160;</span></div></td><td colspan="11" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;">Year Ended December&#160;31,</span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;color:#ee2724;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;">2019</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">2018</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">2017</span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Cost of revenue</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span><ix:nonFraction id="d9067284e2220-wk-Fact-2C5FD2744EF7A128EBC58095A17A1499" name="us-gaap:AllocatedShareBasedCompensationExpense" contextRef="FD2019Q4YTD_us-gaap_IncomeStatementLocationAxis_cgnx_ProductCostOfRevenueMember" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">1,504</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9067284e2239-wk-Fact-5700421CDB824C9C95CE8095A1745A86" name="us-gaap:AllocatedShareBasedCompensationExpense" contextRef="FD2018Q4YTD_us-gaap_IncomeStatementLocationAxis_cgnx_ProductCostOfRevenueMember" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">2,447</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9067284e2258-wk-Fact-0CFCA43F2C5BD38AC8AE8095A17A163D" name="us-gaap:AllocatedShareBasedCompensationExpense" contextRef="FD2017Q4YTD_us-gaap_IncomeStatementLocationAxis_cgnx_ProductCostOfRevenueMember" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">1,881</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Research, development, and engineering</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span><ix:nonFraction id="d9067284e2274-wk-Fact-8693E69AC0CF829C897F8095A17A88E9" name="us-gaap:AllocatedShareBasedCompensationExpense" contextRef="FD2019Q4YTD_us-gaap_IncomeStatementLocationAxis_us-gaap_ResearchAndDevelopmentExpenseMember" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">15,748</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9067284e2293-wk-Fact-7C6B511DFBAA48628E8F8095A174AEC5" name="us-gaap:AllocatedShareBasedCompensationExpense" contextRef="FD2018Q4YTD_us-gaap_IncomeStatementLocationAxis_us-gaap_ResearchAndDevelopmentExpenseMember" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">14,578</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9067284e2312-wk-Fact-89B34C8C1B44944E558C8095A17AC09E" name="us-gaap:AllocatedShareBasedCompensationExpense" contextRef="FD2017Q4YTD_us-gaap_IncomeStatementLocationAxis_us-gaap_ResearchAndDevelopmentExpenseMember" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">11,022</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Selling, general, and administrative</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span><ix:nonFraction id="d9067284e2333-wk-Fact-FEBB5549ECD3CB7786388095A17A13FE" name="us-gaap:AllocatedShareBasedCompensationExpense" contextRef="FD2019Q4YTD_us-gaap_IncomeStatementLocationAxis_cgnx_SellingGeneralAndAdministrativeMember" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">28,337</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9067284e2352-wk-Fact-FA7EBA8A5593B6CC15AD8095A17A7CB1" name="us-gaap:AllocatedShareBasedCompensationExpense" contextRef="FD2018Q4YTD_us-gaap_IncomeStatementLocationAxis_cgnx_SellingGeneralAndAdministrativeMember" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">24,065</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9067284e2371-wk-Fact-93B7ACDA2EFB21B40F968095A17AC111" name="us-gaap:AllocatedShareBasedCompensationExpense" contextRef="FD2017Q4YTD_us-gaap_IncomeStatementLocationAxis_cgnx_SellingGeneralAndAdministrativeMember" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">19,039</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span><ix:nonFraction id="d9067284e2397-wk-Fact-D5387FCF42564B0B71648095A17AB68F" name="us-gaap:AllocatedShareBasedCompensationExpense" contextRef="FD2019Q4YTD" unitRef="usd" decimals="0" scale="3" format="ixt:numdotdecimal">45,589</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9067284e2416-wk-Fact-8B8E119BFFEA71FFA0DA8095A17BD502" name="us-gaap:AllocatedShareBasedCompensationExpense" contextRef="FD2018Q4YTD" unitRef="usd" decimals="0" scale="3" format="ixt:numdotdecimal">41,090</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9067284e2435-wk-Fact-F885D22963B3261EE62B8095A17AE193" name="us-gaap:AllocatedShareBasedCompensationExpense" contextRef="FD2017Q4YTD" unitRef="usd" decimals="0" scale="3" format="ixt:numdotdecimal">31,942</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr></table></div><span style="font-family:inherit;font-size:10pt;"><br/></span></div></ix:nonNumeric></ix:continuation><div><a id="s574815EF0C3E5D18A3177EFE828143F6"></a></div><div style="line-height:120%;padding-top:12px;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">NOTE 17:&#160;&#160;<ix:nonNumeric contextRef="FD2019Q4YTD" name="us-gaap:PensionAndOtherPostretirementBenefitsDisclosureTextBlock" id="TextSelection-FBE06C2E7C9299853E488095A1A8E028-0-wk-Fact-DFB27DD20563F3C63F488095A185B5FA" continuedAt="TextSelection-FBE06C2E7C9299853E488095A1A8E028-1" escape="true">Employee Savings Plan</ix:nonNumeric></span></div><ix:continuation id="TextSelection-FBE06C2E7C9299853E488095A1A8E028-1"><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Under the Company's Employee Savings Plan, a defined contribution plan, all U.S. employees who have attained age </span><span style="font-family:Arial;font-size:10pt;"><span><ix:nonNumeric id="d9064081e643-wk-Fact-C56E4688D04660B135248095A185DBB7" name="cgnx:MinimumAgeToBeEligibleToDefinedContributionPlan" contextRef="FD2019Q4YTD" format="ixt-sec:duryear">21</ix:nonNumeric></span></span><span style="font-family:Arial;font-size:10pt;"> may contribute up to </span><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9064081e647-wk-Fact-9EC42B5E30A4BD86CAE48095A185F2C7" name="us-gaap:DefinedContributionPlanMaximumAnnualContributionsPerEmployeePercent" contextRef="FD2019Q4YTD" unitRef="number" decimals="INF" scale="0" format="ixt:numdotdecimal">100</ix:nonFraction></span></span><span style="font-family:Arial;font-size:10pt;">% 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 </span><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9064081e651-wk-Fact-46F59A8E5945429B1CCD8095A17B414B" name="us-gaap:DefinedContributionPlanEmployerMatchingContributionPercentOfMatch" contextRef="FD2019Q4YTD" unitRef="number" decimals="INF" scale="-2" format="ixt:numdotdecimal">50</ix:nonFraction>%</span></span><span style="font-family:Arial;font-size:10pt;"> of the first </span><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9064081e655-wk-Fact-01869A37C4F2AB3D45B48095A185521B" name="us-gaap:DefinedContributionPlanEmployerMatchingContributionPercent" contextRef="FD2019Q4YTD" unitRef="number" decimals="INF" scale="-2" format="ixt:numdotdecimal">6</ix:nonFraction>%</span></span><span style="font-family:Arial;font-size:10pt;"> of pay an employee contributes.  Company contributions vest </span><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9064081e659-wk-Fact-611D2403AAD493A07A048095A185F23D" name="cgnx:CompanyContributionsVestAtEndOfTwoYear" contextRef="FD2019Q4YTD" unitRef="number" decimals="INF" scale="-2" format="ixt:numdotdecimal">25</ix:nonFraction>%</span></span><span style="font-family:Arial;font-size:10pt;">, </span><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9064081e664-wk-Fact-37359DBD2E72C67DCE378095A18568D0" name="cgnx:CompanyContributionsVestAtEndOfThreeYears" contextRef="FD2019Q4YTD" unitRef="number" decimals="INF" scale="-2" format="ixt:numdotdecimal">50</ix:nonFraction>%</span></span><span style="font-family:Arial;font-size:10pt;">, </span><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9064081e668-wk-Fact-35AB17278801C811D2E78095A185C9CB" name="cgnx:CompanyContributionsVestAtEndOfFourYears" contextRef="FD2019Q4YTD" unitRef="number" decimals="INF" scale="-2" format="ixt:numdotdecimal">75</ix:nonFraction>%</span></span><span style="font-family:Arial;font-size:10pt;">, and </span><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9064081e672-wk-Fact-2E7FE0A5B3C3C0EB612D8095A1859562" name="cgnx:CompanyContributionsVestAtEndOfFiveYears" contextRef="FD2019Q4YTD" unitRef="number" decimals="INF" scale="-2" format="ixt:numdotdecimal">100</ix:nonFraction>%</span></span><span style="font-family:Arial;font-size:10pt;"> after one, two, three, and four years of continuous employment with the Company, respectively.  Company contributions totaled </span><span style="font-family:Arial;font-size:10pt;"><span>$<ix:nonFraction id="d9064081e676-wk-Fact-A5A31EF0EB2971FA64618095A18508EB" name="us-gaap:DefinedContributionPlanCostRecognized" contextRef="FD2019Q4YTD" unitRef="usd" decimals="0" scale="0" format="ixt:numdotdecimal">2,729,000</ix:nonFraction></span></span><span style="font-family:Arial;font-size:10pt;"> in </span><span style="font-family:Arial;font-size:10pt;">2019</span><span style="font-family:Arial;font-size:10pt;">, </span><span style="font-family:Arial;font-size:10pt;"><span>$<ix:nonFraction id="d9064081e684-wk-Fact-0EDC2402ED2D9A10BDCA8095A17B44B6" name="us-gaap:DefinedContributionPlanCostRecognized" contextRef="FD2018Q4YTD" unitRef="usd" decimals="0" scale="0" format="ixt:numdotdecimal">2,540,000</ix:nonFraction></span></span><span style="font-family:Arial;font-size:10pt;"> in </span><span style="font-family:Arial;font-size:10pt;">2018</span><span style="font-family:Arial;font-size:10pt;">, and </span><span style="font-family:Arial;font-size:10pt;"><span>$<ix:nonFraction id="d9064081e693-wk-Fact-D2C4B686FB47A2E8FAA88095A185E7AE" name="us-gaap:DefinedContributionPlanCostRecognized" contextRef="FD2017Q4YTD" unitRef="usd" decimals="0" scale="0" format="ixt:numdotdecimal">2,030,000</ix:nonFraction></span></span><span style="font-family:Arial;font-size:10pt;"> in </span><span style="font-family:Arial;font-size:10pt;">2017</span><span style="font-family:Arial;font-size:10pt;">.  Cognex stock is not an investment alternative and Company contributions are not made in the form of Cognex stock.</span></div></ix:continuation><div><a id="s733808A77E555725AB8E7D116BC3BD95"></a></div><div style="line-height:120%;padding-top:12px;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">NOTE 18:&#160;&#160;Income <ix:nonNumeric contextRef="FD2019Q4YTD" name="us-gaap:IncomeTaxDisclosureTextBlock" id="TextSelection-7E6CC6606031625716F88095A1A8BA40-0-wk-Fact-2388A58AFBEDD063F1E98095A185141A" continuedAt="TextSelection-7E6CC6606031625716F88095A1A8BA40-1" escape="true">Taxes</ix:nonNumeric></span></div><ix:continuation id="TextSelection-7E6CC6606031625716F88095A1A8BA40-1" continuedAt="TextSelection-7E6CC6606031625716F88095A1A8BA40-2"><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Domestic income before taxes was </span><span style="font-family:Arial;font-size:10pt;"><span>$<ix:nonFraction id="d9073545e643-wk-Fact-11DD5C0779C868A0D5938095A1859BA0" name="us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesDomestic" contextRef="FD2019Q4YTD" unitRef="usd" decimals="0" scale="0" format="ixt:numdotdecimal">31,396,000</ix:nonFraction></span></span><span style="font-family:Arial;font-size:10pt;"> in </span><span style="font-family:Arial;font-size:10pt;">2019</span><span style="font-family:Arial;font-size:10pt;">, </span><span style="font-family:Arial;font-size:10pt;"><span>$<ix:nonFraction id="d9073545e651-wk-Fact-F68BFF50F9FEA8AF53C08095A18F6777" name="us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesDomestic" contextRef="FD2018Q4YTD" unitRef="usd" decimals="0" scale="0" format="ixt:numdotdecimal">39,042,000</ix:nonFraction></span></span><span style="font-family:Arial;font-size:10pt;"> in </span><span style="font-family:Arial;font-size:10pt;">2018</span><span style="font-family:Arial;font-size:10pt;">, and </span><span style="font-family:Arial;font-size:10pt;"><span>$<ix:nonFraction id="d9073545e659-wk-Fact-C204A0B1498A7668312E8095A18520A9" name="us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesDomestic" contextRef="FD2017Q4YTD" unitRef="usd" decimals="0" scale="0" format="ixt:numdotdecimal">30,345,000</ix:nonFraction></span></span><span style="font-family:Arial;font-size:10pt;"> in </span><span style="font-family:Arial;font-size:10pt;">2017</span><span style="font-family:Arial;font-size:10pt;">.  Foreign income before taxes was </span><span style="font-family:Arial;font-size:10pt;"><span>$<ix:nonFraction id="d9073545e668-wk-Fact-1949DC9E0F05BA17692C8095A1854F08" name="us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign" contextRef="FD2019Q4YTD" unitRef="usd" decimals="0" scale="0" format="ixt:numdotdecimal">131,598,000</ix:nonFraction></span></span><span style="font-family:Arial;font-size:10pt;"> in </span><span style="font-family:Arial;font-size:10pt;">2019</span><span style="font-family:Arial;font-size:10pt;">, </span><span style="font-family:Arial;font-size:10pt;"><span>$<ix:nonFraction id="d9073545e676-wk-Fact-21DFC52329AA8B5C647F8095A17393C9" name="us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign" contextRef="FD2018Q4YTD" unitRef="usd" decimals="0" scale="0" format="ixt:numdotdecimal">195,532,000</ix:nonFraction></span></span><span style="font-family:Arial;font-size:10pt;"> in </span><span style="font-family:Arial;font-size:10pt;">2018</span><span style="font-family:Arial;font-size:10pt;">, and </span><span style="font-family:Arial;font-size:10pt;"><span>$<ix:nonFraction id="d9073545e684-wk-Fact-CEEFA3D39B515E6307548095A1859195" name="us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign" contextRef="FD2017Q4YTD" unitRef="usd" decimals="0" scale="0" format="ixt:numdotdecimal">236,119,000</ix:nonFraction></span></span><span style="font-family:Arial;font-size:10pt;"> in </span><span style="font-family:Arial;font-size:10pt;">2017</span><span style="font-family:Arial;font-size:10pt;">.  </span></div></ix:continuation><div><br/></div><div style="text-align:center;"><div style="line-height:120%;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">64</span></div></div><hr style="page-break-after:always"></hr><div><div style="line-height:120%;font-size:9pt;"><a style="font-family:inherit;font-size:9pt;" href="#sCD449198B5695D85B5494CF5DF708C26"><span style="font-family:inherit;font-size:9pt;">Table of Contents</span></a></div><div style="line-height:120%;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><br/></span></div><div style="line-height:120%;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">COGNEX CORPORATION - NOTES TO CONSOLIDATED FINANCIAL STATEMENTS</span></div></div><div><br/></div><ix:continuation id="TextSelection-7E6CC6606031625716F88095A1A8BA40-2" continuedAt="TextSelection-7E6CC6606031625716F88095A1A8BA40-3"><ix:nonNumeric contextRef="FD2019Q4YTD" name="us-gaap:ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock" id="TextSelection-106657A67F7B8E1D8CF88095A1A8F336-0-wk-Fact-BEB818B80AB83A11FE188095A1852A36" escape="true"><div style="line-height:120%;padding-top:6px;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Income tax expense consisted of the following (in thousands):</span></div><div style="line-height:120%;font-size:10pt;"><div style="padding-left:0px;text-indent:0px;line-height:normal;padding-top:10px;"><table cellpadding="0" cellspacing="0" style="font-family:Times New Roman;font-size:10pt;width:99.80506822612085%;border-collapse:collapse;text-align:left;"><tr><td colspan="12"></td></tr><tr><td style="width:50%;"></td><td style="width:1%;"></td><td style="width:14%;"></td><td style="width:1%;"></td><td style="width:1%;"></td><td style="width:1%;"></td><td style="width:14%;"></td><td style="width:1%;"></td><td style="width:1%;"></td><td style="width:1%;"></td><td style="width:14%;"></td><td style="width:1%;"></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;">&#160;</span></div></td><td colspan="11" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;">Year Ended December&#160;31,</span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;">2019</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">2018</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">2017</span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Current:</span></div></td><td colspan="11" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td></tr><tr><td style="vertical-align:top;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Federal</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">$</span></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span><ix:nonFraction id="d9073545e923-wk-Fact-2C58955572760AB24D688095A17BF177" name="us-gaap:CurrentFederalTaxExpenseBenefit" contextRef="FD2019Q4YTD" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">15,854</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9073545e942-wk-Fact-30DE3FBB5CB0FA99DF688095A1794CF9" name="us-gaap:CurrentFederalTaxExpenseBenefit" contextRef="FD2018Q4YTD" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">10,624</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9073545e961-wk-Fact-B682E26ACF9CA81514178095A174F85E" name="us-gaap:CurrentFederalTaxExpenseBenefit" contextRef="FD2017Q4YTD" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">78,152</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">State</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span><ix:nonFraction id="d9073545e977-wk-Fact-84CB07AE8CAEAF83DEE98095A17AA4DA" name="us-gaap:CurrentStateAndLocalTaxExpenseBenefit" contextRef="FD2019Q4YTD" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">2,108</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>(<ix:nonFraction id="d9073545e996-wk-Fact-8D6B66B61D7A9F8BAF768095A17A24DA" name="us-gaap:CurrentStateAndLocalTaxExpenseBenefit" contextRef="FD2018Q4YTD" unitRef="usd" decimals="-3" scale="3" sign="-" format="ixt:numdotdecimal">879</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">)</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9073545e1016-wk-Fact-0692CD556AFE7100EB438095A17AFF45" name="us-gaap:CurrentStateAndLocalTaxExpenseBenefit" contextRef="FD2017Q4YTD" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">2,687</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Foreign</span></div></td><td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span><ix:nonFraction id="d9073545e1037-wk-Fact-76404505AD4DA70009878095A17AFE47" name="us-gaap:CurrentForeignTaxExpenseBenefit" contextRef="FD2019Q4YTD" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">30,670</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9073545e1056-wk-Fact-F702B8C5D26656BFF1548095A1791409" name="us-gaap:CurrentForeignTaxExpenseBenefit" contextRef="FD2018Q4YTD" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">6,307</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9073545e1075-wk-Fact-A812B94065C0329E07258095A17A9A9F" name="us-gaap:CurrentForeignTaxExpenseBenefit" contextRef="FD2017Q4YTD" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">7,624</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span><ix:nonFraction id="d9073545e1096-wk-Fact-1F9B0097D76FC7C8CBD18095A17B177C" name="us-gaap:CurrentIncomeTaxExpenseBenefit" contextRef="FD2019Q4YTD" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">48,632</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9073545e1115-wk-Fact-376265B31630F1387ACE8095A17412C2" name="us-gaap:CurrentIncomeTaxExpenseBenefit" contextRef="FD2018Q4YTD" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">16,052</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9073545e1134-wk-Fact-A331279F6643CF750B208095A17AE99B" name="us-gaap:CurrentIncomeTaxExpenseBenefit" contextRef="FD2017Q4YTD" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">88,463</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Deferred:</span></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Federal</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span><ix:nonFraction id="d9073545e1217-wk-Fact-C6B73FFA0A9096F6E8958095A17A7E12" name="us-gaap:DeferredFederalIncomeTaxExpenseBenefit" contextRef="FD2019Q4YTD" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">352,808</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>(<ix:nonFraction id="d9073545e1236-wk-Fact-7FA3E094C1473AD33A708095A17B906B" name="us-gaap:DeferredFederalIncomeTaxExpenseBenefit" contextRef="FD2018Q4YTD" unitRef="usd" decimals="-3" scale="3" sign="-" format="ixt:numdotdecimal">1,271</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">)</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9073545e1256-wk-Fact-23B732051A425DF0AE238095A1748751" name="us-gaap:DeferredFederalIncomeTaxExpenseBenefit" contextRef="FD2017Q4YTD" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">1,569</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">State</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span><ix:nonFraction id="d9073545e1277-wk-Fact-61B63B3B7A4DBDDA7B968095A17AAD10" name="us-gaap:DeferredStateAndLocalIncomeTaxExpenseBenefit" contextRef="FD2019Q4YTD" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">183</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9073545e1296-wk-Fact-0C7554F084F4240C8A9D8095A17A9D4B" name="us-gaap:DeferredStateAndLocalIncomeTaxExpenseBenefit" contextRef="FD2018Q4YTD" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">554</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>(<ix:nonFraction id="d9073545e1315-wk-Fact-943462D51022261B44E38095A17BF980" name="us-gaap:DeferredStateAndLocalIncomeTaxExpenseBenefit" contextRef="FD2017Q4YTD" unitRef="usd" decimals="-3" scale="3" sign="-" format="ixt:numdotdecimal">639</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">)</span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Foreign</span></div></td><td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>(<ix:nonFraction id="d9073545e1337-wk-Fact-6628A1FA50416C95A8058095A17995D8" name="us-gaap:DeferredForeignIncomeTaxExpenseBenefit" contextRef="FD2019Q4YTD" unitRef="usd" decimals="-3" scale="3" sign="-" format="ixt:numdotdecimal">442,494</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">)</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>(<ix:nonFraction id="d9073545e1357-wk-Fact-736F5CF285AA3AEC7D5B8095A1746F5E" name="us-gaap:DeferredForeignIncomeTaxExpenseBenefit" contextRef="FD2018Q4YTD" unitRef="usd" decimals="-3" scale="3" sign="-" format="ixt:numdotdecimal">28</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">)</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9073545e1377-wk-Fact-F34779176D363D3CD5168095A17AD292" name="us-gaap:DeferredForeignIncomeTaxExpenseBenefit" contextRef="FD2017Q4YTD" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">359</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>(<ix:nonFraction id="d9073545e1399-wk-Fact-2BA06045614C194217898095A17AEE60" name="us-gaap:DeferredIncomeTaxExpenseBenefit" contextRef="FD2019Q4YTD" unitRef="usd" decimals="-3" scale="3" sign="-" format="ixt:numdotdecimal">89,503</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">)</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>(<ix:nonFraction id="d9073545e1419-wk-Fact-EE9176FFA522F539552B8095A17AD035" name="us-gaap:DeferredIncomeTaxExpenseBenefit" contextRef="FD2018Q4YTD" unitRef="usd" decimals="-3" scale="3" sign="-" format="ixt:numdotdecimal">745</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;padding-right:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">)</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9073545e1439-wk-Fact-715581F883DA252AA40B8095A174347F" name="us-gaap:DeferredIncomeTaxExpenseBenefit" contextRef="FD2017Q4YTD" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">1,289</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:top;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">$</span></div></td><td style="vertical-align:top;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>(<ix:nonFraction id="d9073545e1465-wk-Fact-F330DB1560316A224D428095A18EC1D6" name="us-gaap:IncomeTaxExpenseBenefit" contextRef="FD2019Q4YTD" unitRef="usd" decimals="-3" scale="3" sign="-" format="ixt:numdotdecimal">40,871</ix:nonFraction></span></span></div></td><td style="vertical-align:top;border-bottom:3px double #000000;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">)</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:top;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:top;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9073545e1485-wk-Fact-874D0B25503039A801968095A17B9ED6" name="us-gaap:IncomeTaxExpenseBenefit" contextRef="FD2018Q4YTD" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">15,307</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:top;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:top;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9073545e1504-wk-Fact-3C978299D4B7227ABE098095A17CACD6" name="us-gaap:IncomeTaxExpenseBenefit" contextRef="FD2017Q4YTD" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">89,752</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr></table></div><span style="font-family:inherit;font-size:10pt;"><br/></span></div></ix:nonNumeric><div style="line-height:120%;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><br/></span></div><ix:nonNumeric contextRef="FD2019Q4YTD" name="us-gaap:ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock" id="TextSelection-FD07273DB0790165AAE88095A1A8730A-0-wk-Fact-A54F0227E4F6D7F967F28095A190BEA5" escape="true"><div style="line-height:120%;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">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 style="padding-left:0px;text-indent:0px;line-height:normal;padding-top:10px;"><table cellpadding="0" cellspacing="0" style="font-family:Times New Roman;font-size:10pt;width:100%;border-collapse:collapse;text-align:left;"><tr><td colspan="9"></td></tr><tr><td style="width:62%;"></td><td style="width:11%;"></td><td style="width:1%;"></td><td style="width:1%;"></td><td style="width:11%;"></td><td style="width:1%;"></td><td style="width:1%;"></td><td style="width:11%;"></td><td style="width:1%;"></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;">&#160;</span></div></td><td colspan="8" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;">Year&#160;Ended&#160;December&#160;31,</span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;">2019</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">2018</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">2017</span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Income tax expense at U.S. federal statutory corporate tax rate</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span><ix:nonFraction id="d9073545e1648-wk-Fact-77F0821580B1B52B71258095A17B988A" name="us-gaap:EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate" contextRef="FD2019Q4YTD" unitRef="number" decimals="INF" scale="-2" format="ixt:numdotdecimal">21</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">&#160;%</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9073545e1663-wk-Fact-F1A01BBCEF1BCE4D7F708095A1725185" name="us-gaap:EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate" contextRef="FD2018Q4YTD" unitRef="number" decimals="INF" scale="-2" format="ixt:numdotdecimal">21</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">&#160;%</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9073545e1678-wk-Fact-FE304AC229A2613E17F38095A17B212C" name="us-gaap:EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate" contextRef="FD2017Q4YTD" unitRef="number" decimals="INF" scale="-2" format="ixt:numdotdecimal">35</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">&#160;%</span></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">State income taxes, net of federal benefit</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span><ix:nonFraction id="d9073545e1694-wk-Fact-B977B826ADF1DF3E68E68095A171E08E" name="us-gaap:EffectiveIncomeTaxRateReconciliationStateAndLocalIncomeTaxes" contextRef="FD2019Q4YTD" unitRef="number" decimals="2" scale="-2" format="ixt:numdotdecimal">2</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9073545e1708-wk-Fact-A2EB397CF52B506A02498095A17B63D3" name="us-gaap:EffectiveIncomeTaxRateReconciliationStateAndLocalIncomeTaxes" contextRef="FD2018Q4YTD" unitRef="number" decimals="2" scale="-2" format="ixt:numdotdecimal">1</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9073545e1722-wk-Fact-646E5F943CBBFD0189088095A17B006C" name="us-gaap:EffectiveIncomeTaxRateReconciliationStateAndLocalIncomeTaxes" contextRef="FD2017Q4YTD" unitRef="number" decimals="2" scale="-2" format="ixt:zerodash">&#8212;</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Foreign tax rate differential</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>(<ix:nonFraction id="d9073545e1737-wk-Fact-4AABDB51EDCA1FA3195C8095A1855A5E" name="us-gaap:EffectiveIncomeTaxRateReconciliationForeignIncomeTaxRateDifferential" contextRef="FD2019Q4YTD" unitRef="number" decimals="2" scale="-2" sign="-" format="ixt:numdotdecimal">9</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">)</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>(<ix:nonFraction id="d9073545e1752-wk-Fact-7C99A936AD03FA59FC558095A184031F" name="us-gaap:EffectiveIncomeTaxRateReconciliationForeignIncomeTaxRateDifferential" contextRef="FD2018Q4YTD" unitRef="number" decimals="2" scale="-2" sign="-" format="ixt:numdotdecimal">9</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">)</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>(<ix:nonFraction id="d9073545e1767-wk-Fact-EE75BF7C76206ADB7ED48095A17B8186" name="us-gaap:EffectiveIncomeTaxRateReconciliationForeignIncomeTaxRateDifferential" contextRef="FD2017Q4YTD" unitRef="number" decimals="2" scale="-2" sign="-" format="ixt:numdotdecimal">27</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">)</span></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Tax credit</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>(<ix:nonFraction id="d9073545e1783-wk-Fact-2E197303CFFBF4D13E368095A17BC2CA" name="us-gaap:EffectiveIncomeTaxRateReconciliationTaxCredits" contextRef="FD2019Q4YTD" unitRef="number" decimals="2" scale="-2" format="ixt:numdotdecimal">1</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">)</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9073545e1798-wk-Fact-B3796F2F7B8CB56AB7D68095A17B6820" name="us-gaap:EffectiveIncomeTaxRateReconciliationTaxCredits" contextRef="FD2018Q4YTD" unitRef="number" decimals="2" scale="-2" format="ixt:zerodash">&#8212;</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>(<ix:nonFraction id="d9073545e1812-wk-Fact-7507620F5E1C9F8DCA718095A1853047" name="us-gaap:EffectiveIncomeTaxRateReconciliationTaxCredits" contextRef="FD2017Q4YTD" unitRef="number" decimals="2" scale="-2" format="ixt:numdotdecimal">1</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">)</span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Discrete tax benefit related to employee stock options</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>(<ix:nonFraction id="d9073545e1828-wk-Fact-AC7CE8E9C042E94B901F8095A185C62B" name="us-gaap:EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitPercent" contextRef="FD2019Q4YTD" unitRef="number" decimals="2" scale="-2" format="ixt:numdotdecimal">4</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">)</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>(<ix:nonFraction id="d9073545e1843-wk-Fact-881B2D9A242CF47E94138095A1851803" name="us-gaap:EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitPercent" contextRef="FD2018Q4YTD" unitRef="number" decimals="2" scale="-2" format="ixt:numdotdecimal">4</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">)</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>(<ix:nonFraction id="d9073545e1858-wk-Fact-BA45C7599FF58336D7D18095A185C980" name="us-gaap:EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitPercent" contextRef="FD2017Q4YTD" unitRef="number" decimals="2" scale="-2" format="ixt:numdotdecimal">14</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">)</span></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Discrete tax expense (benefit) related to Tax Act</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span><ix:nonFraction id="d9073545e1874-wk-Fact-F5ACC7DDDEEF65FA54518095A17B7B12" name="cgnx:EffectiveIncomeTaxRateReconciliationDiscreteTaxExpenseTaxAndJobsActPercent" contextRef="FD2019Q4YTD" unitRef="number" decimals="2" scale="-2" format="ixt:zerodash">&#8212;</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>(<ix:nonFraction id="d9073545e1888-wk-Fact-BB195F59E26455E9D3AF8095A1965121" name="cgnx:EffectiveIncomeTaxRateReconciliationDiscreteTaxExpenseTaxAndJobsActPercent" contextRef="FD2018Q4YTD" unitRef="number" decimals="2" scale="-2" sign="-" format="ixt:numdotdecimal">3</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">)</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9073545e1903-wk-Fact-4A3C88911DE026B871A08095A17A2E01" name="cgnx:EffectiveIncomeTaxRateReconciliationDiscreteTaxExpenseTaxAndJobsActPercent" contextRef="FD2017Q4YTD" unitRef="number" decimals="2" scale="-2" format="ixt:numdotdecimal">36</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Discrete tax expense related to write-down of deferred tax assets </span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span><ix:nonFraction id="d9073545e1918-wk-Fact-EA98E032FBF80268C8548095A184B4CC" name="us-gaap:EffectiveIncomeTaxRateReconciliationChangeInDeferredTaxAssetsValuationAllowance" contextRef="FD2019Q4YTD" unitRef="number" decimals="2" scale="-2" format="ixt:zerodash">&#8212;</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9073545e1932-wk-Fact-DE7385FD00E9B5193A028095A17B1DF9" name="us-gaap:EffectiveIncomeTaxRateReconciliationChangeInDeferredTaxAssetsValuationAllowance" contextRef="FD2018Q4YTD" unitRef="number" decimals="2" scale="-2" format="ixt:zerodash">&#8212;</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9073545e1946-wk-Fact-87003E3189F55D508C308095A197CE86" name="us-gaap:EffectiveIncomeTaxRateReconciliationChangeInDeferredTaxAssetsValuationAllowance" contextRef="FD2017Q4YTD" unitRef="number" decimals="2" scale="-2" format="ixt:numdotdecimal">5</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Discrete tax expense related to migration of acquired IP</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span><ix:nonFraction id="d9073545e1961-wk-Fact-D64E29C4E9E46E99C874FDAC80B8CFA7" name="cgnx:EffectiveIncomeTaxRateReconciliationMigrationofAcquiredIntellectualProperty" contextRef="FD2019Q4YTD" unitRef="number" decimals="2" scale="-2" format="ixt:numdotdecimal">18</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9073545e1975-wk-Fact-A0C3CA971AB32BD14379FDAC80B02839" name="cgnx:EffectiveIncomeTaxRateReconciliationMigrationofAcquiredIntellectualProperty" contextRef="FD2018Q4YTD" unitRef="number" decimals="2" scale="-2" format="ixt:zerodash">&#8212;</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9073545e1989-wk-Fact-9F3B718842702E14A560FDAC80A9C43E" name="cgnx:EffectiveIncomeTaxRateReconciliationMigrationofAcquiredIntellectualProperty" contextRef="FD2017Q4YTD" unitRef="number" decimals="2" scale="-2" format="ixt:zerodash">&#8212;</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Discrete tax (benefit) related to change in tax structure</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>(<ix:nonFraction id="d9073545e2004-wk-Fact-107E79CB2613CF49C27DFD2D4B8B0C75" name="us-gaap:EffectiveIncomeTaxRateReconciliationChangeInEnactedTaxRate" contextRef="FD2019Q4YTD" unitRef="number" decimals="2" scale="-2" sign="-" format="ixt:numdotdecimal">268</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">)</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9073545e2019-wk-Fact-76899726FEE3239D6A2AFD2D4BB6F32C" name="us-gaap:EffectiveIncomeTaxRateReconciliationChangeInEnactedTaxRate" contextRef="FD2018Q4YTD" unitRef="number" decimals="2" scale="-2" format="ixt:zerodash">&#8212;</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9073545e2033-wk-Fact-1F1FB3C1B21C40863272FD2D4BF277A6" name="us-gaap:EffectiveIncomeTaxRateReconciliationChangeInEnactedTaxRate" contextRef="FD2017Q4YTD" unitRef="number" decimals="2" scale="-2" format="ixt:zerodash">&#8212;</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Discrete tax expense related to GILTI impact of change in tax structure</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span><ix:nonFraction id="d9073545e2049-wk-Fact-5481D7A58EA5BCB7E6D2FDB2B56853A3" name="cgnx:EffectiveIncomeTaxRateReconciliationTaxCutsandJobsActGlobalIntangibleLowTaxIncomePercent" contextRef="FD2019Q4YTD" unitRef="number" decimals="2" scale="-2" format="ixt:numdotdecimal">214</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9073545e2063-wk-Fact-6CF744430F1C1906C048FDB2B56DAD32" name="cgnx:EffectiveIncomeTaxRateReconciliationTaxCutsandJobsActGlobalIntangibleLowTaxIncomePercent" contextRef="FD2018Q4YTD" unitRef="number" decimals="2" scale="-2" format="ixt:zerodash">&#8212;</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9073545e2077-wk-Fact-A31DEA616846BA10422AFDB2B642D519" name="cgnx:EffectiveIncomeTaxRateReconciliationTaxCutsandJobsActGlobalIntangibleLowTaxIncomePercent" contextRef="FD2017Q4YTD" unitRef="number" decimals="2" scale="-2" format="ixt:zerodash">&#8212;</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Other discrete tax events</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>(<ix:nonFraction id="d9073545e2092-wk-Fact-0781F5BBEDB39D11B5098095A18515B4" name="us-gaap:EffectiveIncomeTaxRateReconciliationOtherReconcilingItemsPercent" contextRef="FD2019Q4YTD" unitRef="number" decimals="2" scale="-2" sign="-" format="ixt:numdotdecimal">1</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">)</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9073545e2107-wk-Fact-A94143176F36876444ED8095A17BBC3F" name="us-gaap:EffectiveIncomeTaxRateReconciliationOtherReconcilingItemsPercent" contextRef="FD2018Q4YTD" unitRef="number" decimals="2" scale="-2" format="ixt:zerodash">&#8212;</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>(<ix:nonFraction id="d9073545e2121-wk-Fact-7F94C2A265862B9A755D8095A185C25A" name="us-gaap:EffectiveIncomeTaxRateReconciliationOtherReconcilingItemsPercent" contextRef="FD2017Q4YTD" unitRef="number" decimals="2" scale="-2" sign="-" format="ixt:numdotdecimal">1</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">)</span></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Other</span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span><ix:nonFraction id="d9073545e2137-wk-Fact-10DDF70F270DF5BE52658095A185FAA3" name="us-gaap:EffectiveIncomeTaxRateReconciliationOtherAdjustments" contextRef="FD2019Q4YTD" unitRef="number" decimals="2" scale="-2" format="ixt:numdotdecimal">3</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9073545e2151-wk-Fact-DBA8961A4747B69513168095A17B7131" name="us-gaap:EffectiveIncomeTaxRateReconciliationOtherAdjustments" contextRef="FD2018Q4YTD" unitRef="number" decimals="2" scale="-2" format="ixt:numdotdecimal">1</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9073545e2165-wk-Fact-4290923F2961CEEFF6048095A17C143D" name="us-gaap:EffectiveIncomeTaxRateReconciliationOtherAdjustments" contextRef="FD2017Q4YTD" unitRef="number" decimals="2" scale="-2" format="ixt:numdotdecimal">1</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Income tax expense</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>(<ix:nonFraction id="d9073545e2180-wk-Fact-E9FB4CB0188848E003B08095A17BECC1" name="us-gaap:EffectiveIncomeTaxRateContinuingOperations" contextRef="FD2019Q4YTD" unitRef="number" decimals="2" scale="-2" sign="-" format="ixt:numdotdecimal">25</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">)%</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9073545e2195-wk-Fact-DB147CA3A878464DC7D48095A1858C0B" name="us-gaap:EffectiveIncomeTaxRateContinuingOperations" contextRef="FD2018Q4YTD" unitRef="number" decimals="2" scale="-2" format="ixt:numdotdecimal">7</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">&#160;%</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9073545e2210-wk-Fact-BE5C90D9478B72F3F5588095A19585A6" name="us-gaap:EffectiveIncomeTaxRateContinuingOperations" contextRef="FD2017Q4YTD" unitRef="number" decimals="2" scale="-2" format="ixt:numdotdecimal">34</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">&#160;%</span></div></td></tr></table></div><span style="font-family:inherit;font-size:10pt;"><br/></span></div></ix:nonNumeric><div style="line-height:120%;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><br/></span></div><div style="line-height:120%;padding-bottom:10px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-style:italic;text-decoration:underline;">Change in Accounting Policy</span></div><div style="line-height:120%;padding-bottom:10px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">In 2019, the Company elected to change its method of accounting for the United States Global Intangible Low-Taxed Income (GILTI) tax from recording the tax impact in the period it is incurred to recognizing deferred taxes for temporary tax basis differences expected to reverse as GILTI tax in future years.  The change is considered preferable, as it appropriately matches the Company's current and deferred income tax implications related to the change in tax structure noted under the heading "Discrete Tax Events 2019" below.</span></div></ix:continuation><div><br/></div><div style="text-align:center;"><div style="line-height:120%;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">65</span></div></div><hr style="page-break-after:always"></hr><div><div style="line-height:120%;font-size:9pt;"><a style="font-family:inherit;font-size:9pt;" href="#sCD449198B5695D85B5494CF5DF708C26"><span style="font-family:inherit;font-size:9pt;">Table of Contents</span></a></div><div style="line-height:120%;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><br/></span></div><div style="line-height:120%;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">COGNEX CORPORATION - NOTES TO CONSOLIDATED FINANCIAL STATEMENTS</span></div></div><div><br/></div><ix:continuation id="TextSelection-7E6CC6606031625716F88095A1A8BA40-3" continuedAt="TextSelection-7E6CC6606031625716F88095A1A8BA40-4"><ix:nonNumeric contextRef="FD2019Q4YTD" name="us-gaap:ScheduleOfChangeInAccountingEstimateTextBlock" id="TextSelection-9C49AD079D265B7C6BB2FDD766DB6A1D-0-wk-Fact-65F83A82AA04DAFEABB8FDD8A1081465" escape="true"><div style="line-height:120%;padding-bottom:10px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">The change in this accounting policy impacted the Company's 2019 reported results as follows (in thousands):</span></div><div style="line-height:120%;padding-bottom:10px;text-align:center;font-size:10pt;"><div style="padding-left:0px;text-indent:0px;line-height:normal;padding-top:10px;"><table cellpadding="0" cellspacing="0" style="font-family:Times New Roman;font-size:10pt;margin-left:auto;margin-right:auto;width:100%;border-collapse:collapse;text-align:left;"><tr><td colspan="12"></td></tr><tr><td style="width:54%;"></td><td style="width:1%;"></td><td style="width:14%;"></td><td style="width:1%;"></td><td style="width:1%;"></td><td style="width:1%;"></td><td style="width:14%;"></td><td style="width:1%;"></td><td style="width:1%;"></td><td style="width:1%;"></td><td style="width:10%;"></td><td style="width:1%;"></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="font-size:10pt;"><span style="font-family:Arial;font-size:10pt;text-decoration:underline;">Statement of Operations</span></div><div style="font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><br/></span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="11" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:center;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">&#160;Year Ended December 31, 2019</span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">As reported under the new accounting policy</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">As computed under the previous accounting policy</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Effect of change</span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Income before income tax expense</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9073545e2459-wk-Fact-11356283C594F0D652E68095A17C4913" name="us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments" contextRef="FD2019Q4YTD" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">162,994</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9073545e2478-wk-Fact-F7AA8E47616A0BBB2D93FDE95BC2ED8C" name="us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments" contextRef="FD2019Q4YTD_srt_RestatementAxis_srt_ScenarioPreviouslyReportedMember" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">162,994</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9073545e2497-wk-Fact-177B46A614C9358F7862FDE95BBD2567" name="us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments" contextRef="FD2019Q4YTD_srt_RestatementAxis_srt_RestatementAdjustmentMember_us-gaap_ChangeInAccountingEstimateByTypeAxis_cgnx_ChangeinGlobalIntangibleLowTaxedIncomeMember" unitRef="usd" decimals="-3" scale="3" format="ixt:zerodash">&#8212;</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Income tax expense (benefit)</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>(<ix:nonFraction id="d9073545e2513-wk-Fact-F330DB1560316A224D428095A18EC1D6" name="us-gaap:IncomeTaxExpenseBenefit" contextRef="FD2019Q4YTD" unitRef="usd" decimals="-3" scale="3" sign="-" format="ixt:numdotdecimal">40,871</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">)</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>(<ix:nonFraction id="d9073545e2533-wk-Fact-A63CFB3124F702ED980BFDEA2F8389B0" name="us-gaap:IncomeTaxExpenseBenefit" contextRef="FD2019Q4YTD_srt_RestatementAxis_srt_ScenarioPreviouslyReportedMember" unitRef="usd" decimals="-3" scale="3" sign="-" format="ixt:numdotdecimal">393,317</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">)</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9073545e2553-wk-Fact-4CD0ABEB548BC56FB252FDEA2F9904BF" name="us-gaap:IncomeTaxExpenseBenefit" contextRef="FD2019Q4YTD_srt_RestatementAxis_srt_RestatementAdjustmentMember_us-gaap_ChangeInAccountingEstimateByTypeAxis_cgnx_ChangeinGlobalIntangibleLowTaxedIncomeMember" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">352,446</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Net income</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9073545e2579-wk-Fact-7A2F7F14108749D162188095A17CA207" name="us-gaap:NetIncomeLoss" contextRef="FD2019Q4YTD" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">203,865</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9073545e2598-wk-Fact-3EB7EB5BB5FB6A20A80DFDEA556F1E05" name="us-gaap:NetIncomeLoss" contextRef="FD2019Q4YTD_srt_RestatementAxis_srt_ScenarioPreviouslyReportedMember" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">556,311</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>(<ix:nonFraction id="d9073545e2617-wk-Fact-56E5AB522E61DE134B2CFDEA55748D50" name="us-gaap:NetIncomeLoss" contextRef="FD2019Q4YTD_srt_RestatementAxis_srt_RestatementAdjustmentMember_us-gaap_ChangeInAccountingEstimateByTypeAxis_cgnx_ChangeinGlobalIntangibleLowTaxedIncomeMember" unitRef="usd" decimals="-3" scale="3" sign="-" format="ixt:numdotdecimal">352,446</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">)</span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:12px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:12px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:12px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:12px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:12px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:12px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td></tr><tr><td colspan="4" style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Net income per weighted-average common and common-equivalent share:</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td></tr><tr><td style="vertical-align:top;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Basic</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9073545e2763-wk-Fact-EFE5EB1E695D8201B7288095A17CDD88" name="us-gaap:EarningsPerShareBasic" contextRef="FD2019Q4YTD" unitRef="usdPerShare" decimals="2" scale="0" format="ixt:numdotdecimal">1.19</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9073545e2782-wk-Fact-DAD9805E07F430384CCEFDEA714A4120" name="us-gaap:EarningsPerShareBasic" contextRef="FD2019Q4YTD_srt_RestatementAxis_srt_ScenarioPreviouslyReportedMember" unitRef="usdPerShare" decimals="2" scale="0" format="ixt:numdotdecimal">3.25</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>(<ix:nonFraction id="d9073545e2801-wk-Fact-D300B5D6C04C2180D2EEFDEA71512B07" name="us-gaap:EarningsPerShareBasic" contextRef="FD2019Q4YTD_srt_RestatementAxis_srt_RestatementAdjustmentMember_us-gaap_ChangeInAccountingEstimateByTypeAxis_cgnx_ChangeinGlobalIntangibleLowTaxedIncomeMember" unitRef="usdPerShare" decimals="2" scale="0" sign="-" format="ixt:numdotdecimal">2.06</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">)</span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Diluted</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9073545e2823-wk-Fact-3ED4FD47A316C81069598095A18E3CB0" name="us-gaap:EarningsPerShareDiluted" contextRef="FD2019Q4YTD" unitRef="usdPerShare" decimals="2" scale="0" format="ixt:numdotdecimal">1.16</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9073545e2842-wk-Fact-7277F667D712D7B4BE61FDEA88D66D7F" name="us-gaap:EarningsPerShareDiluted" contextRef="FD2019Q4YTD_srt_RestatementAxis_srt_ScenarioPreviouslyReportedMember" unitRef="usdPerShare" decimals="2" scale="0" format="ixt:numdotdecimal">3.17</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>(<ix:nonFraction id="d9073545e2861-wk-Fact-1124931BED76CAD5F3A6FDEA88DA5ED5" name="us-gaap:EarningsPerShareDiluted" contextRef="FD2019Q4YTD_srt_RestatementAxis_srt_RestatementAdjustmentMember_us-gaap_ChangeInAccountingEstimateByTypeAxis_cgnx_ChangeinGlobalIntangibleLowTaxedIncomeMember" unitRef="usdPerShare" decimals="2" scale="0" sign="-" format="ixt:numdotdecimal">2.01</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">)</span></div></td></tr></table></div></div><div style="line-height:120%;padding-bottom:10px;text-align:center;font-size:10pt;"><div style="padding-left:0px;text-indent:0px;line-height:normal;padding-top:10px;"><table cellpadding="0" cellspacing="0" style="font-family:Times New Roman;font-size:10pt;margin-left:auto;margin-right:auto;width:100%;border-collapse:collapse;text-align:left;"><tr><td colspan="12"></td></tr><tr><td style="width:54%;"></td><td style="width:1%;"></td><td style="width:14%;"></td><td style="width:1%;"></td><td style="width:1%;"></td><td style="width:1%;"></td><td style="width:14%;"></td><td style="width:1%;"></td><td style="width:1%;"></td><td style="width:1%;"></td><td style="width:10%;"></td><td style="width:1%;"></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;text-decoration:underline;">Balance Sheet</span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="11" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:center;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">&#160;December 31, 2019</span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">As reported under the new accounting policy</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">As computed under the previous accounting policy</span></div><div style="text-align:center;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Effect of change</span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Deferred tax assets</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9073545e3091-wk-Fact-2D8FC969E128A40EF74E8095A1876609" name="us-gaap:DeferredTaxAssetsNetNoncurrent" contextRef="FI2019Q4" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">449,519</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9073545e3110-wk-Fact-C2C47120552CDEFF36EBFDEF01D8C4DE" name="us-gaap:DeferredTaxAssetsNetNoncurrent" contextRef="FI2019Q4_srt_RestatementAxis_srt_ScenarioPreviouslyReportedMember" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">469,621</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>(<ix:nonFraction id="d9073545e3129-wk-Fact-0F1A26933F5FEBD7CA0CFDEF031D40E5" name="us-gaap:DeferredTaxAssetsNetNoncurrent" contextRef="FI2019Q4_srt_RestatementAxis_srt_RestatementAdjustmentMember_us-gaap_ChangeInAccountingEstimateByTypeAxis_cgnx_ChangeinGlobalIntangibleLowTaxedIncomeMember" unitRef="usd" decimals="-3" scale="3" sign="-" format="ixt:numdotdecimal">20,102</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">)</span></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Deferred tax liabilities</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9073545e3151-wk-Fact-AC39BDE4FE52653694C6FDF1D97031AD" name="us-gaap:DeferredIncomeTaxLiabilities" contextRef="FI2019Q4" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">332,344</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9073545e3170-wk-Fact-28E6BD09AF473C35DA02FDF1D9638986" name="us-gaap:DeferredIncomeTaxLiabilities" contextRef="FI2019Q4_srt_RestatementAxis_srt_ScenarioPreviouslyReportedMember" unitRef="usd" decimals="-3" scale="3" format="ixt:zerodash">&#8212;</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9073545e3189-wk-Fact-4139568592E3B60281C1FDF1D9685C15" name="us-gaap:DeferredIncomeTaxLiabilities" contextRef="FI2019Q4_srt_RestatementAxis_srt_RestatementAdjustmentMember_us-gaap_ChangeInAccountingEstimateByTypeAxis_cgnx_ChangeinGlobalIntangibleLowTaxedIncomeMember" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">332,344</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr></table></div></div><div style="line-height:120%;padding-bottom:10px;text-align:center;font-size:10pt;"><div style="padding-left:0px;text-indent:0px;line-height:normal;padding-top:10px;"><table cellpadding="0" cellspacing="0" style="font-family:Times New Roman;font-size:10pt;margin-left:auto;margin-right:auto;width:100%;border-collapse:collapse;text-align:left;"><tr><td colspan="12"></td></tr><tr><td style="width:54%;"></td><td style="width:1%;"></td><td style="width:14%;"></td><td style="width:1%;"></td><td style="width:1%;"></td><td style="width:1%;"></td><td style="width:14%;"></td><td style="width:1%;"></td><td style="width:1%;"></td><td style="width:1%;"></td><td style="width:10%;"></td><td style="width:1%;"></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;text-decoration:underline;">Statement of Shareholders' Equity</span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="11" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:center;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">&#160;Year Ended December 31, 2019</span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">As reported under the new accounting policy</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">As computed under the previous accounting policy</span></div><div style="text-align:center;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Effect of change</span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Retained earnings</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9073545e3417-wk-Fact-B4B3C6B41A482608B4F88095A1872DF0" name="us-gaap:RetainedEarningsAccumulatedDeficit" contextRef="FI2019Q4" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">753,268</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9073545e3436-wk-Fact-35A57C5FADD9ABC0CB43FDF5E279D37E" name="us-gaap:RetainedEarningsAccumulatedDeficit" contextRef="FI2019Q4_srt_RestatementAxis_srt_ScenarioPreviouslyReportedMember" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">1,105,714</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>(<ix:nonFraction id="d9073545e3455-wk-Fact-6059BA4F2DEF77D72204FDF5E272A60C" name="us-gaap:RetainedEarningsAccumulatedDeficit" contextRef="FI2019Q4_srt_RestatementAxis_srt_RestatementAdjustmentMember_us-gaap_ChangeInAccountingEstimateByTypeAxis_cgnx_ChangeinGlobalIntangibleLowTaxedIncomeMember" unitRef="usd" decimals="-3" scale="3" sign="-" format="ixt:numdotdecimal">352,446</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">)</span></div></td></tr></table></div><span style="font-family:inherit;font-size:10pt;"><br/></span></div></ix:nonNumeric><div style="line-height:120%;padding-bottom:10px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">There were no material differences to the Company's reported results in prior years.</span></div><div style="line-height:120%;padding-top:6px;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-style:italic;text-decoration:underline;">Discrete Tax Events 2019</span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">The European Union has enacted a series of tax reform legislation over the past few years regarding low tax structures.  The Company made changes to its international tax structure in the fourth quarter of 2019 as a result of this legislation that resulted in an intercompany sale of intellectual property.  The Company recorded an associated deferred tax asset and income tax benefit of </span><span style="font-family:Arial;font-size:10pt;"><span>$<ix:nonFraction id="d9073545e3474-wk-Fact-9AA2B9D7255CD603154FFE0C2E4D7910" name="cgnx:DeferredTaxAssetsForeignTaxStructureChange" contextRef="FI2019Q4" unitRef="usd" decimals="-5" scale="0" format="ixt:numdotdecimal">437,500,000</ix:nonFraction></span></span><span style="font-family:Arial;font-size:10pt;"> in Ireland based upon the fair value of the intellectual property, that will be realized over 15 years as future tax deductions.  From a United States perspective, the sale is disregarded, and any future deductions claimed in Ireland will be added back to taxable income as part of GILTI minimum tax.  The Company recorded an associated deferred tax liability and income tax expense of </span><span style="font-family:Arial;font-size:10pt;"><span>$<ix:nonFraction id="d9073545e3478-wk-Fact-BD4A018C444DA254204C172F04A8473E" name="cgnx:DeferredTaxLiabilitiesTaxCutsAndJobsActGlobalIntangibleLowTaxIncome" contextRef="FI2019Q4" unitRef="usd" decimals="-3" scale="0" format="ixt:numdotdecimal">350,000,000</ix:nonFraction></span></span><span style="font-family:Arial;font-size:10pt;">, representing the GILTI minimum tax related to the fair value of the intellectual property.  The result of these transactions was a net discrete tax benefit of </span><span style="font-family:Arial;font-size:10pt;"><span>$<ix:nonFraction id="d9073545e3482-wk-Fact-AAE0B354A1B2B84B43140BD1E56BABB0" name="us-gaap:IncomeTaxReconciliationForeignIncomeTaxRateDifferential" contextRef="FD2019Q4QTD" unitRef="usd" decimals="-5" scale="0" format="ixt:numdotdecimal">87,500,000</ix:nonFraction></span></span><span style="font-family:Arial;font-size:10pt;">.  Management expects its current effective tax rate excluding discrete items to increase slightly in future years as a result of this change.</span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">In connection with the acquisition of Sualab, Co. Ltd., the Company migrated acquired intellectual property to certain subsidiaries in the fourth quarter of 2019 in order to align with its corporate tax structure.  As a result of this transaction, the Company recorded a discrete tax expense of </span><span style="font-family:Arial;font-size:10pt;"><span>$<ix:nonFraction id="d9073545e3489-wk-Fact-873DE0EC3FE155C84962FDFE70E05DA0" name="cgnx:EffectiveIncomeTaxRateReconciliationMigrationofAcquiredIntellectualProperty" contextRef="FD2019Q4YTD_us-gaap_BusinessAcquisitionAxis_cgnx_SualabCo.Ltd.Member" unitRef="number" decimals="-3" scale="0" format="ixt:numdotdecimal">28,528,000</ix:nonFraction></span></span><span style="font-family:Arial;font-size:10pt;">, which included a reserve of </span><span style="font-family:Arial;font-size:10pt;"><span>$<ix:nonFraction id="d9073545e3493-wk-Fact-0B4214C4601988A24091FE02D5ED2705" name="us-gaap:UnrecognizedTaxBenefits" contextRef="FI2019Q4_us-gaap_BusinessAcquisitionAxis_cgnx_SualabCo.Ltd.Member" unitRef="usd" decimals="-5" scale="0" format="ixt:numdotdecimal">3,700,000</ix:nonFraction></span></span><span style="font-family:Arial;font-size:10pt;"> for certain related tax uncertainties. </span></div></ix:continuation><div><br/></div><div style="text-align:center;"><div style="line-height:120%;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">66</span></div></div><hr style="page-break-after:always"></hr><div><div style="line-height:120%;font-size:9pt;"><a style="font-family:inherit;font-size:9pt;" href="#sCD449198B5695D85B5494CF5DF708C26"><span style="font-family:inherit;font-size:9pt;">Table of Contents</span></a></div><div style="line-height:120%;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><br/></span></div><div style="line-height:120%;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">COGNEX CORPORATION - NOTES TO CONSOLIDATED FINANCIAL STATEMENTS</span></div></div><div><br/></div><ix:continuation id="TextSelection-7E6CC6606031625716F88095A1A8BA40-4" continuedAt="TextSelection-7E6CC6606031625716F88095A1A8BA40-5"><div style="line-height:120%;padding-top:12px;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-style:italic;text-decoration:underline;">The Tax Act</span></div><div style="line-height:120%;padding-bottom:10px;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">In December 2017, the Tax Cuts and Jobs Act of 2017 (Tax Act) was signed into law.  The Tax Act resulted in a decrease in the U.S. federal statutory corporate tax rate from 35% to 21%.  As a result of the reduction in anticipated tax rate, the Company remeasured its deferred tax positions as of December 31, 2017 at the new enacted tax rate, and accordingly, recorded tax expense of </span><span style="font-family:Arial;font-size:10pt;"><span>$<ix:nonFraction id="d9073545e3503-wk-Fact-6801FFC68BB40A7A3851D7F567665A0F" name="cgnx:TaxCutsAndJobsActOf2017IncompleteAccountingChangeInTaxRateDeferredTaxAssetProvisionalIncomeTaxExpense" contextRef="FD2018Q4YTD" unitRef="usd" decimals="-3" scale="0" format="ixt:numdotdecimal">12,523,000</ix:nonFraction></span></span><span style="font-family:Arial;font-size:10pt;"> in 2017 from the associated write-down of its deferred tax assets.  In 2018, the Company recorded an increase in tax expense of </span><span style="font-family:Arial;font-size:10pt;"><span>$<ix:nonFraction id="d9073545e3507-wk-Fact-58338B05E02EF2303844D7F5B277E711" name="cgnx:TaxCutsAndJobsActOf2017IncompleteAccountingChangeInTaxRateDeferredTaxAssetProvisionalIncomeTaxExpense" contextRef="FD2019Q4YTD" unitRef="usd" decimals="-3" scale="0" format="ixt:numdotdecimal">3,240,000</ix:nonFraction></span></span><span style="font-family:Arial;font-size:10pt;"> from the write-down of its deferred tax assets primarily relating to guidance under the Tax Act regarding stock-based compensation.</span></div><div style="line-height:120%;padding-bottom:10px;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">The Tax Act subjects unrepatriated foreign earnings to a one-time transition tax, regardless of the Company's financial statement assertion related to indefinite reinvestment or whether the Company ultimately repatriates any of the foreign earnings, for which the Company recorded estimated tax expense of </span><span style="font-family:Arial;font-size:10pt;"><span>$<ix:nonFraction id="d9073545e3514-wk-Fact-73F0FCADFD53D55D2A29D7F62537614E" name="cgnx:TaxCutsAndJobsActOf2017IncompleteAccountingTransitionTaxForAccumulatedForeignEarningsProvisionalIncomeTaxExpense" contextRef="FD2017Q4YTD" unitRef="usd" decimals="-3" scale="0" format="ixt:numdotdecimal">101,379,000</ix:nonFraction></span></span><span style="font-family:Arial;font-size:10pt;"> in 2017.  In 2018, the Company revised its estimate of the one-time transition tax and recorded a decrease in tax expense of </span><span style="font-family:Arial;font-size:10pt;"><span>$<ix:nonFraction id="d9073545e3518-wk-Fact-57AEE3FBB5AC33FA5572D7F6C9F1FC6A" name="cgnx:TaxCutsAndJobsActOf2017IncompleteAccountingTransitionTaxForAccumulatedForeignEarningsProvisionalIncomeTaxExpense" contextRef="FD2018Q4YTD" unitRef="usd" decimals="-3" scale="0" format="ixt:numdotdecimal">11,028,000</ix:nonFraction></span></span><span style="font-family:Arial;font-size:10pt;">, which resulted in a revised estimate for the one-time transition tax of </span><span style="font-family:Arial;font-size:10pt;"><span>$<ix:nonFraction id="d9073545e3522-wk-Fact-B522615B9122CDC2EB72D7F65A56B6D7" name="cgnx:TaxCutsAndJobsActOf2017TransitionTaxForAccumulatedForeignEarningsLiability" contextRef="FI2018Q4" unitRef="usd" decimals="-3" scale="0" format="ixt:numdotdecimal">90,351,000</ix:nonFraction></span></span><span style="font-family:Arial;font-size:10pt;">.</span></div><div style="line-height:120%;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">The Tax Act replaces the current system of taxing U.S. corporations on repatriated foreign earnings with a partial territorial system that provides a 100% dividends-received deduction to domestic corporations for foreign-source dividends received from 10% or more owned foreign corporations. The Company recorded a decrease in tax expense of $3,843,000 in 2017 from the reversal of the tax effect of a 2016 dividend paid in 2017 from a wholly-owned foreign subsidiary to its domestic entity.</span></div><div style="line-height:120%;padding-bottom:10px;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-style:italic;text-decoration:underline;">Other Discrete Tax Events</span></div><div style="line-height:120%;padding-bottom:10px;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">The effective tax rate also included a decrease in tax expense of </span><span style="font-family:Arial;font-size:10pt;"><span>$<ix:nonFraction id="d9073545e3536-wk-Fact-33A3E32ABCA72616442E8095A197957E" name="us-gaap:EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitAmount" contextRef="FD2019Q4YTD" unitRef="usd" decimals="0" scale="0" format="ixt:numdotdecimal">6,472,000</ix:nonFraction></span></span><span style="font-family:Arial;font-size:10pt;"> in 2019, </span><span style="font-family:Arial;font-size:10pt;"><span>$<ix:nonFraction id="d9073545e3540-wk-Fact-795F97695DB4982447BF8095A18573D3" name="us-gaap:EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitAmount" contextRef="FD2018Q4YTD" unitRef="usd" decimals="0" scale="0" format="ixt:numdotdecimal">8,488,000</ix:nonFraction></span></span><span style="font-family:Arial;font-size:10pt;"> in 2018, and </span><span style="font-family:Arial;font-size:10pt;"><span>$<ix:nonFraction id="d9073545e3544-wk-Fact-001859B3D96B45A348178095A185BDCD" name="us-gaap:EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitAmount" contextRef="FD2017Q4YTD" unitRef="usd" decimals="0" scale="0" format="ixt:numdotdecimal">38,569,000</ix:nonFraction></span></span><span style="font-family:Arial;font-size:10pt;"> in 2017 related to stock options, primarily from the excess tax benefit arising from the difference between the deduction for tax purposes and the compensation cost recognized for financial reporting purposes from stock option exercises.  The Company cannot predict the level of stock option exercises by employees in future periods.</span></div><div style="line-height:120%;padding-bottom:10px;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Other discrete tax events included a net decrease in tax expense of $</span><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9073545e3551-wk-Fact-3799D44965C747B98583169FE8A04ECD" name="us-gaap:OtherTaxExpenseBenefit" contextRef="FD2019Q4YTD" unitRef="usd" decimals="0" scale="0" format="ixt:numdotdecimal">1,932,000</ix:nonFraction></span></span><span style="font-family:Arial;font-size:10pt;"> in 2019, $</span><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9073545e3555-wk-Fact-A956AB2982E866C80C6116B05109F788" name="us-gaap:OtherTaxExpenseBenefit" contextRef="FD2018Q4YTD" unitRef="usd" decimals="0" scale="0" format="ixt:numdotdecimal">1,847,000</ix:nonFraction></span></span><span style="font-family:Arial;font-size:10pt;"> in 2018, and </span><span style="font-family:Arial;font-size:10pt;"><span>$<ix:nonFraction id="d9073545e3559-wk-Fact-6E6FE2D4239207788BFE16B06B6E37AA" name="us-gaap:OtherTaxExpenseBenefit" contextRef="FD2017Q4YTD" unitRef="usd" decimals="0" scale="0" format="ixt:numdotdecimal">2,502,000</ix:nonFraction></span></span><span style="font-family:Arial;font-size:10pt;"> in 2017, consisting primarily of the expiration of the statutes of limitations for certain reserves for income tax uncertainties and the final true-up of the prior year's tax accrual upon filing the related tax returns.</span></div><div style="line-height:120%;padding-bottom:10px;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">The Company is tax resident in numerous jurisdictions around the world and has identified its major tax jurisdictions as the United States, Ireland, and China.  Management has determined that earnings from its legal entity in China will remain indefinitely reinvested to provide local funding for growth, and that earnings from all other jurisdictions will not be indefinitely reinvested.  As of December 31, 2019 and 2018, </span><span style="font-family:Arial;font-size:10pt;"><span>$<ix:nonFraction id="d9073545e3566-wk-Fact-654932FD0771832436E28095A1855FBD" name="us-gaap:Cash" contextRef="FI2019Q4_srt_StatementGeographicalAxis_cgnx_OtherThantheU.SMember" unitRef="usd" decimals="0" scale="0" format="ixt:numdotdecimal">370,953,000</ix:nonFraction></span></span><span style="font-family:Arial;font-size:10pt;"> and </span><span style="font-family:Arial;font-size:10pt;"><span>$<ix:nonFraction id="d9073545e3570-wk-Fact-D11269B5B91629AAA9348095A197B227" name="us-gaap:Cash" contextRef="FI2018Q4_srt_StatementGeographicalAxis_cgnx_OtherThantheU.SMember" unitRef="usd" decimals="0" scale="0" format="ixt:numdotdecimal">446,346,000</ix:nonFraction></span></span><span style="font-family:Arial;font-size:10pt;">, respectively, of the Company&#8217;s cash, cash equivalents, and investments were held by foreign subsidiaries and were primarily denominated in U.S. Dollars.</span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Interest and penalties included in income tax expense were </span><span style="font-family:Arial;font-size:10pt;"><span>$<ix:nonFraction id="d9073545e3577-wk-Fact-14A2361F989D0DD5C6408095A1852F21" name="us-gaap:UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestExpense" contextRef="FD2019Q4YTD" unitRef="usd" decimals="0" scale="0" format="ixt:numdotdecimal">116,000</ix:nonFraction></span></span><span style="font-family:Arial;font-size:10pt;">, </span><span style="font-family:Arial;font-size:10pt;"><span>$<ix:nonFraction id="d9073545e3581-wk-Fact-313A85DEC7A19A9D25B98095A19891A5" name="us-gaap:UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestExpense" contextRef="FD2018Q4YTD" unitRef="usd" decimals="0" scale="0" format="ixt:numdotdecimal">91,000</ix:nonFraction></span></span><span style="font-family:Arial;font-size:10pt;">, and </span><span style="font-family:Arial;font-size:10pt;"><span>$<ix:nonFraction id="d9073545e3585-wk-Fact-66A07998616B277591AF8095A198E92E" name="us-gaap:UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestExpense" contextRef="FD2017Q4YTD" unitRef="usd" decimals="0" scale="0" format="ixt:numdotdecimal">71,000</ix:nonFraction></span></span><span style="font-family:Arial;font-size:10pt;"> in 2019, 2018, and 2017, respectively.</span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">On January 1, 2018, the Company adopted Accounting Standard Update (ASU) 2016-16, "Income Taxes - Intra-Entity Transfers of Assets Other than Inventory."  This ASU requires the recognition of deferred income taxes for an intra-entity transfer of an asset other than inventory.  As a result of this ASU, the Company recorded </span><span style="font-family:Arial;font-size:10pt;"><span>$<ix:nonFraction id="d9073545e3592-wk-Fact-0B6413D57D00CC03805D8095A17290A3" name="us-gaap:CumulativeEffectOnRetainedEarningsNetOfTax1" contextRef="D2018Q1Jan1_us-gaap_AdjustmentsForNewAccountingPronouncementsAxis_us-gaap_AccountingStandardsUpdate201616Member" unitRef="usd" decimals="0" scale="0" format="ixt:numdotdecimal">5,961,000</ix:nonFraction></span></span><span style="font-family:Arial;font-size:10pt;"> through a cumulative-effect adjustment directly to retained earnings at the beginning of fiscal year 2018.</span></div></ix:continuation><div><br/></div><div style="text-align:center;"><div style="line-height:120%;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">67</span></div></div><hr style="page-break-after:always"></hr><div><div style="line-height:120%;font-size:9pt;"><a style="font-family:inherit;font-size:9pt;" href="#sCD449198B5695D85B5494CF5DF708C26"><span style="font-family:inherit;font-size:9pt;">Table of Contents</span></a></div><div style="line-height:120%;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><br/></span></div><div style="line-height:120%;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">COGNEX CORPORATION - NOTES TO CONSOLIDATED FINANCIAL STATEMENTS</span></div></div><div><br/></div><ix:continuation id="TextSelection-7E6CC6606031625716F88095A1A8BA40-5" continuedAt="TextSelection-7E6CC6606031625716F88095A1A8BA40-6"><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-style:italic;text-decoration:underline;">Tax Reserves</span></div><ix:nonNumeric contextRef="FD2019Q4YTD" name="us-gaap:SummaryOfIncomeTaxContingenciesTextBlock" id="TextSelection-EC20DC1B9B0F9D3B9D7B8095A1A8A27E-0-wk-Fact-73FDB7DD40B12AF3C0DD8095A1986BB1" escape="true"><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">The changes in the reserve for income taxes, excluding gross interest and penalties, were as follows (in thousands):</span></div><div style="line-height:120%;font-size:10pt;"><div style="padding-left:0px;text-indent:0px;line-height:normal;padding-top:10px;"><table cellpadding="0" cellspacing="0" style="font-family:Times New Roman;font-size:10pt;width:99.80506822612085%;border-collapse:collapse;text-align:left;"><tr><td colspan="4"></td></tr><tr><td style="width:82%;"></td><td style="width:1%;"></td><td style="width:16%;"></td><td style="width:1%;"></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Balance of reserve for income taxes as of December 31, 2017</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9073545e3635-wk-Fact-4E3913CED0CBDEE1609B8095A17B8426" name="us-gaap:UnrecognizedTaxBenefits" contextRef="FI2017Q4" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">6,749</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Gross amounts of increases in unrecognized tax benefits as a result of tax positions taken in prior periods</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9073545e3650-wk-Fact-FB6089B6A962AEF54E618095A17A710F" name="us-gaap:UnrecognizedTaxBenefitsIncreasesResultingFromPriorPeriodTaxPositions" contextRef="FD2018Q4YTD" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">69</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Gross amounts of increases in unrecognized tax benefits as a result of tax positions taken in the current period</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9073545e3670-wk-Fact-F92DC062C1BA6B89EE318095A17B634E" name="us-gaap:UnrecognizedTaxBenefitsIncreasesResultingFromCurrentPeriodTaxPositions" contextRef="FD2018Q4YTD" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">1,499</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Gross amounts of decreases in unrecognized tax benefits as a result of the expiration of the applicable statutes of limitations</span></div></td><td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>(<ix:nonFraction id="d9073545e3690-wk-Fact-619611499AE5BCA277388095A17BBF0C" name="us-gaap:UnrecognizedTaxBenefitsReductionsResultingFromLapseOfApplicableStatuteOfLimitations" contextRef="FD2018Q4YTD" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">1,023</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">)</span></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Balance of reserve for income taxes as of December 31, 2018</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9073545e3711-wk-Fact-8869AA9D37BF80F3C53D8095A1738EFE" name="us-gaap:UnrecognizedTaxBenefits" contextRef="FI2018Q4" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">7,294</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Gross amounts of increases in unrecognized tax benefits as a result of tax positions taken in prior periods</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9073545e3731-wk-Fact-76AFA16D5D9DD1ADDDF38095A1733F12" name="us-gaap:UnrecognizedTaxBenefitsPeriodIncreaseDecrease" contextRef="FD2019Q4YTD" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">199</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Gross amounts of increases in unrecognized tax benefits as a result of tax positions taken in the current period</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9073545e3751-wk-Fact-C6D7D5C699E247805DE88095A1730D01" name="us-gaap:UnrecognizedTaxBenefitsIncreasesResultingFromCurrentPeriodTaxPositions" contextRef="FD2019Q4YTD" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">5,259</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Gross amounts of decreases in unrecognized tax benefits as a result of the expiration of the applicable statutes of limitations</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>(<ix:nonFraction id="d9073545e3771-wk-Fact-9C30F44EC042FE10F8848095A17BDCBC" name="us-gaap:UnrecognizedTaxBenefitsReductionsResultingFromLapseOfApplicableStatuteOfLimitations" contextRef="FD2019Q4YTD" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">1,161</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">)</span></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Balance of reserve for income taxes as of December 31, 2019</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span><ix:nonFraction id="d9073545e3797-wk-Fact-EF9C0F2CCA4B2FA5049E8095A1733A23" name="us-gaap:UnrecognizedTaxBenefits" contextRef="FI2019Q4" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">11,591</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr></table></div><span style="font-family:inherit;font-size:10pt;"><br/></span></div></ix:nonNumeric><div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">The Company&#8217;s reserve for income taxes, including gross interest and penalties, was </span><span style="font-family:Arial;font-size:10pt;"><span>$<ix:nonFraction id="d9073545e3815-wk-Fact-9BAAA3E07235465230948095A17289CD" name="us-gaap:DeferredTaxLiabilitiesGrossNoncurrent" contextRef="FI2019Q4" unitRef="usd" decimals="0" scale="0" format="ixt:numdotdecimal">12,591,000</ix:nonFraction></span></span><span style="font-family:Arial;font-size:10pt;"> as of December 31, 2019, which included </span><span style="font-family:Arial;font-size:10pt;"><span>$<ix:nonFraction id="d9073545e3819-wk-Fact-CB33FDED55453B9FEEC78095A1973B40" name="us-gaap:LiabilityForUncertainTaxPositionsNoncurrent" contextRef="FI2019Q4" unitRef="usd" decimals="0" scale="0" format="ixt:numdotdecimal">11,563,000</ix:nonFraction></span></span><span style="font-family:Arial;font-size:10pt;"> classified as a non-current liability and </span><span style="font-family:Arial;font-size:10pt;"><span>$<ix:nonFraction id="d9073545e3823-wk-Fact-31A76C0C66E31EF48EFB8095A18650E0" name="cgnx:Unrecognizedtaxbenefitshownasareductiontononcurrentdeferredtaxassets" contextRef="FI2019Q4" unitRef="usd" decimals="0" scale="0" format="ixt:numdotdecimal">1,028,000</ix:nonFraction></span></span><span style="font-family:Arial;font-size:10pt;"> recorded as a reduction to non-current deferred tax assets.  The Company's reserve for income taxes, including gross interest and penalties, was </span><span style="font-family:Arial;font-size:10pt;"><span>$<ix:nonFraction id="d9073545e3827-wk-Fact-63D5EB9180792EDA93948095A1727CDD" name="us-gaap:DeferredTaxLiabilitiesGrossNoncurrent" contextRef="FI2018Q4" unitRef="usd" decimals="0" scale="0" format="ixt:numdotdecimal">8,134,000</ix:nonFraction></span></span><span style="font-family:Arial;font-size:10pt;"> as of December 31, 2018, which included </span><span style="font-family:Arial;font-size:10pt;"><span>$<ix:nonFraction id="d9073545e3831-wk-Fact-1256D772A5A703B754EA8095A173C879" name="us-gaap:LiabilityForUncertainTaxPositionsNoncurrent" contextRef="FI2018Q4" unitRef="usd" decimals="0" scale="0" format="ixt:numdotdecimal">7,106,000</ix:nonFraction></span></span><span style="font-family:Arial;font-size:10pt;"> classified as a non-current liability and </span><span style="font-family:Arial;font-size:10pt;"><span>$<ix:nonFraction id="d9073545e3836-wk-Fact-0EA1FE5E6CF08B0F0A128095A185A359" name="cgnx:Unrecognizedtaxbenefitshownasareductiontononcurrentdeferredtaxassets" contextRef="FI2018Q4" unitRef="usd" decimals="0" scale="0" format="ixt:numdotdecimal">1,028,000</ix:nonFraction></span></span><span style="font-family:Arial;font-size:10pt;"> recorded as a reduction to non-current deferred tax assets.  The amount of gross interest and penalties included in these balances was </span><span style="font-family:Arial;font-size:10pt;"><span>$<ix:nonFraction id="d9073545e3840-wk-Fact-3153B00C273772645F7C8095A172CEDF" name="us-gaap:UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestAccrued" contextRef="FI2019Q4" unitRef="usd" decimals="0" scale="0" format="ixt:numdotdecimal">1,000,000</ix:nonFraction></span></span><span style="font-family:Arial;font-size:10pt;"> and </span><span style="font-family:Arial;font-size:10pt;"><span>$<ix:nonFraction id="d9073545e3844-wk-Fact-4311816F8A6A92599C9E8095A197614E" name="us-gaap:UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestAccrued" contextRef="FI2018Q4" unitRef="usd" decimals="0" scale="0" format="ixt:numdotdecimal">840,000</ix:nonFraction></span></span><span style="font-family:Arial;font-size:10pt;"> as of December&#160;31, 2019 and December&#160;31, 2018, 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 </span><span style="font-family:Arial;font-size:10pt;"><span>$<ix:nonFraction id="d9073545e3848-wk-Fact-5AAA73AF7A57805D79ED8095A1989F21" name="cgnx:MinimumDecreaseInIncomeTaxExpenseDueToReleaseInReserves" contextRef="FD2019Q4YTD" unitRef="usd" decimals="0" scale="0" format="ixt:numdotdecimal">1,300,000</ix:nonFraction></span></span><span style="font-family:Arial;font-size:10pt;"> to </span><span style="font-family:Arial;font-size:10pt;"><span>$<ix:nonFraction id="d9073545e3852-wk-Fact-1CFD815F942F1D3F86218095A1855256" name="cgnx:MaximumDecreaseInIncomeTaxExpenseDueToReleaseInReserves" contextRef="FD2019Q4YTD" unitRef="usd" decimals="0" scale="0" format="ixt:numdotdecimal">1,400,000</ix:nonFraction></span></span><span style="font-family:Arial;font-size:10pt;"> over the next twelve months.</span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">The Company has defined its major tax jurisdictions as the United States, Ireland, and China, and within the United States, Massachusetts.  Within the United States, the tax years 2016 through 2019 remain open to examination by the Internal Revenue Service and various state taxing authorities.  The tax years 2015 through 2019 remain open to examination by various taxing authorities in other jurisdictions in which the Company operates. </span></div></ix:continuation><div><br/></div><div style="text-align:center;"><div style="line-height:120%;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">68</span></div></div><hr style="page-break-after:always"></hr><div><div style="line-height:120%;font-size:9pt;"><a style="font-family:inherit;font-size:9pt;" href="#sCD449198B5695D85B5494CF5DF708C26"><span style="font-family:inherit;font-size:9pt;">Table of Contents</span></a></div><div style="line-height:120%;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><br/></span></div><div style="line-height:120%;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">COGNEX CORPORATION - NOTES TO CONSOLIDATED FINANCIAL STATEMENTS</span></div></div><div><br/></div><ix:continuation id="TextSelection-7E6CC6606031625716F88095A1A8BA40-6" continuedAt="TextSelection-7E6CC6606031625716F88095A1A8BA40-7"><div style="line-height:120%;padding-top:6px;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-style:italic;text-decoration:underline;">Deferred Tax Assets and Liabilities</span></div><ix:nonNumeric contextRef="FD2019Q4YTD" name="us-gaap:ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock" id="TextSelection-1A7CD022AF7319C1E4138095A1A85EB6-0-wk-Fact-3D0C879D623DBF5B1B5A8095A197FB4C" escape="true"><div style="line-height:120%;padding-top:6px;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Deferred tax assets and liabilities, presented on a gross basis by jurisdiction, consisted of the following (in thousands):</span></div><div style="line-height:120%;font-size:10pt;"><div style="padding-left:0px;text-indent:0px;line-height:normal;padding-top:10px;"><table cellpadding="0" cellspacing="0" style="font-family:Times New Roman;font-size:10pt;width:99.80506822612085%;border-collapse:collapse;text-align:left;"><tr><td colspan="8"></td></tr><tr><td style="width:67%;"></td><td style="width:1%;"></td><td style="width:14%;"></td><td style="width:1%;"></td><td style="width:1%;"></td><td style="width:1%;"></td><td style="width:14%;"></td><td style="width:1%;"></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="7" style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;">December&#160;31,</span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;">2019</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">2018</span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Non-current gross deferred tax assets:</span></div></td><td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td></tr><tr><td style="vertical-align:top;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Intangible asset in connection with change in tax structure</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">$</span></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span><ix:nonFraction id="d9073545e4026-wk-Fact-477DF04A5C1BA1CF1B2DC8F88601DDF0" name="cgnx:DeferredTaxAssetsIntangibleAssetChangeinTaxStructure" contextRef="FI2019Q4" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">437,500</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9073545e4045-wk-Fact-F3D0F711B613BFED8347FDC98EDB46CE" name="cgnx:DeferredTaxAssetsIntangibleAssetChangeinTaxStructure" contextRef="FI2018Q4" unitRef="usd" decimals="-3" scale="3" format="ixt:zerodash">&#8212;</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Stock-based compensation expense</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span><ix:nonFraction id="d9073545e4060-wk-Fact-7A103465A997101D5EC28095A196BA1D" name="us-gaap:DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost" contextRef="FI2019Q4" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">15,042</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9073545e4079-wk-Fact-07EB26588EC19FDB40D48095A19754A9" name="us-gaap:DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost" contextRef="FI2018Q4" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">13,818</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Federal and state tax credit carryforwards</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span><ix:nonFraction id="d9073545e4099-wk-Fact-AADCAAABC861BCC991BF8095A1965387" name="us-gaap:DeferredTaxAssetsOperatingLossCarryforwardsDomestic" contextRef="FI2019Q4" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">8,491</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9073545e4118-wk-Fact-E25148BD032DB2F175268095A1978BD3" name="us-gaap:DeferredTaxAssetsOperatingLossCarryforwardsDomestic" contextRef="FI2018Q4" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">7,395</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Foreign net operating losses</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span><ix:nonFraction id="d9073545e4138-wk-Fact-89242891A86E5B5E5660FDC6C2BB20ED" name="us-gaap:DeferredTaxAssetsOperatingLossCarryforwardsForeign" contextRef="FI2019Q4" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">4,286</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9073545e4157-wk-Fact-80E0F5B9AA357FEAAE35FDC6C2B4389D" name="us-gaap:DeferredTaxAssetsOperatingLossCarryforwardsForeign" contextRef="FI2018Q4" unitRef="usd" decimals="-3" scale="3" format="ixt:zerodash">&#8212;</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Depreciation</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span><ix:nonFraction id="d9073545e4177-wk-Fact-BC3E87C5DEA4BA9561CCC8FA87138E29" name="cgnx:NoncurrentDeferredTaxAssetsDeprecation" contextRef="FI2019Q4" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">3,522</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9073545e4196-wk-Fact-3DF77CFC2118BA1B5674C8FAA358F14C" name="cgnx:NoncurrentDeferredTaxAssetsDeprecation" contextRef="FI2018Q4" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">2,475</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Inventory and revenue related</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span><ix:nonFraction id="d9073545e4216-wk-Fact-D0C10D360E96FA85F7EAC8F806F04902" name="us-gaap:DeferredTaxAssetsInventory" contextRef="FI2019Q4" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">2,934</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9073545e4235-wk-Fact-DE129CBA63542268CECCC8F82BE3E5EA" name="us-gaap:DeferredTaxAssetsInventory" contextRef="FI2018Q4" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">3,233</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Bonuses, commissions, and other compensation</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span><ix:nonFraction id="d9073545e4255-wk-Fact-339EA61A72EF1C2D272E8095A1980B7C" name="us-gaap:DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsOther" contextRef="FI2019Q4" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">1,609</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9073545e4274-wk-Fact-7F48F6DBA5FA47649DCB8095A196450D" name="us-gaap:DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsOther" contextRef="FI2018Q4" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">5,470</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Other</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span><ix:nonFraction id="d9073545e4294-wk-Fact-EA21E1E90EB615B8356F8095A1979C54" name="cgnx:DeferredTaxAssetsOtherNoncurrent" contextRef="FI2019Q4" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">3,550</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9073545e4313-wk-Fact-9E88A9791AA3832A0BCA8095A197EDA5" name="cgnx:DeferredTaxAssetsOtherNoncurrent" contextRef="FI2018Q4" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">2,425</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Gross non-current deferred tax assets</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span><ix:nonFraction id="d9073545e4334-wk-Fact-560C9D33F887970E52E28095A1963A9E" name="us-gaap:DeferredTaxAssetsGrossNoncurrent" contextRef="FI2019Q4" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">476,934</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9073545e4353-wk-Fact-973696FBBA4C2F1E32D98095A197F9AA" name="us-gaap:DeferredTaxAssetsGrossNoncurrent" contextRef="FI2018Q4" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">34,816</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Valuation allowance</span></div></td><td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>(<ix:nonFraction id="d9073545e4373-wk-Fact-E9FF3A718F38D24BAAB18095A197EC9E" name="us-gaap:DeferredTaxAssetsValuationAllowanceNoncurrent" contextRef="FI2019Q4" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">7,312</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">)</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>(<ix:nonFraction id="d9073545e4393-wk-Fact-C93300EC3FECAF76F2DA8095A19844D0" name="us-gaap:DeferredTaxAssetsValuationAllowanceNoncurrent" contextRef="FI2018Q4" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">6,112</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">)</span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span><ix:nonFraction id="d9073545e4419-wk-Fact-EB986891E4D74FAABFAD8095A1965C31" name="us-gaap:DeferredTaxAssetsLiabilitiesNetNoncurrent" contextRef="FI2019Q4" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">469,622</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9073545e4438-wk-Fact-81159A867D8C5B501E148095A196757E" name="us-gaap:DeferredTaxAssetsLiabilitiesNetNoncurrent" contextRef="FI2018Q4" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">28,704</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:18px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:18px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:18px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:18px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Non-current gross deferred tax liabilities:</span></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">GILTI tax basis differences in connection with change in tax structure</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>(<ix:nonFraction id="d9073545e4540-wk-Fact-BD4A018C444DA254204C172F04A8473E" name="cgnx:DeferredTaxLiabilitiesTaxCutsAndJobsActGlobalIntangibleLowTaxIncome" contextRef="FI2019Q4" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">350,000</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">)</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9073545e4560-wk-Fact-2ABDE05D9BC9B2301FE1FDC545272347" name="cgnx:DeferredTaxLiabilitiesTaxCutsAndJobsActGlobalIntangibleLowTaxIncome" contextRef="FI2018Q4" unitRef="usd" decimals="-3" scale="3" format="ixt:zerodash">&#8212;</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Other GILTI tax basis differences</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>(<ix:nonFraction id="d9073545e4575-wk-Fact-813A77F350001315036B16B4569DA27D" name="cgnx:DeferredTaxLiabilitiesTaxCutsAndJobsActOtherGlobalIntangibleLowTaxIncome" contextRef="FI2019Q4" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">2,446</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">)</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9073545e4595-wk-Fact-3549544550935FBFDFB416B477157916" name="cgnx:DeferredTaxLiabilitiesTaxCutsAndJobsActOtherGlobalIntangibleLowTaxIncome" contextRef="FI2018Q4" unitRef="usd" decimals="-3" scale="3" format="ixt:zerodash">&#8212;</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Nondeductible intangible assets</span></div><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><br/></span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span><ix:nonFraction id="d9073545e4617-wk-Fact-5D6002EBFB881BC91CD4FDC2FA16CC0C" name="us-gaap:DeferredTaxLiabilitiesGoodwillAndIntangibleAssetsIntangibleAssets" contextRef="FI2019Q4" unitRef="usd" decimals="-3" scale="3" format="ixt:zerodash">&#8212;</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>(<ix:nonFraction id="d9073545e4636-wk-Fact-CB1000B398F299B5D58BFDC2FA1D1870" name="us-gaap:DeferredTaxLiabilitiesGoodwillAndIntangibleAssetsIntangibleAssets" contextRef="FI2018Q4" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">44</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">)</span></div></td></tr><tr><td style="vertical-align:top;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Other</span></div></td><td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span><ix:nonFraction id="d9073545e4657-wk-Fact-22482CD11A8806B832EC8095A1967899" name="us-gaap:DeferredTaxLiabilitiesOther" contextRef="FI2019Q4" unitRef="usd" decimals="-3" scale="3" format="ixt:zerodash">&#8212;</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>(<ix:nonFraction id="d9073545e4676-wk-Fact-00AAB48B8B7F15C3D3568095A197439E" name="us-gaap:DeferredTaxLiabilitiesOther" contextRef="FI2018Q4" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">962</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">)</span></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>(<ix:nonFraction id="d9073545e4702-wk-Fact-B5BDC6A1C6467BDCFA8F8095A196B730" name="us-gaap:DeferredTaxLiabilitiesGrossCurrent" contextRef="FI2019Q4" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">352,446</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">)</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>(<ix:nonFraction id="d9073545e4722-wk-Fact-9F65032ADCCC0F45163B8095A19749F8" name="us-gaap:DeferredTaxLiabilitiesGrossCurrent" contextRef="FI2018Q4" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">1,006</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">)</span></div></td></tr></table></div><span style="font-family:inherit;font-size:10pt;"><br/></span></div></ix:nonNumeric><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">In 2019, the Company recorded a valuation allowance of </span><span style="font-family:Arial;font-size:10pt;"><span>$<ix:nonFraction id="d9073545e4741-wk-Fact-AC8E9440026AD6B8A70B8095A172C552" name="us-gaap:DeferredTaxAssetsValuationAllowance" contextRef="FI2019Q4_us-gaap_TaxCreditCarryforwardAxis_us-gaap_ResearchMember" unitRef="usd" decimals="0" scale="0" format="ixt:numdotdecimal">1,200,000</ix:nonFraction></span></span><span style="font-family:Arial;font-size:10pt;"> for state research and development tax credits that were 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.  In addition, the Company had </span><span style="font-family:Arial;font-size:10pt;"><span>$<ix:nonFraction id="d9073545e4745-wk-Fact-FB8AF5C656465F5E385D8095A17C4BF6" name="us-gaap:DeferredTaxAssetsTaxCreditCarryforwardsResearch" contextRef="FI2019Q4_us-gaap_TaxCreditCarryforwardAxis_cgnx_StateResearchAndExperimentationMember" unitRef="usd" decimals="0" scale="0" format="ixt:numdotdecimal">9,519,000</ix:nonFraction></span></span><span style="font-family:Arial;font-size:10pt;"> of state research and development tax credit carryforwards, net of federal tax, as of December&#160;31, </span><span style="font-family:Arial;font-size:10pt;">2019</span><span style="font-family:Arial;font-size:10pt;">, which will begin to expire in 2020.</span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">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 style="line-height:120%;padding-top:6px;font-size:10pt;"><ix:continuation id="TextSelection-7E6CC6606031625716F88095A1A8BA40-7" continuedAt="TextSelection-7E6CC6606031625716F88095A1A8BA40-8"><span style="font-family:Arial;font-size:10pt;">Cash paid for income taxes totaled </span><span style="font-family:Arial;font-size:10pt;"><span>$<ix:nonFraction id="d9073545e4759-wk-Fact-65F619ED81E1A7198AC08095A197B221" name="us-gaap:IncomeTaxesPaidNet" contextRef="FD2019Q4YTD" unitRef="usd" decimals="0" scale="0" format="ixt:numdotdecimal">13,443,000</ix:nonFraction></span></span><span style="font-family:Arial;font-size:10pt;"> in </span><span style="font-family:Arial;font-size:10pt;">2019</span><span style="font-family:Arial;font-size:10pt;">, </span><span style="font-family:Arial;font-size:10pt;"><span>$<ix:nonFraction id="d9073545e4767-wk-Fact-E8F883DD58F340C9D6E78095A1730B6E" name="us-gaap:IncomeTaxesPaidNet" contextRef="FD2018Q4YTD" unitRef="usd" decimals="0" scale="0" format="ixt:numdotdecimal">41,430,000</ix:nonFraction></span></span><span style="font-family:Arial;font-size:10pt;"> in </span><span style="font-family:Arial;font-size:10pt;">2018</span><span style="font-family:Arial;font-size:10pt;">, and </span><span style="font-family:Arial;font-size:10pt;"><span>$<ix:nonFraction id="d9073545e4775-wk-Fact-1B000663C57AA7D5F1E08095A17B3C35" name="us-gaap:IncomeTaxesPaidNet" contextRef="FD2017Q4YTD" unitRef="usd" decimals="0" scale="0" format="ixt:numdotdecimal">11,802,000</ix:nonFraction></span></span><span style="font-family:Arial;font-size:10pt;"> in </span><span style="font-family:Arial;font-size:10pt;">2017</span></ix:continuation><span style="font-family:Arial;font-size:10pt;"><ix:continuation id="TextSelection-7E6CC6606031625716F88095A1A8BA40-8">.</ix:continuation> </span></div><div><a id="s7AD2515FF88E55DEB895A4AF7C848C8A"></a></div><div style="line-height:120%;padding-top:12px;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">NOTE 19:&#160;&#160;<ix:nonNumeric contextRef="FD2019Q4YTD" name="us-gaap:EarningsPerShareTextBlock" id="TextSelection-1D67AAA49869F5A658C38095A1A83E9B-0-wk-Fact-F8FDA550A4AD75035A1D8095A19872ED" continuedAt="TextSelection-1D67AAA49869F5A658C38095A1A83E9B-1" escape="true">Weighted Average Shares</ix:nonNumeric></span></div><ix:continuation id="TextSelection-1D67AAA49869F5A658C38095A1A83E9B-1" continuedAt="TextSelection-1D67AAA49869F5A658C38095A1A83E9B-2"><ix:nonNumeric contextRef="FD2019Q4YTD" name="us-gaap:ScheduleOfWeightedAverageNumberOfSharesTableTextBlock" id="TextSelection-5234DBF5DED64AF1E19F8095A1A810EC-0-wk-Fact-11DF87553B54382AD1B28095A1980F16" escape="true"><div style="line-height:120%;padding-top:6px;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Weighted-average shares were calculated as follows (in thousands):</span></div><div style="line-height:120%;font-size:10pt;"><div style="padding-left:0px;text-indent:0px;line-height:normal;padding-top:10px;"><table cellpadding="0" cellspacing="0" style="font-family:Times New Roman;font-size:10pt;width:99.80506822612085%;border-collapse:collapse;text-align:left;"><tr><td colspan="9"></td></tr><tr><td style="width:56%;"></td><td style="width:13%;"></td><td style="width:1%;"></td><td style="width:1%;"></td><td style="width:13%;"></td><td style="width:1%;"></td><td style="width:1%;"></td><td style="width:13%;"></td><td style="width:1%;"></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;">&#160;</span></div></td><td colspan="8" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;">Year Ended December&#160;31,</span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-top:2px;padding-bottom:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;">2019</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-top:2px;padding-bottom:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">2018</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-top:2px;padding-bottom:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">2017</span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Basic weighted-average common shares outstanding</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span><ix:nonFraction id="d9064452e767-wk-Fact-7088F56A600431DA334F8095A18F2AB4" name="us-gaap:WeightedAverageNumberOfSharesOutstandingBasic" contextRef="FD2019Q4YTD" unitRef="shares" decimals="-3" scale="3" format="ixt:numdotdecimal">171,194</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9064452e781-wk-Fact-D3C52957E5467B5121488095A18E5877" name="us-gaap:WeightedAverageNumberOfSharesOutstandingBasic" contextRef="FD2018Q4YTD" unitRef="shares" decimals="-3" scale="3" format="ixt:numdotdecimal">172,333</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9064452e795-wk-Fact-F100B30FB31E7AE1BF208095A17B8FE2" name="us-gaap:WeightedAverageNumberOfSharesOutstandingBasic" contextRef="FD2017Q4YTD" unitRef="shares" decimals="-3" scale="3" format="ixt:numdotdecimal">173,287</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Effect of dilutive stock awards</span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span><ix:nonFraction id="d9064452e810-wk-Fact-450123041FF15A58C3008095A1970F95" name="us-gaap:WeightedAverageNumberDilutedSharesOutstandingAdjustment" contextRef="FD2019Q4YTD" unitRef="shares" decimals="-3" scale="3" format="ixt:numdotdecimal">4,075</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9064452e824-wk-Fact-A666B713FF00DF7A02AF8095A199BEA3" name="us-gaap:WeightedAverageNumberDilutedSharesOutstandingAdjustment" contextRef="FD2018Q4YTD" unitRef="shares" decimals="-3" scale="3" format="ixt:numdotdecimal">5,073</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9064452e838-wk-Fact-33D3CA91C065F2AE60658095A198C684" name="us-gaap:WeightedAverageNumberDilutedSharesOutstandingAdjustment" contextRef="FD2017Q4YTD" unitRef="shares" decimals="-3" scale="3" format="ixt:numdotdecimal">6,264</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Diluted weighted-average common and common-equivalent shares outstanding</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span><ix:nonFraction id="d9064452e853-wk-Fact-D5734F0FAB5E10C2BF8F8095A18E8C75" name="us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding" contextRef="FD2019Q4YTD" unitRef="shares" decimals="-3" scale="3" format="ixt:numdotdecimal">175,269</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9064452e867-wk-Fact-8C961D180BA7FE998E388095A17C4AED" name="us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding" contextRef="FD2018Q4YTD" unitRef="shares" decimals="-3" scale="3" format="ixt:numdotdecimal">177,406</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9064452e881-wk-Fact-F0CCA5ACB6DDF0BB1FA98095A18E3C36" name="us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding" contextRef="FD2017Q4YTD" unitRef="shares" decimals="-3" scale="3" format="ixt:numdotdecimal">179,551</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr></table></div><span style="font-family:inherit;font-size:10pt;"><br/></span></div></ix:nonNumeric><div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Stock options to purchase </span><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9064452e899-wk-Fact-4117423BECB481BF4B158095A1977385" name="us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount" contextRef="FD2019Q4YTD_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis_us-gaap_EmployeeStockOptionMember" unitRef="shares" decimals="0" scale="0" format="ixt:numdotdecimal">5,735,608</ix:nonFraction></span></span><span style="font-family:Arial;font-size:10pt;">, </span><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9064452e903-wk-Fact-B6FA46513F2A20BE323B8095A19834E2" name="us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount" contextRef="FD2018Q4YTD_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis_us-gaap_EmployeeStockOptionMember" unitRef="shares" decimals="0" scale="0" format="ixt:numdotdecimal">2,650,164</ix:nonFraction></span></span><span style="font-family:Arial;font-size:10pt;">, and </span><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9064452e907-wk-Fact-82E74C14F5D1B42C7A218095A198E0BA" name="us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount" contextRef="FD2017Q4YTD_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis_us-gaap_EmployeeStockOptionMember" unitRef="shares" decimals="0" scale="0" format="ixt:numdotdecimal">3,363,141</ix:nonFraction></span></span><span style="font-family:Arial;font-size:10pt;"> shares of common stock, on a weighted-average basis, were outstanding in </span><span style="font-family:Arial;font-size:10pt;">2019</span><span style="font-family:Arial;font-size:10pt;">, </span><span style="font-family:Arial;font-size:10pt;">2018</span><span style="font-family:Arial;font-size:10pt;">, and </span><span style="font-family:Arial;font-size:10pt;">2017</span><span style="font-family:Arial;font-size:10pt;">, respectively, but were not included in the calculation of dilutive net income per share because they were anti-dilutive. Restricted stock units totaling </span><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9064452e924-wk-Fact-9B300B2687978988600017384782D4F4" name="us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount" contextRef="FD2019Q4YTD_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis_us-gaap_RestrictedStockMember" unitRef="shares" decimals="0" scale="0" format="ixt:numdotdecimal">13,092</ix:nonFraction></span></span><span style="font-family:Arial;font-size:10pt;"> shares of common stock, on </span></div></ix:continuation><div><br/></div><div style="text-align:center;"><div style="line-height:120%;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">69</span></div></div><hr style="page-break-after:always"></hr><div><div style="line-height:120%;font-size:9pt;"><a style="font-family:inherit;font-size:9pt;" href="#sCD449198B5695D85B5494CF5DF708C26"><span style="font-family:inherit;font-size:9pt;">Table of Contents</span></a></div><div style="line-height:120%;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><br/></span></div><div style="line-height:120%;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">COGNEX CORPORATION - NOTES TO CONSOLIDATED FINANCIAL STATEMENTS</span></div></div><div><br/></div><ix:continuation id="TextSelection-1D67AAA49869F5A658C38095A1A83E9B-2"><div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">a weighted-average basis, were outstanding in 2019, but were not included in the calculation of dilutive net income per share because they were anti-dilutive.  There were no restricted stock units outstanding that were anti-dilutive in 2018 or 2017.</span></div></ix:continuation><div><a id="sAE21E26C68965401B6B70F93FDC91ED3"></a></div><div style="line-height:120%;padding-top:12px;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">NOTE 20:&#160;&#160;<ix:nonNumeric contextRef="FD2019Q4YTD" name="us-gaap:SegmentReportingDisclosureTextBlock" id="TextSelection-E1E1B093FF819F8DDE228095A1A873FB-0-wk-Fact-D6E7361E5848FA308EF18095A17A48CD" continuedAt="TextSelection-E1E1B093FF819F8DDE228095A1A873FB-1" escape="true">Segment and Geographic Information</ix:nonNumeric></span></div><ix:continuation id="TextSelection-E1E1B093FF819F8DDE228095A1A873FB-1"><div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">The Company operates in </span><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9068546e643-wk-Fact-9E19FA7DF0B34FF0DE6B8095A1733177" name="us-gaap:NumberOfReportableSegments" contextRef="FD2019Q4YTD" unitRef="Segment" decimals="INF" scale="0" format="ixt-sec:numwordsen">one</ix:nonFraction></span></span><span style="font-family:Arial;font-size:10pt;"> segment, machine vision technology.  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.  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="FD2019Q4YTD" name="us-gaap:ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsByGeographicalAreasTableTextBlock" id="TextSelection-CEB1BF2B35A4B1D6CCE38095A1A894EF-0-wk-Fact-9D5C73563D7E0A36A2568095A1794DB1" escape="true"><div style="line-height:120%;padding-top:6px;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">The following table summarizes information about geographic areas (in thousands):</span></div><div style="line-height:120%;font-size:10pt;"><div style="padding-left:0px;text-indent:0px;line-height:normal;padding-top:10px;"><table cellpadding="0" cellspacing="0" style="font-family:Times New Roman;font-size:10pt;width:99.80506822612085%;border-collapse:collapse;text-align:left;"><tr><td colspan="20"></td></tr><tr><td style="width:31%;"></td><td style="width:1%;"></td><td style="width:11%;"></td><td style="width:1%;"></td><td style="width:1%;"></td><td style="width:1%;"></td><td style="width:11%;"></td><td style="width:1%;"></td><td style="width:1%;"></td><td style="width:1%;"></td><td style="width:11%;"></td><td style="width:1%;"></td><td style="width:1%;"></td><td style="width:1%;"></td><td style="width:11%;"></td><td style="width:1%;"></td><td style="width:1%;"></td><td style="width:1%;"></td><td style="width:11%;"></td><td style="width:1%;"></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;">United&#160;States</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;">Europe</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;">Greater China </span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;">Other</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;">Total</span></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Year Ended December 31, 2019</span></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Revenue</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span><ix:nonFraction id="d9068546e912-wk-Fact-B2A4F2CECB43EFF5EB788095A173398E" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" contextRef="FD2019Q4YTD_srt_StatementGeographicalAxis_country_US" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">247,689</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span><ix:nonFraction id="d9068546e931-wk-Fact-4A22F78C245DA60EE1438095A1973821" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" contextRef="FD2019Q4YTD_srt_StatementGeographicalAxis_srt_EuropeMember" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">227,738</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span><ix:nonFraction id="d9068546e950-wk-Fact-30EB577D07973FA5B10F8095A19737BE" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" contextRef="FD2019Q4YTD_srt_StatementGeographicalAxis_cgnx_GreaterChinaMember" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">115,061</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span><ix:nonFraction id="d9068546e970-wk-Fact-113F5873F36A078DD72E8095A1722F41" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" contextRef="FD2019Q4YTD_srt_StatementGeographicalAxis_cgnx_OtherGeographicAreaMember" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">135,137</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span><ix:nonFraction id="d9068546e989-wk-Fact-B06BBDF776878FE4B2BC8095A17D5E83" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" contextRef="FD2019Q4YTD" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">725,625</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Long-lived assets</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span><ix:nonFraction id="d9068546e1004-wk-Fact-DDCF94F184066CD760388095A173018B" name="us-gaap:NoncurrentAssets" contextRef="FI2019Q4_srt_StatementGeographicalAxis_country_US" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">68,496</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span><ix:nonFraction id="d9068546e1023-wk-Fact-B562E7FAAA8C8B88C0D58095A17355BA" name="us-gaap:NoncurrentAssets" contextRef="FI2019Q4_srt_StatementGeographicalAxis_srt_EuropeMember" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">21,691</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span><ix:nonFraction id="d9068546e1042-wk-Fact-DDB3B6F64DD9B4FA91A08095A1986B32" name="us-gaap:NoncurrentAssets" contextRef="FI2019Q4_srt_StatementGeographicalAxis_cgnx_GreaterChinaMember" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">1,487</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span><ix:nonFraction id="d9068546e1062-wk-Fact-1B7A50415605DE270DF28095A1722276" name="us-gaap:NoncurrentAssets" contextRef="FI2019Q4_srt_StatementGeographicalAxis_cgnx_OtherGeographicAreaMember" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">3,602</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">$</span></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span><ix:nonFraction id="d9068546e1086-wk-Fact-4F4221F6AE74C3921EF78095A1986096" name="us-gaap:NoncurrentAssets" contextRef="FI2019Q4" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">95,276</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Year Ended December 31, 2018</span></div></td><td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td></tr><tr><td style="vertical-align:top;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Revenue</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9068546e1208-wk-Fact-64C507366D0E056E8E598095A1983614" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" contextRef="FD2018Q4YTD_srt_StatementGeographicalAxis_country_US" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">231,760</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9068546e1227-wk-Fact-A3C61C1D09BD291DC6B88095A197A9C4" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" contextRef="FD2018Q4YTD_srt_StatementGeographicalAxis_srt_EuropeMember" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">311,914</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9068546e1246-wk-Fact-E4401311B4DC979D24148095A1969303" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" contextRef="FD2018Q4YTD_srt_StatementGeographicalAxis_cgnx_GreaterChinaMember" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">123,708</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9068546e1266-wk-Fact-F174E7A5EFCCEDADAED18095A17344F7" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" contextRef="FD2018Q4YTD_srt_StatementGeographicalAxis_cgnx_OtherGeographicAreaMember" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">138,956</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9068546e1285-wk-Fact-D6E1BF373058FA9CCF958095A18F656B" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" contextRef="FD2018Q4YTD" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">806,338</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Long-lived assets</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9068546e1300-wk-Fact-2EB3824814316CA299158095A172C058" name="us-gaap:NoncurrentAssets" contextRef="FI2018Q4_srt_StatementGeographicalAxis_country_US" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">67,156</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9068546e1319-wk-Fact-B983968F2A98764B88898095A1735521" name="us-gaap:NoncurrentAssets" contextRef="FI2018Q4_srt_StatementGeographicalAxis_srt_EuropeMember" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">23,948</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9068546e1338-wk-Fact-7F28786178B7E6C2EFD98095A198F81E" name="us-gaap:NoncurrentAssets" contextRef="FI2018Q4_srt_StatementGeographicalAxis_cgnx_GreaterChinaMember" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">1,482</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9068546e1358-wk-Fact-83885535E368BDBA4F028095A1987246" name="us-gaap:NoncurrentAssets" contextRef="FI2018Q4_srt_StatementGeographicalAxis_cgnx_OtherGeographicAreaMember" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">2,735</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9068546e1382-wk-Fact-7FB59056D197AD49CB278095A1715F1E" name="us-gaap:NoncurrentAssets" contextRef="FI2018Q4" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">95,321</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Year Ended December 31, 2017</span></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Revenue</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9068546e1504-wk-Fact-8BB26DD71F5D239503E28095A17455DE" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" contextRef="FD2017Q4YTD_srt_StatementGeographicalAxis_country_US" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">180,248</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9068546e1523-wk-Fact-8FAC4E07DE74039DB1D38095A1970DBC" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" contextRef="FD2017Q4YTD_srt_StatementGeographicalAxis_srt_EuropeMember" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">328,826</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9068546e1542-wk-Fact-0060F6986FB9683616C98095A1960597" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" contextRef="FD2017Q4YTD_srt_StatementGeographicalAxis_cgnx_GreaterChinaMember" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">108,738</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9068546e1562-wk-Fact-200C5106F894944999048095A173CC87" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" contextRef="FD2017Q4YTD_srt_StatementGeographicalAxis_cgnx_OtherGeographicAreaMember" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">148,271</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9068546e1581-wk-Fact-53B0A8CFBD2030E181408095A17CDF23" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" contextRef="FD2017Q4YTD" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">766,083</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Long-lived assets</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9068546e1596-wk-Fact-A298F974D182695792F98095A19846C8" name="us-gaap:NoncurrentAssets" contextRef="FI2017Q4_srt_StatementGeographicalAxis_country_US" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">53,983</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9068546e1615-wk-Fact-B0448AA36A3CFAE17E7D8095A1976AC8" name="us-gaap:NoncurrentAssets" contextRef="FI2017Q4_srt_StatementGeographicalAxis_srt_EuropeMember" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">22,437</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9068546e1634-wk-Fact-7593AB385104FBBD77A28095A174481C" name="us-gaap:NoncurrentAssets" contextRef="FI2017Q4_srt_StatementGeographicalAxis_cgnx_GreaterChinaMember" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">1,594</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9068546e1654-wk-Fact-C115F60B06B2C6C648D58095A174BC43" name="us-gaap:NoncurrentAssets" contextRef="FI2017Q4_srt_StatementGeographicalAxis_cgnx_OtherGeographicAreaMember" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">2,525</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9068546e1678-wk-Fact-622D84CF4EDDC532EDDF8095A17374D5" name="us-gaap:NoncurrentAssets" contextRef="FI2017Q4" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">80,539</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr></table></div><span style="font-family:inherit;font-size:10pt;"><br/></span></div></ix:nonNumeric><div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Revenue is presented geographically based upon the customer&#8217;s country of domicile.  Revenue from a single customer accounted for </span><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9068546e1700-wk-Fact-C99A11D1D7C7FB0D4D418095A174FE11" name="us-gaap:ConcentrationRiskPercentage1" contextRef="FD2018Q4YTD_us-gaap_ConcentrationRiskByBenchmarkAxis_us-gaap_SalesRevenueNetMember_us-gaap_ConcentrationRiskByTypeAxis_us-gaap_CustomerConcentrationRiskMember" unitRef="number" decimals="2" scale="-2" format="ixt:numdotdecimal">15</ix:nonFraction>%</span></span><span style="font-family:Arial;font-size:10pt;"> and </span><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9068546e1704-wk-Fact-37F06A08A56D414C68058095A17AD3E0" name="us-gaap:ConcentrationRiskPercentage1" contextRef="FD2017Q4YTD_us-gaap_ConcentrationRiskByBenchmarkAxis_us-gaap_SalesRevenueNetMember_us-gaap_ConcentrationRiskByTypeAxis_us-gaap_CustomerConcentrationRiskMember" unitRef="number" decimals="2" scale="-2" format="ixt:numdotdecimal">20</ix:nonFraction>%</span></span><span style="font-family:Arial;font-size:10pt;"> of total revenue in 2018 and 2017, respectively. Accounts receivable from the same customer accounted for </span><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9068546e1708-wk-Fact-E317B01F0B0E0AF5CF7C16BA7A2E21D8" name="us-gaap:ConcentrationRiskPercentage1" contextRef="FD2019Q4YTD_us-gaap_ConcentrationRiskByBenchmarkAxis_us-gaap_AccountsReceivableMember_us-gaap_ConcentrationRiskByTypeAxis_us-gaap_CustomerConcentrationRiskMember" unitRef="number" decimals="2" scale="-2" format="ixt:numdotdecimal">24</ix:nonFraction>%</span></span><span style="font-family:Arial;font-size:10pt;">, </span><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9068546e1712-wk-Fact-710F521155730E38C21D8095A17A09AE" name="us-gaap:ConcentrationRiskPercentage1" contextRef="FD2018Q4YTD_us-gaap_ConcentrationRiskByBenchmarkAxis_us-gaap_AccountsReceivableMember_us-gaap_ConcentrationRiskByTypeAxis_us-gaap_CustomerConcentrationRiskMember" unitRef="number" decimals="2" scale="-2" format="ixt:numdotdecimal">30</ix:nonFraction>%</span></span><span style="font-family:Arial;font-size:10pt;">, and </span><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9068546e1716-wk-Fact-9F118FEC5AB84499760C8095A17A2D0A" name="us-gaap:ConcentrationRiskPercentage1" contextRef="FD2017Q4YTD_us-gaap_ConcentrationRiskByBenchmarkAxis_us-gaap_AccountsReceivableMember_us-gaap_ConcentrationRiskByTypeAxis_us-gaap_CustomerConcentrationRiskMember" unitRef="number" decimals="2" scale="-2" format="ixt:numdotdecimal">40</ix:nonFraction>%</span></span><span style="font-family:Arial;font-size:10pt;"> of total accounts receivable as of December 31, 2019, 2018, and 2017, respectively. In 2019, no customer accounted for greater than 10% of total revenue.</span></div></ix:continuation><div><a id="sE29ED8EBD61150BB9B5EBCD5C1592432"></a></div><div style="line-height:120%;padding-top:8px;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">NOTE 21:  Business <ix:nonNumeric contextRef="FD2019Q4YTD" name="us-gaap:BusinessCombinationDisclosureTextBlock" id="TextSelection-BD089F10A939A09700088095A1A888D9-0-wk-Fact-448C37113264EF59E4258095A1977FA0" continuedAt="TextSelection-BD089F10A939A09700088095A1A888D9-1" escape="true">Acquisitions</ix:nonNumeric></span></div><ix:continuation id="TextSelection-BD089F10A939A09700088095A1A888D9-1" continuedAt="TextSelection-BD089F10A939A09700088095A1A888D9-2"><div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">The Company completed </span><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9074118e640-wk-Fact-849F23CAF89FF66CBA2F8095A17CC2D0" name="us-gaap:NumberOfBusinessesAcquired" contextRef="FD2019Q4YTD" unitRef="acquisition" decimals="INF" scale="0" format="ixt-sec:numwordsen">one</ix:nonFraction></span></span><span style="font-family:Arial;font-size:10pt;"> business acquisition in 2019 and </span><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9074118e644-wk-Fact-8D84EB5AF4D3AFBAB9D2FD4E5AF63C84" name="us-gaap:NumberOfBusinessesAcquired" contextRef="FD2017Q4YTD" unitRef="acquisition" decimals="INF" scale="0" format="ixt-sec:numwordsen">two</ix:nonFraction></span></span><span style="font-family:Arial;font-size:10pt;"> business acquisitions in 2017.  All of these transactions were accounted for as business combinations.  Pro-forma information for these acquisitions is not presented because they are not significant, either individually or in the aggregate.  Revenue and earnings since the dates of the acquisitions included in the Company's Consolidated Statements of Operations are also not presented because they are not material.  </span><span style="font-family:Arial;font-size:10pt;background-color:#ffffff;">Transaction costs were immaterial and were expensed as incurred.</span><span style="font-family:Arial;font-size:10pt;"> </span></div><div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Assets acquired and liabilities assumed have been recorded at their estimated fair values as of the acquisition date.  Contingent consideration is remeasured each reporting period with changes in fair value recorded in "Other income (expense)" on the Consolidated Statements of Operations. </span></div><div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-style:italic;">Sualab Co., Ltd.</span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">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 </span><span style="font-family:Arial;font-size:10pt;"><span>$<ix:nonFraction id="d9074118e661-wk-Fact-637A6F14EE83BC7733AAFD535306CC6F" name="us-gaap:BusinessCombinationConsiderationTransferred1" contextRef="D2019Q4Oct16_us-gaap_BusinessAcquisitionAxis_cgnx_SualabCo.Ltd.Member" unitRef="usd" decimals="-3" scale="0" format="ixt:numdotdecimal">194,642,000</ix:nonFraction></span></span><span style="font-family:Arial;font-size:10pt;"> included cash payments of </span><span style="font-family:Arial;font-size:10pt;"><span>$<ix:nonFraction id="d9074118e665-wk-Fact-3335FA829DA432DBD534FD55CAF4D732" name="us-gaap:PaymentsToAcquireBusinessesGross" contextRef="D2019Q4Oct16_us-gaap_BusinessAcquisitionAxis_cgnx_SualabCo.Ltd.Member" unitRef="usd" decimals="-3" scale="0" format="ixt:numdotdecimal">170,602,000</ix:nonFraction></span></span><span style="font-family:Arial;font-size:10pt;"> upon closing.  The remaining consideration consists of deferred payments of </span><span style="font-family:Arial;font-size:10pt;"><span>$<ix:nonFraction id="d9074118e669-wk-Fact-DAEBA2DDD21164F50E7CFD56937064DB" name="us-gaap:BusinessCombinationContingentConsiderationLiability" contextRef="I2019Q3_us-gaap_BusinessAcquisitionAxis_cgnx_SualabCo.Ltd.Member" unitRef="usd" decimals="-3" scale="0" format="ixt:numdotdecimal">24,040,000</ix:nonFraction></span></span><span style="font-family:Arial;font-size:10pt;"> that may become payable on the fourth anniversary date of the closing, contingent upon continued employment of key talent, and will be recorded as compensation expense over this four year period. </span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Sualab's intellectual property, engineering expertise, and market coverage are expected to increase the Company's existing deep learning capabilities.  Combined with intellectual property acquired from ViDi Systems S.A. in 2017, the Company is now a leading provider of deep learning-based industrial vision software. </span></div></ix:continuation><div><br/></div><div style="text-align:center;"><div style="line-height:120%;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">70</span></div></div><hr style="page-break-after:always"></hr><div><div style="line-height:120%;font-size:9pt;"><a style="font-family:inherit;font-size:9pt;" href="#sCD449198B5695D85B5494CF5DF708C26"><span style="font-family:inherit;font-size:9pt;">Table of Contents</span></a></div></div><div><br/></div><ix:continuation id="TextSelection-BD089F10A939A09700088095A1A888D9-2" continuedAt="TextSelection-BD089F10A939A09700088095A1A888D9-3"><ix:continuation id="TextSelection-4465E9E377884D9A121EFD4D637F2B8B-0"><div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">The purchase price that was not related to employment was allocated as follows (in thousands):</span></div><div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><div style="padding-left:0px;text-indent:0px;line-height:normal;padding-top:10px;"><table cellpadding="0" cellspacing="0" style="font-family:Times New Roman;font-size:10pt;width:100%;border-collapse:collapse;text-align:left;"><tr><td colspan="4"></td></tr><tr><td style="width:86%;"></td><td style="width:1%;"></td><td style="width:12%;"></td><td style="width:1%;"></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Cash and cash equivalents</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9074118e705-wk-Fact-5C88EB4DEED733EE9D3CFD656C635A73" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCashAndEquivalents" contextRef="I2019Q3_us-gaap_BusinessAcquisitionAxis_cgnx_SualabCo.Ltd.Member" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">3,691</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Current investments</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9074118e720-wk-Fact-11D1B6E2E91A094CCBA7FD663CECA5A1" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsMarketableSecurities" contextRef="I2019Q3_us-gaap_BusinessAcquisitionAxis_cgnx_SualabCo.Ltd.Member" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">9,487</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Accounts receivable</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9074118e740-wk-Fact-A7F42F2B41F3773F3D57FD67A292BC28" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsReceivables" contextRef="I2019Q3_us-gaap_BusinessAcquisitionAxis_cgnx_SualabCo.Ltd.Member" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">1,200</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Inventories</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9074118e760-wk-Fact-39A22C351933D71439F8FD67BD38BC9B" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedInventory" contextRef="I2019Q3_us-gaap_BusinessAcquisitionAxis_cgnx_SualabCo.Ltd.Member" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">115</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Prepaid expenses and other current assets</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9074118e780-wk-Fact-59B0B20E93AF73290CA3FD67EF1A0879" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsPrepaidExpenseAndOtherAssets" contextRef="I2019Q3_us-gaap_BusinessAcquisitionAxis_cgnx_SualabCo.Ltd.Member" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">252</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Property, plant, and equipment</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9074118e800-wk-Fact-973B41DE7B523E0509C3FD689A1D25CB" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment" contextRef="I2019Q3_us-gaap_BusinessAcquisitionAxis_cgnx_SualabCo.Ltd.Member" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">726</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Operating lease assets</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9074118e820-wk-Fact-4E4E32AAE89D4E84E073FD6A8DFCD050" name="cgnx:BusinessCombinationRecognizedIdentifiableAssetsAcquiredandLiabilitiesAssumedOperatingLeaseRightofUseAsset" contextRef="I2019Q3_us-gaap_BusinessAcquisitionAxis_cgnx_SualabCo.Ltd.Member" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">2,792</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Deferred income tax asset</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9074118e840-wk-Fact-1324AC726FBA77D3026EFD6B005BE4D8" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxAssets" contextRef="I2019Q3_us-gaap_BusinessAcquisitionAxis_cgnx_SualabCo.Ltd.Member" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">3,087</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Other assets</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9074118e860-wk-Fact-A33883573C9296F901FBFD6B3BFF7CA8" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNoncurrentAssets" contextRef="I2019Q3_us-gaap_BusinessAcquisitionAxis_cgnx_SualabCo.Ltd.Member" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">513</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Accounts payable</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>(<ix:nonFraction id="d9074118e880-wk-Fact-B3CAEABAFDE77AC6147AFD6B58E60B76" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccountsPayable" contextRef="I2019Q3_us-gaap_BusinessAcquisitionAxis_cgnx_SualabCo.Ltd.Member" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">28</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">)</span></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Accrued expenses</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>(<ix:nonFraction id="d9074118e901-wk-Fact-80C3916B37FC3EC534BDFD6B8AD6E80F" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilities" contextRef="I2019Q3_us-gaap_BusinessAcquisitionAxis_cgnx_SualabCo.Ltd.Member" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">2,633</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">)</span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Deferred revenue and customer deposits</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>(<ix:nonFraction id="d9074118e923-wk-Fact-5719F5A2403AAAEB57E0FD6C5011FAA0" name="cgnx:BusinessCombinationRecognizedIdentifiableAssetsAcquiredandLiabilitiesAssumedCurrentLiabilitiesDeferredRevenueandCustomerDeposits" contextRef="I2019Q3_us-gaap_BusinessAcquisitionAxis_cgnx_SualabCo.Ltd.Member" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">764</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">)</span></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Operating lease liabilities</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>(<ix:nonFraction id="d9074118e944-wk-Fact-80C17D505890158BAEDDFD73D753BEE2" name="cgnx:BusinessCombinationRecognizedIdentifiableAssetsAcquiredandLiabilitiesAssumedOperatingLeaseLiabilityCurrent" contextRef="I2019Q3_us-gaap_BusinessAcquisitionAxis_cgnx_SualabCo.Ltd.Member" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">448</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">)</span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Non-current operating lease liabilities</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>(<ix:nonFraction id="d9074118e965-wk-Fact-FE4188BAE3F045238E3BFD76CFDD63AC" name="cgnx:BusinessCombinationRecognizedIdentifiableAssetsAcquiredandLiabilitiesAssumedOperatingLeaseLiabilityNoncurrent" contextRef="I2019Q3_us-gaap_BusinessAcquisitionAxis_cgnx_SualabCo.Ltd.Member" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">2,344</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">)</span></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Deferred income tax liabilities</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>(<ix:nonFraction id="d9074118e986-wk-Fact-CF7B2B9D2609EA1BE179FD776B5F6DA9" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesDeferredRevenue" contextRef="I2019Q3_us-gaap_BusinessAcquisitionAxis_cgnx_SualabCo.Ltd.Member" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">7,926</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">)</span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Other liabilities</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>(<ix:nonFraction id="d9074118e1007-wk-Fact-7CA9DD22679FCBE68004FD778256CF4D" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNoncurrentLiabilitiesOther" contextRef="I2019Q3_us-gaap_BusinessAcquisitionAxis_cgnx_SualabCo.Ltd.Member" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">10</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">)</span></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Completed technologies</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9074118e1028-wk-Fact-B77E70C512E0CCBE7649FD81DAEF40ED" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibleAssetsOtherThanGoodwill" contextRef="I2019Q3_us-gaap_BusinessAcquisitionAxis_cgnx_SualabCo.Ltd.Member_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_cgnx_CompletedTechnologyMember" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">18,300</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">In-process technologies</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9074118e1048-wk-Fact-A801643D896B03988909FD81DB0B2967" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibleAssetsOtherThanGoodwill" contextRef="I2019Q3_us-gaap_BusinessAcquisitionAxis_cgnx_SualabCo.Ltd.Member_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_cgnx_InprocessTechnologyMember" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">8,200</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Customer relationships</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9074118e1068-wk-Fact-A7C569BDCC65A2A31C29FD81DB214F81" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibleAssetsOtherThanGoodwill" contextRef="I2019Q3_us-gaap_BusinessAcquisitionAxis_cgnx_SualabCo.Ltd.Member_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_CustomerRelationshipsMember" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">5,800</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Non-compete agreements</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9074118e1088-wk-Fact-3A1682A2265B47381018FD81DB3D5EE1" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibleAssetsOtherThanGoodwill" contextRef="I2019Q3_us-gaap_BusinessAcquisitionAxis_cgnx_SualabCo.Ltd.Member_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_NoncompeteAgreementsMember" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">340</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Trademarks</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9074118e1108-wk-Fact-36F6830CCDA3370891B0FD81DB531B8D" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibleAssetsOtherThanGoodwill" contextRef="I2019Q3_us-gaap_BusinessAcquisitionAxis_cgnx_SualabCo.Ltd.Member_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_TrademarksMember" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">110</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Goodwill</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9074118e1128-wk-Fact-28BF9EA780EB88234753FD78EE00120B" name="us-gaap:Goodwill" contextRef="I2019Q3_us-gaap_BusinessAcquisitionAxis_cgnx_SualabCo.Ltd.Member" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">130,142</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:36px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Purchase price</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span><ix:nonFraction id="d9074118e1154-wk-Fact-058A8E4F51EAC1210F54FD79621F6724" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet" contextRef="I2019Q3_us-gaap_BusinessAcquisitionAxis_cgnx_SualabCo.Ltd.Member" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">170,602</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr></table></div><span style="font-family:inherit;font-size:10pt;"><br/></span></div></ix:continuation><div style="line-height:120%;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><br/></span></div><div style="line-height:120%;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">The completed technologies, in-process technologies, customer relationships, trademarks, and non-compete agreements are included in "Intangible assets" on the Consolidated Balance </span><span style="font-family:Arial;font-size:10pt;background-color:#ffffff;">Sheet.  The completed technologies are being amortized to cost of revenue over</span><span style="font-family:Arial;font-size:10pt;background-color:#ffffff;"> </span><span style="font-family:Arial;font-size:10pt;background-color:#ffffff;"><span><ix:nonNumeric id="d9074118e1171-wk-Fact-AC1A4506DB1DE9488A5017B18E53A2FF" name="us-gaap:AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife" contextRef="D2019Q4Oct16_us-gaap_BusinessAcquisitionAxis_cgnx_SualabCo.Ltd.Member_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_cgnx_CompletedTechnologyMember" format="ixt-sec:durwordsen">eight years</ix:nonNumeric></span></span><span style="font-family:Arial;font-size:10pt;background-color:#ffffff;">, the customer relationships are being amortized to SG&amp;A expenses over</span><span style="font-family:Arial;font-size:10pt;background-color:#ffffff;"> </span><span style="font-family:Arial;font-size:10pt;background-color:#ffffff;"><span><ix:nonNumeric id="d9074118e1177-wk-Fact-7FBADB9CD82368F4BBFA17B48D58A9DA" name="us-gaap:AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife" contextRef="D2019Q4Oct16_us-gaap_BusinessAcquisitionAxis_cgnx_SualabCo.Ltd.Member_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_CustomerRelationshipsMember" format="ixt-sec:durwordsen">seven years</ix:nonNumeric></span></span><span style="font-family:Arial;font-size:10pt;background-color:#ffffff;">, the trademarks are being amortized to SG&amp;A expenses over</span><span style="font-family:Arial;font-size:10pt;background-color:#ffffff;"> </span><span style="font-family:Arial;font-size:10pt;background-color:#ffffff;"><span><ix:nonNumeric id="d9074118e1183-wk-Fact-0E784963522944BD65CA17B33971BD3F" name="us-gaap:AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife" contextRef="D2019Q4Oct16_us-gaap_BusinessAcquisitionAxis_cgnx_SualabCo.Ltd.Member_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_TrademarksMember" format="ixt-sec:durwordsen">two years</ix:nonNumeric></span></span><span style="font-family:Arial;font-size:10pt;background-color:#ffffff;">, and the non-compete agreements are being amortized to RD&amp;E expenses over six to</span><span style="font-family:Arial;font-size:10pt;background-color:#ffffff;"> </span><span style="font-family:Arial;font-size:10pt;background-color:#ffffff;"><span><ix:nonNumeric id="d9074118e1190-wk-Fact-BA00A8F7192B5196AB81FD879B6AC329" name="us-gaap:AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife" contextRef="D2019Q4Oct16_srt_RangeAxis_srt_MaximumMember_us-gaap_BusinessAcquisitionAxis_cgnx_SualabCo.Ltd.Member_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_NoncompeteAgreementsMember" format="ixt-sec:durwordsen">seven years</ix:nonNumeric></span></span><span style="font-family:Arial;font-size:10pt;background-color:#ffffff;">.  The in-process technology will be amortized to cost of revenue over its estimated useful life once the technology is finalized.  The portion of the acquired goodwill deductible for tax purposes is</span><span style="font-family:Arial;font-size:10pt;background-color:#ffffff;"> </span><span style="font-family:Arial;font-size:10pt;background-color:#ffffff;"><span>$<ix:nonFraction id="d9074118e1196-wk-Fact-0891969405133F193866FD8E86E0AC6C" name="us-gaap:BusinessAcquisitionPurchasePriceAllocationGoodwillExpectedTaxDeductibleAmount" contextRef="I2019Q3_us-gaap_BusinessAcquisitionAxis_cgnx_SualabCo.Ltd.Member" unitRef="usd" decimals="-3" scale="0" format="ixt:numdotdecimal">104,609,000</ix:nonFraction></span></span><span style="font-family:Arial;font-size:10pt;background-color:#ffffff;">.</span></div><div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-style:italic;">GVi Ventures, Inc.</span></div><div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">On April 12, 2017, the Company acquired selected assets and assumed selected liabilities of GVi Ventures, Inc., a privately-held maker of pre-configured vision solutions for common automotive applications based in the United States.  The total purchase price of </span><span style="font-family:Arial;font-size:10pt;"><span>$<ix:nonFraction id="d9074118e1207-wk-Fact-1D7BA11E9C9E5962FEA18095A17CAB08" name="us-gaap:BusinessCombinationConsiderationTransferred1" contextRef="D2017Q2Apr12-Apr12_us-gaap_BusinessAcquisitionAxis_cgnx_GViVenturesInc.Member" unitRef="usd" decimals="-3" scale="0" format="ixt:numdotdecimal">5,368,000</ix:nonFraction></span></span><span style="font-family:Arial;font-size:10pt;"> included cash payment of </span><span style="font-family:Arial;font-size:10pt;"><span>$<ix:nonFraction id="d9074118e1211-wk-Fact-E8B724D8962E4A921ED38095A17C5878" name="us-gaap:PaymentsToAcquireBusinessesGross" contextRef="D2017Q2Apr12-Apr12_us-gaap_BusinessAcquisitionAxis_cgnx_GViVenturesInc.Member" unitRef="usd" decimals="-3" scale="0" format="ixt:numdotdecimal">4,069,000</ix:nonFraction></span></span><span style="font-family:Arial;font-size:10pt;"> and contingent consideration valued at </span><span style="font-family:Arial;font-size:10pt;"><span>$<ix:nonFraction id="d9074118e1215-wk-Fact-FE563A946524C3DB33288095A17BD0EE" name="us-gaap:BusinessCombinationContingentConsiderationLiability" contextRef="I2017Q2Apr12_us-gaap_BusinessAcquisitionAxis_cgnx_GViVenturesInc.Member" unitRef="usd" decimals="-3" scale="0" format="ixt:numdotdecimal">1,299,000</ix:nonFraction></span></span><span style="font-family:Arial;font-size:10pt;"> as of the acquisition date.  In addition, the Company entered into special incentive payments tied to employment, none of which are material, that are being recorded as compensation expense. </span></div><div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">The Company recorded fair value adjustments in non-operating expense totaling </span><span style="font-family:Arial;font-size:10pt;"><span>$<ix:nonFraction id="d9074118e1222-wk-Fact-99DBB7D28596A22540858095A17C1644" name="us-gaap:BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1" contextRef="FD2018Q4YTD_us-gaap_BusinessAcquisitionAxis_cgnx_GViVenturesInc.Member" unitRef="usd" decimals="-3" scale="0" format="ixt:numdotdecimal">282,000</ix:nonFraction></span></span><span style="font-family:Arial;font-size:10pt;"> in 2017 and </span><span style="font-family:Arial;font-size:10pt;"><span>$<ix:nonFraction id="d9074118e1226-wk-Fact-275831D786477DFAA7DB8095A185E7B4" name="us-gaap:BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1" contextRef="FD2019Q4YTD_us-gaap_BusinessAcquisitionAxis_cgnx_GViVenturesInc.Member" unitRef="usd" decimals="-3" scale="0" format="ixt:numdotdecimal">1,065,000</ix:nonFraction></span></span><span style="font-family:Arial;font-size:10pt;"> in 2018, and paid out </span><span style="font-family:Arial;font-size:10pt;"><span>$<ix:nonFraction id="d9074118e1230-wk-Fact-E878977F75F3DABF457DFD9416F602A5" name="us-gaap:PaymentsForPreviousAcquisition" contextRef="FD2018Q4YTD_us-gaap_BusinessAcquisitionAxis_cgnx_GViVenturesInc.Member" unitRef="usd" decimals="-3" scale="0" format="ixt:numdotdecimal">1,000,000</ix:nonFraction></span></span><span style="font-family:Arial;font-size:10pt;"> in 2018 of the contingent consideration.  In 2019, the remaining contingent consideration liability was reduced to </span><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9074118e1234-wk-Fact-FE95DF2C1C9913617B33FD96BB6C7C34" name="us-gaap:BusinessCombinationContingentConsiderationLiability" contextRef="FI2019Q4_us-gaap_BusinessAcquisitionAxis_cgnx_GViVenturesInc.Member" unitRef="usd" decimals="INF" scale="0" format="ixt-sec:numwordsen">zero</ix:nonFraction></span></span><span style="font-family:Arial;font-size:10pt;"> as a result of a lower level of revenue in the America's automotive industry.  The undiscounted potential outcomes related to future contingent consideration range from </span><span style="font-family:Arial;font-size:10pt;"><span>$<ix:nonFraction id="d9074118e1238-wk-Fact-63B8988ADC71716FA909FD965C5965B5" name="us-gaap:BusinessCombinationContingentConsiderationArrangementsChangeInTheRangeOfOutcomesContingentConsiderationLiabilityValueLow" contextRef="FD2019Q4YTD_us-gaap_BusinessAcquisitionAxis_cgnx_GViVenturesInc.Member" unitRef="usd" decimals="INF" scale="0" format="ixt:numdotdecimal">0</ix:nonFraction></span></span><span style="font-family:Arial;font-size:10pt;"> to </span><span style="font-family:Arial;font-size:10pt;"><span>$<ix:nonFraction id="d9074118e1243-wk-Fact-A031898215833FE170DAFD9612B977F9" name="us-gaap:BusinessCombinationContingentConsiderationArrangementsChangeInTheRangeOfOutcomesContingentConsiderationLiabilityValueHigh" contextRef="FD2019Q4YTD_us-gaap_BusinessAcquisitionAxis_cgnx_GViVenturesInc.Member" unitRef="usd" decimals="INF" scale="0" format="ixt:numdotdecimal">2,500,000</ix:nonFraction></span></span><span style="font-family:Arial;font-size:10pt;"> based upon certain revenue levels over the next three years. </span></div><div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Under this transaction, in addition to customer relationships and completed technologies, the Company acquired a team of software engineers that are expected to develop new products and increase the Company's ability to serve large customers in the automotive industry.  </span></div></ix:continuation><div><br/></div><div style="text-align:center;"><div style="line-height:120%;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">71</span></div></div><hr style="page-break-after:always"></hr><div><div style="line-height:120%;font-size:9pt;"><a style="font-family:inherit;font-size:9pt;" href="#sCD449198B5695D85B5494CF5DF708C26"><span style="font-family:inherit;font-size:9pt;">Table of Contents</span></a></div></div><div><br/></div><ix:continuation id="TextSelection-BD089F10A939A09700088095A1A888D9-3" continuedAt="TextSelection-BD089F10A939A09700088095A1A888D9-4"><ix:continuation id="TextSelection-28B3DB0F153443873E118095A1A8EF1B-0" continuedAt="TextSelection-4465E9E377884D9A121EFD4D637F2B8B-0"><div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">The purchase price was allocated as follows (in thousands):</span></div><div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><div style="padding-left:0px;text-indent:0px;line-height:normal;padding-top:10px;"><table cellpadding="0" cellspacing="0" style="font-family:Times New Roman;font-size:10pt;width:100%;border-collapse:collapse;text-align:left;"><tr><td colspan="4"></td></tr><tr><td style="width:86%;"></td><td style="width:1%;"></td><td style="width:12%;"></td><td style="width:1%;"></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Accounts receivable</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9074118e1282-wk-Fact-F12D659DA2A3E74A38828095A1709C3D" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsReceivables" contextRef="I2017Q2Apr12_us-gaap_BusinessAcquisitionAxis_cgnx_GViVenturesInc.Member" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">423</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Inventories</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9074118e1297-wk-Fact-083D099A548D0E6D93248095A17143A4" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedInventory" contextRef="I2017Q2Apr12_us-gaap_BusinessAcquisitionAxis_cgnx_GViVenturesInc.Member" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">120</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Prepaid expenses and other current assets</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9074118e1317-wk-Fact-5413F9D31CDDCCF172828095A171A6C5" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsPrepaidExpenseAndOtherAssets" contextRef="I2017Q2Apr12_us-gaap_BusinessAcquisitionAxis_cgnx_GViVenturesInc.Member" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">1</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Accounts payable</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>(<ix:nonFraction id="d9074118e1337-wk-Fact-24CDDC246809594A7C278095A1719417" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccountsPayable" contextRef="I2017Q2Apr12_us-gaap_BusinessAcquisitionAxis_cgnx_GViVenturesInc.Member" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">152</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">)</span></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Accrued expenses</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>(<ix:nonFraction id="d9074118e1358-wk-Fact-BBB7FC0607521EF879A88095A1997BD7" name="cgnx:BusinessCombinationRecognizedIdentifiableAssetsAcquiredandLiabilitiesAssumedCurrentLiabilitiesAccruedExpenses" contextRef="I2017Q2Apr12_us-gaap_BusinessAcquisitionAxis_cgnx_GViVenturesInc.Member" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">10</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">)</span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Completed technologies</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9074118e1379-wk-Fact-4BD78244B42EA1D44ADF8095A172637C" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles" contextRef="I2017Q2Apr12_us-gaap_BusinessAcquisitionAxis_cgnx_GViVenturesInc.Member_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_TechnologyBasedIntangibleAssetsMember" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">910</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Customer relationships</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9074118e1399-wk-Fact-E3685273DF2057CB0A428095A1998454" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles" contextRef="I2017Q2Apr12_us-gaap_BusinessAcquisitionAxis_cgnx_GViVenturesInc.Member_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_CustomerRelationshipsMember" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">2,600</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Goodwill</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9074118e1419-wk-Fact-0BE9A416E99DF2C355468095A19847BF" name="us-gaap:Goodwill" contextRef="I2017Q2Apr12_us-gaap_BusinessAcquisitionAxis_cgnx_GViVenturesInc.Member" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">1,476</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:36px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Purchase price</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span><ix:nonFraction id="d9074118e1444-wk-Fact-FA0171FCE055FB42ACA98095A172AFE4" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet" contextRef="I2017Q2Apr12_us-gaap_BusinessAcquisitionAxis_cgnx_GViVenturesInc.Member" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">5,368</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr></table></div><span style="font-family:inherit;font-size:10pt;"><br/></span></div></ix:continuation><div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">The customer relationships and completed technologies are included in "Intangible assets" on the Consolidated Balance </span><span style="font-family:Arial;font-size:10pt;background-color:#ffffff;">Sheet.  The customer relationships are being amort</span><span style="font-family:Arial;font-size:10pt;">ized to selling, general, and administrative e</span><span style="font-family:Arial;font-size:10pt;background-color:#ffffff;">xpenses over</span><span style="font-family:Arial;font-size:10pt;background-color:#ffffff;"> </span><span style="font-family:Arial;font-size:10pt;background-color:#ffffff;"><span><ix:nonNumeric id="d9074118e1466-wk-Fact-EC90556D08B2FBE08F4617C365032299" name="us-gaap:AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife" contextRef="D2017Q2Apr12-Apr12_us-gaap_BusinessAcquisitionAxis_cgnx_GViVenturesInc.Member_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_CustomerRelationshipsMember" format="ixt-sec:durwordsen">eight years</ix:nonNumeric></span></span><span style="font-family:Arial;font-size:10pt;background-color:#ffffff;">, and the completed technologies are being amortized to cost of revenue over</span><span style="font-family:Arial;font-size:10pt;background-color:#ffffff;"> </span><span style="font-family:Arial;font-size:10pt;background-color:#ffffff;"><span><ix:nonNumeric id="d9074118e1472-wk-Fact-82B8C92217624F38018917C1E178BBD2" name="us-gaap:AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife" contextRef="D2017Q2Apr12-Apr12_us-gaap_BusinessAcquisitionAxis_cgnx_GViVenturesInc.Member_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_TechnologyBasedIntangibleAssetsMember" format="ixt-sec:durwordsen">five years</ix:nonNumeric></span></span><span style="font-family:Arial;font-size:10pt;background-color:#ffffff;">, both on a straigh</span><span style="font-family:Arial;font-size:10pt;">t-line basis.  The portion of the acquired goodwill deductible for tax purposes is </span><span style="font-family:Arial;font-size:10pt;"><span>$<ix:nonFraction id="d9074118e1479-wk-Fact-327042132F1D9DA2BA6E8095A17A1916" name="us-gaap:BusinessAcquisitionPurchasePriceAllocationGoodwillExpectedTaxDeductibleAmount" contextRef="I2017Q2Apr12_us-gaap_BusinessAcquisitionAxis_cgnx_GViVenturesInc.Member" unitRef="usd" decimals="-3" scale="0" format="ixt:numdotdecimal">443,000</ix:nonFraction></span></span><span style="font-family:Arial;font-size:10pt;">. </span></div><div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-style:italic;">ViDi Systems S.A.</span></div><div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">On April 4, 2017, the Company acquired all of the outstanding shares of ViDi Systems, S.A. (ViDi), a privately-held vision software company based in Switzerland.  The total purchase price of </span><span style="font-family:Arial;font-size:10pt;"><span>$<ix:nonFraction id="d9074118e1489-wk-Fact-18D8317B442E20B007838095A17CD435" name="us-gaap:BusinessCombinationConsiderationTransferred1" contextRef="D2017Q2Apr04-Apr04_us-gaap_BusinessAcquisitionAxis_cgnx_ViDiSystemsS.A.Member" unitRef="usd" decimals="-3" scale="0" format="ixt:numdotdecimal">23,015,000</ix:nonFraction></span></span><span style="font-family:Arial;font-size:10pt;"> included cash payment of </span><span style="font-family:Arial;font-size:10pt;"><span>$<ix:nonFraction id="d9074118e1493-wk-Fact-17AFD4C138C9482899A78095A17DBCFA" name="us-gaap:PaymentsToAcquireBusinessesGross" contextRef="D2017Q2Apr04-Apr04_us-gaap_BusinessAcquisitionAxis_cgnx_ViDiSystemsS.A.Member" unitRef="usd" decimals="-3" scale="0" format="ixt:numdotdecimal">20,019,000</ix:nonFraction></span></span><span style="font-family:Arial;font-size:10pt;">, with the remaining </span><span style="font-family:Arial;font-size:10pt;"><span>$<ix:nonFraction id="d9074118e1497-wk-Fact-67077684DD70A2A601F08095A17CADBE" name="us-gaap:BusinessCombinationConsiderationTransferredLiabilitiesIncurred" contextRef="D2017Q2Apr04-Apr04_us-gaap_BusinessAcquisitionAxis_cgnx_ViDiSystemsS.A.Member" unitRef="usd" decimals="-3" scale="0" format="ixt:numdotdecimal">2,996,000</ix:nonFraction></span></span><span style="font-family:Arial;font-size:10pt;"> recorded as a holdback to secure potential claims under the agreement that was paid in 2018.  In addition, the Company entered into a special incentive payment tied to employment, which is not material, that is being recorded as compensation expense.</span></div><div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Under this transaction, in addition to completed technologies, the Company acquired a team of software engineers that are expected to help the Company broaden the scope of applications that can be addressed with Cognex vision.   ViDi's deep learning software solves complex applications that are too complicated and time-consuming to program and maintain with traditional machine vision rules-based algorithms.  Using feedback, ViDi's software trains the system to distinguish between acceptable variations and defects. </span></div><ix:nonNumeric contextRef="FD2019Q4YTD" name="us-gaap:ScheduleOfIndefiniteLivedIntangibleAssetsAcquiredAsPartOfBusinessCombinationTextBlock" id="TextSelection-F90F4445AC997D13BD5F8095A1A8282C-0-wk-Fact-3D41151FCBC08DE2855C8095A171BC5A" continuedAt="TextSelection-28B3DB0F153443873E118095A1A8EF1B-0" escape="true"><div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">The purchase price was allocated as follows (in thousands):</span></div><div style="line-height:120%;padding-top:8px;text-align:center;font-size:10pt;"><div style="padding-left:0px;text-indent:0px;line-height:normal;padding-top:10px;"><table cellpadding="0" cellspacing="0" style="font-family:Times New Roman;font-size:10pt;margin-left:auto;margin-right:auto;width:100%;border-collapse:collapse;text-align:left;"><tr><td colspan="4"></td></tr><tr><td style="width:86%;"></td><td style="width:1%;"></td><td style="width:12%;"></td><td style="width:1%;"></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Cash</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9074118e1536-wk-Fact-01627683A77FDBFD511D8095A17C0DAE" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCashAndEquivalents" contextRef="I2017Q2Apr04_us-gaap_BusinessAcquisitionAxis_cgnx_ViDiSystemsS.A.Member" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">146</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Accounts receivable</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9074118e1551-wk-Fact-90C27B84955C7563BE6C8095A1989FE7" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsReceivables" contextRef="I2017Q2Apr04_us-gaap_BusinessAcquisitionAxis_cgnx_ViDiSystemsS.A.Member" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">425</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Prepaid expenses and other current assets</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9074118e1571-wk-Fact-D96C2000205EF6185CAC8095A172A970" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsPrepaidExpenseAndOtherAssets" contextRef="I2017Q2Apr04_us-gaap_BusinessAcquisitionAxis_cgnx_ViDiSystemsS.A.Member" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">129</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Property, plant, and equipment</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9074118e1591-wk-Fact-87DE1B3E6ADDF6EF0EC88095A1719F33" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment" contextRef="I2017Q2Apr04_us-gaap_BusinessAcquisitionAxis_cgnx_ViDiSystemsS.A.Member" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">40</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Deferred income tax asset</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9074118e1611-wk-Fact-4836D083B048A1D6DA988095A198A427" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxAssets" contextRef="I2017Q2Apr04_us-gaap_BusinessAcquisitionAxis_cgnx_ViDiSystemsS.A.Member" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">620</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Accounts payable</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>(<ix:nonFraction id="d9074118e1631-wk-Fact-0BCA833138BE45A6122E8095A1982FD8" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccountsPayable" contextRef="I2017Q2Apr04_us-gaap_BusinessAcquisitionAxis_cgnx_ViDiSystemsS.A.Member" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">98</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">)</span></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Accrued expenses</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>(<ix:nonFraction id="d9074118e1652-wk-Fact-7F135D4FE77619BB82138095A171347A" name="cgnx:BusinessCombinationRecognizedIdentifiableAssetsAcquiredandLiabilitiesAssumedCurrentLiabilitiesAccruedExpenses" contextRef="I2017Q2Apr04_us-gaap_BusinessAcquisitionAxis_cgnx_ViDiSystemsS.A.Member" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">716</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">)</span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Deferred income tax liability</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>(<ix:nonFraction id="d9074118e1673-wk-Fact-CDF9818F9D3D39C5D8088095A171BE9B" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxLiabilities" contextRef="I2017Q2Apr04_us-gaap_BusinessAcquisitionAxis_cgnx_ViDiSystemsS.A.Member" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">1,008</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">)</span></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Non-compete agreement</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9074118e1694-wk-Fact-E29037B4B1245768CDE08095A198FCE1" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles" contextRef="I2017Q2Apr04_us-gaap_BusinessAcquisitionAxis_cgnx_ViDiSystemsS.A.Member_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_NoncompeteAgreementsMember" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">370</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Completed technologies</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9074118e1714-wk-Fact-E43282F2BEEF71261AE28095A16B2A82" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles" contextRef="I2017Q2Apr04_us-gaap_BusinessAcquisitionAxis_cgnx_ViDiSystemsS.A.Member_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_TechnologyBasedIntangibleAssetsMember" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">4,774</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Goodwill</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9074118e1734-wk-Fact-33BBB06A300EEFBD19C18095A172A34F" name="us-gaap:Goodwill" contextRef="I2017Q2Apr04_us-gaap_BusinessAcquisitionAxis_cgnx_ViDiSystemsS.A.Member" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">18,333</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:36px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Purchase price</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span><ix:nonFraction id="d9074118e1760-wk-Fact-8CDEFAD563A0F55F52878095A1986989" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet" contextRef="I2017Q2Apr04_us-gaap_BusinessAcquisitionAxis_cgnx_ViDiSystemsS.A.Member" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">23,015</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr></table></div><span style="font-family:inherit;font-size:10pt;"><br/></span></div></ix:nonNumeric></ix:continuation><div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><ix:continuation id="TextSelection-BD089F10A939A09700088095A1A888D9-4"><span style="font-family:Arial;font-size:10pt;">The non-compete agreement and completed technology are included in "Intangible assets" on the Consolidated Balance Sheet.  The non-compete agreement are being amortized to research, development and engineering expenses over </span><span style="font-family:Arial;font-size:10pt;"><span><ix:nonNumeric id="d9074118e1775-wk-Fact-811FE2EBB632271B338017CA7C3AC18D" name="us-gaap:AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife" contextRef="D2017Q2Apr04-Apr04_us-gaap_BusinessAcquisitionAxis_cgnx_ViDiSystemsS.A.Member_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_NoncompeteAgreementsMember" format="ixt-sec:durwordsen">three years</ix:nonNumeric></span></span><span style="font-family:Arial;font-size:10pt;">, and the completed technology are being amortized to cost of revenue over </span><span style="font-family:Arial;font-size:10pt;"><span><ix:nonNumeric id="d9074118e1779-wk-Fact-931D0F9237D32429E8C417C95983B23D" name="us-gaap:AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife" contextRef="D2017Q2Apr04-Apr04_us-gaap_BusinessAcquisitionAxis_cgnx_ViDiSystemsS.A.Member_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_TechnologyBasedIntangibleAssetsMember" format="ixt-sec:durwordsen">six years</ix:nonNumeric></span></span><span style="font-family:Arial;font-size:10pt;">, both on a straight-line basis.  The portion of the acquired goodwill deductible for tax purposes is </span><span style="font-family:Arial;font-size:10pt;"><span>$<ix:nonFraction id="d9074118e1783-wk-Fact-502E9A5098C44BE39E7A8095A199E0FF" name="cgnx:Taxdeductiblegoodwill" contextRef="I2017Q2Apr04_us-gaap_BusinessAcquisitionAxis_cgnx_ViDiSystemsS.A.Member" unitRef="usd" decimals="-3" scale="0" format="ixt:numdotdecimal">5,112,000</ix:nonFraction></span></span><span style="font-family:Arial;font-size:10pt;">.</span></ix:continuation><span style="font-family:Arial;font-size:10pt;"> </span></div><div><a id="sBBE2FB8C93005E5B8FB8656051E87B48"></a></div><div style="line-height:120%;padding-top:8px;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">NOTE 22:  <ix:nonNumeric contextRef="FD2019Q4YTD" name="us-gaap:SubsequentEventsTextBlock" id="TextSelection-A5E4658F70D98CE105768095A1A8DBDF-0-wk-Fact-3015DE184542CE640AE98095A1966EB2" continuedAt="TextSelection-A5E4658F70D98CE105768095A1A8DBDF-1" escape="true">Subsequent Events</ix:nonNumeric></span></div><ix:continuation id="TextSelection-A5E4658F70D98CE105768095A1A8DBDF-1"><div style="line-height:120%;padding-top:8px;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">On February 13, 2020, the Company's Board of Directors declared a cash dividend of </span><span style="font-family:Arial;font-size:10pt;"><span>$<ix:nonFraction id="d9072824e640-wk-Fact-89B04E442D32320FA1F98095A197EED9" name="us-gaap:DividendsPayableAmountPerShare" contextRef="I2020Q1_us-gaap_SubsequentEventTypeAxis_us-gaap_SubsequentEventMember" unitRef="usdPerShare" decimals="INF" scale="0" format="ixt:numdotdecimal">0.055</ix:nonFraction></span></span><span style="font-family:Arial;font-size:10pt;"> per share.  The dividend is payable </span><span style="font-family:Arial;font-size:10pt;"><span><span style="white-space:nowrap"><ix:nonNumeric id="d9072824e644-wk-Fact-AA38E464F2F5CEEB3E1F8095A17A8B99" name="us-gaap:DividendsPayableDateDeclaredDayMonthAndYear" contextRef="D2020Q1_us-gaap_SubsequentEventTypeAxis_us-gaap_SubsequentEventMember" format="ixt:datemonthdayyearen">March 13, 2020</ix:nonNumeric></span></span></span><span style="font-family:Arial;font-size:10pt;"> to all shareholders of record as of the close of business on </span><span style="font-family:Arial;font-size:10pt;"><span><span style="white-space:nowrap"><ix:nonNumeric id="d9072824e648-wk-Fact-6CEC9731C92CC15F9CF38095A1732CAE" name="us-gaap:DividendsPayableDateOfRecordDayMonthAndYear" contextRef="D2020Q1_us-gaap_SubsequentEventTypeAxis_us-gaap_SubsequentEventMember" format="ixt:datemonthdayyearen">February 28, 2020</ix:nonNumeric></span></span></span><span style="font-family:Arial;font-size:10pt;">.</span></div></ix:continuation><div><br/></div><div style="text-align:center;"><div style="line-height:120%;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">72</span></div></div><hr style="page-break-after:always"></hr><div><a id="s6D6286318AC2577392B7E8E47A52C597"></a></div><div><div style="line-height:120%;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">COGNEX CORPORATION - SELECTED QUARTERLY FINANCIAL DATA (UNAUDITED)</span></div><div style="line-height:120%;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></div><div><br/></div><ix:nonNumeric contextRef="FD2019Q4YTD" name="us-gaap:QuarterlyFinancialInformationTextBlock" id="TextSelection-8EDA4F43255B7549B2B98095A1A8C561-0-wk-Fact-02B64052736790F248D38095A17C7B1E" escape="true"><ix:nonNumeric contextRef="FD2019Q4YTD" name="us-gaap:ScheduleOfQuarterlyFinancialInformationTableTextBlock" id="TextSelection-E8ECB086D8CAEFB6DE178095A1A8DDA7-0-wk-Fact-2998E20FAA57570F49BA8095A17C5D5D" escape="true"><div style="line-height:120%;text-align:center;font-size:10pt;"><div style="padding-left:0px;text-indent:0px;line-height:normal;padding-top:10px;"><table cellpadding="0" cellspacing="0" style="font-family:Times New Roman;font-size:10pt;margin-left:auto;margin-right:auto;width:100%;border-collapse:collapse;text-align:left;"><tr><td colspan="16"></td></tr><tr><td style="width:53%;"></td><td style="width:1%;"></td><td style="width:9%;"></td><td style="width:1%;"></td><td style="width:1%;"></td><td style="width:1%;"></td><td style="width:9%;"></td><td style="width:1%;"></td><td style="width:1%;"></td><td style="width:1%;"></td><td style="width:9%;"></td><td style="width:1%;"></td><td style="width:1%;"></td><td style="width:1%;"></td><td style="width:9%;"></td><td style="width:1%;"></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;color:#ee2724;">&#160;</span></div></td><td colspan="15" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;">Quarter Ended</span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;color:#ee2724;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:7pt;"><span style="font-family:Arial;font-size:7pt;font-weight:bold;">March 31,                             2019</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:7pt;"><span style="font-family:Arial;font-size:7pt;font-weight:bold;">June 30,                                 2019</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:7pt;"><span style="font-family:Arial;font-size:7pt;font-weight:bold;">September 29,                           2019</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:7pt;"><span style="font-family:Arial;font-size:7pt;font-weight:bold;">December&#160;31,<br/>2019</span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;">&#160;</span></div></td><td colspan="15" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">(In thousands, except per share amounts)</span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;">Revenue</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;"><span><ix:nonFraction id="d9078709e916-wk-Fact-0F3D5AFD180ED4C710508095A17C6F61" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" contextRef="FD2018Q1QTD" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">173,484</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;"><span><ix:nonFraction id="d9078709e935-wk-Fact-2AEE00AD41DEDFDC36558095A182F2C7" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" contextRef="FD2018Q2QTD" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">199,047</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;"><span><ix:nonFraction id="d9078709e954-wk-Fact-A13214538EC8FB6D8ECA8095A19083CB" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" contextRef="FD2018Q3QTD" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">183,325</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;"><span><ix:nonFraction id="d9078709e974-wk-Fact-B6F1583CF9D9BAA053A58095A17A0AF8" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" contextRef="FD2018Q4QTD" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">169,769</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;">Gross margin</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;"><span><ix:nonFraction id="d9078709e989-wk-Fact-76218B24ECBAD1824E658095A172DF0E" name="us-gaap:GrossProfit" contextRef="FD2018Q1QTD" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">127,200</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;"><span><ix:nonFraction id="d9078709e1008-wk-Fact-BD48B730ECF0E6C1B7478095A17A395D" name="us-gaap:GrossProfit" contextRef="FD2018Q2QTD" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">148,080</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;"><span><ix:nonFraction id="d9078709e1027-wk-Fact-2CEA2D8D97A0320FFF698095A17B69D8" name="us-gaap:GrossProfit" contextRef="FD2018Q3QTD" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">135,693</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;"><span><ix:nonFraction id="d9078709e1047-wk-Fact-A99FD87EBD0677D598278095A17C1AD5" name="us-gaap:GrossProfit" contextRef="FD2018Q4QTD" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">124,898</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;">Operating income</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;"><span><ix:nonFraction id="d9078709e1067-wk-Fact-7C09B9903B72A023AA808095A17A81A9" name="us-gaap:OperatingIncomeLoss" contextRef="FD2018Q1QTD" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">30,147</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;"><span><ix:nonFraction id="d9078709e1086-wk-Fact-F40D42F67F6266FE45388095A17B1884" name="us-gaap:OperatingIncomeLoss" contextRef="FD2018Q2QTD" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">51,756</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;"><span><ix:nonFraction id="d9078709e1105-wk-Fact-8C5B008D76B94430B1958095A17151D7" name="us-gaap:OperatingIncomeLoss" contextRef="FD2018Q3QTD" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">43,092</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;"><span><ix:nonFraction id="d9078709e1125-wk-Fact-D5F331CD899920F7DAC08095A17C2B93" name="us-gaap:OperatingIncomeLoss" contextRef="FD2018Q4QTD" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">17,607</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:13px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:13px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:13px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:13px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:13px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:13px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:13px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:13px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;">Net income</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;"><span><ix:nonFraction id="d9078709e1232-wk-Fact-D5578E1170B89D5F74E38095A18D05EE" name="us-gaap:NetIncomeLoss" contextRef="FD2018Q1QTD" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">33,104</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;"><span><ix:nonFraction id="d9078709e1251-wk-Fact-6473E2F43C985901CF948095A18D7790" name="us-gaap:NetIncomeLoss" contextRef="FD2018Q2QTD" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">48,749</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;"><span><ix:nonFraction id="d9078709e1270-wk-Fact-445525DB6B298C47ED6D8095A17CECF0" name="us-gaap:NetIncomeLoss" contextRef="FD2018Q3QTD" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">41,685</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;"><span><ix:nonFraction id="d9078709e1290-wk-Fact-A45C846CB093036178468095A182AB74" name="us-gaap:NetIncomeLoss" contextRef="FD2018Q4QTD" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">80,327</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:13px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:13px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:13px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:13px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:13px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:13px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:13px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:13px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;">Basic net income per share</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;"><span><ix:nonFraction id="d9078709e1392-wk-Fact-E0CCC95456D13D06C3798095A17B4409" name="us-gaap:EarningsPerShareBasic" contextRef="FD2018Q1QTD" unitRef="usdPerShare" decimals="2" scale="0" format="ixt:numdotdecimal">0.19</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;"><span><ix:nonFraction id="d9078709e1411-wk-Fact-A2AFAA983C37044FBAB28095A17C97B5" name="us-gaap:EarningsPerShareBasic" contextRef="FD2018Q2QTD" unitRef="usdPerShare" decimals="2" scale="0" format="ixt:numdotdecimal">0.28</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;"><span><ix:nonFraction id="d9078709e1430-wk-Fact-C384FDB707F6EFD87AEB8095A17AA09A" name="us-gaap:EarningsPerShareBasic" contextRef="FD2018Q3QTD" unitRef="usdPerShare" decimals="2" scale="0" format="ixt:numdotdecimal">0.24</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;"><span><ix:nonFraction id="d9078709e1450-wk-Fact-198AD9898DB0CAF58D268095A1871E47" name="us-gaap:EarningsPerShareBasic" contextRef="FD2018Q4QTD" unitRef="usdPerShare" decimals="2" scale="0" format="ixt:numdotdecimal">0.47</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;">Diluted net income per share</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;"><span><ix:nonFraction id="d9078709e1470-wk-Fact-DE41B93CE9099F3C2AE98095A17C2523" name="us-gaap:EarningsPerShareDiluted" contextRef="FD2018Q1QTD" unitRef="usdPerShare" decimals="2" scale="0" format="ixt:numdotdecimal">0.19</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;"><span><ix:nonFraction id="d9078709e1489-wk-Fact-61DF10345D2563EA48598095A17CB34A" name="us-gaap:EarningsPerShareDiluted" contextRef="FD2018Q2QTD" unitRef="usdPerShare" decimals="2" scale="0" format="ixt:numdotdecimal">0.28</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;"><span><ix:nonFraction id="d9078709e1508-wk-Fact-C338B540480747BF07478095A17CA1C5" name="us-gaap:EarningsPerShareDiluted" contextRef="FD2018Q3QTD" unitRef="usdPerShare" decimals="2" scale="0" format="ixt:numdotdecimal">0.24</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;"><span><ix:nonFraction id="d9078709e1528-wk-Fact-675FB3CEB3AA26E788DF8095A17A4274" name="us-gaap:EarningsPerShareDiluted" contextRef="FD2018Q4QTD" unitRef="usdPerShare" decimals="2" scale="0" format="ixt:numdotdecimal">0.46</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr></table></div></div><div style="line-height:120%;padding-top:12px;text-align:center;font-size:10pt;"><div style="padding-left:0px;text-indent:0px;line-height:normal;padding-top:10px;"><table cellpadding="0" cellspacing="0" style="font-family:Times New Roman;font-size:10pt;margin-left:auto;margin-right:auto;width:100%;border-collapse:collapse;text-align:left;"><tr><td colspan="16"></td></tr><tr><td style="width:53%;"></td><td style="width:1%;"></td><td style="width:9%;"></td><td style="width:1%;"></td><td style="width:1%;"></td><td style="width:1%;"></td><td style="width:9%;"></td><td style="width:1%;"></td><td style="width:1%;"></td><td style="width:1%;"></td><td style="width:9%;"></td><td style="width:1%;"></td><td style="width:1%;"></td><td style="width:1%;"></td><td style="width:9%;"></td><td style="width:1%;"></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;">&#160;</span></div></td><td colspan="15" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;">Quarter Ended</span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;border-top:1px solid #000000;"><div style="text-align:center;font-size:7pt;"><span style="font-family:Arial;font-size:7pt;font-weight:bold;">April 1,                        2018</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;border-top:1px solid #000000;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;border-top:1px solid #000000;"><div style="text-align:center;font-size:7pt;"><span style="font-family:Arial;font-size:7pt;font-weight:bold;">July 1,                                 2018</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;border-top:1px solid #000000;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;border-top:1px solid #000000;"><div style="text-align:center;font-size:7pt;"><span style="font-family:Arial;font-size:7pt;font-weight:bold;">September 30,                           2018</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;border-top:1px solid #000000;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;border-top:1px solid #000000;"><div style="text-align:center;font-size:7pt;"><span style="font-family:Arial;font-size:7pt;font-weight:bold;">December&#160;31,</span></div><div style="text-align:center;font-size:7pt;"><span style="font-family:Arial;font-size:7pt;font-weight:bold;">2018</span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;">&#160;</span></div></td><td colspan="15" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">(In thousands, except per share amounts)</span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;">Revenue</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;"><span><ix:nonFraction id="d9078709e1819-wk-Fact-3920CB17D50C4C7E31118095A186DFB8" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" contextRef="FD2017Q1QTD" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">169,567</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;"><span><ix:nonFraction id="d9078709e1838-wk-Fact-BDFADE43B52F26242F578095A1868239" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" contextRef="FD2017Q2QTD" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">211,264</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;"><span><ix:nonFraction id="d9078709e1857-wk-Fact-0D47646625B7A55C88B68095A186D2BE" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" contextRef="FD2017Q3QTD" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">232,221</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;"><span><ix:nonFraction id="d9078709e1877-wk-Fact-E070F7CD5428A6D36EF78095A1866DA9" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" contextRef="FD2017Q4QTD" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">193,286</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;">Gross margin</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;"><span><ix:nonFraction id="d9078709e1892-wk-Fact-CC8C7B729AC3A6E3852C8095A18682DD" name="us-gaap:GrossProfit" contextRef="FD2017Q1QTD" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">129,369</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;"><span><ix:nonFraction id="d9078709e1911-wk-Fact-7656529E037498B80CE98095A17C46F4" name="us-gaap:GrossProfit" contextRef="FD2017Q2QTD" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">157,095</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;"><span><ix:nonFraction id="d9078709e1930-wk-Fact-880A0D9DADC95E28A1CD8095A1854925" name="us-gaap:GrossProfit" contextRef="FD2017Q3QTD" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">173,361</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;"><span><ix:nonFraction id="d9078709e1950-wk-Fact-B464132035DF5045367E8095A17C1E82" name="us-gaap:GrossProfit" contextRef="FD2017Q4QTD" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">140,461</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;">Operating income</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;"><span><ix:nonFraction id="d9078709e1970-wk-Fact-0E76742FEA1ADDD4F8DA8095A1868115" name="us-gaap:OperatingIncomeLoss" contextRef="FD2017Q1QTD" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">34,596</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;"><span><ix:nonFraction id="d9078709e1989-wk-Fact-04B78E66E1ADC131DC598095A17CDBCB" name="us-gaap:OperatingIncomeLoss" contextRef="FD2017Q2QTD" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">63,455</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;"><span><ix:nonFraction id="d9078709e2008-wk-Fact-69C20E0FCCDEE049E4438095A185077A" name="us-gaap:OperatingIncomeLoss" contextRef="FD2017Q3QTD" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">77,844</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;"><span><ix:nonFraction id="d9078709e2028-wk-Fact-D653218595578EE2CB0F8095A18C3AFE" name="us-gaap:OperatingIncomeLoss" contextRef="FD2017Q4QTD" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">45,247</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:13px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:13px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:13px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:13px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:13px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:13px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:13px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:13px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;">Net income</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;"><span><ix:nonFraction id="d9078709e2135-wk-Fact-79E12800BDA3FAF722788095A1858389" name="us-gaap:NetIncomeLoss" contextRef="FD2017Q1QTD" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">37,217</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;"><span><ix:nonFraction id="d9078709e2154-wk-Fact-0AB620A4E6AC09D08F5E8095A1854DE6" name="us-gaap:NetIncomeLoss" contextRef="FD2017Q2QTD" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">56,196</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;"><span><ix:nonFraction id="d9078709e2173-wk-Fact-8DB6F42D0F6AAAA648D48095A17C357C" name="us-gaap:NetIncomeLoss" contextRef="FD2017Q3QTD" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">80,436</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;"><span><ix:nonFraction id="d9078709e2193-wk-Fact-71E6715CBE47C8DFE2938095A17C5E16" name="us-gaap:NetIncomeLoss" contextRef="FD2017Q4QTD" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">45,418</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:13px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:13px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:13px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:13px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:13px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:13px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:13px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:13px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;">Basic net income per share</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;"><span><ix:nonFraction id="d9078709e2295-wk-Fact-C27190E20EFAA3BC73F98095A18793E7" name="us-gaap:EarningsPerShareBasic" contextRef="FD2017Q1QTD" unitRef="usdPerShare" decimals="2" scale="0" format="ixt:numdotdecimal">0.21</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;"><span><ix:nonFraction id="d9078709e2314-wk-Fact-8EC5F5D9BD734083F7F38095A17C2C84" name="us-gaap:EarningsPerShareBasic" contextRef="FD2017Q2QTD" unitRef="usdPerShare" decimals="2" scale="0" format="ixt:numdotdecimal">0.33</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;"><span><ix:nonFraction id="d9078709e2333-wk-Fact-14335D8C6430ED3321FD8095A18589F1" name="us-gaap:EarningsPerShareBasic" contextRef="FD2017Q3QTD" unitRef="usdPerShare" decimals="2" scale="0" format="ixt:numdotdecimal">0.47</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;"><span><ix:nonFraction id="d9078709e2353-wk-Fact-D149391872D6571B1D288095A1864389" name="us-gaap:EarningsPerShareBasic" contextRef="FD2017Q4QTD" unitRef="usdPerShare" decimals="2" scale="0" format="ixt:numdotdecimal">0.26</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;">Diluted net income per share</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;"><span><ix:nonFraction id="d9078709e2373-wk-Fact-88198E2D41D3A77972E68095A185A367" name="us-gaap:EarningsPerShareDiluted" contextRef="FD2017Q1QTD" unitRef="usdPerShare" decimals="2" scale="0" format="ixt:numdotdecimal">0.21</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;"><span><ix:nonFraction id="d9078709e2392-wk-Fact-B1009FCA9253C6B9FD2B8095A18678C0" name="us-gaap:EarningsPerShareDiluted" contextRef="FD2017Q2QTD" unitRef="usdPerShare" decimals="2" scale="0" format="ixt:numdotdecimal">0.32</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;"><span><ix:nonFraction id="d9078709e2411-wk-Fact-5629BF34845CE9940A688095A1709EF0" name="us-gaap:EarningsPerShareDiluted" contextRef="FD2017Q3QTD" unitRef="usdPerShare" decimals="2" scale="0" format="ixt:numdotdecimal">0.45</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;"><span><ix:nonFraction id="d9078709e2431-wk-Fact-1B693266F959B0690E848095A187CC10" name="us-gaap:EarningsPerShareDiluted" contextRef="FD2017Q4QTD" unitRef="usdPerShare" decimals="2" scale="0" format="ixt:numdotdecimal">0.26</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr></table></div><span style="font-family:inherit;font-size:10pt;"><br/></span></div></ix:nonNumeric><div style="line-height:120%;font-size:9pt;"><span style="font-family:inherit;font-size:9pt;"><br/></span></div></ix:nonNumeric><div><br/></div><div style="text-align:center;"><div style="line-height:120%;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">73</span></div></div><hr style="page-break-after:always"></hr><div><a id="s23839431187757F4810E6F30D5A0908E"></a></div><div><div style="line-height:120%;font-size:9pt;"><a style="font-family:inherit;font-size:9pt;" href="#sCD449198B5695D85B5494CF5DF708C26"><span style="font-family:inherit;font-size:9pt;">Table of Contents</span></a></div></div><div><br/></div><div style="line-height:120%;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">COGNEX CORPORATION &#8211; <ix:nonNumeric contextRef="FD2019Q4YTD" name="srt:ScheduleOfValuationAndQualifyingAccountsDisclosureTextBlock" id="TextSelection-20F28FE9E976D6378BB18095A1A8F99D-0-wk-Fact-C6944E86A28583F59EEF8095A17AF6B7" continuedAt="TextSelection-20F28FE9E976D6378BB18095A1A8F99D-1" escape="true">SCHEDULE II &#8211; VALUATION AND QUALIFYING ACCOUNTS</ix:nonNumeric></span></div><ix:continuation id="TextSelection-20F28FE9E976D6378BB18095A1A8F99D-1" continuedAt="TextSelection-20F28FE9E976D6378BB18095A1A8F99D-2"><div style="line-height:120%;font-size:10pt;"><div style="padding-left:0px;text-indent:0px;line-height:normal;padding-top:10px;"><table cellpadding="0" cellspacing="0" style="font-family:Times New Roman;font-size:10pt;width:100%;border-collapse:collapse;text-align:left;"><tr><td colspan="25"></td></tr><tr><td style="width:28%;"></td><td style="width:1%;"></td><td style="width:1%;"></td><td style="width:8%;"></td><td style="width:1%;"></td><td style="width:1%;"></td><td style="width:1%;"></td><td style="width:8%;"></td><td style="width:1%;"></td><td style="width:1%;"></td><td style="width:1%;"></td><td style="width:8%;"></td><td style="width:1%;"></td><td style="width:1%;"></td><td style="width:1%;"></td><td style="width:8%;"></td><td style="width:1%;"></td><td style="width:4%;"></td><td style="width:1%;"></td><td style="width:8%;"></td><td style="width:1%;"></td><td style="width:4%;"></td><td style="width:1%;"></td><td style="width:8%;"></td><td style="width:1%;"></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="7" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;">Additions</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;">&#160;</span></div></td></tr><tr><td style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;">Description</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;">Balance&#160;at</span></div><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;">Beginning</span></div><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;">of Period</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;">Charged&#160;to</span></div><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;">Costs and</span></div><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;">Expenses</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;">Charged</span></div><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;">to Other</span></div><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;">Accounts</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;">Deductions</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;">Other</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;">Balance&#160;at</span></div><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;">End of</span></div><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;">Period</span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="23" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">(In thousands)</span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Reserve&#160;for&#160;Uncollectible Accounts Receivable and Sales Returns:</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td></tr><tr><td style="vertical-align:top;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">2019</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9079139e1228-wk-Fact-87E4FC26CB72303A53708095A17BF063" name="us-gaap:ValuationAllowancesAndReservesBalance" contextRef="FI2018Q4_us-gaap_ValuationAllowancesAndReservesTypeAxis_us-gaap_UncollectibleReceivablesMember" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">1,646</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9079139e1247-wk-Fact-7B6C589C200613BAD24D8095A17C6A10" name="us-gaap:ValuationAllowancesAndReservesChargedToCostAndExpense" contextRef="FD2019Q4YTD_us-gaap_ValuationAllowancesAndReservesTypeAxis_us-gaap_UncollectibleReceivablesMember" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">440</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">&#8212;</span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>(<ix:nonFraction id="d9079139e1286-wk-Fact-A65365A258FB3647599F8095A17DAC72" name="us-gaap:ValuationAllowancesAndReservesDeductions" contextRef="FD2019Q4YTD_us-gaap_ValuationAllowancesAndReservesTypeAxis_us-gaap_UncollectibleReceivablesMember" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">286</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">)</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">(a)&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9079139e1306-wk-Fact-879A387494417E59E1988095A18341E4" name="us-gaap:ValuationAllowancesAndReservesAdjustments" contextRef="FD2019Q4YTD_us-gaap_ValuationAllowancesAndReservesTypeAxis_us-gaap_UncollectibleReceivablesMember" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">21</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">(b)&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9079139e1326-wk-Fact-8222489A5C62A576883C8095A18346F1" name="us-gaap:ValuationAllowancesAndReservesBalance" contextRef="FI2019Q4_us-gaap_ValuationAllowancesAndReservesTypeAxis_us-gaap_UncollectibleReceivablesMember" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">1,821</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">2018</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9079139e1351-wk-Fact-89C9C310EEFCB41784538095A17B2DE3" name="us-gaap:ValuationAllowancesAndReservesBalance" contextRef="FI2017Q4_us-gaap_ValuationAllowancesAndReservesTypeAxis_us-gaap_UncollectibleReceivablesMember" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">1,568</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9079139e1370-wk-Fact-E177AF9ACCD4716C4AD08095A183160F" name="us-gaap:ValuationAllowancesAndReservesChargedToCostAndExpense" contextRef="FD2018Q4YTD_us-gaap_ValuationAllowancesAndReservesTypeAxis_us-gaap_UncollectibleReceivablesMember" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">464</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">&#8212;</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>(<ix:nonFraction id="d9079139e1409-wk-Fact-1FFB429A537E4C5CE51F8095A1857350" name="us-gaap:ValuationAllowancesAndReservesDeductions" contextRef="FD2018Q4YTD_us-gaap_ValuationAllowancesAndReservesTypeAxis_us-gaap_UncollectibleReceivablesMember" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">343</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">)</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">(a)&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>(<ix:nonFraction id="d9079139e1429-wk-Fact-11AE063E18784FFBA1088095A1826551" name="us-gaap:ValuationAllowancesAndReservesAdjustments" contextRef="FD2018Q4YTD_us-gaap_ValuationAllowancesAndReservesTypeAxis_us-gaap_UncollectibleReceivablesMember" unitRef="usd" decimals="-3" scale="3" sign="-" format="ixt:numdotdecimal">43</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">)</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">(b)&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9079139e1450-wk-Fact-87E4FC26CB72303A53708095A17BF063" name="us-gaap:ValuationAllowancesAndReservesBalance" contextRef="FI2018Q4_us-gaap_ValuationAllowancesAndReservesTypeAxis_us-gaap_UncollectibleReceivablesMember" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">1,646</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">2017</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9079139e1475-wk-Fact-FCBA7C324AACCB28B7DF8095A17C94AF" name="us-gaap:ValuationAllowancesAndReservesBalance" contextRef="FI2016Q4_us-gaap_ValuationAllowancesAndReservesTypeAxis_us-gaap_UncollectibleReceivablesMember" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">873</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9079139e1494-wk-Fact-D49A9232DF37B0F3C1FE8095A185074A" name="us-gaap:ValuationAllowancesAndReservesChargedToCostAndExpense" contextRef="FD2017Q4YTD_us-gaap_ValuationAllowancesAndReservesTypeAxis_us-gaap_UncollectibleReceivablesMember" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">724</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">&#8212;</span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>(<ix:nonFraction id="d9079139e1533-wk-Fact-2D57E67BFA036544552D8095A1837277" name="us-gaap:ValuationAllowancesAndReservesDeductions" contextRef="FD2017Q4YTD_us-gaap_ValuationAllowancesAndReservesTypeAxis_us-gaap_UncollectibleReceivablesMember" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">116</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">)</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">(a)&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9079139e1553-wk-Fact-A75B46C0A167028388288095A17D9C31" name="us-gaap:ValuationAllowancesAndReservesAdjustments" contextRef="FD2017Q4YTD_us-gaap_ValuationAllowancesAndReservesTypeAxis_us-gaap_UncollectibleReceivablesMember" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">87</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">(b)&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9079139e1573-wk-Fact-89C9C310EEFCB41784538095A17B2DE3" name="us-gaap:ValuationAllowancesAndReservesBalance" contextRef="FI2017Q4_us-gaap_ValuationAllowancesAndReservesTypeAxis_us-gaap_UncollectibleReceivablesMember" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">1,568</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Deferred Tax Valuation Allowance:</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td></tr><tr><td style="vertical-align:top;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">2019</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9079139e1726-wk-Fact-0A4F3A50380CCF5EB6188095A17D04ED" name="us-gaap:ValuationAllowancesAndReservesBalance" contextRef="FI2018Q4_us-gaap_ValuationAllowancesAndReservesTypeAxis_us-gaap_ValuationAllowanceOfDeferredTaxAssetsMember" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">6,112</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9079139e1745-wk-Fact-E3E43B67FDC6A2DD3BC98095A1843AAB" name="us-gaap:ValuationAllowancesAndReservesChargedToCostAndExpense" contextRef="FD2019Q4YTD_us-gaap_ValuationAllowancesAndReservesTypeAxis_us-gaap_ValuationAllowanceOfDeferredTaxAssetsMember" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">1,200</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">&#8212;</span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9079139e1784-wk-Fact-9ABFF64C7B0DBFF0A97B8095A183EF8D" name="us-gaap:ValuationAllowancesAndReservesDeductions" contextRef="FD2019Q4YTD_us-gaap_ValuationAllowancesAndReservesTypeAxis_us-gaap_ValuationAllowanceOfDeferredTaxAssetsMember" unitRef="usd" decimals="-3" scale="3" format="ixt:zerodash">&#8212;</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9079139e1803-wk-Fact-E2D77C7AC24D116090F68095A17DD555" name="us-gaap:ValuationAllowancesAndReservesAdjustments" contextRef="FD2019Q4YTD_us-gaap_ValuationAllowancesAndReservesTypeAxis_us-gaap_ValuationAllowanceOfDeferredTaxAssetsMember" unitRef="usd" decimals="-3" scale="3" format="ixt:zerodash">&#8212;</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9079139e1823-wk-Fact-B2CEFB81D22439C2A6708095A17DE002" name="us-gaap:ValuationAllowancesAndReservesBalance" contextRef="FI2019Q4_us-gaap_ValuationAllowancesAndReservesTypeAxis_us-gaap_ValuationAllowanceOfDeferredTaxAssetsMember" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">7,312</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">2018</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9079139e1848-wk-Fact-AE88C301C1032988D07F8095A173C3EA" name="us-gaap:ValuationAllowancesAndReservesBalance" contextRef="FI2017Q4_us-gaap_ValuationAllowancesAndReservesTypeAxis_us-gaap_ValuationAllowanceOfDeferredTaxAssetsMember" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">5,309</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9079139e1867-wk-Fact-73BCBC71C789E54F8B818095A183319B" name="us-gaap:ValuationAllowancesAndReservesChargedToCostAndExpense" contextRef="FD2018Q4YTD_us-gaap_ValuationAllowancesAndReservesTypeAxis_us-gaap_ValuationAllowanceOfDeferredTaxAssetsMember" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">803</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">&#8212;</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9079139e1906-wk-Fact-1320AFD2ED831E38A2D78095A183B378" name="us-gaap:ValuationAllowancesAndReservesDeductions" contextRef="FD2018Q4YTD_us-gaap_ValuationAllowancesAndReservesTypeAxis_us-gaap_ValuationAllowanceOfDeferredTaxAssetsMember" unitRef="usd" decimals="-3" scale="3" format="ixt:zerodash">&#8212;</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9079139e1925-wk-Fact-4CBB78BCB5BF39A0D1808095A17C1E6E" name="us-gaap:ValuationAllowancesAndReservesAdjustments" contextRef="FD2018Q4YTD_us-gaap_ValuationAllowancesAndReservesTypeAxis_us-gaap_ValuationAllowanceOfDeferredTaxAssetsMember" unitRef="usd" decimals="-3" scale="3" format="ixt:zerodash">&#8212;</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9079139e1945-wk-Fact-0A4F3A50380CCF5EB6188095A17D04ED" name="us-gaap:ValuationAllowancesAndReservesBalance" contextRef="FI2018Q4_us-gaap_ValuationAllowancesAndReservesTypeAxis_us-gaap_ValuationAllowanceOfDeferredTaxAssetsMember" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">6,112</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">2017</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9079139e1970-wk-Fact-DDD60FBECD7A6F43D30D8095A1858BB3" name="us-gaap:ValuationAllowancesAndReservesBalance" contextRef="FI2016Q4_us-gaap_ValuationAllowancesAndReservesTypeAxis_us-gaap_ValuationAllowanceOfDeferredTaxAssetsMember" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">4,116</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9079139e1989-wk-Fact-EFEC1D19F1540731983E8095A19095D2" name="us-gaap:ValuationAllowancesAndReservesChargedToCostAndExpense" contextRef="FD2017Q4YTD_us-gaap_ValuationAllowancesAndReservesTypeAxis_us-gaap_ValuationAllowanceOfDeferredTaxAssetsMember" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">1,193</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">&#8212;</span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9079139e2028-wk-Fact-8FDDA9B6BF6B548FF4518095A17DA80A" name="us-gaap:ValuationAllowancesAndReservesDeductions" contextRef="FD2017Q4YTD_us-gaap_ValuationAllowancesAndReservesTypeAxis_us-gaap_ValuationAllowanceOfDeferredTaxAssetsMember" unitRef="usd" decimals="-3" scale="3" format="ixt:zerodash">&#8212;</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9079139e2047-wk-Fact-34959B105093717C46378095A1840BD4" name="us-gaap:ValuationAllowancesAndReservesAdjustments" contextRef="FD2017Q4YTD_us-gaap_ValuationAllowancesAndReservesTypeAxis_us-gaap_ValuationAllowanceOfDeferredTaxAssetsMember" unitRef="usd" decimals="-3" scale="3" format="ixt:zerodash">&#8212;</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span><ix:nonFraction id="d9079139e2067-wk-Fact-AE88C301C1032988D07F8095A173C3EA" name="us-gaap:ValuationAllowancesAndReservesBalance" contextRef="FI2017Q4_us-gaap_ValuationAllowancesAndReservesTypeAxis_us-gaap_ValuationAllowanceOfDeferredTaxAssetsMember" unitRef="usd" decimals="-3" scale="3" format="ixt:numdotdecimal">5,309</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr></table></div></div><table cellpadding="0" cellspacing="0" style="padding-top:12px;font-family:Times New Roman; font-size:10pt;"><tr><td style="width:48px;"></td><td></td></tr><tr><td style="vertical-align:top"><div style="line-height:120%;font-size:10pt;padding-left:0px;"><span style="font-family:Arial;font-size:10pt;">(a)</span></div></td><td style="vertical-align:top;"><div style="line-height:120%;text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Specific write-offs</span></div></td></tr></table></ix:continuation><table cellpadding="0" cellspacing="0" style="font-family:Times New Roman; font-size:10pt;"><tr><td style="width:48px;"></td><td></td></tr><tr><td style="vertical-align:top"><ix:continuation id="TextSelection-20F28FE9E976D6378BB18095A1A8F99D-2" continuedAt="TextSelection-20F28FE9E976D6378BB18095A1A8F99D-3"><div style="line-height:120%;font-size:10pt;padding-left:0px;"><span style="font-family:Arial;font-size:10pt;">(b)</span></div></ix:continuation></td><td style="vertical-align:top;"><ix:continuation id="TextSelection-20F28FE9E976D6378BB18095A1A8F99D-3"><div style="line-height:120%;text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Foreign currency exchange rate changes</span></div></ix:continuation></td></tr></table><div style="line-height:120%;padding-left:4px;text-align:left;padding-left:48px;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><br/></span></div><div><br/></div><div style="text-align:center;"><div style="line-height:120%;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">74</span></div></div><hr style="page-break-after:always"></hr><div><a id="sBCCD78C9D393502FBBCA54235B7063E1"></a></div><div><div style="line-height:120%;font-size:9pt;"><a style="font-family:inherit;font-size:9pt;" href="#sCD449198B5695D85B5494CF5DF708C26"><span style="font-family:inherit;font-size:9pt;">Table of Contents</span></a></div></div><div><br/></div><div style="line-height:120%;padding-top:12px;text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">ITEM&#160;9:  CHANGES IN AND DISAGREEMENTS WITH ACCOUNTANTS ON ACCOUNTING AND FINANCIAL DISCLOSURE</span></div><div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">There were no disagreements with accountants on accounting or financial disclosure during </span><span style="font-family:Arial;font-size:10pt;">2019</span><span style="font-family:Arial;font-size:10pt;"> or </span><span style="font-family:Arial;font-size:10pt;">2018</span><span style="font-family:Arial;font-size:10pt;">.</span></div><div><a id="s32A362AB876D5D768EB7E6F1A480DE5B"></a></div><div style="line-height:120%;padding-top:12px;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">ITEM 9A:  CONTROLS AND PROCEDURES</span></div><div style="line-height:120%;padding-top:6px;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">Disclosure Controls and Procedures</span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">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 Principal Financial &amp; Accounting 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 Principal Financial &amp; Accounting Officer concluded that such disclosure controls and procedures were effective as of that date.</span></div><div style="line-height:120%;padding-top:12px;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">Management&#8217;s Report on Internal Control over Financial Reporting</span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">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 upon 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="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Based upon our evaluation, management has concluded that the Company&#8217;s internal control over financial reporting was effective as of </span><span style="font-family:Arial;font-size:10pt;">December&#160;31, 2019</span><span style="font-family:Arial;font-size:10pt;">.</span></div><div style="line-height:120%;padding-top:12px;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">Attestation Report of the Registered Public Accounting Firm on Internal Control over Financial Reporting</span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">The Company&#8217;s internal control over financial reporting as of </span><span style="font-family:Arial;font-size:10pt;">December&#160;31, 2019</span><span style="font-family:Arial;font-size:10pt;"> 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="line-height:120%;padding-top:12px;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">Changes in Internal Control over Financial Reporting</span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">There have been no changes in the Company's internal control over financial reporting that occurred during the fourth quarter of the year ended </span><span style="font-family:Arial;font-size:10pt;">December&#160;31, 2019</span><span style="font-family:Arial;font-size:10pt;"> 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><br/></div><div style="text-align:center;"><div style="line-height:120%;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">75</span></div></div><hr style="page-break-after:always"></hr><div><div style="line-height:120%;font-size:9pt;"><a style="font-family:inherit;font-size:9pt;" href="#sCD449198B5695D85B5494CF5DF708C26"><span style="font-family:inherit;font-size:9pt;">Table of Contents</span></a></div></div><div><br/></div><div style="line-height:120%;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">REPORT OF INDEPENDENT REGISTERED PUBLIC ACCOUNTING FIRM</span></div><div style="line-height:120%;padding-top:12px;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Board of Directors and Shareholders                                                                                                                         Cognex Corporation</span></div><div style="line-height:120%;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><br/></span></div><div style="line-height:120%;text-align:justify;font-size:12pt;"><span style="font-family:Arial;font-size:10pt;">Opinion on internal control over financial reporting    </span><span style="font-family:Arial;font-size:12pt;"> </span><span style="font-family:Arial;font-size:10pt;">                                                                                                   </span></div><div style="line-height:120%;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">We have audited the internal control over financial reporting of Cognex Corporation (a Massachusetts corporation) and subsidiaries (the &#8220;Company&#8221;) as of December&#160;31, </span><span style="font-family:Arial;font-size:10pt;">2019</span><span style="font-family:Arial;font-size:10pt;">, based on criteria established in the 2013 </span><span style="font-family:Arial;font-size:10pt;font-style:italic;">Internal Control-Integrated Framework</span><span style="font-family:Arial;font-size:10pt;"> issued by the Committee of Sponsoring Organizations of the Treadway Commission ("COSO"). In our opinion, the Company maintained, in all material respects, effective internal control over financial reporting as of December 31, 2019, based on criteria established in the 2013 </span><span style="font-family:Arial;font-size:10pt;font-style:italic;">Internal Control-Integrated Framework</span><span style="font-family:Arial;font-size:10pt;"> issued by COSO.</span></div><div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">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, 2019, and our report dated February 13, 2020 expressed an unqualified opinion on those financial statements.</span></div><div style="line-height:120%;text-align:left;font-size:10pt;"><span style="font-family:Arial Narrow;font-size:10pt;"><br/></span></div><div style="line-height:120%;text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Basis for opinion</span></div><div style="line-height:120%;text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">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="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">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="line-height:120%;text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><br/></span></div><div style="line-height:120%;text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Definition and limitations of internal control over financial reporting</span></div><div style="line-height:120%;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">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="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">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="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><br/></span></div><div style="line-height:120%;padding-top:12px;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">/s/ GRANT THORNTON LLP</span></div><div style="line-height:120%;padding-top:12px;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Boston, Massachusetts</span></div><div style="line-height:120%;padding-top:12px;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">February&#160;13, 2020</span><span style="font-family:Arial;font-size:10pt;"> </span></div><div><br/></div><div style="text-align:center;"><div style="line-height:120%;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">76</span></div></div><hr style="page-break-after:always"></hr><div><a id="s82C3EBEEA8E95A7DA5884BCF80F5D101"></a></div><div><div style="line-height:120%;font-size:9pt;"><a style="font-family:inherit;font-size:9pt;" href="#sCD449198B5695D85B5494CF5DF708C26"><span style="font-family:inherit;font-size:9pt;">Table of Contents</span></a></div></div><div><br/></div><div style="line-height:120%;padding-top:12px;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">ITEM 9B:  OTHER INFORMATION</span></div><div style="line-height:120%;padding-top:6px;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">None</span></div><div><a id="sE90603D833A2575BA1CAD59D1597E7A7"></a></div><div style="line-height:120%;padding-top:12px;text-align:center;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">PART III</span></div><div><a id="sF4A34F61B8AF5C50848D353F52D36E6D"></a></div><div style="line-height:120%;padding-top:12px;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">ITEM&#160;10:&#160;&#160;DIRECTORS, EXECUTIVE OFFICERS, AND CORPORATE GOVERNANCE</span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">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 </span><span style="font-family:Arial;">April&#160;23, 2020</span><span style="font-family:Arial;font-size:10pt;"> and is incorporated herein by reference.  In addition, certain information with respect to Executive Officers of the Company may be found in the section captioned &#8220;Executive Officers of the Registrant,&#8221; appearing in Part I &#8211; Item&#160;4A of this Annual Report on Form 10-K.</span></div><div style="line-height:120%;padding-top:6px;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">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="font-family:Arial;font-size:10pt;text-decoration:underline;">www.cognex.com</span><span style="font-family:inherit;font-size:10pt;"> </span><span style="font-family:Arial;font-size:10pt;">under "Company-Investor Information-Governance".  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><a id="s60E02F40BD855F7CB430F54794DCE028"></a></div><div style="line-height:120%;padding-top:12px;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">ITEM&#160;11:&#160;&#160;EXECUTIVE COMPENSATION</span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">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 </span><span style="font-family:Arial;">April&#160;23, 2020</span><span style="font-family:Arial;font-size:10pt;"> and is incorporated herein by reference.</span></div><div><a id="sB6C878B5381557A9A65C33071F0A3927"></a></div><div style="line-height:120%;padding-top:12px;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">ITEM&#160;12:&#160;&#160;SECURITY OWNERSHIP OF CERTAIN BENEFICIAL OWNERS AND MANAGEMENT AND RELATED STOCKHOLDER MATTERS</span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">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 </span><span style="font-family:Arial;">April&#160;23, 2020</span><span style="font-family:Arial;font-size:10pt;"> and is incorporated herein by reference.</span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">The following table provides information as of </span><span style="font-family:Arial;font-size:10pt;">December&#160;31, 2019</span><span style="font-family:Arial;font-size:10pt;"> regarding shares of common stock that may be issued under the Company&#8217;s existing equity compensation plans:</span></div><div style="line-height:120%;font-size:10pt;"><div style="padding-left:0px;text-indent:0px;line-height:normal;padding-top:10px;"><table cellpadding="0" cellspacing="0" style="font-family:Times New Roman;font-size:10pt;width:100%;border-collapse:collapse;text-align:left;"><tr><td colspan="11"></td></tr><tr><td style="width:29%;"></td><td style="width:19%;"></td><td style="width:1%;"></td><td style="width:3%;"></td><td style="width:1%;"></td><td style="width:20%;"></td><td style="width:1%;"></td><td style="width:1%;"></td><td style="width:21%;"></td><td style="width:1%;"></td><td style="width:3%;"></td></tr><tr><td style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">Plan Category</span></div></td><td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">Number&#160;of&#160;securities&#160;to&#160;be</span></div><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">issued upon exercise of</span></div><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">outstanding&#160;options, warrants and rights, and vesting of restricted stock units</span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">Weighted-average&#160;exercise</span></div><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">price&#160;of&#160;outstanding&#160;options, restricted stock units, warrants,&#160;and&#160;rights</span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">Number&#160;of&#160;securities</span></div><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">remaining&#160;available&#160;for&#160;future</span></div><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">issuance under equity</span></div><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">compensation plans</span></div><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">(excluding&#160;securities&#160;reflected</span></div><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">in column (a))</span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">(a)</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">Equity compensation plans approved by shareholders (4)</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">12,798,120</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">(1)</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">38.4639</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;"><span><ix:nonFraction id="d9080387e842-wk-Fact-0D4573E0C663496D8B9A8095A197212A" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant" contextRef="FI2019Q4_us-gaap_AwardTypeAxis_us-gaap_EmployeeStockOptionMember" unitRef="shares" decimals="0" scale="0" format="ixt:numdotdecimal">17,300,802</ix:nonFraction></span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">(2)</span></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">Equity compensation plans not approved by shareholders (4)</span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">250,168</span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">(3)</span></div></td><td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">7.2401</span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">-</span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;">13,048,288</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;">37.8652</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;">17,300,802</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td></tr></table></div></div><table cellpadding="0" cellspacing="0" style="padding-top:12px;font-family:Times New Roman; font-size:10pt;"><tr><td style="width:48px;"></td><td></td></tr><tr><td style="vertical-align:top"><div style="line-height:120%;font-size:8pt;padding-left:12px;"><span style="font-family:Arial;font-size:8pt;">(1)</span></div></td><td style="vertical-align:top;"><div style="line-height:120%;text-align:left;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">Includes shares to be issued upon exercise of outstanding options under the Company&#8217;s 1998 Stock Incentive Plan, 2007 Stock Option and Incentive Plan, and subsequent to shareholder approval, the 2001 General Stock Option Plan, as amended and restated.</span></div></td></tr></table><table cellpadding="0" cellspacing="0" style="font-family:Times New Roman; font-size:10pt;"><tr><td style="width:48px;"></td><td></td></tr><tr><td style="vertical-align:top"><div style="line-height:120%;font-size:8pt;padding-left:12px;"><span style="font-family:Arial;font-size:8pt;">(2)</span></div></td><td style="vertical-align:top;"><div style="line-height:120%;text-align:left;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">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></td></tr></table><table cellpadding="0" cellspacing="0" style="font-family:Times New Roman; font-size:10pt;"><tr><td style="width:48px;"></td><td></td></tr><tr><td style="vertical-align:top"><div style="line-height:120%;font-size:8pt;padding-left:12px;"><span style="font-family:Arial;font-size:8pt;">(3)</span></div></td><td style="vertical-align:top;"><div style="line-height:120%;text-align:left;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">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></td></tr></table><table cellpadding="0" cellspacing="0" style="font-family:Times New Roman; font-size:10pt;"><tr><td style="width:48px;"></td><td></td></tr><tr><td style="vertical-align:top"><div style="line-height:120%;font-size:8pt;padding-left:12px;"><span style="font-family:Arial;font-size:8pt;">(4)</span></div></td><td style="vertical-align:top;"><div style="line-height:120%;text-align:left;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">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></td></tr></table><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">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.  29,991,140 stock options have been granted under the 2001 General Stock Option Plan.</span></div><div><br/></div><div style="text-align:center;"><div style="line-height:120%;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">77</span></div></div><hr style="page-break-after:always"></hr><div><a id="s3FA439AD6ED2565CB1E4B35DEB9C4238"></a></div><div><div style="line-height:120%;font-size:9pt;"><a style="font-family:inherit;font-size:9pt;" href="#sCD449198B5695D85B5494CF5DF708C26"><span style="font-family:inherit;font-size:9pt;">Table of Contents</span></a></div></div><div><br/></div><div style="line-height:120%;padding-top:12px;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">ITEM&#160;13:&#160;&#160;CERTAIN RELATIONSHIPS AND RELATED TRANSACTIONS, AND DIRECTOR INDEPENDENCE</span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">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 </span><span style="font-family:Arial;">April&#160;23, 2020</span><span style="font-family:Arial;font-size:10pt;"> and is incorporated herein by reference.</span></div><div><a id="s9AAA4F25205855E794157B9AD0EC693A"></a></div><div style="line-height:120%;padding-top:12px;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">ITEM&#160;14:&#160;&#160;PRINCIPAL ACCOUNTING FEES AND SERVICES</span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">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 </span><span style="font-family:Arial;">April&#160;23, 2020</span><span style="font-family:Arial;font-size:10pt;"> and is incorporated herein by reference.</span></div><div><a id="s9D34C9E8BFE55EA194F7D12DB40625DF"></a></div><div style="line-height:120%;padding-top:12px;text-align:center;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">PART IV</span></div><div><a id="s3DEB13BF9BD45184B27760FC76289FDD"></a></div><div style="line-height:120%;padding-top:12px;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">ITEM&#160;15:&#160;&#160;EXHIBITS AND FINANCIAL STATEMENT SCHEDULES</span></div><table cellpadding="0" cellspacing="0" style="padding-top:6px;font-family:Times New Roman; font-size:10pt;"><tr><td style="width:72px;"></td><td></td></tr><tr><td style="vertical-align:top"><div style="line-height:120%;font-size:10pt;padding-left:0px;"><span style="font-family:Arial;font-size:10pt;">(1)</span></div></td><td style="vertical-align:top;"><div style="line-height:120%;text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Financial Statements</span></div></td></tr></table><div style="line-height:120%;padding-top:6px;padding-left:120px;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">The financial statements are included in Part II &#8211; Item&#160;8 of this Annual Report on Form 10-K.</span></div><table cellpadding="0" cellspacing="0" style="padding-top:6px;font-family:Times New Roman; font-size:10pt;"><tr><td style="width:72px;"></td><td></td></tr><tr><td style="vertical-align:top"><div style="line-height:120%;font-size:10pt;padding-left:0px;"><span style="font-family:Arial;font-size:10pt;">(2)</span></div></td><td style="vertical-align:top;"><div style="line-height:120%;text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Financial Statement Schedule</span></div></td></tr></table><div style="line-height:120%;padding-top:6px;padding-left:120px;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">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="line-height:120%;padding-top:6px;padding-left:120px;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">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><table cellpadding="0" cellspacing="0" style="padding-top:6px;font-family:Times New Roman; font-size:10pt;"><tr><td style="width:72px;"></td><td></td></tr><tr><td style="vertical-align:top"><div style="line-height:120%;font-size:10pt;padding-left:0px;"><span style="font-family:Arial;font-size:10pt;">(3)</span></div></td><td style="vertical-align:top;"><div style="line-height:120%;text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Exhibits</span></div></td></tr></table><div style="line-height:120%;padding-top:6px;padding-left:120px;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">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><a id="sF2CF814CADE553DBA15B6A95A9E49DA7"></a></div><div style="line-height:120%;padding-top:12px;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">ITEM&#160;16:&#160;&#160;FORM 10-K SUMMARY</span></div><div style="line-height:120%;padding-left:4px;padding-top:6px;text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Not applicable</span></div><div><br/></div><div style="text-align:center;"><div style="line-height:120%;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">78</span></div></div><hr style="page-break-after:always"></hr><div><a id="s8E83C2ACE8A75D459BAC1D76AD8E12FD"></a></div><div><div style="line-height:120%;font-size:9pt;"><a style="font-family:inherit;font-size:9pt;" href="#sCD449198B5695D85B5494CF5DF708C26"><span style="font-family:inherit;font-size:9pt;">Table of Contents</span></a></div></div><div><br/></div><div style="line-height:120%;padding-top:12px;text-align:center;-sec-extract:summary;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">EXHIBIT INDEX</span></div><div style="line-height:120%;font-size:10pt;"><div style="padding-left:0px;text-indent:0px;line-height:normal;padding-top:10px;"><table cellpadding="0" cellspacing="0" style="font-family:Times New Roman;font-size:10pt;width:100%;border-collapse:collapse;text-align:left;"><tr><td colspan="3"></td></tr><tr><td style="width:15%;"></td><td style="width:1%;"></td><td style="width:84%;"></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;text-decoration:underline;">EXHIBIT&#160;NUMBER</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;">&#160;</span></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">3A</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="font-size:10pt;"><a style="text-decoration:underline;color:#000000;-sec-extract:exhibit;" href="http://www.sec.gov/Archives/edgar/data/851205/000085120516000035/exhibit31.htm"><span style="font-family:Arial;font-size:10pt;color:#000000;">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])</span></a></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">3B</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="font-size:10pt;"><a style="text-decoration:underline;color:#000000;-sec-extract:exhibit;" href="http://www.sec.gov/Archives/edgar/data/851205/000085120516000035/exhibit32.htm"><span style="font-family:Arial;font-size:10pt;color:#000000;">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])</span></a></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">3C</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="font-size:10pt;"><a style="text-decoration:underline;color:#000000;-sec-extract:exhibit;" href="http://www.sec.gov/Archives/edgar/data/851205/000119312518154489/d581899dex42.htm"><span style="font-family:Arial;font-size:10pt;color:#000000;">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])</span></a></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">3D</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="font-size:10pt;"><a style="text-decoration:underline;color:#000000;-sec-extract:exhibit;" href="http://www.sec.gov/Archives/edgar/data/851205/000085120519000006/cgnxarticlesofamendment.htm"><span style="font-family:Arial;font-size:10pt;color:#000000;">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])</span></a></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">3E</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="font-size:10pt;"><a style="text-decoration:underline;color:#000000;-sec-extract:exhibit;" href="http://www.sec.gov/Archives/edgar/data/851205/000085120516000035/exhibit33.htm"><span style="font-family:Arial;font-size:10pt;color:#000000;">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])</span></a></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">3F</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="font-size:10pt;"><a style="text-decoration:underline;color:#000000;-sec-extract:exhibit;" href="http://www.sec.gov/Archives/edgar/data/851205/000085120516000035/exhibit34.htm"><span style="font-family:Arial;font-size:10pt;color:#000000;">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])</span></a></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">4A</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">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></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">4B</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="font-size:10pt;"><a style="text-decoration:underline;color:#000000;-sec-extract:exhibit;" href="cgnxexhibit4bdescription.htm"><span style="font-family:Arial;font-size:10pt;color:#000000;">Description of Capital Stock (filed herewith)</span></a></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">10A *</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="font-size:10pt;"><a style="text-decoration:underline;color:#000000;-sec-extract:exhibit;" href="http://www.sec.gov/Archives/edgar/data/851205/0000914427-98-000166.txt"><span style="font-family:Arial;font-size:10pt;color:#000000;">Cognex Corporation 1998 Non-Employee Director Stock Option Plan (incorporated by reference to Exhibit 4.1 to Cognex's Registration Statement on Form S-8 [Registration No. 333-60807])</span></a></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">10B *</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="font-size:10pt;"><a style="text-decoration:underline;color:#000000;-sec-extract:exhibit;" href="http://www.sec.gov/Archives/edgar/data/851205/000119312513048665/d434050dex10c.htm"><span style="font-family:Arial;font-size:10pt;color:#000000;">Amendment to Cognex Corporation 1998 Non-Employee Director Stock Option Plan, effective as of July 26, 2007 (incorporated by reference to Exhibit 10C of Cognex's Annual Report on Form 10-K for the year ended December 31, 2012 [File No. 1-34218])</span></a></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">10C *</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="font-size:10pt;"><a style="text-decoration:underline;color:#000000;-sec-extract:exhibit;" href="http://www.sec.gov/Archives/edgar/data/851205/0000914427-98-000166.txt"><span style="font-family:Arial;font-size:10pt;color:#000000;">Cognex Corporation 1998 Stock Incentive Plan (incorporated by reference to Exhibit 4.2 to the Registration Statement on Form S-8 [Registration No. 333-60807])</span></a></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">10D *</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="font-size:10pt;"><a style="text-decoration:underline;color:#000000;-sec-extract:exhibit;" href="http://www.sec.gov/Archives/edgar/data/851205/000091442701500074/cogs8a.txt"><span style="font-family:Arial;font-size:10pt;color:#000000;">First Amendment to the Cognex Corporation 1998 Stock Incentive Plan (incorporated by reference to Exhibit 4.3 to Cognex's Registration Statement on Form S-8 [Registration No. 333-60807])</span></a></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">10E *</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="font-size:10pt;"><a style="text-decoration:underline;color:#000000;-sec-extract:exhibit;" href="http://www.sec.gov/Archives/edgar/data/851205/000119312512049244/d273174dex10f.htm"><span style="font-family:Arial;font-size:10pt;color:#000000;">Second Amendment to the Cognex Corporation 1998 Stock Incentive Plan (incorporated by reference to Exhibit 10F of Cognex&#8217;s Annual Report on Form 10-K for the year ended December 31, 2011 [File No. 1-34218])</span></a></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">10F *</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="font-size:10pt;"><a style="text-decoration:underline;color:#000000;-sec-extract:exhibit;" href="http://www.sec.gov/Archives/edgar/data/851205/000119312513048665/d434050dex10g.htm"><span style="font-family:Arial;font-size:10pt;color:#000000;">Amendment to Cognex Corporation 1998 Stock Incentive Plan, effective as of July 26, 2007 (incorporated by reference to Exhibit 10G of Cognex's Annual Report on Form 10-K for the year ended December 31, 2012 [File No. 1-34218])</span></a></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">10G *</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="font-size:10pt;"><a style="text-decoration:underline;color:#000000;-sec-extract:exhibit;" href="http://www.sec.gov/Archives/edgar/data/851205/000119312518154489/d581899dex991.htm"><span style="font-family:Arial;font-size:10pt;color:#000000;">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])</span></a></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">10H *</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="font-size:10pt;"><a style="text-decoration:underline;color:#000000;-sec-extract:exhibit;" href="http://www.sec.gov/Archives/edgar/data/851205/000085120518000004/cgnx-20171231xexhibit10h.htm"><span style="font-family:Arial;font-size:10pt;color:#000000;">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])</span></a></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">10I *</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="font-size:10pt;"><a style="text-decoration:underline;color:#000000;-sec-extract:exhibit;" href="http://www.sec.gov/Archives/edgar/data/851205/000119312513048665/d434050dex10k.htm"><span style="font-family:Arial;font-size:10pt;color:#000000;">Form of Letter Agreement between Cognex Corporation and each of Robert J. Shillman, 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])</span></a></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">10J *</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="font-size:10pt;"><a style="text-decoration:underline;color:#000000;-sec-extract:exhibit;" href="http://www.sec.gov/Archives/edgar/data/851205/000119312513048665/d434050dex10l.htm"><span style="font-family:Arial;font-size:10pt;color:#000000;">Form of Stock Option Agreement (Non-Qualified) under 1998 Stock Incentive Plan (incorporated by reference to Exhibit 10L of Cognex's Annual Report on Form 10-K for the year ended December 31, 2012 [File No. 1-34218])</span></a></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">10K *</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="font-size:10pt;"><a style="text-decoration:underline;color:#000000;-sec-extract:exhibit;" href="http://www.sec.gov/Archives/edgar/data/851205/000119312514051054/d632893dex10r.htm"><span style="font-family:Arial;font-size:10pt;color:#000000;">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])</span></a></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">10L *</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="font-size:10pt;"><a style="text-decoration:underline;color:#000000;-sec-extract:exhibit;" href="http://www.sec.gov/Archives/edgar/data/851205/000119312514051054/d632893dex10s.htm"><span style="font-family:Arial;font-size:10pt;color:#000000;">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])</span></a></div></td></tr></table></div></div><div><br/></div><div style="text-align:center;"><div style="line-height:120%;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">79</span></div></div><hr style="page-break-after:always"></hr><div><div style="line-height:120%;font-size:9pt;"><a style="font-family:inherit;font-size:9pt;" href="#sCD449198B5695D85B5494CF5DF708C26"><span style="font-family:inherit;font-size:9pt;">Table of Contents</span></a></div></div><div><br/></div><div style="line-height:120%;font-size:10pt;"><div style="padding-left:0px;text-indent:0px;line-height:normal;padding-top:10px;"><table cellpadding="0" cellspacing="0" style="font-family:Times New Roman;font-size:10pt;width:100%;border-collapse:collapse;text-align:left;"><tr><td colspan="3"></td></tr><tr><td style="width:15%;"></td><td style="width:1%;"></td><td style="width:84%;"></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">10M *</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="font-size:10pt;"><a style="text-decoration:underline;color:#000000;-sec-extract:exhibit;" href="http://www.sec.gov/Archives/edgar/data/851205/000119312514051054/d632893dex10t.htm"><span style="font-family:Arial;font-size:10pt;color:#000000;">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])</span></a></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">10N *</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="font-size:10pt;"><a style="text-decoration:underline;color:#000000;-sec-extract:exhibit;" href="http://www.sec.gov/Archives/edgar/data/851205/000119312514051054/d632893dex10u.htm"><span style="font-family:Arial;font-size:10pt;color:#000000;">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])</span></a></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">10O *</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="font-size:10pt;"><a style="text-decoration:underline;color:#000000;-sec-extract:exhibit;" href="http://www.sec.gov/Archives/edgar/data/851205/000085120518000004/cgnx-20171231xexhibit10o.htm"><span style="font-family:Arial;font-size:10pt;color:#000000;">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])</span></a></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">10P *</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="font-size:10pt;"><a style="text-decoration:underline;color:#000000;-sec-extract:exhibit;" href="http://www.sec.gov/Archives/edgar/data/851205/000085120515000003/cgnx-20141231xexhibit10s.htm"><span style="font-family:Arial;font-size:10pt;color:#000000;">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])</span></a></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">10Q *</span></div><div style="text-align:center;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="font-size:10pt;"><a style="text-decoration:underline;color:#000000;-sec-extract:exhibit;" href="http://www.sec.gov/Archives/edgar/data/851205/000085120518000004/cgnx-20171231xexhibit10q.htm"><span style="font-family:Arial;font-size:10pt;color:#000000;">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])</span></a></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">10R *</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="font-size:10pt;"><a style="text-decoration:underline;color:#000000;-sec-extract:exhibit;" href="http://www.sec.gov/Archives/edgar/data/851205/000085120518000007/exhibit101.htm"><span style="font-family:Arial;font-size:10pt;color:#000000;">Letter Agreement dated February 15, 2018 between Cognex Corporation and J. Bruce Robinson (incorporated by reference to Cognex's Quarterly Report on Form 10-Q for the quarter ended April 30, 2018 [File No. 1-34218])</span></a></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">10S*</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="font-size:10pt;"><a style="text-decoration:underline;color:#000000;-sec-extract:exhibit;" href="http://www.sec.gov/Archives/edgar/data/851205/000085120519000010/curranagreementv2.htm"><span style="font-family:Arial;font-size:10pt;color:#000000;">Letter Agreement dated April 1, 2019 between Cognex Corporation and John J. Curran (incorporated by reference to Cognex's Quarterly Report on Form 10-Q for the quarter ended June 30, 2019 [File No. 1-34218])</span></a></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">10T*</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="font-size:10pt;"><a style="text-decoration:underline;color:#000000;-sec-extract:exhibit;" href="http://www.sec.gov/Archives/edgar/data/851205/000085120519000010/lauramacdonald2007plangr.htm"><span style="font-family:Arial;font-size:10pt;color:#000000;">Stock Option Agreement dated May 1, 2019 between Cognex Corporation and Laura MacDonald (incorporated by reference to Cognex's Quarterly Report on Form 10-Q for the quarter ended June 30, 2019 [File No. 1-34218])</span></a></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">10U*</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="font-size:10pt;"><a style="text-decoration:underline;color:#000000;-sec-extract:exhibit;" href="cgnxformofrsuagreement.htm"><span style="font-family:Arial;font-size:10pt;color:#000000;">Form of Restricted Stock Unit Agreement under the 2007 Stock Option and Incentive Plan (filed herewith)</span></a></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">18.1</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="font-size:10pt;"><a style="text-decoration:underline;color:#000000;-sec-extract:exhibit;" href="cognexpreferabilitylette.htm"><span style="font-family:Arial;font-size:10pt;color:#000000;">Preferability Letter of Grant Thornton LLP (filed herewith)</span></a></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">21</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="font-size:10pt;"><a style="text-decoration:underline;color:#000000;-sec-extract:exhibit;" href="cgnx-20191231xexhibit21.htm"><span style="font-family:Arial;font-size:10pt;color:#000000;">Subsidiaries of the registrant (filed herewith)</span></a></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">23.1</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="font-size:10pt;"><a style="text-decoration:underline;color:#000000;-sec-extract:exhibit;" href="cgnx-20191231xexhibit231.htm"><span style="font-family:Arial;font-size:10pt;color:#000000;">Consent of Grant Thornton LLP (filed herewith)</span></a></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">31.1</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="font-size:10pt;"><a style="text-decoration:underline;color:#000000;-sec-extract:exhibit;" href="cgnx-20191231xexhibit311.htm"><span style="font-family:Arial;font-size:10pt;color:#000000;">Certification pursuant to Section 302 of the Sarbanes-Oxley Act of 2002 (CEO) (filed herewith)</span></a></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">31.2</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="font-size:10pt;"><a style="text-decoration:underline;color:#000000;-sec-extract:exhibit;" href="cgnx-20191231xexhibit312.htm"><span style="font-family:Arial;font-size:10pt;color:#000000;">Certification pursuant to Section 302 of the Sarbanes-Oxley Act of 2002 (Principal Financial and Accounting Officer) (filed herewith)</span></a></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">32.1</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="font-size:10pt;"><a style="text-decoration:underline;color:#000000;-sec-extract:exhibit;" href="cgnx-20191231xexhibit321.htm"><span style="font-family:Arial;font-size:10pt;color:#000000;">Certification pursuant to Section 906 of the Sarbanes-Oxley Act of 2002 (CEO) (furnished herewith)</span></a></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">32.2</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="font-size:10pt;"><a style="text-decoration:underline;color:#000000;-sec-extract:exhibit;" href="cgnx-20191231xexhibit322.htm"><span style="font-family:Arial;font-size:10pt;color:#000000;">Certification pursuant to Section 906 of the Sarbanes-Oxley Act of 2002 (Principal Financial and Accounting Officer) (furnished herewith)</span></a></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">101.SCH</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Inline XBRL Taxonomy Extension Schema Document (filed herewith)</span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">101.CAL</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Inline XBRL Taxonomy Extension Calculation Linkbase Document (filed herewith)</span></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">101.LAB</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Inline XBRL Taxonomy Extension Label Linkbase Document (filed herewith)</span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">101.PRE</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Inline XBRL Taxonomy Extension Presentation Linkbase Document (filed herewith)</span></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">101.DEF</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Inline XBRL Taxonomy Extension Schema Document (filed herewith)</span></div><div style="font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">104</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Cover Page Interactive Data File (formatted as Inline XBRL with applicable taxonomy extension information contained in Exhibits 101*.) (filed herewith)</span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">* Indicated management contract or compensatory plan or arrangement</span></div></td></tr></table></div></div><div style="line-height:120%;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div><div><br/></div><div style="text-align:center;"><div style="line-height:120%;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">80</span></div></div><hr style="page-break-after:always"></hr><div><a id="sE5A3463CBA445FA8B5B7BF52D3C65E65"></a></div><div><div style="line-height:120%;font-size:9pt;"><a style="font-family:inherit;font-size:9pt;" href="#sCD449198B5695D85B5494CF5DF708C26"><span style="font-family:inherit;font-size:9pt;">Table of Contents</span></a></div></div><div><br/></div><div style="line-height:120%;padding-top:12px;text-align:center;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">SIGNATURES</span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">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.</span></div><div style="line-height:120%;padding-top:6px;font-size:10pt;"><div style="padding-left:0px;text-indent:0px;line-height:normal;padding-top:10px;"><table cellpadding="0" cellspacing="0" style="font-family:Times New Roman;font-size:10pt;width:682px;border-collapse:collapse;text-align:left;"><tr><td colspan="3"></td></tr><tr><td style="width:56px;"></td><td style="width:5px;"></td><td style="width:621px;"></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">COGNEX CORPORATION</span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:5px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:5px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">By:</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;text-decoration:underline;">/s/&#160;&#160;&#160;&#160;Robert J. Willett</span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Robert J. Willett</span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">President and Chief Executive Officer</span></div></td></tr></table></div></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">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="line-height:120%;padding-top:6px;font-size:10pt;"><div style="padding-left:0px;text-indent:0px;line-height:normal;padding-top:10px;"><table cellpadding="0" cellspacing="0" style="font-family:Times New Roman;font-size:10pt;width:100%;border-collapse:collapse;text-align:left;"><tr><td colspan="5"></td></tr><tr><td style="width:29%;"></td><td style="width:1%;"></td><td style="width:51%;"></td><td style="width:1%;"></td><td style="width:18%;"></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;text-decoration:underline;">Signature</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;text-decoration:underline;">Title</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;text-decoration:underline;">Date</span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:5px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:5px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:5px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td></tr><tr><td style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">/s/&#160;&#160;&#160;&#160;Robert J. Shillman</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td rowspan="2" style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Chairman of the Board of Directors and Chief Culture Officer</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">February&#160;13, 2020</span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Robert J. Shillman</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:5px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:5px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:5px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td></tr><tr><td style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">/s/&#160;&#160;&#160;&#160;Robert J. Willett</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td rowspan="2" style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">President, Chief Executive Officer, and Director (principal executive officer)</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">February&#160;13, 2020</span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Robert J. Willett</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:5px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:5px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:5px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td></tr><tr><td style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">/s/&#160;&#160;&#160;&#160;Laura A. MacDonald</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td rowspan="2" style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Vice President and Corporate Controller (principal financial&#160;and&#160;accounting&#160;officer)</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">February&#160;13, 2020</span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Laura A. MacDonald</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:5px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:5px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:5px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td></tr><tr><td style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">/s/&#160;&#160;&#160;&#160;Patrick Alias</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td rowspan="2" style="vertical-align:middle;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Director</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">February&#160;13, 2020</span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Patrick Alias</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:5px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:5px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:5px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td></tr><tr><td style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">/s/&#160;&#160;&#160;&#160;Eugene Banucci</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td rowspan="2" style="vertical-align:middle;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Director</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">February&#160;13, 2020</span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Eugene Banucci</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:5px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:5px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:5px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:5px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:5px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td></tr><tr><td style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">/s/&#160;&#160;&#160;&#160;Theodor Krantz</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td rowspan="2" style="vertical-align:middle;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Director</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">February&#160;13, 2020</span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Theodor Krantz</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:5px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:5px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:5px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td></tr><tr><td style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">/s/&#160;&#160;&#160;&#160;Dianne Parrotte</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td rowspan="2" style="vertical-align:middle;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Director</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">February&#160;13, 2020</span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Dianne Parrotte</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:5px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:5px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:5px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td></tr><tr><td style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">/s/&#160;&#160;&#160;&#160;Jerry Schneider</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td rowspan="2" style="vertical-align:middle;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Director</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">February&#160;13, 2020</span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Jerry Schneider</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:5px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:5px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:5px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td></tr><tr><td style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">/s/&#160;&#160;&#160;&#160;Anthony Sun</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td rowspan="2" style="vertical-align:middle;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Director</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">February&#160;13, 2020</span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Anthony Sun</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td></tr></table></div></div><div><br/></div><div style="text-align:center;"><div style="line-height:120%;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">81</span></div></div>	</div></body>
</html>
</XBRL>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EX-4.B
<SEQUENCE>2
<FILENAME>cgnxexhibit4bdescription.htm
<DESCRIPTION>EXHIBIT 4.B
<TEXT>
<HTML>
<HEAD><!-- Document generated by Workiva Inc -->
<TITLE>cgnxexhibit4bdescription</TITLE>
</HEAD>
<BODY bgcolor="white">
<DIV align="center">
<DIV style="margin-left:1em;width:1055;"><!-- cgnxexhibit4bdescription001.jpg -->
<DIV style="padding-top:2em;">
<IMG src="cgnxexhibit4bdescription001.jpg" title="slide1" width="1055" height="1365">
<DIV><FONT size="1" style="font-size:1pt;color:white">                                                                      Exhibit 4B                                                         Description of the Registrant&#8217;s Securities Registered Pursuant to                 Section 12 of the Securities Exchange Act of 1934, as amended                                                 The common stock, par value $0.002 per share (&#8220;Common Stock&#8221;), of Cognex Corporation, a  Massachusetts corporation (the &#8220;Company,&#8221; &#8220;we,&#8221; &#8220;us&#8221; or &#8220;our&#8221;), is registered under Section 12 of the   Securities Exchange Act of 1934, as amended (the &#8220;Exchange Act&#8221;).  The following descriptions of the   Common Stock set forth certain general terms and provisions of the Common Stock.  These descriptions   are in all respects subject to and qualified in their entirety by, and should be read in conjunction with, the   applicable provisions of the Restated Articles of Organization of the Company, as amended (the &#8220;Charter&#8221;),   the Amended and Restated By-laws of the Company, as amended (the &#8220;By-laws&#8221;) (each of which is   incorporated herein by reference), and the applicable provisions of Massachusetts law.      Common Stock            The Charter authorizes the issuance of up to 300,000,000 shares of Common Stock.            Voting Rights.  Except as may otherwise be required by law, each holder of Common Stock shall   have one vote in respect of each share of Common Stock held by such holder on all matters voted upon by   the shareholders.  Holders of Common Stock do not have cumulative voting rights.  Other than in a   contested election meeting (as defined in our By-laws), when a quorum is present at any meeting of   shareholders, a nominee for director shall be elected to the Board of Directors if the votes properly cast   &#8220;for&#8221; such nominee&#8217;s election exceed the votes properly cast &#8220;against&#8221; such nominee&#8217;s election.  In a   contested election meeting, when a quorum for an election is present at any meeting, directors shall be   elected by a plurality of the votes properly cast at such meeting.  When a quorum for the consideration of   a question (other than an election of directors) is present at any meeting, a majority of the votes properly   cast upon the question shall decide the question, except in any case where a larger vote is required by law   or by our Charter.         Dividend Rights.  Subject to the prior rights of holders of the Company&#8217;s preferred stock, if any,   the holders of Common Stock shall be entitled to receive such dividends (either in cash, stock or otherwise)   as may be declared from time to time by the Board of Directors out of assets of the Company legally   available for such dividends.                  Liquidation Rights.  After distribution in full of the preferential amount, if any, to be distributed to   the holders of the Company&#8217;s preferred stock, if any, in the event of voluntary or involuntary liquidation,   distribution, dissolution or winding-up of the Company, the holders of the Common Stock shall be entitled   to receive all of the remaining assets of the Company, tangible and intangible, of whatever kind available   for distribution to shareholders, ratably in proportion to the number of shares of Common Stock held by   them respectively.                  Other Rights.  Our Common Stock has no preference, conversion, exchange or redemption rights   and is not subject to any sinking fund.  Holders of our Common Stock have no preemptive rights, which   means that ownership of our Common Stock does not confer the right to acquire any additional securities   that we may issue at a subsequent date.                  Listing; Transfer Agent and Registrar.  Our Common Stock is authorized for listing on The   NASDAQ Global Select Market under the symbol &#8220;CGNX.&#8221;  The transfer agent and registrar for our   Common Stock is Computershare Trust Company, N.A.          </FONT></DIV>
<P><HR noshade><P>
<DIV style="page-break-before:always;">&nbsp;</DIV>
</DIV>
<!-- cgnxexhibit4bdescription002.jpg -->
<DIV style="padding-top:2em;">
<IMG src="cgnxexhibit4bdescription002.jpg" title="slide2" width="1055" height="1365">
<DIV><FONT size="1" style="font-size:1pt;color:white">Certain Effects of Authorized but Unissued Common and Preferred Stock                 The existence of authorized and unissued common and preferred stock may enable our Board of   Directors to issue shares which could, under certain circumstances, have an anti-takeover effect or delay or   prevent a change in control of the Company by providing the Company with the capability to engage in   actions that would be dilutive to a potential acquirer, to pursue alternative transactions, or to otherwise   increase the potential cost to acquire control of the Company.       Provisions of our Charter, our By-laws and Massachusetts Law that May Have Anti-Takeover   Effects                  Board of Directors.  Our Charter provides that our Board of Directors is divided into three classes,   with one class being elected each year for a term of three years.  Directors may be removed from office (1)  with cause by vote of the holders of a majority of the shares issued and outstanding and entitled to vote  generally in the election of directors; (2) without cause by vote of the holders of at least 80% of the votes  entitled to be cast by the holders of all shares of the Company entitled to vote generally in the election of  directors, voting together as a single class; or (3) with cause by vote of a majority of the directors then in  office.                     Shareholder Action.  Any action required or permitted to be taken at any meeting of the   shareholders may be taken without a meeting if all shareholders entitled to vote on the matter consent to   the action in writing.                   Special Meetings of Shareholders.  Our By-laws provide that special meetings of the shareholders   may be called at any time by the Chairman of the Board, the President, or by a majority of the directors,   and shall be called by the Secretary of the Company upon written application of one or more shareholders   who hold at least forty (40) percent in interest of the capital stock entitled to vote at such meeting.                  Advance Notice Requirements for Nominations of Directors or Other Shareholder Proposals.  Our   By-laws require shareholders seeking to nominate persons for election as directors at an annual meeting of   shareholders, or to bring other business before an annual meeting (other than a matter brought under Rule   14a-8 under the Exchange Act), to provide timely notice in writing.  If shareholder proposals, including   proposals regarding the election of directors, are to be considered at an annual meeting of shareholders,   notice of them must be given by personal delivery or by U.S. mail, postage prepaid, to the Secretary of the   Company not later than the close of business on the ninetieth (90th) day nor earlier than the close of business  on the one-hundred twentieth (120th) day prior to the first anniversary of the preceding year&#8217;s annual   meeting (however, in the event that the date of the annual meeting is advanced by more than thirty (30)   days before or delayed by more than sixty (60) days after such anniversary date, notice by the shareholder   to be timely must be so delivered not earlier than the close of business on the one-hundred twentieth (120th)   day prior to such annual meeting and not later than the close of business on the later of the ninetieth (90th)   day prior to such annual meeting or the tenth (10th) day following the day on which public announcement  of the date of such meeting is first made), and with respect to a matter to be brought before a special meeting  of the shareholders not in lieu of an annual meeting, the close of business on the tenth (10th) day following  the date on which notice of such meeting is first given to shareholders.  Shareholder proposals also must  contain certain information set forth in our By-laws.                 Amendments to Charter and By-laws.  Our Charter and By-laws provide that certain provisions  may only be amended by the holders of at least 80% of the shares entitled to vote or the vote of a majority  of the Board of Directors (including a majority of the continuing directors).                  Limitation of Liability and Indemnification Matters.  Our Charter includes a provision that  eliminates or limits the personal liability of a director to the Company or its shareholders for monetary  damages for a breach of fiduciary duty as a director notwithstanding any provision of law imposing such                                         2   </FONT></DIV>
<P><HR noshade><P>
<DIV style="page-break-before:always;">&nbsp;</DIV>
</DIV>
<!-- cgnxexhibit4bdescription003.jpg -->
<DIV style="padding-top:2em;">
<IMG src="cgnxexhibit4bdescription003.jpg" title="slide3" width="1055" height="1365">
<DIV><FONT size="1" style="font-size:1pt;color:white">liability, except where the director breached his or her duty of loyalty, failed to act in good faith, engaged  in intentional misconduct or knowingly violated a law, authorized the payment of an improper distribution  or obtained an improper personal benefit.  Further, our By-laws provide that, except as limited by law or  otherwise provided in the By-laws, each director or officer of the Company (and his or her heirs and  personal representatives) shall be indemnified by the Company against any expense incurred in connection  with each proceeding in which he or she is involved as a result of his or her serving or having served as a  director or officer.  Our By-laws further provide that no indemnification shall be provided to a director or  officer with respect to a proceeding as to which it shall have been adjudicated that he or she did not act in  good faith in the reasonable belief that his or her action was in the best interests of the Company.  We will  pay sums on account of indemnification in advance of a final disposition of a proceeding upon receipt of  an undertaking by the director or officer to repay such sums if it is subsequently established that he or she  is not entitled to indemnification.               Business Combinations with Interested Stockholders.  In general, the Massachusetts General Laws   prevent a publicly held Massachusetts corporation from engaging in a business combination, as defined in   the Massachusetts General Laws, with an interested stockholder for a period of three years after the date of   the transaction in which the person became an interested stockholder, unless: (1) before the date on which   the person became an interested stockholder, the board of directors of the corporation approved either the   business combination or the transaction in which the person became an interested stockholder; (2) the   interested stockholder acquires at least 90% of the outstanding voting stock of the corporation at the time   it becomes an interested stockholder; or (3) the business combination is approved by the board of directors   and the holders of at least two-thirds of the outstanding voting stock of the corporation voting at a meeting,   excluding the voting stock owned by the interested stockholder.  An interested stockholder is generally a   person owning 5% or more of the outstanding voting stock of the corporation.  A business combination   includes mergers, consolidations, stock and asset sales and other transactions with the interested stockholder   that result in a financial benefit to the interested stockholder.  Our Charter also requires a supermajority   shareholder vote to approve certain business combinations involving interested stockholders (as defined in   the Charter).                Control Share Acquisitions.  Subject to certain exceptions, the control share acquisitions provisions   of the Massachusetts General Laws generally provide that any person, including his, her or its affiliates,   who acquires shares of a corporation that are subject to the control share acquisitions statute and whose   shares represent one-fifth or more, one-third or more, or a majority or more of the voting power of the   corporation in the election of directors cannot exercise any voting power with respect to those shares, unless   these voting rights are authorized by the stockholders of the corporation.  The authorization of voting rights   requires the affirmative vote of the holders of a majority of the outstanding voting shares, excluding shares   owned by:  (1) the person making an acquisition of this nature; (2) any officer of the corporation; and (3)   any employee who is also a director of the corporation.  Our Charter includes a provision which permits   the Company to effect redemptions of shares acquired in a control share acquisition under certain   circumstances.                                                           3   </FONT></DIV>
<P><HR noshade><P>
<DIV style="page-break-before:always;">&nbsp;</DIV>
</DIV>
</DIV>
</DIV>
</BODY>
</HTML>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EX-10.U
<SEQUENCE>3
<FILENAME>cgnxformofrsuagreement.htm
<DESCRIPTION>EXHIBIT 10.U
<TEXT>
<HTML>
<HEAD><!-- Document generated by Workiva Inc -->
<TITLE>cgnxformofrsuagreement</TITLE>
</HEAD>
<BODY bgcolor="white">
<DIV align="center">
<DIV style="margin-left:1em;width:1055;"><!-- cgnxformofrsuagreement001.jpg -->
<DIV style="padding-top:2em;">
<IMG src="cgnxformofrsuagreement001.jpg" title="slide1" width="1055" height="1365">
<DIV><FONT size="1" style="font-size:1pt;color:white">                                                                          EXHIBIT 10U              RESTRICTED STOCK UNIT AWARD AGREEMENT                         FOR COMPANY EMPLOYEES                    UNDER THE COGNEX CORPORATION                 2007 STOCK OPTION AND INCENTIVE PLAN    Name of Grantee:    No. of Restricted Stock Units:    Grant Date:          Pursuant to the Cognex Corporation 2007 Stock Option and Incentive Plan, as amended   through the date hereof (the &#8220;Plan&#8221;), Cognex Corporation (the &#8220;Company&#8221;) hereby grants an   award of the number of Restricted Stock Units listed above (an &#8220;Award&#8221;) to the Grantee named   above.  Each Restricted Stock Unit shall relate to one share of Common Stock, par value $0.002   per share (the &#8220;Stock&#8221;), of the Company.          1.    Restrictions on Transfer of Award.  This Award may not be sold, transferred,  pledged, assigned or otherwise encumbered or disposed of by the Grantee, and any shares of   Stock issuable with respect to the Award may not be sold, transferred, pledged, assigned or   otherwise encumbered or disposed of until (i) the Restricted Stock Units have vested as provided   in Paragraph 2 of this Agreement and (ii) shares of Stock have been issued to the Grantee in   accordance with the terms of the Plan and this Agreement.          2.    Vesting of Restricted Stock Units.  The restrictions and conditions of Paragraph 1  of this Agreement shall lapse on the Vesting Date(s) specified in the following schedule so long   as the Grantee remains an employee of the Company or a Subsidiary on such Vesting Date(s).  If   a series of Vesting Dates is specified, then the restrictions and conditions in Paragraph 1 shall   lapse only with respect to the number of Restricted Stock Units specified as vested on such date.                   Incremental Number of                Restricted Stock Units Vested           Vesting Date                      _____________                   _______________                     _____________                   _______________                     _____________                   _______________          The Administrator may at any time accelerate the vesting schedule specified in this   Paragraph 2.          [Included for Directors/Chief Financial Officer/Executive Officer Senior Vice Presidents:  In the event of a corporate transaction, including a merger or reorganization, whereby the holders  of the outstanding shares of common stock of the Company before the transaction fail to have a  beneficial interest of 51 percent or more of the shares of outstanding common stock of the  Company or its successor (or its ultimate parent) after the consummation of the transaction, all </FONT></DIV>
<P><HR noshade><P>
<DIV style="page-break-before:always;">&nbsp;</DIV>
</DIV>
<!-- cgnxformofrsuagreement002.jpg -->
<DIV style="padding-top:2em;">
<IMG src="cgnxformofrsuagreement002.jpg" title="slide2" width="1055" height="1365">
<DIV><FONT size="1" style="font-size:1pt;color:white"> unvested Restricted Stock Units granted pursuant to this Award shall become vested immediately   prior to the consummation of the transaction.]          [Included for Other Executive Officers: In the event of a corporate transaction, including   a merger or reorganization, whereby the holders of the outstanding shares of common stock of   the Company before the transaction fail to have a beneficial interest of 51 percent or more of the   shares of outstanding common stock of the Company or its successor (or its ultimate parent) after   the consummation of the transaction, and within 12 months of the consummation of the   transaction, Grantee&#8217;s employment is involuntarily terminated, all unvested Restricted Stock   Units granted pursuant to this Award shall become immediately vested and fully exercisable. For   purposes hereof, Grantee&#8217;s employment is considered to be involuntarily terminated if the   Company or its successor terminates Grantee&#8217;s employment without Cause or Grantee resigns   for Good Reason. The term &#8220;Cause&#8221; shall mean (i) Grantee&#8217;s willful and continued failure to   perform substantially Grantee&#8217;s duties with the Company (other than any failure resulting from   incapacity due to physical or mental illness), after a written demand of performance is delivered   to Grantee by the Board or the Chief Executive Officer of the Company which identifies the   manner in which the Board or Chief Executive Officer believes that Grantee has not substantially  performed Grantee&#8217;s duties; or (ii) Grantee&#8217;s willful engagement in illegal conduct or gross   misconduct which is materially injurious to the Company. The term &#8220;Good Reason&#8221; shall mean   (i) a material diminution in Grantee&#8217;s duties or responsibilities, excluding for this purpose any   diminution related solely to the Company ceasing to be a reporting company for purposes of the   Securities Exchange Act of 1934, or (ii) the Company&#8217;s requiring Grantee to be based at any   office or location that is more than fifty (50) miles from Grantee&#8217;s current office.]          3.    Termination of Employment.  If the Grantee&#8217;s employment with the Company   and its Subsidiaries terminates for any reason (including death or disability) prior to the   satisfaction of the vesting conditions set forth in Paragraph 2 above, any Restricted Stock Units   that have not vested as of such date shall automatically and without notice terminate and be   forfeited, and neither the Grantee nor any of his or her successors, heirs, assigns, or personal   representatives will thereafter have any further rights or interests in such unvested Restricted   Stock Units.          4.    Issuance of Shares of Stock.  As soon as practicable following each Vesting Date   (but in no event later than two and one-half months after the end of the year in which the Vesting  Date occurs), the Company shall issue to the Grantee the number of shares of Stock equal to the   aggregate number of Restricted Stock Units that have vested pursuant to Paragraph 2 of this   Agreement on such date and the Grantee shall thereafter have all the rights of a stockholder of   the Company with respect to such shares.           5.    Incorporation of Plan.  Notwithstanding anything herein to the contrary, this   Agreement shall be subject to and governed by all the terms and conditions of the Plan, including   the powers of the Administrator set forth in Section 2(b) of the Plan.  Capitalized terms in this   Agreement shall have the meaning specified in the Plan, unless a different meaning is specified   herein.          6.    Tax Withholding.   The Grantee shall, not later than the date as of which the   receipt of this Award becomes a taxable event for Federal income tax purposes, pay to the   Company or make arrangements satisfactory to the Administrator for payment of any Federal,                                         2    </FONT></DIV>
<P><HR noshade><P>
<DIV style="page-break-before:always;">&nbsp;</DIV>
</DIV>
<!-- cgnxformofrsuagreement003.jpg -->
<DIV style="padding-top:2em;">
<IMG src="cgnxformofrsuagreement003.jpg" title="slide3" width="1055" height="1365">
<DIV><FONT size="1" style="font-size:1pt;color:white"> state, and local taxes required by law to be withheld on account of such taxable event.  Such   withholding shall be satisfied by the Company withholding from Shares to be issued to the   Grantee a number of Shares with an aggregate Fair Market Value that would satisfy the   withholding amount due.  Alternatively, or in addition, the Company may decide in its sole and   absolute discretion to satisfy Grantee&#8217;s obligation for tax-related items by one or a combination   of the following: (i) withholding from proceeds of the sale of Shares acquired upon   vesting/settlement of the Restricted Stock Units either through a voluntary sale or through a   mandatory sale arranged by the Company (on Grantee&#8217;s behalf pursuant to this authorization); or   (ii) in any other manner permitted by the Plan.          7.    Section 409A of the Code.  This Agreement shall be interpreted in such a manner   that all provisions relating to the settlement of the Award are exempt from the requirements of   Section 409A of the Code as &#8220;short-term deferrals&#8221; as described in Section 409A of the Code.          8.    No Obligation to Continue Employment.  Neither the Company nor any   Subsidiary is obligated by or as a result of the Plan or this Agreement to continue the Grantee in   employment and neither the Plan nor this Agreement shall interfere in any way with the right of   the Company or any Subsidiary to terminate the employment of the Grantee at any time.          9.    Integration.  This Agreement constitutes the entire agreement between the parties   with respect to this Award and supersedes all prior agreements and discussions between the   parties concerning such subject matter.          10.   Data Privacy Consent.  In order to administer the Plan and this Agreement and to   implement or structure future equity grants, the Company, its subsidiaries and affiliates and   certain agents thereof (together, the &#8220;Relevant Companies&#8221;) may process any and all personal or   professional data, including but not limited to Social Security or other identification number,   home address and telephone number, date of birth and other information that is necessary or   desirable for the administration of the Plan and/or this Agreement (the &#8220;Relevant Information&#8221;).    By entering into this Agreement, the Grantee (i) authorizes the Company to collect, process,  register and transfer to the Relevant Companies all Relevant Information; (ii) waives any privacy   rights the Grantee may have with respect to the Relevant Information; (iii) authorizes the  Relevant Companies to store and transmit such information in electronic form; and (iv)  authorizes the transfer of the Relevant Information to any jurisdiction in which the Relevant  Companies consider appropriate.  The Grantee shall have access to, and the right to change, the  Relevant Information.  Relevant Information will only be used in accordance with applicable  law.          11.   Notices.  Notices hereunder shall be mailed or delivered to the Company at its   principal place of business and shall be mailed or delivered to the Grantee at the address on file  with the Company or, in either case, at such other address as one party may subsequently furnish   to the other party in writing.          12.   Restrictive Covenants.  The Grantee reaffirms his/her promise to be bound by the   restrictive covenants set forth in the Employee Invention, Non-Disclosure and Non-Competition   Agreement or Employee Invention and Non-Disclosure Agreement, as applicable, entered into   between the Grantee and the Company (the &#8220;Employment Agreement&#8221;).  The Grantee agrees that   any gains realized by the Grantee pursuant to the vesting of this Award (along with other good                                         3    </FONT></DIV>
<P><HR noshade><P>
<DIV style="page-break-before:always;">&nbsp;</DIV>
</DIV>
<!-- cgnxformofrsuagreement004.jpg -->
<DIV style="padding-top:2em;">
<IMG src="cgnxformofrsuagreement004.jpg" title="slide4" width="1055" height="1365">
<DIV><FONT size="1" style="font-size:1pt;color:white">and valuable consideration including, but not limited to employment by the Company, salary and  other Company-provided benefits) are additional and sufficient consideration for the Grantee&#8217;s  performance of Grantee&#8217;s obligations as stated in the Employment Agreement.  To the extent  permitted by applicable law, Grantee agrees that if Grantee breaches the Employment Agreement  then Grantee shall pay damages to the Company, including, but not limited to an amount equal to  the sum of: (a) the total of all gains realized by Grantee as a result of vesting of this Award, and  (b) the total of all gains realized by Grantee as a result of the sale of any shares acquired by  Grantee through the vesting of this Award.  The determination of the existence of breach of the  Employment Agreement shall be made by the Company in good faith, which determination shall  be conclusive for purposes of this Agreement.                                                            COGNEX CORPORATION                                           By:                                                                                Title:   The foregoing Agreement is hereby accepted and the terms and conditions thereof hereby agreed  to by the undersigned.  Electronic acceptance of this Agreement pursuant to the Company&#8217;s  instructions to the Grantee (including through an online acceptance process) is acceptable.    Dated:                                                                                                                 Grantee&#8217;s Signature                                            Grantee&#8217;s name and address:                                                                                                                                                                                                                                                                                                4   </FONT></DIV>
<P><HR noshade><P>
<DIV style="page-break-before:always;">&nbsp;</DIV>
</DIV>
</DIV>
</DIV>
</BODY>
</HTML>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EX-18.1
<SEQUENCE>4
<FILENAME>cognexpreferabilitylette.htm
<DESCRIPTION>EXHIBIT 18.1
<TEXT>
<HTML>
<HEAD><!-- Document generated by Workiva Inc -->
<TITLE>cognexpreferabilitylette</TITLE>
</HEAD>
<BODY bgcolor="white">
<DIV align="center">
<DIV style="margin-left:1em;width:1055;"><!-- cognexpreferabilitylette001.jpg -->
<DIV style="padding-top:2em;">
<IMG src="cognexpreferabilitylette001.jpg" title="slide1" width="1055" height="1365">
<DIV><FONT size="1" style="font-size:1pt;color:white">                                                          EXHIBIT 18.1   February 13, 2020   Board of Directors  Cognex Corporation  One Vision Drive  Natick, MA 01760    Dear Directors:   We are providing this letter solely for inclusion as an exhibit to Cognex Corporation (the  &#8220;Company&#8221;) Form 10-K filing pursuant to Item 601 of Regulation S-K.   We have audited the consolidated financial statements included in the Company&#8217;s Annual  Report on Form 10-K for the year ended December 31, 2019, as set forth in our report dated  February 13, 2020. As stated in Note 18 to those financial statements, the Company changed its  accounting for Global Intangible Low-Taxed Income (GILTI). Note 18 also states  management&#8217;s belief that the newly adopted accounting principle is preferable in the  circumstances because it more accurately reflects the impact that GILTI has on the Company&#8217;s  annual tax expense. Under the Company&#8217;s prior policy election, the Company recorded GILTI  within total tax expense as incurred; without regard for the impact that non-U.S. taxable and/or  deductible timing differences had on the annual income tax provision.  The Company&#8217;s new  accounting policy recognizes deferred taxes for temporary basis differences expected to reverse  as GILTI. The Company&#8217;s prior method of accounting for GILTI was appropriate in prior  periods as the Company did not have significant timing differences. In the fourth quarter of  2019, significant non-U.S. timing differences were created when the Company made changes to  its tax structure in response to tax reform legislation enacted in the European Union related to  low tax structures.  The new accounting policy for GILTI appropriately matches the current  and deferred income tax implications related to the change in tax structure. Without the change  in accounting principle, the Company&#8217;s income tax expense would not be comparable to prior  and subsequent periods.    With regard to the aforementioned accounting change, it should be understood that  authoritative criteria have not been established for evaluating the preferability of one acceptable  method of accounting over another acceptable method and, in expressing our concurrence  below, we have relied on management&#8217;s business planning and judgment and on management&#8217;s  determination that this change in accounting principle is preferable.  </FONT></DIV>
<P><HR noshade><P>
<DIV style="page-break-before:always;">&nbsp;</DIV>
</DIV>
<!-- cognexpreferabilitylette002.jpg -->
<DIV style="padding-top:2em;">
<IMG src="cognexpreferabilitylette002.jpg" title="slide2" width="1055" height="1365">
<DIV><FONT size="1" style="font-size:1pt;color:white">                                                                                      2    Based on our reading of management&#8217;s stated reasons and justification for this change in  accounting principle in the Form 10-K, and our discussions with management as to their  judgment about the relevant business planning factors relating to the change, we concur with  management that the newly adopted method of accounting is preferable in the Company&#8217;s  circumstances.    Sincerely,   /s/ GRANT THORNTON LLP    Boston, Massachusetts      Grant Thornton LLP  U.S. member firm of Grant Thornton International Ltd </FONT></DIV>
<P><HR noshade><P>
<DIV style="page-break-before:always;">&nbsp;</DIV>
</DIV>
</DIV>
</DIV>
</BODY>
</HTML>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EX-21
<SEQUENCE>5
<FILENAME>cgnx-20191231xexhibit21.htm
<DESCRIPTION>EXHIBIT 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 1 -->
		<!-- Copyright 2020 Workiva -->
		<title>Exhibit</title>
	</head>
	<body><div style="font-family:Times New Roman;font-size:10pt;">
<div><a name="sEE4EE1B8CBAB5BF0B6DD4652E45CDB71"></a></div><div><div style="line-height:120%;text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;"><br></font></div><div style="line-height:120%;text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;"><br></font></div><div style="line-height:120%;text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">EXHIBIT 21</font></div><div style="line-height:120%;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></div><div><br></div><div style="line-height:120%;text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;"><br></font></div><div style="line-height:120%;padding-bottom:5px;text-align:center;padding-left:12px;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">COGNEX CORPORATION</font></div><div style="line-height:120%;padding-bottom:5px;text-align:center;padding-left:12px;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;font-weight:bold;">SUBSIDIARIES OF THE REGISTRANT</font></div><div style="line-height:120%;padding-bottom:5px;text-align:justify;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">As of December 31, 2019, 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:</font></div><div style="line-height:120%;padding-left:5px;font-size:9pt;"><div style="padding-left:0px;text-indent:0px;line-height:normal;padding-top:10px;"><table cellpadding="0" cellspacing="0" style="font-family:Times New Roman;font-size:10pt;width:99.14529914529915%;border-collapse:collapse;text-align:left;"><tr><td colspan="3"></td></tr><tr><td style="width:55%;"></td><td style="width:28%;"></td><td style="width:17%;"></td></tr><tr><td style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:5px;padding-right:54px;"><div style="padding-bottom:5px;text-align:center;padding-left:42px;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;font-weight:bold;">NAME OF SUBSIDIARY</font></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:5px;padding-right:20px;"><div style="padding-bottom:5px;text-align:center;padding-left:24px;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;font-weight:bold;">STATE/COUNTRY OF INCORPORATION</font></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:5px;padding-right:6px;"><div style="padding-bottom:5px;text-align:center;padding-left:5px;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;font-weight:bold;">PERCENT OWNERSHIP</font></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="padding-bottom:5px;text-align:left;padding-left:12px;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">Cognex Asia, Inc. </font></div></td><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:5px;padding-right:2px;"><div style="padding-bottom:5px;text-align:left;padding-left:24px;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">Delaware</font></div></td><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:5px;padding-right:9px;"><div style="padding-bottom:5px;text-align:center;padding-left:12px;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">100%</font></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:5px;padding-right:2px;"><div style="padding-bottom:5px;text-align:left;padding-left:12px;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">Cognex Canada, Inc.</font></div></td><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:5px;padding-right:2px;"><div style="padding-bottom:5px;text-align:left;padding-left:24px;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">Delaware</font></div></td><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:5px;padding-right:12px;"><div style="padding-bottom:5px;text-align:center;padding-left:12px;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">100%</font></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:5px;padding-right:2px;"><div style="padding-bottom:5px;text-align:left;padding-left:12px;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">Cognex Canada Technology, Inc.</font></div></td><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:5px;padding-right:2px;"><div style="padding-bottom:5px;text-align:left;padding-left:24px;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">California</font></div></td><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:5px;padding-right:12px;"><div style="padding-bottom:5px;text-align:center;padding-left:12px;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">100%</font></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:5px;padding-right:2px;"><div style="padding-bottom:5px;text-align:left;padding-left:12px;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">Cognex EnShape GmbH</font></div></td><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:5px;padding-right:2px;"><div style="padding-bottom:5px;text-align:left;padding-left:24px;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">Germany</font></div></td><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:5px;padding-right:12px;"><div style="padding-bottom:5px;text-align:center;padding-left:12px;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">100%</font></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:5px;padding-right:2px;"><div style="padding-bottom:5px;text-align:left;padding-left:12px;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">Cognex Europe, B.V.</font></div></td><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:5px;padding-right:2px;"><div style="padding-bottom:5px;text-align:left;padding-left:24px;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">Netherlands</font></div></td><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:5px;padding-right:12px;"><div style="padding-bottom:5px;text-align:center;padding-left:12px;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">100%</font></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:5px;padding-right:2px;"><div style="padding-bottom:5px;text-align:left;padding-left:12px;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">Cognex Europe, Inc.</font></div></td><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:5px;padding-right:2px;"><div style="padding-bottom:5px;text-align:left;padding-left:24px;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">Delaware</font></div></td><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:5px;padding-right:12px;"><div style="padding-bottom:5px;text-align:center;padding-left:12px;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">100%</font></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:5px;padding-right:2px;"><div style="padding-bottom:5px;text-align:left;padding-left:12px;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">Cognex Foreign Sales Corporation</font></div></td><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:5px;padding-right:2px;"><div style="padding-bottom:5px;text-align:left;padding-left:24px;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">Barbados</font></div></td><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:5px;padding-right:12px;"><div style="padding-bottom:5px;text-align:center;padding-left:12px;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">100%</font></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:5px;padding-right:2px;"><div style="padding-bottom:5px;text-align:left;padding-left:12px;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">Cognex Germany, Inc.</font></div></td><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:5px;padding-right:2px;"><div style="padding-bottom:5px;text-align:left;padding-left:24px;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">Massachusetts</font></div></td><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:5px;padding-right:12px;"><div style="padding-bottom:5px;text-align:center;padding-left:12px;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">100%</font></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:5px;padding-right:2px;"><div style="padding-bottom:5px;text-align:left;padding-left:12px;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">Cognex Germany Aachen GmbH</font></div></td><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:5px;padding-right:2px;"><div style="padding-bottom:5px;text-align:left;padding-left:24px;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">Germany</font></div></td><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:5px;padding-right:12px;"><div style="padding-bottom:5px;text-align:center;padding-left:12px;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">100%</font></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:5px;padding-right:2px;"><div style="padding-bottom:5px;text-align:left;padding-left:12px;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">Cognex Goruntu Sistemleri Satis ve Ticaret Limited Sirketi</font></div></td><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:5px;padding-right:2px;"><div style="padding-bottom:5px;text-align:left;padding-left:24px;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">Turkey</font></div></td><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:5px;padding-right:12px;"><div style="padding-bottom:5px;text-align:center;padding-left:12px;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">100%</font></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:5px;padding-right:2px;"><div style="padding-bottom:5px;text-align:left;padding-left:12px;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">Cognex Hungary Kft.</font></div></td><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:5px;padding-right:2px;"><div style="padding-bottom:5px;text-align:left;padding-left:24px;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">Hungary</font></div></td><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:5px;padding-right:12px;"><div style="padding-bottom:5px;text-align:center;padding-left:12px;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">100%</font></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:5px;padding-right:2px;"><div style="padding-bottom:5px;text-align:left;padding-left:12px;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">Cognex International, Inc.</font></div></td><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:5px;padding-right:2px;"><div style="padding-bottom:5px;text-align:left;padding-left:24px;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">Delaware</font></div></td><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:5px;padding-right:12px;"><div style="padding-bottom:5px;text-align:center;padding-left:12px;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">100%</font></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:5px;padding-right:2px;"><div style="padding-bottom:5px;text-align:left;padding-left:12px;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">Cognex Ireland Ltd.</font></div></td><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:5px;padding-right:2px;"><div style="padding-bottom:5px;text-align:left;padding-left:24px;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">Ireland</font></div></td><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:5px;padding-right:12px;"><div style="padding-bottom:5px;text-align:center;padding-left:12px;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">100%</font></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:5px;padding-right:2px;"><div style="padding-bottom:5px;text-align:left;padding-left:12px;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">Cognex K.K.</font></div></td><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:5px;padding-right:2px;"><div style="padding-bottom:5px;text-align:left;padding-left:24px;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">Japan</font></div></td><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:5px;padding-right:12px;"><div style="padding-bottom:5px;text-align:center;padding-left:12px;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">100%</font></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:5px;padding-right:2px;"><div style="padding-bottom:5px;text-align:left;padding-left:12px;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">Cognex Korea, Inc.</font></div></td><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:5px;padding-right:2px;"><div style="padding-bottom:5px;text-align:left;padding-left:24px;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">Delaware</font></div></td><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:5px;padding-right:12px;"><div style="padding-bottom:5px;text-align:center;padding-left:12px;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">100%</font></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:5px;padding-right:2px;"><div style="padding-bottom:5px;text-align:left;padding-left:12px;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">Cognex, Ltd.</font></div></td><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:5px;padding-right:2px;"><div style="padding-bottom:5px;text-align:left;padding-left:24px;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">Ireland</font></div></td><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:5px;padding-right:12px;"><div style="padding-bottom:5px;text-align:center;padding-left:12px;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">100%</font></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="padding-bottom:5px;text-align:left;padding-left:12px;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">Cognex Malaysia Sdn. Bhd.</font></div></td><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="padding-bottom:5px;text-align:left;padding-left:24px;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">Malaysia</font></div></td><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:5px;padding-right:12px;"><div style="padding-bottom:5px;text-align:center;padding-left:12px;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">100%</font></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="padding-bottom:5px;text-align:left;padding-left:12px;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">Cognex Mexico S.R.L.C.V. </font></div></td><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="padding-bottom:5px;text-align:left;padding-left:24px;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">Mexico</font></div></td><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:5px;padding-right:12px;"><div style="padding-bottom:5px;text-align:center;padding-left:12px;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">100%</font></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="padding-bottom:5px;text-align:left;padding-left:12px;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">Cognex Poland z.o.o</font></div></td><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="padding-bottom:5px;text-align:left;padding-left:24px;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">Poland</font></div></td><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:5px;padding-right:12px;"><div style="padding-bottom:5px;text-align:center;padding-left:12px;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">100%</font></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:5px;padding-right:2px;"><div style="padding-bottom:5px;text-align:left;padding-left:12px;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">Cognex Representacao Comercial E Participacoes Ltda.</font></div></td><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:5px;padding-right:2px;"><div style="padding-bottom:5px;text-align:left;padding-left:24px;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">Brazil</font></div></td><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:5px;padding-right:12px;"><div style="padding-bottom:5px;text-align:center;padding-left:12px;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">100%</font></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:5px;padding-right:2px;"><div style="padding-bottom:5px;text-align:left;padding-left:12px;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">Cognex Sensors India Private Limited</font></div></td><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:5px;padding-right:2px;"><div style="padding-bottom:5px;text-align:left;padding-left:24px;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">India</font></div></td><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:5px;padding-right:12px;"><div style="padding-bottom:5px;text-align:center;padding-left:12px;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">100%</font></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:5px;padding-right:2px;"><div style="padding-bottom:5px;text-align:left;padding-left:12px;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">Cognex Service, Inc</font></div></td><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:5px;padding-right:2px;"><div style="padding-bottom:5px;text-align:left;padding-left:24px;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">Delaware</font></div></td><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:5px;padding-right:12px;"><div style="padding-bottom:5px;text-align:center;padding-left:12px;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">100%</font></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:5px;padding-right:2px;"><div style="padding-bottom:5px;text-align:left;padding-left:12px;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">Cognex Service Ltd.</font></div></td><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:5px;padding-right:2px;"><div style="padding-bottom:5px;text-align:left;padding-left:24px;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">Ireland</font></div></td><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:5px;padding-right:12px;"><div style="padding-bottom:5px;text-align:center;padding-left:12px;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">100%</font></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:5px;padding-right:2px;"><div style="padding-bottom:5px;text-align:left;padding-left:12px;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">Cognex Singapore, Inc.</font></div></td><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:5px;padding-right:2px;"><div style="padding-bottom:5px;text-align:left;padding-left:24px;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">Delaware</font></div></td><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:5px;padding-right:12px;"><div style="padding-bottom:5px;text-align:center;padding-left:12px;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">100%</font></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="padding-bottom:5px;text-align:left;padding-left:12px;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">Cognex Switzerland GmbH</font></div></td><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:5px;padding-right:2px;"><div style="padding-bottom:5px;text-align:left;padding-left:24px;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">Switzerland</font></div></td><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:5px;padding-right:12px;"><div style="padding-bottom:5px;text-align:center;padding-left:12px;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">100%</font></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:5px;padding-right:2px;"><div style="padding-bottom:5px;text-align:left;padding-left:12px;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">Cognex Taiwan, Inc.</font></div></td><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:5px;padding-right:2px;"><div style="padding-bottom:5px;text-align:left;padding-left:24px;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">Delaware</font></div></td><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:5px;padding-right:12px;"><div style="padding-bottom:5px;text-align:center;padding-left:12px;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">100%</font></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:5px;padding-right:2px;"><div style="padding-bottom:5px;text-align:left;padding-left:24px;text-indent:-12px;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">Cognex Technology and Investment LLC</font></div></td><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:5px;padding-right:2px;"><div style="padding-bottom:5px;text-align:left;padding-left:24px;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">California</font></div></td><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:5px;padding-right:12px;"><div style="padding-bottom:5px;text-align:center;padding-left:12px;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">100%</font></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:5px;padding-right:2px;"><div style="padding-bottom:5px;text-align:left;padding-left:12px;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">Cognex UK Ltd.</font></div></td><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:5px;padding-right:2px;"><div style="padding-bottom:5px;text-align:left;padding-left:24px;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">United Kingdom</font></div></td><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:5px;padding-right:12px;"><div style="padding-bottom:5px;text-align:center;padding-left:12px;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">100%</font></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="padding-bottom:5px;text-align:left;padding-left:12px;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">Cognex Vietnam Company Ltd.</font></div></td><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="padding-bottom:5px;text-align:left;padding-left:24px;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">Vietnam</font></div></td><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:5px;padding-right:12px;"><div style="padding-bottom:5px;text-align:center;padding-left:12px;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">100%</font></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:5px;padding-right:2px;"><div style="padding-bottom:5px;text-align:left;padding-left:12px;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">Cognex Vision Inspection System (Shanghai) Co., Ltd.</font></div></td><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:5px;padding-right:2px;"><div style="padding-bottom:5px;text-align:left;padding-left:24px;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">China</font></div></td><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:5px;padding-right:12px;"><div style="padding-bottom:5px;text-align:center;padding-left:12px;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">100%</font></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="padding-bottom:5px;text-align:left;padding-left:12px;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">Cognex Vision Spain, S.L.U.</font></div></td><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="padding-bottom:5px;text-align:left;padding-left:24px;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">Spain</font></div></td><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:5px;padding-right:12px;"><div style="padding-bottom:5px;text-align:center;padding-left:12px;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">100%</font></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="padding-bottom:5px;text-align:left;padding-left:12px;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">Cognex Vision Thailand Limited</font></div></td><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="padding-bottom:5px;text-align:left;padding-left:24px;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">Thailand</font></div></td><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:5px;padding-right:12px;"><div style="padding-bottom:5px;text-align:center;padding-left:12px;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">100%</font></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="padding-bottom:5px;text-align:left;padding-left:12px;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">SuaLab Co., Ltd.</font></div></td><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="padding-bottom:5px;text-align:left;padding-left:24px;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">Korea</font></div></td><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:5px;padding-right:12px;"><div style="padding-bottom:5px;text-align:center;padding-left:12px;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">100%</font></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="padding-bottom:5px;text-align:left;padding-left:12px;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">SuaLab (Suzhou) Co., Ltd.</font></div></td><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="padding-bottom:5px;text-align:left;padding-left:24px;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">China</font></div></td><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:5px;padding-right:12px;"><div style="padding-bottom:5px;text-align:center;padding-left:12px;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">100%</font></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:5px;padding-right:2px;"><div style="padding-bottom:5px;text-align:left;padding-left:12px;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">Vision Drive, Inc.</font></div></td><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:5px;padding-right:2px;"><div style="padding-bottom:5px;text-align:left;padding-left:24px;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">Delaware</font></div></td><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:5px;padding-right:12px;"><div style="padding-bottom:5px;text-align:center;padding-left:12px;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">100%</font></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="padding-bottom:5px;text-align:left;padding-left:12px;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">One Vision Drive LLC </font></div></td><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:5px;padding-right:2px;"><div style="padding-bottom:5px;text-align:left;padding-left:24px;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">Massachusetts</font></div></td><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:5px;padding-right:12px;"><div style="padding-bottom:5px;text-align:center;padding-left:12px;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">100%</font></div></td></tr></table></div></div><div style="line-height:120%;text-align:left;padding-left:12px;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div><div><br></div>	</div></body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EX-23.1
<SEQUENCE>6
<FILENAME>cgnx-20191231xexhibit231.htm
<DESCRIPTION>EXHIBIT 23.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 1 -->
		<!-- Copyright 2020 Workiva -->
		<title>Exhibit</title>
	</head>
	<body><div style="font-family:Times New Roman;font-size:10pt;">
<div><a name="sCFA5569441F450A6885669E01510E942"></a></div><div><div style="line-height:138%;padding-bottom:13px;text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;"><br></font></div><div style="line-height:138%;padding-bottom:13px;text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">EXHIBIT 23.1</font></div><div style="line-height:120%;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></div><div><br></div><div style="line-height:138%;padding-bottom:2px;text-align:justify;padding-left:12px;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;"><br></font></div><div style="line-height:138%;padding-bottom:13px;text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;"><br></font></div><div style="line-height:120%;padding-bottom:5px;text-align:center;padding-left:12px;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;"><br></font></div><div style="line-height:120%;padding-bottom:5px;text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">CONSENT OF INDEPENDENT REGISTERED PUBLIC ACCOUNTING FIRM</font></div><div style="line-height:120%;padding-bottom:5px;text-align:justify;padding-left:12px;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;"><br></font></div><div style="line-height:120%;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">We have issued our reports dated February 13, 2020, with respect to the consolidated financial statements,  schedule, and internal control over financial reporting included in the Annual Report of Cognex Corporation on Form 10-K for the year ended December 31, 2019.  We hereby consent to the incorporation by reference of said reports in the Registration Statements of Cognex Corporation on Forms S-8 (File Nos. 333-60807; 333-96961; 333-100709; 333-126787; 333-150315;  333-206081 and 333-224716). </font></div><div style="line-height:120%;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;"><br></font></div><div style="line-height:120%;padding-bottom:16px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">/s/ GRANT THORNTON LLP</font></div><div style="line-height:120%;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Boston, Massachusetts</font></div><div style="line-height:120%;padding-bottom:5px;text-align:justify;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">February&#160;13, 2020</font><font style="font-family:Arial;font-size:10pt;">&#32;</font></div><div style="line-height:120%;text-align:left;padding-left:12px;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div><div><br></div>	</div></body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EX-31.1
<SEQUENCE>7
<FILENAME>cgnx-20191231xexhibit311.htm
<DESCRIPTION>EXHIBIT 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 1 -->
		<!-- Copyright 2020 Workiva -->
		<title>Exhibit</title>
	</head>
	<body><div style="font-family:Times New Roman;font-size:10pt;">
<div><a name="s8840A65120565D90BBE6D1C4C38B62D4"></a></div><div><div style="line-height:120%;text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;"><br></font></div><div style="line-height:120%;text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;"><br></font></div><div style="line-height:120%;text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">EXHIBIT 31.1</font></div><div style="line-height:120%;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;"><br></font></div></div><div><br></div><div style="line-height:120%;text-align:right;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div><div style="line-height:120%;padding-top:12px;text-align:center;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;text-decoration:underline;">CERTIFICATION</font></div><div style="line-height:120%;padding-top:12px;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">I, Robert J. Willett, certify that:</font></div><div style="line-height:120%;font-size:10pt;"><div style="padding-left:0px;text-indent:0px;line-height:normal;padding-top:10px;"><table cellpadding="0" cellspacing="0" style="font-family:Times New Roman;font-size:10pt;width:99.80506822612085%;border-collapse:collapse;text-align:left;"><tr><td colspan="4"></td></tr><tr><td style="width:4%;"></td><td style="width:4%;"></td><td style="width:4%;"></td><td style="width:88%;"></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">1</font></div></td><td colspan="2" style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">I have reviewed this Annual Report on Form 10-K of Cognex Corporation;</font></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">2</font></div></td><td colspan="2" style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">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;</font></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">3</font></div></td><td colspan="2" style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">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;</font></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">4</font></div></td><td colspan="2" style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">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:</font></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">(a)</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">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;</font></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">(b)</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">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;</font></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">(c)</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">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; and</font></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">(d)</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">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; and</font></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">5</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">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):</font></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">(a)</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">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; and</font></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">(b)</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">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></div></td></tr></table></div></div><div style="line-height:120%;font-size:10pt;"><div style="padding-left:0px;text-indent:0px;line-height:normal;padding-top:10px;"><table cellpadding="0" cellspacing="0" style="font-family:Times New Roman;font-size:10pt;width:97.6608187134503%;border-collapse:collapse;text-align:left;"><tr><td colspan="8"></td></tr><tr><td style="width:5%;"></td><td style="width:31%;"></td><td style="width:2%;"></td><td style="width:4%;"></td><td style="width:12%;"></td><td style="width:5%;"></td><td style="width:1%;"></td><td style="width:40%;"></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Date:</font></div></td><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">February&#160;13, 2020</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;">&#160;</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;">&#160;</font></div></td><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">By:</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;">&#160;</font></div></td><td style="vertical-align:top;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">/s/ Robert J. Willett</font></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;">&#160;</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;">&#160;</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;">&#160;</font></div></td><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Robert J. Willett</font></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;">&#160;</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;">&#160;</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;">&#160;</font></div></td><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">President and Chief Executive Officer</font></div><div style="font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">(Principal Executive Officer)</font></div></td></tr></table></div></div><div><br></div><div style="text-align:center;"><div style="line-height:120%;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></div>	</div></body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EX-31.2
<SEQUENCE>8
<FILENAME>cgnx-20191231xexhibit312.htm
<DESCRIPTION>EXHIBIT 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 1 -->
		<!-- Copyright 2020 Workiva -->
		<title>Exhibit</title>
	</head>
	<body><div style="font-family:Times New Roman;font-size:10pt;">
<div><a name="s108E55019B4D524DA0F64C5C031C4FF5"></a></div><div><div style="line-height:120%;text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;"><br></font></div><div style="line-height:120%;text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;"><br></font></div><div style="line-height:120%;text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">EXHIBIT 31.2</font></div><div style="line-height:120%;text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;"><br></font></div><div style="line-height:120%;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;"><br></font></div></div><div><br></div><div style="line-height:120%;text-align:right;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div><div style="line-height:120%;padding-top:12px;text-align:center;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;text-decoration:underline;">CERTIFICATION</font></div><div style="line-height:120%;padding-top:12px;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">I, Laura A. MacDonald, certify that:</font></div><div style="line-height:120%;font-size:10pt;"><div style="padding-left:0px;text-indent:0px;line-height:normal;padding-top:10px;"><table cellpadding="0" cellspacing="0" style="font-family:Times New Roman;font-size:10pt;width:99.80506822612085%;border-collapse:collapse;text-align:left;"><tr><td colspan="4"></td></tr><tr><td style="width:4%;"></td><td style="width:4%;"></td><td style="width:4%;"></td><td style="width:88%;"></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">1</font></div></td><td colspan="2" style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">I have reviewed this Annual Report on Form 10-K of Cognex Corporation;</font></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">2</font></div></td><td colspan="2" style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">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;</font></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">3</font></div></td><td colspan="2" style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">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;</font></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">4</font></div></td><td colspan="2" style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">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:</font></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">(a)</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">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;</font></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">(b)</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">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;</font></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">(c)</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">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; and</font></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">(d)</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">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; and</font></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">5</font></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">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):</font></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">(a)</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">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; and</font></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">(b)</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">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></div></td></tr></table></div></div><div style="line-height:120%;font-size:10pt;"><div style="padding-left:0px;text-indent:0px;line-height:normal;padding-top:10px;"><table cellpadding="0" cellspacing="0" style="font-family:Times New Roman;font-size:10pt;width:99.22027290448344%;border-collapse:collapse;text-align:left;"><tr><td colspan="8"></td></tr><tr><td style="width:6%;"></td><td style="width:30%;"></td><td style="width:2%;"></td><td style="width:4%;"></td><td style="width:12%;"></td><td style="width:4%;"></td><td style="width:1%;"></td><td style="width:41%;"></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Date:</font></div></td><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">February&#160;13, 2020</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;">&#160;</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;">&#160;</font></div></td><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">By:</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;">&#160;</font></div></td><td style="vertical-align:top;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">/s/ Laura A. MacDonald</font></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;">&#160;</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;">&#160;</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;">&#160;</font></div></td><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Laura A. MacDonald</font></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;">&#160;</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;">&#160;</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;">&#160;</font></div></td><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Vice President and Corporate Controller</font></div><div style="font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">(Principal Financial and Accounting Officer)</font></div></td></tr></table></div></div><div><br></div><div style="text-align:center;"><div style="line-height:120%;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></div>	</div></body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EX-32.1
<SEQUENCE>9
<FILENAME>cgnx-20191231xexhibit321.htm
<DESCRIPTION>EXHIBIT 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 1 -->
		<!-- Copyright 2020 Workiva -->
		<title>Exhibit</title>
	</head>
	<body><div style="font-family:Times New Roman;font-size:10pt;">
<div><a name="s499E6248FA515247A79F251EDB633251"></a></div><div><div style="line-height:120%;text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;"><br></font></div><div style="line-height:120%;text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;"><br></font></div><div style="line-height:120%;text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">EXHIBIT 32.1*</font></div><div style="line-height:120%;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;"><br></font></div></div><div><br></div><div style="line-height:120%;text-align:right;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div><div style="line-height:120%;padding-top:12px;text-align:center;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">CERTIFICATION PURSUANT TO</font></div><div style="line-height:120%;text-align:center;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">18 U.S.C. 1350,</font></div><div style="line-height:120%;text-align:center;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">AS ADOPTED PURSUANT TO</font></div><div style="line-height:120%;text-align:center;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">SECTION 906 OF THE SARBANES-OXLEY ACT OF 2002</font></div><div style="line-height:120%;padding-top:12px;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">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 </font><font style="font-family:Arial;font-size:10pt;">December&#160;31, 2019</font><font style="font-family:Arial;font-size:10pt;">&#32;(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 style="line-height:120%;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">&#160;</font></div><div style="line-height:120%;font-size:10pt;"><div style="padding-left:0px;text-indent:0px;line-height:normal;padding-top:10px;"><table cellpadding="0" cellspacing="0" style="font-family:Times New Roman;font-size:10pt;width:96.88109161793372%;border-collapse:collapse;text-align:left;"><tr><td colspan="8"></td></tr><tr><td style="width:7%;"></td><td style="width:31%;"></td><td style="width:2%;"></td><td style="width:4%;"></td><td style="width:12%;"></td><td style="width:5%;"></td><td style="width:1%;"></td><td style="width:38%;"></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Date:</font></div></td><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">February&#160;13, 2020</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;">&#160;</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;">&#160;</font></div></td><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">By:</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;">&#160;</font></div></td><td style="vertical-align:top;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">/s/ Robert J. Willett</font></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;">&#160;</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;">&#160;</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;">&#160;</font></div></td><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Robert J. Willett</font></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;">&#160;</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;">&#160;</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:8pt;"><font style="font-family:Arial;font-size:8pt;">&#160;</font></div></td><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">President and Chief Executive Officer         (Principal Executive Officer)</font></div></td></tr></table></div></div><div style="line-height:120%;font-size:9pt;"><font style="font-family:Arial;font-size:9pt;">&#160;</font></div><div style="line-height:120%;font-size:10pt;"><div style="padding-left:0px;text-indent:0px;line-height:normal;padding-top:10px;"><table cellpadding="0" cellspacing="0" style="font-family:Times New Roman;font-size:10pt;width:99.80506822612085%;border-collapse:collapse;text-align:left;"><tr><td colspan="2"></td></tr><tr><td style="width:2%;"></td><td style="width:98%;"></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">*</font></div></td><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">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></div></td></tr></table></div></div><div><br></div><div style="text-align:center;"><div style="line-height:120%;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></div>	</div></body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EX-32.2
<SEQUENCE>10
<FILENAME>cgnx-20191231xexhibit322.htm
<DESCRIPTION>EXHIBIT 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 1 -->
		<!-- Copyright 2020 Workiva -->
		<title>Exhibit</title>
	</head>
	<body><div style="font-family:Times New Roman;font-size:10pt;">
<div><a name="s63E3A854CCD05F6991CAE0BADB52366D"></a></div><div><div style="line-height:120%;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div><div style="line-height:120%;text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;"><br></font></div><div style="line-height:120%;text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;font-weight:bold;">EXHIBIT 32.2*</font></div><div style="line-height:120%;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;"><br></font></div></div><div><br></div><div style="line-height:120%;text-align:right;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div><div style="line-height:120%;padding-top:12px;text-align:center;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">CERTIFICATION PURSUANT TO</font></div><div style="line-height:120%;text-align:center;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">18 U.S.C. 1350,</font></div><div style="line-height:120%;text-align:center;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">AS ADOPTED PURSUANT TO</font></div><div style="line-height:120%;text-align:center;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">SECTION 906 OF THE SARBANES-OXLEY ACT OF 2002</font></div><div style="line-height:120%;padding-top:12px;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">The undersigned officer of Cognex Corporation (the &#8220;Company&#8221;) hereby certifies to her knowledge that the Company&#8217;s Annual Report on Form 10-K for the year ended </font><font style="font-family:Arial;font-size:10pt;">December&#160;31, 2019</font><font style="font-family:Arial;font-size:10pt;">&#32;(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 style="line-height:120%;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">&#160;</font></div><div style="line-height:120%;font-size:10pt;"><div style="padding-left:0px;text-indent:0px;line-height:normal;padding-top:10px;"><table cellpadding="0" cellspacing="0" style="font-family:Times New Roman;font-size:10pt;width:99.80506822612085%;border-collapse:collapse;text-align:left;"><tr><td colspan="8"></td></tr><tr><td style="width:6%;"></td><td style="width:30%;"></td><td style="width:2%;"></td><td style="width:4%;"></td><td style="width:12%;"></td><td style="width:4%;"></td><td style="width:1%;"></td><td style="width:41%;"></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:right;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Date:</font></div></td><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">February&#160;13, 2020</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">By:</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:top;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">/s/ Laura A. MacDonald</font></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Laura A. MacDonald</font></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">&#160;</font></div></td><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">Vice President and Corporate Controller</font></div><div style="font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">(Principal Financial and Accounting Officer)</font></div></td></tr></table></div></div><div style="line-height:120%;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">&#160;</font></div><div style="line-height:120%;font-size:10pt;"><div style="padding-left:0px;text-indent:0px;line-height:normal;padding-top:10px;"><table cellpadding="0" cellspacing="0" style="font-family:Times New Roman;font-size:10pt;width:99.80506822612085%;border-collapse:collapse;text-align:left;"><tr><td colspan="2"></td></tr><tr><td style="width:2%;"></td><td style="width:98%;"></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">*</font></div></td><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><font style="font-family:Arial;font-size:10pt;">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></div></td></tr></table></div></div><div><br></div><div style="text-align:center;"><div style="line-height:120%;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"><br></font></div></div>	</div></body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EX-101.SCH
<SEQUENCE>11
<FILENAME>cgnx-20191231.xsd
<DESCRIPTION>XBRL TAXONOMY EXTENSION SCHEMA DOCUMENT
<TEXT>
<XBRL>
<?xml version="1.0" encoding="US-ASCII"?>
<!--XBRL Document Created with Wdesk from Workiva-->
<!-- -->
<xsd:schema attributeFormDefault="unqualified" elementFormDefault="qualified" targetNamespace="http://cognex.com/20191231" xmlns:cgnx="http://cognex.com/20191231" xmlns:link="http://www.xbrl.org/2003/linkbase" xmlns:nonnum="http://www.xbrl.org/dtr/type/non-numeric" xmlns:num="http://www.xbrl.org/dtr/type/numeric" xmlns:us-types="http://fasb.org/us-types/2018-01-31" xmlns:xbrli="http://www.xbrl.org/2003/instance" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <xsd:import namespace="http://fasb.org/srt/2018-01-31" schemaLocation="http://xbrl.fasb.org/srt/2018/elts/srt-2018-01-31.xsd" />
  <xsd:import namespace="http://fasb.org/us-gaap/2018-01-31" schemaLocation="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd" />
  <xsd:import namespace="http://fasb.org/us-roles/2018-01-31" schemaLocation="http://xbrl.fasb.org/us-gaap/2018/elts/us-roles-2018-01-31.xsd" />
  <xsd:import namespace="http://fasb.org/us-types/2018-01-31" schemaLocation="http://xbrl.fasb.org/us-gaap/2018/elts/us-types-2018-01-31.xsd" />
  <xsd:import namespace="http://www.xbrl.org/2003/instance" schemaLocation="http://www.xbrl.org/2003/xbrl-instance-2003-12-31.xsd" />
  <xsd:import namespace="http://www.xbrl.org/2003/linkbase" schemaLocation="http://www.xbrl.org/2003/xbrl-linkbase-2003-12-31.xsd" />
  <xsd:import namespace="http://www.xbrl.org/2009/arcrole/fact-explanatoryFact" schemaLocation="http://www.xbrl.org/lrr/arcrole/factExplanatory-2009-12-16.xsd" />
  <xsd:import namespace="http://www.xbrl.org/2009/role/negated" schemaLocation="http://www.xbrl.org/lrr/role/negated-2009-12-16.xsd" />
  <xsd:import namespace="http://www.xbrl.org/2009/role/net" schemaLocation="http://www.xbrl.org/lrr/role/net-2009-12-16.xsd" />
  <xsd:import namespace="http://www.xbrl.org/dtr/type/non-numeric" schemaLocation="http://www.xbrl.org/dtr/type/nonNumeric-2009-12-16.xsd" />
  <xsd:import namespace="http://www.xbrl.org/dtr/type/numeric" schemaLocation="http://www.xbrl.org/dtr/type/numeric-2009-12-16.xsd" />
  <xsd:import namespace="http://xbrl.org/2005/xbrldt" schemaLocation="http://www.xbrl.org/2005/xbrldt-2005.xsd" />
  <xsd:import namespace="http://xbrl.sec.gov/country/2017-01-31" schemaLocation="http://xbrl.sec.gov/country/2017/country-2017-01-31.xsd" />
  <xsd:import namespace="http://xbrl.sec.gov/currency/2017-01-31" schemaLocation="http://xbrl.sec.gov/currency/2017/currency-2017-01-31.xsd" />
  <xsd:import namespace="http://xbrl.sec.gov/dei/2019-01-31" schemaLocation="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd" />
  <xsd:import namespace="http://xbrl.sec.gov/exch/2018-01-31" schemaLocation="https://xbrl.sec.gov/exch/2018/exch-2018-01-31.xsd" />
  <xsd:import namespace="http://xbrl.sec.gov/invest/2013-01-31" schemaLocation="http://xbrl.sec.gov/invest/2013/invest-2013-01-31.xsd" />
  <xsd:import namespace="http://xbrl.sec.gov/naics/2017-01-31" schemaLocation="http://xbrl.sec.gov/naics/2017/naics-2017-01-31.xsd" />
  <xsd:import namespace="http://xbrl.sec.gov/sic/2011-01-31" schemaLocation="http://xbrl.sec.gov/sic/2011/sic-2011-01-31.xsd" />
  <xsd:import namespace="http://xbrl.sec.gov/stpr/2018-01-31" schemaLocation="https://xbrl.sec.gov/stpr/2018/stpr-2018-01-31.xsd" />
  <xsd:annotation>
    <xsd:appinfo>
      <link:linkbaseRef xlink:arcrole="http://www.w3.org/1999/xlink/properties/linkbase" xlink:href="cgnx-20191231_cal.xml" xlink:role="http://www.xbrl.org/2003/role/calculationLinkbaseRef" xlink:type="simple" />
      <link:linkbaseRef xlink:arcrole="http://www.w3.org/1999/xlink/properties/linkbase" xlink:href="cgnx-20191231_def.xml" xlink:role="http://www.xbrl.org/2003/role/definitionLinkbaseRef" xlink:type="simple" />
      <link:linkbaseRef xlink:arcrole="http://www.w3.org/1999/xlink/properties/linkbase" xlink:href="cgnx-20191231_lab.xml" xlink:role="http://www.xbrl.org/2003/role/labelLinkbaseRef" xlink:type="simple" />
      <link:linkbaseRef xlink:arcrole="http://www.w3.org/1999/xlink/properties/linkbase" xlink:href="cgnx-20191231_pre.xml" xlink:role="http://www.xbrl.org/2003/role/presentationLinkbaseRef" xlink:type="simple" />
      <link:roleType id="AccruedExpenses" roleURI="http://cognex.com/role/AccruedExpenses">
        <link:definition>2110100 - 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="AccruedExpensesChangesInWarrantyObligationsDetail" roleURI="http://cognex.com/role/AccruedExpensesChangesInWarrantyObligationsDetail">
        <link:definition>2410403 - 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="AccruedExpensesConstituentsOfAccruedExpensesDetail" roleURI="http://cognex.com/role/AccruedExpensesConstituentsOfAccruedExpensesDetail">
        <link:definition>2410402 - 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="AccruedExpensesTables" roleURI="http://cognex.com/role/AccruedExpensesTables">
        <link:definition>2310301 - 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="Acquisitions" roleURI="http://cognex.com/role/Acquisitions">
        <link:definition>2124100 - Disclosure - 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="AcquisitionsAcquisitionsDetails" roleURI="http://cognex.com/role/AcquisitionsAcquisitionsDetails">
        <link:definition>2424402 - Disclosure - Acquisitions Acquisitions - (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="AcquisitionsAcquisitionsTables" roleURI="http://cognex.com/role/AcquisitionsAcquisitionsTables">
        <link:definition>2324301 - Disclosure - Acquisitions Acquisitions - (Tables)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="AcquisitionsGviVenturesIncDetails" roleURI="http://cognex.com/role/AcquisitionsGviVenturesIncDetails">
        <link:definition>2424405 - Disclosure - Acquisitions - GVi Ventures, Inc. (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="AcquisitionsGviVenturesIncPurchasePriceAllocationDetails" roleURI="http://cognex.com/role/AcquisitionsGviVenturesIncPurchasePriceAllocationDetails">
        <link:definition>2424406 - Disclosure - Acquisitions - GVi Ventures, Inc. Purchase Price Allocation (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="AcquisitionsSualabCoLtdNarrativeDetails" roleURI="http://cognex.com/role/AcquisitionsSualabCoLtdNarrativeDetails">
        <link:definition>2424403 - Disclosure - 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="AcquisitionsSualabCoLtdPurchasePriceAllocationDetails" roleURI="http://cognex.com/role/AcquisitionsSualabCoLtdPurchasePriceAllocationDetails">
        <link:definition>2424404 - Disclosure - Acquisitions - Sualab Co., Ltd. Purchase Price Allocation (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="AcquisitionsVidiSystemsSADetails" roleURI="http://cognex.com/role/AcquisitionsVidiSystemsSADetails">
        <link:definition>2424407 - Disclosure - Acquisitions - ViDi Systems S.A. (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="AcquisitionsVidiSystemsSAPurchasePriceAllocationDetails" roleURI="http://cognex.com/role/AcquisitionsVidiSystemsSAPurchasePriceAllocationDetails">
        <link:definition>2424408 - Disclosure - Acquisitions - ViDi Systems S.A. Purchase Price Allocation (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="CashCashEquivalentsAndInvestments" roleURI="http://cognex.com/role/CashCashEquivalentsAndInvestments">
        <link:definition>2104100 - 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="CashCashEquivalentsAndInvestmentsAdditionalInformationDetail" roleURI="http://cognex.com/role/CashCashEquivalentsAndInvestmentsAdditionalInformationDetail">
        <link:definition>2404403 - 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>2404404 - 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="CashCashEquivalentsAndInvestmentsComponentsOfCashCashEquivalentsAndInvestmentsDetail" roleURI="http://cognex.com/role/CashCashEquivalentsAndInvestmentsComponentsOfCashCashEquivalentsAndInvestmentsDetail">
        <link:definition>2404402 - 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="CashCashEquivalentsAndInvestmentsEffectiveMaturityDatesOfAvailableForSaleInvestmentsDetail" roleURI="http://cognex.com/role/CashCashEquivalentsAndInvestmentsEffectiveMaturityDatesOfAvailableForSaleInvestmentsDetail">
        <link:definition>2404406 - 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="CashCashEquivalentsAndInvestmentsGrossUnrealizedLossesAndFairValueForAvailableForSaleInvestmentsDetail" roleURI="http://cognex.com/role/CashCashEquivalentsAndInvestmentsGrossUnrealizedLossesAndFairValueForAvailableForSaleInvestmentsDetail">
        <link:definition>2404405 - 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="CashCashEquivalentsAndInvestmentsTables" roleURI="http://cognex.com/role/CashCashEquivalentsAndInvestmentsTables">
        <link:definition>2304301 - 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="CommitmentsAndContingencies" roleURI="http://cognex.com/role/CommitmentsAndContingencies">
        <link:definition>2112100 - 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="CommitmentsAndContingenciesAdditionalInformationDetail" roleURI="http://cognex.com/role/CommitmentsAndContingenciesAdditionalInformationDetail">
        <link:definition>2412401 - 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="ConsolidatedBalanceSheets" roleURI="http://cognex.com/role/ConsolidatedBalanceSheets">
        <link:definition>1003000 - 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>1003501 - 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>1004000 - 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="ConsolidatedStatementsOfComprehensiveIncome" roleURI="http://cognex.com/role/ConsolidatedStatementsOfComprehensiveIncome">
        <link:definition>1002000 - 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>1002501 - 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="ConsolidatedStatementsOfOperations" roleURI="http://cognex.com/role/ConsolidatedStatementsOfOperations">
        <link:definition>1001000 - 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="ConsolidatedStatementsOfOperationsParenthetical" roleURI="http://cognex.com/role/ConsolidatedStatementsOfOperationsParenthetical">
        <link:definition>1001501 - Statement - CONSOLIDATED STATEMENTS OF OPERATIONS (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="ConsolidatedStatementsOfShareholdersEquity" roleURI="http://cognex.com/role/ConsolidatedStatementsOfShareholdersEquity">
        <link:definition>1005000 - 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>1005501 - 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="CoverPage" roleURI="http://cognex.com/role/CoverPage">
        <link:definition>0001000 - 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="DerivativeInstruments" roleURI="http://cognex.com/role/DerivativeInstruments">
        <link:definition>2114100 - 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="DerivativeInstrumentsAdditionalDetailsDetails" roleURI="http://cognex.com/role/DerivativeInstrumentsAdditionalDetailsDetails">
        <link:definition>2414402 - 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="DerivativeInstrumentsAssetsAndLiabilitiesPresentedOnNetBasisDueToRightOfOffsetDetails" roleURI="http://cognex.com/role/DerivativeInstrumentsAssetsAndLiabilitiesPresentedOnNetBasisDueToRightOfOffsetDetails">
        <link:definition>2414405 - 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="DerivativeInstrumentsBalanceSheetLocationDetails" roleURI="http://cognex.com/role/DerivativeInstrumentsBalanceSheetLocationDetails">
        <link:definition>2414404 - 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="DerivativeInstrumentsChangesInAociDetails" roleURI="http://cognex.com/role/DerivativeInstrumentsChangesInAociDetails">
        <link:definition>2414407 - Disclosure - Derivative Instruments - Changes in AOCI (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>2414406 - 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="DerivativeInstrumentsOutstandingForwardContractsDetails" roleURI="http://cognex.com/role/DerivativeInstrumentsOutstandingForwardContractsDetails">
        <link:definition>2414403 - 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="DerivativeInstrumentsTables" roleURI="http://cognex.com/role/DerivativeInstrumentsTables">
        <link:definition>2314301 - 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="EmployeeSavingsPlan" roleURI="http://cognex.com/role/EmployeeSavingsPlan">
        <link:definition>2119100 - 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="EmployeeSavingsPlanAdditionalInformationDetail" roleURI="http://cognex.com/role/EmployeeSavingsPlanAdditionalInformationDetail">
        <link:definition>2419401 - 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="FairValueMeasurements" roleURI="http://cognex.com/role/FairValueMeasurements">
        <link:definition>2103100 - 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="FairValueMeasurementsAssetsAndLiabilitiesMeasuredAtFairValueOnRecurringBasisDetail" roleURI="http://cognex.com/role/FairValueMeasurementsAssetsAndLiabilitiesMeasuredAtFairValueOnRecurringBasisDetail">
        <link:definition>2403402 - 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="FairValueMeasurementsLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationDetails" roleURI="http://cognex.com/role/FairValueMeasurementsLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationDetails">
        <link:definition>2403403 - Disclosure - Fair Value Measurements - Liabilities Measured on Recurring Basis, Unobservable Input Reconciliation (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="FairValueMeasurementsTables" roleURI="http://cognex.com/role/FairValueMeasurementsTables">
        <link:definition>2303301 - 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="Goodwill" roleURI="http://cognex.com/role/Goodwill">
        <link:definition>2108100 - 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="GoodwillChangesInCarryingValueOfGoodwillDetail" roleURI="http://cognex.com/role/GoodwillChangesInCarryingValueOfGoodwillDetail">
        <link:definition>2408402 - 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="GoodwillTables" roleURI="http://cognex.com/role/GoodwillTables">
        <link:definition>2308301 - 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="IndemnificationProvisions" roleURI="http://cognex.com/role/IndemnificationProvisions">
        <link:definition>2113100 - 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="IndemnificationProvisionsNarrativeDetails" roleURI="http://cognex.com/role/IndemnificationProvisionsNarrativeDetails">
        <link:definition>2413401 - Disclosure - Indemnification Provisions - 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="IntangibleAssets" roleURI="http://cognex.com/role/IntangibleAssets">
        <link:definition>2109100 - 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="IntangibleAssetsAmortizedIntangibleAssetsDetail" roleURI="http://cognex.com/role/IntangibleAssetsAmortizedIntangibleAssetsDetail">
        <link:definition>2409402 - 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>2409403 - 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="IntangibleAssetsTables" roleURI="http://cognex.com/role/IntangibleAssetsTables">
        <link:definition>2309301 - 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="Inventories" roleURI="http://cognex.com/role/Inventories">
        <link:definition>2105100 - 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="InventoriesInventoriesDetail" roleURI="http://cognex.com/role/InventoriesInventoriesDetail">
        <link:definition>2405402 - 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="InventoriesTables" roleURI="http://cognex.com/role/InventoriesTables">
        <link:definition>2305301 - 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="LeasesDetails" roleURI="http://cognex.com/role/LeasesDetails">
        <link:definition>2407402 - 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="LeasesLeases" roleURI="http://cognex.com/role/LeasesLeases">
        <link:definition>2107100 - 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="LeasesScheduleOfPaymentsDetails" roleURI="http://cognex.com/role/LeasesScheduleOfPaymentsDetails">
        <link:definition>2407403 - 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="LeasesScheduleOfRentalReceiptsDetails" roleURI="http://cognex.com/role/LeasesScheduleOfRentalReceiptsDetails">
        <link:definition>2407404 - Disclosure - Leases - Schedule of Rental Receipts (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="LeasesTables" roleURI="http://cognex.com/role/LeasesTables">
        <link:definition>2307301 - 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="NewPronouncements" roleURI="http://cognex.com/role/NewPronouncements">
        <link:definition>2102100 - 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="NewPronouncementsDetails" roleURI="http://cognex.com/role/NewPronouncementsDetails">
        <link:definition>2402402 - Disclosure - New Pronouncements (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="PropertyPlantAndEquipment" roleURI="http://cognex.com/role/PropertyPlantAndEquipment">
        <link:definition>2106100 - 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="PropertyPlantAndEquipmentAdditionalInformationDetails" roleURI="http://cognex.com/role/PropertyPlantAndEquipmentAdditionalInformationDetails">
        <link:definition>2406403 - 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="PropertyPlantAndEquipmentPropertyPlantAndEquipmentDetail" roleURI="http://cognex.com/role/PropertyPlantAndEquipmentPropertyPlantAndEquipmentDetail">
        <link:definition>2406402 - 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="PropertyPlantAndEquipmentTables" roleURI="http://cognex.com/role/PropertyPlantAndEquipmentTables">
        <link:definition>2306301 - 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="RevenueRecognition" roleURI="http://cognex.com/role/RevenueRecognition">
        <link:definition>2116100 - 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="RevenueRecognitionBalanceSheetImpactDetails" roleURI="http://cognex.com/role/RevenueRecognitionBalanceSheetImpactDetails">
        <link:definition>2416404 - Disclosure - Revenue Recognition - Balance Sheet Impact (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>2416406 - 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="RevenueRecognitionDisaggregationByGeographyAndTypeDetails" roleURI="http://cognex.com/role/RevenueRecognitionDisaggregationByGeographyAndTypeDetails">
        <link:definition>2416405 - 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="RevenueRecognitionNarrativesDetails" roleURI="http://cognex.com/role/RevenueRecognitionNarrativesDetails">
        <link:definition>2416402 - 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="RevenueRecognitionStatementOfOperationsImpactDetails" roleURI="http://cognex.com/role/RevenueRecognitionStatementOfOperationsImpactDetails">
        <link:definition>2416403 - Disclosure - Revenue Recognition - Statement of Operations Impact (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="RevenueRecognitionTables" roleURI="http://cognex.com/role/RevenueRecognitionTables">
        <link:definition>2316301 - 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="ScheduleIiValuationAndQualifyingAccounts" roleURI="http://cognex.com/role/ScheduleIiValuationAndQualifyingAccounts">
        <link:definition>2127100 - 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="ScheduleIiValuationAndQualifyingAccountsDetail" roleURI="http://cognex.com/role/ScheduleIiValuationAndQualifyingAccountsDetail">
        <link:definition>2427401 - 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>
      <link:roleType id="SegmentAndGeographicInformation" roleURI="http://cognex.com/role/SegmentAndGeographicInformation">
        <link:definition>2122100 - 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="SegmentAndGeographicInformationAdditionalInformationDetail" roleURI="http://cognex.com/role/SegmentAndGeographicInformationAdditionalInformationDetail">
        <link:definition>2422402 - 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>2422403 - 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="SegmentAndGeographicInformationTables" roleURI="http://cognex.com/role/SegmentAndGeographicInformationTables">
        <link:definition>2322301 - 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="SelectedQuarterlyFinancialDataUnaudited" roleURI="http://cognex.com/role/SelectedQuarterlyFinancialDataUnaudited">
        <link:definition>2126100 - Disclosure - Selected Quarterly Financial Data (Unaudited)</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="SelectedQuarterlyFinancialDataUnauditedDetails" roleURI="http://cognex.com/role/SelectedQuarterlyFinancialDataUnauditedDetails">
        <link:definition>2426402 - Disclosure - Selected Quarterly Financial Data (Unaudited) (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="SelectedQuarterlyFinancialDataUnauditedTables" roleURI="http://cognex.com/role/SelectedQuarterlyFinancialDataUnauditedTables">
        <link:definition>2326301 - Disclosure - Selected Quarterly Financial Data (Unaudited) (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="ShareholdersEquity" roleURI="http://cognex.com/role/ShareholdersEquity">
        <link:definition>2117100 - 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="ShareholdersEquityAdditionalInformationDetail" roleURI="http://cognex.com/role/ShareholdersEquityAdditionalInformationDetail">
        <link:definition>2417401 - 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="StockBasedCompensation" roleURI="http://cognex.com/role/StockBasedCompensation">
        <link:definition>2118100 - 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="StockBasedCompensationExpenseAdditionalInformationDetail" roleURI="http://cognex.com/role/StockBasedCompensationExpenseAdditionalInformationDetail">
        <link:definition>2418402 - 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="StockBasedCompensationExpenseStockBasedCompensationExpenseDetail" roleURI="http://cognex.com/role/StockBasedCompensationExpenseStockBasedCompensationExpenseDetail">
        <link:definition>2418406 - 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="StockBasedCompensationExpenseSummaryOfRestrictedStockOptionActivityDetail" roleURI="http://cognex.com/role/StockBasedCompensationExpenseSummaryOfRestrictedStockOptionActivityDetail">
        <link:definition>2418405 - 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="StockBasedCompensationExpenseSummaryOfStockOptionActivityDetail" roleURI="http://cognex.com/role/StockBasedCompensationExpenseSummaryOfStockOptionActivityDetail">
        <link:definition>2418403 - 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>2418404 - 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="StockBasedCompensationTables" roleURI="http://cognex.com/role/StockBasedCompensationTables">
        <link:definition>2318301 - 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="SubsequentEvents" roleURI="http://cognex.com/role/SubsequentEvents">
        <link:definition>2125100 - 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="SubsequentEventsDetails" roleURI="http://cognex.com/role/SubsequentEventsDetails">
        <link:definition>2425401 - 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="SummaryOfSignificantAccountingPolicies" roleURI="http://cognex.com/role/SummaryOfSignificantAccountingPolicies">
        <link:definition>2101100 - 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="SummaryOfSignificantAccountingPoliciesAdditionalInformationDetail" roleURI="http://cognex.com/role/SummaryOfSignificantAccountingPoliciesAdditionalInformationDetail">
        <link:definition>2401402 - 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="SummaryOfSignificantAccountingPoliciesAdvertisingCostsDetails" roleURI="http://cognex.com/role/SummaryOfSignificantAccountingPoliciesAdvertisingCostsDetails">
        <link:definition>2401407 - 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="SummaryOfSignificantAccountingPoliciesComprehensiveIncomeLossDetails" roleURI="http://cognex.com/role/SummaryOfSignificantAccountingPoliciesComprehensiveIncomeLossDetails">
        <link:definition>2401408 - Disclosure - Summary of Significant Accounting Policies - 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="SummaryOfSignificantAccountingPoliciesIntangibleAssetsDetails" roleURI="http://cognex.com/role/SummaryOfSignificantAccountingPoliciesIntangibleAssetsDetails">
        <link:definition>2401404 - 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="SummaryOfSignificantAccountingPoliciesPolicies" roleURI="http://cognex.com/role/SummaryOfSignificantAccountingPoliciesPolicies">
        <link:definition>2201201 - 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="SummaryOfSignificantAccountingPoliciesSummaryOfSignificantAccountingPoliciesRevenueRecognitionDetails" roleURI="http://cognex.com/role/SummaryOfSignificantAccountingPoliciesSummaryOfSignificantAccountingPoliciesRevenueRecognitionDetails">
        <link:definition>2401406 - 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="SummaryOfSignificantAccountingPoliciesWarrantyDetails" roleURI="http://cognex.com/role/SummaryOfSignificantAccountingPoliciesWarrantyDetails">
        <link:definition>2401405 - 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="Taxes" roleURI="http://cognex.com/role/Taxes">
        <link:definition>2120100 - Disclosure - 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="TaxesAdditionalInformationDetails" roleURI="http://cognex.com/role/TaxesAdditionalInformationDetails">
        <link:definition>2420402 - Disclosure - 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="TaxesChangesInReserveForIncomeTaxesExcludingInterestAndPenaltiesDetails" roleURI="http://cognex.com/role/TaxesChangesInReserveForIncomeTaxesExcludingInterestAndPenaltiesDetails">
        <link:definition>2420406 - Disclosure - 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="TaxesConstituentsOfDeferredTaxAssetsDetails" roleURI="http://cognex.com/role/TaxesConstituentsOfDeferredTaxAssetsDetails">
        <link:definition>2420407 - Disclosure - 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="TaxesConstituentsOfProvisionForIncomeTaxesDetails" roleURI="http://cognex.com/role/TaxesConstituentsOfProvisionForIncomeTaxesDetails">
        <link:definition>2420403 - Disclosure - 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="TaxesReconciliationOfUnitedStatesFederalStatutoryCorporateTaxRateToCompanysEffectiveTaxRateOrIncomeTaxProvisionDetails" roleURI="http://cognex.com/role/TaxesReconciliationOfUnitedStatesFederalStatutoryCorporateTaxRateToCompanysEffectiveTaxRateOrIncomeTaxProvisionDetails">
        <link:definition>2420404 - Disclosure - 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="TaxesScheduleOfChangeInAccountingPolicyDetails" roleURI="http://cognex.com/role/TaxesScheduleOfChangeInAccountingPolicyDetails">
        <link:definition>2420405 - Disclosure - Taxes - Schedule of Change in Accounting Policy (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="TaxesTables" roleURI="http://cognex.com/role/TaxesTables">
        <link:definition>2320301 - Disclosure - 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="WeightedAverageShares" roleURI="http://cognex.com/role/WeightedAverageShares">
        <link:definition>2121100 - 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="WeightedAverageSharesAdditionalInformationDetail" roleURI="http://cognex.com/role/WeightedAverageSharesAdditionalInformationDetail">
        <link:definition>2421403 - 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="WeightedAverageSharesCalculationOfWeightedAverageSharesDetail" roleURI="http://cognex.com/role/WeightedAverageSharesCalculationOfWeightedAverageSharesDetail">
        <link:definition>2421402 - 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="WeightedAverageSharesTables" roleURI="http://cognex.com/role/WeightedAverageSharesTables">
        <link:definition>2321301 - 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>
    </xsd:appinfo>
  </xsd:annotation>
  <xsd:element abstract="true" id="cgnx_AccountingStandardsUpdate201609StatutoryTaxWithholdingComponentMember" name="AccountingStandardsUpdate201609StatutoryTaxWithholdingComponentMember" nillable="true" substitutionGroup="xbrli:item" type="nonnum:domainItemType" xbrli:periodType="duration" />
  <xsd:element abstract="true" id="cgnx_AccruedExpensesMember" name="AccruedExpensesMember" nillable="true" substitutionGroup="xbrli:item" type="nonnum:domainItemType" xbrli:periodType="duration" />
  <xsd:element id="cgnx_AgencyBondsFairValueDisclosure" name="AgencyBondsFairValueDisclosure" nillable="true" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType" xbrli:balance="debit" xbrli:periodType="instant" />
  <xsd:element abstract="true" id="cgnx_AgencyBondsMember" name="AgencyBondsMember" nillable="true" substitutionGroup="xbrli:item" type="nonnum:domainItemType" xbrli:periodType="duration" />
  <xsd:element abstract="true" id="cgnx_ApplicationofCustomerSpecificSolutionsMember" name="ApplicationofCustomerSpecificSolutionsMember" nillable="true" substitutionGroup="xbrli:item" type="nonnum:domainItemType" xbrli:periodType="duration" />
  <xsd:element id="cgnx_AssetBackedSecuritiesFairValueDisclosure" name="AssetBackedSecuritiesFairValueDisclosure" nillable="true" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType" xbrli:balance="debit" xbrli:periodType="instant" />
  <xsd:element id="cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterFourYearsBeforeFiveYearsFairValue" name="AvailableForSaleSecuritiesDebtMaturitiesAfterFourYearsBeforeFiveYearsFairValue" nillable="true" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType" xbrli:balance="debit" xbrli:periodType="instant" />
  <xsd:element id="cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterOneYearBeforeTwoYearsFairValue" name="AvailableForSaleSecuritiesDebtMaturitiesAfterOneYearBeforeTwoYearsFairValue" nillable="true" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType" xbrli:balance="debit" xbrli:periodType="instant" />
  <xsd:element id="cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterThreeYearsBeforeFourYearsFairValue" name="AvailableForSaleSecuritiesDebtMaturitiesAfterThreeYearsBeforeFourYearsFairValue" nillable="true" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType" xbrli:balance="debit" xbrli:periodType="instant" />
  <xsd:element id="cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterTwoYearsBeforeThreeYearsFairValue" name="AvailableForSaleSecuritiesDebtMaturitiesAfterTwoYearsBeforeThreeYearsFairValue" nillable="true" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType" xbrli:balance="debit" xbrli:periodType="instant" />
  <xsd:element id="cgnx_AvailableforsaleSecuritiesDebtMaturitiesEffectiveTermMaximum" name="AvailableforsaleSecuritiesDebtMaturitiesEffectiveTermMaximum" nillable="true" substitutionGroup="xbrli:item" type="xbrli:durationItemType" xbrli:periodType="duration" />
  <xsd:element id="cgnx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredandLiabilitiesAssumedCurrentLiabilitiesAccruedExpenses" name="BusinessCombinationRecognizedIdentifiableAssetsAcquiredandLiabilitiesAssumedCurrentLiabilitiesAccruedExpenses" nillable="true" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType" xbrli:balance="credit" xbrli:periodType="instant" />
  <xsd:element id="cgnx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredandLiabilitiesAssumedCurrentLiabilitiesDeferredRevenueandCustomerDeposits" name="BusinessCombinationRecognizedIdentifiableAssetsAcquiredandLiabilitiesAssumedCurrentLiabilitiesDeferredRevenueandCustomerDeposits" nillable="true" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType" xbrli:balance="credit" xbrli:periodType="instant" />
  <xsd:element id="cgnx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredandLiabilitiesAssumedOperatingLeaseLiabilityCurrent" name="BusinessCombinationRecognizedIdentifiableAssetsAcquiredandLiabilitiesAssumedOperatingLeaseLiabilityCurrent" nillable="true" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType" xbrli:balance="credit" xbrli:periodType="instant" />
  <xsd:element id="cgnx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredandLiabilitiesAssumedOperatingLeaseLiabilityNoncurrent" name="BusinessCombinationRecognizedIdentifiableAssetsAcquiredandLiabilitiesAssumedOperatingLeaseLiabilityNoncurrent" nillable="true" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType" xbrli:balance="credit" xbrli:periodType="instant" />
  <xsd:element id="cgnx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredandLiabilitiesAssumedOperatingLeaseRightofUseAsset" name="BusinessCombinationRecognizedIdentifiableAssetsAcquiredandLiabilitiesAssumedOperatingLeaseRightofUseAsset" nillable="true" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType" xbrli:balance="debit" xbrli:periodType="instant" />
  <xsd:element id="cgnx_CashCashEquivalentsShortTermAndLongTermInvestments" name="CashCashEquivalentsShortTermAndLongTermInvestments" nillable="true" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType" xbrli:balance="debit" xbrli:periodType="instant" />
  <xsd:element abstract="true" id="cgnx_CashflowshedgesAbstract" name="CashflowshedgesAbstract" nillable="true" substitutionGroup="xbrli:item" type="xbrli:stringItemType" xbrli:periodType="duration" />
  <xsd:element id="cgnx_CertificateOfDepositFairValueDisclosure" name="CertificateOfDepositFairValueDisclosure" nillable="true" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType" xbrli:balance="debit" xbrli:periodType="instant" />
  <xsd:element abstract="true" id="cgnx_ChangeinGlobalIntangibleLowTaxedIncomeMember" name="ChangeinGlobalIntangibleLowTaxedIncomeMember" nillable="true" substitutionGroup="xbrli:item" type="nonnum:domainItemType" xbrli:periodType="duration" />
  <xsd:element abstract="true" id="cgnx_ChiaroTechnologiesLLCMember" name="ChiaroTechnologiesLLCMember" nillable="true" substitutionGroup="xbrli:item" type="nonnum:domainItemType" xbrli:periodType="duration" />
  <xsd:element id="cgnx_CompanyContributionsVestAtEndOfFiveYears" name="CompanyContributionsVestAtEndOfFiveYears" nillable="true" substitutionGroup="xbrli:item" type="num:percentItemType" xbrli:periodType="duration" />
  <xsd:element id="cgnx_CompanyContributionsVestAtEndOfFourYears" name="CompanyContributionsVestAtEndOfFourYears" nillable="true" substitutionGroup="xbrli:item" type="num:percentItemType" xbrli:periodType="duration" />
  <xsd:element id="cgnx_CompanyContributionsVestAtEndOfThreeYears" name="CompanyContributionsVestAtEndOfThreeYears" nillable="true" substitutionGroup="xbrli:item" type="num:percentItemType" xbrli:periodType="duration" />
  <xsd:element id="cgnx_CompanyContributionsVestAtEndOfTwoYear" name="CompanyContributionsVestAtEndOfTwoYear" nillable="true" substitutionGroup="xbrli:item" type="num:percentItemType" xbrli:periodType="duration" />
  <xsd:element abstract="true" id="cgnx_CompletedTechnologiesAndOtherIntangibleAssetsMember" name="CompletedTechnologiesAndOtherIntangibleAssetsMember" nillable="true" substitutionGroup="xbrli:item" type="nonnum:domainItemType" xbrli:periodType="duration" />
  <xsd:element abstract="true" id="cgnx_CompletedTechnologyMember" name="CompletedTechnologyMember" nillable="true" substitutionGroup="xbrli:item" type="nonnum:domainItemType" xbrli:periodType="duration" />
  <xsd:element id="cgnx_ComponentsOfCashCashEquivalentsAndInvestmentsTableTableTextBlock" name="ComponentsOfCashCashEquivalentsAndInvestmentsTableTableTextBlock" nillable="true" substitutionGroup="xbrli:item" type="nonnum:textBlockItemType" xbrli:periodType="duration" />
  <xsd:element abstract="true" id="cgnx_ComputerHardwareAndSoftwareMember" name="ComputerHardwareAndSoftwareMember" nillable="true" substitutionGroup="xbrli:item" type="nonnum:domainItemType" xbrli:periodType="duration" />
  <xsd:element id="cgnx_ConcentrationsOfRiskPolicyPolicyTextBlock" name="ConcentrationsOfRiskPolicyPolicyTextBlock" nillable="true" substitutionGroup="xbrli:item" type="nonnum:textBlockItemType" xbrli:periodType="duration" />
  <xsd:element id="cgnx_ContractLiabilityForeignExchangeRateChanges" name="ContractLiabilityForeignExchangeRateChanges" nillable="true" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType" xbrli:balance="debit" xbrli:periodType="duration" />
  <xsd:element id="cgnx_CorporateBondsFairValueDisclosure" name="CorporateBondsFairValueDisclosure" nillable="true" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType" xbrli:balance="debit" xbrli:periodType="instant" />
  <xsd:element abstract="true" id="cgnx_CurrencytranslationadjustmentAbstract" name="CurrencytranslationadjustmentAbstract" nillable="true" substitutionGroup="xbrli:item" type="xbrli:stringItemType" xbrli:periodType="duration" />
  <xsd:element abstract="true" id="cgnx_CustomerContractsAndRelationshipsMember" name="CustomerContractsAndRelationshipsMember" nillable="true" substitutionGroup="xbrli:item" type="nonnum:domainItemType" xbrli:periodType="duration" />
  <xsd:element abstract="true" id="cgnx_CustomerContractsLiabilityCurrentRollForward" name="CustomerContractsLiabilityCurrentRollForward" nillable="true" substitutionGroup="xbrli:item" type="xbrli:stringItemType" xbrli:periodType="duration" />
  <xsd:element id="cgnx_DeferredTaxAssetsForeignTaxStructureChange" name="DeferredTaxAssetsForeignTaxStructureChange" nillable="true" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType" xbrli:balance="debit" xbrli:periodType="instant" />
  <xsd:element id="cgnx_DeferredTaxAssetsIntangibleAssetChangeinTaxStructure" name="DeferredTaxAssetsIntangibleAssetChangeinTaxStructure" nillable="true" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType" xbrli:balance="debit" xbrli:periodType="instant" />
  <xsd:element id="cgnx_DeferredTaxAssetsOtherNoncurrent" name="DeferredTaxAssetsOtherNoncurrent" nillable="true" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType" xbrli:balance="debit" xbrli:periodType="instant" />
  <xsd:element id="cgnx_DeferredTaxLiabilitiesTaxCutsAndJobsActGlobalIntangibleLowTaxIncome" name="DeferredTaxLiabilitiesTaxCutsAndJobsActGlobalIntangibleLowTaxIncome" nillable="true" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType" xbrli:balance="credit" xbrli:periodType="instant" />
  <xsd:element id="cgnx_DeferredTaxLiabilitiesTaxCutsAndJobsActOtherGlobalIntangibleLowTaxIncome" name="DeferredTaxLiabilitiesTaxCutsAndJobsActOtherGlobalIntangibleLowTaxIncome" nillable="true" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType" xbrli:balance="credit" xbrli:periodType="instant" />
  <xsd:element id="cgnx_DueFromForeignBanks" name="DueFromForeignBanks" nillable="true" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType" xbrli:balance="debit" xbrli:periodType="instant" />
  <xsd:element id="cgnx_EffectiveIncomeTaxRateReconciliationDiscreteTaxExpenseTaxAndJobsActPercent" name="EffectiveIncomeTaxRateReconciliationDiscreteTaxExpenseTaxAndJobsActPercent" nillable="true" substitutionGroup="xbrli:item" type="num:percentItemType" xbrli:periodType="duration" />
  <xsd:element id="cgnx_EffectiveIncomeTaxRateReconciliationMigrationofAcquiredIntellectualProperty" name="EffectiveIncomeTaxRateReconciliationMigrationofAcquiredIntellectualProperty" nillable="true" substitutionGroup="xbrli:item" type="num:percentItemType" xbrli:periodType="duration" />
  <xsd:element id="cgnx_EffectiveIncomeTaxRateReconciliationTaxCutsandJobsActGlobalIntangibleLowTaxIncomePercent" name="EffectiveIncomeTaxRateReconciliationTaxCutsandJobsActGlobalIntangibleLowTaxIncomePercent" nillable="true" substitutionGroup="xbrli:item" type="num:percentItemType" xbrli:periodType="duration" />
  <xsd:element id="cgnx_EmployeeServiceShareBasedCompensationRecognizedPeriodCostsCapitalizedAmount" name="EmployeeServiceShareBasedCompensationRecognizedPeriodCostsCapitalizedAmount" nillable="true" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType" xbrli:balance="debit" xbrli:periodType="instant" />
  <xsd:element id="cgnx_EstimatedForfeitureRateForUnvestedOptionsForAllNonSeniorManagement" name="EstimatedForfeitureRateForUnvestedOptionsForAllNonSeniorManagement" nillable="true" substitutionGroup="xbrli:item" type="num:percentItemType" xbrli:periodType="instant" />
  <xsd:element id="cgnx_EstimatedForfeitureRateForUnvestedOptionsForSeniorManagement" name="EstimatedForfeitureRateForUnvestedOptionsForSeniorManagement" nillable="true" substitutionGroup="xbrli:item" type="num:percentItemType" xbrli:periodType="instant" />
  <xsd:element id="cgnx_ExpirationPeriodOfStockOptionPlan" name="ExpirationPeriodOfStockOptionPlan" nillable="true" substitutionGroup="xbrli:item" type="xbrli:durationItemType" xbrli:periodType="duration" />
  <xsd:element abstract="true" id="cgnx_GViVenturesInc.Member" name="GViVenturesInc.Member" nillable="true" substitutionGroup="xbrli:item" type="nonnum:domainItemType" xbrli:periodType="duration" />
  <xsd:element abstract="true" id="cgnx_GreaterChinaMember" name="GreaterChinaMember" nillable="true" substitutionGroup="xbrli:item" type="nonnum:domainItemType" xbrli:periodType="duration" />
  <xsd:element abstract="true" id="cgnx_HardwareAndSoftwareMember" name="HardwareAndSoftwareMember" nillable="true" substitutionGroup="xbrli:item" type="nonnum:domainItemType" xbrli:periodType="duration" />
  <xsd:element id="cgnx_IncreaseInCompensationExpenseDueToRevisedEstimatedForfeitureRates" name="IncreaseInCompensationExpenseDueToRevisedEstimatedForfeitureRates" nillable="true" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType" xbrli:balance="debit" xbrli:periodType="duration" />
  <xsd:element id="cgnx_IndemnificationProvisionsTextBlock" name="IndemnificationProvisionsTextBlock" nillable="true" substitutionGroup="xbrli:item" type="nonnum:textBlockItemType" xbrli:periodType="duration" />
  <xsd:element abstract="true" id="cgnx_InprocessTechnologyMember" name="InprocessTechnologyMember" nillable="true" substitutionGroup="xbrli:item" type="nonnum:domainItemType" xbrli:periodType="duration" />
  <xsd:element abstract="true" id="cgnx_LongTermInvestmentsMember" name="LongTermInvestmentsMember" nillable="true" substitutionGroup="xbrli:item" type="nonnum:domainItemType" xbrli:periodType="duration" />
  <xsd:element abstract="true" id="cgnx_ManateeWorksInc.Member" name="ManateeWorksInc.Member" nillable="true" substitutionGroup="xbrli:item" type="nonnum:domainItemType" xbrli:periodType="duration" />
  <xsd:element id="cgnx_MaximumDecreaseInIncomeTaxExpenseDueToReleaseInReserves" name="MaximumDecreaseInIncomeTaxExpenseDueToReleaseInReserves" nillable="true" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType" xbrli:balance="credit" xbrli:periodType="duration" />
  <xsd:element id="cgnx_MaximumInvestmentOfCompanyInPartnership" name="MaximumInvestmentOfCompanyInPartnership" nillable="true" substitutionGroup="xbrli:item" type="num:percentItemType" xbrli:periodType="duration" />
  <xsd:element id="cgnx_MinimumAgeToBeEligibleToDefinedContributionPlan" name="MinimumAgeToBeEligibleToDefinedContributionPlan" nillable="true" substitutionGroup="xbrli:item" type="xbrli:durationItemType" xbrli:periodType="duration" />
  <xsd:element id="cgnx_MinimumDecreaseInIncomeTaxExpenseDueToReleaseInReserves" name="MinimumDecreaseInIncomeTaxExpenseDueToReleaseInReserves" nillable="true" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType" xbrli:balance="credit" xbrli:periodType="duration" />
  <xsd:element id="cgnx_MoneyMarketInstrumentsFairValueDisclosure" name="MoneyMarketInstrumentsFairValueDisclosure" nillable="true" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType" xbrli:balance="debit" xbrli:periodType="instant" />
  <xsd:element id="cgnx_MunicipalBondsFairValueDisclosure" name="MunicipalBondsFairValueDisclosure" nillable="true" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType" xbrli:balance="debit" xbrli:periodType="instant" />
  <xsd:element id="cgnx_NatureOfOperationsPolicyTextBlock" name="NatureOfOperationsPolicyTextBlock" nillable="true" substitutionGroup="xbrli:item" type="nonnum:textBlockItemType" xbrli:periodType="duration" />
  <xsd:element id="cgnx_NoncurrentDeferredTaxAssetsDeprecation" name="NoncurrentDeferredTaxAssetsDeprecation" nillable="true" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType" xbrli:balance="debit" xbrli:periodType="instant" />
  <xsd:element id="cgnx_NumberOfGroupsWithinEmployeePopulation" name="NumberOfGroupsWithinEmployeePopulation" nillable="true" substitutionGroup="xbrli:item" type="xbrli:integerItemType" xbrli:periodType="instant" />
  <xsd:element id="cgnx_OpenTaxYearStateAuthorities" name="OpenTaxYearStateAuthorities" nillable="true" substitutionGroup="xbrli:item" type="xbrli:stringItemType" xbrli:periodType="duration" />
  <xsd:element id="cgnx_OpentaxyearUnitedStatesInternalRevenueService" name="OpentaxyearUnitedStatesInternalRevenueService" nillable="true" substitutionGroup="xbrli:item" type="xbrli:stringItemType" xbrli:periodType="duration" />
  <xsd:element id="cgnx_Opentaxyearvarioustaxingauthorities" name="Opentaxyearvarioustaxingauthorities" nillable="true" substitutionGroup="xbrli:item" type="xbrli:stringItemType" xbrli:periodType="duration" />
  <xsd:element id="cgnx_OperatingLeaseExpenseNoLiabilityOrAssetRecognized" name="OperatingLeaseExpenseNoLiabilityOrAssetRecognized" nillable="true" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType" xbrli:balance="debit" xbrli:periodType="duration" />
  <xsd:element abstract="true" id="cgnx_OtherAsiaMember" name="OtherAsiaMember" nillable="true" substitutionGroup="xbrli:item" type="nonnum:domainItemType" xbrli:periodType="duration" />
  <xsd:element abstract="true" id="cgnx_OtherGeographicAreaMember" name="OtherGeographicAreaMember" nillable="true" substitutionGroup="xbrli:item" type="nonnum:domainItemType" xbrli:periodType="duration" />
  <xsd:element id="cgnx_OtherThanTemporaryImpairmentLossesInvestmentsPortionRecognizedInEarningsNetnoncurrent" name="OtherThanTemporaryImpairmentLossesInvestmentsPortionRecognizedInEarningsNetnoncurrent" nillable="true" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType" xbrli:balance="debit" xbrli:periodType="duration" />
  <xsd:element abstract="true" id="cgnx_OtherThantheU.SMember" name="OtherThantheU.SMember" nillable="true" substitutionGroup="xbrli:item" type="nonnum:domainItemType" xbrli:periodType="duration" />
  <xsd:element abstract="true" id="cgnx_ProductCostOfRevenueMember" name="ProductCostOfRevenueMember" nillable="true" substitutionGroup="xbrli:item" type="nonnum:domainItemType" xbrli:periodType="duration" />
  <xsd:element id="cgnx_ProductWarrantyPeriod" name="ProductWarrantyPeriod" nillable="true" substitutionGroup="xbrli:item" type="xbrli:durationItemType" xbrli:periodType="duration" />
  <xsd:element abstract="true" id="cgnx_RepurchaseProgram2014Member" name="RepurchaseProgram2014Member" nillable="true" substitutionGroup="xbrli:item" type="nonnum:domainItemType" xbrli:periodType="duration" />
  <xsd:element abstract="true" id="cgnx_RepurchaseProgramNovember2015Member" name="RepurchaseProgramNovember2015Member" nillable="true" substitutionGroup="xbrli:item" type="nonnum:domainItemType" xbrli:periodType="duration" />
  <xsd:element abstract="true" id="cgnx_RepurchaseProgramOctober2018Member" name="RepurchaseProgramOctober2018Member" nillable="true" substitutionGroup="xbrli:item" type="nonnum:domainItemType" xbrli:periodType="duration" />
  <xsd:element abstract="true" id="cgnx_RepurchaseProgramTwentyFifteenMember" name="RepurchaseProgramTwentyFifteenMember" nillable="true" substitutionGroup="xbrli:item" type="nonnum:domainItemType" xbrli:periodType="duration" />
  <xsd:element id="cgnx_Repurchasedsharestotalcost" name="Repurchasedsharestotalcost" nillable="true" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType" xbrli:balance="debit" xbrli:periodType="duration" />
  <xsd:element id="cgnx_RetirementAllowance" name="RetirementAllowance" nillable="true" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType" xbrli:balance="credit" xbrli:periodType="instant" />
  <xsd:element id="cgnx_RevenuePaymentTerms" name="RevenuePaymentTerms" nillable="true" substitutionGroup="xbrli:item" type="xbrli:durationItemType" xbrli:periodType="duration" />
  <xsd:element abstract="true" id="cgnx_SellingGeneralAndAdministrativeMember" name="SellingGeneralAndAdministrativeMember" nillable="true" substitutionGroup="xbrli:item" type="nonnum:domainItemType" xbrli:periodType="duration" />
  <xsd:element id="cgnx_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableAggregateIntrinsicValue" name="ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableAggregateIntrinsicValue" nillable="true" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType" xbrli:balance="debit" xbrli:periodType="instant" />
  <xsd:element id="cgnx_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedFairValue" name="ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedFairValue" nillable="true" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType" xbrli:balance="debit" xbrli:periodType="duration" />
  <xsd:element id="cgnx_SharesBasedCompensationArrangementBySharesBasedPaymentAwardOptionsExercisableIntrinsicValue" name="SharesBasedCompensationArrangementBySharesBasedPaymentAwardOptionsExercisableIntrinsicValue" nillable="true" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType" xbrli:balance="debit" xbrli:periodType="duration" />
  <xsd:element id="cgnx_SovereignBondsFairValueDisclosure" name="SovereignBondsFairValueDisclosure" nillable="true" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType" xbrli:balance="debit" xbrli:periodType="instant" />
  <xsd:element abstract="true" id="cgnx_StandardProductandServicesMember" name="StandardProductandServicesMember" nillable="true" substitutionGroup="xbrli:item" type="nonnum:domainItemType" xbrli:periodType="duration" />
  <xsd:element abstract="true" id="cgnx_StateResearchAndExperimentationMember" name="StateResearchAndExperimentationMember" nillable="true" substitutionGroup="xbrli:item" type="nonnum:domainItemType" xbrli:periodType="duration" />
  <xsd:element id="cgnx_Stateresearchandexperimentationtaxcarryforwards" name="Stateresearchandexperimentationtaxcarryforwards" nillable="true" substitutionGroup="xbrli:item" type="xbrli:stringItemType" xbrli:periodType="duration" />
  <xsd:element abstract="true" id="cgnx_SualabCo.Ltd.Member" name="SualabCo.Ltd.Member" nillable="true" substitutionGroup="xbrli:item" type="nonnum:domainItemType" xbrli:periodType="duration" />
  <xsd:element id="cgnx_TaxCutsAndJobsActOf2017IncompleteAccountingChangeInTaxRateDeferredTaxAssetProvisionalIncomeTaxExpense" name="TaxCutsAndJobsActOf2017IncompleteAccountingChangeInTaxRateDeferredTaxAssetProvisionalIncomeTaxExpense" nillable="true" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType" xbrli:balance="debit" xbrli:periodType="duration" />
  <xsd:element id="cgnx_TaxCutsAndJobsActOf2017IncompleteAccountingTransitionTaxForAccumulatedForeignEarningsProvisionalIncomeTaxExpense" name="TaxCutsAndJobsActOf2017IncompleteAccountingTransitionTaxForAccumulatedForeignEarningsProvisionalIncomeTaxExpense" nillable="true" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType" xbrli:balance="debit" xbrli:periodType="duration" />
  <xsd:element id="cgnx_TaxCutsAndJobsActOf2017TransitionTaxForAccumulatedForeignEarningsLiability" name="TaxCutsAndJobsActOf2017TransitionTaxForAccumulatedForeignEarningsLiability" nillable="true" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType" xbrli:balance="credit" xbrli:periodType="instant" />
  <xsd:element id="cgnx_TaxYearsCoveredThroughAdvancedPricingAgreement" name="TaxYearsCoveredThroughAdvancedPricingAgreement" nillable="true" substitutionGroup="xbrli:item" type="xbrli:stringItemType" xbrli:periodType="duration" />
  <xsd:element id="cgnx_Taxdeductiblegoodwill" name="Taxdeductiblegoodwill" nillable="true" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType" xbrli:balance="debit" xbrli:periodType="instant" />
  <xsd:element id="cgnx_TaxyearsforAPAagreement" name="TaxyearsforAPAagreement" nillable="true" substitutionGroup="xbrli:item" type="us-types:durationStringItemType" xbrli:periodType="duration" />
  <xsd:element id="cgnx_Totalsharesrepurchased" name="Totalsharesrepurchased" nillable="true" substitutionGroup="xbrli:item" type="xbrli:sharesItemType" xbrli:periodType="duration" />
  <xsd:element id="cgnx_TreasuryBillsFairValueDisclosure" name="TreasuryBillsFairValueDisclosure" nillable="true" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType" xbrli:balance="debit" xbrli:periodType="instant" />
  <xsd:element id="cgnx_Unrecognizedtaxbenefitshownasareductiontononcurrentdeferredtaxassets" name="Unrecognizedtaxbenefitshownasareductiontononcurrentdeferredtaxassets" nillable="true" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType" xbrli:balance="credit" xbrli:periodType="instant" />
  <xsd:element abstract="true" id="cgnx_ViDiSystemsS.A.Member" name="ViDiSystemsS.A.Member" nillable="true" substitutionGroup="xbrli:item" type="nonnum:domainItemType" xbrli:periodType="duration" />
  <xsd:element id="cgnx_VoteEntitledForEachCommonShareOutstanding" name="VoteEntitledForEachCommonShareOutstanding" nillable="true" substitutionGroup="xbrli:item" type="xbrli:integerItemType" xbrli:periodType="instant" />
</xsd:schema>
</XBRL>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EX-101.CAL
<SEQUENCE>12
<FILENAME>cgnx-20191231_cal.xml
<DESCRIPTION>XBRL TAXONOMY EXTENSION CALCULATION LINKBASE DOCUMENT
<TEXT>
<XBRL>
<?xml version="1.0" encoding="US-ASCII"?>
<!--XBRL Document Created with Wdesk from Workiva-->
<!-- -->
<link:linkbase xsi:schemaLocation="http://www.xbrl.org/2003/linkbase http://www.xbrl.org/2003/xbrl-linkbase-2003-12-31.xsd" 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">
  <link:roleRef roleURI="http://cognex.com/role/AccruedExpenses" xlink:href="cgnx-20191231.xsd#AccruedExpenses" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/AccruedExpensesChangesInWarrantyObligationsDetail" xlink:href="cgnx-20191231.xsd#AccruedExpensesChangesInWarrantyObligationsDetail" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/AccruedExpensesConstituentsOfAccruedExpensesDetail" xlink:href="cgnx-20191231.xsd#AccruedExpensesConstituentsOfAccruedExpensesDetail" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/AccruedExpensesTables" xlink:href="cgnx-20191231.xsd#AccruedExpensesTables" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/Acquisitions" xlink:href="cgnx-20191231.xsd#Acquisitions" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/AcquisitionsAcquisitionsDetails" xlink:href="cgnx-20191231.xsd#AcquisitionsAcquisitionsDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/AcquisitionsAcquisitionsTables" xlink:href="cgnx-20191231.xsd#AcquisitionsAcquisitionsTables" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/AcquisitionsGviVenturesIncDetails" xlink:href="cgnx-20191231.xsd#AcquisitionsGviVenturesIncDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/AcquisitionsGviVenturesIncPurchasePriceAllocationDetails" xlink:href="cgnx-20191231.xsd#AcquisitionsGviVenturesIncPurchasePriceAllocationDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/AcquisitionsSualabCoLtdNarrativeDetails" xlink:href="cgnx-20191231.xsd#AcquisitionsSualabCoLtdNarrativeDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/AcquisitionsSualabCoLtdPurchasePriceAllocationDetails" xlink:href="cgnx-20191231.xsd#AcquisitionsSualabCoLtdPurchasePriceAllocationDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/AcquisitionsVidiSystemsSADetails" xlink:href="cgnx-20191231.xsd#AcquisitionsVidiSystemsSADetails" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/AcquisitionsVidiSystemsSAPurchasePriceAllocationDetails" xlink:href="cgnx-20191231.xsd#AcquisitionsVidiSystemsSAPurchasePriceAllocationDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/CashCashEquivalentsAndInvestments" xlink:href="cgnx-20191231.xsd#CashCashEquivalentsAndInvestments" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/CashCashEquivalentsAndInvestmentsAdditionalInformationDetail" xlink:href="cgnx-20191231.xsd#CashCashEquivalentsAndInvestmentsAdditionalInformationDetail" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/CashCashEquivalentsAndInvestmentsAmortizedCostToFairValueDetail" xlink:href="cgnx-20191231.xsd#CashCashEquivalentsAndInvestmentsAmortizedCostToFairValueDetail" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/CashCashEquivalentsAndInvestmentsComponentsOfCashCashEquivalentsAndInvestmentsDetail" xlink:href="cgnx-20191231.xsd#CashCashEquivalentsAndInvestmentsComponentsOfCashCashEquivalentsAndInvestmentsDetail" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/CashCashEquivalentsAndInvestmentsEffectiveMaturityDatesOfAvailableForSaleInvestmentsDetail" xlink:href="cgnx-20191231.xsd#CashCashEquivalentsAndInvestmentsEffectiveMaturityDatesOfAvailableForSaleInvestmentsDetail" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/CashCashEquivalentsAndInvestmentsGrossUnrealizedLossesAndFairValueForAvailableForSaleInvestmentsDetail" xlink:href="cgnx-20191231.xsd#CashCashEquivalentsAndInvestmentsGrossUnrealizedLossesAndFairValueForAvailableForSaleInvestmentsDetail" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/CashCashEquivalentsAndInvestmentsTables" xlink:href="cgnx-20191231.xsd#CashCashEquivalentsAndInvestmentsTables" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/CommitmentsAndContingencies" xlink:href="cgnx-20191231.xsd#CommitmentsAndContingencies" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/CommitmentsAndContingenciesAdditionalInformationDetail" xlink:href="cgnx-20191231.xsd#CommitmentsAndContingenciesAdditionalInformationDetail" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/ConsolidatedBalanceSheets" xlink:href="cgnx-20191231.xsd#ConsolidatedBalanceSheets" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/ConsolidatedBalanceSheetsParenthetical" xlink:href="cgnx-20191231.xsd#ConsolidatedBalanceSheetsParenthetical" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/ConsolidatedStatementsOfCashFlows" xlink:href="cgnx-20191231.xsd#ConsolidatedStatementsOfCashFlows" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/ConsolidatedStatementsOfComprehensiveIncome" xlink:href="cgnx-20191231.xsd#ConsolidatedStatementsOfComprehensiveIncome" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/ConsolidatedStatementsOfComprehensiveIncomeParenthetical" xlink:href="cgnx-20191231.xsd#ConsolidatedStatementsOfComprehensiveIncomeParenthetical" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/ConsolidatedStatementsOfOperations" xlink:href="cgnx-20191231.xsd#ConsolidatedStatementsOfOperations" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/ConsolidatedStatementsOfOperationsParenthetical" xlink:href="cgnx-20191231.xsd#ConsolidatedStatementsOfOperationsParenthetical" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/ConsolidatedStatementsOfShareholdersEquity" xlink:href="cgnx-20191231.xsd#ConsolidatedStatementsOfShareholdersEquity" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/ConsolidatedStatementsOfShareholdersEquityParenthetical" xlink:href="cgnx-20191231.xsd#ConsolidatedStatementsOfShareholdersEquityParenthetical" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/CoverPage" xlink:href="cgnx-20191231.xsd#CoverPage" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/DerivativeInstruments" xlink:href="cgnx-20191231.xsd#DerivativeInstruments" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/DerivativeInstrumentsAdditionalDetailsDetails" xlink:href="cgnx-20191231.xsd#DerivativeInstrumentsAdditionalDetailsDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/DerivativeInstrumentsAssetsAndLiabilitiesPresentedOnNetBasisDueToRightOfOffsetDetails" xlink:href="cgnx-20191231.xsd#DerivativeInstrumentsAssetsAndLiabilitiesPresentedOnNetBasisDueToRightOfOffsetDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/DerivativeInstrumentsBalanceSheetLocationDetails" xlink:href="cgnx-20191231.xsd#DerivativeInstrumentsBalanceSheetLocationDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/DerivativeInstrumentsChangesInAociDetails" xlink:href="cgnx-20191231.xsd#DerivativeInstrumentsChangesInAociDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/DerivativeInstrumentsGainLossRecognizedInOtherComprehensiveIncomeLossDetails" xlink:href="cgnx-20191231.xsd#DerivativeInstrumentsGainLossRecognizedInOtherComprehensiveIncomeLossDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/DerivativeInstrumentsOutstandingForwardContractsDetails" xlink:href="cgnx-20191231.xsd#DerivativeInstrumentsOutstandingForwardContractsDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/DerivativeInstrumentsTables" xlink:href="cgnx-20191231.xsd#DerivativeInstrumentsTables" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/EmployeeSavingsPlan" xlink:href="cgnx-20191231.xsd#EmployeeSavingsPlan" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/EmployeeSavingsPlanAdditionalInformationDetail" xlink:href="cgnx-20191231.xsd#EmployeeSavingsPlanAdditionalInformationDetail" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/FairValueMeasurements" xlink:href="cgnx-20191231.xsd#FairValueMeasurements" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/FairValueMeasurementsAssetsAndLiabilitiesMeasuredAtFairValueOnRecurringBasisDetail" xlink:href="cgnx-20191231.xsd#FairValueMeasurementsAssetsAndLiabilitiesMeasuredAtFairValueOnRecurringBasisDetail" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/FairValueMeasurementsLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationDetails" xlink:href="cgnx-20191231.xsd#FairValueMeasurementsLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/FairValueMeasurementsTables" xlink:href="cgnx-20191231.xsd#FairValueMeasurementsTables" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/Goodwill" xlink:href="cgnx-20191231.xsd#Goodwill" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/GoodwillChangesInCarryingValueOfGoodwillDetail" xlink:href="cgnx-20191231.xsd#GoodwillChangesInCarryingValueOfGoodwillDetail" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/GoodwillTables" xlink:href="cgnx-20191231.xsd#GoodwillTables" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/IndemnificationProvisions" xlink:href="cgnx-20191231.xsd#IndemnificationProvisions" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/IndemnificationProvisionsNarrativeDetails" xlink:href="cgnx-20191231.xsd#IndemnificationProvisionsNarrativeDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/IntangibleAssets" xlink:href="cgnx-20191231.xsd#IntangibleAssets" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/IntangibleAssetsAmortizedIntangibleAssetsDetail" xlink:href="cgnx-20191231.xsd#IntangibleAssetsAmortizedIntangibleAssetsDetail" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/IntangibleAssetsEstimatedAmortizationExpenseSucceedingFiscalYearsDetail" xlink:href="cgnx-20191231.xsd#IntangibleAssetsEstimatedAmortizationExpenseSucceedingFiscalYearsDetail" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/IntangibleAssetsTables" xlink:href="cgnx-20191231.xsd#IntangibleAssetsTables" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/Inventories" xlink:href="cgnx-20191231.xsd#Inventories" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/InventoriesInventoriesDetail" xlink:href="cgnx-20191231.xsd#InventoriesInventoriesDetail" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/InventoriesTables" xlink:href="cgnx-20191231.xsd#InventoriesTables" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/LeasesDetails" xlink:href="cgnx-20191231.xsd#LeasesDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/LeasesLeases" xlink:href="cgnx-20191231.xsd#LeasesLeases" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/LeasesScheduleOfPaymentsDetails" xlink:href="cgnx-20191231.xsd#LeasesScheduleOfPaymentsDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/LeasesScheduleOfRentalReceiptsDetails" xlink:href="cgnx-20191231.xsd#LeasesScheduleOfRentalReceiptsDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/LeasesTables" xlink:href="cgnx-20191231.xsd#LeasesTables" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/NewPronouncements" xlink:href="cgnx-20191231.xsd#NewPronouncements" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/NewPronouncementsDetails" xlink:href="cgnx-20191231.xsd#NewPronouncementsDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/PropertyPlantAndEquipment" xlink:href="cgnx-20191231.xsd#PropertyPlantAndEquipment" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/PropertyPlantAndEquipmentAdditionalInformationDetails" xlink:href="cgnx-20191231.xsd#PropertyPlantAndEquipmentAdditionalInformationDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/PropertyPlantAndEquipmentPropertyPlantAndEquipmentDetail" xlink:href="cgnx-20191231.xsd#PropertyPlantAndEquipmentPropertyPlantAndEquipmentDetail" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/PropertyPlantAndEquipmentTables" xlink:href="cgnx-20191231.xsd#PropertyPlantAndEquipmentTables" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/RevenueRecognition" xlink:href="cgnx-20191231.xsd#RevenueRecognition" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/RevenueRecognitionBalanceSheetImpactDetails" xlink:href="cgnx-20191231.xsd#RevenueRecognitionBalanceSheetImpactDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/RevenueRecognitionDeferredRevenueAndCustomerDepositsRollforwardDetails" xlink:href="cgnx-20191231.xsd#RevenueRecognitionDeferredRevenueAndCustomerDepositsRollforwardDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/RevenueRecognitionDisaggregationByGeographyAndTypeDetails" xlink:href="cgnx-20191231.xsd#RevenueRecognitionDisaggregationByGeographyAndTypeDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/RevenueRecognitionNarrativesDetails" xlink:href="cgnx-20191231.xsd#RevenueRecognitionNarrativesDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/RevenueRecognitionStatementOfOperationsImpactDetails" xlink:href="cgnx-20191231.xsd#RevenueRecognitionStatementOfOperationsImpactDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/RevenueRecognitionTables" xlink:href="cgnx-20191231.xsd#RevenueRecognitionTables" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/ScheduleIiValuationAndQualifyingAccounts" xlink:href="cgnx-20191231.xsd#ScheduleIiValuationAndQualifyingAccounts" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/ScheduleIiValuationAndQualifyingAccountsDetail" xlink:href="cgnx-20191231.xsd#ScheduleIiValuationAndQualifyingAccountsDetail" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/SegmentAndGeographicInformation" xlink:href="cgnx-20191231.xsd#SegmentAndGeographicInformation" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/SegmentAndGeographicInformationAdditionalInformationDetail" xlink:href="cgnx-20191231.xsd#SegmentAndGeographicInformationAdditionalInformationDetail" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/SegmentAndGeographicInformationScheduleOfRevenueFromExternalCustomersAndLongLivedAssetsByGeographicalAreasDetail" xlink:href="cgnx-20191231.xsd#SegmentAndGeographicInformationScheduleOfRevenueFromExternalCustomersAndLongLivedAssetsByGeographicalAreasDetail" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/SegmentAndGeographicInformationTables" xlink:href="cgnx-20191231.xsd#SegmentAndGeographicInformationTables" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/SelectedQuarterlyFinancialDataUnaudited" xlink:href="cgnx-20191231.xsd#SelectedQuarterlyFinancialDataUnaudited" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/SelectedQuarterlyFinancialDataUnauditedDetails" xlink:href="cgnx-20191231.xsd#SelectedQuarterlyFinancialDataUnauditedDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/SelectedQuarterlyFinancialDataUnauditedTables" xlink:href="cgnx-20191231.xsd#SelectedQuarterlyFinancialDataUnauditedTables" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/ShareholdersEquity" xlink:href="cgnx-20191231.xsd#ShareholdersEquity" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/ShareholdersEquityAdditionalInformationDetail" xlink:href="cgnx-20191231.xsd#ShareholdersEquityAdditionalInformationDetail" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/StockBasedCompensation" xlink:href="cgnx-20191231.xsd#StockBasedCompensation" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/StockBasedCompensationExpenseAdditionalInformationDetail" xlink:href="cgnx-20191231.xsd#StockBasedCompensationExpenseAdditionalInformationDetail" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/StockBasedCompensationExpenseStockBasedCompensationExpenseDetail" xlink:href="cgnx-20191231.xsd#StockBasedCompensationExpenseStockBasedCompensationExpenseDetail" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/StockBasedCompensationExpenseSummaryOfRestrictedStockOptionActivityDetail" xlink:href="cgnx-20191231.xsd#StockBasedCompensationExpenseSummaryOfRestrictedStockOptionActivityDetail" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/StockBasedCompensationExpenseSummaryOfStockOptionActivityDetail" xlink:href="cgnx-20191231.xsd#StockBasedCompensationExpenseSummaryOfStockOptionActivityDetail" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/StockBasedCompensationExpenseWeightedAverageAssumptionsUsedInEstimatingFairValuesOfStockOptionsGrantedDetail" xlink:href="cgnx-20191231.xsd#StockBasedCompensationExpenseWeightedAverageAssumptionsUsedInEstimatingFairValuesOfStockOptionsGrantedDetail" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/StockBasedCompensationTables" xlink:href="cgnx-20191231.xsd#StockBasedCompensationTables" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/SubsequentEvents" xlink:href="cgnx-20191231.xsd#SubsequentEvents" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/SubsequentEventsDetails" xlink:href="cgnx-20191231.xsd#SubsequentEventsDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/SummaryOfSignificantAccountingPolicies" xlink:href="cgnx-20191231.xsd#SummaryOfSignificantAccountingPolicies" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/SummaryOfSignificantAccountingPoliciesAdditionalInformationDetail" xlink:href="cgnx-20191231.xsd#SummaryOfSignificantAccountingPoliciesAdditionalInformationDetail" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/SummaryOfSignificantAccountingPoliciesAdvertisingCostsDetails" xlink:href="cgnx-20191231.xsd#SummaryOfSignificantAccountingPoliciesAdvertisingCostsDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/SummaryOfSignificantAccountingPoliciesComprehensiveIncomeLossDetails" xlink:href="cgnx-20191231.xsd#SummaryOfSignificantAccountingPoliciesComprehensiveIncomeLossDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/SummaryOfSignificantAccountingPoliciesIntangibleAssetsDetails" xlink:href="cgnx-20191231.xsd#SummaryOfSignificantAccountingPoliciesIntangibleAssetsDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/SummaryOfSignificantAccountingPoliciesPolicies" xlink:href="cgnx-20191231.xsd#SummaryOfSignificantAccountingPoliciesPolicies" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/SummaryOfSignificantAccountingPoliciesSummaryOfSignificantAccountingPoliciesRevenueRecognitionDetails" xlink:href="cgnx-20191231.xsd#SummaryOfSignificantAccountingPoliciesSummaryOfSignificantAccountingPoliciesRevenueRecognitionDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/SummaryOfSignificantAccountingPoliciesWarrantyDetails" xlink:href="cgnx-20191231.xsd#SummaryOfSignificantAccountingPoliciesWarrantyDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/Taxes" xlink:href="cgnx-20191231.xsd#Taxes" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/TaxesAdditionalInformationDetails" xlink:href="cgnx-20191231.xsd#TaxesAdditionalInformationDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/TaxesChangesInReserveForIncomeTaxesExcludingInterestAndPenaltiesDetails" xlink:href="cgnx-20191231.xsd#TaxesChangesInReserveForIncomeTaxesExcludingInterestAndPenaltiesDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/TaxesConstituentsOfDeferredTaxAssetsDetails" xlink:href="cgnx-20191231.xsd#TaxesConstituentsOfDeferredTaxAssetsDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/TaxesConstituentsOfProvisionForIncomeTaxesDetails" xlink:href="cgnx-20191231.xsd#TaxesConstituentsOfProvisionForIncomeTaxesDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/TaxesReconciliationOfUnitedStatesFederalStatutoryCorporateTaxRateToCompanysEffectiveTaxRateOrIncomeTaxProvisionDetails" xlink:href="cgnx-20191231.xsd#TaxesReconciliationOfUnitedStatesFederalStatutoryCorporateTaxRateToCompanysEffectiveTaxRateOrIncomeTaxProvisionDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/TaxesScheduleOfChangeInAccountingPolicyDetails" xlink:href="cgnx-20191231.xsd#TaxesScheduleOfChangeInAccountingPolicyDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/TaxesTables" xlink:href="cgnx-20191231.xsd#TaxesTables" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/WeightedAverageShares" xlink:href="cgnx-20191231.xsd#WeightedAverageShares" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/WeightedAverageSharesAdditionalInformationDetail" xlink:href="cgnx-20191231.xsd#WeightedAverageSharesAdditionalInformationDetail" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/WeightedAverageSharesCalculationOfWeightedAverageSharesDetail" xlink:href="cgnx-20191231.xsd#WeightedAverageSharesCalculationOfWeightedAverageSharesDetail" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/WeightedAverageSharesTables" xlink:href="cgnx-20191231.xsd#WeightedAverageSharesTables" xlink:type="simple" />
  <link:calculationLink xlink:role="http://cognex.com/role/AccruedExpenses" xlink:type="extended" />
  <link:calculationLink xlink:role="http://cognex.com/role/AccruedExpensesChangesInWarrantyObligationsDetail" xlink:type="extended" />
  <link:calculationLink xlink:role="http://cognex.com/role/AccruedExpensesConstituentsOfAccruedExpensesDetail" xlink:type="extended">
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_AccruedLiabilitiesCurrent" xlink:label="loc_us-gaap_AccruedLiabilitiesCurrent_8422f2c5-408e-d123-b935-f3115e023941" xlink:type="locator" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_AccruedSalariesCurrent" xlink:label="loc_us-gaap_AccruedSalariesCurrent_a6800cd8-5421-aa7f-a4dc-501c17b7ce00" xlink:type="locator" />
    <link:calculationArc order="1" weight="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_AccruedLiabilitiesCurrent_8422f2c5-408e-d123-b935-f3115e023941" xlink:to="loc_us-gaap_AccruedSalariesCurrent_a6800cd8-5421-aa7f-a4dc-501c17b7ce00" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_RetirementAllowance" xlink:label="loc_cgnx_RetirementAllowance_156ce500-ef3d-dc39-2d10-8095b77d2c3a" xlink:type="locator" />
    <link:calculationArc order="2" weight="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_AccruedLiabilitiesCurrent_8422f2c5-408e-d123-b935-f3115e023941" xlink:to="loc_cgnx_RetirementAllowance_156ce500-ef3d-dc39-2d10-8095b77d2c3a" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ProductWarrantyAccrualClassifiedCurrent" xlink:label="loc_us-gaap_ProductWarrantyAccrualClassifiedCurrent_088dbad9-ab51-b723-f657-c33308ae18ab" xlink:type="locator" />
    <link:calculationArc order="3" weight="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_AccruedLiabilitiesCurrent_8422f2c5-408e-d123-b935-f3115e023941" xlink:to="loc_us-gaap_ProductWarrantyAccrualClassifiedCurrent_088dbad9-ab51-b723-f657-c33308ae18ab" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_AccruedVacationCurrent" xlink:label="loc_us-gaap_AccruedVacationCurrent_b8f4ceb9-0776-826c-20ff-62f5117a67ea" xlink:type="locator" />
    <link:calculationArc order="4" weight="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_AccruedLiabilitiesCurrent_8422f2c5-408e-d123-b935-f3115e023941" xlink:to="loc_us-gaap_AccruedVacationCurrent_b8f4ceb9-0776-826c-20ff-62f5117a67ea" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_BusinessCombinationSeparatelyRecognizedTransactionsLiabilitiesRecognized" xlink:label="loc_us-gaap_BusinessCombinationSeparatelyRecognizedTransactionsLiabilitiesRecognized_c961da52-3020-0bd8-1ff5-d9cfd6539536" xlink:type="locator" />
    <link:calculationArc order="5" weight="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_AccruedLiabilitiesCurrent_8422f2c5-408e-d123-b935-f3115e023941" xlink:to="loc_us-gaap_BusinessCombinationSeparatelyRecognizedTransactionsLiabilitiesRecognized_c961da52-3020-0bd8-1ff5-d9cfd6539536" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_AccruedBonusesCurrent" xlink:label="loc_us-gaap_AccruedBonusesCurrent_853bd7d0-a1a5-045b-6078-0f9a7e4e9e80" xlink:type="locator" />
    <link:calculationArc order="6" weight="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_AccruedLiabilitiesCurrent_8422f2c5-408e-d123-b935-f3115e023941" xlink:to="loc_us-gaap_AccruedBonusesCurrent_853bd7d0-a1a5-045b-6078-0f9a7e4e9e80" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_OtherAccruedLiabilitiesCurrent" xlink:label="loc_us-gaap_OtherAccruedLiabilitiesCurrent_d9354686-0832-bbe3-9389-140489c487e8" xlink:type="locator" />
    <link:calculationArc order="7" weight="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_AccruedLiabilitiesCurrent_8422f2c5-408e-d123-b935-f3115e023941" xlink:to="loc_us-gaap_OtherAccruedLiabilitiesCurrent_d9354686-0832-bbe3-9389-140489c487e8" xlink:type="arc" />
  </link:calculationLink>
  <link:calculationLink xlink:role="http://cognex.com/role/AccruedExpensesTables" xlink:type="extended" />
  <link:calculationLink xlink:role="http://cognex.com/role/Acquisitions" xlink:type="extended" />
  <link:calculationLink xlink:role="http://cognex.com/role/AcquisitionsAcquisitionsDetails" xlink:type="extended" />
  <link:calculationLink xlink:role="http://cognex.com/role/AcquisitionsAcquisitionsTables" xlink:type="extended" />
  <link:calculationLink xlink:role="http://cognex.com/role/AcquisitionsGviVenturesIncDetails" xlink:type="extended" />
  <link:calculationLink xlink:role="http://cognex.com/role/AcquisitionsGviVenturesIncPurchasePriceAllocationDetails" xlink:type="extended">
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet" xlink:label="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet_a49f91fe-6036-ab86-6a1a-6ac66f348274" xlink:type="locator" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsReceivables" xlink:label="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsReceivables_8ce68675-8129-3ab4-cbd9-33127f150e28" xlink:type="locator" />
    <link:calculationArc order="1" weight="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet_a49f91fe-6036-ab86-6a1a-6ac66f348274" xlink:to="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsReceivables_8ce68675-8129-3ab4-cbd9-33127f150e28" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedInventory" xlink:label="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedInventory_9ad6eb0b-0be8-3959-8888-f510808da951" xlink:type="locator" />
    <link:calculationArc order="2" weight="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet_a49f91fe-6036-ab86-6a1a-6ac66f348274" xlink:to="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedInventory_9ad6eb0b-0be8-3959-8888-f510808da951" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsPrepaidExpenseAndOtherAssets" xlink:label="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsPrepaidExpenseAndOtherAssets_4969e367-c531-0df1-f44b-bfbc106efa7e" xlink:type="locator" />
    <link:calculationArc order="3" weight="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet_a49f91fe-6036-ab86-6a1a-6ac66f348274" xlink:to="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsPrepaidExpenseAndOtherAssets_4969e367-c531-0df1-f44b-bfbc106efa7e" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccountsPayable" xlink:label="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccountsPayable_fbe331bf-e36a-7435-2eec-e3249b6c0997" xlink:type="locator" />
    <link:calculationArc order="4" weight="-1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet_a49f91fe-6036-ab86-6a1a-6ac66f348274" xlink:to="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccountsPayable_fbe331bf-e36a-7435-2eec-e3249b6c0997" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredandLiabilitiesAssumedCurrentLiabilitiesAccruedExpenses" xlink:label="loc_cgnx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredandLiabilitiesAssumedCurrentLiabilitiesAccruedExpenses_f6312094-44d0-636c-0583-8095b82318b1" xlink:type="locator" />
    <link:calculationArc order="5" weight="-1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet_a49f91fe-6036-ab86-6a1a-6ac66f348274" xlink:to="loc_cgnx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredandLiabilitiesAssumedCurrentLiabilitiesAccruedExpenses_f6312094-44d0-636c-0583-8095b82318b1" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles" xlink:label="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles_6558b51b-e5e6-31be-658a-d87768e28cf6" xlink:type="locator" />
    <link:calculationArc order="6" weight="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet_a49f91fe-6036-ab86-6a1a-6ac66f348274" xlink:to="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles_6558b51b-e5e6-31be-658a-d87768e28cf6" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_Goodwill" xlink:label="loc_us-gaap_Goodwill_831ad0b9-9dba-3997-20e6-e99a19aa28db" xlink:type="locator" />
    <link:calculationArc order="7" weight="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet_a49f91fe-6036-ab86-6a1a-6ac66f348274" xlink:to="loc_us-gaap_Goodwill_831ad0b9-9dba-3997-20e6-e99a19aa28db" xlink:type="arc" />
  </link:calculationLink>
  <link:calculationLink xlink:role="http://cognex.com/role/AcquisitionsSualabCoLtdNarrativeDetails" xlink:type="extended" />
  <link:calculationLink xlink:role="http://cognex.com/role/AcquisitionsSualabCoLtdPurchasePriceAllocationDetails" xlink:type="extended">
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet" xlink:label="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet_a49f91fe-6036-ab86-6a1a-6ac66f348274" xlink:type="locator" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCashAndEquivalents" xlink:label="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCashAndEquivalents_395f9bb0-2492-f247-ce6b-39e67453292c" xlink:type="locator" />
    <link:calculationArc order="1" weight="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet_a49f91fe-6036-ab86-6a1a-6ac66f348274" xlink:to="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCashAndEquivalents_395f9bb0-2492-f247-ce6b-39e67453292c" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsMarketableSecurities" xlink:label="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsMarketableSecurities_a7dcce4d-e983-e5c1-78ec-c3acb68aab2d" xlink:type="locator" />
    <link:calculationArc order="2" weight="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet_a49f91fe-6036-ab86-6a1a-6ac66f348274" xlink:to="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsMarketableSecurities_a7dcce4d-e983-e5c1-78ec-c3acb68aab2d" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsReceivables" xlink:label="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsReceivables_8ce68675-8129-3ab4-cbd9-33127f150e28" xlink:type="locator" />
    <link:calculationArc order="3" weight="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet_a49f91fe-6036-ab86-6a1a-6ac66f348274" xlink:to="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsReceivables_8ce68675-8129-3ab4-cbd9-33127f150e28" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedInventory" xlink:label="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedInventory_9ad6eb0b-0be8-3959-8888-f510808da951" xlink:type="locator" />
    <link:calculationArc order="4" weight="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet_a49f91fe-6036-ab86-6a1a-6ac66f348274" xlink:to="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedInventory_9ad6eb0b-0be8-3959-8888-f510808da951" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsPrepaidExpenseAndOtherAssets" xlink:label="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsPrepaidExpenseAndOtherAssets_4969e367-c531-0df1-f44b-bfbc106efa7e" xlink:type="locator" />
    <link:calculationArc order="5" weight="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet_a49f91fe-6036-ab86-6a1a-6ac66f348274" xlink:to="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsPrepaidExpenseAndOtherAssets_4969e367-c531-0df1-f44b-bfbc106efa7e" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment" xlink:label="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment_090d08a1-b8fd-3634-47b8-7dcb68699de1" xlink:type="locator" />
    <link:calculationArc order="6" weight="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet_a49f91fe-6036-ab86-6a1a-6ac66f348274" xlink:to="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment_090d08a1-b8fd-3634-47b8-7dcb68699de1" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredandLiabilitiesAssumedOperatingLeaseRightofUseAsset" xlink:label="loc_cgnx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredandLiabilitiesAssumedOperatingLeaseRightofUseAsset_2A2D3FB5256EC2C3CC45FD6A82182507" xlink:type="locator" />
    <link:calculationArc order="7" weight="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet_a49f91fe-6036-ab86-6a1a-6ac66f348274" xlink:to="loc_cgnx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredandLiabilitiesAssumedOperatingLeaseRightofUseAsset_2A2D3FB5256EC2C3CC45FD6A82182507" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxAssets" xlink:label="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxAssets_03034168-0c29-957e-9b7e-01ea7f13c7d8" xlink:type="locator" />
    <link:calculationArc order="8" weight="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet_a49f91fe-6036-ab86-6a1a-6ac66f348274" xlink:to="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxAssets_03034168-0c29-957e-9b7e-01ea7f13c7d8" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNoncurrentAssets" xlink:label="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNoncurrentAssets_381b6ae1-748b-8b2a-26a5-329458fb5db2" xlink:type="locator" />
    <link:calculationArc order="9" weight="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet_a49f91fe-6036-ab86-6a1a-6ac66f348274" xlink:to="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNoncurrentAssets_381b6ae1-748b-8b2a-26a5-329458fb5db2" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccountsPayable" xlink:label="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccountsPayable_fbe331bf-e36a-7435-2eec-e3249b6c0997" xlink:type="locator" />
    <link:calculationArc order="10" weight="-1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet_a49f91fe-6036-ab86-6a1a-6ac66f348274" xlink:to="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccountsPayable_fbe331bf-e36a-7435-2eec-e3249b6c0997" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilities" xlink:label="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilities_c1d14e08-6047-bdc6-cd0b-14a44c47d9d6" xlink:type="locator" />
    <link:calculationArc order="11" weight="-1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet_a49f91fe-6036-ab86-6a1a-6ac66f348274" xlink:to="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilities_c1d14e08-6047-bdc6-cd0b-14a44c47d9d6" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredandLiabilitiesAssumedCurrentLiabilitiesDeferredRevenueandCustomerDeposits" xlink:label="loc_cgnx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredandLiabilitiesAssumedCurrentLiabilitiesDeferredRevenueandCustomerDeposits_C530BBF6E08FF221DC74FD6C4822DF0B" xlink:type="locator" />
    <link:calculationArc order="12" weight="-1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet_a49f91fe-6036-ab86-6a1a-6ac66f348274" xlink:to="loc_cgnx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredandLiabilitiesAssumedCurrentLiabilitiesDeferredRevenueandCustomerDeposits_C530BBF6E08FF221DC74FD6C4822DF0B" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredandLiabilitiesAssumedOperatingLeaseLiabilityCurrent" xlink:label="loc_cgnx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredandLiabilitiesAssumedOperatingLeaseLiabilityCurrent_CAFA21D33C526B21BAAAFD73CD21FE15" xlink:type="locator" />
    <link:calculationArc order="13" weight="-1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet_a49f91fe-6036-ab86-6a1a-6ac66f348274" xlink:to="loc_cgnx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredandLiabilitiesAssumedOperatingLeaseLiabilityCurrent_CAFA21D33C526B21BAAAFD73CD21FE15" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredandLiabilitiesAssumedOperatingLeaseLiabilityNoncurrent" xlink:label="loc_cgnx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredandLiabilitiesAssumedOperatingLeaseLiabilityNoncurrent_D47C45FCDFB71030C4E0FD76C6C9EA90" xlink:type="locator" />
    <link:calculationArc order="14" weight="-1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet_a49f91fe-6036-ab86-6a1a-6ac66f348274" xlink:to="loc_cgnx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredandLiabilitiesAssumedOperatingLeaseLiabilityNoncurrent_D47C45FCDFB71030C4E0FD76C6C9EA90" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesDeferredRevenue" xlink:label="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesDeferredRevenue_69cba78b-b6da-e5e0-8720-be94eb46bc87" xlink:type="locator" />
    <link:calculationArc order="15" weight="-1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet_a49f91fe-6036-ab86-6a1a-6ac66f348274" xlink:to="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesDeferredRevenue_69cba78b-b6da-e5e0-8720-be94eb46bc87" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNoncurrentLiabilitiesOther" xlink:label="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNoncurrentLiabilitiesOther_403bd7bd-aec1-42d0-9dba-3894488c17e9" xlink:type="locator" />
    <link:calculationArc order="16" weight="-1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet_a49f91fe-6036-ab86-6a1a-6ac66f348274" xlink:to="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNoncurrentLiabilitiesOther_403bd7bd-aec1-42d0-9dba-3894488c17e9" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibleAssetsOtherThanGoodwill" xlink:label="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibleAssetsOtherThanGoodwill_588b212f-0609-2b89-932f-cbe7e57377ff" xlink:type="locator" />
    <link:calculationArc order="17" weight="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet_a49f91fe-6036-ab86-6a1a-6ac66f348274" xlink:to="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibleAssetsOtherThanGoodwill_588b212f-0609-2b89-932f-cbe7e57377ff" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_Goodwill" xlink:label="loc_us-gaap_Goodwill_831ad0b9-9dba-3997-20e6-e99a19aa28db" xlink:type="locator" />
    <link:calculationArc order="18" weight="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet_a49f91fe-6036-ab86-6a1a-6ac66f348274" xlink:to="loc_us-gaap_Goodwill_831ad0b9-9dba-3997-20e6-e99a19aa28db" xlink:type="arc" />
  </link:calculationLink>
  <link:calculationLink xlink:role="http://cognex.com/role/AcquisitionsVidiSystemsSADetails" xlink:type="extended" />
  <link:calculationLink xlink:role="http://cognex.com/role/AcquisitionsVidiSystemsSAPurchasePriceAllocationDetails" xlink:type="extended">
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet" xlink:label="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet_a49f91fe-6036-ab86-6a1a-6ac66f348274" xlink:type="locator" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCashAndEquivalents" xlink:label="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCashAndEquivalents_395f9bb0-2492-f247-ce6b-39e67453292c" xlink:type="locator" />
    <link:calculationArc order="1" weight="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet_a49f91fe-6036-ab86-6a1a-6ac66f348274" xlink:to="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCashAndEquivalents_395f9bb0-2492-f247-ce6b-39e67453292c" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsReceivables" xlink:label="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsReceivables_8ce68675-8129-3ab4-cbd9-33127f150e28" xlink:type="locator" />
    <link:calculationArc order="2" weight="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet_a49f91fe-6036-ab86-6a1a-6ac66f348274" xlink:to="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsReceivables_8ce68675-8129-3ab4-cbd9-33127f150e28" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsPrepaidExpenseAndOtherAssets" xlink:label="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsPrepaidExpenseAndOtherAssets_4969e367-c531-0df1-f44b-bfbc106efa7e" xlink:type="locator" />
    <link:calculationArc order="3" weight="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet_a49f91fe-6036-ab86-6a1a-6ac66f348274" xlink:to="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsPrepaidExpenseAndOtherAssets_4969e367-c531-0df1-f44b-bfbc106efa7e" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment" xlink:label="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment_090d08a1-b8fd-3634-47b8-7dcb68699de1" xlink:type="locator" />
    <link:calculationArc order="4" weight="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet_a49f91fe-6036-ab86-6a1a-6ac66f348274" xlink:to="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment_090d08a1-b8fd-3634-47b8-7dcb68699de1" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxAssets" xlink:label="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxAssets_03034168-0c29-957e-9b7e-01ea7f13c7d8" xlink:type="locator" />
    <link:calculationArc order="5" weight="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet_a49f91fe-6036-ab86-6a1a-6ac66f348274" xlink:to="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxAssets_03034168-0c29-957e-9b7e-01ea7f13c7d8" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccountsPayable" xlink:label="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccountsPayable_fbe331bf-e36a-7435-2eec-e3249b6c0997" xlink:type="locator" />
    <link:calculationArc order="6" weight="-1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet_a49f91fe-6036-ab86-6a1a-6ac66f348274" xlink:to="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccountsPayable_fbe331bf-e36a-7435-2eec-e3249b6c0997" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredandLiabilitiesAssumedCurrentLiabilitiesAccruedExpenses" xlink:label="loc_cgnx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredandLiabilitiesAssumedCurrentLiabilitiesAccruedExpenses_f6312094-44d0-636c-0583-8095b82318b1" xlink:type="locator" />
    <link:calculationArc order="7" weight="-1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet_a49f91fe-6036-ab86-6a1a-6ac66f348274" xlink:to="loc_cgnx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredandLiabilitiesAssumedCurrentLiabilitiesAccruedExpenses_f6312094-44d0-636c-0583-8095b82318b1" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxLiabilities" xlink:label="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxLiabilities_ca5b5f1d-dfc3-4674-aee8-5c9edec064b4" xlink:type="locator" />
    <link:calculationArc order="8" weight="-1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet_a49f91fe-6036-ab86-6a1a-6ac66f348274" xlink:to="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxLiabilities_ca5b5f1d-dfc3-4674-aee8-5c9edec064b4" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles" xlink:label="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles_6558b51b-e5e6-31be-658a-d87768e28cf6" xlink:type="locator" />
    <link:calculationArc order="9" weight="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet_a49f91fe-6036-ab86-6a1a-6ac66f348274" xlink:to="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles_6558b51b-e5e6-31be-658a-d87768e28cf6" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_Goodwill" xlink:label="loc_us-gaap_Goodwill_831ad0b9-9dba-3997-20e6-e99a19aa28db" xlink:type="locator" />
    <link:calculationArc order="10" weight="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet_a49f91fe-6036-ab86-6a1a-6ac66f348274" xlink:to="loc_us-gaap_Goodwill_831ad0b9-9dba-3997-20e6-e99a19aa28db" xlink:type="arc" />
  </link:calculationLink>
  <link:calculationLink xlink:role="http://cognex.com/role/CashCashEquivalentsAndInvestments" xlink:type="extended" />
  <link:calculationLink xlink:role="http://cognex.com/role/CashCashEquivalentsAndInvestmentsAdditionalInformationDetail" xlink:type="extended" />
  <link:calculationLink xlink:role="http://cognex.com/role/CashCashEquivalentsAndInvestmentsAmortizedCostToFairValueDetail" xlink:type="extended">
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_AvailableForSaleDebtSecuritiesAmortizedCostBasis" xlink:label="loc_us-gaap_AvailableForSaleDebtSecuritiesAmortizedCostBasis_f0bf2241-14f8-6ef1-e8d7-f724d52ad9c1" xlink:type="locator" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_AvailableForSaleSecuritiesAccumulatedGrossUnrealizedGainBeforeTax" xlink:label="loc_us-gaap_AvailableForSaleSecuritiesAccumulatedGrossUnrealizedGainBeforeTax_ca3fdc92-5bc4-ace2-ea95-801ea8b509c5" xlink:type="locator" />
    <link:calculationArc order="1" weight="-1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_AvailableForSaleDebtSecuritiesAmortizedCostBasis_f0bf2241-14f8-6ef1-e8d7-f724d52ad9c1" xlink:to="loc_us-gaap_AvailableForSaleSecuritiesAccumulatedGrossUnrealizedGainBeforeTax_ca3fdc92-5bc4-ace2-ea95-801ea8b509c5" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_AvailableForSaleSecuritiesAccumulatedGrossUnrealizedLossBeforeTax" xlink:label="loc_us-gaap_AvailableForSaleSecuritiesAccumulatedGrossUnrealizedLossBeforeTax_f3b99f95-1768-5254-1fcc-c01c9fbbdc02" xlink:type="locator" />
    <link:calculationArc order="2" weight="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_AvailableForSaleDebtSecuritiesAmortizedCostBasis_f0bf2241-14f8-6ef1-e8d7-f724d52ad9c1" xlink:to="loc_us-gaap_AvailableForSaleSecuritiesAccumulatedGrossUnrealizedLossBeforeTax_f3b99f95-1768-5254-1fcc-c01c9fbbdc02" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_AvailableForSaleSecuritiesDebtSecurities" xlink:label="loc_us-gaap_AvailableForSaleSecuritiesDebtSecurities_5ab305fa-195a-59cf-c0de-4b5d05fc9de4" xlink:type="locator" />
    <link:calculationArc order="3" weight="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_AvailableForSaleDebtSecuritiesAmortizedCostBasis_f0bf2241-14f8-6ef1-e8d7-f724d52ad9c1" xlink:to="loc_us-gaap_AvailableForSaleSecuritiesDebtSecurities_5ab305fa-195a-59cf-c0de-4b5d05fc9de4" xlink:type="arc" />
  </link:calculationLink>
  <link:calculationLink xlink:role="http://cognex.com/role/CashCashEquivalentsAndInvestmentsComponentsOfCashCashEquivalentsAndInvestmentsDetail" xlink:type="extended">
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_CashCashEquivalentsShortTermAndLongTermInvestments" xlink:label="loc_cgnx_CashCashEquivalentsShortTermAndLongTermInvestments_8811d2f0-6a26-80c4-4903-e67d2c270254" xlink:type="locator" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_CashAndCashEquivalentsAtCarryingValue" xlink:label="loc_us-gaap_CashAndCashEquivalentsAtCarryingValue_32f41ea9-05c6-e713-464b-586a571d1c1f" xlink:type="locator" />
    <link:calculationArc order="1" weight="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_cgnx_CashCashEquivalentsShortTermAndLongTermInvestments_8811d2f0-6a26-80c4-4903-e67d2c270254" xlink:to="loc_us-gaap_CashAndCashEquivalentsAtCarryingValue_32f41ea9-05c6-e713-464b-586a571d1c1f" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_Cash" xlink:label="loc_us-gaap_Cash_26692f67-d7fd-f2c2-da44-c5fe8f8327e2" xlink:type="locator" />
    <link:calculationArc order="1" weight="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_CashAndCashEquivalentsAtCarryingValue_32f41ea9-05c6-e713-464b-586a571d1c1f" xlink:to="loc_us-gaap_Cash_26692f67-d7fd-f2c2-da44-c5fe8f8327e2" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_MoneyMarketFundsAtCarryingValue" xlink:label="loc_us-gaap_MoneyMarketFundsAtCarryingValue_473eaddd-9577-2d05-6b0f-1bdb1c862fd0" xlink:type="locator" />
    <link:calculationArc order="2" weight="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_CashAndCashEquivalentsAtCarryingValue_32f41ea9-05c6-e713-464b-586a571d1c1f" xlink:to="loc_us-gaap_MoneyMarketFundsAtCarryingValue_473eaddd-9577-2d05-6b0f-1bdb1c862fd0" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_AvailableForSaleSecuritiesDebtSecuritiesCurrent" xlink:label="loc_us-gaap_AvailableForSaleSecuritiesDebtSecuritiesCurrent_d32a2417-a96e-df92-8909-70df29d31528" xlink:type="locator" />
    <link:calculationArc order="2" weight="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_cgnx_CashCashEquivalentsShortTermAndLongTermInvestments_8811d2f0-6a26-80c4-4903-e67d2c270254" xlink:to="loc_us-gaap_AvailableForSaleSecuritiesDebtSecuritiesCurrent_d32a2417-a96e-df92-8909-70df29d31528" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_LongTermInvestments" xlink:label="loc_us-gaap_LongTermInvestments_82393af8-00cf-c878-caac-887e4fcb1248" xlink:type="locator" />
    <link:calculationArc order="3" weight="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_cgnx_CashCashEquivalentsShortTermAndLongTermInvestments_8811d2f0-6a26-80c4-4903-e67d2c270254" xlink:to="loc_us-gaap_LongTermInvestments_82393af8-00cf-c878-caac-887e4fcb1248" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_AvailableForSaleSecuritiesDebtSecuritiesNoncurrent" xlink:label="loc_us-gaap_AvailableForSaleSecuritiesDebtSecuritiesNoncurrent_5be77b8d-fe95-a009-6655-0f33965794f2" xlink:type="locator" />
    <link:calculationArc order="1" weight="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_LongTermInvestments_82393af8-00cf-c878-caac-887e4fcb1248" xlink:to="loc_us-gaap_AvailableForSaleSecuritiesDebtSecuritiesNoncurrent_5be77b8d-fe95-a009-6655-0f33965794f2" xlink:type="arc" />
  </link:calculationLink>
  <link:calculationLink xlink:role="http://cognex.com/role/CashCashEquivalentsAndInvestmentsEffectiveMaturityDatesOfAvailableForSaleInvestmentsDetail" xlink:type="extended">
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_AvailableForSaleSecuritiesDebtSecurities" xlink:label="loc_us-gaap_AvailableForSaleSecuritiesDebtSecurities_5ab305fa-195a-59cf-c0de-4b5d05fc9de4" xlink:type="locator" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_AvailableForSaleSecuritiesDebtMaturitiesWithinOneYearFairValue" xlink:label="loc_us-gaap_AvailableForSaleSecuritiesDebtMaturitiesWithinOneYearFairValue_329a232f-6b5a-4dfb-de74-33d6f53aa8f1" xlink:type="locator" />
    <link:calculationArc order="1" weight="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_AvailableForSaleSecuritiesDebtSecurities_5ab305fa-195a-59cf-c0de-4b5d05fc9de4" xlink:to="loc_us-gaap_AvailableForSaleSecuritiesDebtMaturitiesWithinOneYearFairValue_329a232f-6b5a-4dfb-de74-33d6f53aa8f1" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterOneYearBeforeTwoYearsFairValue" xlink:label="loc_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterOneYearBeforeTwoYearsFairValue_c33f1211-7603-eae8-f8dc-e67d2be949b1" xlink:type="locator" />
    <link:calculationArc order="2" weight="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_AvailableForSaleSecuritiesDebtSecurities_5ab305fa-195a-59cf-c0de-4b5d05fc9de4" xlink:to="loc_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterOneYearBeforeTwoYearsFairValue_c33f1211-7603-eae8-f8dc-e67d2be949b1" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterTwoYearsBeforeThreeYearsFairValue" xlink:label="loc_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterTwoYearsBeforeThreeYearsFairValue_b92a1e79-ef26-1fda-0a79-e67d2bf7ce81" xlink:type="locator" />
    <link:calculationArc order="3" weight="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_AvailableForSaleSecuritiesDebtSecurities_5ab305fa-195a-59cf-c0de-4b5d05fc9de4" xlink:to="loc_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterTwoYearsBeforeThreeYearsFairValue_b92a1e79-ef26-1fda-0a79-e67d2bf7ce81" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterThreeYearsBeforeFourYearsFairValue" xlink:label="loc_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterThreeYearsBeforeFourYearsFairValue_a7ad3627-114f-bdcd-59a7-e67d2beb3a06" xlink:type="locator" />
    <link:calculationArc order="4" weight="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_AvailableForSaleSecuritiesDebtSecurities_5ab305fa-195a-59cf-c0de-4b5d05fc9de4" xlink:to="loc_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterThreeYearsBeforeFourYearsFairValue_a7ad3627-114f-bdcd-59a7-e67d2beb3a06" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterFourYearsBeforeFiveYearsFairValue" xlink:label="loc_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterFourYearsBeforeFiveYearsFairValue_066a397a-959c-2e52-b1dd-e67d2c083e0d" xlink:type="locator" />
    <link:calculationArc order="5" weight="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_AvailableForSaleSecuritiesDebtSecurities_5ab305fa-195a-59cf-c0de-4b5d05fc9de4" xlink:to="loc_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterFourYearsBeforeFiveYearsFairValue_066a397a-959c-2e52-b1dd-e67d2c083e0d" xlink:type="arc" />
  </link:calculationLink>
  <link:calculationLink xlink:role="http://cognex.com/role/CashCashEquivalentsAndInvestmentsGrossUnrealizedLossesAndFairValueForAvailableForSaleInvestmentsDetail" xlink:type="extended">
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionAccumulatedLoss" xlink:label="loc_us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionAccumulatedLoss_fae49264-8cd8-cd75-24c8-5deb13fb3298" xlink:type="locator" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionLessThan12MonthsAccumulatedLoss" xlink:label="loc_us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionLessThan12MonthsAccumulatedLoss_a2b26c5c-64f3-c94e-2a89-4348115e8a52" xlink:type="locator" />
    <link:calculationArc order="1" weight="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionAccumulatedLoss_fae49264-8cd8-cd75-24c8-5deb13fb3298" xlink:to="loc_us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionLessThan12MonthsAccumulatedLoss_a2b26c5c-64f3-c94e-2a89-4348115e8a52" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPosition12MonthsOrLongerAccumulatedLoss" xlink:label="loc_us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPosition12MonthsOrLongerAccumulatedLoss_fdcdc5e9-d791-824c-e870-84106782383a" xlink:type="locator" />
    <link:calculationArc order="2" weight="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionAccumulatedLoss_fae49264-8cd8-cd75-24c8-5deb13fb3298" xlink:to="loc_us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPosition12MonthsOrLongerAccumulatedLoss_fdcdc5e9-d791-824c-e870-84106782383a" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionFairValue" xlink:label="loc_us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionFairValue_21dbd9b5-9402-9b48-c80f-55c05859049a" xlink:type="locator" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionTwelveMonthsOrLongerFairValue" xlink:label="loc_us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionTwelveMonthsOrLongerFairValue_2ec346ac-a553-2cef-6e17-f2c22a07e160" xlink:type="locator" />
    <link:calculationArc order="1" weight="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionFairValue_21dbd9b5-9402-9b48-c80f-55c05859049a" xlink:to="loc_us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionTwelveMonthsOrLongerFairValue_2ec346ac-a553-2cef-6e17-f2c22a07e160" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionLessThanTwelveMonthsFairValue" xlink:label="loc_us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionLessThanTwelveMonthsFairValue_e991d53f-4f66-a242-d5d9-e6c95927fda6" xlink:type="locator" />
    <link:calculationArc order="2" weight="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionFairValue_21dbd9b5-9402-9b48-c80f-55c05859049a" xlink:to="loc_us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionLessThanTwelveMonthsFairValue_e991d53f-4f66-a242-d5d9-e6c95927fda6" xlink:type="arc" />
  </link:calculationLink>
  <link:calculationLink xlink:role="http://cognex.com/role/CashCashEquivalentsAndInvestmentsTables" xlink:type="extended" />
  <link:calculationLink xlink:role="http://cognex.com/role/CommitmentsAndContingencies" xlink:type="extended" />
  <link:calculationLink xlink:role="http://cognex.com/role/CommitmentsAndContingenciesAdditionalInformationDetail" xlink:type="extended" />
  <link:calculationLink xlink:role="http://cognex.com/role/ConsolidatedBalanceSheets" xlink:type="extended">
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_Assets" xlink:label="loc_us-gaap_Assets_96dd7052-744e-d270-4e77-67944ec39152" xlink:type="locator" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_AssetsCurrent" xlink:label="loc_us-gaap_AssetsCurrent_d79dcc1c-93de-0ecd-2bd5-7c1f224c9b98" xlink:type="locator" />
    <link:calculationArc order="1" weight="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_Assets_96dd7052-744e-d270-4e77-67944ec39152" xlink:to="loc_us-gaap_AssetsCurrent_d79dcc1c-93de-0ecd-2bd5-7c1f224c9b98" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_CashAndCashEquivalentsAtCarryingValue" xlink:label="loc_us-gaap_CashAndCashEquivalentsAtCarryingValue_32f41ea9-05c6-e713-464b-586a571d1c1f" xlink:type="locator" />
    <link:calculationArc order="1" weight="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_AssetsCurrent_d79dcc1c-93de-0ecd-2bd5-7c1f224c9b98" xlink:to="loc_us-gaap_CashAndCashEquivalentsAtCarryingValue_32f41ea9-05c6-e713-464b-586a571d1c1f" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_AvailableForSaleSecuritiesDebtSecuritiesCurrent" xlink:label="loc_us-gaap_AvailableForSaleSecuritiesDebtSecuritiesCurrent_d32a2417-a96e-df92-8909-70df29d31528" xlink:type="locator" />
    <link:calculationArc order="2" weight="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_AssetsCurrent_d79dcc1c-93de-0ecd-2bd5-7c1f224c9b98" xlink:to="loc_us-gaap_AvailableForSaleSecuritiesDebtSecuritiesCurrent_d32a2417-a96e-df92-8909-70df29d31528" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_AccountsReceivableNetCurrent" xlink:label="loc_us-gaap_AccountsReceivableNetCurrent_928a1618-af56-709a-989c-a303706b8ca2" xlink:type="locator" />
    <link:calculationArc order="3" weight="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_AssetsCurrent_d79dcc1c-93de-0ecd-2bd5-7c1f224c9b98" xlink:to="loc_us-gaap_AccountsReceivableNetCurrent_928a1618-af56-709a-989c-a303706b8ca2" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_InventoryNet" xlink:label="loc_us-gaap_InventoryNet_66bcd79a-a1c3-c24d-b8b4-7a0ce373714b" xlink:type="locator" />
    <link:calculationArc order="4" weight="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_AssetsCurrent_d79dcc1c-93de-0ecd-2bd5-7c1f224c9b98" xlink:to="loc_us-gaap_InventoryNet_66bcd79a-a1c3-c24d-b8b4-7a0ce373714b" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_PrepaidExpenseAndOtherAssetsCurrent" xlink:label="loc_us-gaap_PrepaidExpenseAndOtherAssetsCurrent_ce9014ac-0ac4-6ed2-b53f-a0edc046d6b4" xlink:type="locator" />
    <link:calculationArc order="5" weight="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_AssetsCurrent_d79dcc1c-93de-0ecd-2bd5-7c1f224c9b98" xlink:to="loc_us-gaap_PrepaidExpenseAndOtherAssetsCurrent_ce9014ac-0ac4-6ed2-b53f-a0edc046d6b4" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_UnbilledReceivablesCurrent" xlink:label="loc_us-gaap_UnbilledReceivablesCurrent_ecc5021c-19ea-d6df-450c-2c87b2ebe1e7" xlink:type="locator" />
    <link:calculationArc order="6" weight="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_AssetsCurrent_d79dcc1c-93de-0ecd-2bd5-7c1f224c9b98" xlink:to="loc_us-gaap_UnbilledReceivablesCurrent_ecc5021c-19ea-d6df-450c-2c87b2ebe1e7" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_LongTermInvestments" xlink:label="loc_us-gaap_LongTermInvestments_82393af8-00cf-c878-caac-887e4fcb1248" xlink:type="locator" />
    <link:calculationArc order="2" weight="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_Assets_96dd7052-744e-d270-4e77-67944ec39152" xlink:to="loc_us-gaap_LongTermInvestments_82393af8-00cf-c878-caac-887e4fcb1248" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_PropertyPlantAndEquipmentNet" xlink:label="loc_us-gaap_PropertyPlantAndEquipmentNet_f37ad080-c77a-efc5-c936-389b16abc420" xlink:type="locator" />
    <link:calculationArc order="3" weight="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_Assets_96dd7052-744e-d270-4e77-67944ec39152" xlink:to="loc_us-gaap_PropertyPlantAndEquipmentNet_f37ad080-c77a-efc5-c936-389b16abc420" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_DeferredTaxAssetsNetNoncurrent" xlink:label="loc_us-gaap_DeferredTaxAssetsNetNoncurrent_6ef07cd6-1898-c9c0-4e60-ee328fe006a8" xlink:type="locator" />
    <link:calculationArc order="4" weight="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_Assets_96dd7052-744e-d270-4e77-67944ec39152" xlink:to="loc_us-gaap_DeferredTaxAssetsNetNoncurrent_6ef07cd6-1898-c9c0-4e60-ee328fe006a8" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_IntangibleAssetsNetExcludingGoodwill" xlink:label="loc_us-gaap_IntangibleAssetsNetExcludingGoodwill_af012273-e8ee-655c-daa2-86b96989d377" xlink:type="locator" />
    <link:calculationArc order="5" weight="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_Assets_96dd7052-744e-d270-4e77-67944ec39152" xlink:to="loc_us-gaap_IntangibleAssetsNetExcludingGoodwill_af012273-e8ee-655c-daa2-86b96989d377" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_Goodwill" xlink:label="loc_us-gaap_Goodwill_831ad0b9-9dba-3997-20e6-e99a19aa28db" xlink:type="locator" />
    <link:calculationArc order="6" weight="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_Assets_96dd7052-744e-d270-4e77-67944ec39152" xlink:to="loc_us-gaap_Goodwill_831ad0b9-9dba-3997-20e6-e99a19aa28db" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_OtherAssetsNoncurrent" xlink:label="loc_us-gaap_OtherAssetsNoncurrent_ddb0d184-2205-2a10-5b0e-faf2ccd717ae" xlink:type="locator" />
    <link:calculationArc order="7" weight="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_Assets_96dd7052-744e-d270-4e77-67944ec39152" xlink:to="loc_us-gaap_OtherAssetsNoncurrent_ddb0d184-2205-2a10-5b0e-faf2ccd717ae" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_OperatingLeaseRightOfUseAsset" xlink:label="loc_us-gaap_OperatingLeaseRightOfUseAsset_52f5671e-53e6-6055-795e-6bd414fd86c2" xlink:type="locator" />
    <link:calculationArc order="8" weight="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_Assets_96dd7052-744e-d270-4e77-67944ec39152" xlink:to="loc_us-gaap_OperatingLeaseRightOfUseAsset_52f5671e-53e6-6055-795e-6bd414fd86c2" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_LiabilitiesAndStockholdersEquity" xlink:label="loc_us-gaap_LiabilitiesAndStockholdersEquity_63817d40-f759-fa9c-45a5-8bbbb36ed5c9" xlink:type="locator" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_Liabilities" xlink:label="loc_us-gaap_Liabilities_066608da-f041-4af6-3da0-95354b640e11" xlink:type="locator" />
    <link:calculationArc order="1" weight="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_LiabilitiesAndStockholdersEquity_63817d40-f759-fa9c-45a5-8bbbb36ed5c9" xlink:to="loc_us-gaap_Liabilities_066608da-f041-4af6-3da0-95354b640e11" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_LiabilitiesCurrent" xlink:label="loc_us-gaap_LiabilitiesCurrent_2dcbbde2-9146-a0ba-7f6c-c71b481e0841" xlink:type="locator" />
    <link:calculationArc order="1" weight="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_Liabilities_066608da-f041-4af6-3da0-95354b640e11" xlink:to="loc_us-gaap_LiabilitiesCurrent_2dcbbde2-9146-a0ba-7f6c-c71b481e0841" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_AccountsPayableCurrent" xlink:label="loc_us-gaap_AccountsPayableCurrent_c2c48170-d0ff-2c37-effc-ff5f53e30dcb" xlink:type="locator" />
    <link:calculationArc order="1" weight="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_LiabilitiesCurrent_2dcbbde2-9146-a0ba-7f6c-c71b481e0841" xlink:to="loc_us-gaap_AccountsPayableCurrent_c2c48170-d0ff-2c37-effc-ff5f53e30dcb" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_AccruedLiabilitiesCurrent" xlink:label="loc_us-gaap_AccruedLiabilitiesCurrent_8422f2c5-408e-d123-b935-f3115e023941" xlink:type="locator" />
    <link:calculationArc order="2" weight="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_LiabilitiesCurrent_2dcbbde2-9146-a0ba-7f6c-c71b481e0841" xlink:to="loc_us-gaap_AccruedLiabilitiesCurrent_8422f2c5-408e-d123-b935-f3115e023941" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_AccruedIncomeTaxesCurrent" xlink:label="loc_us-gaap_AccruedIncomeTaxesCurrent_d1997c77-9fc6-cbee-b2e4-9f642058c98e" xlink:type="locator" />
    <link:calculationArc order="3" weight="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_LiabilitiesCurrent_2dcbbde2-9146-a0ba-7f6c-c71b481e0841" xlink:to="loc_us-gaap_AccruedIncomeTaxesCurrent_d1997c77-9fc6-cbee-b2e4-9f642058c98e" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ContractWithCustomerLiabilityCurrent" xlink:label="loc_us-gaap_ContractWithCustomerLiabilityCurrent_1beea529-7ff9-f264-77a3-b82530469f83" xlink:type="locator" />
    <link:calculationArc order="4" weight="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_LiabilitiesCurrent_2dcbbde2-9146-a0ba-7f6c-c71b481e0841" xlink:to="loc_us-gaap_ContractWithCustomerLiabilityCurrent_1beea529-7ff9-f264-77a3-b82530469f83" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_OperatingLeaseLiabilityCurrent" xlink:label="loc_us-gaap_OperatingLeaseLiabilityCurrent_09c9f846-159b-1776-fceb-d1cad0eb94ab" xlink:type="locator" />
    <link:calculationArc order="5" weight="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_LiabilitiesCurrent_2dcbbde2-9146-a0ba-7f6c-c71b481e0841" xlink:to="loc_us-gaap_OperatingLeaseLiabilityCurrent_09c9f846-159b-1776-fceb-d1cad0eb94ab" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_DeferredIncomeTaxLiabilitiesNet" xlink:label="loc_us-gaap_DeferredIncomeTaxLiabilitiesNet_d3ba3006-9df7-8186-2eb2-dc5094562cfe" xlink:type="locator" />
    <link:calculationArc order="2" weight="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_Liabilities_066608da-f041-4af6-3da0-95354b640e11" xlink:to="loc_us-gaap_DeferredIncomeTaxLiabilitiesNet_d3ba3006-9df7-8186-2eb2-dc5094562cfe" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_LiabilityForUncertainTaxPositionsNoncurrent" xlink:label="loc_us-gaap_LiabilityForUncertainTaxPositionsNoncurrent_cf3ef1c3-1c9a-2919-ed18-e1de3345a129" xlink:type="locator" />
    <link:calculationArc order="3" weight="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_Liabilities_066608da-f041-4af6-3da0-95354b640e11" xlink:to="loc_us-gaap_LiabilityForUncertainTaxPositionsNoncurrent_cf3ef1c3-1c9a-2919-ed18-e1de3345a129" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_AccruedIncomeTaxesNoncurrent" xlink:label="loc_us-gaap_AccruedIncomeTaxesNoncurrent_038eb834-7e54-623e-3e06-083f07a31a1f" xlink:type="locator" />
    <link:calculationArc order="4" weight="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_Liabilities_066608da-f041-4af6-3da0-95354b640e11" xlink:to="loc_us-gaap_AccruedIncomeTaxesNoncurrent_038eb834-7e54-623e-3e06-083f07a31a1f" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_OtherLiabilitiesNoncurrent" xlink:label="loc_us-gaap_OtherLiabilitiesNoncurrent_bba08e5f-78e8-6c25-01a4-6720051135cc" xlink:type="locator" />
    <link:calculationArc order="5" weight="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_Liabilities_066608da-f041-4af6-3da0-95354b640e11" xlink:to="loc_us-gaap_OtherLiabilitiesNoncurrent_bba08e5f-78e8-6c25-01a4-6720051135cc" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_OperatingLeaseLiabilityNoncurrent" xlink:label="loc_us-gaap_OperatingLeaseLiabilityNoncurrent_7e28dff2-da63-21d2-137e-ce9d56cb1b6e" xlink:type="locator" />
    <link:calculationArc order="6" weight="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_Liabilities_066608da-f041-4af6-3da0-95354b640e11" xlink:to="loc_us-gaap_OperatingLeaseLiabilityNoncurrent_7e28dff2-da63-21d2-137e-ce9d56cb1b6e" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_CommitmentsAndContingencies" xlink:label="loc_us-gaap_CommitmentsAndContingencies_f0c68f4f-7ec1-d447-8ba7-0f2766abbe67" xlink:type="locator" />
    <link:calculationArc order="2" weight="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_LiabilitiesAndStockholdersEquity_63817d40-f759-fa9c-45a5-8bbbb36ed5c9" xlink:to="loc_us-gaap_CommitmentsAndContingencies_f0c68f4f-7ec1-d447-8ba7-0f2766abbe67" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_StockholdersEquity" xlink:label="loc_us-gaap_StockholdersEquity_6765f135-8c69-bebc-a116-d59a52a5b2f2" xlink:type="locator" />
    <link:calculationArc order="3" weight="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_LiabilitiesAndStockholdersEquity_63817d40-f759-fa9c-45a5-8bbbb36ed5c9" xlink:to="loc_us-gaap_StockholdersEquity_6765f135-8c69-bebc-a116-d59a52a5b2f2" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_CommonStockValueOutstanding" xlink:label="loc_us-gaap_CommonStockValueOutstanding_55fda19b-3ba6-61b5-220d-6f7ed397180a" xlink:type="locator" />
    <link:calculationArc order="1" weight="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_StockholdersEquity_6765f135-8c69-bebc-a116-d59a52a5b2f2" xlink:to="loc_us-gaap_CommonStockValueOutstanding_55fda19b-3ba6-61b5-220d-6f7ed397180a" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_AdditionalPaidInCapitalCommonStock" xlink:label="loc_us-gaap_AdditionalPaidInCapitalCommonStock_df284507-8ac7-eed1-41db-05e81b70be6d" xlink:type="locator" />
    <link:calculationArc order="2" weight="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_StockholdersEquity_6765f135-8c69-bebc-a116-d59a52a5b2f2" xlink:to="loc_us-gaap_AdditionalPaidInCapitalCommonStock_df284507-8ac7-eed1-41db-05e81b70be6d" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_RetainedEarningsAccumulatedDeficit" xlink:label="loc_us-gaap_RetainedEarningsAccumulatedDeficit_a59bc5ae-63a0-c9bc-32f7-e2bd9f32bd26" xlink:type="locator" />
    <link:calculationArc order="3" weight="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_StockholdersEquity_6765f135-8c69-bebc-a116-d59a52a5b2f2" xlink:to="loc_us-gaap_RetainedEarningsAccumulatedDeficit_a59bc5ae-63a0-c9bc-32f7-e2bd9f32bd26" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax" xlink:label="loc_us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax_798442bf-12e1-d944-3fa1-8b797b67482e" xlink:type="locator" />
    <link:calculationArc order="4" weight="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_StockholdersEquity_6765f135-8c69-bebc-a116-d59a52a5b2f2" xlink:to="loc_us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax_798442bf-12e1-d944-3fa1-8b797b67482e" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_PreferredStockValueOutstanding" xlink:label="loc_us-gaap_PreferredStockValueOutstanding_84969fe3-08fd-b500-b7ad-ebd7bf4d768b" xlink:type="locator" />
    <link:calculationArc order="5" weight="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_StockholdersEquity_6765f135-8c69-bebc-a116-d59a52a5b2f2" xlink:to="loc_us-gaap_PreferredStockValueOutstanding_84969fe3-08fd-b500-b7ad-ebd7bf4d768b" xlink:type="arc" />
  </link:calculationLink>
  <link:calculationLink xlink:role="http://cognex.com/role/ConsolidatedBalanceSheetsParenthetical" xlink:type="extended" />
  <link:calculationLink xlink:role="http://cognex.com/role/ConsolidatedStatementsOfCashFlows" xlink:type="extended">
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_CashAndCashEquivalentsPeriodIncreaseDecrease" xlink:label="loc_us-gaap_CashAndCashEquivalentsPeriodIncreaseDecrease_ad8f5587-cd30-97dd-9cf0-81ed4f58516c" xlink:type="locator" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_NetCashProvidedByUsedInOperatingActivities" xlink:label="loc_us-gaap_NetCashProvidedByUsedInOperatingActivities_1bd0bd4e-4a6f-b052-029c-0ecb0c520251" xlink:type="locator" />
    <link:calculationArc order="1" weight="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_CashAndCashEquivalentsPeriodIncreaseDecrease_ad8f5587-cd30-97dd-9cf0-81ed4f58516c" xlink:to="loc_us-gaap_NetCashProvidedByUsedInOperatingActivities_1bd0bd4e-4a6f-b052-029c-0ecb0c520251" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets" xlink:label="loc_us-gaap_IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets_0e4168a9-901d-abb5-15c0-3622e9e2c070" xlink:type="locator" />
    <link:calculationArc order="1" weight="-1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_NetCashProvidedByUsedInOperatingActivities_1bd0bd4e-4a6f-b052-029c-0ecb0c520251" xlink:to="loc_us-gaap_IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets_0e4168a9-901d-abb5-15c0-3622e9e2c070" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_NetIncomeLoss" xlink:label="loc_us-gaap_NetIncomeLoss_a10eea14-f4db-3125-d183-77bb54500e95" xlink:type="locator" />
    <link:calculationArc order="2" weight="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_NetCashProvidedByUsedInOperatingActivities_1bd0bd4e-4a6f-b052-029c-0ecb0c520251" xlink:to="loc_us-gaap_NetIncomeLoss_a10eea14-f4db-3125-d183-77bb54500e95" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_StockOptionPlanExpense" xlink:label="loc_us-gaap_StockOptionPlanExpense_22605f61-55b5-fe3c-1a76-a8616250b25f" xlink:type="locator" />
    <link:calculationArc order="3" weight="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_NetCashProvidedByUsedInOperatingActivities_1bd0bd4e-4a6f-b052-029c-0ecb0c520251" xlink:to="loc_us-gaap_StockOptionPlanExpense_22605f61-55b5-fe3c-1a76-a8616250b25f" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_Depreciation" xlink:label="loc_us-gaap_Depreciation_38b416a4-4707-fba3-1084-9b8a37fd745a" xlink:type="locator" />
    <link:calculationArc order="4" weight="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_NetCashProvidedByUsedInOperatingActivities_1bd0bd4e-4a6f-b052-029c-0ecb0c520251" xlink:to="loc_us-gaap_Depreciation_38b416a4-4707-fba3-1084-9b8a37fd745a" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_AmortizationOfIntangibleAssets" xlink:label="loc_us-gaap_AmortizationOfIntangibleAssets_afd0f625-a29a-3806-bad0-ad0ca19e7015" xlink:type="locator" />
    <link:calculationArc order="5" weight="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_NetCashProvidedByUsedInOperatingActivities_1bd0bd4e-4a6f-b052-029c-0ecb0c520251" xlink:to="loc_us-gaap_AmortizationOfIntangibleAssets_afd0f625-a29a-3806-bad0-ad0ca19e7015" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_AssetImpairmentCharges" xlink:label="loc_us-gaap_AssetImpairmentCharges_45c69f9e-da88-288e-46e4-172c1cc97df8" xlink:type="locator" />
    <link:calculationArc order="6" weight="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_NetCashProvidedByUsedInOperatingActivities_1bd0bd4e-4a6f-b052-029c-0ecb0c520251" xlink:to="loc_us-gaap_AssetImpairmentCharges_45c69f9e-da88-288e-46e4-172c1cc97df8" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_AccretionAmortizationOfDiscountsAndPremiumsInvestments" xlink:label="loc_us-gaap_AccretionAmortizationOfDiscountsAndPremiumsInvestments_4f3832d5-e2fd-470b-5e04-ece38e7ab02d" xlink:type="locator" />
    <link:calculationArc order="7" weight="-1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_NetCashProvidedByUsedInOperatingActivities_1bd0bd4e-4a6f-b052-029c-0ecb0c520251" xlink:to="loc_us-gaap_AccretionAmortizationOfDiscountsAndPremiumsInvestments_4f3832d5-e2fd-470b-5e04-ece38e7ab02d" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_GainLossOnSaleOfInvestments" xlink:label="loc_us-gaap_GainLossOnSaleOfInvestments_3589939f-ce38-3d4c-b787-38d24b24727b" xlink:type="locator" />
    <link:calculationArc order="8" weight="-1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_NetCashProvidedByUsedInOperatingActivities_1bd0bd4e-4a6f-b052-029c-0ecb0c520251" xlink:to="loc_us-gaap_GainLossOnSaleOfInvestments_3589939f-ce38-3d4c-b787-38d24b24727b" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1" xlink:label="loc_us-gaap_BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1_9dbcf839-4ba1-0e2b-8942-4c8a9981ac5b" xlink:type="locator" />
    <link:calculationArc order="9" weight="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_NetCashProvidedByUsedInOperatingActivities_1bd0bd4e-4a6f-b052-029c-0ecb0c520251" xlink:to="loc_us-gaap_BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1_9dbcf839-4ba1-0e2b-8942-4c8a9981ac5b" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_IncreaseDecreaseInDeferredIncomeTaxes" xlink:label="loc_us-gaap_IncreaseDecreaseInDeferredIncomeTaxes_852a0148-80e8-01e7-45e2-04986579e466" xlink:type="locator" />
    <link:calculationArc order="10" weight="-1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_NetCashProvidedByUsedInOperatingActivities_1bd0bd4e-4a6f-b052-029c-0ecb0c520251" xlink:to="loc_us-gaap_IncreaseDecreaseInDeferredIncomeTaxes_852a0148-80e8-01e7-45e2-04986579e466" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_IncreaseDecreaseInAccountsReceivable" xlink:label="loc_us-gaap_IncreaseDecreaseInAccountsReceivable_5f96c19e-85fe-99f6-cec0-c2c9d7470ed4" xlink:type="locator" />
    <link:calculationArc order="11" weight="-1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_NetCashProvidedByUsedInOperatingActivities_1bd0bd4e-4a6f-b052-029c-0ecb0c520251" xlink:to="loc_us-gaap_IncreaseDecreaseInAccountsReceivable_5f96c19e-85fe-99f6-cec0-c2c9d7470ed4" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_IncreaseDecreaseInUnbilledReceivables" xlink:label="loc_us-gaap_IncreaseDecreaseInUnbilledReceivables_41adfb2c-6577-a630-96b7-f1964f7d3890" xlink:type="locator" />
    <link:calculationArc order="12" weight="-1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_NetCashProvidedByUsedInOperatingActivities_1bd0bd4e-4a6f-b052-029c-0ecb0c520251" xlink:to="loc_us-gaap_IncreaseDecreaseInUnbilledReceivables_41adfb2c-6577-a630-96b7-f1964f7d3890" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_IncreaseDecreaseInInventories" xlink:label="loc_us-gaap_IncreaseDecreaseInInventories_334f1d33-7cae-7fd2-9d83-bb387fc2f3dd" xlink:type="locator" />
    <link:calculationArc order="13" weight="-1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_NetCashProvidedByUsedInOperatingActivities_1bd0bd4e-4a6f-b052-029c-0ecb0c520251" xlink:to="loc_us-gaap_IncreaseDecreaseInInventories_334f1d33-7cae-7fd2-9d83-bb387fc2f3dd" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_IncreaseDecreaseInAccountsPayable" xlink:label="loc_us-gaap_IncreaseDecreaseInAccountsPayable_0a39d2ee-656d-ead5-a676-41794b4da8f4" xlink:type="locator" />
    <link:calculationArc order="14" weight="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_NetCashProvidedByUsedInOperatingActivities_1bd0bd4e-4a6f-b052-029c-0ecb0c520251" xlink:to="loc_us-gaap_IncreaseDecreaseInAccountsPayable_0a39d2ee-656d-ead5-a676-41794b4da8f4" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_IncreaseDecreaseInAccruedLiabilities" xlink:label="loc_us-gaap_IncreaseDecreaseInAccruedLiabilities_2d76eef5-dce5-0152-632e-9bab39da698c" xlink:type="locator" />
    <link:calculationArc order="15" weight="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_NetCashProvidedByUsedInOperatingActivities_1bd0bd4e-4a6f-b052-029c-0ecb0c520251" xlink:to="loc_us-gaap_IncreaseDecreaseInAccruedLiabilities_2d76eef5-dce5-0152-632e-9bab39da698c" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_IncreaseDecreaseInAccruedIncomeTaxesPayable" xlink:label="loc_us-gaap_IncreaseDecreaseInAccruedIncomeTaxesPayable_e69a15cf-ab4b-cbea-dc70-0b76971b08a1" xlink:type="locator" />
    <link:calculationArc order="16" weight="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_NetCashProvidedByUsedInOperatingActivities_1bd0bd4e-4a6f-b052-029c-0ecb0c520251" xlink:to="loc_us-gaap_IncreaseDecreaseInAccruedIncomeTaxesPayable_e69a15cf-ab4b-cbea-dc70-0b76971b08a1" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_IncreaseDecreaseInDeferredRevenueAndCustomerAdvancesAndDeposits" xlink:label="loc_us-gaap_IncreaseDecreaseInDeferredRevenueAndCustomerAdvancesAndDeposits_851a1884-38fc-34ec-e2ca-d6fc9f7a7f03" xlink:type="locator" />
    <link:calculationArc order="17" weight="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_NetCashProvidedByUsedInOperatingActivities_1bd0bd4e-4a6f-b052-029c-0ecb0c520251" xlink:to="loc_us-gaap_IncreaseDecreaseInDeferredRevenueAndCustomerAdvancesAndDeposits_851a1884-38fc-34ec-e2ca-d6fc9f7a7f03" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_IncreaseDecreaseInOtherOperatingCapitalNet" xlink:label="loc_us-gaap_IncreaseDecreaseInOtherOperatingCapitalNet_a9646808-098c-8496-e17a-df690055019e" xlink:type="locator" />
    <link:calculationArc order="18" weight="-1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_NetCashProvidedByUsedInOperatingActivities_1bd0bd4e-4a6f-b052-029c-0ecb0c520251" xlink:to="loc_us-gaap_IncreaseDecreaseInOtherOperatingCapitalNet_a9646808-098c-8496-e17a-df690055019e" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_NetCashProvidedByUsedInInvestingActivities" xlink:label="loc_us-gaap_NetCashProvidedByUsedInInvestingActivities_28655e34-499f-b7bf-c54f-5de0990d0c65" xlink:type="locator" />
    <link:calculationArc order="2" weight="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_CashAndCashEquivalentsPeriodIncreaseDecrease_ad8f5587-cd30-97dd-9cf0-81ed4f58516c" xlink:to="loc_us-gaap_NetCashProvidedByUsedInInvestingActivities_28655e34-499f-b7bf-c54f-5de0990d0c65" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_PaymentsToAcquireInvestments" xlink:label="loc_us-gaap_PaymentsToAcquireInvestments_94ef4f28-36c0-ebcc-c252-3b37968b424e" xlink:type="locator" />
    <link:calculationArc order="1" weight="-1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_NetCashProvidedByUsedInInvestingActivities_28655e34-499f-b7bf-c54f-5de0990d0c65" xlink:to="loc_us-gaap_PaymentsToAcquireInvestments_94ef4f28-36c0-ebcc-c252-3b37968b424e" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ProceedsFromSaleMaturityAndCollectionsOfInvestments" xlink:label="loc_us-gaap_ProceedsFromSaleMaturityAndCollectionsOfInvestments_a83cb8b7-22b0-ae08-9c13-0f3ffbed48d6" xlink:type="locator" />
    <link:calculationArc order="2" weight="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_NetCashProvidedByUsedInInvestingActivities_28655e34-499f-b7bf-c54f-5de0990d0c65" xlink:to="loc_us-gaap_ProceedsFromSaleMaturityAndCollectionsOfInvestments_a83cb8b7-22b0-ae08-9c13-0f3ffbed48d6" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_PaymentsToAcquirePropertyPlantAndEquipment" xlink:label="loc_us-gaap_PaymentsToAcquirePropertyPlantAndEquipment_6d89f221-3ede-36b2-fcad-4a4ce1606f6a" xlink:type="locator" />
    <link:calculationArc order="3" weight="-1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_NetCashProvidedByUsedInInvestingActivities_28655e34-499f-b7bf-c54f-5de0990d0c65" xlink:to="loc_us-gaap_PaymentsToAcquirePropertyPlantAndEquipment_6d89f221-3ede-36b2-fcad-4a4ce1606f6a" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired" xlink:label="loc_us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired_80abba07-181c-6ed2-349d-9d7dfc078eab" xlink:type="locator" />
    <link:calculationArc order="4" weight="-1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_NetCashProvidedByUsedInInvestingActivities_28655e34-499f-b7bf-c54f-5de0990d0c65" xlink:to="loc_us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired_80abba07-181c-6ed2-349d-9d7dfc078eab" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_PaymentsForProceedsFromBusinessesAndInterestInAffiliates" xlink:label="loc_us-gaap_PaymentsForProceedsFromBusinessesAndInterestInAffiliates_f5c47783-15bf-0621-8419-ec5b8f8df9dd" xlink:type="locator" />
    <link:calculationArc order="5" weight="-1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_NetCashProvidedByUsedInInvestingActivities_28655e34-499f-b7bf-c54f-5de0990d0c65" xlink:to="loc_us-gaap_PaymentsForProceedsFromBusinessesAndInterestInAffiliates_f5c47783-15bf-0621-8419-ec5b8f8df9dd" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_NetCashProvidedByUsedInFinancingActivities" xlink:label="loc_us-gaap_NetCashProvidedByUsedInFinancingActivities_d8917e24-06dd-060d-a290-e426c7895e54" xlink:type="locator" />
    <link:calculationArc order="3" weight="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_CashAndCashEquivalentsPeriodIncreaseDecrease_ad8f5587-cd30-97dd-9cf0-81ed4f58516c" xlink:to="loc_us-gaap_NetCashProvidedByUsedInFinancingActivities_d8917e24-06dd-060d-a290-e426c7895e54" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ProceedsFromIssuanceOfSharesUnderIncentiveAndShareBasedCompensationPlansIncludingStockOptions" xlink:label="loc_us-gaap_ProceedsFromIssuanceOfSharesUnderIncentiveAndShareBasedCompensationPlansIncludingStockOptions_ee462479-f066-2ef4-feb4-a24474e585e7" xlink:type="locator" />
    <link:calculationArc order="1" weight="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_NetCashProvidedByUsedInFinancingActivities_d8917e24-06dd-060d-a290-e426c7895e54" xlink:to="loc_us-gaap_ProceedsFromIssuanceOfSharesUnderIncentiveAndShareBasedCompensationPlansIncludingStockOptions_ee462479-f066-2ef4-feb4-a24474e585e7" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_PaymentsForRepurchaseOfCommonStock" xlink:label="loc_us-gaap_PaymentsForRepurchaseOfCommonStock_d4a92697-d008-996b-823a-bd9a56a04b3a" xlink:type="locator" />
    <link:calculationArc order="2" weight="-1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_NetCashProvidedByUsedInFinancingActivities_d8917e24-06dd-060d-a290-e426c7895e54" xlink:to="loc_us-gaap_PaymentsForRepurchaseOfCommonStock_d4a92697-d008-996b-823a-bd9a56a04b3a" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_PaymentsOfDividendsCommonStock" xlink:label="loc_us-gaap_PaymentsOfDividendsCommonStock_15de0c29-7f29-fc68-dcff-36f8e7ff06d8" xlink:type="locator" />
    <link:calculationArc order="3" weight="-1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_NetCashProvidedByUsedInFinancingActivities_d8917e24-06dd-060d-a290-e426c7895e54" xlink:to="loc_us-gaap_PaymentsOfDividendsCommonStock_15de0c29-7f29-fc68-dcff-36f8e7ff06d8" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_PaymentsForPreviousAcquisition" xlink:label="loc_us-gaap_PaymentsForPreviousAcquisition_15e0d59c-694f-a85a-bf05-43f9a919374e" xlink:type="locator" />
    <link:calculationArc order="4" weight="-1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_NetCashProvidedByUsedInFinancingActivities_d8917e24-06dd-060d-a290-e426c7895e54" xlink:to="loc_us-gaap_PaymentsForPreviousAcquisition_15e0d59c-694f-a85a-bf05-43f9a919374e" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_EffectOfExchangeRateOnCashAndCashEquivalents" xlink:label="loc_us-gaap_EffectOfExchangeRateOnCashAndCashEquivalents_e0089888-8677-d95e-95e6-00fe630f2dcb" xlink:type="locator" />
    <link:calculationArc order="4" weight="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_CashAndCashEquivalentsPeriodIncreaseDecrease_ad8f5587-cd30-97dd-9cf0-81ed4f58516c" xlink:to="loc_us-gaap_EffectOfExchangeRateOnCashAndCashEquivalents_e0089888-8677-d95e-95e6-00fe630f2dcb" xlink:type="arc" />
  </link:calculationLink>
  <link:calculationLink xlink:role="http://cognex.com/role/ConsolidatedStatementsOfComprehensiveIncome" xlink:type="extended">
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ComprehensiveIncomeNetOfTax" xlink:label="loc_us-gaap_ComprehensiveIncomeNetOfTax_cf605d39-9067-2f07-a6b5-7dfa6481009e" xlink:type="locator" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_NetIncomeLoss" xlink:label="loc_us-gaap_NetIncomeLoss_a10eea14-f4db-3125-d183-77bb54500e95" xlink:type="locator" />
    <link:calculationArc order="1" weight="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_ComprehensiveIncomeNetOfTax_cf605d39-9067-2f07-a6b5-7dfa6481009e" xlink:to="loc_us-gaap_NetIncomeLoss_a10eea14-f4db-3125-d183-77bb54500e95" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent" xlink:label="loc_us-gaap_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent_59645a08-ce25-9000-2f65-e4bfddb1182e" xlink:type="locator" />
    <link:calculationArc order="2" weight="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_ComprehensiveIncomeNetOfTax_cf605d39-9067-2f07-a6b5-7dfa6481009e" xlink:to="loc_us-gaap_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent_59645a08-ce25-9000-2f65-e4bfddb1182e" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_OtherComprehensiveIncomeLossDerivativesQualifyingAsHedgesNetOfTax" xlink:label="loc_us-gaap_OtherComprehensiveIncomeLossDerivativesQualifyingAsHedgesNetOfTax_f44275a4-2994-4281-73e3-0fa77d53374b" xlink:type="locator" />
    <link:calculationArc order="1" weight="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent_59645a08-ce25-9000-2f65-e4bfddb1182e" xlink:to="loc_us-gaap_OtherComprehensiveIncomeLossDerivativesQualifyingAsHedgesNetOfTax_f44275a4-2994-4281-73e3-0fa77d53374b" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_OtherComprehensiveIncomeUnrealizedGainLossOnDerivativesArisingDuringPeriodNetOfTax" xlink:label="loc_us-gaap_OtherComprehensiveIncomeUnrealizedGainLossOnDerivativesArisingDuringPeriodNetOfTax_048ec802-2790-a30d-0e9a-5c6f3e54d390" xlink:type="locator" />
    <link:calculationArc order="1" weight="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_OtherComprehensiveIncomeLossDerivativesQualifyingAsHedgesNetOfTax_f44275a4-2994-4281-73e3-0fa77d53374b" xlink:to="loc_us-gaap_OtherComprehensiveIncomeUnrealizedGainLossOnDerivativesArisingDuringPeriodNetOfTax_048ec802-2790-a30d-0e9a-5c6f3e54d390" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIOnDerivativesNetOfTax" xlink:label="loc_us-gaap_OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIOnDerivativesNetOfTax_1621a196-4a72-10b4-c544-c07605ff0ee5" xlink:type="locator" />
    <link:calculationArc order="2" weight="-1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_OtherComprehensiveIncomeLossDerivativesQualifyingAsHedgesNetOfTax_f44275a4-2994-4281-73e3-0fa77d53374b" xlink:to="loc_us-gaap_OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIOnDerivativesNetOfTax_1621a196-4a72-10b4-c544-c07605ff0ee5" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_OtherComprehensiveIncomeAvailableforsaleSecuritiesAdjustmentNetOfTaxPortionAttributableToParent" xlink:label="loc_us-gaap_OtherComprehensiveIncomeAvailableforsaleSecuritiesAdjustmentNetOfTaxPortionAttributableToParent_c7333cca-378d-a6fc-ae13-b512babfcdeb" xlink:type="locator" />
    <link:calculationArc order="2" weight="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent_59645a08-ce25-9000-2f65-e4bfddb1182e" xlink:to="loc_us-gaap_OtherComprehensiveIncomeAvailableforsaleSecuritiesAdjustmentNetOfTaxPortionAttributableToParent_c7333cca-378d-a6fc-ae13-b512babfcdeb" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_OtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax" xlink:label="loc_us-gaap_OtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax_7f6d9e2c-c748-5cf7-7279-5c01f0cb27b7" xlink:type="locator" />
    <link:calculationArc order="1" weight="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_OtherComprehensiveIncomeAvailableforsaleSecuritiesAdjustmentNetOfTaxPortionAttributableToParent_c7333cca-378d-a6fc-ae13-b512babfcdeb" xlink:to="loc_us-gaap_OtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax_7f6d9e2c-c748-5cf7-7279-5c01f0cb27b7" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax" xlink:label="loc_us-gaap_OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax_5018ac42-f22a-8f01-2030-b43a520a4ea1" xlink:type="locator" />
    <link:calculationArc order="2" weight="-1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_OtherComprehensiveIncomeAvailableforsaleSecuritiesAdjustmentNetOfTaxPortionAttributableToParent_c7333cca-378d-a6fc-ae13-b512babfcdeb" xlink:to="loc_us-gaap_OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax_5018ac42-f22a-8f01-2030-b43a520a4ea1" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent" xlink:label="loc_us-gaap_OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent_29b707e4-876d-47bd-8655-71c027f42964" xlink:type="locator" />
    <link:calculationArc order="3" weight="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent_59645a08-ce25-9000-2f65-e4bfddb1182e" xlink:to="loc_us-gaap_OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent_29b707e4-876d-47bd-8655-71c027f42964" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax" xlink:label="loc_us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax_b087c8bb-e0f6-4c7f-883c-027f52d32745" xlink:type="locator" />
    <link:calculationArc order="1" weight="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent_29b707e4-876d-47bd-8655-71c027f42964" xlink:to="loc_us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax_b087c8bb-e0f6-4c7f-883c-027f52d32745" xlink:type="arc" />
  </link:calculationLink>
  <link:calculationLink xlink:role="http://cognex.com/role/ConsolidatedStatementsOfComprehensiveIncomeParenthetical" xlink:type="extended" />
  <link:calculationLink xlink:role="http://cognex.com/role/ConsolidatedStatementsOfOperations" xlink:type="extended">
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_NetIncomeLoss" xlink:label="loc_us-gaap_NetIncomeLoss_a10eea14-f4db-3125-d183-77bb54500e95" xlink:type="locator" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_EarningsPerShareDiluted" xlink:label="loc_us-gaap_EarningsPerShareDiluted_40f1fc5c-8b65-4746-cdb0-c2a06553cc3f" xlink:type="locator" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_EarningsPerShareBasic" xlink:label="loc_us-gaap_EarningsPerShareBasic_2e12b455-2439-5ef9-0bdd-e47924f55d69" xlink:type="locator" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments" xlink:label="loc_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments_19dfad62-5a43-dcc4-04a8-012732c1ed97" xlink:type="locator" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_OperatingIncomeLoss" xlink:label="loc_us-gaap_OperatingIncomeLoss_5c890570-5904-7978-36d8-35b96dcf45ab" xlink:type="locator" />
    <link:calculationArc order="1" weight="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments_19dfad62-5a43-dcc4-04a8-012732c1ed97" xlink:to="loc_us-gaap_OperatingIncomeLoss_5c890570-5904-7978-36d8-35b96dcf45ab" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_GrossProfit" xlink:label="loc_us-gaap_GrossProfit_df00e688-c7aa-f044-9cba-c48e7c14e35b" xlink:type="locator" />
    <link:calculationArc order="1" weight="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_OperatingIncomeLoss_5c890570-5904-7978-36d8-35b96dcf45ab" xlink:to="loc_us-gaap_GrossProfit_df00e688-c7aa-f044-9cba-c48e7c14e35b" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax" xlink:label="loc_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax_1c604cfe-da19-5194-72b6-98be0130cfb7" xlink:type="locator" />
    <link:calculationArc order="1" weight="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_GrossProfit_df00e688-c7aa-f044-9cba-c48e7c14e35b" xlink:to="loc_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax_1c604cfe-da19-5194-72b6-98be0130cfb7" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_CostOfGoodsAndServicesSold" xlink:label="loc_us-gaap_CostOfGoodsAndServicesSold_1c65a201-fd8e-32d7-dad9-c6d1d5719594" xlink:type="locator" />
    <link:calculationArc order="2" weight="-1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_GrossProfit_df00e688-c7aa-f044-9cba-c48e7c14e35b" xlink:to="loc_us-gaap_CostOfGoodsAndServicesSold_1c65a201-fd8e-32d7-dad9-c6d1d5719594" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ResearchAndDevelopmentExpense" xlink:label="loc_us-gaap_ResearchAndDevelopmentExpense_11c9d7e5-c56e-e78a-ae7b-17989a817204" xlink:type="locator" />
    <link:calculationArc order="2" weight="-1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_OperatingIncomeLoss_5c890570-5904-7978-36d8-35b96dcf45ab" xlink:to="loc_us-gaap_ResearchAndDevelopmentExpense_11c9d7e5-c56e-e78a-ae7b-17989a817204" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_SellingGeneralAndAdministrativeExpense" xlink:label="loc_us-gaap_SellingGeneralAndAdministrativeExpense_693c47dd-e6fa-9c85-6a65-7baa26f76b5e" xlink:type="locator" />
    <link:calculationArc order="3" weight="-1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_OperatingIncomeLoss_5c890570-5904-7978-36d8-35b96dcf45ab" xlink:to="loc_us-gaap_SellingGeneralAndAdministrativeExpense_693c47dd-e6fa-9c85-6a65-7baa26f76b5e" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ForeignCurrencyTransactionGainLossBeforeTax" xlink:label="loc_us-gaap_ForeignCurrencyTransactionGainLossBeforeTax_743ecb1a-adc1-2b63-ff24-350f33c715bd" xlink:type="locator" />
    <link:calculationArc order="2" weight="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments_19dfad62-5a43-dcc4-04a8-012732c1ed97" xlink:to="loc_us-gaap_ForeignCurrencyTransactionGainLossBeforeTax_743ecb1a-adc1-2b63-ff24-350f33c715bd" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_InvestmentIncomeNonoperating" xlink:label="loc_us-gaap_InvestmentIncomeNonoperating_41f55a94-ade0-0e57-7055-ac01c4897210" xlink:type="locator" />
    <link:calculationArc order="3" weight="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments_19dfad62-5a43-dcc4-04a8-012732c1ed97" xlink:to="loc_us-gaap_InvestmentIncomeNonoperating_41f55a94-ade0-0e57-7055-ac01c4897210" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_OtherNonoperatingIncomeExpense" xlink:label="loc_us-gaap_OtherNonoperatingIncomeExpense_41e96f8d-e499-8de8-69a8-27f1c7d4df6e" xlink:type="locator" />
    <link:calculationArc order="4" weight="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments_19dfad62-5a43-dcc4-04a8-012732c1ed97" xlink:to="loc_us-gaap_OtherNonoperatingIncomeExpense_41e96f8d-e499-8de8-69a8-27f1c7d4df6e" xlink:type="arc" />
  </link:calculationLink>
  <link:calculationLink xlink:role="http://cognex.com/role/ConsolidatedStatementsOfOperationsParenthetical" xlink:type="extended" />
  <link:calculationLink xlink:role="http://cognex.com/role/ConsolidatedStatementsOfShareholdersEquity" xlink:type="extended" />
  <link:calculationLink xlink:role="http://cognex.com/role/ConsolidatedStatementsOfShareholdersEquityParenthetical" xlink:type="extended" />
  <link:calculationLink xlink:role="http://cognex.com/role/CoverPage" xlink:type="extended" />
  <link:calculationLink xlink:role="http://cognex.com/role/DerivativeInstruments" xlink:type="extended" />
  <link:calculationLink xlink:role="http://cognex.com/role/DerivativeInstrumentsAdditionalDetailsDetails" xlink:type="extended" />
  <link:calculationLink xlink:role="http://cognex.com/role/DerivativeInstrumentsAssetsAndLiabilitiesPresentedOnNetBasisDueToRightOfOffsetDetails" xlink:type="extended">
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_DerivativeLiabilities" xlink:label="loc_us-gaap_DerivativeLiabilities_7e8e10f8-8ddc-2b6a-eea7-ea4d306368a1" xlink:type="locator" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_DerivativeFairValueOfDerivativeLiability" xlink:label="loc_us-gaap_DerivativeFairValueOfDerivativeLiability_c526cec7-2a96-da82-2b5c-b252c3ef64fd" xlink:type="locator" />
    <link:calculationArc order="1" weight="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_DerivativeLiabilities_7e8e10f8-8ddc-2b6a-eea7-ea4d306368a1" xlink:to="loc_us-gaap_DerivativeFairValueOfDerivativeLiability_c526cec7-2a96-da82-2b5c-b252c3ef64fd" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_DerivativeLiabilityCollateralRightToReclaimCashOffset" xlink:label="loc_us-gaap_DerivativeLiabilityCollateralRightToReclaimCashOffset_3627b015-7039-b6a2-2638-00dd3c96b55c" xlink:type="locator" />
    <link:calculationArc order="2" weight="-1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_DerivativeLiabilities_7e8e10f8-8ddc-2b6a-eea7-ea4d306368a1" xlink:to="loc_us-gaap_DerivativeLiabilityCollateralRightToReclaimCashOffset_3627b015-7039-b6a2-2638-00dd3c96b55c" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_DerivativeAssets" xlink:label="loc_us-gaap_DerivativeAssets_082aa8c2-a051-1bb7-d441-a6d93b3f45f4" xlink:type="locator" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_DerivativeFairValueOfDerivativeAsset" xlink:label="loc_us-gaap_DerivativeFairValueOfDerivativeAsset_039063f0-a070-e7c0-00b9-9f969b70b0e3" xlink:type="locator" />
    <link:calculationArc order="1" weight="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_DerivativeAssets_082aa8c2-a051-1bb7-d441-a6d93b3f45f4" xlink:to="loc_us-gaap_DerivativeFairValueOfDerivativeAsset_039063f0-a070-e7c0-00b9-9f969b70b0e3" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_DerivativeAssetCollateralObligationToReturnCashOffset" xlink:label="loc_us-gaap_DerivativeAssetCollateralObligationToReturnCashOffset_e513d7ed-b3d5-61e2-974c-160174293bc0" xlink:type="locator" />
    <link:calculationArc order="2" weight="-1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_DerivativeAssets_082aa8c2-a051-1bb7-d441-a6d93b3f45f4" xlink:to="loc_us-gaap_DerivativeAssetCollateralObligationToReturnCashOffset_e513d7ed-b3d5-61e2-974c-160174293bc0" xlink:type="arc" />
  </link:calculationLink>
  <link:calculationLink xlink:role="http://cognex.com/role/DerivativeInstrumentsBalanceSheetLocationDetails" xlink:type="extended" />
  <link:calculationLink xlink:role="http://cognex.com/role/DerivativeInstrumentsChangesInAociDetails" xlink:type="extended" />
  <link:calculationLink xlink:role="http://cognex.com/role/DerivativeInstrumentsGainLossRecognizedInOtherComprehensiveIncomeLossDetails" xlink:type="extended" />
  <link:calculationLink xlink:role="http://cognex.com/role/DerivativeInstrumentsOutstandingForwardContractsDetails" xlink:type="extended" />
  <link:calculationLink xlink:role="http://cognex.com/role/DerivativeInstrumentsTables" xlink:type="extended" />
  <link:calculationLink xlink:role="http://cognex.com/role/EmployeeSavingsPlan" xlink:type="extended" />
  <link:calculationLink xlink:role="http://cognex.com/role/EmployeeSavingsPlanAdditionalInformationDetail" xlink:type="extended">
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_CompanyContributionsVestAtEndOfFourYears" xlink:label="loc_cgnx_CompanyContributionsVestAtEndOfFourYears_d1eedd11-263c-ed7c-0060-8095b79e08c6" xlink:type="locator" />
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_CompanyContributionsVestAtEndOfTwoYear" xlink:label="loc_cgnx_CompanyContributionsVestAtEndOfTwoYear_c1966fb6-d9b6-8781-56b5-8095b79aaa6b" xlink:type="locator" />
    <link:calculationArc order="1" weight="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_cgnx_CompanyContributionsVestAtEndOfFourYears_d1eedd11-263c-ed7c-0060-8095b79e08c6" xlink:to="loc_cgnx_CompanyContributionsVestAtEndOfTwoYear_c1966fb6-d9b6-8781-56b5-8095b79aaa6b" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_CompanyContributionsVestAtEndOfThreeYears" xlink:label="loc_cgnx_CompanyContributionsVestAtEndOfThreeYears_e8914c56-6946-583f-bb04-8095b7df1582" xlink:type="locator" />
    <link:calculationArc order="2" weight="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_cgnx_CompanyContributionsVestAtEndOfFourYears_d1eedd11-263c-ed7c-0060-8095b79e08c6" xlink:to="loc_cgnx_CompanyContributionsVestAtEndOfThreeYears_e8914c56-6946-583f-bb04-8095b7df1582" xlink:type="arc" />
  </link:calculationLink>
  <link:calculationLink xlink:role="http://cognex.com/role/FairValueMeasurements" xlink:type="extended" />
  <link:calculationLink xlink:role="http://cognex.com/role/FairValueMeasurementsAssetsAndLiabilitiesMeasuredAtFairValueOnRecurringBasisDetail" xlink:type="extended" />
  <link:calculationLink xlink:role="http://cognex.com/role/FairValueMeasurementsLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationDetails" xlink:type="extended" />
  <link:calculationLink xlink:role="http://cognex.com/role/FairValueMeasurementsTables" xlink:type="extended" />
  <link:calculationLink xlink:role="http://cognex.com/role/Goodwill" xlink:type="extended" />
  <link:calculationLink xlink:role="http://cognex.com/role/GoodwillChangesInCarryingValueOfGoodwillDetail" xlink:type="extended" />
  <link:calculationLink xlink:role="http://cognex.com/role/GoodwillTables" xlink:type="extended" />
  <link:calculationLink xlink:role="http://cognex.com/role/IndemnificationProvisions" xlink:type="extended" />
  <link:calculationLink xlink:role="http://cognex.com/role/IndemnificationProvisionsNarrativeDetails" xlink:type="extended" />
  <link:calculationLink xlink:role="http://cognex.com/role/IntangibleAssets" xlink:type="extended" />
  <link:calculationLink xlink:role="http://cognex.com/role/IntangibleAssetsAmortizedIntangibleAssetsDetail" xlink:type="extended">
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsNet" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsNet_d3bdc20c-5c58-6be6-d756-0ace6a97f212" xlink:type="locator" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsGross" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsGross_7a49df76-38f6-6baa-87dd-2e9a7efd8303" xlink:type="locator" />
    <link:calculationArc order="1" weight="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsNet_d3bdc20c-5c58-6be6-d756-0ace6a97f212" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsGross_7a49df76-38f6-6baa-87dd-2e9a7efd8303" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization_c9279b6a-f262-f140-7696-5ec40778343f" xlink:type="locator" />
    <link:calculationArc order="2" weight="-1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsNet_d3bdc20c-5c58-6be6-d756-0ace6a97f212" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization_c9279b6a-f262-f140-7696-5ec40778343f" xlink:type="arc" />
  </link:calculationLink>
  <link:calculationLink xlink:role="http://cognex.com/role/IntangibleAssetsEstimatedAmortizationExpenseSucceedingFiscalYearsDetail" xlink:type="extended">
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsNet" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsNet_d3bdc20c-5c58-6be6-d756-0ace6a97f212" xlink:type="locator" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths_423e6bba-f43d-931c-5711-51d5522b2aaa" xlink:type="locator" />
    <link:calculationArc order="1" weight="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsNet_d3bdc20c-5c58-6be6-d756-0ace6a97f212" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths_423e6bba-f43d-931c-5711-51d5522b2aaa" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo_28c91f3b-370e-e76f-4199-69e4166aabc6" xlink:type="locator" />
    <link:calculationArc order="2" weight="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsNet_d3bdc20c-5c58-6be6-d756-0ace6a97f212" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo_28c91f3b-370e-e76f-4199-69e4166aabc6" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearThree" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearThree_f7796428-4176-97fe-5145-79a026d8547a" xlink:type="locator" />
    <link:calculationArc order="3" weight="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsNet_d3bdc20c-5c58-6be6-d756-0ace6a97f212" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearThree_f7796428-4176-97fe-5145-79a026d8547a" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFour" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFour_71fd8e03-8eaf-f20c-786b-5e0492fb281b" xlink:type="locator" />
    <link:calculationArc order="4" weight="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsNet_d3bdc20c-5c58-6be6-d756-0ace6a97f212" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFour_71fd8e03-8eaf-f20c-786b-5e0492fb281b" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFive" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFive_8d652bfd-fc92-51b1-30d6-b90c4a94f960" xlink:type="locator" />
    <link:calculationArc order="5" weight="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsNet_d3bdc20c-5c58-6be6-d756-0ace6a97f212" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFive_8d652bfd-fc92-51b1-30d6-b90c4a94f960" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive_0e7343bd-e798-afc0-7fcc-ed296ae9f91c" xlink:type="locator" />
    <link:calculationArc order="6" weight="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsNet_d3bdc20c-5c58-6be6-d756-0ace6a97f212" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive_0e7343bd-e798-afc0-7fcc-ed296ae9f91c" xlink:type="arc" />
  </link:calculationLink>
  <link:calculationLink xlink:role="http://cognex.com/role/IntangibleAssetsTables" xlink:type="extended" />
  <link:calculationLink xlink:role="http://cognex.com/role/Inventories" xlink:type="extended" />
  <link:calculationLink xlink:role="http://cognex.com/role/InventoriesInventoriesDetail" xlink:type="extended">
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_InventoryNet" xlink:label="loc_us-gaap_InventoryNet_66bcd79a-a1c3-c24d-b8b4-7a0ce373714b" xlink:type="locator" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_InventoryRawMaterialsNetOfReserves" xlink:label="loc_us-gaap_InventoryRawMaterialsNetOfReserves_a979ceab-3c76-a4d5-9d1d-ca902d5e8595" xlink:type="locator" />
    <link:calculationArc order="1" weight="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_InventoryNet_66bcd79a-a1c3-c24d-b8b4-7a0ce373714b" xlink:to="loc_us-gaap_InventoryRawMaterialsNetOfReserves_a979ceab-3c76-a4d5-9d1d-ca902d5e8595" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_InventoryWorkInProcessNetOfReserves" xlink:label="loc_us-gaap_InventoryWorkInProcessNetOfReserves_02cb866c-0b1c-51f5-8ed3-3272dfc8c769" xlink:type="locator" />
    <link:calculationArc order="2" weight="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_InventoryNet_66bcd79a-a1c3-c24d-b8b4-7a0ce373714b" xlink:to="loc_us-gaap_InventoryWorkInProcessNetOfReserves_02cb866c-0b1c-51f5-8ed3-3272dfc8c769" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_InventoryFinishedGoodsNetOfReserves" xlink:label="loc_us-gaap_InventoryFinishedGoodsNetOfReserves_c2dd0840-de07-383b-bde9-fb229532490d" xlink:type="locator" />
    <link:calculationArc order="3" weight="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_InventoryNet_66bcd79a-a1c3-c24d-b8b4-7a0ce373714b" xlink:to="loc_us-gaap_InventoryFinishedGoodsNetOfReserves_c2dd0840-de07-383b-bde9-fb229532490d" xlink:type="arc" />
  </link:calculationLink>
  <link:calculationLink xlink:role="http://cognex.com/role/InventoriesTables" xlink:type="extended" />
  <link:calculationLink xlink:role="http://cognex.com/role/LeasesDetails" xlink:type="extended" />
  <link:calculationLink xlink:role="http://cognex.com/role/LeasesLeases" xlink:type="extended" />
  <link:calculationLink xlink:role="http://cognex.com/role/LeasesScheduleOfPaymentsDetails" xlink:type="extended">
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue" xlink:label="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue_4d26bd18-43c4-5981-04d4-83d0e9328a1d" xlink:type="locator" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths" xlink:label="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths_198c3642-781c-a7d4-6f7d-8400ab29b18c" xlink:type="locator" />
    <link:calculationArc order="1" weight="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue_4d26bd18-43c4-5981-04d4-83d0e9328a1d" xlink:to="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths_198c3642-781c-a7d4-6f7d-8400ab29b18c" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo" xlink:label="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo_e0f20176-305e-e29f-ab09-584aea596901" xlink:type="locator" />
    <link:calculationArc order="2" weight="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue_4d26bd18-43c4-5981-04d4-83d0e9328a1d" xlink:to="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo_e0f20176-305e-e29f-ab09-584aea596901" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree" xlink:label="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree_8e35e675-3955-0e95-1b9c-d08dd410962e" xlink:type="locator" />
    <link:calculationArc order="3" weight="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue_4d26bd18-43c4-5981-04d4-83d0e9328a1d" xlink:to="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree_8e35e675-3955-0e95-1b9c-d08dd410962e" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour" xlink:label="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour_852d78fc-d4b9-e5fb-fd5a-9da7d3d49669" xlink:type="locator" />
    <link:calculationArc order="4" weight="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue_4d26bd18-43c4-5981-04d4-83d0e9328a1d" xlink:to="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour_852d78fc-d4b9-e5fb-fd5a-9da7d3d49669" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFive" xlink:label="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFive_7a6864a2-d55e-24e7-17f1-75d5cad038ee" xlink:type="locator" />
    <link:calculationArc order="5" weight="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue_4d26bd18-43c4-5981-04d4-83d0e9328a1d" xlink:to="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFive_7a6864a2-d55e-24e7-17f1-75d5cad038ee" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive" xlink:label="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive_a8c7556a-9f4c-b4fb-2e42-b21cf84287a7" xlink:type="locator" />
    <link:calculationArc order="6" weight="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue_4d26bd18-43c4-5981-04d4-83d0e9328a1d" xlink:to="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive_a8c7556a-9f4c-b4fb-2e42-b21cf84287a7" xlink:type="arc" />
  </link:calculationLink>
  <link:calculationLink xlink:role="http://cognex.com/role/LeasesScheduleOfRentalReceiptsDetails" xlink:type="extended">
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_LessorOperatingLeasePaymentsToBeReceived" xlink:label="loc_us-gaap_LessorOperatingLeasePaymentsToBeReceived_607710e6-3efe-6e46-cfe1-e77b4a077b77" xlink:type="locator" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_LessorOperatingLeasePaymentsToBeReceivedNextTwelveMonths" xlink:label="loc_us-gaap_LessorOperatingLeasePaymentsToBeReceivedNextTwelveMonths_3204647d-7455-2d22-d77f-110d482ad18b" xlink:type="locator" />
    <link:calculationArc order="1" weight="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_LessorOperatingLeasePaymentsToBeReceived_607710e6-3efe-6e46-cfe1-e77b4a077b77" xlink:to="loc_us-gaap_LessorOperatingLeasePaymentsToBeReceivedNextTwelveMonths_3204647d-7455-2d22-d77f-110d482ad18b" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_LessorOperatingLeasePaymentsToBeReceivedTwoYears" xlink:label="loc_us-gaap_LessorOperatingLeasePaymentsToBeReceivedTwoYears_6f6c5f8a-c071-22b7-cdf2-ec107df339e6" xlink:type="locator" />
    <link:calculationArc order="2" weight="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_LessorOperatingLeasePaymentsToBeReceived_607710e6-3efe-6e46-cfe1-e77b4a077b77" xlink:to="loc_us-gaap_LessorOperatingLeasePaymentsToBeReceivedTwoYears_6f6c5f8a-c071-22b7-cdf2-ec107df339e6" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_LessorOperatingLeasePaymentsToBeReceivedThreeYears" xlink:label="loc_us-gaap_LessorOperatingLeasePaymentsToBeReceivedThreeYears_abd315e3-cba0-4860-d577-e702d8d3ffda" xlink:type="locator" />
    <link:calculationArc order="3" weight="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_LessorOperatingLeasePaymentsToBeReceived_607710e6-3efe-6e46-cfe1-e77b4a077b77" xlink:to="loc_us-gaap_LessorOperatingLeasePaymentsToBeReceivedThreeYears_abd315e3-cba0-4860-d577-e702d8d3ffda" xlink:type="arc" />
  </link:calculationLink>
  <link:calculationLink xlink:role="http://cognex.com/role/LeasesTables" xlink:type="extended" />
  <link:calculationLink xlink:role="http://cognex.com/role/NewPronouncements" xlink:type="extended" />
  <link:calculationLink xlink:role="http://cognex.com/role/NewPronouncementsDetails" xlink:type="extended" />
  <link:calculationLink xlink:role="http://cognex.com/role/PropertyPlantAndEquipment" xlink:type="extended" />
  <link:calculationLink xlink:role="http://cognex.com/role/PropertyPlantAndEquipmentAdditionalInformationDetails" xlink:type="extended" />
  <link:calculationLink xlink:role="http://cognex.com/role/PropertyPlantAndEquipmentPropertyPlantAndEquipmentDetail" xlink:type="extended">
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_PropertyPlantAndEquipmentNet" xlink:label="loc_us-gaap_PropertyPlantAndEquipmentNet_f37ad080-c77a-efc5-c936-389b16abc420" xlink:type="locator" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_PropertyPlantAndEquipmentGross" xlink:label="loc_us-gaap_PropertyPlantAndEquipmentGross_78662f7f-2a6a-5d68-ba8a-7947ed287be5" xlink:type="locator" />
    <link:calculationArc order="1" weight="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentNet_f37ad080-c77a-efc5-c936-389b16abc420" xlink:to="loc_us-gaap_PropertyPlantAndEquipmentGross_78662f7f-2a6a-5d68-ba8a-7947ed287be5" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment" xlink:label="loc_us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment_0a08cda9-11b3-e7ac-3fc9-3a23c67d9b96" xlink:type="locator" />
    <link:calculationArc order="2" weight="-1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentNet_f37ad080-c77a-efc5-c936-389b16abc420" xlink:to="loc_us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment_0a08cda9-11b3-e7ac-3fc9-3a23c67d9b96" xlink:type="arc" />
  </link:calculationLink>
  <link:calculationLink xlink:role="http://cognex.com/role/PropertyPlantAndEquipmentTables" xlink:type="extended" />
  <link:calculationLink xlink:role="http://cognex.com/role/RevenueRecognition" xlink:type="extended" />
  <link:calculationLink xlink:role="http://cognex.com/role/RevenueRecognitionBalanceSheetImpactDetails" xlink:type="extended" />
  <link:calculationLink xlink:role="http://cognex.com/role/RevenueRecognitionDeferredRevenueAndCustomerDepositsRollforwardDetails" xlink:type="extended" />
  <link:calculationLink xlink:role="http://cognex.com/role/RevenueRecognitionDisaggregationByGeographyAndTypeDetails" xlink:type="extended" />
  <link:calculationLink xlink:role="http://cognex.com/role/RevenueRecognitionNarrativesDetails" xlink:type="extended" />
  <link:calculationLink xlink:role="http://cognex.com/role/RevenueRecognitionStatementOfOperationsImpactDetails" xlink:type="extended" />
  <link:calculationLink xlink:role="http://cognex.com/role/RevenueRecognitionTables" xlink:type="extended" />
  <link:calculationLink xlink:role="http://cognex.com/role/ScheduleIiValuationAndQualifyingAccounts" xlink:type="extended" />
  <link:calculationLink xlink:role="http://cognex.com/role/ScheduleIiValuationAndQualifyingAccountsDetail" xlink:type="extended" />
  <link:calculationLink xlink:role="http://cognex.com/role/SegmentAndGeographicInformation" xlink:type="extended" />
  <link:calculationLink xlink:role="http://cognex.com/role/SegmentAndGeographicInformationAdditionalInformationDetail" xlink:type="extended" />
  <link:calculationLink xlink:role="http://cognex.com/role/SegmentAndGeographicInformationScheduleOfRevenueFromExternalCustomersAndLongLivedAssetsByGeographicalAreasDetail" xlink:type="extended" />
  <link:calculationLink xlink:role="http://cognex.com/role/SegmentAndGeographicInformationTables" xlink:type="extended" />
  <link:calculationLink xlink:role="http://cognex.com/role/SelectedQuarterlyFinancialDataUnaudited" xlink:type="extended" />
  <link:calculationLink xlink:role="http://cognex.com/role/SelectedQuarterlyFinancialDataUnauditedDetails" xlink:type="extended" />
  <link:calculationLink xlink:role="http://cognex.com/role/SelectedQuarterlyFinancialDataUnauditedTables" xlink:type="extended" />
  <link:calculationLink xlink:role="http://cognex.com/role/ShareholdersEquity" xlink:type="extended" />
  <link:calculationLink xlink:role="http://cognex.com/role/ShareholdersEquityAdditionalInformationDetail" xlink:type="extended" />
  <link:calculationLink xlink:role="http://cognex.com/role/StockBasedCompensation" xlink:type="extended" />
  <link:calculationLink xlink:role="http://cognex.com/role/StockBasedCompensationExpenseAdditionalInformationDetail" xlink:type="extended" />
  <link:calculationLink xlink:role="http://cognex.com/role/StockBasedCompensationExpenseStockBasedCompensationExpenseDetail" xlink:type="extended" />
  <link:calculationLink xlink:role="http://cognex.com/role/StockBasedCompensationExpenseSummaryOfRestrictedStockOptionActivityDetail" xlink:type="extended" />
  <link:calculationLink xlink:role="http://cognex.com/role/StockBasedCompensationExpenseSummaryOfStockOptionActivityDetail" xlink:type="extended" />
  <link:calculationLink xlink:role="http://cognex.com/role/StockBasedCompensationExpenseWeightedAverageAssumptionsUsedInEstimatingFairValuesOfStockOptionsGrantedDetail" xlink:type="extended" />
  <link:calculationLink xlink:role="http://cognex.com/role/StockBasedCompensationTables" xlink:type="extended" />
  <link:calculationLink xlink:role="http://cognex.com/role/SubsequentEvents" xlink:type="extended" />
  <link:calculationLink xlink:role="http://cognex.com/role/SubsequentEventsDetails" xlink:type="extended" />
  <link:calculationLink xlink:role="http://cognex.com/role/SummaryOfSignificantAccountingPolicies" xlink:type="extended" />
  <link:calculationLink xlink:role="http://cognex.com/role/SummaryOfSignificantAccountingPoliciesAdditionalInformationDetail" xlink:type="extended" />
  <link:calculationLink xlink:role="http://cognex.com/role/SummaryOfSignificantAccountingPoliciesAdvertisingCostsDetails" xlink:type="extended" />
  <link:calculationLink xlink:role="http://cognex.com/role/SummaryOfSignificantAccountingPoliciesComprehensiveIncomeLossDetails" xlink:type="extended" />
  <link:calculationLink xlink:role="http://cognex.com/role/SummaryOfSignificantAccountingPoliciesIntangibleAssetsDetails" xlink:type="extended" />
  <link:calculationLink xlink:role="http://cognex.com/role/SummaryOfSignificantAccountingPoliciesPolicies" xlink:type="extended" />
  <link:calculationLink xlink:role="http://cognex.com/role/SummaryOfSignificantAccountingPoliciesSummaryOfSignificantAccountingPoliciesRevenueRecognitionDetails" xlink:type="extended" />
  <link:calculationLink xlink:role="http://cognex.com/role/SummaryOfSignificantAccountingPoliciesWarrantyDetails" xlink:type="extended" />
  <link:calculationLink xlink:role="http://cognex.com/role/Taxes" xlink:type="extended" />
  <link:calculationLink xlink:role="http://cognex.com/role/TaxesAdditionalInformationDetails" xlink:type="extended" />
  <link:calculationLink xlink:role="http://cognex.com/role/TaxesChangesInReserveForIncomeTaxesExcludingInterestAndPenaltiesDetails" xlink:type="extended" />
  <link:calculationLink xlink:role="http://cognex.com/role/TaxesConstituentsOfDeferredTaxAssetsDetails" xlink:type="extended">
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_DeferredTaxAssetsLiabilitiesNetNoncurrent" xlink:label="loc_us-gaap_DeferredTaxAssetsLiabilitiesNetNoncurrent_5ee94de1-09b5-a281-d50f-420352002a69" xlink:type="locator" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_DeferredTaxAssetsGrossNoncurrent" xlink:label="loc_us-gaap_DeferredTaxAssetsGrossNoncurrent_7e482f90-a463-6257-094f-b6a889541255" xlink:type="locator" />
    <link:calculationArc order="1" weight="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_DeferredTaxAssetsLiabilitiesNetNoncurrent_5ee94de1-09b5-a281-d50f-420352002a69" xlink:to="loc_us-gaap_DeferredTaxAssetsGrossNoncurrent_7e482f90-a463-6257-094f-b6a889541255" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_DeferredTaxAssetsIntangibleAssetChangeinTaxStructure" xlink:label="loc_cgnx_DeferredTaxAssetsIntangibleAssetChangeinTaxStructure_4CC1C1CE1B3E1D5ED30BFDC96E6E6B22" xlink:type="locator" />
    <link:calculationArc order="1" weight="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_DeferredTaxAssetsGrossNoncurrent_7e482f90-a463-6257-094f-b6a889541255" xlink:to="loc_cgnx_DeferredTaxAssetsIntangibleAssetChangeinTaxStructure_4CC1C1CE1B3E1D5ED30BFDC96E6E6B22" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost" xlink:label="loc_us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost_187bb760-9cde-c4af-d9e1-306e7a6330eb" xlink:type="locator" />
    <link:calculationArc order="2" weight="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_DeferredTaxAssetsGrossNoncurrent_7e482f90-a463-6257-094f-b6a889541255" xlink:to="loc_us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost_187bb760-9cde-c4af-d9e1-306e7a6330eb" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_DeferredTaxAssetsOperatingLossCarryforwardsDomestic" xlink:label="loc_us-gaap_DeferredTaxAssetsOperatingLossCarryforwardsDomestic_dd649c25-f9b5-12c4-fe90-ee7c9cba6a1f" xlink:type="locator" />
    <link:calculationArc order="3" weight="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_DeferredTaxAssetsGrossNoncurrent_7e482f90-a463-6257-094f-b6a889541255" xlink:to="loc_us-gaap_DeferredTaxAssetsOperatingLossCarryforwardsDomestic_dd649c25-f9b5-12c4-fe90-ee7c9cba6a1f" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_DeferredTaxAssetsOperatingLossCarryforwardsForeign" xlink:label="loc_us-gaap_DeferredTaxAssetsOperatingLossCarryforwardsForeign_4b11660d-aa03-e72b-b3a5-729db9810471" xlink:type="locator" />
    <link:calculationArc order="4" weight="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_DeferredTaxAssetsGrossNoncurrent_7e482f90-a463-6257-094f-b6a889541255" xlink:to="loc_us-gaap_DeferredTaxAssetsOperatingLossCarryforwardsForeign_4b11660d-aa03-e72b-b3a5-729db9810471" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_NoncurrentDeferredTaxAssetsDeprecation" xlink:label="loc_cgnx_NoncurrentDeferredTaxAssetsDeprecation_7a72e4c6-ead3-cc52-f508-8095b7a8c7d0" xlink:type="locator" />
    <link:calculationArc order="5" weight="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_DeferredTaxAssetsGrossNoncurrent_7e482f90-a463-6257-094f-b6a889541255" xlink:to="loc_cgnx_NoncurrentDeferredTaxAssetsDeprecation_7a72e4c6-ead3-cc52-f508-8095b7a8c7d0" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_DeferredTaxAssetsInventory" xlink:label="loc_us-gaap_DeferredTaxAssetsInventory_475c85ca-97e4-c8e8-9ee2-6c534eb18ace" xlink:type="locator" />
    <link:calculationArc order="6" weight="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_DeferredTaxAssetsGrossNoncurrent_7e482f90-a463-6257-094f-b6a889541255" xlink:to="loc_us-gaap_DeferredTaxAssetsInventory_475c85ca-97e4-c8e8-9ee2-6c534eb18ace" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsOther" xlink:label="loc_us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsOther_059ea1c5-ba15-6d4b-3fb5-5fbf937cf251" xlink:type="locator" />
    <link:calculationArc order="7" weight="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_DeferredTaxAssetsGrossNoncurrent_7e482f90-a463-6257-094f-b6a889541255" xlink:to="loc_us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsOther_059ea1c5-ba15-6d4b-3fb5-5fbf937cf251" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_DeferredTaxAssetsOtherNoncurrent" xlink:label="loc_cgnx_DeferredTaxAssetsOtherNoncurrent_47b0ad48-cd2e-132c-c03f-8095b7ad5c57" xlink:type="locator" />
    <link:calculationArc order="8" weight="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_DeferredTaxAssetsGrossNoncurrent_7e482f90-a463-6257-094f-b6a889541255" xlink:to="loc_cgnx_DeferredTaxAssetsOtherNoncurrent_47b0ad48-cd2e-132c-c03f-8095b7ad5c57" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_DeferredTaxAssetsValuationAllowanceNoncurrent" xlink:label="loc_us-gaap_DeferredTaxAssetsValuationAllowanceNoncurrent_5c322398-6ed4-f69d-b468-8d9afcf23b4f" xlink:type="locator" />
    <link:calculationArc order="2" weight="-1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_DeferredTaxAssetsLiabilitiesNetNoncurrent_5ee94de1-09b5-a281-d50f-420352002a69" xlink:to="loc_us-gaap_DeferredTaxAssetsValuationAllowanceNoncurrent_5c322398-6ed4-f69d-b468-8d9afcf23b4f" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_DeferredTaxLiabilitiesGrossCurrent" xlink:label="loc_us-gaap_DeferredTaxLiabilitiesGrossCurrent_d72c04ed-6029-1029-787d-3221c6012ff9" xlink:type="locator" />
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_DeferredTaxLiabilitiesTaxCutsAndJobsActGlobalIntangibleLowTaxIncome" xlink:label="loc_cgnx_DeferredTaxLiabilitiesTaxCutsAndJobsActGlobalIntangibleLowTaxIncome_9CBE12F90B536072D50AFDC53AB312CD" xlink:type="locator" />
    <link:calculationArc order="1" weight="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_DeferredTaxLiabilitiesGrossCurrent_d72c04ed-6029-1029-787d-3221c6012ff9" xlink:to="loc_cgnx_DeferredTaxLiabilitiesTaxCutsAndJobsActGlobalIntangibleLowTaxIncome_9CBE12F90B536072D50AFDC53AB312CD" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_DeferredTaxLiabilitiesTaxCutsAndJobsActOtherGlobalIntangibleLowTaxIncome" xlink:label="loc_cgnx_DeferredTaxLiabilitiesTaxCutsAndJobsActOtherGlobalIntangibleLowTaxIncome_E4E4B938E238A85F076B172DD01C1E4D" xlink:type="locator" />
    <link:calculationArc order="2" weight="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_DeferredTaxLiabilitiesGrossCurrent_d72c04ed-6029-1029-787d-3221c6012ff9" xlink:to="loc_cgnx_DeferredTaxLiabilitiesTaxCutsAndJobsActOtherGlobalIntangibleLowTaxIncome_E4E4B938E238A85F076B172DD01C1E4D" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_DeferredTaxLiabilitiesGoodwillAndIntangibleAssetsIntangibleAssets" xlink:label="loc_us-gaap_DeferredTaxLiabilitiesGoodwillAndIntangibleAssetsIntangibleAssets_42b61cde-44f6-df44-52b0-1b84b1e28a47" xlink:type="locator" />
    <link:calculationArc order="3" weight="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_DeferredTaxLiabilitiesGrossCurrent_d72c04ed-6029-1029-787d-3221c6012ff9" xlink:to="loc_us-gaap_DeferredTaxLiabilitiesGoodwillAndIntangibleAssetsIntangibleAssets_42b61cde-44f6-df44-52b0-1b84b1e28a47" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_DeferredTaxLiabilitiesOther" xlink:label="loc_us-gaap_DeferredTaxLiabilitiesOther_3e7fd080-3ec6-50fa-98f3-b61bc68dbdcf" xlink:type="locator" />
    <link:calculationArc order="4" weight="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_DeferredTaxLiabilitiesGrossCurrent_d72c04ed-6029-1029-787d-3221c6012ff9" xlink:to="loc_us-gaap_DeferredTaxLiabilitiesOther_3e7fd080-3ec6-50fa-98f3-b61bc68dbdcf" xlink:type="arc" />
  </link:calculationLink>
  <link:calculationLink xlink:role="http://cognex.com/role/TaxesConstituentsOfProvisionForIncomeTaxesDetails" xlink:type="extended">
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_IncomeTaxExpenseBenefit" xlink:label="loc_us-gaap_IncomeTaxExpenseBenefit_97bbae57-7f84-4da9-acab-610e56204929" xlink:type="locator" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_CurrentIncomeTaxExpenseBenefit" xlink:label="loc_us-gaap_CurrentIncomeTaxExpenseBenefit_816edbc5-9d4b-113c-7ce2-6c08dd555314" xlink:type="locator" />
    <link:calculationArc order="1" weight="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_IncomeTaxExpenseBenefit_97bbae57-7f84-4da9-acab-610e56204929" xlink:to="loc_us-gaap_CurrentIncomeTaxExpenseBenefit_816edbc5-9d4b-113c-7ce2-6c08dd555314" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_CurrentFederalTaxExpenseBenefit" xlink:label="loc_us-gaap_CurrentFederalTaxExpenseBenefit_b975ff9b-a11f-f2b5-e104-e0266dbbbfc6" xlink:type="locator" />
    <link:calculationArc order="1" weight="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_CurrentIncomeTaxExpenseBenefit_816edbc5-9d4b-113c-7ce2-6c08dd555314" xlink:to="loc_us-gaap_CurrentFederalTaxExpenseBenefit_b975ff9b-a11f-f2b5-e104-e0266dbbbfc6" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_CurrentStateAndLocalTaxExpenseBenefit" xlink:label="loc_us-gaap_CurrentStateAndLocalTaxExpenseBenefit_4d365c95-da3d-c3cb-6f6b-7945d285af9f" xlink:type="locator" />
    <link:calculationArc order="2" weight="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_CurrentIncomeTaxExpenseBenefit_816edbc5-9d4b-113c-7ce2-6c08dd555314" xlink:to="loc_us-gaap_CurrentStateAndLocalTaxExpenseBenefit_4d365c95-da3d-c3cb-6f6b-7945d285af9f" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_CurrentForeignTaxExpenseBenefit" xlink:label="loc_us-gaap_CurrentForeignTaxExpenseBenefit_bbb5a6cc-fe5e-18f1-e9f0-76884d58b714" xlink:type="locator" />
    <link:calculationArc order="3" weight="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_CurrentIncomeTaxExpenseBenefit_816edbc5-9d4b-113c-7ce2-6c08dd555314" xlink:to="loc_us-gaap_CurrentForeignTaxExpenseBenefit_bbb5a6cc-fe5e-18f1-e9f0-76884d58b714" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_DeferredIncomeTaxExpenseBenefit" xlink:label="loc_us-gaap_DeferredIncomeTaxExpenseBenefit_e8a9abf2-38d3-77d1-fb6b-693fef632294" xlink:type="locator" />
    <link:calculationArc order="2" weight="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_IncomeTaxExpenseBenefit_97bbae57-7f84-4da9-acab-610e56204929" xlink:to="loc_us-gaap_DeferredIncomeTaxExpenseBenefit_e8a9abf2-38d3-77d1-fb6b-693fef632294" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_DeferredFederalIncomeTaxExpenseBenefit" xlink:label="loc_us-gaap_DeferredFederalIncomeTaxExpenseBenefit_650e6c8f-1409-4de1-126f-784909f82e64" xlink:type="locator" />
    <link:calculationArc order="1" weight="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_DeferredIncomeTaxExpenseBenefit_e8a9abf2-38d3-77d1-fb6b-693fef632294" xlink:to="loc_us-gaap_DeferredFederalIncomeTaxExpenseBenefit_650e6c8f-1409-4de1-126f-784909f82e64" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_DeferredStateAndLocalIncomeTaxExpenseBenefit" xlink:label="loc_us-gaap_DeferredStateAndLocalIncomeTaxExpenseBenefit_10aa09ac-60b4-bd88-6c3b-c85b3f0fbf0a" xlink:type="locator" />
    <link:calculationArc order="2" weight="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_DeferredIncomeTaxExpenseBenefit_e8a9abf2-38d3-77d1-fb6b-693fef632294" xlink:to="loc_us-gaap_DeferredStateAndLocalIncomeTaxExpenseBenefit_10aa09ac-60b4-bd88-6c3b-c85b3f0fbf0a" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_DeferredForeignIncomeTaxExpenseBenefit" xlink:label="loc_us-gaap_DeferredForeignIncomeTaxExpenseBenefit_840ca4a2-1542-fad2-992c-40136594b396" xlink:type="locator" />
    <link:calculationArc order="3" weight="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_DeferredIncomeTaxExpenseBenefit_e8a9abf2-38d3-77d1-fb6b-693fef632294" xlink:to="loc_us-gaap_DeferredForeignIncomeTaxExpenseBenefit_840ca4a2-1542-fad2-992c-40136594b396" xlink:type="arc" />
  </link:calculationLink>
  <link:calculationLink xlink:role="http://cognex.com/role/TaxesReconciliationOfUnitedStatesFederalStatutoryCorporateTaxRateToCompanysEffectiveTaxRateOrIncomeTaxProvisionDetails" xlink:type="extended">
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_EffectiveIncomeTaxRateContinuingOperations" xlink:label="loc_us-gaap_EffectiveIncomeTaxRateContinuingOperations_f1b8c80c-fe31-3624-3b0a-70273297561e" xlink:type="locator" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate" xlink:label="loc_us-gaap_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate_51d18bf0-0823-2940-9470-e9bbca486da6" xlink:type="locator" />
    <link:calculationArc order="1" weight="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_EffectiveIncomeTaxRateContinuingOperations_f1b8c80c-fe31-3624-3b0a-70273297561e" xlink:to="loc_us-gaap_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate_51d18bf0-0823-2940-9470-e9bbca486da6" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_EffectiveIncomeTaxRateReconciliationStateAndLocalIncomeTaxes" xlink:label="loc_us-gaap_EffectiveIncomeTaxRateReconciliationStateAndLocalIncomeTaxes_d23dd313-f50b-59fa-fd80-0dbe24277535" xlink:type="locator" />
    <link:calculationArc order="2" weight="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_EffectiveIncomeTaxRateContinuingOperations_f1b8c80c-fe31-3624-3b0a-70273297561e" xlink:to="loc_us-gaap_EffectiveIncomeTaxRateReconciliationStateAndLocalIncomeTaxes_d23dd313-f50b-59fa-fd80-0dbe24277535" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_EffectiveIncomeTaxRateReconciliationForeignIncomeTaxRateDifferential" xlink:label="loc_us-gaap_EffectiveIncomeTaxRateReconciliationForeignIncomeTaxRateDifferential_2159a283-2879-8644-198d-34cde06e5374" xlink:type="locator" />
    <link:calculationArc order="3" weight="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_EffectiveIncomeTaxRateContinuingOperations_f1b8c80c-fe31-3624-3b0a-70273297561e" xlink:to="loc_us-gaap_EffectiveIncomeTaxRateReconciliationForeignIncomeTaxRateDifferential_2159a283-2879-8644-198d-34cde06e5374" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_EffectiveIncomeTaxRateReconciliationTaxCredits" xlink:label="loc_us-gaap_EffectiveIncomeTaxRateReconciliationTaxCredits_928f8c54-624a-8542-b4e3-59da2a4e6af6" xlink:type="locator" />
    <link:calculationArc order="4" weight="-1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_EffectiveIncomeTaxRateContinuingOperations_f1b8c80c-fe31-3624-3b0a-70273297561e" xlink:to="loc_us-gaap_EffectiveIncomeTaxRateReconciliationTaxCredits_928f8c54-624a-8542-b4e3-59da2a4e6af6" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitPercent" xlink:label="loc_us-gaap_EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitPercent_8e08d6c7-adb5-6628-1188-bc862e7830ff" xlink:type="locator" />
    <link:calculationArc order="5" weight="-1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_EffectiveIncomeTaxRateContinuingOperations_f1b8c80c-fe31-3624-3b0a-70273297561e" xlink:to="loc_us-gaap_EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitPercent_8e08d6c7-adb5-6628-1188-bc862e7830ff" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_EffectiveIncomeTaxRateReconciliationDiscreteTaxExpenseTaxAndJobsActPercent" xlink:label="loc_cgnx_EffectiveIncomeTaxRateReconciliationDiscreteTaxExpenseTaxAndJobsActPercent_4b01d39b-d1bf-7f79-b79f-8095b79be00c" xlink:type="locator" />
    <link:calculationArc order="6" weight="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_EffectiveIncomeTaxRateContinuingOperations_f1b8c80c-fe31-3624-3b0a-70273297561e" xlink:to="loc_cgnx_EffectiveIncomeTaxRateReconciliationDiscreteTaxExpenseTaxAndJobsActPercent_4b01d39b-d1bf-7f79-b79f-8095b79be00c" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_EffectiveIncomeTaxRateReconciliationChangeInDeferredTaxAssetsValuationAllowance" xlink:label="loc_us-gaap_EffectiveIncomeTaxRateReconciliationChangeInDeferredTaxAssetsValuationAllowance_082942cb-e31f-ff03-a943-7f4739f70da9" xlink:type="locator" />
    <link:calculationArc order="7" weight="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_EffectiveIncomeTaxRateContinuingOperations_f1b8c80c-fe31-3624-3b0a-70273297561e" xlink:to="loc_us-gaap_EffectiveIncomeTaxRateReconciliationChangeInDeferredTaxAssetsValuationAllowance_082942cb-e31f-ff03-a943-7f4739f70da9" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_EffectiveIncomeTaxRateReconciliationMigrationofAcquiredIntellectualProperty" xlink:label="loc_cgnx_EffectiveIncomeTaxRateReconciliationMigrationofAcquiredIntellectualProperty_7A89F6CD266A499E1319FDAC71527239" xlink:type="locator" />
    <link:calculationArc order="8" weight="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_EffectiveIncomeTaxRateContinuingOperations_f1b8c80c-fe31-3624-3b0a-70273297561e" xlink:to="loc_cgnx_EffectiveIncomeTaxRateReconciliationMigrationofAcquiredIntellectualProperty_7A89F6CD266A499E1319FDAC71527239" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_EffectiveIncomeTaxRateReconciliationChangeInEnactedTaxRate" xlink:label="loc_us-gaap_EffectiveIncomeTaxRateReconciliationChangeInEnactedTaxRate_7ffe16d1-cedd-985f-c95d-65ae6fa8d756" xlink:type="locator" />
    <link:calculationArc order="9" weight="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_EffectiveIncomeTaxRateContinuingOperations_f1b8c80c-fe31-3624-3b0a-70273297561e" xlink:to="loc_us-gaap_EffectiveIncomeTaxRateReconciliationChangeInEnactedTaxRate_7ffe16d1-cedd-985f-c95d-65ae6fa8d756" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_EffectiveIncomeTaxRateReconciliationTaxCutsandJobsActGlobalIntangibleLowTaxIncomePercent" xlink:label="loc_cgnx_EffectiveIncomeTaxRateReconciliationTaxCutsandJobsActGlobalIntangibleLowTaxIncomePercent_AB1F606494CBA7301BE8FDB2AB88DC76" xlink:type="locator" />
    <link:calculationArc order="10" weight="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_EffectiveIncomeTaxRateContinuingOperations_f1b8c80c-fe31-3624-3b0a-70273297561e" xlink:to="loc_cgnx_EffectiveIncomeTaxRateReconciliationTaxCutsandJobsActGlobalIntangibleLowTaxIncomePercent_AB1F606494CBA7301BE8FDB2AB88DC76" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_EffectiveIncomeTaxRateReconciliationOtherReconcilingItemsPercent" xlink:label="loc_us-gaap_EffectiveIncomeTaxRateReconciliationOtherReconcilingItemsPercent_31c1f4fe-d893-db49-7a11-9d34ba58abe0" xlink:type="locator" />
    <link:calculationArc order="11" weight="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_EffectiveIncomeTaxRateContinuingOperations_f1b8c80c-fe31-3624-3b0a-70273297561e" xlink:to="loc_us-gaap_EffectiveIncomeTaxRateReconciliationOtherReconcilingItemsPercent_31c1f4fe-d893-db49-7a11-9d34ba58abe0" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_EffectiveIncomeTaxRateReconciliationOtherAdjustments" xlink:label="loc_us-gaap_EffectiveIncomeTaxRateReconciliationOtherAdjustments_00f37689-1982-1c68-c80b-43003f810247" xlink:type="locator" />
    <link:calculationArc order="12" weight="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_EffectiveIncomeTaxRateContinuingOperations_f1b8c80c-fe31-3624-3b0a-70273297561e" xlink:to="loc_us-gaap_EffectiveIncomeTaxRateReconciliationOtherAdjustments_00f37689-1982-1c68-c80b-43003f810247" xlink:type="arc" />
  </link:calculationLink>
  <link:calculationLink xlink:role="http://cognex.com/role/TaxesScheduleOfChangeInAccountingPolicyDetails" xlink:type="extended" />
  <link:calculationLink xlink:role="http://cognex.com/role/TaxesTables" xlink:type="extended" />
  <link:calculationLink xlink:role="http://cognex.com/role/WeightedAverageShares" xlink:type="extended" />
  <link:calculationLink xlink:role="http://cognex.com/role/WeightedAverageSharesAdditionalInformationDetail" xlink:type="extended" />
  <link:calculationLink xlink:role="http://cognex.com/role/WeightedAverageSharesCalculationOfWeightedAverageSharesDetail" xlink:type="extended">
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding" xlink:label="loc_us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding_21ce4f2f-397c-6c02-8635-7c94146a06a0" xlink:type="locator" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_WeightedAverageNumberOfSharesOutstandingBasic" xlink:label="loc_us-gaap_WeightedAverageNumberOfSharesOutstandingBasic_2dd9a981-e559-d141-f1c2-4db79f71a7ef" xlink:type="locator" />
    <link:calculationArc order="1" weight="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding_21ce4f2f-397c-6c02-8635-7c94146a06a0" xlink:to="loc_us-gaap_WeightedAverageNumberOfSharesOutstandingBasic_2dd9a981-e559-d141-f1c2-4db79f71a7ef" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_WeightedAverageNumberDilutedSharesOutstandingAdjustment" xlink:label="loc_us-gaap_WeightedAverageNumberDilutedSharesOutstandingAdjustment_d342f32b-4cc6-0bef-3743-616005090121" xlink:type="locator" />
    <link:calculationArc order="2" weight="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding_21ce4f2f-397c-6c02-8635-7c94146a06a0" xlink:to="loc_us-gaap_WeightedAverageNumberDilutedSharesOutstandingAdjustment_d342f32b-4cc6-0bef-3743-616005090121" xlink:type="arc" />
  </link:calculationLink>
  <link:calculationLink xlink:role="http://cognex.com/role/WeightedAverageSharesTables" xlink:type="extended" />
</link:linkbase>
</XBRL>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EX-101.DEF
<SEQUENCE>13
<FILENAME>cgnx-20191231_def.xml
<DESCRIPTION>XBRL TAXONOMY EXTENSION DEFINITION LINKBASE DOCUMENT
<TEXT>
<XBRL>
<?xml version="1.0" encoding="US-ASCII"?>
<!--XBRL Document Created with Wdesk from Workiva-->
<!-- -->
<link:linkbase xsi:schemaLocation="http://www.xbrl.org/2003/linkbase http://www.xbrl.org/2003/xbrl-linkbase-2003-12-31.xsd" xmlns:link="http://www.xbrl.org/2003/linkbase" xmlns:xbrldt="http://xbrl.org/2005/xbrldt" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <link:roleRef roleURI="http://cognex.com/role/AccruedExpenses" xlink:href="cgnx-20191231.xsd#AccruedExpenses" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/AccruedExpensesChangesInWarrantyObligationsDetail" xlink:href="cgnx-20191231.xsd#AccruedExpensesChangesInWarrantyObligationsDetail" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/AccruedExpensesConstituentsOfAccruedExpensesDetail" xlink:href="cgnx-20191231.xsd#AccruedExpensesConstituentsOfAccruedExpensesDetail" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/AccruedExpensesTables" xlink:href="cgnx-20191231.xsd#AccruedExpensesTables" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/Acquisitions" xlink:href="cgnx-20191231.xsd#Acquisitions" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/AcquisitionsAcquisitionsDetails" xlink:href="cgnx-20191231.xsd#AcquisitionsAcquisitionsDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/AcquisitionsAcquisitionsTables" xlink:href="cgnx-20191231.xsd#AcquisitionsAcquisitionsTables" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/AcquisitionsGviVenturesIncDetails" xlink:href="cgnx-20191231.xsd#AcquisitionsGviVenturesIncDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/AcquisitionsGviVenturesIncPurchasePriceAllocationDetails" xlink:href="cgnx-20191231.xsd#AcquisitionsGviVenturesIncPurchasePriceAllocationDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/AcquisitionsSualabCoLtdNarrativeDetails" xlink:href="cgnx-20191231.xsd#AcquisitionsSualabCoLtdNarrativeDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/AcquisitionsSualabCoLtdPurchasePriceAllocationDetails" xlink:href="cgnx-20191231.xsd#AcquisitionsSualabCoLtdPurchasePriceAllocationDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/AcquisitionsVidiSystemsSADetails" xlink:href="cgnx-20191231.xsd#AcquisitionsVidiSystemsSADetails" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/AcquisitionsVidiSystemsSAPurchasePriceAllocationDetails" xlink:href="cgnx-20191231.xsd#AcquisitionsVidiSystemsSAPurchasePriceAllocationDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/CashCashEquivalentsAndInvestments" xlink:href="cgnx-20191231.xsd#CashCashEquivalentsAndInvestments" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/CashCashEquivalentsAndInvestmentsAdditionalInformationDetail" xlink:href="cgnx-20191231.xsd#CashCashEquivalentsAndInvestmentsAdditionalInformationDetail" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/CashCashEquivalentsAndInvestmentsAmortizedCostToFairValueDetail" xlink:href="cgnx-20191231.xsd#CashCashEquivalentsAndInvestmentsAmortizedCostToFairValueDetail" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/CashCashEquivalentsAndInvestmentsComponentsOfCashCashEquivalentsAndInvestmentsDetail" xlink:href="cgnx-20191231.xsd#CashCashEquivalentsAndInvestmentsComponentsOfCashCashEquivalentsAndInvestmentsDetail" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/CashCashEquivalentsAndInvestmentsEffectiveMaturityDatesOfAvailableForSaleInvestmentsDetail" xlink:href="cgnx-20191231.xsd#CashCashEquivalentsAndInvestmentsEffectiveMaturityDatesOfAvailableForSaleInvestmentsDetail" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/CashCashEquivalentsAndInvestmentsGrossUnrealizedLossesAndFairValueForAvailableForSaleInvestmentsDetail" xlink:href="cgnx-20191231.xsd#CashCashEquivalentsAndInvestmentsGrossUnrealizedLossesAndFairValueForAvailableForSaleInvestmentsDetail" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/CashCashEquivalentsAndInvestmentsTables" xlink:href="cgnx-20191231.xsd#CashCashEquivalentsAndInvestmentsTables" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/CommitmentsAndContingencies" xlink:href="cgnx-20191231.xsd#CommitmentsAndContingencies" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/CommitmentsAndContingenciesAdditionalInformationDetail" xlink:href="cgnx-20191231.xsd#CommitmentsAndContingenciesAdditionalInformationDetail" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/ConsolidatedBalanceSheets" xlink:href="cgnx-20191231.xsd#ConsolidatedBalanceSheets" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/ConsolidatedBalanceSheetsParenthetical" xlink:href="cgnx-20191231.xsd#ConsolidatedBalanceSheetsParenthetical" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/ConsolidatedStatementsOfCashFlows" xlink:href="cgnx-20191231.xsd#ConsolidatedStatementsOfCashFlows" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/ConsolidatedStatementsOfComprehensiveIncome" xlink:href="cgnx-20191231.xsd#ConsolidatedStatementsOfComprehensiveIncome" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/ConsolidatedStatementsOfComprehensiveIncomeParenthetical" xlink:href="cgnx-20191231.xsd#ConsolidatedStatementsOfComprehensiveIncomeParenthetical" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/ConsolidatedStatementsOfOperations" xlink:href="cgnx-20191231.xsd#ConsolidatedStatementsOfOperations" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/ConsolidatedStatementsOfOperationsParenthetical" xlink:href="cgnx-20191231.xsd#ConsolidatedStatementsOfOperationsParenthetical" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/ConsolidatedStatementsOfShareholdersEquity" xlink:href="cgnx-20191231.xsd#ConsolidatedStatementsOfShareholdersEquity" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/ConsolidatedStatementsOfShareholdersEquityParenthetical" xlink:href="cgnx-20191231.xsd#ConsolidatedStatementsOfShareholdersEquityParenthetical" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/CoverPage" xlink:href="cgnx-20191231.xsd#CoverPage" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/DerivativeInstruments" xlink:href="cgnx-20191231.xsd#DerivativeInstruments" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/DerivativeInstrumentsAdditionalDetailsDetails" xlink:href="cgnx-20191231.xsd#DerivativeInstrumentsAdditionalDetailsDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/DerivativeInstrumentsAssetsAndLiabilitiesPresentedOnNetBasisDueToRightOfOffsetDetails" xlink:href="cgnx-20191231.xsd#DerivativeInstrumentsAssetsAndLiabilitiesPresentedOnNetBasisDueToRightOfOffsetDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/DerivativeInstrumentsBalanceSheetLocationDetails" xlink:href="cgnx-20191231.xsd#DerivativeInstrumentsBalanceSheetLocationDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/DerivativeInstrumentsChangesInAociDetails" xlink:href="cgnx-20191231.xsd#DerivativeInstrumentsChangesInAociDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/DerivativeInstrumentsGainLossRecognizedInOtherComprehensiveIncomeLossDetails" xlink:href="cgnx-20191231.xsd#DerivativeInstrumentsGainLossRecognizedInOtherComprehensiveIncomeLossDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/DerivativeInstrumentsOutstandingForwardContractsDetails" xlink:href="cgnx-20191231.xsd#DerivativeInstrumentsOutstandingForwardContractsDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/DerivativeInstrumentsTables" xlink:href="cgnx-20191231.xsd#DerivativeInstrumentsTables" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/EmployeeSavingsPlan" xlink:href="cgnx-20191231.xsd#EmployeeSavingsPlan" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/EmployeeSavingsPlanAdditionalInformationDetail" xlink:href="cgnx-20191231.xsd#EmployeeSavingsPlanAdditionalInformationDetail" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/FairValueMeasurements" xlink:href="cgnx-20191231.xsd#FairValueMeasurements" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/FairValueMeasurementsAssetsAndLiabilitiesMeasuredAtFairValueOnRecurringBasisDetail" xlink:href="cgnx-20191231.xsd#FairValueMeasurementsAssetsAndLiabilitiesMeasuredAtFairValueOnRecurringBasisDetail" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/FairValueMeasurementsLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationDetails" xlink:href="cgnx-20191231.xsd#FairValueMeasurementsLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/FairValueMeasurementsTables" xlink:href="cgnx-20191231.xsd#FairValueMeasurementsTables" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/Goodwill" xlink:href="cgnx-20191231.xsd#Goodwill" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/GoodwillChangesInCarryingValueOfGoodwillDetail" xlink:href="cgnx-20191231.xsd#GoodwillChangesInCarryingValueOfGoodwillDetail" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/GoodwillTables" xlink:href="cgnx-20191231.xsd#GoodwillTables" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/IndemnificationProvisions" xlink:href="cgnx-20191231.xsd#IndemnificationProvisions" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/IndemnificationProvisionsNarrativeDetails" xlink:href="cgnx-20191231.xsd#IndemnificationProvisionsNarrativeDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/IntangibleAssets" xlink:href="cgnx-20191231.xsd#IntangibleAssets" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/IntangibleAssetsAmortizedIntangibleAssetsDetail" xlink:href="cgnx-20191231.xsd#IntangibleAssetsAmortizedIntangibleAssetsDetail" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/IntangibleAssetsEstimatedAmortizationExpenseSucceedingFiscalYearsDetail" xlink:href="cgnx-20191231.xsd#IntangibleAssetsEstimatedAmortizationExpenseSucceedingFiscalYearsDetail" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/IntangibleAssetsTables" xlink:href="cgnx-20191231.xsd#IntangibleAssetsTables" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/Inventories" xlink:href="cgnx-20191231.xsd#Inventories" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/InventoriesInventoriesDetail" xlink:href="cgnx-20191231.xsd#InventoriesInventoriesDetail" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/InventoriesTables" xlink:href="cgnx-20191231.xsd#InventoriesTables" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/LeasesDetails" xlink:href="cgnx-20191231.xsd#LeasesDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/LeasesLeases" xlink:href="cgnx-20191231.xsd#LeasesLeases" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/LeasesScheduleOfPaymentsDetails" xlink:href="cgnx-20191231.xsd#LeasesScheduleOfPaymentsDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/LeasesScheduleOfRentalReceiptsDetails" xlink:href="cgnx-20191231.xsd#LeasesScheduleOfRentalReceiptsDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/LeasesTables" xlink:href="cgnx-20191231.xsd#LeasesTables" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/NewPronouncements" xlink:href="cgnx-20191231.xsd#NewPronouncements" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/NewPronouncementsDetails" xlink:href="cgnx-20191231.xsd#NewPronouncementsDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/PropertyPlantAndEquipment" xlink:href="cgnx-20191231.xsd#PropertyPlantAndEquipment" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/PropertyPlantAndEquipmentAdditionalInformationDetails" xlink:href="cgnx-20191231.xsd#PropertyPlantAndEquipmentAdditionalInformationDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/PropertyPlantAndEquipmentPropertyPlantAndEquipmentDetail" xlink:href="cgnx-20191231.xsd#PropertyPlantAndEquipmentPropertyPlantAndEquipmentDetail" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/PropertyPlantAndEquipmentTables" xlink:href="cgnx-20191231.xsd#PropertyPlantAndEquipmentTables" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/RevenueRecognition" xlink:href="cgnx-20191231.xsd#RevenueRecognition" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/RevenueRecognitionBalanceSheetImpactDetails" xlink:href="cgnx-20191231.xsd#RevenueRecognitionBalanceSheetImpactDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/RevenueRecognitionDeferredRevenueAndCustomerDepositsRollforwardDetails" xlink:href="cgnx-20191231.xsd#RevenueRecognitionDeferredRevenueAndCustomerDepositsRollforwardDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/RevenueRecognitionDisaggregationByGeographyAndTypeDetails" xlink:href="cgnx-20191231.xsd#RevenueRecognitionDisaggregationByGeographyAndTypeDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/RevenueRecognitionNarrativesDetails" xlink:href="cgnx-20191231.xsd#RevenueRecognitionNarrativesDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/RevenueRecognitionStatementOfOperationsImpactDetails" xlink:href="cgnx-20191231.xsd#RevenueRecognitionStatementOfOperationsImpactDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/RevenueRecognitionTables" xlink:href="cgnx-20191231.xsd#RevenueRecognitionTables" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/ScheduleIiValuationAndQualifyingAccounts" xlink:href="cgnx-20191231.xsd#ScheduleIiValuationAndQualifyingAccounts" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/ScheduleIiValuationAndQualifyingAccountsDetail" xlink:href="cgnx-20191231.xsd#ScheduleIiValuationAndQualifyingAccountsDetail" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/SegmentAndGeographicInformation" xlink:href="cgnx-20191231.xsd#SegmentAndGeographicInformation" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/SegmentAndGeographicInformationAdditionalInformationDetail" xlink:href="cgnx-20191231.xsd#SegmentAndGeographicInformationAdditionalInformationDetail" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/SegmentAndGeographicInformationScheduleOfRevenueFromExternalCustomersAndLongLivedAssetsByGeographicalAreasDetail" xlink:href="cgnx-20191231.xsd#SegmentAndGeographicInformationScheduleOfRevenueFromExternalCustomersAndLongLivedAssetsByGeographicalAreasDetail" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/SegmentAndGeographicInformationTables" xlink:href="cgnx-20191231.xsd#SegmentAndGeographicInformationTables" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/SelectedQuarterlyFinancialDataUnaudited" xlink:href="cgnx-20191231.xsd#SelectedQuarterlyFinancialDataUnaudited" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/SelectedQuarterlyFinancialDataUnauditedDetails" xlink:href="cgnx-20191231.xsd#SelectedQuarterlyFinancialDataUnauditedDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/SelectedQuarterlyFinancialDataUnauditedTables" xlink:href="cgnx-20191231.xsd#SelectedQuarterlyFinancialDataUnauditedTables" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/ShareholdersEquity" xlink:href="cgnx-20191231.xsd#ShareholdersEquity" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/ShareholdersEquityAdditionalInformationDetail" xlink:href="cgnx-20191231.xsd#ShareholdersEquityAdditionalInformationDetail" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/StockBasedCompensation" xlink:href="cgnx-20191231.xsd#StockBasedCompensation" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/StockBasedCompensationExpenseAdditionalInformationDetail" xlink:href="cgnx-20191231.xsd#StockBasedCompensationExpenseAdditionalInformationDetail" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/StockBasedCompensationExpenseStockBasedCompensationExpenseDetail" xlink:href="cgnx-20191231.xsd#StockBasedCompensationExpenseStockBasedCompensationExpenseDetail" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/StockBasedCompensationExpenseSummaryOfRestrictedStockOptionActivityDetail" xlink:href="cgnx-20191231.xsd#StockBasedCompensationExpenseSummaryOfRestrictedStockOptionActivityDetail" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/StockBasedCompensationExpenseSummaryOfStockOptionActivityDetail" xlink:href="cgnx-20191231.xsd#StockBasedCompensationExpenseSummaryOfStockOptionActivityDetail" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/StockBasedCompensationExpenseWeightedAverageAssumptionsUsedInEstimatingFairValuesOfStockOptionsGrantedDetail" xlink:href="cgnx-20191231.xsd#StockBasedCompensationExpenseWeightedAverageAssumptionsUsedInEstimatingFairValuesOfStockOptionsGrantedDetail" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/StockBasedCompensationTables" xlink:href="cgnx-20191231.xsd#StockBasedCompensationTables" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/SubsequentEvents" xlink:href="cgnx-20191231.xsd#SubsequentEvents" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/SubsequentEventsDetails" xlink:href="cgnx-20191231.xsd#SubsequentEventsDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/SummaryOfSignificantAccountingPolicies" xlink:href="cgnx-20191231.xsd#SummaryOfSignificantAccountingPolicies" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/SummaryOfSignificantAccountingPoliciesAdditionalInformationDetail" xlink:href="cgnx-20191231.xsd#SummaryOfSignificantAccountingPoliciesAdditionalInformationDetail" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/SummaryOfSignificantAccountingPoliciesAdvertisingCostsDetails" xlink:href="cgnx-20191231.xsd#SummaryOfSignificantAccountingPoliciesAdvertisingCostsDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/SummaryOfSignificantAccountingPoliciesComprehensiveIncomeLossDetails" xlink:href="cgnx-20191231.xsd#SummaryOfSignificantAccountingPoliciesComprehensiveIncomeLossDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/SummaryOfSignificantAccountingPoliciesIntangibleAssetsDetails" xlink:href="cgnx-20191231.xsd#SummaryOfSignificantAccountingPoliciesIntangibleAssetsDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/SummaryOfSignificantAccountingPoliciesPolicies" xlink:href="cgnx-20191231.xsd#SummaryOfSignificantAccountingPoliciesPolicies" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/SummaryOfSignificantAccountingPoliciesSummaryOfSignificantAccountingPoliciesRevenueRecognitionDetails" xlink:href="cgnx-20191231.xsd#SummaryOfSignificantAccountingPoliciesSummaryOfSignificantAccountingPoliciesRevenueRecognitionDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/SummaryOfSignificantAccountingPoliciesWarrantyDetails" xlink:href="cgnx-20191231.xsd#SummaryOfSignificantAccountingPoliciesWarrantyDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/Taxes" xlink:href="cgnx-20191231.xsd#Taxes" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/TaxesAdditionalInformationDetails" xlink:href="cgnx-20191231.xsd#TaxesAdditionalInformationDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/TaxesChangesInReserveForIncomeTaxesExcludingInterestAndPenaltiesDetails" xlink:href="cgnx-20191231.xsd#TaxesChangesInReserveForIncomeTaxesExcludingInterestAndPenaltiesDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/TaxesConstituentsOfDeferredTaxAssetsDetails" xlink:href="cgnx-20191231.xsd#TaxesConstituentsOfDeferredTaxAssetsDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/TaxesConstituentsOfProvisionForIncomeTaxesDetails" xlink:href="cgnx-20191231.xsd#TaxesConstituentsOfProvisionForIncomeTaxesDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/TaxesReconciliationOfUnitedStatesFederalStatutoryCorporateTaxRateToCompanysEffectiveTaxRateOrIncomeTaxProvisionDetails" xlink:href="cgnx-20191231.xsd#TaxesReconciliationOfUnitedStatesFederalStatutoryCorporateTaxRateToCompanysEffectiveTaxRateOrIncomeTaxProvisionDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/TaxesScheduleOfChangeInAccountingPolicyDetails" xlink:href="cgnx-20191231.xsd#TaxesScheduleOfChangeInAccountingPolicyDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/TaxesTables" xlink:href="cgnx-20191231.xsd#TaxesTables" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/WeightedAverageShares" xlink:href="cgnx-20191231.xsd#WeightedAverageShares" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/WeightedAverageSharesAdditionalInformationDetail" xlink:href="cgnx-20191231.xsd#WeightedAverageSharesAdditionalInformationDetail" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/WeightedAverageSharesCalculationOfWeightedAverageSharesDetail" xlink:href="cgnx-20191231.xsd#WeightedAverageSharesCalculationOfWeightedAverageSharesDetail" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/WeightedAverageSharesTables" xlink:href="cgnx-20191231.xsd#WeightedAverageSharesTables" xlink:type="simple" />
  <link:arcroleRef arcroleURI="http://xbrl.org/int/dim/arcrole/all" xlink:href="http://www.xbrl.org/2005/xbrldt-2005.xsd#all" xlink:type="simple" />
  <link:arcroleRef arcroleURI="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:href="http://www.xbrl.org/2005/xbrldt-2005.xsd#dimension-default" xlink:type="simple" />
  <link:arcroleRef arcroleURI="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:href="http://www.xbrl.org/2005/xbrldt-2005.xsd#dimension-domain" xlink:type="simple" />
  <link:arcroleRef arcroleURI="http://xbrl.org/int/dim/arcrole/domain-member" xlink:href="http://www.xbrl.org/2005/xbrldt-2005.xsd#domain-member" xlink:type="simple" />
  <link:arcroleRef arcroleURI="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:href="http://www.xbrl.org/2005/xbrldt-2005.xsd#hypercube-dimension" xlink:type="simple" />
  <link:definitionLink xlink:role="http://cognex.com/role/AccruedExpenses" xlink:type="extended" />
  <link:definitionLink xlink:role="http://cognex.com/role/AccruedExpensesChangesInWarrantyObligationsDetail" xlink:type="extended" />
  <link:definitionLink xlink:role="http://cognex.com/role/AccruedExpensesConstituentsOfAccruedExpensesDetail" xlink:type="extended" />
  <link:definitionLink xlink:role="http://cognex.com/role/AccruedExpensesTables" xlink:type="extended" />
  <link:definitionLink xlink:role="http://cognex.com/role/Acquisitions" xlink:type="extended" />
  <link:definitionLink xlink:role="http://cognex.com/role/AcquisitionsAcquisitionsDetails" xlink:type="extended" />
  <link:definitionLink xlink:role="http://cognex.com/role/AcquisitionsAcquisitionsTables" xlink:type="extended" />
  <link:definitionLink xlink:role="http://cognex.com/role/AcquisitionsGviVenturesIncDetails" xlink:type="extended">
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_BusinessAcquisitionLineItems" xlink:label="loc_us-gaap_BusinessAcquisitionLineItems_FD0E4AFC43C08B2C4D9135BC8D937CEF" xlink:type="locator" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable" xlink:label="loc_us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable_986F6FF4A58FDDE8403B35BC8D904293" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_FD0E4AFC43C08B2C4D9135BC8D937CEF" xlink:to="loc_us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable_986F6FF4A58FDDE8403B35BC8D904293" xlink:type="arc" xbrldt:closed="true" xbrldt:contextElement="segment" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_8301262ABBC1F3E0019B35BC8D91F6C2" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable_986F6FF4A58FDDE8403B35BC8D904293" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_8301262ABBC1F3E0019B35BC8D91F6C2" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_1A7DE1F8F4D10ACA59BC35BC8D91A0FF_default" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_8301262ABBC1F3E0019B35BC8D91F6C2" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_1A7DE1F8F4D10ACA59BC35BC8D91A0FF_default" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_1A7DE1F8F4D10ACA59BC35BC8D91A0FF" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_8301262ABBC1F3E0019B35BC8D91F6C2" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_1A7DE1F8F4D10ACA59BC35BC8D91A0FF" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_TechnologyBasedIntangibleAssetsMember" xlink:label="loc_us-gaap_TechnologyBasedIntangibleAssetsMember_33A360E3BA59F538B2A235BC8D916BB1" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_1A7DE1F8F4D10ACA59BC35BC8D91A0FF" xlink:to="loc_us-gaap_TechnologyBasedIntangibleAssetsMember_33A360E3BA59F538B2A235BC8D916BB1" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_CustomerRelationshipsMember" xlink:label="loc_us-gaap_CustomerRelationshipsMember_BE431EB1FCBB4C413AC635BC8D923909" xlink:type="locator" />
    <link:definitionArc order="2" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_1A7DE1F8F4D10ACA59BC35BC8D91A0FF" xlink:to="loc_us-gaap_CustomerRelationshipsMember_BE431EB1FCBB4C413AC635BC8D923909" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_BusinessAcquisitionAxis" xlink:label="loc_us-gaap_BusinessAcquisitionAxis_735D92980DF11613C0CB35BC8D92D9C7" xlink:type="locator" />
    <link:definitionArc order="2" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable_986F6FF4A58FDDE8403B35BC8D904293" xlink:to="loc_us-gaap_BusinessAcquisitionAxis_735D92980DF11613C0CB35BC8D92D9C7" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_BusinessAcquisitionAcquireeDomain" xlink:label="loc_us-gaap_BusinessAcquisitionAcquireeDomain_1E02A12F0FB7955E03F335BC8D921D47_default" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_BusinessAcquisitionAxis_735D92980DF11613C0CB35BC8D92D9C7" xlink:to="loc_us-gaap_BusinessAcquisitionAcquireeDomain_1E02A12F0FB7955E03F335BC8D921D47_default" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_BusinessAcquisitionAcquireeDomain" xlink:label="loc_us-gaap_BusinessAcquisitionAcquireeDomain_1E02A12F0FB7955E03F335BC8D921D47" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_BusinessAcquisitionAxis_735D92980DF11613C0CB35BC8D92D9C7" xlink:to="loc_us-gaap_BusinessAcquisitionAcquireeDomain_1E02A12F0FB7955E03F335BC8D921D47" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_GViVenturesInc.Member" xlink:label="loc_cgnx_GViVenturesInc.Member_F86DEA352BC88017254435BC8D926A5B" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_BusinessAcquisitionAcquireeDomain_1E02A12F0FB7955E03F335BC8D921D47" xlink:to="loc_cgnx_GViVenturesInc.Member_F86DEA352BC88017254435BC8D926A5B" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_BusinessCombinationContingentConsiderationArrangementsChangeInTheRangeOfOutcomesContingentConsiderationLiabilityValueLow" xlink:label="loc_us-gaap_BusinessCombinationContingentConsiderationArrangementsChangeInTheRangeOfOutcomesContingentConsiderationLiabilityValueLow_31540A628AF92C7C810935BC8D93FA60" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_FD0E4AFC43C08B2C4D9135BC8D937CEF" xlink:to="loc_us-gaap_BusinessCombinationContingentConsiderationArrangementsChangeInTheRangeOfOutcomesContingentConsiderationLiabilityValueLow_31540A628AF92C7C810935BC8D93FA60" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_BusinessCombinationContingentConsiderationArrangementsChangeInTheRangeOfOutcomesContingentConsiderationLiabilityValueHigh" xlink:label="loc_us-gaap_BusinessCombinationContingentConsiderationArrangementsChangeInTheRangeOfOutcomesContingentConsiderationLiabilityValueHigh_0D815786ED3ED6AE342935BC8D93E2C8" xlink:type="locator" />
    <link:definitionArc order="2" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_FD0E4AFC43C08B2C4D9135BC8D937CEF" xlink:to="loc_us-gaap_BusinessCombinationContingentConsiderationArrangementsChangeInTheRangeOfOutcomesContingentConsiderationLiabilityValueHigh_0D815786ED3ED6AE342935BC8D93E2C8" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_BusinessCombinationConsiderationTransferred1" xlink:label="loc_us-gaap_BusinessCombinationConsiderationTransferred1_E6F8E9A6118E5266AC2F35BC8D933204" xlink:type="locator" />
    <link:definitionArc order="3" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_FD0E4AFC43C08B2C4D9135BC8D937CEF" xlink:to="loc_us-gaap_BusinessCombinationConsiderationTransferred1_E6F8E9A6118E5266AC2F35BC8D933204" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_PaymentsToAcquireBusinessesGross" xlink:label="loc_us-gaap_PaymentsToAcquireBusinessesGross_3966A31FDC446C1F1C6935BC8D9460AC" xlink:type="locator" />
    <link:definitionArc order="4" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_FD0E4AFC43C08B2C4D9135BC8D937CEF" xlink:to="loc_us-gaap_PaymentsToAcquireBusinessesGross_3966A31FDC446C1F1C6935BC8D9460AC" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_BusinessCombinationContingentConsiderationLiability" xlink:label="loc_us-gaap_BusinessCombinationContingentConsiderationLiability_5313C83A9CD02E68DDF435BC8D949A0A" xlink:type="locator" />
    <link:definitionArc order="5" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_FD0E4AFC43C08B2C4D9135BC8D937CEF" xlink:to="loc_us-gaap_BusinessCombinationContingentConsiderationLiability_5313C83A9CD02E68DDF435BC8D949A0A" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueLow" xlink:label="loc_us-gaap_BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueLow_B0037A2FF888396C0FE835BC8D9457FE" xlink:type="locator" />
    <link:definitionArc order="6" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_FD0E4AFC43C08B2C4D9135BC8D937CEF" xlink:to="loc_us-gaap_BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueLow_B0037A2FF888396C0FE835BC8D9457FE" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueHigh" xlink:label="loc_us-gaap_BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueHigh_BEF94DBA79763E56940635BC8D94F698" xlink:type="locator" />
    <link:definitionArc order="7" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_FD0E4AFC43C08B2C4D9135BC8D937CEF" xlink:to="loc_us-gaap_BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueHigh_BEF94DBA79763E56940635BC8D94F698" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1" xlink:label="loc_us-gaap_BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1_61A28FA16D79531D01D035BC8D943701" xlink:type="locator" />
    <link:definitionArc order="8" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_FD0E4AFC43C08B2C4D9135BC8D937CEF" xlink:to="loc_us-gaap_BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1_61A28FA16D79531D01D035BC8D943701" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_PaymentsForPreviousAcquisition" xlink:label="loc_us-gaap_PaymentsForPreviousAcquisition_95D2AEA5918A7D00E78935BC8D95C7A0" xlink:type="locator" />
    <link:definitionArc order="9" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_FD0E4AFC43C08B2C4D9135BC8D937CEF" xlink:to="loc_us-gaap_PaymentsForPreviousAcquisition_95D2AEA5918A7D00E78935BC8D95C7A0" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife" xlink:label="loc_us-gaap_AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife_167E44A37A2FA2126CEB35BC8D9533FF" xlink:type="locator" />
    <link:definitionArc order="10" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_FD0E4AFC43C08B2C4D9135BC8D937CEF" xlink:to="loc_us-gaap_AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife_167E44A37A2FA2126CEB35BC8D9533FF" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_BusinessAcquisitionPurchasePriceAllocationGoodwillExpectedTaxDeductibleAmount" xlink:label="loc_us-gaap_BusinessAcquisitionPurchasePriceAllocationGoodwillExpectedTaxDeductibleAmount_276ECD7DDABF54C3E67135BC8D951179" xlink:type="locator" />
    <link:definitionArc order="11" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_FD0E4AFC43C08B2C4D9135BC8D937CEF" xlink:to="loc_us-gaap_BusinessAcquisitionPurchasePriceAllocationGoodwillExpectedTaxDeductibleAmount_276ECD7DDABF54C3E67135BC8D951179" xlink:type="arc" />
  </link:definitionLink>
  <link:definitionLink xlink:role="http://cognex.com/role/AcquisitionsGviVenturesIncPurchasePriceAllocationDetails" xlink:type="extended">
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_BusinessAcquisitionLineItems" xlink:label="loc_us-gaap_BusinessAcquisitionLineItems_E421A0CCCBBB0CED41CDF3C8FDC724CC" xlink:type="locator" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable" xlink:label="loc_us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable_F04CD89AB9B85DF1E10BF3C8FDC58941" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_E421A0CCCBBB0CED41CDF3C8FDC724CC" xlink:to="loc_us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable_F04CD89AB9B85DF1E10BF3C8FDC58941" xlink:type="arc" xbrldt:closed="true" xbrldt:contextElement="segment" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_90F9657AEAB94373562CF3C8FDC6A226" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable_F04CD89AB9B85DF1E10BF3C8FDC58941" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_90F9657AEAB94373562CF3C8FDC6A226" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_E1B25A28326B069EA439F3C8FDC60D24_default" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_90F9657AEAB94373562CF3C8FDC6A226" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_E1B25A28326B069EA439F3C8FDC60D24_default" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_E1B25A28326B069EA439F3C8FDC60D24" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_90F9657AEAB94373562CF3C8FDC6A226" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_E1B25A28326B069EA439F3C8FDC60D24" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_TechnologyBasedIntangibleAssetsMember" xlink:label="loc_us-gaap_TechnologyBasedIntangibleAssetsMember_4F18DF14785DEC9EEBE3F3C8FDC6B918" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_E1B25A28326B069EA439F3C8FDC60D24" xlink:to="loc_us-gaap_TechnologyBasedIntangibleAssetsMember_4F18DF14785DEC9EEBE3F3C8FDC6B918" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_CustomerRelationshipsMember" xlink:label="loc_us-gaap_CustomerRelationshipsMember_D9AEE6D7693E17DAE8AAF3C8FDC6E333" xlink:type="locator" />
    <link:definitionArc order="2" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_E1B25A28326B069EA439F3C8FDC60D24" xlink:to="loc_us-gaap_CustomerRelationshipsMember_D9AEE6D7693E17DAE8AAF3C8FDC6E333" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_BusinessAcquisitionAxis" xlink:label="loc_us-gaap_BusinessAcquisitionAxis_E5BDE1420C011399F979F3C8FDC72D4A" xlink:type="locator" />
    <link:definitionArc order="2" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable_F04CD89AB9B85DF1E10BF3C8FDC58941" xlink:to="loc_us-gaap_BusinessAcquisitionAxis_E5BDE1420C011399F979F3C8FDC72D4A" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_BusinessAcquisitionAcquireeDomain" xlink:label="loc_us-gaap_BusinessAcquisitionAcquireeDomain_6659BF5C3D058403B3EBF3C8FDC76FD3_default" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_BusinessAcquisitionAxis_E5BDE1420C011399F979F3C8FDC72D4A" xlink:to="loc_us-gaap_BusinessAcquisitionAcquireeDomain_6659BF5C3D058403B3EBF3C8FDC76FD3_default" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_BusinessAcquisitionAcquireeDomain" xlink:label="loc_us-gaap_BusinessAcquisitionAcquireeDomain_6659BF5C3D058403B3EBF3C8FDC76FD3" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_BusinessAcquisitionAxis_E5BDE1420C011399F979F3C8FDC72D4A" xlink:to="loc_us-gaap_BusinessAcquisitionAcquireeDomain_6659BF5C3D058403B3EBF3C8FDC76FD3" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_GViVenturesInc.Member" xlink:label="loc_cgnx_GViVenturesInc.Member_96553392107013F16660F3C8FDC758C3" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_BusinessAcquisitionAcquireeDomain_6659BF5C3D058403B3EBF3C8FDC76FD3" xlink:to="loc_cgnx_GViVenturesInc.Member_96553392107013F16660F3C8FDC758C3" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsReceivables" xlink:label="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsReceivables_DDA3FE3D3276A42F3B83F3C8FDC85187" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_E421A0CCCBBB0CED41CDF3C8FDC724CC" xlink:to="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsReceivables_DDA3FE3D3276A42F3B83F3C8FDC85187" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedInventory" xlink:label="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedInventory_AE2B86A1BEFBD85FD74DF3C8FDC8E031" xlink:type="locator" />
    <link:definitionArc order="2" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_E421A0CCCBBB0CED41CDF3C8FDC724CC" xlink:to="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedInventory_AE2B86A1BEFBD85FD74DF3C8FDC8E031" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsPrepaidExpenseAndOtherAssets" xlink:label="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsPrepaidExpenseAndOtherAssets_D1D99365400A5D963E90F3C8FDC89CFA" xlink:type="locator" />
    <link:definitionArc order="3" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_E421A0CCCBBB0CED41CDF3C8FDC724CC" xlink:to="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsPrepaidExpenseAndOtherAssets_D1D99365400A5D963E90F3C8FDC89CFA" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccountsPayable" xlink:label="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccountsPayable_E8B7563BF3CE74324B82F3C8FDC8BC02" xlink:type="locator" />
    <link:definitionArc order="4" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_E421A0CCCBBB0CED41CDF3C8FDC724CC" xlink:to="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccountsPayable_E8B7563BF3CE74324B82F3C8FDC8BC02" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredandLiabilitiesAssumedCurrentLiabilitiesAccruedExpenses" xlink:label="loc_cgnx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredandLiabilitiesAssumedCurrentLiabilitiesAccruedExpenses_D8A6B683719155508122F3C8FDC87327" xlink:type="locator" />
    <link:definitionArc order="5" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_E421A0CCCBBB0CED41CDF3C8FDC724CC" xlink:to="loc_cgnx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredandLiabilitiesAssumedCurrentLiabilitiesAccruedExpenses_D8A6B683719155508122F3C8FDC87327" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles" xlink:label="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles_F15277EA890E3A941B3EF3C8FDC9E12F" xlink:type="locator" />
    <link:definitionArc order="6" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_E421A0CCCBBB0CED41CDF3C8FDC724CC" xlink:to="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles_F15277EA890E3A941B3EF3C8FDC9E12F" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_Goodwill" xlink:label="loc_us-gaap_Goodwill_7F58A89EDC7489F89170F3C8FDC900E6" xlink:type="locator" />
    <link:definitionArc order="7" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_E421A0CCCBBB0CED41CDF3C8FDC724CC" xlink:to="loc_us-gaap_Goodwill_7F58A89EDC7489F89170F3C8FDC900E6" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet" xlink:label="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet_1DA8A2BDDA00A48C84C7F3C8FDC97FE8" xlink:type="locator" />
    <link:definitionArc order="8" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_E421A0CCCBBB0CED41CDF3C8FDC724CC" xlink:to="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet_1DA8A2BDDA00A48C84C7F3C8FDC97FE8" xlink:type="arc" />
  </link:definitionLink>
  <link:definitionLink xlink:role="http://cognex.com/role/AcquisitionsSualabCoLtdNarrativeDetails" xlink:type="extended">
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_BusinessAcquisitionLineItems" xlink:label="loc_us-gaap_BusinessAcquisitionLineItems_4C2117681C0883FFD01B37125B7260F1" xlink:type="locator" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable" xlink:label="loc_us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable_2ABFF03934135A52572237125B6E52F1" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_4C2117681C0883FFD01B37125B7260F1" xlink:to="loc_us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable_2ABFF03934135A52572237125B6E52F1" xlink:type="arc" xbrldt:closed="true" xbrldt:contextElement="segment" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_BusinessAcquisitionAxis" xlink:label="loc_us-gaap_BusinessAcquisitionAxis_5A7C93BAF2747A5F600637125B6F44C2" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable_2ABFF03934135A52572237125B6E52F1" xlink:to="loc_us-gaap_BusinessAcquisitionAxis_5A7C93BAF2747A5F600637125B6F44C2" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_BusinessAcquisitionAcquireeDomain" xlink:label="loc_us-gaap_BusinessAcquisitionAcquireeDomain_5982EF170F03FA776DA437125B6F94CB_default" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_BusinessAcquisitionAxis_5A7C93BAF2747A5F600637125B6F44C2" xlink:to="loc_us-gaap_BusinessAcquisitionAcquireeDomain_5982EF170F03FA776DA437125B6F94CB_default" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_BusinessAcquisitionAcquireeDomain" xlink:label="loc_us-gaap_BusinessAcquisitionAcquireeDomain_5982EF170F03FA776DA437125B6F94CB" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_BusinessAcquisitionAxis_5A7C93BAF2747A5F600637125B6F44C2" xlink:to="loc_us-gaap_BusinessAcquisitionAcquireeDomain_5982EF170F03FA776DA437125B6F94CB" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_SualabCo.Ltd.Member" xlink:label="loc_cgnx_SualabCo.Ltd.Member_62B8C8326652AF19EDE237125B6FF359" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_BusinessAcquisitionAcquireeDomain_5982EF170F03FA776DA437125B6F94CB" xlink:to="loc_cgnx_SualabCo.Ltd.Member_62B8C8326652AF19EDE237125B6FF359" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_830AAA883C21708B409237125B705D41" xlink:type="locator" />
    <link:definitionArc order="2" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable_2ABFF03934135A52572237125B6E52F1" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_830AAA883C21708B409237125B705D41" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_B482F1816E009946E79A37125B704E44_default" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_830AAA883C21708B409237125B705D41" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_B482F1816E009946E79A37125B704E44_default" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_B482F1816E009946E79A37125B704E44" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_830AAA883C21708B409237125B705D41" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_B482F1816E009946E79A37125B704E44" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_CompletedTechnologyMember" xlink:label="loc_cgnx_CompletedTechnologyMember_D7ED7D5D82C2D9CDA08937125B709CC3" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_B482F1816E009946E79A37125B704E44" xlink:to="loc_cgnx_CompletedTechnologyMember_D7ED7D5D82C2D9CDA08937125B709CC3" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_CustomerRelationshipsMember" xlink:label="loc_us-gaap_CustomerRelationshipsMember_95BE986831015E5A901137125B70F939" xlink:type="locator" />
    <link:definitionArc order="2" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_B482F1816E009946E79A37125B704E44" xlink:to="loc_us-gaap_CustomerRelationshipsMember_95BE986831015E5A901137125B70F939" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_TrademarksMember" xlink:label="loc_us-gaap_TrademarksMember_CD1A871B5EF67093175037125B71BC6D" xlink:type="locator" />
    <link:definitionArc order="3" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_B482F1816E009946E79A37125B704E44" xlink:to="loc_us-gaap_TrademarksMember_CD1A871B5EF67093175037125B71BC6D" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_NoncompeteAgreementsMember" xlink:label="loc_us-gaap_NoncompeteAgreementsMember_970544AFD2DA67DF3A3F37125B71DFE3" xlink:type="locator" />
    <link:definitionArc order="4" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_B482F1816E009946E79A37125B704E44" xlink:to="loc_us-gaap_NoncompeteAgreementsMember_970544AFD2DA67DF3A3F37125B71DFE3" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2018/elts/srt-2018-01-31.xsd#srt_RangeAxis" xlink:label="loc_srt_RangeAxis_EEBAEE32B875BC8DDC3E37125B713A52" xlink:type="locator" />
    <link:definitionArc order="3" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable_2ABFF03934135A52572237125B6E52F1" xlink:to="loc_srt_RangeAxis_EEBAEE32B875BC8DDC3E37125B713A52" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2018/elts/srt-2018-01-31.xsd#srt_RangeMember" xlink:label="loc_srt_RangeMember_163B9AE7A97CAF7715D137125B717C32_default" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_srt_RangeAxis_EEBAEE32B875BC8DDC3E37125B713A52" xlink:to="loc_srt_RangeMember_163B9AE7A97CAF7715D137125B717C32_default" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2018/elts/srt-2018-01-31.xsd#srt_RangeMember" xlink:label="loc_srt_RangeMember_163B9AE7A97CAF7715D137125B717C32" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_srt_RangeAxis_EEBAEE32B875BC8DDC3E37125B713A52" xlink:to="loc_srt_RangeMember_163B9AE7A97CAF7715D137125B717C32" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2018/elts/srt-2018-01-31.xsd#srt_MinimumMember" xlink:label="loc_srt_MinimumMember_B54AE2FC8017496DD86537125B71580E" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srt_RangeMember_163B9AE7A97CAF7715D137125B717C32" xlink:to="loc_srt_MinimumMember_B54AE2FC8017496DD86537125B71580E" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2018/elts/srt-2018-01-31.xsd#srt_MaximumMember" xlink:label="loc_srt_MaximumMember_261A41E1215E1D58DBA237125B729148" xlink:type="locator" />
    <link:definitionArc order="2" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srt_RangeMember_163B9AE7A97CAF7715D137125B717C32" xlink:to="loc_srt_MaximumMember_261A41E1215E1D58DBA237125B729148" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife" xlink:label="loc_us-gaap_AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife_B1CFE3981CB44B1D6C6A37125B72C3A6" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_4C2117681C0883FFD01B37125B7260F1" xlink:to="loc_us-gaap_AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife_B1CFE3981CB44B1D6C6A37125B72C3A6" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_BusinessAcquisitionPurchasePriceAllocationGoodwillExpectedTaxDeductibleAmount" xlink:label="loc_us-gaap_BusinessAcquisitionPurchasePriceAllocationGoodwillExpectedTaxDeductibleAmount_277419A4BCF1721B99B637125B72F31A" xlink:type="locator" />
    <link:definitionArc order="2" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_4C2117681C0883FFD01B37125B7260F1" xlink:to="loc_us-gaap_BusinessAcquisitionPurchasePriceAllocationGoodwillExpectedTaxDeductibleAmount_277419A4BCF1721B99B637125B72F31A" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_BusinessCombinationConsiderationTransferred1" xlink:label="loc_us-gaap_BusinessCombinationConsiderationTransferred1_DDAD9CE3A0CFE169B12E37125B72B8D7" xlink:type="locator" />
    <link:definitionArc order="3" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_4C2117681C0883FFD01B37125B7260F1" xlink:to="loc_us-gaap_BusinessCombinationConsiderationTransferred1_DDAD9CE3A0CFE169B12E37125B72B8D7" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_PaymentsToAcquireBusinessesGross" xlink:label="loc_us-gaap_PaymentsToAcquireBusinessesGross_B010D6C362673E12568D37125B7279DD" xlink:type="locator" />
    <link:definitionArc order="4" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_4C2117681C0883FFD01B37125B7260F1" xlink:to="loc_us-gaap_PaymentsToAcquireBusinessesGross_B010D6C362673E12568D37125B7279DD" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_BusinessCombinationContingentConsiderationLiability" xlink:label="loc_us-gaap_BusinessCombinationContingentConsiderationLiability_5433D3CB3389F8E76DF137125B7361B3" xlink:type="locator" />
    <link:definitionArc order="5" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_4C2117681C0883FFD01B37125B7260F1" xlink:to="loc_us-gaap_BusinessCombinationContingentConsiderationLiability_5433D3CB3389F8E76DF137125B7361B3" xlink:type="arc" />
  </link:definitionLink>
  <link:definitionLink xlink:role="http://cognex.com/role/AcquisitionsSualabCoLtdPurchasePriceAllocationDetails" xlink:type="extended">
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_BusinessAcquisitionLineItems" xlink:label="loc_us-gaap_BusinessAcquisitionLineItems_9FAA825C117F28AF403C170C90C010C5" xlink:type="locator" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable" xlink:label="loc_us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable_7733BCFCDF374138726F170C90B7C11B" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_9FAA825C117F28AF403C170C90C010C5" xlink:to="loc_us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable_7733BCFCDF374138726F170C90B7C11B" xlink:type="arc" xbrldt:closed="true" xbrldt:contextElement="segment" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_BusinessAcquisitionAxis" xlink:label="loc_us-gaap_BusinessAcquisitionAxis_B7EDE150DEE6814FA07C170C90BCF3A3" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable_7733BCFCDF374138726F170C90B7C11B" xlink:to="loc_us-gaap_BusinessAcquisitionAxis_B7EDE150DEE6814FA07C170C90BCF3A3" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_BusinessAcquisitionAcquireeDomain" xlink:label="loc_us-gaap_BusinessAcquisitionAcquireeDomain_01934C24162EE4F39987170C90BD47AF_default" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_BusinessAcquisitionAxis_B7EDE150DEE6814FA07C170C90BCF3A3" xlink:to="loc_us-gaap_BusinessAcquisitionAcquireeDomain_01934C24162EE4F39987170C90BD47AF_default" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_BusinessAcquisitionAcquireeDomain" xlink:label="loc_us-gaap_BusinessAcquisitionAcquireeDomain_01934C24162EE4F39987170C90BD47AF" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_BusinessAcquisitionAxis_B7EDE150DEE6814FA07C170C90BCF3A3" xlink:to="loc_us-gaap_BusinessAcquisitionAcquireeDomain_01934C24162EE4F39987170C90BD47AF" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_SualabCo.Ltd.Member" xlink:label="loc_cgnx_SualabCo.Ltd.Member_C4A70D14907CE677C9E6170C90BD273A" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_BusinessAcquisitionAcquireeDomain_01934C24162EE4F39987170C90BD47AF" xlink:to="loc_cgnx_SualabCo.Ltd.Member_C4A70D14907CE677C9E6170C90BD273A" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_97E9456ABFDC971C62B6170C90BE9885" xlink:type="locator" />
    <link:definitionArc order="2" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable_7733BCFCDF374138726F170C90B7C11B" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_97E9456ABFDC971C62B6170C90BE9885" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_CDB17CFC45888367CDD8170C90BE2525_default" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_97E9456ABFDC971C62B6170C90BE9885" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_CDB17CFC45888367CDD8170C90BE2525_default" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_CDB17CFC45888367CDD8170C90BE2525" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_97E9456ABFDC971C62B6170C90BE9885" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_CDB17CFC45888367CDD8170C90BE2525" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_CompletedTechnologyMember" xlink:label="loc_cgnx_CompletedTechnologyMember_042ECB83F6A892D9807E170C90BE6D71" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_CDB17CFC45888367CDD8170C90BE2525" xlink:to="loc_cgnx_CompletedTechnologyMember_042ECB83F6A892D9807E170C90BE6D71" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_InprocessTechnologyMember" xlink:label="loc_cgnx_InprocessTechnologyMember_6F9553E75AF438AD324D170C90BEB925" xlink:type="locator" />
    <link:definitionArc order="2" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_CDB17CFC45888367CDD8170C90BE2525" xlink:to="loc_cgnx_InprocessTechnologyMember_6F9553E75AF438AD324D170C90BEB925" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_CustomerRelationshipsMember" xlink:label="loc_us-gaap_CustomerRelationshipsMember_E424C7723B5138AC1C4F170C90BFE074" xlink:type="locator" />
    <link:definitionArc order="3" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_CDB17CFC45888367CDD8170C90BE2525" xlink:to="loc_us-gaap_CustomerRelationshipsMember_E424C7723B5138AC1C4F170C90BFE074" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_NoncompeteAgreementsMember" xlink:label="loc_us-gaap_NoncompeteAgreementsMember_131DB1E5614F42C05E3D170C90BF6730" xlink:type="locator" />
    <link:definitionArc order="4" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_CDB17CFC45888367CDD8170C90BE2525" xlink:to="loc_us-gaap_NoncompeteAgreementsMember_131DB1E5614F42C05E3D170C90BF6730" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_TrademarksMember" xlink:label="loc_us-gaap_TrademarksMember_C6D81AAB3054590263EE170C90BF9349" xlink:type="locator" />
    <link:definitionArc order="5" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_CDB17CFC45888367CDD8170C90BE2525" xlink:to="loc_us-gaap_TrademarksMember_C6D81AAB3054590263EE170C90BF9349" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCashAndEquivalents" xlink:label="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCashAndEquivalents_BFEBAEB4B6EA4D93738F170C90C0AA00" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_9FAA825C117F28AF403C170C90C010C5" xlink:to="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCashAndEquivalents_BFEBAEB4B6EA4D93738F170C90C0AA00" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsMarketableSecurities" xlink:label="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsMarketableSecurities_A1F9D788A66E7210B12B170C90C0B066" xlink:type="locator" />
    <link:definitionArc order="2" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_9FAA825C117F28AF403C170C90C010C5" xlink:to="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsMarketableSecurities_A1F9D788A66E7210B12B170C90C0B066" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsReceivables" xlink:label="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsReceivables_06F01049DB5C28ABBEDD170C90C067AE" xlink:type="locator" />
    <link:definitionArc order="3" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_9FAA825C117F28AF403C170C90C010C5" xlink:to="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsReceivables_06F01049DB5C28ABBEDD170C90C067AE" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedInventory" xlink:label="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedInventory_58D578A23843F283061A170C90C08998" xlink:type="locator" />
    <link:definitionArc order="4" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_9FAA825C117F28AF403C170C90C010C5" xlink:to="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedInventory_58D578A23843F283061A170C90C08998" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsPrepaidExpenseAndOtherAssets" xlink:label="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsPrepaidExpenseAndOtherAssets_C3A6065EA48009C4DAE8170C90C108F1" xlink:type="locator" />
    <link:definitionArc order="5" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_9FAA825C117F28AF403C170C90C010C5" xlink:to="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsPrepaidExpenseAndOtherAssets_C3A6065EA48009C4DAE8170C90C108F1" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment" xlink:label="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment_496B9D73F1AAD0F0805D170C90C16102" xlink:type="locator" />
    <link:definitionArc order="6" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_9FAA825C117F28AF403C170C90C010C5" xlink:to="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment_496B9D73F1AAD0F0805D170C90C16102" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredandLiabilitiesAssumedOperatingLeaseRightofUseAsset" xlink:label="loc_cgnx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredandLiabilitiesAssumedOperatingLeaseRightofUseAsset_9115019EB9D5A8F9E6F0170C90C10AF3" xlink:type="locator" />
    <link:definitionArc order="7" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_9FAA825C117F28AF403C170C90C010C5" xlink:to="loc_cgnx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredandLiabilitiesAssumedOperatingLeaseRightofUseAsset_9115019EB9D5A8F9E6F0170C90C10AF3" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxAssets" xlink:label="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxAssets_3B9427677E1660BD7363170C90C106ED" xlink:type="locator" />
    <link:definitionArc order="8" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_9FAA825C117F28AF403C170C90C010C5" xlink:to="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxAssets_3B9427677E1660BD7363170C90C106ED" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNoncurrentAssets" xlink:label="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNoncurrentAssets_A07AC6432D2B4A839BA2170C90C19454" xlink:type="locator" />
    <link:definitionArc order="9" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_9FAA825C117F28AF403C170C90C010C5" xlink:to="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNoncurrentAssets_A07AC6432D2B4A839BA2170C90C19454" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccountsPayable" xlink:label="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccountsPayable_FAB84C8696013E2646C9170C90C2AF06" xlink:type="locator" />
    <link:definitionArc order="10" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_9FAA825C117F28AF403C170C90C010C5" xlink:to="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccountsPayable_FAB84C8696013E2646C9170C90C2AF06" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilities" xlink:label="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilities_48A095E70DAEA6B4905F170C90C2A184" xlink:type="locator" />
    <link:definitionArc order="11" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_9FAA825C117F28AF403C170C90C010C5" xlink:to="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilities_48A095E70DAEA6B4905F170C90C2A184" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredandLiabilitiesAssumedCurrentLiabilitiesDeferredRevenueandCustomerDeposits" xlink:label="loc_cgnx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredandLiabilitiesAssumedCurrentLiabilitiesDeferredRevenueandCustomerDeposits_9159D28CDB3F927C6327170C90C28358" xlink:type="locator" />
    <link:definitionArc order="12" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_9FAA825C117F28AF403C170C90C010C5" xlink:to="loc_cgnx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredandLiabilitiesAssumedCurrentLiabilitiesDeferredRevenueandCustomerDeposits_9159D28CDB3F927C6327170C90C28358" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredandLiabilitiesAssumedOperatingLeaseLiabilityCurrent" xlink:label="loc_cgnx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredandLiabilitiesAssumedOperatingLeaseLiabilityCurrent_0360B65C7220BCFB745A170C90C22494" xlink:type="locator" />
    <link:definitionArc order="13" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_9FAA825C117F28AF403C170C90C010C5" xlink:to="loc_cgnx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredandLiabilitiesAssumedOperatingLeaseLiabilityCurrent_0360B65C7220BCFB745A170C90C22494" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredandLiabilitiesAssumedOperatingLeaseLiabilityNoncurrent" xlink:label="loc_cgnx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredandLiabilitiesAssumedOperatingLeaseLiabilityNoncurrent_1CD146FFBF603BFAFD03170C90C360DF" xlink:type="locator" />
    <link:definitionArc order="14" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_9FAA825C117F28AF403C170C90C010C5" xlink:to="loc_cgnx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredandLiabilitiesAssumedOperatingLeaseLiabilityNoncurrent_1CD146FFBF603BFAFD03170C90C360DF" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesDeferredRevenue" xlink:label="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesDeferredRevenue_49D091EBFC3AEFB8D153170C90C337CA" xlink:type="locator" />
    <link:definitionArc order="15" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_9FAA825C117F28AF403C170C90C010C5" xlink:to="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesDeferredRevenue_49D091EBFC3AEFB8D153170C90C337CA" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNoncurrentLiabilitiesOther" xlink:label="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNoncurrentLiabilitiesOther_6CD513AA624F670EBEF8170C90C3383A" xlink:type="locator" />
    <link:definitionArc order="16" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_9FAA825C117F28AF403C170C90C010C5" xlink:to="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNoncurrentLiabilitiesOther_6CD513AA624F670EBEF8170C90C3383A" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibleAssetsOtherThanGoodwill" xlink:label="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibleAssetsOtherThanGoodwill_75A3A6760BFEF7E17B95170C90C39CCC" xlink:type="locator" />
    <link:definitionArc order="17" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_9FAA825C117F28AF403C170C90C010C5" xlink:to="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibleAssetsOtherThanGoodwill_75A3A6760BFEF7E17B95170C90C39CCC" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_Goodwill" xlink:label="loc_us-gaap_Goodwill_58CD1C4D95FA83D808E6170C90C34F16" xlink:type="locator" />
    <link:definitionArc order="18" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_9FAA825C117F28AF403C170C90C010C5" xlink:to="loc_us-gaap_Goodwill_58CD1C4D95FA83D808E6170C90C34F16" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet" xlink:label="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet_3149804EFB942C3A0DE4170C90C46CE3" xlink:type="locator" />
    <link:definitionArc order="19" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_9FAA825C117F28AF403C170C90C010C5" xlink:to="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet_3149804EFB942C3A0DE4170C90C46CE3" xlink:type="arc" />
  </link:definitionLink>
  <link:definitionLink xlink:role="http://cognex.com/role/AcquisitionsVidiSystemsSADetails" xlink:type="extended">
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_BusinessAcquisitionLineItems" xlink:label="loc_us-gaap_BusinessAcquisitionLineItems_F5C363D988AE567C88AA8095E8C3A6D8" xlink:type="locator" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable" xlink:label="loc_us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable_8E35436917E8EE1B99A98095E8C272AE" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_F5C363D988AE567C88AA8095E8C3A6D8" xlink:to="loc_us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable_8E35436917E8EE1B99A98095E8C272AE" xlink:type="arc" xbrldt:closed="true" xbrldt:contextElement="segment" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_A86104DD99153F7892E48095E8C27459" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable_8E35436917E8EE1B99A98095E8C272AE" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_A86104DD99153F7892E48095E8C27459" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_01EE5FE2A585244192968095E8C27DA1_default" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_A86104DD99153F7892E48095E8C27459" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_01EE5FE2A585244192968095E8C27DA1_default" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_01EE5FE2A585244192968095E8C27DA1" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_A86104DD99153F7892E48095E8C27459" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_01EE5FE2A585244192968095E8C27DA1" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_NoncompeteAgreementsMember" xlink:label="loc_us-gaap_NoncompeteAgreementsMember_BEACA4D89251AB0B06EB8095E8C23FBD" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_01EE5FE2A585244192968095E8C27DA1" xlink:to="loc_us-gaap_NoncompeteAgreementsMember_BEACA4D89251AB0B06EB8095E8C23FBD" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_TechnologyBasedIntangibleAssetsMember" xlink:label="loc_us-gaap_TechnologyBasedIntangibleAssetsMember_0AEBBA10309989D6610B8095E8C2411B" xlink:type="locator" />
    <link:definitionArc order="2" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_01EE5FE2A585244192968095E8C27DA1" xlink:to="loc_us-gaap_TechnologyBasedIntangibleAssetsMember_0AEBBA10309989D6610B8095E8C2411B" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_BusinessAcquisitionAxis" xlink:label="loc_us-gaap_BusinessAcquisitionAxis_00A32231221192C6CE098095E8C2578E" xlink:type="locator" />
    <link:definitionArc order="2" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable_8E35436917E8EE1B99A98095E8C272AE" xlink:to="loc_us-gaap_BusinessAcquisitionAxis_00A32231221192C6CE098095E8C2578E" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_BusinessAcquisitionAcquireeDomain" xlink:label="loc_us-gaap_BusinessAcquisitionAcquireeDomain_601CBA3D08B7F489709C8095E8C2D9A9_default" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_BusinessAcquisitionAxis_00A32231221192C6CE098095E8C2578E" xlink:to="loc_us-gaap_BusinessAcquisitionAcquireeDomain_601CBA3D08B7F489709C8095E8C2D9A9_default" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_BusinessAcquisitionAcquireeDomain" xlink:label="loc_us-gaap_BusinessAcquisitionAcquireeDomain_601CBA3D08B7F489709C8095E8C2D9A9" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_BusinessAcquisitionAxis_00A32231221192C6CE098095E8C2578E" xlink:to="loc_us-gaap_BusinessAcquisitionAcquireeDomain_601CBA3D08B7F489709C8095E8C2D9A9" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_ViDiSystemsS.A.Member" xlink:label="loc_cgnx_ViDiSystemsS.A.Member_3073C8EA63F1BC4B0C058095E8C32787" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_BusinessAcquisitionAcquireeDomain_601CBA3D08B7F489709C8095E8C2D9A9" xlink:to="loc_cgnx_ViDiSystemsS.A.Member_3073C8EA63F1BC4B0C058095E8C32787" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_BusinessCombinationConsiderationTransferred1" xlink:label="loc_us-gaap_BusinessCombinationConsiderationTransferred1_20EFE4FC46C8F2DD8CB28095E8C35341" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_F5C363D988AE567C88AA8095E8C3A6D8" xlink:to="loc_us-gaap_BusinessCombinationConsiderationTransferred1_20EFE4FC46C8F2DD8CB28095E8C35341" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_PaymentsToAcquireBusinessesGross" xlink:label="loc_us-gaap_PaymentsToAcquireBusinessesGross_BB92F261DBD2B66FC3C58095E8C3E1C4" xlink:type="locator" />
    <link:definitionArc order="2" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_F5C363D988AE567C88AA8095E8C3A6D8" xlink:to="loc_us-gaap_PaymentsToAcquireBusinessesGross_BB92F261DBD2B66FC3C58095E8C3E1C4" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_BusinessCombinationConsiderationTransferredLiabilitiesIncurred" xlink:label="loc_us-gaap_BusinessCombinationConsiderationTransferredLiabilitiesIncurred_5DB90D661E6CB54964BC8095E8C32C0F" xlink:type="locator" />
    <link:definitionArc order="3" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_F5C363D988AE567C88AA8095E8C3A6D8" xlink:to="loc_us-gaap_BusinessCombinationConsiderationTransferredLiabilitiesIncurred_5DB90D661E6CB54964BC8095E8C32C0F" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife" xlink:label="loc_us-gaap_AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife_4F1D2A6E239E7FA4C01D8095E8C3DBF5" xlink:type="locator" />
    <link:definitionArc order="4" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_F5C363D988AE567C88AA8095E8C3A6D8" xlink:to="loc_us-gaap_AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife_4F1D2A6E239E7FA4C01D8095E8C3DBF5" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_Taxdeductiblegoodwill" xlink:label="loc_cgnx_Taxdeductiblegoodwill_94D087E4BC4AD3E22C228095E8C30838" xlink:type="locator" />
    <link:definitionArc order="5" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_F5C363D988AE567C88AA8095E8C3A6D8" xlink:to="loc_cgnx_Taxdeductiblegoodwill_94D087E4BC4AD3E22C228095E8C30838" xlink:type="arc" />
  </link:definitionLink>
  <link:definitionLink xlink:role="http://cognex.com/role/AcquisitionsVidiSystemsSAPurchasePriceAllocationDetails" xlink:type="extended">
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_BusinessAcquisitionLineItems" xlink:label="loc_us-gaap_BusinessAcquisitionLineItems_A987CF8C669427676523FD820CAEADCD" xlink:type="locator" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable" xlink:label="loc_us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable_20D6FEE5E512026A4971FD820CADA846" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_A987CF8C669427676523FD820CAEADCD" xlink:to="loc_us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable_20D6FEE5E512026A4971FD820CADA846" xlink:type="arc" xbrldt:closed="true" xbrldt:contextElement="segment" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_77BF7BBE07CD5752FDCBFD820CAD677E" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable_20D6FEE5E512026A4971FD820CADA846" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_77BF7BBE07CD5752FDCBFD820CAD677E" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_A77CF482F882176F5235FD820CADAF47_default" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_77BF7BBE07CD5752FDCBFD820CAD677E" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_A77CF482F882176F5235FD820CADAF47_default" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_A77CF482F882176F5235FD820CADAF47" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_77BF7BBE07CD5752FDCBFD820CAD677E" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_A77CF482F882176F5235FD820CADAF47" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_NoncompeteAgreementsMember" xlink:label="loc_us-gaap_NoncompeteAgreementsMember_B09C73EFA2FDB0FA1D70FD820CADFCC4" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_A77CF482F882176F5235FD820CADAF47" xlink:to="loc_us-gaap_NoncompeteAgreementsMember_B09C73EFA2FDB0FA1D70FD820CADFCC4" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_TechnologyBasedIntangibleAssetsMember" xlink:label="loc_us-gaap_TechnologyBasedIntangibleAssetsMember_31DAAE689F5E185B4467FD820CAEE95D" xlink:type="locator" />
    <link:definitionArc order="2" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_A77CF482F882176F5235FD820CADAF47" xlink:to="loc_us-gaap_TechnologyBasedIntangibleAssetsMember_31DAAE689F5E185B4467FD820CAEE95D" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_BusinessAcquisitionAxis" xlink:label="loc_us-gaap_BusinessAcquisitionAxis_E4509545B36276306147FD820CAE9F47" xlink:type="locator" />
    <link:definitionArc order="2" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable_20D6FEE5E512026A4971FD820CADA846" xlink:to="loc_us-gaap_BusinessAcquisitionAxis_E4509545B36276306147FD820CAE9F47" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_BusinessAcquisitionAcquireeDomain" xlink:label="loc_us-gaap_BusinessAcquisitionAcquireeDomain_793BA5E6581517855C7AFD820CAE4814_default" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_BusinessAcquisitionAxis_E4509545B36276306147FD820CAE9F47" xlink:to="loc_us-gaap_BusinessAcquisitionAcquireeDomain_793BA5E6581517855C7AFD820CAE4814_default" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_BusinessAcquisitionAcquireeDomain" xlink:label="loc_us-gaap_BusinessAcquisitionAcquireeDomain_793BA5E6581517855C7AFD820CAE4814" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_BusinessAcquisitionAxis_E4509545B36276306147FD820CAE9F47" xlink:to="loc_us-gaap_BusinessAcquisitionAcquireeDomain_793BA5E6581517855C7AFD820CAE4814" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_ViDiSystemsS.A.Member" xlink:label="loc_cgnx_ViDiSystemsS.A.Member_6B53770B891DF4C99C36FD820CAE7769" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_BusinessAcquisitionAcquireeDomain_793BA5E6581517855C7AFD820CAE4814" xlink:to="loc_cgnx_ViDiSystemsS.A.Member_6B53770B891DF4C99C36FD820CAE7769" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCashAndEquivalents" xlink:label="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCashAndEquivalents_DD39A66A13759968BFEDFD820CAF939C" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_A987CF8C669427676523FD820CAEADCD" xlink:to="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCashAndEquivalents_DD39A66A13759968BFEDFD820CAF939C" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsReceivables" xlink:label="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsReceivables_4C13CD344053D3394290FD820CAF3B20" xlink:type="locator" />
    <link:definitionArc order="2" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_A987CF8C669427676523FD820CAEADCD" xlink:to="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsReceivables_4C13CD344053D3394290FD820CAF3B20" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsPrepaidExpenseAndOtherAssets" xlink:label="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsPrepaidExpenseAndOtherAssets_D1FCF77809669A8EF003FD820CAFBA61" xlink:type="locator" />
    <link:definitionArc order="3" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_A987CF8C669427676523FD820CAEADCD" xlink:to="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsPrepaidExpenseAndOtherAssets_D1FCF77809669A8EF003FD820CAFBA61" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment" xlink:label="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment_0170EEB402D192BCE853FD820CAF4114" xlink:type="locator" />
    <link:definitionArc order="4" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_A987CF8C669427676523FD820CAEADCD" xlink:to="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment_0170EEB402D192BCE853FD820CAF4114" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxAssets" xlink:label="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxAssets_4A46D21FBA2AD22DF91BFD820CAF3D02" xlink:type="locator" />
    <link:definitionArc order="5" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_A987CF8C669427676523FD820CAEADCD" xlink:to="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxAssets_4A46D21FBA2AD22DF91BFD820CAF3D02" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccountsPayable" xlink:label="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccountsPayable_9AFA68ABF11EC629236EFD820CB0D02B" xlink:type="locator" />
    <link:definitionArc order="6" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_A987CF8C669427676523FD820CAEADCD" xlink:to="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccountsPayable_9AFA68ABF11EC629236EFD820CB0D02B" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredandLiabilitiesAssumedCurrentLiabilitiesAccruedExpenses" xlink:label="loc_cgnx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredandLiabilitiesAssumedCurrentLiabilitiesAccruedExpenses_876D91A9229ACD6B244FFD820CB06427" xlink:type="locator" />
    <link:definitionArc order="7" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_A987CF8C669427676523FD820CAEADCD" xlink:to="loc_cgnx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredandLiabilitiesAssumedCurrentLiabilitiesAccruedExpenses_876D91A9229ACD6B244FFD820CB06427" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxLiabilities" xlink:label="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxLiabilities_0F0CA5C4D8589696BEC8FD820CB01E44" xlink:type="locator" />
    <link:definitionArc order="8" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_A987CF8C669427676523FD820CAEADCD" xlink:to="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxLiabilities_0F0CA5C4D8589696BEC8FD820CB01E44" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles" xlink:label="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles_212B8319D5DE3867EAE5FD820CB05364" xlink:type="locator" />
    <link:definitionArc order="9" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_A987CF8C669427676523FD820CAEADCD" xlink:to="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles_212B8319D5DE3867EAE5FD820CB05364" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_Goodwill" xlink:label="loc_us-gaap_Goodwill_9BB4C453B582942EBD38FD820CB0F566" xlink:type="locator" />
    <link:definitionArc order="10" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_A987CF8C669427676523FD820CAEADCD" xlink:to="loc_us-gaap_Goodwill_9BB4C453B582942EBD38FD820CB0F566" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet" xlink:label="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet_06378B83ECB5632EC772FD820CB0B1DF" xlink:type="locator" />
    <link:definitionArc order="11" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_A987CF8C669427676523FD820CAEADCD" xlink:to="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet_06378B83ECB5632EC772FD820CB0B1DF" xlink:type="arc" />
  </link:definitionLink>
  <link:definitionLink xlink:role="http://cognex.com/role/CashCashEquivalentsAndInvestments" xlink:type="extended" />
  <link:definitionLink xlink:role="http://cognex.com/role/CashCashEquivalentsAndInvestmentsAdditionalInformationDetail" xlink:type="extended" />
  <link:definitionLink xlink:role="http://cognex.com/role/CashCashEquivalentsAndInvestmentsAmortizedCostToFairValueDetail" xlink:type="extended">
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems" xlink:label="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_85B15D9B427CDC7B8F5CF3C90015D28F" xlink:type="locator" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ScheduleOfAvailableForSaleSecuritiesTable" xlink:label="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesTable_4A923AC9D6C810B51D02F3C90012A1DF" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_85B15D9B427CDC7B8F5CF3C90015D28F" xlink:to="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesTable_4A923AC9D6C810B51D02F3C90012A1DF" xlink:type="arc" xbrldt:closed="true" xbrldt:contextElement="segment" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_FinancialInstrumentAxis" xlink:label="loc_us-gaap_FinancialInstrumentAxis_B5BDC526066C5DD04064F3C900123B17" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesTable_4A923AC9D6C810B51D02F3C90012A1DF" xlink:to="loc_us-gaap_FinancialInstrumentAxis_B5BDC526066C5DD04064F3C900123B17" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain" xlink:label="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_8E4517BDA3EFB9EAD817F3C90013FEC1_default" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_FinancialInstrumentAxis_B5BDC526066C5DD04064F3C900123B17" xlink:to="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_8E4517BDA3EFB9EAD817F3C90013FEC1_default" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain" xlink:label="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_8E4517BDA3EFB9EAD817F3C90013FEC1" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_FinancialInstrumentAxis_B5BDC526066C5DD04064F3C900123B17" xlink:to="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_8E4517BDA3EFB9EAD817F3C90013FEC1" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_USTreasurySecuritiesMember" xlink:label="loc_us-gaap_USTreasurySecuritiesMember_7A224CA72DE789C4BADAF3C9001328B4" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_8E4517BDA3EFB9EAD817F3C90013FEC1" xlink:to="loc_us-gaap_USTreasurySecuritiesMember_7A224CA72DE789C4BADAF3C9001328B4" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_AssetBackedSecuritiesMember" xlink:label="loc_us-gaap_AssetBackedSecuritiesMember_C43061B8694BD604D97FF3C90013D2B0" xlink:type="locator" />
    <link:definitionArc order="2" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_8E4517BDA3EFB9EAD817F3C90013FEC1" xlink:to="loc_us-gaap_AssetBackedSecuritiesMember_C43061B8694BD604D97FF3C90013D2B0" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_CorporateBondSecuritiesMember" xlink:label="loc_us-gaap_CorporateBondSecuritiesMember_6BDD28FCB5459DDC2A8CF3C900134087" xlink:type="locator" />
    <link:definitionArc order="3" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_8E4517BDA3EFB9EAD817F3C90013FEC1" xlink:to="loc_us-gaap_CorporateBondSecuritiesMember_6BDD28FCB5459DDC2A8CF3C900134087" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_SovereignDebtSecuritiesMember" xlink:label="loc_us-gaap_SovereignDebtSecuritiesMember_0472F38793164384DCDBF3C90013F87B" xlink:type="locator" />
    <link:definitionArc order="4" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_8E4517BDA3EFB9EAD817F3C90013FEC1" xlink:to="loc_us-gaap_SovereignDebtSecuritiesMember_0472F38793164384DCDBF3C90013F87B" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_MunicipalBondsMember" xlink:label="loc_us-gaap_MunicipalBondsMember_33F5D51F6C7E3D1FE591F3C900143BEE" xlink:type="locator" />
    <link:definitionArc order="5" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_8E4517BDA3EFB9EAD817F3C90013FEC1" xlink:to="loc_us-gaap_MunicipalBondsMember_33F5D51F6C7E3D1FE591F3C900143BEE" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_AgencyBondsMember" xlink:label="loc_cgnx_AgencyBondsMember_7089BCB461A9A3125177F3C900140F67" xlink:type="locator" />
    <link:definitionArc order="6" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_8E4517BDA3EFB9EAD817F3C90013FEC1" xlink:to="loc_cgnx_AgencyBondsMember_7089BCB461A9A3125177F3C900140F67" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_InvestmentTypeAxis" xlink:label="loc_us-gaap_InvestmentTypeAxis_E5E98053AD6BADD8F905F3C9001464E7" xlink:type="locator" />
    <link:definitionArc order="2" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesTable_4A923AC9D6C810B51D02F3C90012A1DF" xlink:to="loc_us-gaap_InvestmentTypeAxis_E5E98053AD6BADD8F905F3C9001464E7" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_InvestmentTypeCategorizationMember" xlink:label="loc_us-gaap_InvestmentTypeCategorizationMember_13E1F20D7982A7A9AAB8F3C900147F12_default" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_InvestmentTypeAxis_E5E98053AD6BADD8F905F3C9001464E7" xlink:to="loc_us-gaap_InvestmentTypeCategorizationMember_13E1F20D7982A7A9AAB8F3C900147F12_default" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_InvestmentTypeCategorizationMember" xlink:label="loc_us-gaap_InvestmentTypeCategorizationMember_13E1F20D7982A7A9AAB8F3C900147F12" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_InvestmentTypeAxis_E5E98053AD6BADD8F905F3C9001464E7" xlink:to="loc_us-gaap_InvestmentTypeCategorizationMember_13E1F20D7982A7A9AAB8F3C900147F12" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ShortTermInvestmentsMember" xlink:label="loc_us-gaap_ShortTermInvestmentsMember_DD924BF217925255DC7BF3C90014F6C7" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_InvestmentTypeCategorizationMember_13E1F20D7982A7A9AAB8F3C900147F12" xlink:to="loc_us-gaap_ShortTermInvestmentsMember_DD924BF217925255DC7BF3C90014F6C7" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_LongTermInvestmentsMember" xlink:label="loc_cgnx_LongTermInvestmentsMember_F5BE412BD7A64E9B0D55F3C90015BF9D" xlink:type="locator" />
    <link:definitionArc order="2" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_InvestmentTypeCategorizationMember_13E1F20D7982A7A9AAB8F3C900147F12" xlink:to="loc_cgnx_LongTermInvestmentsMember_F5BE412BD7A64E9B0D55F3C90015BF9D" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_AvailableForSaleDebtSecuritiesAmortizedCostBasis" xlink:label="loc_us-gaap_AvailableForSaleDebtSecuritiesAmortizedCostBasis_D7921001C7B8FEB05661F3C900157B03" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_85B15D9B427CDC7B8F5CF3C90015D28F" xlink:to="loc_us-gaap_AvailableForSaleDebtSecuritiesAmortizedCostBasis_D7921001C7B8FEB05661F3C900157B03" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_AvailableForSaleSecuritiesAccumulatedGrossUnrealizedGainBeforeTax" xlink:label="loc_us-gaap_AvailableForSaleSecuritiesAccumulatedGrossUnrealizedGainBeforeTax_1D8CB6789D895017A15CF3C900156FA2" xlink:type="locator" />
    <link:definitionArc order="2" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_85B15D9B427CDC7B8F5CF3C90015D28F" xlink:to="loc_us-gaap_AvailableForSaleSecuritiesAccumulatedGrossUnrealizedGainBeforeTax_1D8CB6789D895017A15CF3C900156FA2" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_AvailableForSaleSecuritiesAccumulatedGrossUnrealizedLossBeforeTax" xlink:label="loc_us-gaap_AvailableForSaleSecuritiesAccumulatedGrossUnrealizedLossBeforeTax_599BF4D206D02B4E6C41F3C90016B282" xlink:type="locator" />
    <link:definitionArc order="3" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_85B15D9B427CDC7B8F5CF3C90015D28F" xlink:to="loc_us-gaap_AvailableForSaleSecuritiesAccumulatedGrossUnrealizedLossBeforeTax_599BF4D206D02B4E6C41F3C90016B282" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_AvailableForSaleSecuritiesDebtSecurities" xlink:label="loc_us-gaap_AvailableForSaleSecuritiesDebtSecurities_E35F86407F13BEF36031F3C90016A175" xlink:type="locator" />
    <link:definitionArc order="4" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_85B15D9B427CDC7B8F5CF3C90015D28F" xlink:to="loc_us-gaap_AvailableForSaleSecuritiesDebtSecurities_E35F86407F13BEF36031F3C90016A175" xlink:type="arc" />
  </link:definitionLink>
  <link:definitionLink xlink:role="http://cognex.com/role/CashCashEquivalentsAndInvestmentsComponentsOfCashCashEquivalentsAndInvestmentsDetail" xlink:type="extended">
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems" xlink:label="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_63D4FEE2FD0C82B3FDB0F3C900216DD1" xlink:type="locator" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ScheduleOfAvailableForSaleSecuritiesTable" xlink:label="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesTable_B0B46BFF976F959FF581F3C9001FEC1F" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_63D4FEE2FD0C82B3FDB0F3C900216DD1" xlink:to="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesTable_B0B46BFF976F959FF581F3C9001FEC1F" xlink:type="arc" xbrldt:closed="true" xbrldt:contextElement="segment" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_FinancialInstrumentAxis" xlink:label="loc_us-gaap_FinancialInstrumentAxis_9FFA611B31006AD5FDD2F3C9001F8832" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesTable_B0B46BFF976F959FF581F3C9001FEC1F" xlink:to="loc_us-gaap_FinancialInstrumentAxis_9FFA611B31006AD5FDD2F3C9001F8832" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain" xlink:label="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_27BF19A4800DBB73F086F3C9001F52F8_default" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_FinancialInstrumentAxis_9FFA611B31006AD5FDD2F3C9001F8832" xlink:to="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_27BF19A4800DBB73F086F3C9001F52F8_default" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain" xlink:label="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_27BF19A4800DBB73F086F3C9001F52F8" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_FinancialInstrumentAxis_9FFA611B31006AD5FDD2F3C9001F8832" xlink:to="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_27BF19A4800DBB73F086F3C9001F52F8" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_USTreasuryBillSecuritiesMember" xlink:label="loc_us-gaap_USTreasuryBillSecuritiesMember_BB5000F9DCD455788A01F3C9001F043A" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_27BF19A4800DBB73F086F3C9001F52F8" xlink:to="loc_us-gaap_USTreasuryBillSecuritiesMember_BB5000F9DCD455788A01F3C9001F043A" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_AssetBackedSecuritiesMember" xlink:label="loc_us-gaap_AssetBackedSecuritiesMember_71FA57B2FD72710549E1F3C90020769F" xlink:type="locator" />
    <link:definitionArc order="2" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_27BF19A4800DBB73F086F3C9001F52F8" xlink:to="loc_us-gaap_AssetBackedSecuritiesMember_71FA57B2FD72710549E1F3C90020769F" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_CorporateBondSecuritiesMember" xlink:label="loc_us-gaap_CorporateBondSecuritiesMember_5C4F86B1861D87B49F7EF3C9002068AD" xlink:type="locator" />
    <link:definitionArc order="3" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_27BF19A4800DBB73F086F3C9001F52F8" xlink:to="loc_us-gaap_CorporateBondSecuritiesMember_5C4F86B1861D87B49F7EF3C9002068AD" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_SovereignDebtSecuritiesMember" xlink:label="loc_us-gaap_SovereignDebtSecuritiesMember_3E1DBB22DA9437CF1828F3C900204512" xlink:type="locator" />
    <link:definitionArc order="4" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_27BF19A4800DBB73F086F3C9001F52F8" xlink:to="loc_us-gaap_SovereignDebtSecuritiesMember_3E1DBB22DA9437CF1828F3C900204512" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_MunicipalBondsMember" xlink:label="loc_us-gaap_MunicipalBondsMember_D0286D0F3010BCCEA059F3C90020C0B3" xlink:type="locator" />
    <link:definitionArc order="5" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_27BF19A4800DBB73F086F3C9001F52F8" xlink:to="loc_us-gaap_MunicipalBondsMember_D0286D0F3010BCCEA059F3C90020C0B3" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_CertificatesOfDepositMember" xlink:label="loc_us-gaap_CertificatesOfDepositMember_B6407AABB2222BA1C75AF3E313262DE9" xlink:type="locator" />
    <link:definitionArc order="6" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_27BF19A4800DBB73F086F3C9001F52F8" xlink:to="loc_us-gaap_CertificatesOfDepositMember_B6407AABB2222BA1C75AF3E313262DE9" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_AgencyBondsMember" xlink:label="loc_cgnx_AgencyBondsMember_4AFCBB2A1A3A233025DFF3C900204B1B" xlink:type="locator" />
    <link:definitionArc order="7" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_27BF19A4800DBB73F086F3C9001F52F8" xlink:to="loc_cgnx_AgencyBondsMember_4AFCBB2A1A3A233025DFF3C900204B1B" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_Cash" xlink:label="loc_us-gaap_Cash_C48BE88551B924712380F3C900217818" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_63D4FEE2FD0C82B3FDB0F3C900216DD1" xlink:to="loc_us-gaap_Cash_C48BE88551B924712380F3C900217818" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_MoneyMarketFundsAtCarryingValue" xlink:label="loc_us-gaap_MoneyMarketFundsAtCarryingValue_47EF8E6FE3AC1B201A66F3C900210682" xlink:type="locator" />
    <link:definitionArc order="2" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_63D4FEE2FD0C82B3FDB0F3C900216DD1" xlink:to="loc_us-gaap_MoneyMarketFundsAtCarryingValue_47EF8E6FE3AC1B201A66F3C900210682" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_CashAndCashEquivalentsAtCarryingValue" xlink:label="loc_us-gaap_CashAndCashEquivalentsAtCarryingValue_F38C17194CD2DF211B26F3C9002148EB" xlink:type="locator" />
    <link:definitionArc order="3" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_63D4FEE2FD0C82B3FDB0F3C900216DD1" xlink:to="loc_us-gaap_CashAndCashEquivalentsAtCarryingValue_F38C17194CD2DF211B26F3C9002148EB" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_AvailableForSaleSecuritiesDebtSecuritiesCurrent" xlink:label="loc_us-gaap_AvailableForSaleSecuritiesDebtSecuritiesCurrent_B502CCB18AE35A96E509F3C900216762" xlink:type="locator" />
    <link:definitionArc order="4" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_63D4FEE2FD0C82B3FDB0F3C900216DD1" xlink:to="loc_us-gaap_AvailableForSaleSecuritiesDebtSecuritiesCurrent_B502CCB18AE35A96E509F3C900216762" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_AvailableForSaleSecuritiesDebtSecuritiesNoncurrent" xlink:label="loc_us-gaap_AvailableForSaleSecuritiesDebtSecuritiesNoncurrent_78860C629250BDE0EEB9F3C90021AEC3" xlink:type="locator" />
    <link:definitionArc order="5" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_63D4FEE2FD0C82B3FDB0F3C900216DD1" xlink:to="loc_us-gaap_AvailableForSaleSecuritiesDebtSecuritiesNoncurrent_78860C629250BDE0EEB9F3C90021AEC3" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_LongTermInvestments" xlink:label="loc_us-gaap_LongTermInvestments_A7CE68D7F8006DDEB3A0F3C90022F61A" xlink:type="locator" />
    <link:definitionArc order="6" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_63D4FEE2FD0C82B3FDB0F3C900216DD1" xlink:to="loc_us-gaap_LongTermInvestments_A7CE68D7F8006DDEB3A0F3C90022F61A" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_CashCashEquivalentsShortTermAndLongTermInvestments" xlink:label="loc_cgnx_CashCashEquivalentsShortTermAndLongTermInvestments_D21E99836CE0B6413875F3C9002292C3" xlink:type="locator" />
    <link:definitionArc order="7" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_63D4FEE2FD0C82B3FDB0F3C900216DD1" xlink:to="loc_cgnx_CashCashEquivalentsShortTermAndLongTermInvestments_D21E99836CE0B6413875F3C9002292C3" xlink:type="arc" />
  </link:definitionLink>
  <link:definitionLink xlink:role="http://cognex.com/role/CashCashEquivalentsAndInvestmentsEffectiveMaturityDatesOfAvailableForSaleInvestmentsDetail" xlink:type="extended">
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems" xlink:label="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_2EC4776CE6C216A35CC1F3C8FFFF13A5" xlink:type="locator" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ScheduleOfAvailableForSaleSecuritiesTable" xlink:label="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesTable_9615E77BC202ED5DD39EF3C8FFFDEFF2" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_2EC4776CE6C216A35CC1F3C8FFFF13A5" xlink:to="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesTable_9615E77BC202ED5DD39EF3C8FFFDEFF2" xlink:type="arc" xbrldt:closed="true" xbrldt:contextElement="segment" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_FinancialInstrumentAxis" xlink:label="loc_us-gaap_FinancialInstrumentAxis_C1C8C6D9F34637677CC6F3C8FFFD3724" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesTable_9615E77BC202ED5DD39EF3C8FFFDEFF2" xlink:to="loc_us-gaap_FinancialInstrumentAxis_C1C8C6D9F34637677CC6F3C8FFFD3724" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain" xlink:label="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_32AC84320778231DAFD1F3C8FFFD2B12_default" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_FinancialInstrumentAxis_C1C8C6D9F34637677CC6F3C8FFFD3724" xlink:to="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_32AC84320778231DAFD1F3C8FFFD2B12_default" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain" xlink:label="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_32AC84320778231DAFD1F3C8FFFD2B12" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_FinancialInstrumentAxis_C1C8C6D9F34637677CC6F3C8FFFD3724" xlink:to="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_32AC84320778231DAFD1F3C8FFFD2B12" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_USTreasurySecuritiesMember" xlink:label="loc_us-gaap_USTreasurySecuritiesMember_26B8F17F6EB381A61578F3C8FFFE3021" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_32AC84320778231DAFD1F3C8FFFD2B12" xlink:to="loc_us-gaap_USTreasurySecuritiesMember_26B8F17F6EB381A61578F3C8FFFE3021" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_CorporateBondSecuritiesMember" xlink:label="loc_us-gaap_CorporateBondSecuritiesMember_C2DC526434DBFFDB3323F3C8FFFE859F" xlink:type="locator" />
    <link:definitionArc order="2" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_32AC84320778231DAFD1F3C8FFFD2B12" xlink:to="loc_us-gaap_CorporateBondSecuritiesMember_C2DC526434DBFFDB3323F3C8FFFE859F" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_AssetBackedSecuritiesMember" xlink:label="loc_us-gaap_AssetBackedSecuritiesMember_849DD5284725175BAEEDF3C8FFFE745E" xlink:type="locator" />
    <link:definitionArc order="3" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_32AC84320778231DAFD1F3C8FFFD2B12" xlink:to="loc_us-gaap_AssetBackedSecuritiesMember_849DD5284725175BAEEDF3C8FFFE745E" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_SovereignDebtSecuritiesMember" xlink:label="loc_us-gaap_SovereignDebtSecuritiesMember_794110867F610A930343F3C8FFFEB301" xlink:type="locator" />
    <link:definitionArc order="4" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_32AC84320778231DAFD1F3C8FFFD2B12" xlink:to="loc_us-gaap_SovereignDebtSecuritiesMember_794110867F610A930343F3C8FFFEB301" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_MunicipalBondsMember" xlink:label="loc_us-gaap_MunicipalBondsMember_33F8BC26E13487951015F3C8FFFF4970" xlink:type="locator" />
    <link:definitionArc order="5" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_32AC84320778231DAFD1F3C8FFFD2B12" xlink:to="loc_us-gaap_MunicipalBondsMember_33F8BC26E13487951015F3C8FFFF4970" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_AgencyBondsMember" xlink:label="loc_cgnx_AgencyBondsMember_29DDFCFC1A1EE8CD7BCAF3C8FFFE08C9" xlink:type="locator" />
    <link:definitionArc order="6" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_32AC84320778231DAFD1F3C8FFFD2B12" xlink:to="loc_cgnx_AgencyBondsMember_29DDFCFC1A1EE8CD7BCAF3C8FFFE08C9" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_AvailableForSaleSecuritiesDebtMaturitiesWithinOneYearFairValue" xlink:label="loc_us-gaap_AvailableForSaleSecuritiesDebtMaturitiesWithinOneYearFairValue_85301040D5566C243BC7F3C8FFFFF030" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_2EC4776CE6C216A35CC1F3C8FFFF13A5" xlink:to="loc_us-gaap_AvailableForSaleSecuritiesDebtMaturitiesWithinOneYearFairValue_85301040D5566C243BC7F3C8FFFFF030" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterOneYearBeforeTwoYearsFairValue" xlink:label="loc_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterOneYearBeforeTwoYearsFairValue_9069B0623FBFC2BFEEE5F3C8FFFFDB7C" xlink:type="locator" />
    <link:definitionArc order="2" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_2EC4776CE6C216A35CC1F3C8FFFF13A5" xlink:to="loc_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterOneYearBeforeTwoYearsFairValue_9069B0623FBFC2BFEEE5F3C8FFFFDB7C" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterTwoYearsBeforeThreeYearsFairValue" xlink:label="loc_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterTwoYearsBeforeThreeYearsFairValue_16DF33ED3A30E4AF4255F3C8FFFFEE9E" xlink:type="locator" />
    <link:definitionArc order="3" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_2EC4776CE6C216A35CC1F3C8FFFF13A5" xlink:to="loc_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterTwoYearsBeforeThreeYearsFairValue_16DF33ED3A30E4AF4255F3C8FFFFEE9E" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterThreeYearsBeforeFourYearsFairValue" xlink:label="loc_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterThreeYearsBeforeFourYearsFairValue_52F72B3B6AEF080A2D70F3C8FFFF0EBA" xlink:type="locator" />
    <link:definitionArc order="4" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_2EC4776CE6C216A35CC1F3C8FFFF13A5" xlink:to="loc_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterThreeYearsBeforeFourYearsFairValue_52F72B3B6AEF080A2D70F3C8FFFF0EBA" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterFourYearsBeforeFiveYearsFairValue" xlink:label="loc_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterFourYearsBeforeFiveYearsFairValue_32E87E987C989EEA606BF3C90000D3E0" xlink:type="locator" />
    <link:definitionArc order="5" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_2EC4776CE6C216A35CC1F3C8FFFF13A5" xlink:to="loc_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterFourYearsBeforeFiveYearsFairValue_32E87E987C989EEA606BF3C90000D3E0" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_AvailableForSaleSecuritiesDebtSecurities" xlink:label="loc_us-gaap_AvailableForSaleSecuritiesDebtSecurities_0ACA170D48AB715F8EB7F3C90000CFF8" xlink:type="locator" />
    <link:definitionArc order="6" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_2EC4776CE6C216A35CC1F3C8FFFF13A5" xlink:to="loc_us-gaap_AvailableForSaleSecuritiesDebtSecurities_0ACA170D48AB715F8EB7F3C90000CFF8" xlink:type="arc" />
  </link:definitionLink>
  <link:definitionLink xlink:role="http://cognex.com/role/CashCashEquivalentsAndInvestmentsGrossUnrealizedLossesAndFairValueForAvailableForSaleInvestmentsDetail" xlink:type="extended">
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems" xlink:label="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_D1072BEB1BCEEF4ED4D0F3C9000AD2C4" xlink:type="locator" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ScheduleOfAvailableForSaleSecuritiesTable" xlink:label="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesTable_4071458D62E610A759E7F3C90007D751" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_D1072BEB1BCEEF4ED4D0F3C9000AD2C4" xlink:to="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesTable_4071458D62E610A759E7F3C90007D751" xlink:type="arc" xbrldt:closed="true" xbrldt:contextElement="segment" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_FinancialInstrumentAxis" xlink:label="loc_us-gaap_FinancialInstrumentAxis_43F954601FFD2287887EF3C900097F73" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesTable_4071458D62E610A759E7F3C90007D751" xlink:to="loc_us-gaap_FinancialInstrumentAxis_43F954601FFD2287887EF3C900097F73" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain" xlink:label="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_83A0A1CEE115185C5F85F3C90009D390_default" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_FinancialInstrumentAxis_43F954601FFD2287887EF3C900097F73" xlink:to="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_83A0A1CEE115185C5F85F3C90009D390_default" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain" xlink:label="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_83A0A1CEE115185C5F85F3C90009D390" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_FinancialInstrumentAxis_43F954601FFD2287887EF3C900097F73" xlink:to="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_83A0A1CEE115185C5F85F3C90009D390" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_USTreasurySecuritiesMember" xlink:label="loc_us-gaap_USTreasurySecuritiesMember_DCF8C3D98D6749641EF7F3C900093D73" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_83A0A1CEE115185C5F85F3C90009D390" xlink:to="loc_us-gaap_USTreasurySecuritiesMember_DCF8C3D98D6749641EF7F3C900093D73" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_AssetBackedSecuritiesMember" xlink:label="loc_us-gaap_AssetBackedSecuritiesMember_F544F7D2215DC60FC2DBF3C9000A44BF" xlink:type="locator" />
    <link:definitionArc order="2" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_83A0A1CEE115185C5F85F3C90009D390" xlink:to="loc_us-gaap_AssetBackedSecuritiesMember_F544F7D2215DC60FC2DBF3C9000A44BF" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_SovereignDebtSecuritiesMember" xlink:label="loc_us-gaap_SovereignDebtSecuritiesMember_44E5202E5BF6326749FCF3C9000A3D88" xlink:type="locator" />
    <link:definitionArc order="3" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_83A0A1CEE115185C5F85F3C90009D390" xlink:to="loc_us-gaap_SovereignDebtSecuritiesMember_44E5202E5BF6326749FCF3C9000A3D88" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_CorporateBondSecuritiesMember" xlink:label="loc_us-gaap_CorporateBondSecuritiesMember_1452F318A43467745EFFF3C900090CA3" xlink:type="locator" />
    <link:definitionArc order="4" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_83A0A1CEE115185C5F85F3C90009D390" xlink:to="loc_us-gaap_CorporateBondSecuritiesMember_1452F318A43467745EFFF3C900090CA3" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_AgencyBondsMember" xlink:label="loc_cgnx_AgencyBondsMember_85FEA093090C0B364A65F3C9000A1540" xlink:type="locator" />
    <link:definitionArc order="5" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_83A0A1CEE115185C5F85F3C90009D390" xlink:to="loc_cgnx_AgencyBondsMember_85FEA093090C0B364A65F3C9000A1540" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_MunicipalBondsMember" xlink:label="loc_us-gaap_MunicipalBondsMember_3B0D2D1AC1C559E32B25F3C9000A85C7" xlink:type="locator" />
    <link:definitionArc order="6" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_83A0A1CEE115185C5F85F3C90009D390" xlink:to="loc_us-gaap_MunicipalBondsMember_3B0D2D1AC1C559E32B25F3C9000A85C7" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionLessThanTwelveMonthsFairValue" xlink:label="loc_us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionLessThanTwelveMonthsFairValue_65BA618C0CEE7227B09DF3C9000BBEEE" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_D1072BEB1BCEEF4ED4D0F3C9000AD2C4" xlink:to="loc_us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionLessThanTwelveMonthsFairValue_65BA618C0CEE7227B09DF3C9000BBEEE" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionLessThan12MonthsAccumulatedLoss" xlink:label="loc_us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionLessThan12MonthsAccumulatedLoss_569D48D491B4664E780BF3C9000B2ACB" xlink:type="locator" />
    <link:definitionArc order="2" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_D1072BEB1BCEEF4ED4D0F3C9000AD2C4" xlink:to="loc_us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionLessThan12MonthsAccumulatedLoss_569D48D491B4664E780BF3C9000B2ACB" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionTwelveMonthsOrLongerFairValue" xlink:label="loc_us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionTwelveMonthsOrLongerFairValue_55305730F58E0D71D271F3C9000BE46D" xlink:type="locator" />
    <link:definitionArc order="3" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_D1072BEB1BCEEF4ED4D0F3C9000AD2C4" xlink:to="loc_us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionTwelveMonthsOrLongerFairValue_55305730F58E0D71D271F3C9000BE46D" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPosition12MonthsOrLongerAccumulatedLoss" xlink:label="loc_us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPosition12MonthsOrLongerAccumulatedLoss_4CD1F340F5710A567732F3C9000BDEAC" xlink:type="locator" />
    <link:definitionArc order="4" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_D1072BEB1BCEEF4ED4D0F3C9000AD2C4" xlink:to="loc_us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPosition12MonthsOrLongerAccumulatedLoss_4CD1F340F5710A567732F3C9000BDEAC" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionFairValue" xlink:label="loc_us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionFairValue_6BCCCA2762B5BD0AC998F3C9000B023F" xlink:type="locator" />
    <link:definitionArc order="5" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_D1072BEB1BCEEF4ED4D0F3C9000AD2C4" xlink:to="loc_us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionFairValue_6BCCCA2762B5BD0AC998F3C9000B023F" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionAccumulatedLoss" xlink:label="loc_us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionAccumulatedLoss_FF593012F2BC28C4D726F3C9000C3B24" xlink:type="locator" />
    <link:definitionArc order="6" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_D1072BEB1BCEEF4ED4D0F3C9000AD2C4" xlink:to="loc_us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionAccumulatedLoss_FF593012F2BC28C4D726F3C9000C3B24" xlink:type="arc" />
  </link:definitionLink>
  <link:definitionLink xlink:role="http://cognex.com/role/CashCashEquivalentsAndInvestmentsTables" xlink:type="extended" />
  <link:definitionLink xlink:role="http://cognex.com/role/CommitmentsAndContingencies" xlink:type="extended" />
  <link:definitionLink xlink:role="http://cognex.com/role/CommitmentsAndContingenciesAdditionalInformationDetail" xlink:type="extended" />
  <link:definitionLink xlink:role="http://cognex.com/role/ConsolidatedBalanceSheets" xlink:type="extended" />
  <link:definitionLink xlink:role="http://cognex.com/role/ConsolidatedBalanceSheetsParenthetical" xlink:type="extended" />
  <link:definitionLink xlink:role="http://cognex.com/role/ConsolidatedStatementsOfCashFlows" xlink:type="extended" />
  <link:definitionLink xlink:role="http://cognex.com/role/ConsolidatedStatementsOfComprehensiveIncome" xlink:type="extended" />
  <link:definitionLink xlink:role="http://cognex.com/role/ConsolidatedStatementsOfComprehensiveIncomeParenthetical" xlink:type="extended" />
  <link:definitionLink xlink:role="http://cognex.com/role/ConsolidatedStatementsOfOperations" xlink:type="extended" />
  <link:definitionLink xlink:role="http://cognex.com/role/ConsolidatedStatementsOfOperationsParenthetical" xlink:type="extended" />
  <link:definitionLink xlink:role="http://cognex.com/role/ConsolidatedStatementsOfShareholdersEquity" xlink:type="extended">
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_StatementLineItems" xlink:label="loc_us-gaap_StatementLineItems_556514CCA9BC33646401170C9643654B" xlink:type="locator" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_StatementTable" xlink:label="loc_us-gaap_StatementTable_4CC0097DD62AB75821B4170C964077D0" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_StatementLineItems_556514CCA9BC33646401170C9643654B" xlink:to="loc_us-gaap_StatementTable_4CC0097DD62AB75821B4170C964077D0" xlink:type="arc" xbrldt:closed="true" xbrldt:contextElement="segment" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_StatementEquityComponentsAxis" xlink:label="loc_us-gaap_StatementEquityComponentsAxis_79B9BFDE1E9BAEE4A88A170C9641A811" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_StatementTable_4CC0097DD62AB75821B4170C964077D0" xlink:to="loc_us-gaap_StatementEquityComponentsAxis_79B9BFDE1E9BAEE4A88A170C9641A811" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_EquityComponentDomain" xlink:label="loc_us-gaap_EquityComponentDomain_9D418DFEAE9CE4E58E6B170C9641FF45_default" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_StatementEquityComponentsAxis_79B9BFDE1E9BAEE4A88A170C9641A811" xlink:to="loc_us-gaap_EquityComponentDomain_9D418DFEAE9CE4E58E6B170C9641FF45_default" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_EquityComponentDomain" xlink:label="loc_us-gaap_EquityComponentDomain_9D418DFEAE9CE4E58E6B170C9641FF45" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_StatementEquityComponentsAxis_79B9BFDE1E9BAEE4A88A170C9641A811" xlink:to="loc_us-gaap_EquityComponentDomain_9D418DFEAE9CE4E58E6B170C9641FF45" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_CommonStockMember" xlink:label="loc_us-gaap_CommonStockMember_4EB14B57EAA96C3CD3E0170C9642C903" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_EquityComponentDomain_9D418DFEAE9CE4E58E6B170C9641FF45" xlink:to="loc_us-gaap_CommonStockMember_4EB14B57EAA96C3CD3E0170C9642C903" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_AdditionalPaidInCapitalMember" xlink:label="loc_us-gaap_AdditionalPaidInCapitalMember_4E0A7027878BC958F302170C9642CF85" xlink:type="locator" />
    <link:definitionArc order="2" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_EquityComponentDomain_9D418DFEAE9CE4E58E6B170C9641FF45" xlink:to="loc_us-gaap_AdditionalPaidInCapitalMember_4E0A7027878BC958F302170C9642CF85" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_RetainedEarningsMember" xlink:label="loc_us-gaap_RetainedEarningsMember_5680CD6B2C8E61E31C95170C9642FB36" xlink:type="locator" />
    <link:definitionArc order="3" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_EquityComponentDomain_9D418DFEAE9CE4E58E6B170C9641FF45" xlink:to="loc_us-gaap_RetainedEarningsMember_5680CD6B2C8E61E31C95170C9642FB36" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_AccumulatedOtherComprehensiveIncomeMember" xlink:label="loc_us-gaap_AccumulatedOtherComprehensiveIncomeMember_02842A68B654B2A0BD59170C96420656" xlink:type="locator" />
    <link:definitionArc order="4" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_EquityComponentDomain_9D418DFEAE9CE4E58E6B170C9641FF45" xlink:to="loc_us-gaap_AccumulatedOtherComprehensiveIncomeMember_02842A68B654B2A0BD59170C96420656" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_IncreaseDecreaseInStockholdersEquityRollForward" xlink:label="loc_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward_362F713FBD359FC16D48170C9643E2C2" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_StatementLineItems_556514CCA9BC33646401170C9643654B" xlink:to="loc_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward_362F713FBD359FC16D48170C9643E2C2" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_StockholdersEquity" xlink:label="loc_us-gaap_StockholdersEquity_CB50070A62A6CC3733A8170C9643E026" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward_362F713FBD359FC16D48170C9643E2C2" xlink:to="loc_us-gaap_StockholdersEquity_CB50070A62A6CC3733A8170C9643E026" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_CommonStockSharesIssued" xlink:label="loc_us-gaap_CommonStockSharesIssued_46CEFB82D515785EF0DE170C96445F3B" xlink:type="locator" />
    <link:definitionArc order="2" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward_362F713FBD359FC16D48170C9643E2C2" xlink:to="loc_us-gaap_CommonStockSharesIssued_46CEFB82D515785EF0DE170C96445F3B" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised" xlink:label="loc_us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised_6DF07E7D346E1FE4BA63170C9644ED1B" xlink:type="locator" />
    <link:definitionArc order="3" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward_362F713FBD359FC16D48170C9643E2C2" xlink:to="loc_us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised_6DF07E7D346E1FE4BA63170C9644ED1B" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised" xlink:label="loc_us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised_C3F8EEB34C037647686F170C9644FD38" xlink:type="locator" />
    <link:definitionArc order="4" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward_362F713FBD359FC16D48170C9643E2C2" xlink:to="loc_us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised_C3F8EEB34C037647686F170C9644FD38" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_StockRepurchasedDuringPeriodValue" xlink:label="loc_us-gaap_StockRepurchasedDuringPeriodValue_3D568F611AA37F9E0DAC170C96441879" xlink:type="locator" />
    <link:definitionArc order="5" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward_362F713FBD359FC16D48170C9643E2C2" xlink:to="loc_us-gaap_StockRepurchasedDuringPeriodValue_3D568F611AA37F9E0DAC170C96441879" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_StockRepurchasedDuringPeriodShares" xlink:label="loc_us-gaap_StockRepurchasedDuringPeriodShares_F42CBF940C76AEAA31C9170C964451F2" xlink:type="locator" />
    <link:definitionArc order="6" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward_362F713FBD359FC16D48170C9643E2C2" xlink:to="loc_us-gaap_StockRepurchasedDuringPeriodShares_F42CBF940C76AEAA31C9170C964451F2" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue" xlink:label="loc_us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue_229640086C29D930DE09170C96451EF5" xlink:type="locator" />
    <link:definitionArc order="7" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward_362F713FBD359FC16D48170C9643E2C2" xlink:to="loc_us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue_229640086C29D930DE09170C96451EF5" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_DividendsCommonStockCash" xlink:label="loc_us-gaap_DividendsCommonStockCash_D8C3A547A4FD04E43588170C964598D0" xlink:type="locator" />
    <link:definitionArc order="8" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward_362F713FBD359FC16D48170C9643E2C2" xlink:to="loc_us-gaap_DividendsCommonStockCash_D8C3A547A4FD04E43588170C964598D0" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_CumulativeEffectOfNewAccountingPrincipleInPeriodOfAdoption" xlink:label="loc_us-gaap_CumulativeEffectOfNewAccountingPrincipleInPeriodOfAdoption_9EAFC273976AC21046C6170C96456A45" xlink:type="locator" />
    <link:definitionArc order="9" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward_362F713FBD359FC16D48170C9643E2C2" xlink:to="loc_us-gaap_CumulativeEffectOfNewAccountingPrincipleInPeriodOfAdoption_9EAFC273976AC21046C6170C96456A45" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_NetIncomeLoss" xlink:label="loc_us-gaap_NetIncomeLoss_9B04A5202E6C5CF8C710170C9645DB1A" xlink:type="locator" />
    <link:definitionArc order="10" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward_362F713FBD359FC16D48170C9643E2C2" xlink:to="loc_us-gaap_NetIncomeLoss_9B04A5202E6C5CF8C710170C9645DB1A" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_OtherComprehensiveIncomeUnrealizedGainLossOnDerivativesArisingDuringPeriodNetOfTax" xlink:label="loc_us-gaap_OtherComprehensiveIncomeUnrealizedGainLossOnDerivativesArisingDuringPeriodNetOfTax_A0C77D4E5B3D54FA9C14170C96466B25" xlink:type="locator" />
    <link:definitionArc order="11" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward_362F713FBD359FC16D48170C9643E2C2" xlink:to="loc_us-gaap_OtherComprehensiveIncomeUnrealizedGainLossOnDerivativesArisingDuringPeriodNetOfTax_A0C77D4E5B3D54FA9C14170C96466B25" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIOnDerivativesNetOfTax" xlink:label="loc_us-gaap_OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIOnDerivativesNetOfTax_0986FCF9393B44BFECC1170C964657D8" xlink:type="locator" />
    <link:definitionArc order="12" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward_362F713FBD359FC16D48170C9643E2C2" xlink:to="loc_us-gaap_OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIOnDerivativesNetOfTax_0986FCF9393B44BFECC1170C964657D8" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_OtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax" xlink:label="loc_us-gaap_OtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax_4E2706E62BD7F3443710170C964691AE" xlink:type="locator" />
    <link:definitionArc order="13" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward_362F713FBD359FC16D48170C9643E2C2" xlink:to="loc_us-gaap_OtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax_4E2706E62BD7F3443710170C964691AE" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax" xlink:label="loc_us-gaap_OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax_75F4B0619BE1F2F65BEC170C9646DDC5" xlink:type="locator" />
    <link:definitionArc order="14" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward_362F713FBD359FC16D48170C9643E2C2" xlink:to="loc_us-gaap_OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax_75F4B0619BE1F2F65BEC170C9646DDC5" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax" xlink:label="loc_us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax_D27F3FC032DAA7425FBA170C96463D40" xlink:type="locator" />
    <link:definitionArc order="15" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward_362F713FBD359FC16D48170C9643E2C2" xlink:to="loc_us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax_D27F3FC032DAA7425FBA170C96463D40" xlink:type="arc" />
  </link:definitionLink>
  <link:definitionLink xlink:role="http://cognex.com/role/ConsolidatedStatementsOfShareholdersEquityParenthetical" xlink:type="extended" />
  <link:definitionLink xlink:role="http://cognex.com/role/CoverPage" xlink:type="extended" />
  <link:definitionLink xlink:role="http://cognex.com/role/DerivativeInstruments" xlink:type="extended" />
  <link:definitionLink xlink:role="http://cognex.com/role/DerivativeInstrumentsAdditionalDetailsDetails" xlink:type="extended">
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_DerivativeLineItems" xlink:label="loc_us-gaap_DerivativeLineItems_3B205E576DA00F8735C68095E89BDDAD" xlink:type="locator" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_DerivativeTable" xlink:label="loc_us-gaap_DerivativeTable_6B2962033CAC20628A4B8095E89BE5AC" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_DerivativeLineItems_3B205E576DA00F8735C68095E89BDDAD" xlink:to="loc_us-gaap_DerivativeTable_6B2962033CAC20628A4B8095E89BE5AC" xlink:type="arc" xbrldt:closed="true" xbrldt:contextElement="segment" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_HedgingDesignationAxis" xlink:label="loc_us-gaap_HedgingDesignationAxis_737F5D76FE1988E7AD748095E89BE1A0" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_DerivativeTable_6B2962033CAC20628A4B8095E89BE5AC" xlink:to="loc_us-gaap_HedgingDesignationAxis_737F5D76FE1988E7AD748095E89BE1A0" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_HedgingDesignationDomain" xlink:label="loc_us-gaap_HedgingDesignationDomain_CB38C9E44FDC266B10448095E89BF9DC_default" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_HedgingDesignationAxis_737F5D76FE1988E7AD748095E89BE1A0" xlink:to="loc_us-gaap_HedgingDesignationDomain_CB38C9E44FDC266B10448095E89BF9DC_default" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_HedgingDesignationDomain" xlink:label="loc_us-gaap_HedgingDesignationDomain_CB38C9E44FDC266B10448095E89BF9DC" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_HedgingDesignationAxis_737F5D76FE1988E7AD748095E89BE1A0" xlink:to="loc_us-gaap_HedgingDesignationDomain_CB38C9E44FDC266B10448095E89BF9DC" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_NondesignatedMember" xlink:label="loc_us-gaap_NondesignatedMember_D0EC90F27621A8B20FDD8095E89BAA15" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_HedgingDesignationDomain_CB38C9E44FDC266B10448095E89BF9DC" xlink:to="loc_us-gaap_NondesignatedMember_D0EC90F27621A8B20FDD8095E89BAA15" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_DesignatedAsHedgingInstrumentMember" xlink:label="loc_us-gaap_DesignatedAsHedgingInstrumentMember_5E4DDBA4A8AA28F9D0DD8095E89B9E34" xlink:type="locator" />
    <link:definitionArc order="2" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_HedgingDesignationDomain_CB38C9E44FDC266B10448095E89BF9DC" xlink:to="loc_us-gaap_DesignatedAsHedgingInstrumentMember_5E4DDBA4A8AA28F9D0DD8095E89B9E34" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_MaximumRemainingMaturityOfForeignCurrencyDerivatives1" xlink:label="loc_us-gaap_MaximumRemainingMaturityOfForeignCurrencyDerivatives1_F814C04CE9588AB06C078095E89B0950" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_DerivativeLineItems_3B205E576DA00F8735C68095E89BDDAD" xlink:to="loc_us-gaap_MaximumRemainingMaturityOfForeignCurrencyDerivatives1_F814C04CE9588AB06C078095E89B0950" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_MaximumLengthOfTimeHedgedInCashFlowHedge1" xlink:label="loc_us-gaap_MaximumLengthOfTimeHedgedInCashFlowHedge1_AA258CB4B531151A11998095E89BAD2C" xlink:type="locator" />
    <link:definitionArc order="2" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_DerivativeLineItems_3B205E576DA00F8735C68095E89BDDAD" xlink:to="loc_us-gaap_MaximumLengthOfTimeHedgedInCashFlowHedge1_AA258CB4B531151A11998095E89BAD2C" xlink:type="arc" />
  </link:definitionLink>
  <link:definitionLink xlink:role="http://cognex.com/role/DerivativeInstrumentsAssetsAndLiabilitiesPresentedOnNetBasisDueToRightOfOffsetDetails" xlink:type="extended" />
  <link:definitionLink xlink:role="http://cognex.com/role/DerivativeInstrumentsBalanceSheetLocationDetails" xlink:type="extended">
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_DerivativesFairValueLineItems" xlink:label="loc_us-gaap_DerivativesFairValueLineItems_C44F517377CC67CAB4DA8095E75B686B" xlink:type="locator" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_FairValuesDerivativesBalanceSheetLocationByDerivativeContractTypeByHedgingDesignationTable" xlink:label="loc_us-gaap_FairValuesDerivativesBalanceSheetLocationByDerivativeContractTypeByHedgingDesignationTable_F0850B8C8CF61CC95E618095E75B89BB" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_DerivativesFairValueLineItems_C44F517377CC67CAB4DA8095E75B686B" xlink:to="loc_us-gaap_FairValuesDerivativesBalanceSheetLocationByDerivativeContractTypeByHedgingDesignationTable_F0850B8C8CF61CC95E618095E75B89BB" xlink:type="arc" xbrldt:closed="true" xbrldt:contextElement="segment" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_HedgingDesignationAxis" xlink:label="loc_us-gaap_HedgingDesignationAxis_4655EE876900806EA3AB8095E75B98EC" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_FairValuesDerivativesBalanceSheetLocationByDerivativeContractTypeByHedgingDesignationTable_F0850B8C8CF61CC95E618095E75B89BB" xlink:to="loc_us-gaap_HedgingDesignationAxis_4655EE876900806EA3AB8095E75B98EC" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_HedgingDesignationDomain" xlink:label="loc_us-gaap_HedgingDesignationDomain_41B8F1A3A6F14AF36E288095E75B6790_default" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_HedgingDesignationAxis_4655EE876900806EA3AB8095E75B98EC" xlink:to="loc_us-gaap_HedgingDesignationDomain_41B8F1A3A6F14AF36E288095E75B6790_default" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_HedgingDesignationDomain" xlink:label="loc_us-gaap_HedgingDesignationDomain_41B8F1A3A6F14AF36E288095E75B6790" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_HedgingDesignationAxis_4655EE876900806EA3AB8095E75B98EC" xlink:to="loc_us-gaap_HedgingDesignationDomain_41B8F1A3A6F14AF36E288095E75B6790" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_NondesignatedMember" xlink:label="loc_us-gaap_NondesignatedMember_63CAF65164D91DEEA2958095E75BD41E" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_HedgingDesignationDomain_41B8F1A3A6F14AF36E288095E75B6790" xlink:to="loc_us-gaap_NondesignatedMember_63CAF65164D91DEEA2958095E75BD41E" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_BalanceSheetLocationAxis" xlink:label="loc_us-gaap_BalanceSheetLocationAxis_43D37E242A2DAB13DAD98095E75BBA62" xlink:type="locator" />
    <link:definitionArc order="2" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_FairValuesDerivativesBalanceSheetLocationByDerivativeContractTypeByHedgingDesignationTable_F0850B8C8CF61CC95E618095E75B89BB" xlink:to="loc_us-gaap_BalanceSheetLocationAxis_43D37E242A2DAB13DAD98095E75BBA62" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_BalanceSheetLocationDomain" xlink:label="loc_us-gaap_BalanceSheetLocationDomain_0CD56C55A1C92C3789B28095E75B8F1E_default" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_BalanceSheetLocationAxis_43D37E242A2DAB13DAD98095E75BBA62" xlink:to="loc_us-gaap_BalanceSheetLocationDomain_0CD56C55A1C92C3789B28095E75B8F1E_default" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_BalanceSheetLocationDomain" xlink:label="loc_us-gaap_BalanceSheetLocationDomain_0CD56C55A1C92C3789B28095E75B8F1E" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_BalanceSheetLocationAxis_43D37E242A2DAB13DAD98095E75BBA62" xlink:to="loc_us-gaap_BalanceSheetLocationDomain_0CD56C55A1C92C3789B28095E75B8F1E" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_PrepaidExpensesAndOtherCurrentAssetsMember" xlink:label="loc_us-gaap_PrepaidExpensesAndOtherCurrentAssetsMember_EA43E22D470BCAD371DC8095E75B64DE" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_BalanceSheetLocationDomain_0CD56C55A1C92C3789B28095E75B8F1E" xlink:to="loc_us-gaap_PrepaidExpensesAndOtherCurrentAssetsMember_EA43E22D470BCAD371DC8095E75B64DE" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_AccruedExpensesMember" xlink:label="loc_cgnx_AccruedExpensesMember_E306A91B53258FB793C18095E75B5683" xlink:type="locator" />
    <link:definitionArc order="2" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_BalanceSheetLocationDomain_0CD56C55A1C92C3789B28095E75B8F1E" xlink:to="loc_cgnx_AccruedExpensesMember_E306A91B53258FB793C18095E75B5683" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_DerivativeAssets" xlink:label="loc_us-gaap_DerivativeAssets_74C879BFA1D22EDE7B8F8095E75B73EE" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_DerivativesFairValueLineItems_C44F517377CC67CAB4DA8095E75B686B" xlink:to="loc_us-gaap_DerivativeAssets_74C879BFA1D22EDE7B8F8095E75B73EE" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_DerivativeLiabilities" xlink:label="loc_us-gaap_DerivativeLiabilities_A3E9E2C997ADC9A7DD618095E75BED83" xlink:type="locator" />
    <link:definitionArc order="2" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_DerivativesFairValueLineItems_C44F517377CC67CAB4DA8095E75B686B" xlink:to="loc_us-gaap_DerivativeLiabilities_A3E9E2C997ADC9A7DD618095E75BED83" xlink:type="arc" />
  </link:definitionLink>
  <link:definitionLink xlink:role="http://cognex.com/role/DerivativeInstrumentsChangesInAociDetails" xlink:type="extended">
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_AccumulatedOtherComprehensiveIncomeLossLineItems" xlink:label="loc_us-gaap_AccumulatedOtherComprehensiveIncomeLossLineItems_D3D822DA32B44DCDBAA635BF4AA3F2FC" xlink:type="locator" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_AccumulatedOtherComprehensiveIncomeLossTable" xlink:label="loc_us-gaap_AccumulatedOtherComprehensiveIncomeLossTable_1764074BFA5217EECA6035BF4AA28D6A" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_AccumulatedOtherComprehensiveIncomeLossLineItems_D3D822DA32B44DCDBAA635BF4AA3F2FC" xlink:to="loc_us-gaap_AccumulatedOtherComprehensiveIncomeLossTable_1764074BFA5217EECA6035BF4AA28D6A" xlink:type="arc" xbrldt:closed="true" xbrldt:contextElement="segment" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_StatementEquityComponentsAxis" xlink:label="loc_us-gaap_StatementEquityComponentsAxis_D545945FF53C465484A935BF4AA3F56B" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_AccumulatedOtherComprehensiveIncomeLossTable_1764074BFA5217EECA6035BF4AA28D6A" xlink:to="loc_us-gaap_StatementEquityComponentsAxis_D545945FF53C465484A935BF4AA3F56B" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_EquityComponentDomain" xlink:label="loc_us-gaap_EquityComponentDomain_960F7B0936E13AFC2DCB35BF4AA329B2_default" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_StatementEquityComponentsAxis_D545945FF53C465484A935BF4AA3F56B" xlink:to="loc_us-gaap_EquityComponentDomain_960F7B0936E13AFC2DCB35BF4AA329B2_default" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_EquityComponentDomain" xlink:label="loc_us-gaap_EquityComponentDomain_960F7B0936E13AFC2DCB35BF4AA329B2" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_StatementEquityComponentsAxis_D545945FF53C465484A935BF4AA3F56B" xlink:to="loc_us-gaap_EquityComponentDomain_960F7B0936E13AFC2DCB35BF4AA329B2" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_AOCIAttributableToParentNetOfTaxRollForward" xlink:label="loc_us-gaap_AOCIAttributableToParentNetOfTaxRollForward_21E365232ED45223F22035BF4AA3F69D" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_AccumulatedOtherComprehensiveIncomeLossLineItems_D3D822DA32B44DCDBAA635BF4AA3F2FC" xlink:to="loc_us-gaap_AOCIAttributableToParentNetOfTaxRollForward_21E365232ED45223F22035BF4AA3F69D" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax" xlink:label="loc_us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax_B988C09C618B4DC3DF7935BF4AA42F90" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_AOCIAttributableToParentNetOfTaxRollForward_21E365232ED45223F22035BF4AA3F69D" xlink:to="loc_us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax_B988C09C618B4DC3DF7935BF4AA42F90" xlink:type="arc" />
  </link:definitionLink>
  <link:definitionLink xlink:role="http://cognex.com/role/DerivativeInstrumentsGainLossRecognizedInOtherComprehensiveIncomeLossDetails" xlink:type="extended">
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_DerivativeInstrumentsGainLossLineItems" xlink:label="loc_us-gaap_DerivativeInstrumentsGainLossLineItems_80E7155190768B04A3AD35C0E69D91C2" xlink:type="locator" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_DerivativeInstrumentsGainLossByHedgingRelationshipByIncomeStatementLocationByDerivativeInstrumentRiskTable" xlink:label="loc_us-gaap_DerivativeInstrumentsGainLossByHedgingRelationshipByIncomeStatementLocationByDerivativeInstrumentRiskTable_B575C3892635EA767E5235C0E695EB58" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_DerivativeInstrumentsGainLossLineItems_80E7155190768B04A3AD35C0E69D91C2" xlink:to="loc_us-gaap_DerivativeInstrumentsGainLossByHedgingRelationshipByIncomeStatementLocationByDerivativeInstrumentRiskTable_B575C3892635EA767E5235C0E695EB58" xlink:type="arc" xbrldt:closed="true" xbrldt:contextElement="segment" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_IncomeStatementLocationAxis" xlink:label="loc_us-gaap_IncomeStatementLocationAxis_55CAE3FD8454800D846A35C0E6950719" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_DerivativeInstrumentsGainLossByHedgingRelationshipByIncomeStatementLocationByDerivativeInstrumentRiskTable_B575C3892635EA767E5235C0E695EB58" xlink:to="loc_us-gaap_IncomeStatementLocationAxis_55CAE3FD8454800D846A35C0E6950719" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_IncomeStatementLocationDomain" xlink:label="loc_us-gaap_IncomeStatementLocationDomain_58063E15C084D5C9CA5535C0E696A5ED_default" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_IncomeStatementLocationAxis_55CAE3FD8454800D846A35C0E6950719" xlink:to="loc_us-gaap_IncomeStatementLocationDomain_58063E15C084D5C9CA5535C0E696A5ED_default" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_IncomeStatementLocationDomain" xlink:label="loc_us-gaap_IncomeStatementLocationDomain_58063E15C084D5C9CA5535C0E696A5ED" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_IncomeStatementLocationAxis_55CAE3FD8454800D846A35C0E6950719" xlink:to="loc_us-gaap_IncomeStatementLocationDomain_58063E15C084D5C9CA5535C0E696A5ED" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_CashFlowHedgingMember" xlink:label="loc_us-gaap_CashFlowHedgingMember_1A90D2E05CAA7F6B495335C0E69663F5" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_IncomeStatementLocationDomain_58063E15C084D5C9CA5535C0E696A5ED" xlink:to="loc_us-gaap_CashFlowHedgingMember_1A90D2E05CAA7F6B495335C0E69663F5" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_SalesRevenueGoodsNetMember" xlink:label="loc_us-gaap_SalesRevenueGoodsNetMember_66858E7E231683B933CC35C0E696CC3C" xlink:type="locator" />
    <link:definitionArc order="2" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_IncomeStatementLocationDomain_58063E15C084D5C9CA5535C0E696A5ED" xlink:to="loc_us-gaap_SalesRevenueGoodsNetMember_66858E7E231683B933CC35C0E696CC3C" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ResearchAndDevelopmentExpenseMember" xlink:label="loc_us-gaap_ResearchAndDevelopmentExpenseMember_23EB09CE6633BDA0A2B335C0E696874F" xlink:type="locator" />
    <link:definitionArc order="3" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_IncomeStatementLocationDomain_58063E15C084D5C9CA5535C0E696A5ED" xlink:to="loc_us-gaap_ResearchAndDevelopmentExpenseMember_23EB09CE6633BDA0A2B335C0E696874F" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_GeneralAndAdministrativeExpenseMember" xlink:label="loc_us-gaap_GeneralAndAdministrativeExpenseMember_A606CB55F5AC9FE97A9835C0E69638CE" xlink:type="locator" />
    <link:definitionArc order="4" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_IncomeStatementLocationDomain_58063E15C084D5C9CA5535C0E696A5ED" xlink:to="loc_us-gaap_GeneralAndAdministrativeExpenseMember_A606CB55F5AC9FE97A9835C0E69638CE" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ForeignCurrencyGainLossMember" xlink:label="loc_us-gaap_ForeignCurrencyGainLossMember_D4DC0A363886C5A067AD35C0E6978315" xlink:type="locator" />
    <link:definitionArc order="5" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_IncomeStatementLocationDomain_58063E15C084D5C9CA5535C0E696A5ED" xlink:to="loc_us-gaap_ForeignCurrencyGainLossMember_D4DC0A363886C5A067AD35C0E6978315" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_HedgingDesignationAxis" xlink:label="loc_us-gaap_HedgingDesignationAxis_A23153EA5CE2518C225935C0E69794D0" xlink:type="locator" />
    <link:definitionArc order="2" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_DerivativeInstrumentsGainLossByHedgingRelationshipByIncomeStatementLocationByDerivativeInstrumentRiskTable_B575C3892635EA767E5235C0E695EB58" xlink:to="loc_us-gaap_HedgingDesignationAxis_A23153EA5CE2518C225935C0E69794D0" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_HedgingDesignationDomain" xlink:label="loc_us-gaap_HedgingDesignationDomain_D54FE03F6386F7FAFDFE35C0E697A8F3_default" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_HedgingDesignationAxis_A23153EA5CE2518C225935C0E69794D0" xlink:to="loc_us-gaap_HedgingDesignationDomain_D54FE03F6386F7FAFDFE35C0E697A8F3_default" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_HedgingDesignationDomain" xlink:label="loc_us-gaap_HedgingDesignationDomain_D54FE03F6386F7FAFDFE35C0E697A8F3" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_HedgingDesignationAxis_A23153EA5CE2518C225935C0E69794D0" xlink:to="loc_us-gaap_HedgingDesignationDomain_D54FE03F6386F7FAFDFE35C0E697A8F3" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_DesignatedAsHedgingInstrumentMember" xlink:label="loc_us-gaap_DesignatedAsHedgingInstrumentMember_2E0E2C12A2705BD032C635C0E6972342" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_HedgingDesignationDomain_D54FE03F6386F7FAFDFE35C0E697A8F3" xlink:to="loc_us-gaap_DesignatedAsHedgingInstrumentMember_2E0E2C12A2705BD032C635C0E6972342" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_NondesignatedMember" xlink:label="loc_us-gaap_NondesignatedMember_D5470DF027EB1AB4256335C0E6986A20" xlink:type="locator" />
    <link:definitionArc order="2" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_HedgingDesignationDomain_D54FE03F6386F7FAFDFE35C0E697A8F3" xlink:to="loc_us-gaap_NondesignatedMember_D5470DF027EB1AB4256335C0E6986A20" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_DerivativeInstrumentsGainLossReclassifiedFromAccumulatedOCIIntoIncomeEffectivePortionNet" xlink:label="loc_us-gaap_DerivativeInstrumentsGainLossReclassifiedFromAccumulatedOCIIntoIncomeEffectivePortionNet_153F001CC1AB5BA2623D35C0E69DA308" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_DerivativeInstrumentsGainLossLineItems_80E7155190768B04A3AD35C0E69D91C2" xlink:to="loc_us-gaap_DerivativeInstrumentsGainLossReclassifiedFromAccumulatedOCIIntoIncomeEffectivePortionNet_153F001CC1AB5BA2623D35C0E69DA308" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIOnDerivativesNetOfTax" xlink:label="loc_us-gaap_OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIOnDerivativesNetOfTax_A256EBE55BFCDD845C1F35C0E69EDE73" xlink:type="locator" />
    <link:definitionArc order="2" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_DerivativeInstrumentsGainLossLineItems_80E7155190768B04A3AD35C0E69D91C2" xlink:to="loc_us-gaap_OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIOnDerivativesNetOfTax_A256EBE55BFCDD845C1F35C0E69EDE73" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_DerivativeGainLossOnDerivativeNetAbstract" xlink:label="loc_us-gaap_DerivativeGainLossOnDerivativeNetAbstract_0A684B0540B9C044B7D735C0E69E0B43" xlink:type="locator" />
    <link:definitionArc order="3" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_DerivativeInstrumentsGainLossLineItems_80E7155190768B04A3AD35C0E69D91C2" xlink:to="loc_us-gaap_DerivativeGainLossOnDerivativeNetAbstract_0A684B0540B9C044B7D735C0E69E0B43" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_DerivativeGainLossOnDerivativeNet" xlink:label="loc_us-gaap_DerivativeGainLossOnDerivativeNet_304D118D370A4B1849D835C0E69E154E" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_DerivativeGainLossOnDerivativeNetAbstract_0A684B0540B9C044B7D735C0E69E0B43" xlink:to="loc_us-gaap_DerivativeGainLossOnDerivativeNet_304D118D370A4B1849D835C0E69E154E" xlink:type="arc" />
  </link:definitionLink>
  <link:definitionLink xlink:role="http://cognex.com/role/DerivativeInstrumentsOutstandingForwardContractsDetails" xlink:type="extended">
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_DerivativeLineItems" xlink:label="loc_us-gaap_DerivativeLineItems_F920D744F88EF591F57C30F90F36FDC9" xlink:type="locator" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_DerivativeTable" xlink:label="loc_us-gaap_DerivativeTable_1030CB7D72D2B1EFAF8730F90F2EF159" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_DerivativeLineItems_F920D744F88EF591F57C30F90F36FDC9" xlink:to="loc_us-gaap_DerivativeTable_1030CB7D72D2B1EFAF8730F90F2EF159" xlink:type="arc" xbrldt:closed="true" xbrldt:contextElement="segment" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_HedgingDesignationAxis" xlink:label="loc_us-gaap_HedgingDesignationAxis_E9AD6E08C5296034E17630F90F2EA3E5" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_DerivativeTable_1030CB7D72D2B1EFAF8730F90F2EF159" xlink:to="loc_us-gaap_HedgingDesignationAxis_E9AD6E08C5296034E17630F90F2EA3E5" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_HedgingDesignationDomain" xlink:label="loc_us-gaap_HedgingDesignationDomain_A0B99C94FA83B85B67E330F90F334049_default" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_HedgingDesignationAxis_E9AD6E08C5296034E17630F90F2EA3E5" xlink:to="loc_us-gaap_HedgingDesignationDomain_A0B99C94FA83B85B67E330F90F334049_default" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_HedgingDesignationDomain" xlink:label="loc_us-gaap_HedgingDesignationDomain_A0B99C94FA83B85B67E330F90F334049" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_HedgingDesignationAxis_E9AD6E08C5296034E17630F90F2EA3E5" xlink:to="loc_us-gaap_HedgingDesignationDomain_A0B99C94FA83B85B67E330F90F334049" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_NondesignatedMember" xlink:label="loc_us-gaap_NondesignatedMember_48E8B91410517948DDDB30F90F3405CB" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_HedgingDesignationDomain_A0B99C94FA83B85B67E330F90F334049" xlink:to="loc_us-gaap_NondesignatedMember_48E8B91410517948DDDB30F90F3405CB" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2018/elts/srt-2018-01-31.xsd#srt_CurrencyAxis" xlink:label="loc_srt_CurrencyAxis_0B2C204A07078114E70830F90F349F48" xlink:type="locator" />
    <link:definitionArc order="2" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_DerivativeTable_1030CB7D72D2B1EFAF8730F90F2EF159" xlink:to="loc_srt_CurrencyAxis_0B2C204A07078114E70830F90F349F48" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.sec.gov/currency/2017/currency-2017-01-31.xsd#currency_AllCurrenciesDomain" xlink:label="loc_currency_AllCurrenciesDomain_2923F30B1916FBDAA82E30F90F3417F9_default" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_srt_CurrencyAxis_0B2C204A07078114E70830F90F349F48" xlink:to="loc_currency_AllCurrenciesDomain_2923F30B1916FBDAA82E30F90F3417F9_default" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.sec.gov/currency/2017/currency-2017-01-31.xsd#currency_AllCurrenciesDomain" xlink:label="loc_currency_AllCurrenciesDomain_2923F30B1916FBDAA82E30F90F3417F9" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_srt_CurrencyAxis_0B2C204A07078114E70830F90F349F48" xlink:to="loc_currency_AllCurrenciesDomain_2923F30B1916FBDAA82E30F90F3417F9" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.sec.gov/currency/2017/currency-2017-01-31.xsd#currency_KRW" xlink:label="loc_currency_KRW_AF2C26702AA946496BB330F90F35010F" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_currency_AllCurrenciesDomain_2923F30B1916FBDAA82E30F90F3417F9" xlink:to="loc_currency_KRW_AF2C26702AA946496BB330F90F35010F" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.sec.gov/currency/2017/currency-2017-01-31.xsd#currency_EUR" xlink:label="loc_currency_EUR_023DCB8820A1C400CDB130F90F35E55B" xlink:type="locator" />
    <link:definitionArc order="2" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_currency_AllCurrenciesDomain_2923F30B1916FBDAA82E30F90F3417F9" xlink:to="loc_currency_EUR_023DCB8820A1C400CDB130F90F35E55B" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.sec.gov/currency/2017/currency-2017-01-31.xsd#currency_JPY" xlink:label="loc_currency_JPY_02DBFD1482065484886B30F90F351F1B" xlink:type="locator" />
    <link:definitionArc order="3" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_currency_AllCurrenciesDomain_2923F30B1916FBDAA82E30F90F3417F9" xlink:to="loc_currency_JPY_02DBFD1482065484886B30F90F351F1B" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.sec.gov/currency/2017/currency-2017-01-31.xsd#currency_MXN" xlink:label="loc_currency_MXN_B44052A0666C51C413A530F90F356030" xlink:type="locator" />
    <link:definitionArc order="4" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_currency_AllCurrenciesDomain_2923F30B1916FBDAA82E30F90F3417F9" xlink:to="loc_currency_MXN_B44052A0666C51C413A530F90F356030" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.sec.gov/currency/2017/currency-2017-01-31.xsd#currency_GBP" xlink:label="loc_currency_GBP_6BBA5BD7DDE021DEEA6830F90F353F19" xlink:type="locator" />
    <link:definitionArc order="5" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_currency_AllCurrenciesDomain_2923F30B1916FBDAA82E30F90F3417F9" xlink:to="loc_currency_GBP_6BBA5BD7DDE021DEEA6830F90F353F19" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.sec.gov/currency/2017/currency-2017-01-31.xsd#currency_HUF" xlink:label="loc_currency_HUF_CB6AC627E4007A2B005B30F90F360E3B" xlink:type="locator" />
    <link:definitionArc order="6" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_currency_AllCurrenciesDomain_2923F30B1916FBDAA82E30F90F3417F9" xlink:to="loc_currency_HUF_CB6AC627E4007A2B005B30F90F360E3B" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.sec.gov/currency/2017/currency-2017-01-31.xsd#currency_TWD" xlink:label="loc_currency_TWD_E9498BE22828B1EAE59F30F90F36F8A3" xlink:type="locator" />
    <link:definitionArc order="7" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_currency_AllCurrenciesDomain_2923F30B1916FBDAA82E30F90F3417F9" xlink:to="loc_currency_TWD_E9498BE22828B1EAE59F30F90F36F8A3" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.sec.gov/currency/2017/currency-2017-01-31.xsd#currency_CAD" xlink:label="loc_currency_CAD_BC20211A8F8FD6371E8930F90F361A44" xlink:type="locator" />
    <link:definitionArc order="8" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_currency_AllCurrenciesDomain_2923F30B1916FBDAA82E30F90F3417F9" xlink:to="loc_currency_CAD_BC20211A8F8FD6371E8930F90F361A44" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.sec.gov/currency/2017/currency-2017-01-31.xsd#currency_SGD" xlink:label="loc_currency_SGD_ACE2642FAA600CC7377A30F90F367FBE" xlink:type="locator" />
    <link:definitionArc order="9" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_currency_AllCurrenciesDomain_2923F30B1916FBDAA82E30F90F3417F9" xlink:to="loc_currency_SGD_ACE2642FAA600CC7377A30F90F367FBE" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_DerivativeAssetNotionalAmount" xlink:label="loc_us-gaap_DerivativeAssetNotionalAmount_88D3145E544E878F2C5D30F90F37A8EA" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_DerivativeLineItems_F920D744F88EF591F57C30F90F36FDC9" xlink:to="loc_us-gaap_DerivativeAssetNotionalAmount_88D3145E544E878F2C5D30F90F37A8EA" xlink:type="arc" />
  </link:definitionLink>
  <link:definitionLink xlink:role="http://cognex.com/role/DerivativeInstrumentsTables" xlink:type="extended" />
  <link:definitionLink xlink:role="http://cognex.com/role/EmployeeSavingsPlan" xlink:type="extended" />
  <link:definitionLink xlink:role="http://cognex.com/role/EmployeeSavingsPlanAdditionalInformationDetail" xlink:type="extended">
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_DefinedContributionPlanDisclosureLineItems" xlink:label="loc_us-gaap_DefinedContributionPlanDisclosureLineItems_1EF929BC0443B94A55B730FF5BD82D6C" xlink:type="locator" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_DefinedContributionPlanTable" xlink:label="loc_us-gaap_DefinedContributionPlanTable_54B0ACD9A02EEADAC79230FF5BD742AF" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_DefinedContributionPlanDisclosureLineItems_1EF929BC0443B94A55B730FF5BD82D6C" xlink:to="loc_us-gaap_DefinedContributionPlanTable_54B0ACD9A02EEADAC79230FF5BD742AF" xlink:type="arc" xbrldt:closed="true" xbrldt:contextElement="segment" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_TitleOfIndividualAxis" xlink:label="loc_us-gaap_TitleOfIndividualAxis_093A2AD15A3D76FE98A130FF5BD7BFAC" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_DefinedContributionPlanTable_54B0ACD9A02EEADAC79230FF5BD742AF" xlink:to="loc_us-gaap_TitleOfIndividualAxis_093A2AD15A3D76FE98A130FF5BD7BFAC" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_TitleOfIndividualWithRelationshipToEntityDomain" xlink:label="loc_us-gaap_TitleOfIndividualWithRelationshipToEntityDomain_C846D12A4F0C1D9966F230FF5BD7C128_default" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_TitleOfIndividualAxis_093A2AD15A3D76FE98A130FF5BD7BFAC" xlink:to="loc_us-gaap_TitleOfIndividualWithRelationshipToEntityDomain_C846D12A4F0C1D9966F230FF5BD7C128_default" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_TitleOfIndividualWithRelationshipToEntityDomain" xlink:label="loc_us-gaap_TitleOfIndividualWithRelationshipToEntityDomain_C846D12A4F0C1D9966F230FF5BD7C128" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_TitleOfIndividualAxis_093A2AD15A3D76FE98A130FF5BD7BFAC" xlink:to="loc_us-gaap_TitleOfIndividualWithRelationshipToEntityDomain_C846D12A4F0C1D9966F230FF5BD7C128" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_MinimumAgeToBeEligibleToDefinedContributionPlan" xlink:label="loc_cgnx_MinimumAgeToBeEligibleToDefinedContributionPlan_3683BAF6864F11B9F26730FF5BD80D81" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_DefinedContributionPlanDisclosureLineItems_1EF929BC0443B94A55B730FF5BD82D6C" xlink:to="loc_cgnx_MinimumAgeToBeEligibleToDefinedContributionPlan_3683BAF6864F11B9F26730FF5BD80D81" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_DefinedContributionPlanMaximumAnnualContributionsPerEmployeePercent" xlink:label="loc_us-gaap_DefinedContributionPlanMaximumAnnualContributionsPerEmployeePercent_12FF79A12F20B960E92930FF5BD87282" xlink:type="locator" />
    <link:definitionArc order="2" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_DefinedContributionPlanDisclosureLineItems_1EF929BC0443B94A55B730FF5BD82D6C" xlink:to="loc_us-gaap_DefinedContributionPlanMaximumAnnualContributionsPerEmployeePercent_12FF79A12F20B960E92930FF5BD87282" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_DefinedContributionPlanEmployerMatchingContributionPercentOfMatch" xlink:label="loc_us-gaap_DefinedContributionPlanEmployerMatchingContributionPercentOfMatch_447E41C4E3A86385391230FF5BD80138" xlink:type="locator" />
    <link:definitionArc order="3" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_DefinedContributionPlanDisclosureLineItems_1EF929BC0443B94A55B730FF5BD82D6C" xlink:to="loc_us-gaap_DefinedContributionPlanEmployerMatchingContributionPercentOfMatch_447E41C4E3A86385391230FF5BD80138" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_DefinedContributionPlanEmployerMatchingContributionPercent" xlink:label="loc_us-gaap_DefinedContributionPlanEmployerMatchingContributionPercent_18AACB096975C85137AB30FF5BD9F518" xlink:type="locator" />
    <link:definitionArc order="4" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_DefinedContributionPlanDisclosureLineItems_1EF929BC0443B94A55B730FF5BD82D6C" xlink:to="loc_us-gaap_DefinedContributionPlanEmployerMatchingContributionPercent_18AACB096975C85137AB30FF5BD9F518" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_CompanyContributionsVestAtEndOfTwoYear" xlink:label="loc_cgnx_CompanyContributionsVestAtEndOfTwoYear_4349296B18DB41CF72B630FF5BD9607F" xlink:type="locator" />
    <link:definitionArc order="5" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_DefinedContributionPlanDisclosureLineItems_1EF929BC0443B94A55B730FF5BD82D6C" xlink:to="loc_cgnx_CompanyContributionsVestAtEndOfTwoYear_4349296B18DB41CF72B630FF5BD9607F" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_CompanyContributionsVestAtEndOfThreeYears" xlink:label="loc_cgnx_CompanyContributionsVestAtEndOfThreeYears_055B845AABE7996D915530FF5BD993D1" xlink:type="locator" />
    <link:definitionArc order="6" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_DefinedContributionPlanDisclosureLineItems_1EF929BC0443B94A55B730FF5BD82D6C" xlink:to="loc_cgnx_CompanyContributionsVestAtEndOfThreeYears_055B845AABE7996D915530FF5BD993D1" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_CompanyContributionsVestAtEndOfFourYears" xlink:label="loc_cgnx_CompanyContributionsVestAtEndOfFourYears_11F578D17477B88F9F6430FF5BD913C7" xlink:type="locator" />
    <link:definitionArc order="7" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_DefinedContributionPlanDisclosureLineItems_1EF929BC0443B94A55B730FF5BD82D6C" xlink:to="loc_cgnx_CompanyContributionsVestAtEndOfFourYears_11F578D17477B88F9F6430FF5BD913C7" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_CompanyContributionsVestAtEndOfFiveYears" xlink:label="loc_cgnx_CompanyContributionsVestAtEndOfFiveYears_97AC939970AF17A5426730FF5BD95A19" xlink:type="locator" />
    <link:definitionArc order="8" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_DefinedContributionPlanDisclosureLineItems_1EF929BC0443B94A55B730FF5BD82D6C" xlink:to="loc_cgnx_CompanyContributionsVestAtEndOfFiveYears_97AC939970AF17A5426730FF5BD95A19" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_DefinedContributionPlanCostRecognized" xlink:label="loc_us-gaap_DefinedContributionPlanCostRecognized_44FD1F0AC8A39605B5EE30FF5BD96EEA" xlink:type="locator" />
    <link:definitionArc order="9" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_DefinedContributionPlanDisclosureLineItems_1EF929BC0443B94A55B730FF5BD82D6C" xlink:to="loc_us-gaap_DefinedContributionPlanCostRecognized_44FD1F0AC8A39605B5EE30FF5BD96EEA" xlink:type="arc" />
  </link:definitionLink>
  <link:definitionLink xlink:role="http://cognex.com/role/FairValueMeasurements" xlink:type="extended" />
  <link:definitionLink xlink:role="http://cognex.com/role/FairValueMeasurementsAssetsAndLiabilitiesMeasuredAtFairValueOnRecurringBasisDetail" xlink:type="extended">
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems" xlink:label="loc_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems_AECFBEC4AD4CFA4443BFF3C900375C2F" xlink:type="locator" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisTable" xlink:label="loc_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisTable_8E6A7C40F4F31B776D76F3C9003471D3" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems_AECFBEC4AD4CFA4443BFF3C900375C2F" xlink:to="loc_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisTable_8E6A7C40F4F31B776D76F3C9003471D3" xlink:type="arc" xbrldt:closed="true" xbrldt:contextElement="segment" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_FairValueByFairValueHierarchyLevelAxis" xlink:label="loc_us-gaap_FairValueByFairValueHierarchyLevelAxis_72F69AD3B2633AD13DB1F3C90035607D" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisTable_8E6A7C40F4F31B776D76F3C9003471D3" xlink:to="loc_us-gaap_FairValueByFairValueHierarchyLevelAxis_72F69AD3B2633AD13DB1F3C90035607D" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_FairValueMeasurementsFairValueHierarchyDomain" xlink:label="loc_us-gaap_FairValueMeasurementsFairValueHierarchyDomain_20F729C55C38CF342375F3C90035CD53_default" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_FairValueByFairValueHierarchyLevelAxis_72F69AD3B2633AD13DB1F3C90035607D" xlink:to="loc_us-gaap_FairValueMeasurementsFairValueHierarchyDomain_20F729C55C38CF342375F3C90035CD53_default" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_FairValueMeasurementsFairValueHierarchyDomain" xlink:label="loc_us-gaap_FairValueMeasurementsFairValueHierarchyDomain_20F729C55C38CF342375F3C90035CD53" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_FairValueByFairValueHierarchyLevelAxis_72F69AD3B2633AD13DB1F3C90035607D" xlink:to="loc_us-gaap_FairValueMeasurementsFairValueHierarchyDomain_20F729C55C38CF342375F3C90035CD53" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_FairValueInputsLevel1Member" xlink:label="loc_us-gaap_FairValueInputsLevel1Member_5E8E89A51A7199A033D1F3C90035725C" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_FairValueMeasurementsFairValueHierarchyDomain_20F729C55C38CF342375F3C90035CD53" xlink:to="loc_us-gaap_FairValueInputsLevel1Member_5E8E89A51A7199A033D1F3C90035725C" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_FairValueInputsLevel2Member" xlink:label="loc_us-gaap_FairValueInputsLevel2Member_C9F2ABF2C16D4BEA6623F3C90036E376" xlink:type="locator" />
    <link:definitionArc order="2" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_FairValueMeasurementsFairValueHierarchyDomain_20F729C55C38CF342375F3C90035CD53" xlink:to="loc_us-gaap_FairValueInputsLevel2Member_C9F2ABF2C16D4BEA6623F3C90036E376" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_FairValueInputsLevel3Member" xlink:label="loc_us-gaap_FairValueInputsLevel3Member_3A7BE9FE52C9B92FC50AF3C90036550E" xlink:type="locator" />
    <link:definitionArc order="3" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_FairValueMeasurementsFairValueHierarchyDomain_20F729C55C38CF342375F3C90035CD53" xlink:to="loc_us-gaap_FairValueInputsLevel3Member_3A7BE9FE52C9B92FC50AF3C90036550E" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_FairValueByMeasurementFrequencyAxis" xlink:label="loc_us-gaap_FairValueByMeasurementFrequencyAxis_8BE98BA05A7A35AA64CBF3C900366396" xlink:type="locator" />
    <link:definitionArc order="2" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisTable_8E6A7C40F4F31B776D76F3C9003471D3" xlink:to="loc_us-gaap_FairValueByMeasurementFrequencyAxis_8BE98BA05A7A35AA64CBF3C900366396" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_FairValueMeasurementFrequencyDomain" xlink:label="loc_us-gaap_FairValueMeasurementFrequencyDomain_5C45205616BBEF045A36F3C90036BF7C_default" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_FairValueByMeasurementFrequencyAxis_8BE98BA05A7A35AA64CBF3C900366396" xlink:to="loc_us-gaap_FairValueMeasurementFrequencyDomain_5C45205616BBEF045A36F3C90036BF7C_default" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_FairValueMeasurementFrequencyDomain" xlink:label="loc_us-gaap_FairValueMeasurementFrequencyDomain_5C45205616BBEF045A36F3C90036BF7C" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_FairValueByMeasurementFrequencyAxis_8BE98BA05A7A35AA64CBF3C900366396" xlink:to="loc_us-gaap_FairValueMeasurementFrequencyDomain_5C45205616BBEF045A36F3C90036BF7C" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_FairValueMeasurementsRecurringMember" xlink:label="loc_us-gaap_FairValueMeasurementsRecurringMember_0B17EB267FAE7BBBA593F3C900368501" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_FairValueMeasurementFrequencyDomain_5C45205616BBEF045A36F3C90036BF7C" xlink:to="loc_us-gaap_FairValueMeasurementsRecurringMember_0B17EB267FAE7BBBA593F3C900368501" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_AssetsFairValueDisclosureAbstract" xlink:label="loc_us-gaap_AssetsFairValueDisclosureAbstract_FC05C4386DDA7DFDF1F5F3C90037A59D" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems_AECFBEC4AD4CFA4443BFF3C900375C2F" xlink:to="loc_us-gaap_AssetsFairValueDisclosureAbstract_FC05C4386DDA7DFDF1F5F3C90037A59D" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_MoneyMarketInstrumentsFairValueDisclosure" xlink:label="loc_cgnx_MoneyMarketInstrumentsFairValueDisclosure_54C03A6A32D64234A519F3C90037144B" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_AssetsFairValueDisclosureAbstract_FC05C4386DDA7DFDF1F5F3C90037A59D" xlink:to="loc_cgnx_MoneyMarketInstrumentsFairValueDisclosure_54C03A6A32D64234A519F3C90037144B" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_TreasuryBillsFairValueDisclosure" xlink:label="loc_cgnx_TreasuryBillsFairValueDisclosure_172950622E1E06DE5B36F3C90038C0F9" xlink:type="locator" />
    <link:definitionArc order="2" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_AssetsFairValueDisclosureAbstract_FC05C4386DDA7DFDF1F5F3C90037A59D" xlink:to="loc_cgnx_TreasuryBillsFairValueDisclosure_172950622E1E06DE5B36F3C90038C0F9" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_CorporateBondsFairValueDisclosure" xlink:label="loc_cgnx_CorporateBondsFairValueDisclosure_B9E527EB9721B8DE7481F3C900387FCC" xlink:type="locator" />
    <link:definitionArc order="3" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_AssetsFairValueDisclosureAbstract_FC05C4386DDA7DFDF1F5F3C90037A59D" xlink:to="loc_cgnx_CorporateBondsFairValueDisclosure_B9E527EB9721B8DE7481F3C900387FCC" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_AssetBackedSecuritiesFairValueDisclosure" xlink:label="loc_cgnx_AssetBackedSecuritiesFairValueDisclosure_94EA398A981D960EB0B2F3C900383DDF" xlink:type="locator" />
    <link:definitionArc order="4" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_AssetsFairValueDisclosureAbstract_FC05C4386DDA7DFDF1F5F3C90037A59D" xlink:to="loc_cgnx_AssetBackedSecuritiesFairValueDisclosure_94EA398A981D960EB0B2F3C900383DDF" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_SovereignBondsFairValueDisclosure" xlink:label="loc_cgnx_SovereignBondsFairValueDisclosure_0EDDCC5B05518E8B3BD3F3C90038C0A1" xlink:type="locator" />
    <link:definitionArc order="5" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_AssetsFairValueDisclosureAbstract_FC05C4386DDA7DFDF1F5F3C90037A59D" xlink:to="loc_cgnx_SovereignBondsFairValueDisclosure_0EDDCC5B05518E8B3BD3F3C90038C0A1" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_MunicipalBondsFairValueDisclosure" xlink:label="loc_cgnx_MunicipalBondsFairValueDisclosure_AD570EE7AB3C3FF2C976F3C90038EFFA" xlink:type="locator" />
    <link:definitionArc order="6" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_AssetsFairValueDisclosureAbstract_FC05C4386DDA7DFDF1F5F3C90037A59D" xlink:to="loc_cgnx_MunicipalBondsFairValueDisclosure_AD570EE7AB3C3FF2C976F3C90038EFFA" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_AgencyBondsFairValueDisclosure" xlink:label="loc_cgnx_AgencyBondsFairValueDisclosure_205EBBA4ABD2D259CA88F3C90038FEF2" xlink:type="locator" />
    <link:definitionArc order="7" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_AssetsFairValueDisclosureAbstract_FC05C4386DDA7DFDF1F5F3C90037A59D" xlink:to="loc_cgnx_AgencyBondsFairValueDisclosure_205EBBA4ABD2D259CA88F3C90038FEF2" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_CertificateOfDepositFairValueDisclosure" xlink:label="loc_cgnx_CertificateOfDepositFairValueDisclosure_BD625731E66E80D8E98CF3D47F3F495A" xlink:type="locator" />
    <link:definitionArc order="8" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_AssetsFairValueDisclosureAbstract_FC05C4386DDA7DFDF1F5F3C90037A59D" xlink:to="loc_cgnx_CertificateOfDepositFairValueDisclosure_BD625731E66E80D8E98CF3D47F3F495A" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ForeignCurrencyContractAssetFairValueDisclosure" xlink:label="loc_us-gaap_ForeignCurrencyContractAssetFairValueDisclosure_B5AB3F66A52EDA148500F3C900396555" xlink:type="locator" />
    <link:definitionArc order="9" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_AssetsFairValueDisclosureAbstract_FC05C4386DDA7DFDF1F5F3C90037A59D" xlink:to="loc_us-gaap_ForeignCurrencyContractAssetFairValueDisclosure_B5AB3F66A52EDA148500F3C900396555" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_LiabilitiesFairValueDisclosureAbstract" xlink:label="loc_us-gaap_LiabilitiesFairValueDisclosureAbstract_431B2C039571A700DDE1F3C900393857" xlink:type="locator" />
    <link:definitionArc order="2" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems_AECFBEC4AD4CFA4443BFF3C900375C2F" xlink:to="loc_us-gaap_LiabilitiesFairValueDisclosureAbstract_431B2C039571A700DDE1F3C900393857" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ForeignCurrencyContractsLiabilityFairValueDisclosure" xlink:label="loc_us-gaap_ForeignCurrencyContractsLiabilityFairValueDisclosure_5E1CF9DD6B0473FAF7BFF3C90039B2CC" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_LiabilitiesFairValueDisclosureAbstract_431B2C039571A700DDE1F3C900393857" xlink:to="loc_us-gaap_ForeignCurrencyContractsLiabilityFairValueDisclosure_5E1CF9DD6B0473FAF7BFF3C90039B2CC" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_BusinessCombinationContingentConsiderationLiability" xlink:label="loc_us-gaap_BusinessCombinationContingentConsiderationLiability_72FCA4C55D53481E201FF3C90039AD93" xlink:type="locator" />
    <link:definitionArc order="2" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_LiabilitiesFairValueDisclosureAbstract_431B2C039571A700DDE1F3C900393857" xlink:to="loc_us-gaap_BusinessCombinationContingentConsiderationLiability_72FCA4C55D53481E201FF3C90039AD93" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_OtherThanTemporaryImpairmentLossesInvestmentsPortionRecognizedInEarningsNet" xlink:label="loc_us-gaap_OtherThanTemporaryImpairmentLossesInvestmentsPortionRecognizedInEarningsNet_1B8FB2F5F5D780AEDD22F3C900390570" xlink:type="locator" />
    <link:definitionArc order="3" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems_AECFBEC4AD4CFA4443BFF3C900375C2F" xlink:to="loc_us-gaap_OtherThanTemporaryImpairmentLossesInvestmentsPortionRecognizedInEarningsNet_1B8FB2F5F5D780AEDD22F3C900390570" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_OtherThanTemporaryImpairmentLossesInvestmentsPortionRecognizedInEarningsNetnoncurrent" xlink:label="loc_cgnx_OtherThanTemporaryImpairmentLossesInvestmentsPortionRecognizedInEarningsNetnoncurrent_020ECCEE1408FC954E28F3C9003909AA" xlink:type="locator" />
    <link:definitionArc order="4" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems_AECFBEC4AD4CFA4443BFF3C900375C2F" xlink:to="loc_cgnx_OtherThanTemporaryImpairmentLossesInvestmentsPortionRecognizedInEarningsNetnoncurrent_020ECCEE1408FC954E28F3C9003909AA" xlink:type="arc" />
  </link:definitionLink>
  <link:definitionLink xlink:role="http://cognex.com/role/FairValueMeasurementsLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationDetails" xlink:type="extended">
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationLineItems" xlink:label="loc_us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationLineItems_AD350B7099C2E10E9B4FF3C9002E9208" xlink:type="locator" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationTable" xlink:label="loc_us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationTable_23F6596F03A00E8BCD97F3C9002C3ACA" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationLineItems_AD350B7099C2E10E9B4FF3C9002E9208" xlink:to="loc_us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationTable_23F6596F03A00E8BCD97F3C9002C3ACA" xlink:type="arc" xbrldt:closed="true" xbrldt:contextElement="segment" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_BusinessAcquisitionAxis" xlink:label="loc_us-gaap_BusinessAcquisitionAxis_ACDCA2FE8FAF5C335869F3C9002DD89C" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationTable_23F6596F03A00E8BCD97F3C9002C3ACA" xlink:to="loc_us-gaap_BusinessAcquisitionAxis_ACDCA2FE8FAF5C335869F3C9002DD89C" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_BusinessAcquisitionAcquireeDomain" xlink:label="loc_us-gaap_BusinessAcquisitionAcquireeDomain_7199D047DCE1188769C8F3C9002D65B8_default" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_BusinessAcquisitionAxis_ACDCA2FE8FAF5C335869F3C9002DD89C" xlink:to="loc_us-gaap_BusinessAcquisitionAcquireeDomain_7199D047DCE1188769C8F3C9002D65B8_default" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_BusinessAcquisitionAcquireeDomain" xlink:label="loc_us-gaap_BusinessAcquisitionAcquireeDomain_7199D047DCE1188769C8F3C9002D65B8" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_BusinessAcquisitionAxis_ACDCA2FE8FAF5C335869F3C9002DD89C" xlink:to="loc_us-gaap_BusinessAcquisitionAcquireeDomain_7199D047DCE1188769C8F3C9002D65B8" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_GViVenturesInc.Member" xlink:label="loc_cgnx_GViVenturesInc.Member_7DCE48B9C1B69C7CA063F3C9002E210A" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_BusinessAcquisitionAcquireeDomain_7199D047DCE1188769C8F3C9002D65B8" xlink:to="loc_cgnx_GViVenturesInc.Member_7DCE48B9C1B69C7CA063F3C9002E210A" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_ManateeWorksInc.Member" xlink:label="loc_cgnx_ManateeWorksInc.Member_4DC562BA84E155663EA9F3C9002DDC3B" xlink:type="locator" />
    <link:definitionArc order="2" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_BusinessAcquisitionAcquireeDomain_7199D047DCE1188769C8F3C9002D65B8" xlink:to="loc_cgnx_ManateeWorksInc.Member_4DC562BA84E155663EA9F3C9002DDC3B" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_ChiaroTechnologiesLLCMember" xlink:label="loc_cgnx_ChiaroTechnologiesLLCMember_F48063CCE5F9E127612FF3C9002EAF06" xlink:type="locator" />
    <link:definitionArc order="3" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_BusinessAcquisitionAcquireeDomain_7199D047DCE1188769C8F3C9002D65B8" xlink:to="loc_cgnx_ChiaroTechnologiesLLCMember_F48063CCE5F9E127612FF3C9002EAF06" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationCalculationRollForward" xlink:label="loc_us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationCalculationRollForward_6A54ADB6FA2A89617602F3C9002E20C0" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationLineItems_AD350B7099C2E10E9B4FF3C9002E9208" xlink:to="loc_us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationCalculationRollForward_6A54ADB6FA2A89617602F3C9002E20C0" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue" xlink:label="loc_us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue_28278CF7AD150AFC4BBDF3C9002E1856" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationCalculationRollForward_6A54ADB6FA2A89617602F3C9002E20C0" xlink:to="loc_us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue_28278CF7AD150AFC4BBDF3C9002E1856" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilitySettlements" xlink:label="loc_us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilitySettlements_47C47440973C4BBD2374F3C9002FB1FB" xlink:type="locator" />
    <link:definitionArc order="2" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationCalculationRollForward_6A54ADB6FA2A89617602F3C9002E20C0" xlink:to="loc_us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilitySettlements_47C47440973C4BBD2374F3C9002FB1FB" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_LiabilitiesFairValueAdjustment" xlink:label="loc_us-gaap_LiabilitiesFairValueAdjustment_2F303076E3E392CFA9EDF3C9002FA397" xlink:type="locator" />
    <link:definitionArc order="3" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationCalculationRollForward_6A54ADB6FA2A89617602F3C9002E20C0" xlink:to="loc_us-gaap_LiabilitiesFairValueAdjustment_2F303076E3E392CFA9EDF3C9002FA397" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueLow" xlink:label="loc_us-gaap_BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueLow_B5C98C4EC60F8F9B7A64F3D7C87C4E13" xlink:type="locator" />
    <link:definitionArc order="2" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationLineItems_AD350B7099C2E10E9B4FF3C9002E9208" xlink:to="loc_us-gaap_BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueLow_B5C98C4EC60F8F9B7A64F3D7C87C4E13" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueHigh" xlink:label="loc_us-gaap_BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueHigh_AF7F388CDCFB98741C45F3D7C893FA0D" xlink:type="locator" />
    <link:definitionArc order="3" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationLineItems_AD350B7099C2E10E9B4FF3C9002E9208" xlink:to="loc_us-gaap_BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueHigh_AF7F388CDCFB98741C45F3D7C893FA0D" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_GoodwillAndIntangibleAssetImpairment" xlink:label="loc_us-gaap_GoodwillAndIntangibleAssetImpairment_C6B3F6721A900706E851F3D8002508CC" xlink:type="locator" />
    <link:definitionArc order="4" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationLineItems_AD350B7099C2E10E9B4FF3C9002E9208" xlink:to="loc_us-gaap_GoodwillAndIntangibleAssetImpairment_C6B3F6721A900706E851F3D8002508CC" xlink:type="arc" />
  </link:definitionLink>
  <link:definitionLink xlink:role="http://cognex.com/role/FairValueMeasurementsTables" xlink:type="extended" />
  <link:definitionLink xlink:role="http://cognex.com/role/Goodwill" xlink:type="extended" />
  <link:definitionLink xlink:role="http://cognex.com/role/GoodwillChangesInCarryingValueOfGoodwillDetail" xlink:type="extended">
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_GoodwillLineItems" xlink:label="loc_us-gaap_GoodwillLineItems_7EBC56DB0EC5896455CEF3C8FFD5FDC2" xlink:type="locator" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ScheduleOfGoodwillTable" xlink:label="loc_us-gaap_ScheduleOfGoodwillTable_C2688F67A075E88C3BD9F3C8FFD4AF6F" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_GoodwillLineItems_7EBC56DB0EC5896455CEF3C8FFD5FDC2" xlink:to="loc_us-gaap_ScheduleOfGoodwillTable_C2688F67A075E88C3BD9F3C8FFD4AF6F" xlink:type="arc" xbrldt:closed="true" xbrldt:contextElement="segment" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_BusinessAcquisitionAxis" xlink:label="loc_us-gaap_BusinessAcquisitionAxis_28E48C6666637AA7A530F3C8FFD49890" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ScheduleOfGoodwillTable_C2688F67A075E88C3BD9F3C8FFD4AF6F" xlink:to="loc_us-gaap_BusinessAcquisitionAxis_28E48C6666637AA7A530F3C8FFD49890" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_BusinessAcquisitionAcquireeDomain" xlink:label="loc_us-gaap_BusinessAcquisitionAcquireeDomain_C820A8C83F455F39BC67F3C8FFD5F544_default" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_BusinessAcquisitionAxis_28E48C6666637AA7A530F3C8FFD49890" xlink:to="loc_us-gaap_BusinessAcquisitionAcquireeDomain_C820A8C83F455F39BC67F3C8FFD5F544_default" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_BusinessAcquisitionAcquireeDomain" xlink:label="loc_us-gaap_BusinessAcquisitionAcquireeDomain_C820A8C83F455F39BC67F3C8FFD5F544" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_BusinessAcquisitionAxis_28E48C6666637AA7A530F3C8FFD49890" xlink:to="loc_us-gaap_BusinessAcquisitionAcquireeDomain_C820A8C83F455F39BC67F3C8FFD5F544" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_SualabCo.Ltd.Member" xlink:label="loc_cgnx_SualabCo.Ltd.Member_2359434C2E10A6F96FDCF40F39844370" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_BusinessAcquisitionAcquireeDomain_C820A8C83F455F39BC67F3C8FFD5F544" xlink:to="loc_cgnx_SualabCo.Ltd.Member_2359434C2E10A6F96FDCF40F39844370" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_GoodwillRollForward" xlink:label="loc_us-gaap_GoodwillRollForward_BDAC0DA61DAA7E9C90DAF3C8FFD6E617" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_GoodwillLineItems_7EBC56DB0EC5896455CEF3C8FFD5FDC2" xlink:to="loc_us-gaap_GoodwillRollForward_BDAC0DA61DAA7E9C90DAF3C8FFD6E617" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_Goodwill" xlink:label="loc_us-gaap_Goodwill_0744871A2227B08574A6F3C8FFD6AE0F" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_GoodwillRollForward_BDAC0DA61DAA7E9C90DAF3C8FFD6E617" xlink:to="loc_us-gaap_Goodwill_0744871A2227B08574A6F3C8FFD6AE0F" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_GoodwillAcquiredDuringPeriod" xlink:label="loc_us-gaap_GoodwillAcquiredDuringPeriod_DA8C795C2322F8BB0542F3C8FFD6B0B4" xlink:type="locator" />
    <link:definitionArc order="2" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_GoodwillRollForward_BDAC0DA61DAA7E9C90DAF3C8FFD6E617" xlink:to="loc_us-gaap_GoodwillAcquiredDuringPeriod_DA8C795C2322F8BB0542F3C8FFD6B0B4" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_GoodwillForeignCurrencyTranslationGainLoss" xlink:label="loc_us-gaap_GoodwillForeignCurrencyTranslationGainLoss_670E2D39A11B71EAD142F41255C800F9" xlink:type="locator" />
    <link:definitionArc order="3" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_GoodwillRollForward_BDAC0DA61DAA7E9C90DAF3C8FFD6E617" xlink:to="loc_us-gaap_GoodwillForeignCurrencyTranslationGainLoss_670E2D39A11B71EAD142F41255C800F9" xlink:type="arc" />
  </link:definitionLink>
  <link:definitionLink xlink:role="http://cognex.com/role/GoodwillTables" xlink:type="extended" />
  <link:definitionLink xlink:role="http://cognex.com/role/IndemnificationProvisions" xlink:type="extended" />
  <link:definitionLink xlink:role="http://cognex.com/role/IndemnificationProvisionsNarrativeDetails" xlink:type="extended">
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_LossContingenciesLineItems" xlink:label="loc_us-gaap_LossContingenciesLineItems_4435AE4CC1E2CFD58C3835BFC90557EB" xlink:type="locator" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_LossContingenciesTable" xlink:label="loc_us-gaap_LossContingenciesTable_AB0279D1DDE1ACD94E5F35BFC901600B" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_LossContingenciesLineItems_4435AE4CC1E2CFD58C3835BFC90557EB" xlink:to="loc_us-gaap_LossContingenciesTable_AB0279D1DDE1ACD94E5F35BFC901600B" xlink:type="arc" xbrldt:closed="true" xbrldt:contextElement="segment" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_DisposalGroupClassificationAxis" xlink:label="loc_us-gaap_DisposalGroupClassificationAxis_00BDDD4C5667C7A5820335BFC90117BB" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_LossContingenciesTable_AB0279D1DDE1ACD94E5F35BFC901600B" xlink:to="loc_us-gaap_DisposalGroupClassificationAxis_00BDDD4C5667C7A5820335BFC90117BB" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_DisposalGroupClassificationDomain" xlink:label="loc_us-gaap_DisposalGroupClassificationDomain_83E9F3B100FC3412E97435BFC90271CA_default" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_DisposalGroupClassificationAxis_00BDDD4C5667C7A5820335BFC90117BB" xlink:to="loc_us-gaap_DisposalGroupClassificationDomain_83E9F3B100FC3412E97435BFC90271CA_default" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_DisposalGroupClassificationDomain" xlink:label="loc_us-gaap_DisposalGroupClassificationDomain_83E9F3B100FC3412E97435BFC90271CA" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_DisposalGroupClassificationAxis_00BDDD4C5667C7A5820335BFC90117BB" xlink:to="loc_us-gaap_DisposalGroupClassificationDomain_83E9F3B100FC3412E97435BFC90271CA" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2018/elts/srt-2018-01-31.xsd#srt_LitigationCaseAxis" xlink:label="loc_srt_LitigationCaseAxis_6E731AA46229A1E9BFC435BFC902666D" xlink:type="locator" />
    <link:definitionArc order="2" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_LossContingenciesTable_AB0279D1DDE1ACD94E5F35BFC901600B" xlink:to="loc_srt_LitigationCaseAxis_6E731AA46229A1E9BFC435BFC902666D" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2018/elts/srt-2018-01-31.xsd#srt_LitigationCaseTypeDomain" xlink:label="loc_srt_LitigationCaseTypeDomain_0273003BE49B29493CA835BFC902626A_default" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_srt_LitigationCaseAxis_6E731AA46229A1E9BFC435BFC902666D" xlink:to="loc_srt_LitigationCaseTypeDomain_0273003BE49B29493CA835BFC902626A_default" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2018/elts/srt-2018-01-31.xsd#srt_LitigationCaseTypeDomain" xlink:label="loc_srt_LitigationCaseTypeDomain_0273003BE49B29493CA835BFC902626A" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_srt_LitigationCaseAxis_6E731AA46229A1E9BFC435BFC902666D" xlink:to="loc_srt_LitigationCaseTypeDomain_0273003BE49B29493CA835BFC902626A" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_LitigationStatusAxis" xlink:label="loc_us-gaap_LitigationStatusAxis_800EDB91A740909D813635BFC9035F35" xlink:type="locator" />
    <link:definitionArc order="3" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_LossContingenciesTable_AB0279D1DDE1ACD94E5F35BFC901600B" xlink:to="loc_us-gaap_LitigationStatusAxis_800EDB91A740909D813635BFC9035F35" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_LitigationStatusDomain" xlink:label="loc_us-gaap_LitigationStatusDomain_9C9793E209286BF89AE835BFC903C9BA_default" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_LitigationStatusAxis_800EDB91A740909D813635BFC9035F35" xlink:to="loc_us-gaap_LitigationStatusDomain_9C9793E209286BF89AE835BFC903C9BA_default" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_LitigationStatusDomain" xlink:label="loc_us-gaap_LitigationStatusDomain_9C9793E209286BF89AE835BFC903C9BA" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_LitigationStatusAxis_800EDB91A740909D813635BFC9035F35" xlink:to="loc_us-gaap_LitigationStatusDomain_9C9793E209286BF89AE835BFC903C9BA" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_LossContingenciesByNatureOfContingencyAxis" xlink:label="loc_us-gaap_LossContingenciesByNatureOfContingencyAxis_65CFE90675C84200C6C735BFC9047089" xlink:type="locator" />
    <link:definitionArc order="4" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_LossContingenciesTable_AB0279D1DDE1ACD94E5F35BFC901600B" xlink:to="loc_us-gaap_LossContingenciesByNatureOfContingencyAxis_65CFE90675C84200C6C735BFC9047089" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_LossContingencyNatureDomain" xlink:label="loc_us-gaap_LossContingencyNatureDomain_E208D362A51E9188B22735BFC904404F_default" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_LossContingenciesByNatureOfContingencyAxis_65CFE90675C84200C6C735BFC9047089" xlink:to="loc_us-gaap_LossContingencyNatureDomain_E208D362A51E9188B22735BFC904404F_default" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_LossContingencyNatureDomain" xlink:label="loc_us-gaap_LossContingencyNatureDomain_E208D362A51E9188B22735BFC904404F" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_LossContingenciesByNatureOfContingencyAxis_65CFE90675C84200C6C735BFC9047089" xlink:to="loc_us-gaap_LossContingencyNatureDomain_E208D362A51E9188B22735BFC904404F" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_GuaranteeObligationsMember" xlink:label="loc_us-gaap_GuaranteeObligationsMember_36CA1DECB65F9A4D606535BFC9043117" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_LossContingencyNatureDomain_E208D362A51E9188B22735BFC904404F" xlink:to="loc_us-gaap_GuaranteeObligationsMember_36CA1DECB65F9A4D606535BFC9043117" xlink:type="arc" />
  </link:definitionLink>
  <link:definitionLink xlink:role="http://cognex.com/role/IntangibleAssets" xlink:type="extended" />
  <link:definitionLink xlink:role="http://cognex.com/role/IntangibleAssetsAmortizedIntangibleAssetsDetail" xlink:type="extended">
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsLineItems" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsLineItems_677F78B3DAEEA3C52CBE30EAB793BB3A" xlink:type="locator" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable" xlink:label="loc_us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable_8789136AA478A805CD4030EAB7916726" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsLineItems_677F78B3DAEEA3C52CBE30EAB793BB3A" xlink:to="loc_us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable_8789136AA478A805CD4030EAB7916726" xlink:type="arc" xbrldt:closed="true" xbrldt:contextElement="segment" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_C9D18B4724E1DD1B44F630EAB7919448" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable_8789136AA478A805CD4030EAB7916726" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_C9D18B4724E1DD1B44F630EAB7919448" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_753339B7EB5A3F8D485630EAB7918175_default" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_C9D18B4724E1DD1B44F630EAB7919448" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_753339B7EB5A3F8D485630EAB7918175_default" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_753339B7EB5A3F8D485630EAB7918175" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_C9D18B4724E1DD1B44F630EAB7919448" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_753339B7EB5A3F8D485630EAB7918175" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_DistributionRightsMember" xlink:label="loc_us-gaap_DistributionRightsMember_86DC26C9427B7A1D506B30EAB791C222" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_753339B7EB5A3F8D485630EAB7918175" xlink:to="loc_us-gaap_DistributionRightsMember_86DC26C9427B7A1D506B30EAB791C222" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_DevelopedTechnologyRightsMember" xlink:label="loc_us-gaap_DevelopedTechnologyRightsMember_DFE4E36EA122880CF81030EAB792AAF8" xlink:type="locator" />
    <link:definitionArc order="2" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_753339B7EB5A3F8D485630EAB7918175" xlink:to="loc_us-gaap_DevelopedTechnologyRightsMember_DFE4E36EA122880CF81030EAB792AAF8" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_CustomerContractsAndRelationshipsMember" xlink:label="loc_cgnx_CustomerContractsAndRelationshipsMember_D6F917A015685B619AE630EAB792A350" xlink:type="locator" />
    <link:definitionArc order="3" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_753339B7EB5A3F8D485630EAB7918175" xlink:to="loc_cgnx_CustomerContractsAndRelationshipsMember_D6F917A015685B619AE630EAB792A350" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_InProcessResearchAndDevelopmentMember" xlink:label="loc_us-gaap_InProcessResearchAndDevelopmentMember_130747FF35BC14A973B630EAB792DCA8" xlink:type="locator" />
    <link:definitionArc order="4" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_753339B7EB5A3F8D485630EAB7918175" xlink:to="loc_us-gaap_InProcessResearchAndDevelopmentMember_130747FF35BC14A973B630EAB792DCA8" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_NoncompeteAgreementsMember" xlink:label="loc_us-gaap_NoncompeteAgreementsMember_E7524B4541979F07C7BF30EAB79241D6" xlink:type="locator" />
    <link:definitionArc order="5" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_753339B7EB5A3F8D485630EAB7918175" xlink:to="loc_us-gaap_NoncompeteAgreementsMember_E7524B4541979F07C7BF30EAB79241D6" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_TrademarksMember" xlink:label="loc_us-gaap_TrademarksMember_9E00504A4B85E31B18F130EAB793743F" xlink:type="locator" />
    <link:definitionArc order="6" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_753339B7EB5A3F8D485630EAB7918175" xlink:to="loc_us-gaap_TrademarksMember_9E00504A4B85E31B18F130EAB793743F" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_OtherIntangibleAssetsMember" xlink:label="loc_us-gaap_OtherIntangibleAssetsMember_52BE84243227E6BB1E0830EAB7933589" xlink:type="locator" />
    <link:definitionArc order="7" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_753339B7EB5A3F8D485630EAB7918175" xlink:to="loc_us-gaap_OtherIntangibleAssetsMember_52BE84243227E6BB1E0830EAB7933589" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsGross" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsGross_A2D239A5708A62A0549130EAB793D9BF" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsLineItems_677F78B3DAEEA3C52CBE30EAB793BB3A" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsGross_A2D239A5708A62A0549130EAB793D9BF" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization_12BB2EF3CF749AADAA8330EAB79395E2" xlink:type="locator" />
    <link:definitionArc order="2" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsLineItems_677F78B3DAEEA3C52CBE30EAB793BB3A" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization_12BB2EF3CF749AADAA8330EAB79395E2" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_IntangibleAssetsNetIncludingGoodwill" xlink:label="loc_us-gaap_IntangibleAssetsNetIncludingGoodwill_109F1B8B8ECAB110495F30EABAF40E7A" xlink:type="locator" />
    <link:definitionArc order="3" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsLineItems_677F78B3DAEEA3C52CBE30EAB793BB3A" xlink:to="loc_us-gaap_IntangibleAssetsNetIncludingGoodwill_109F1B8B8ECAB110495F30EABAF40E7A" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsNet" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsNet_0BB43CFA93571E4C618A30EAB7933A2E" xlink:type="locator" />
    <link:definitionArc order="4" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsLineItems_677F78B3DAEEA3C52CBE30EAB793BB3A" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsNet_0BB43CFA93571E4C618A30EAB7933A2E" xlink:type="arc" />
  </link:definitionLink>
  <link:definitionLink xlink:role="http://cognex.com/role/IntangibleAssetsEstimatedAmortizationExpenseSucceedingFiscalYearsDetail" xlink:type="extended" />
  <link:definitionLink xlink:role="http://cognex.com/role/IntangibleAssetsTables" xlink:type="extended" />
  <link:definitionLink xlink:role="http://cognex.com/role/Inventories" xlink:type="extended" />
  <link:definitionLink xlink:role="http://cognex.com/role/InventoriesInventoriesDetail" xlink:type="extended" />
  <link:definitionLink xlink:role="http://cognex.com/role/InventoriesTables" xlink:type="extended" />
  <link:definitionLink xlink:role="http://cognex.com/role/LeasesDetails" xlink:type="extended">
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_NewAccountingPronouncementsOrChangeInAccountingPrincipleLineItems" xlink:label="loc_us-gaap_NewAccountingPronouncementsOrChangeInAccountingPrincipleLineItems_06AC62503233BA7E7897F3FA10DF8074" xlink:type="locator" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_NewAccountingPronouncementsOrChangeInAccountingPrincipleTable" xlink:label="loc_us-gaap_NewAccountingPronouncementsOrChangeInAccountingPrincipleTable_E0C01722285E3035F133F3FA10DE842F" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_NewAccountingPronouncementsOrChangeInAccountingPrincipleLineItems_06AC62503233BA7E7897F3FA10DF8074" xlink:to="loc_us-gaap_NewAccountingPronouncementsOrChangeInAccountingPrincipleTable_E0C01722285E3035F133F3FA10DE842F" xlink:type="arc" xbrldt:closed="true" xbrldt:contextElement="segment" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_AdjustmentsForNewAccountingPronouncementsAxis" xlink:label="loc_us-gaap_AdjustmentsForNewAccountingPronouncementsAxis_A38C9F752AA004DB9FCFF3FA32B08D8B" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_NewAccountingPronouncementsOrChangeInAccountingPrincipleTable_E0C01722285E3035F133F3FA10DE842F" xlink:to="loc_us-gaap_AdjustmentsForNewAccountingPronouncementsAxis_A38C9F752AA004DB9FCFF3FA32B08D8B" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_TypeOfAdoptionMember" xlink:label="loc_us-gaap_TypeOfAdoptionMember_61D8B3EC2D46DBD82B3BF3FA32B4694E_default" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_AdjustmentsForNewAccountingPronouncementsAxis_A38C9F752AA004DB9FCFF3FA32B08D8B" xlink:to="loc_us-gaap_TypeOfAdoptionMember_61D8B3EC2D46DBD82B3BF3FA32B4694E_default" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_TypeOfAdoptionMember" xlink:label="loc_us-gaap_TypeOfAdoptionMember_61D8B3EC2D46DBD82B3BF3FA32B4694E" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_AdjustmentsForNewAccountingPronouncementsAxis_A38C9F752AA004DB9FCFF3FA32B08D8B" xlink:to="loc_us-gaap_TypeOfAdoptionMember_61D8B3EC2D46DBD82B3BF3FA32B4694E" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_AccountingStandardsUpdate201602Member" xlink:label="loc_us-gaap_AccountingStandardsUpdate201602Member_E55315330D880C19DC52F3FA4FC0A5F9" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_TypeOfAdoptionMember_61D8B3EC2D46DBD82B3BF3FA32B4694E" xlink:to="loc_us-gaap_AccountingStandardsUpdate201602Member_E55315330D880C19DC52F3FA4FC0A5F9" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_OperatingLeaseRightOfUseAsset" xlink:label="loc_us-gaap_OperatingLeaseRightOfUseAsset_D60FB0D9DF7C8BDBE123F3F97C644CE5" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_NewAccountingPronouncementsOrChangeInAccountingPrincipleLineItems_06AC62503233BA7E7897F3FA10DF8074" xlink:to="loc_us-gaap_OperatingLeaseRightOfUseAsset_D60FB0D9DF7C8BDBE123F3F97C644CE5" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_OperatingLeaseLiabilityCurrent" xlink:label="loc_us-gaap_OperatingLeaseLiabilityCurrent_6019DCEDB53E48BC269FF3FB5E6C8807" xlink:type="locator" />
    <link:definitionArc order="2" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_NewAccountingPronouncementsOrChangeInAccountingPrincipleLineItems_06AC62503233BA7E7897F3FA10DF8074" xlink:to="loc_us-gaap_OperatingLeaseLiabilityCurrent_6019DCEDB53E48BC269FF3FB5E6C8807" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_OperatingLeaseLiabilityNoncurrent" xlink:label="loc_us-gaap_OperatingLeaseLiabilityNoncurrent_C5FC9A022EEC38CF70A8F3F90CEE4D7A" xlink:type="locator" />
    <link:definitionArc order="3" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_NewAccountingPronouncementsOrChangeInAccountingPrincipleLineItems_06AC62503233BA7E7897F3FA10DF8074" xlink:to="loc_us-gaap_OperatingLeaseLiabilityNoncurrent_C5FC9A022EEC38CF70A8F3F90CEE4D7A" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_OperatingLeaseExpense" xlink:label="loc_us-gaap_OperatingLeaseExpense_E9B6D2C27EBC440204B6F3FD0EE9510E" xlink:type="locator" />
    <link:definitionArc order="4" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_NewAccountingPronouncementsOrChangeInAccountingPrincipleLineItems_06AC62503233BA7E7897F3FA10DF8074" xlink:to="loc_us-gaap_OperatingLeaseExpense_E9B6D2C27EBC440204B6F3FD0EE9510E" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_OperatingLeasePayments" xlink:label="loc_us-gaap_OperatingLeasePayments_C0D2A231D57B0C3A37B4F3FDAA0D88B8" xlink:type="locator" />
    <link:definitionArc order="5" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_NewAccountingPronouncementsOrChangeInAccountingPrincipleLineItems_06AC62503233BA7E7897F3FA10DF8074" xlink:to="loc_us-gaap_OperatingLeasePayments_C0D2A231D57B0C3A37B4F3FDAA0D88B8" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_OperatingLeaseExpenseNoLiabilityOrAssetRecognized" xlink:label="loc_cgnx_OperatingLeaseExpenseNoLiabilityOrAssetRecognized_AE2BF7D5391C5C6EA8FFF3FFA888D701" xlink:type="locator" />
    <link:definitionArc order="6" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_NewAccountingPronouncementsOrChangeInAccountingPrincipleLineItems_06AC62503233BA7E7897F3FA10DF8074" xlink:to="loc_cgnx_OperatingLeaseExpenseNoLiabilityOrAssetRecognized_AE2BF7D5391C5C6EA8FFF3FFA888D701" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_LeaseAndRentalExpense" xlink:label="loc_us-gaap_LeaseAndRentalExpense_9E60831B7BDB419298C2F3FE8082801C" xlink:type="locator" />
    <link:definitionArc order="7" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_NewAccountingPronouncementsOrChangeInAccountingPrincipleLineItems_06AC62503233BA7E7897F3FA10DF8074" xlink:to="loc_us-gaap_LeaseAndRentalExpense_9E60831B7BDB419298C2F3FE8082801C" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_OperatingLeaseLiability" xlink:label="loc_us-gaap_OperatingLeaseLiability_BF64CCEFB3DC463FCD83F402F3C739A5" xlink:type="locator" />
    <link:definitionArc order="8" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_NewAccountingPronouncementsOrChangeInAccountingPrincipleLineItems_06AC62503233BA7E7897F3FA10DF8074" xlink:to="loc_us-gaap_OperatingLeaseLiability_BF64CCEFB3DC463FCD83F402F3C739A5" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_OperatingLeaseWeightedAverageDiscountRatePercent" xlink:label="loc_us-gaap_OperatingLeaseWeightedAverageDiscountRatePercent_D51C54562CC5D6B0AEDFF4044DEEAC03" xlink:type="locator" />
    <link:definitionArc order="9" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_NewAccountingPronouncementsOrChangeInAccountingPrincipleLineItems_06AC62503233BA7E7897F3FA10DF8074" xlink:to="loc_us-gaap_OperatingLeaseWeightedAverageDiscountRatePercent_D51C54562CC5D6B0AEDFF4044DEEAC03" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_OperatingLeaseWeightedAverageRemainingLeaseTerm1" xlink:label="loc_us-gaap_OperatingLeaseWeightedAverageRemainingLeaseTerm1_88224D8961D9ACCD7C00F4056057ED40" xlink:type="locator" />
    <link:definitionArc order="10" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_NewAccountingPronouncementsOrChangeInAccountingPrincipleLineItems_06AC62503233BA7E7897F3FA10DF8074" xlink:to="loc_us-gaap_OperatingLeaseWeightedAverageRemainingLeaseTerm1_88224D8961D9ACCD7C00F4056057ED40" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_OperatingLeaseLeaseIncome" xlink:label="loc_us-gaap_OperatingLeaseLeaseIncome_67FD589BD10ED0184008F406DD4489F4" xlink:type="locator" />
    <link:definitionArc order="11" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_NewAccountingPronouncementsOrChangeInAccountingPrincipleLineItems_06AC62503233BA7E7897F3FA10DF8074" xlink:to="loc_us-gaap_OperatingLeaseLeaseIncome_67FD589BD10ED0184008F406DD4489F4" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_RentalIncomeNonoperating" xlink:label="loc_us-gaap_RentalIncomeNonoperating_6ABF3F6FEEC6CF42C8CBF408ECB0B99B" xlink:type="locator" />
    <link:definitionArc order="12" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_NewAccountingPronouncementsOrChangeInAccountingPrincipleLineItems_06AC62503233BA7E7897F3FA10DF8074" xlink:to="loc_us-gaap_RentalIncomeNonoperating_6ABF3F6FEEC6CF42C8CBF408ECB0B99B" xlink:type="arc" />
  </link:definitionLink>
  <link:definitionLink xlink:role="http://cognex.com/role/LeasesLeases" xlink:type="extended" />
  <link:definitionLink xlink:role="http://cognex.com/role/LeasesScheduleOfPaymentsDetails" xlink:type="extended" />
  <link:definitionLink xlink:role="http://cognex.com/role/LeasesScheduleOfRentalReceiptsDetails" xlink:type="extended" />
  <link:definitionLink xlink:role="http://cognex.com/role/LeasesTables" xlink:type="extended" />
  <link:definitionLink xlink:role="http://cognex.com/role/NewPronouncements" xlink:type="extended" />
  <link:definitionLink xlink:role="http://cognex.com/role/NewPronouncementsDetails" xlink:type="extended">
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_NewAccountingPronouncementsOrChangeInAccountingPrincipleLineItems" xlink:label="loc_us-gaap_NewAccountingPronouncementsOrChangeInAccountingPrincipleLineItems_C7CD83291B3AAA2BF3B730EDE0B63751" xlink:type="locator" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_NewAccountingPronouncementsOrChangeInAccountingPrincipleTable" xlink:label="loc_us-gaap_NewAccountingPronouncementsOrChangeInAccountingPrincipleTable_46E9E48377B65C81900630EDE0B49C18" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_NewAccountingPronouncementsOrChangeInAccountingPrincipleLineItems_C7CD83291B3AAA2BF3B730EDE0B63751" xlink:to="loc_us-gaap_NewAccountingPronouncementsOrChangeInAccountingPrincipleTable_46E9E48377B65C81900630EDE0B49C18" xlink:type="arc" xbrldt:closed="true" xbrldt:contextElement="segment" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_AdjustmentsForNewAccountingPronouncementsAxis" xlink:label="loc_us-gaap_AdjustmentsForNewAccountingPronouncementsAxis_01EDEB748EADD450E2A330EDE0B4B676" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_NewAccountingPronouncementsOrChangeInAccountingPrincipleTable_46E9E48377B65C81900630EDE0B49C18" xlink:to="loc_us-gaap_AdjustmentsForNewAccountingPronouncementsAxis_01EDEB748EADD450E2A330EDE0B4B676" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_TypeOfAdoptionMember" xlink:label="loc_us-gaap_TypeOfAdoptionMember_9D9DBD880353B5EFD5E330EDE0B49C9D_default" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_AdjustmentsForNewAccountingPronouncementsAxis_01EDEB748EADD450E2A330EDE0B4B676" xlink:to="loc_us-gaap_TypeOfAdoptionMember_9D9DBD880353B5EFD5E330EDE0B49C9D_default" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_TypeOfAdoptionMember" xlink:label="loc_us-gaap_TypeOfAdoptionMember_9D9DBD880353B5EFD5E330EDE0B49C9D" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_AdjustmentsForNewAccountingPronouncementsAxis_01EDEB748EADD450E2A330EDE0B4B676" xlink:to="loc_us-gaap_TypeOfAdoptionMember_9D9DBD880353B5EFD5E330EDE0B49C9D" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_AccountingStandardsUpdate201602Member" xlink:label="loc_us-gaap_AccountingStandardsUpdate201602Member_CD77C168680B139B67EC30EDE0B5C4AB" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_TypeOfAdoptionMember_9D9DBD880353B5EFD5E330EDE0B49C9D" xlink:to="loc_us-gaap_AccountingStandardsUpdate201602Member_CD77C168680B139B67EC30EDE0B5C4AB" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_StatementScenarioAxis" xlink:label="loc_us-gaap_StatementScenarioAxis_4ECA7CFBAC4627FF938930EDE0B5811F" xlink:type="locator" />
    <link:definitionArc order="2" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_NewAccountingPronouncementsOrChangeInAccountingPrincipleTable_46E9E48377B65C81900630EDE0B49C18" xlink:to="loc_us-gaap_StatementScenarioAxis_4ECA7CFBAC4627FF938930EDE0B5811F" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ScenarioUnspecifiedDomain" xlink:label="loc_us-gaap_ScenarioUnspecifiedDomain_CF283C5ABC653C3E6E8630EDE0B5B7E1_default" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_StatementScenarioAxis_4ECA7CFBAC4627FF938930EDE0B5811F" xlink:to="loc_us-gaap_ScenarioUnspecifiedDomain_CF283C5ABC653C3E6E8630EDE0B5B7E1_default" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ScenarioUnspecifiedDomain" xlink:label="loc_us-gaap_ScenarioUnspecifiedDomain_CF283C5ABC653C3E6E8630EDE0B5B7E1" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_StatementScenarioAxis_4ECA7CFBAC4627FF938930EDE0B5811F" xlink:to="loc_us-gaap_ScenarioUnspecifiedDomain_CF283C5ABC653C3E6E8630EDE0B5B7E1" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_OperatingLeaseRightOfUseAsset" xlink:label="loc_us-gaap_OperatingLeaseRightOfUseAsset_7FCE55CCFD75D062559830EDE0B66D55" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_NewAccountingPronouncementsOrChangeInAccountingPrincipleLineItems_C7CD83291B3AAA2BF3B730EDE0B63751" xlink:to="loc_us-gaap_OperatingLeaseRightOfUseAsset_7FCE55CCFD75D062559830EDE0B66D55" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_OperatingLeaseLiability" xlink:label="loc_us-gaap_OperatingLeaseLiability_C8E122AA1519E0B7F3C930EDE0B68B05" xlink:type="locator" />
    <link:definitionArc order="2" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_NewAccountingPronouncementsOrChangeInAccountingPrincipleLineItems_C7CD83291B3AAA2BF3B730EDE0B63751" xlink:to="loc_us-gaap_OperatingLeaseLiability_C8E122AA1519E0B7F3C930EDE0B68B05" xlink:type="arc" />
  </link:definitionLink>
  <link:definitionLink xlink:role="http://cognex.com/role/PropertyPlantAndEquipment" xlink:type="extended" />
  <link:definitionLink xlink:role="http://cognex.com/role/PropertyPlantAndEquipmentAdditionalInformationDetails" xlink:type="extended" />
  <link:definitionLink xlink:role="http://cognex.com/role/PropertyPlantAndEquipmentPropertyPlantAndEquipmentDetail" xlink:type="extended">
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_PropertyPlantAndEquipmentLineItems" xlink:label="loc_us-gaap_PropertyPlantAndEquipmentLineItems_A1CB0E2471AC68AE62BAF3C8FFE64C9A" xlink:type="locator" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ScheduleOfPropertyPlantAndEquipmentTable" xlink:label="loc_us-gaap_ScheduleOfPropertyPlantAndEquipmentTable_00ED899AAD2C98482696F3C8FFE40297" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentLineItems_A1CB0E2471AC68AE62BAF3C8FFE64C9A" xlink:to="loc_us-gaap_ScheduleOfPropertyPlantAndEquipmentTable_00ED899AAD2C98482696F3C8FFE40297" xlink:type="arc" xbrldt:closed="true" xbrldt:contextElement="segment" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_PropertyPlantAndEquipmentByTypeAxis" xlink:label="loc_us-gaap_PropertyPlantAndEquipmentByTypeAxis_E60E213B1349F33A6D18F3C8FFE440CD" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ScheduleOfPropertyPlantAndEquipmentTable_00ED899AAD2C98482696F3C8FFE40297" xlink:to="loc_us-gaap_PropertyPlantAndEquipmentByTypeAxis_E60E213B1349F33A6D18F3C8FFE440CD" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_PropertyPlantAndEquipmentTypeDomain" xlink:label="loc_us-gaap_PropertyPlantAndEquipmentTypeDomain_F8F01BEBFBDE19802B7DF3C8FFE55D31_default" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentByTypeAxis_E60E213B1349F33A6D18F3C8FFE440CD" xlink:to="loc_us-gaap_PropertyPlantAndEquipmentTypeDomain_F8F01BEBFBDE19802B7DF3C8FFE55D31_default" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_PropertyPlantAndEquipmentTypeDomain" xlink:label="loc_us-gaap_PropertyPlantAndEquipmentTypeDomain_F8F01BEBFBDE19802B7DF3C8FFE55D31" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentByTypeAxis_E60E213B1349F33A6D18F3C8FFE440CD" xlink:to="loc_us-gaap_PropertyPlantAndEquipmentTypeDomain_F8F01BEBFBDE19802B7DF3C8FFE55D31" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_LandMember" xlink:label="loc_us-gaap_LandMember_16A22946F242E2B52DBAF3C8FFE51DD2" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentTypeDomain_F8F01BEBFBDE19802B7DF3C8FFE55D31" xlink:to="loc_us-gaap_LandMember_16A22946F242E2B52DBAF3C8FFE51DD2" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_BuildingMember" xlink:label="loc_us-gaap_BuildingMember_F548CBB799446B98CA49F3C8FFE5657C" xlink:type="locator" />
    <link:definitionArc order="2" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentTypeDomain_F8F01BEBFBDE19802B7DF3C8FFE55D31" xlink:to="loc_us-gaap_BuildingMember_F548CBB799446B98CA49F3C8FFE5657C" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_BuildingImprovementsMember" xlink:label="loc_us-gaap_BuildingImprovementsMember_D7A0AE5CD824733D05EBF3C8FFE5B932" xlink:type="locator" />
    <link:definitionArc order="3" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentTypeDomain_F8F01BEBFBDE19802B7DF3C8FFE55D31" xlink:to="loc_us-gaap_BuildingImprovementsMember_D7A0AE5CD824733D05EBF3C8FFE5B932" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_LeaseholdImprovementsMember" xlink:label="loc_us-gaap_LeaseholdImprovementsMember_A20526049B615C49F86AF3C8FFE67387" xlink:type="locator" />
    <link:definitionArc order="4" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentTypeDomain_F8F01BEBFBDE19802B7DF3C8FFE55D31" xlink:to="loc_us-gaap_LeaseholdImprovementsMember_A20526049B615C49F86AF3C8FFE67387" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_HardwareAndSoftwareMember" xlink:label="loc_cgnx_HardwareAndSoftwareMember_A110795A7683F75ABC9BF3C8FFE600C0" xlink:type="locator" />
    <link:definitionArc order="5" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentTypeDomain_F8F01BEBFBDE19802B7DF3C8FFE55D31" xlink:to="loc_cgnx_HardwareAndSoftwareMember_A110795A7683F75ABC9BF3C8FFE600C0" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_EquipmentMember" xlink:label="loc_us-gaap_EquipmentMember_06023722A9F584C644E3F3C8FFE64CFF" xlink:type="locator" />
    <link:definitionArc order="6" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentTypeDomain_F8F01BEBFBDE19802B7DF3C8FFE55D31" xlink:to="loc_us-gaap_EquipmentMember_06023722A9F584C644E3F3C8FFE64CFF" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_FurnitureAndFixturesMember" xlink:label="loc_us-gaap_FurnitureAndFixturesMember_51675EBEF6C4F9BBE361F3C8FFE65F7D" xlink:type="locator" />
    <link:definitionArc order="7" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentTypeDomain_F8F01BEBFBDE19802B7DF3C8FFE55D31" xlink:to="loc_us-gaap_FurnitureAndFixturesMember_51675EBEF6C4F9BBE361F3C8FFE65F7D" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_PropertyPlantAndEquipmentGross" xlink:label="loc_us-gaap_PropertyPlantAndEquipmentGross_6C1D70A4ED67A4EA2777F3C8FFE6047F" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentLineItems_A1CB0E2471AC68AE62BAF3C8FFE64C9A" xlink:to="loc_us-gaap_PropertyPlantAndEquipmentGross_6C1D70A4ED67A4EA2777F3C8FFE6047F" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment" xlink:label="loc_us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment_82CDFF486782EBF3545DF3C8FFE7F821" xlink:type="locator" />
    <link:definitionArc order="2" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentLineItems_A1CB0E2471AC68AE62BAF3C8FFE64C9A" xlink:to="loc_us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment_82CDFF486782EBF3545DF3C8FFE7F821" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_PropertyPlantAndEquipmentNet" xlink:label="loc_us-gaap_PropertyPlantAndEquipmentNet_27FEE7A4128862D569EDF3C8FFE77FC2" xlink:type="locator" />
    <link:definitionArc order="3" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentLineItems_A1CB0E2471AC68AE62BAF3C8FFE64C9A" xlink:to="loc_us-gaap_PropertyPlantAndEquipmentNet_27FEE7A4128862D569EDF3C8FFE77FC2" xlink:type="arc" />
  </link:definitionLink>
  <link:definitionLink xlink:role="http://cognex.com/role/PropertyPlantAndEquipmentTables" xlink:type="extended" />
  <link:definitionLink xlink:role="http://cognex.com/role/RevenueRecognition" xlink:type="extended" />
  <link:definitionLink xlink:role="http://cognex.com/role/RevenueRecognitionBalanceSheetImpactDetails" xlink:type="extended">
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_RevenueInitialApplicationPeriodCumulativeEffectTransitionLineItems" xlink:label="loc_us-gaap_RevenueInitialApplicationPeriodCumulativeEffectTransitionLineItems_61885D4EB7F467ABCBC930EEB160AACA" xlink:type="locator" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_RevenueInitialApplicationPeriodCumulativeEffectTransitionTable" xlink:label="loc_us-gaap_RevenueInitialApplicationPeriodCumulativeEffectTransitionTable_47F8E18C6638D2D03C1030EEB15E4F15" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_RevenueInitialApplicationPeriodCumulativeEffectTransitionLineItems_61885D4EB7F467ABCBC930EEB160AACA" xlink:to="loc_us-gaap_RevenueInitialApplicationPeriodCumulativeEffectTransitionTable_47F8E18C6638D2D03C1030EEB15E4F15" xlink:type="arc" xbrldt:closed="true" xbrldt:contextElement="segment" />
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2018/elts/srt-2018-01-31.xsd#srt_RestatementAxis" xlink:label="loc_srt_RestatementAxis_24AA50CD2B35A6D8E08730EEB15E4CCE" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_RevenueInitialApplicationPeriodCumulativeEffectTransitionTable_47F8E18C6638D2D03C1030EEB15E4F15" xlink:to="loc_srt_RestatementAxis_24AA50CD2B35A6D8E08730EEB15E4CCE" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2018/elts/srt-2018-01-31.xsd#srt_RestatementDomain" xlink:label="loc_srt_RestatementDomain_A353C9EC11AD196D821230EEB15E4D19_default" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_srt_RestatementAxis_24AA50CD2B35A6D8E08730EEB15E4CCE" xlink:to="loc_srt_RestatementDomain_A353C9EC11AD196D821230EEB15E4D19_default" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2018/elts/srt-2018-01-31.xsd#srt_RestatementDomain" xlink:label="loc_srt_RestatementDomain_A353C9EC11AD196D821230EEB15E4D19" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_srt_RestatementAxis_24AA50CD2B35A6D8E08730EEB15E4CCE" xlink:to="loc_srt_RestatementDomain_A353C9EC11AD196D821230EEB15E4D19" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2018/elts/srt-2018-01-31.xsd#srt_ScenarioPreviouslyReportedMember" xlink:label="loc_srt_ScenarioPreviouslyReportedMember_0A780E4498475F0C8DF430EEB15F88BB" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srt_RestatementDomain_A353C9EC11AD196D821230EEB15E4D19" xlink:to="loc_srt_ScenarioPreviouslyReportedMember_0A780E4498475F0C8DF430EEB15F88BB" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2018/elts/srt-2018-01-31.xsd#srt_RestatementAdjustmentMember" xlink:label="loc_srt_RestatementAdjustmentMember_081D74C7C44A9820448530EEB15F76AA" xlink:type="locator" />
    <link:definitionArc order="2" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srt_RestatementDomain_A353C9EC11AD196D821230EEB15E4D19" xlink:to="loc_srt_RestatementAdjustmentMember_081D74C7C44A9820448530EEB15F76AA" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_AdjustmentsForNewAccountingPronouncementsAxis" xlink:label="loc_us-gaap_AdjustmentsForNewAccountingPronouncementsAxis_9531D7B6F656B9AB0D4A30EEB15F6AF1" xlink:type="locator" />
    <link:definitionArc order="2" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_RevenueInitialApplicationPeriodCumulativeEffectTransitionTable_47F8E18C6638D2D03C1030EEB15E4F15" xlink:to="loc_us-gaap_AdjustmentsForNewAccountingPronouncementsAxis_9531D7B6F656B9AB0D4A30EEB15F6AF1" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_TypeOfAdoptionMember" xlink:label="loc_us-gaap_TypeOfAdoptionMember_66DA580998F1796699C030EEB15F4B53_default" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_AdjustmentsForNewAccountingPronouncementsAxis_9531D7B6F656B9AB0D4A30EEB15F6AF1" xlink:to="loc_us-gaap_TypeOfAdoptionMember_66DA580998F1796699C030EEB15F4B53_default" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_TypeOfAdoptionMember" xlink:label="loc_us-gaap_TypeOfAdoptionMember_66DA580998F1796699C030EEB15F4B53" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_AdjustmentsForNewAccountingPronouncementsAxis_9531D7B6F656B9AB0D4A30EEB15F6AF1" xlink:to="loc_us-gaap_TypeOfAdoptionMember_66DA580998F1796699C030EEB15F4B53" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_PrepaidExpenseAndOtherAssetsCurrent" xlink:label="loc_us-gaap_PrepaidExpenseAndOtherAssetsCurrent_C85D4940B53179C0D08330EEB16034C5" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_RevenueInitialApplicationPeriodCumulativeEffectTransitionLineItems_61885D4EB7F467ABCBC930EEB160AACA" xlink:to="loc_us-gaap_PrepaidExpenseAndOtherAssetsCurrent_C85D4940B53179C0D08330EEB16034C5" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_AccruedIncomeTaxesCurrent" xlink:label="loc_us-gaap_AccruedIncomeTaxesCurrent_47156A69C681A350E4E530EEB160D629" xlink:type="locator" />
    <link:definitionArc order="2" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_RevenueInitialApplicationPeriodCumulativeEffectTransitionLineItems_61885D4EB7F467ABCBC930EEB160AACA" xlink:to="loc_us-gaap_AccruedIncomeTaxesCurrent_47156A69C681A350E4E530EEB160D629" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ContractWithCustomerLiabilityCurrent" xlink:label="loc_us-gaap_ContractWithCustomerLiabilityCurrent_ECB3095A8DB7AEC056B430EEB160D84D" xlink:type="locator" />
    <link:definitionArc order="3" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_RevenueInitialApplicationPeriodCumulativeEffectTransitionLineItems_61885D4EB7F467ABCBC930EEB160AACA" xlink:to="loc_us-gaap_ContractWithCustomerLiabilityCurrent_ECB3095A8DB7AEC056B430EEB160D84D" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_RetainedEarningsAccumulatedDeficit" xlink:label="loc_us-gaap_RetainedEarningsAccumulatedDeficit_96062CD99023A2DD01CF30EEB160B191" xlink:type="locator" />
    <link:definitionArc order="4" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_RevenueInitialApplicationPeriodCumulativeEffectTransitionLineItems_61885D4EB7F467ABCBC930EEB160AACA" xlink:to="loc_us-gaap_RetainedEarningsAccumulatedDeficit_96062CD99023A2DD01CF30EEB160B191" xlink:type="arc" />
  </link:definitionLink>
  <link:definitionLink xlink:role="http://cognex.com/role/RevenueRecognitionDeferredRevenueAndCustomerDepositsRollforwardDetails" xlink:type="extended" />
  <link:definitionLink xlink:role="http://cognex.com/role/RevenueRecognitionDisaggregationByGeographyAndTypeDetails" xlink:type="extended">
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_DisaggregationOfRevenueLineItems" xlink:label="loc_us-gaap_DisaggregationOfRevenueLineItems_079986992CEB7DED66128095E7CC7D7D" xlink:type="locator" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_DisaggregationOfRevenueTable" xlink:label="loc_us-gaap_DisaggregationOfRevenueTable_1F42CBFA650F66BD821D8095E7C93D2F" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_DisaggregationOfRevenueLineItems_079986992CEB7DED66128095E7CC7D7D" xlink:to="loc_us-gaap_DisaggregationOfRevenueTable_1F42CBFA650F66BD821D8095E7C93D2F" xlink:type="arc" xbrldt:closed="true" xbrldt:contextElement="segment" />
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2018/elts/srt-2018-01-31.xsd#srt_StatementGeographicalAxis" xlink:label="loc_srt_StatementGeographicalAxis_A0DC6B252882BD69C5698095E7CA02B6" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_DisaggregationOfRevenueTable_1F42CBFA650F66BD821D8095E7C93D2F" xlink:to="loc_srt_StatementGeographicalAxis_A0DC6B252882BD69C5698095E7CA02B6" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2018/elts/srt-2018-01-31.xsd#srt_SegmentGeographicalDomain" xlink:label="loc_srt_SegmentGeographicalDomain_9C6AF6EF4867D79EEE338095E7CA2140_default" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_srt_StatementGeographicalAxis_A0DC6B252882BD69C5698095E7CA02B6" xlink:to="loc_srt_SegmentGeographicalDomain_9C6AF6EF4867D79EEE338095E7CA2140_default" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2018/elts/srt-2018-01-31.xsd#srt_SegmentGeographicalDomain" xlink:label="loc_srt_SegmentGeographicalDomain_9C6AF6EF4867D79EEE338095E7CA2140" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_srt_StatementGeographicalAxis_A0DC6B252882BD69C5698095E7CA02B6" xlink:to="loc_srt_SegmentGeographicalDomain_9C6AF6EF4867D79EEE338095E7CA2140" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2018/elts/srt-2018-01-31.xsd#srt_AmericasMember" xlink:label="loc_srt_AmericasMember_AF2AAEE74332B67BFAFA8095E7CB699C" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srt_SegmentGeographicalDomain_9C6AF6EF4867D79EEE338095E7CA2140" xlink:to="loc_srt_AmericasMember_AF2AAEE74332B67BFAFA8095E7CB699C" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2018/elts/srt-2018-01-31.xsd#srt_EuropeMember" xlink:label="loc_srt_EuropeMember_9BDE3FE1A6E226BAEDA78095E7CB0DAF" xlink:type="locator" />
    <link:definitionArc order="2" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srt_SegmentGeographicalDomain_9C6AF6EF4867D79EEE338095E7CA2140" xlink:to="loc_srt_EuropeMember_9BDE3FE1A6E226BAEDA78095E7CB0DAF" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_GreaterChinaMember" xlink:label="loc_cgnx_GreaterChinaMember_A61C195EF7BEF06687608095E7CB0D1D" xlink:type="locator" />
    <link:definitionArc order="3" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srt_SegmentGeographicalDomain_9C6AF6EF4867D79EEE338095E7CA2140" xlink:to="loc_cgnx_GreaterChinaMember_A61C195EF7BEF06687608095E7CB0D1D" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_OtherAsiaMember" xlink:label="loc_cgnx_OtherAsiaMember_5F5F61EF62B4A2D330678095E7CBA5E3" xlink:type="locator" />
    <link:definitionArc order="4" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srt_SegmentGeographicalDomain_9C6AF6EF4867D79EEE338095E7CA2140" xlink:to="loc_cgnx_OtherAsiaMember_5F5F61EF62B4A2D330678095E7CBA5E3" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2018/elts/srt-2018-01-31.xsd#srt_ProductOrServiceAxis" xlink:label="loc_srt_ProductOrServiceAxis_2A469A5BC03427C2B1C58095E7CBCB38" xlink:type="locator" />
    <link:definitionArc order="2" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_DisaggregationOfRevenueTable_1F42CBFA650F66BD821D8095E7C93D2F" xlink:to="loc_srt_ProductOrServiceAxis_2A469A5BC03427C2B1C58095E7CBCB38" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2018/elts/srt-2018-01-31.xsd#srt_ProductsAndServicesDomain" xlink:label="loc_srt_ProductsAndServicesDomain_BD41715CC781B9C21BBB8095E7CB3030_default" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_srt_ProductOrServiceAxis_2A469A5BC03427C2B1C58095E7CBCB38" xlink:to="loc_srt_ProductsAndServicesDomain_BD41715CC781B9C21BBB8095E7CB3030_default" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2018/elts/srt-2018-01-31.xsd#srt_ProductsAndServicesDomain" xlink:label="loc_srt_ProductsAndServicesDomain_BD41715CC781B9C21BBB8095E7CB3030" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_srt_ProductOrServiceAxis_2A469A5BC03427C2B1C58095E7CBCB38" xlink:to="loc_srt_ProductsAndServicesDomain_BD41715CC781B9C21BBB8095E7CB3030" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_StandardProductandServicesMember" xlink:label="loc_cgnx_StandardProductandServicesMember_F384FFCF6D1656B360118095E7CB1C2B" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srt_ProductsAndServicesDomain_BD41715CC781B9C21BBB8095E7CB3030" xlink:to="loc_cgnx_StandardProductandServicesMember_F384FFCF6D1656B360118095E7CB1C2B" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_ApplicationofCustomerSpecificSolutionsMember" xlink:label="loc_cgnx_ApplicationofCustomerSpecificSolutionsMember_B8CADF21BE7166734B7E8095E7CC9FF7" xlink:type="locator" />
    <link:definitionArc order="2" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srt_ProductsAndServicesDomain_BD41715CC781B9C21BBB8095E7CB3030" xlink:to="loc_cgnx_ApplicationofCustomerSpecificSolutionsMember_B8CADF21BE7166734B7E8095E7CC9FF7" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax" xlink:label="loc_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax_144FE17F7CD85C6C17708095E7CC93BC" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_DisaggregationOfRevenueLineItems_079986992CEB7DED66128095E7CC7D7D" xlink:to="loc_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax_144FE17F7CD85C6C17708095E7CC93BC" xlink:type="arc" />
  </link:definitionLink>
  <link:definitionLink xlink:role="http://cognex.com/role/RevenueRecognitionNarrativesDetails" xlink:type="extended" />
  <link:definitionLink xlink:role="http://cognex.com/role/RevenueRecognitionStatementOfOperationsImpactDetails" xlink:type="extended">
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_RevenueInitialApplicationPeriodCumulativeEffectTransitionLineItems" xlink:label="loc_us-gaap_RevenueInitialApplicationPeriodCumulativeEffectTransitionLineItems_FA874236EBB67B0A498830EED0F6EB30" xlink:type="locator" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_RevenueInitialApplicationPeriodCumulativeEffectTransitionTable" xlink:label="loc_us-gaap_RevenueInitialApplicationPeriodCumulativeEffectTransitionTable_55CFF700393DA30590A630EED0F4B4BE" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_RevenueInitialApplicationPeriodCumulativeEffectTransitionLineItems_FA874236EBB67B0A498830EED0F6EB30" xlink:to="loc_us-gaap_RevenueInitialApplicationPeriodCumulativeEffectTransitionTable_55CFF700393DA30590A630EED0F4B4BE" xlink:type="arc" xbrldt:closed="true" xbrldt:contextElement="segment" />
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2018/elts/srt-2018-01-31.xsd#srt_RestatementAxis" xlink:label="loc_srt_RestatementAxis_28590BC860DC1CE8EABF30EED0F43FCE" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_RevenueInitialApplicationPeriodCumulativeEffectTransitionTable_55CFF700393DA30590A630EED0F4B4BE" xlink:to="loc_srt_RestatementAxis_28590BC860DC1CE8EABF30EED0F43FCE" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2018/elts/srt-2018-01-31.xsd#srt_RestatementDomain" xlink:label="loc_srt_RestatementDomain_ED16010EB5272092538D30EED0F55EB8_default" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_srt_RestatementAxis_28590BC860DC1CE8EABF30EED0F43FCE" xlink:to="loc_srt_RestatementDomain_ED16010EB5272092538D30EED0F55EB8_default" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2018/elts/srt-2018-01-31.xsd#srt_RestatementDomain" xlink:label="loc_srt_RestatementDomain_ED16010EB5272092538D30EED0F55EB8" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_srt_RestatementAxis_28590BC860DC1CE8EABF30EED0F43FCE" xlink:to="loc_srt_RestatementDomain_ED16010EB5272092538D30EED0F55EB8" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2018/elts/srt-2018-01-31.xsd#srt_ScenarioPreviouslyReportedMember" xlink:label="loc_srt_ScenarioPreviouslyReportedMember_5389702A27F963272C0E30EED0F53822" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srt_RestatementDomain_ED16010EB5272092538D30EED0F55EB8" xlink:to="loc_srt_ScenarioPreviouslyReportedMember_5389702A27F963272C0E30EED0F53822" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2018/elts/srt-2018-01-31.xsd#srt_RestatementAdjustmentMember" xlink:label="loc_srt_RestatementAdjustmentMember_9F17C98A9C19A205A19930EED0F5817E" xlink:type="locator" />
    <link:definitionArc order="2" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srt_RestatementDomain_ED16010EB5272092538D30EED0F55EB8" xlink:to="loc_srt_RestatementAdjustmentMember_9F17C98A9C19A205A19930EED0F5817E" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_AdjustmentsForNewAccountingPronouncementsAxis" xlink:label="loc_us-gaap_AdjustmentsForNewAccountingPronouncementsAxis_7E4D3DE609F3FD7C4EC830EED0F56C50" xlink:type="locator" />
    <link:definitionArc order="2" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_RevenueInitialApplicationPeriodCumulativeEffectTransitionTable_55CFF700393DA30590A630EED0F4B4BE" xlink:to="loc_us-gaap_AdjustmentsForNewAccountingPronouncementsAxis_7E4D3DE609F3FD7C4EC830EED0F56C50" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_TypeOfAdoptionMember" xlink:label="loc_us-gaap_TypeOfAdoptionMember_A5F6BB71974DD35A564730EED0F53A2E_default" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_AdjustmentsForNewAccountingPronouncementsAxis_7E4D3DE609F3FD7C4EC830EED0F56C50" xlink:to="loc_us-gaap_TypeOfAdoptionMember_A5F6BB71974DD35A564730EED0F53A2E_default" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_TypeOfAdoptionMember" xlink:label="loc_us-gaap_TypeOfAdoptionMember_A5F6BB71974DD35A564730EED0F53A2E" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_AdjustmentsForNewAccountingPronouncementsAxis_7E4D3DE609F3FD7C4EC830EED0F56C50" xlink:to="loc_us-gaap_TypeOfAdoptionMember_A5F6BB71974DD35A564730EED0F53A2E" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax" xlink:label="loc_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax_0535C0E446F15F97F9FE30EED0F65C62" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_RevenueInitialApplicationPeriodCumulativeEffectTransitionLineItems_FA874236EBB67B0A498830EED0F6EB30" xlink:to="loc_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax_0535C0E446F15F97F9FE30EED0F65C62" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_CostOfGoodsAndServicesSold" xlink:label="loc_us-gaap_CostOfGoodsAndServicesSold_9931058BB19FFC61CAF530EED0F7B936" xlink:type="locator" />
    <link:definitionArc order="2" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_RevenueInitialApplicationPeriodCumulativeEffectTransitionLineItems_FA874236EBB67B0A498830EED0F6EB30" xlink:to="loc_us-gaap_CostOfGoodsAndServicesSold_9931058BB19FFC61CAF530EED0F7B936" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_GrossProfit" xlink:label="loc_us-gaap_GrossProfit_E092F6E5DD51FD85CB9830EED0F7391A" xlink:type="locator" />
    <link:definitionArc order="3" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_RevenueInitialApplicationPeriodCumulativeEffectTransitionLineItems_FA874236EBB67B0A498830EED0F6EB30" xlink:to="loc_us-gaap_GrossProfit_E092F6E5DD51FD85CB9830EED0F7391A" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_OperatingIncomeLoss" xlink:label="loc_us-gaap_OperatingIncomeLoss_16EE3D9564C8B4FC995B30EED0F7984C" xlink:type="locator" />
    <link:definitionArc order="4" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_RevenueInitialApplicationPeriodCumulativeEffectTransitionLineItems_FA874236EBB67B0A498830EED0F6EB30" xlink:to="loc_us-gaap_OperatingIncomeLoss_16EE3D9564C8B4FC995B30EED0F7984C" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments" xlink:label="loc_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments_D48DB1F363648358F1F230EED0F70F24" xlink:type="locator" />
    <link:definitionArc order="5" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_RevenueInitialApplicationPeriodCumulativeEffectTransitionLineItems_FA874236EBB67B0A498830EED0F6EB30" xlink:to="loc_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments_D48DB1F363648358F1F230EED0F70F24" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_IncomeTaxExpenseBenefit" xlink:label="loc_us-gaap_IncomeTaxExpenseBenefit_FE93CD6D4B33F77A50BC30EED0F75459" xlink:type="locator" />
    <link:definitionArc order="6" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_RevenueInitialApplicationPeriodCumulativeEffectTransitionLineItems_FA874236EBB67B0A498830EED0F6EB30" xlink:to="loc_us-gaap_IncomeTaxExpenseBenefit_FE93CD6D4B33F77A50BC30EED0F75459" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_NetIncomeLoss" xlink:label="loc_us-gaap_NetIncomeLoss_166927454C28F4B156D030EED0F7660A" xlink:type="locator" />
    <link:definitionArc order="7" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_RevenueInitialApplicationPeriodCumulativeEffectTransitionLineItems_FA874236EBB67B0A498830EED0F6EB30" xlink:to="loc_us-gaap_NetIncomeLoss_166927454C28F4B156D030EED0F7660A" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_EarningsPerShareBasicAndDilutedAbstract" xlink:label="loc_us-gaap_EarningsPerShareBasicAndDilutedAbstract_B6CA1F099A9D685A679D30EED0F825F0" xlink:type="locator" />
    <link:definitionArc order="8" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_RevenueInitialApplicationPeriodCumulativeEffectTransitionLineItems_FA874236EBB67B0A498830EED0F6EB30" xlink:to="loc_us-gaap_EarningsPerShareBasicAndDilutedAbstract_B6CA1F099A9D685A679D30EED0F825F0" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_EarningsPerShareBasic" xlink:label="loc_us-gaap_EarningsPerShareBasic_34AB119A07F1BB03E3CE30EED0F8A046" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_EarningsPerShareBasicAndDilutedAbstract_B6CA1F099A9D685A679D30EED0F825F0" xlink:to="loc_us-gaap_EarningsPerShareBasic_34AB119A07F1BB03E3CE30EED0F8A046" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_EarningsPerShareDiluted" xlink:label="loc_us-gaap_EarningsPerShareDiluted_BBFE7CA904CA54456B1530EED0F86F53" xlink:type="locator" />
    <link:definitionArc order="2" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_EarningsPerShareBasicAndDilutedAbstract_B6CA1F099A9D685A679D30EED0F825F0" xlink:to="loc_us-gaap_EarningsPerShareDiluted_BBFE7CA904CA54456B1530EED0F86F53" xlink:type="arc" />
  </link:definitionLink>
  <link:definitionLink xlink:role="http://cognex.com/role/RevenueRecognitionTables" xlink:type="extended" />
  <link:definitionLink xlink:role="http://cognex.com/role/ScheduleIiValuationAndQualifyingAccounts" xlink:type="extended" />
  <link:definitionLink xlink:role="http://cognex.com/role/ScheduleIiValuationAndQualifyingAccountsDetail" xlink:type="extended">
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2018/elts/srt-2018-01-31.xsd#srt_ValuationAndQualifyingAccountsDisclosureLineItems" xlink:label="loc_srt_ValuationAndQualifyingAccountsDisclosureLineItems_5BD289F8AA002493A34E8095E8772809" xlink:type="locator" />
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2018/elts/srt-2018-01-31.xsd#srt_ValuationAndQualifyingAccountsDisclosureTable" xlink:label="loc_srt_ValuationAndQualifyingAccountsDisclosureTable_361AA9D85C10F31FD68F8095E877198B" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_srt_ValuationAndQualifyingAccountsDisclosureLineItems_5BD289F8AA002493A34E8095E8772809" xlink:to="loc_srt_ValuationAndQualifyingAccountsDisclosureTable_361AA9D85C10F31FD68F8095E877198B" xlink:type="arc" xbrldt:closed="true" xbrldt:contextElement="segment" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ValuationAllowancesAndReservesTypeAxis" xlink:label="loc_us-gaap_ValuationAllowancesAndReservesTypeAxis_5CF0CA9E4F5AEB738C678095E877F450" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_srt_ValuationAndQualifyingAccountsDisclosureTable_361AA9D85C10F31FD68F8095E877198B" xlink:to="loc_us-gaap_ValuationAllowancesAndReservesTypeAxis_5CF0CA9E4F5AEB738C678095E877F450" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ValuationAllowancesAndReservesDomain" xlink:label="loc_us-gaap_ValuationAllowancesAndReservesDomain_B36AC245A1D79E9C7F9B8095E87749BC_default" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_ValuationAllowancesAndReservesTypeAxis_5CF0CA9E4F5AEB738C678095E877F450" xlink:to="loc_us-gaap_ValuationAllowancesAndReservesDomain_B36AC245A1D79E9C7F9B8095E87749BC_default" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ValuationAllowancesAndReservesDomain" xlink:label="loc_us-gaap_ValuationAllowancesAndReservesDomain_B36AC245A1D79E9C7F9B8095E87749BC" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_ValuationAllowancesAndReservesTypeAxis_5CF0CA9E4F5AEB738C678095E877F450" xlink:to="loc_us-gaap_ValuationAllowancesAndReservesDomain_B36AC245A1D79E9C7F9B8095E87749BC" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_UncollectibleReceivablesMember" xlink:label="loc_us-gaap_UncollectibleReceivablesMember_C89948BE08C1DBCA46C68095E877C11C" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ValuationAllowancesAndReservesDomain_B36AC245A1D79E9C7F9B8095E87749BC" xlink:to="loc_us-gaap_UncollectibleReceivablesMember_C89948BE08C1DBCA46C68095E877C11C" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ValuationAllowanceOfDeferredTaxAssetsMember" xlink:label="loc_us-gaap_ValuationAllowanceOfDeferredTaxAssetsMember_49DD1419C84FA2538DD68095E877B31C" xlink:type="locator" />
    <link:definitionArc order="2" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ValuationAllowancesAndReservesDomain_B36AC245A1D79E9C7F9B8095E87749BC" xlink:to="loc_us-gaap_ValuationAllowanceOfDeferredTaxAssetsMember_49DD1419C84FA2538DD68095E877B31C" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_MovementInValuationAllowancesAndReservesRollForward" xlink:label="loc_us-gaap_MovementInValuationAllowancesAndReservesRollForward_6306F1F8EB240F06FF738095E877AED5" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srt_ValuationAndQualifyingAccountsDisclosureLineItems_5BD289F8AA002493A34E8095E8772809" xlink:to="loc_us-gaap_MovementInValuationAllowancesAndReservesRollForward_6306F1F8EB240F06FF738095E877AED5" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ValuationAllowancesAndReservesBalance" xlink:label="loc_us-gaap_ValuationAllowancesAndReservesBalance_EDB1AE52CFC38C5419008095E877C35B" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_MovementInValuationAllowancesAndReservesRollForward_6306F1F8EB240F06FF738095E877AED5" xlink:to="loc_us-gaap_ValuationAllowancesAndReservesBalance_EDB1AE52CFC38C5419008095E877C35B" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ValuationAllowancesAndReservesChargedToCostAndExpense" xlink:label="loc_us-gaap_ValuationAllowancesAndReservesChargedToCostAndExpense_93003A7F45CA2A7C39DF8095E8782847" xlink:type="locator" />
    <link:definitionArc order="2" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_MovementInValuationAllowancesAndReservesRollForward_6306F1F8EB240F06FF738095E877AED5" xlink:to="loc_us-gaap_ValuationAllowancesAndReservesChargedToCostAndExpense_93003A7F45CA2A7C39DF8095E8782847" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ValuationAllowancesAndReservesDeductions" xlink:label="loc_us-gaap_ValuationAllowancesAndReservesDeductions_A206F212D31BC0FF669D8095E87852F7" xlink:type="locator" />
    <link:definitionArc order="3" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_MovementInValuationAllowancesAndReservesRollForward_6306F1F8EB240F06FF738095E877AED5" xlink:to="loc_us-gaap_ValuationAllowancesAndReservesDeductions_A206F212D31BC0FF669D8095E87852F7" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ValuationAllowancesAndReservesAdjustments" xlink:label="loc_us-gaap_ValuationAllowancesAndReservesAdjustments_524952FCAEA24F1CC5058095E8786F7C" xlink:type="locator" />
    <link:definitionArc order="4" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_MovementInValuationAllowancesAndReservesRollForward_6306F1F8EB240F06FF738095E877AED5" xlink:to="loc_us-gaap_ValuationAllowancesAndReservesAdjustments_524952FCAEA24F1CC5058095E8786F7C" xlink:type="arc" />
  </link:definitionLink>
  <link:definitionLink xlink:role="http://cognex.com/role/SegmentAndGeographicInformation" xlink:type="extended" />
  <link:definitionLink xlink:role="http://cognex.com/role/SegmentAndGeographicInformationAdditionalInformationDetail" xlink:type="extended">
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ConcentrationRiskLineItems" xlink:label="loc_us-gaap_ConcentrationRiskLineItems_E9F9E58F5F5966216CF316BAB5A86E47" xlink:type="locator" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ConcentrationRiskTable" xlink:label="loc_us-gaap_ConcentrationRiskTable_60BD8EB7AE33DF2EBFE516BAB5A585B6" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_ConcentrationRiskLineItems_E9F9E58F5F5966216CF316BAB5A86E47" xlink:to="loc_us-gaap_ConcentrationRiskTable_60BD8EB7AE33DF2EBFE516BAB5A585B6" xlink:type="arc" xbrldt:closed="true" xbrldt:contextElement="segment" />
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2018/elts/srt-2018-01-31.xsd#srt_StatementGeographicalAxis" xlink:label="loc_srt_StatementGeographicalAxis_9D80C554394DA16070BA16BAB5A622D4" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ConcentrationRiskTable_60BD8EB7AE33DF2EBFE516BAB5A585B6" xlink:to="loc_srt_StatementGeographicalAxis_9D80C554394DA16070BA16BAB5A622D4" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2018/elts/srt-2018-01-31.xsd#srt_SegmentGeographicalDomain" xlink:label="loc_srt_SegmentGeographicalDomain_F45EA61D43E961CD4E2A16BAB5A65C2A_default" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_srt_StatementGeographicalAxis_9D80C554394DA16070BA16BAB5A622D4" xlink:to="loc_srt_SegmentGeographicalDomain_F45EA61D43E961CD4E2A16BAB5A65C2A_default" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2018/elts/srt-2018-01-31.xsd#srt_SegmentGeographicalDomain" xlink:label="loc_srt_SegmentGeographicalDomain_F45EA61D43E961CD4E2A16BAB5A65C2A" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_srt_StatementGeographicalAxis_9D80C554394DA16070BA16BAB5A622D4" xlink:to="loc_srt_SegmentGeographicalDomain_F45EA61D43E961CD4E2A16BAB5A65C2A" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2018/elts/srt-2018-01-31.xsd#srt_EuropeMember" xlink:label="loc_srt_EuropeMember_39A1805647AF8462A99E16BAB5A66A64" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srt_SegmentGeographicalDomain_F45EA61D43E961CD4E2A16BAB5A65C2A" xlink:to="loc_srt_EuropeMember_39A1805647AF8462A99E16BAB5A66A64" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ConcentrationRiskByBenchmarkAxis" xlink:label="loc_us-gaap_ConcentrationRiskByBenchmarkAxis_E61BCD0D253E2435CBA716BAB5A6A7C0" xlink:type="locator" />
    <link:definitionArc order="2" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ConcentrationRiskTable_60BD8EB7AE33DF2EBFE516BAB5A585B6" xlink:to="loc_us-gaap_ConcentrationRiskByBenchmarkAxis_E61BCD0D253E2435CBA716BAB5A6A7C0" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ConcentrationRiskBenchmarkDomain" xlink:label="loc_us-gaap_ConcentrationRiskBenchmarkDomain_C85C37759CC117BD512E16BAB5A7CF69_default" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_ConcentrationRiskByBenchmarkAxis_E61BCD0D253E2435CBA716BAB5A6A7C0" xlink:to="loc_us-gaap_ConcentrationRiskBenchmarkDomain_C85C37759CC117BD512E16BAB5A7CF69_default" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ConcentrationRiskBenchmarkDomain" xlink:label="loc_us-gaap_ConcentrationRiskBenchmarkDomain_C85C37759CC117BD512E16BAB5A7CF69" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_ConcentrationRiskByBenchmarkAxis_E61BCD0D253E2435CBA716BAB5A6A7C0" xlink:to="loc_us-gaap_ConcentrationRiskBenchmarkDomain_C85C37759CC117BD512E16BAB5A7CF69" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_SalesRevenueNetMember" xlink:label="loc_us-gaap_SalesRevenueNetMember_FEDE6DA3DCC2B481DE5F16BAB5A76CEB" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ConcentrationRiskBenchmarkDomain_C85C37759CC117BD512E16BAB5A7CF69" xlink:to="loc_us-gaap_SalesRevenueNetMember_FEDE6DA3DCC2B481DE5F16BAB5A76CEB" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_AccountsReceivableMember" xlink:label="loc_us-gaap_AccountsReceivableMember_CE46140654FD9F82035516BAB5A72853" xlink:type="locator" />
    <link:definitionArc order="2" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ConcentrationRiskBenchmarkDomain_C85C37759CC117BD512E16BAB5A7CF69" xlink:to="loc_us-gaap_AccountsReceivableMember_CE46140654FD9F82035516BAB5A72853" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ConcentrationRiskByTypeAxis" xlink:label="loc_us-gaap_ConcentrationRiskByTypeAxis_2B12D94251E18B20C77A16BAB5A72877" xlink:type="locator" />
    <link:definitionArc order="3" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ConcentrationRiskTable_60BD8EB7AE33DF2EBFE516BAB5A585B6" xlink:to="loc_us-gaap_ConcentrationRiskByTypeAxis_2B12D94251E18B20C77A16BAB5A72877" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ConcentrationRiskTypeDomain" xlink:label="loc_us-gaap_ConcentrationRiskTypeDomain_73187D81A65D53D37B1416BAB5A76D72_default" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_ConcentrationRiskByTypeAxis_2B12D94251E18B20C77A16BAB5A72877" xlink:to="loc_us-gaap_ConcentrationRiskTypeDomain_73187D81A65D53D37B1416BAB5A76D72_default" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ConcentrationRiskTypeDomain" xlink:label="loc_us-gaap_ConcentrationRiskTypeDomain_73187D81A65D53D37B1416BAB5A76D72" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_ConcentrationRiskByTypeAxis_2B12D94251E18B20C77A16BAB5A72877" xlink:to="loc_us-gaap_ConcentrationRiskTypeDomain_73187D81A65D53D37B1416BAB5A76D72" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_CustomerConcentrationRiskMember" xlink:label="loc_us-gaap_CustomerConcentrationRiskMember_F04A7F750F849F5E5F8616BAB5A8D719" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ConcentrationRiskTypeDomain_73187D81A65D53D37B1416BAB5A76D72" xlink:to="loc_us-gaap_CustomerConcentrationRiskMember_F04A7F750F849F5E5F8616BAB5A8D719" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_NumberOfReportableSegments" xlink:label="loc_us-gaap_NumberOfReportableSegments_C70FB53792F90EA40F0016BAB5A8663F" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ConcentrationRiskLineItems_E9F9E58F5F5966216CF316BAB5A86E47" xlink:to="loc_us-gaap_NumberOfReportableSegments_C70FB53792F90EA40F0016BAB5A8663F" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ConcentrationRiskPercentage1" xlink:label="loc_us-gaap_ConcentrationRiskPercentage1_207CC0CCA235AD3C8C8416BAB5A9902F" xlink:type="locator" />
    <link:definitionArc order="2" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ConcentrationRiskLineItems_E9F9E58F5F5966216CF316BAB5A86E47" xlink:to="loc_us-gaap_ConcentrationRiskPercentage1_207CC0CCA235AD3C8C8416BAB5A9902F" xlink:type="arc" />
  </link:definitionLink>
  <link:definitionLink xlink:role="http://cognex.com/role/SegmentAndGeographicInformationScheduleOfRevenueFromExternalCustomersAndLongLivedAssetsByGeographicalAreasDetail" xlink:type="extended">
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_RevenuesFromExternalCustomersAndLongLivedAssetsLineItems" xlink:label="loc_us-gaap_RevenuesFromExternalCustomersAndLongLivedAssetsLineItems_F97AED55B3C4B0BF9DF18095E74D792B" xlink:type="locator" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsTable" xlink:label="loc_us-gaap_ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsTable_B364DCB34451C3B174A88095E74C80AB" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_RevenuesFromExternalCustomersAndLongLivedAssetsLineItems_F97AED55B3C4B0BF9DF18095E74D792B" xlink:to="loc_us-gaap_ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsTable_B364DCB34451C3B174A88095E74C80AB" xlink:type="arc" xbrldt:closed="true" xbrldt:contextElement="segment" />
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2018/elts/srt-2018-01-31.xsd#srt_StatementGeographicalAxis" xlink:label="loc_srt_StatementGeographicalAxis_C83B103247BA8B357E428095E74CAA71" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsTable_B364DCB34451C3B174A88095E74C80AB" xlink:to="loc_srt_StatementGeographicalAxis_C83B103247BA8B357E428095E74CAA71" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2018/elts/srt-2018-01-31.xsd#srt_SegmentGeographicalDomain" xlink:label="loc_srt_SegmentGeographicalDomain_D39BF05069B2B1855EA28095E74C279E_default" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_srt_StatementGeographicalAxis_C83B103247BA8B357E428095E74CAA71" xlink:to="loc_srt_SegmentGeographicalDomain_D39BF05069B2B1855EA28095E74C279E_default" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2018/elts/srt-2018-01-31.xsd#srt_SegmentGeographicalDomain" xlink:label="loc_srt_SegmentGeographicalDomain_D39BF05069B2B1855EA28095E74C279E" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_srt_StatementGeographicalAxis_C83B103247BA8B357E428095E74CAA71" xlink:to="loc_srt_SegmentGeographicalDomain_D39BF05069B2B1855EA28095E74C279E" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.sec.gov/country/2017/country-2017-01-31.xsd#country_US" xlink:label="loc_country_US_314E2FE1760152F960F88095E74C9981" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srt_SegmentGeographicalDomain_D39BF05069B2B1855EA28095E74C279E" xlink:to="loc_country_US_314E2FE1760152F960F88095E74C9981" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2018/elts/srt-2018-01-31.xsd#srt_EuropeMember" xlink:label="loc_srt_EuropeMember_692AD9B57C373842C6488095E74C875F" xlink:type="locator" />
    <link:definitionArc order="2" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srt_SegmentGeographicalDomain_D39BF05069B2B1855EA28095E74C279E" xlink:to="loc_srt_EuropeMember_692AD9B57C373842C6488095E74C875F" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_GreaterChinaMember" xlink:label="loc_cgnx_GreaterChinaMember_ED497E6A5DBD8159EA1A8095E74D6AEE" xlink:type="locator" />
    <link:definitionArc order="3" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srt_SegmentGeographicalDomain_D39BF05069B2B1855EA28095E74C279E" xlink:to="loc_cgnx_GreaterChinaMember_ED497E6A5DBD8159EA1A8095E74D6AEE" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_OtherGeographicAreaMember" xlink:label="loc_cgnx_OtherGeographicAreaMember_52CA8A980196ED6B7A068095E74D90A1" xlink:type="locator" />
    <link:definitionArc order="4" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srt_SegmentGeographicalDomain_D39BF05069B2B1855EA28095E74C279E" xlink:to="loc_cgnx_OtherGeographicAreaMember_52CA8A980196ED6B7A068095E74D90A1" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax" xlink:label="loc_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax_09295F363311928C88BF8095E74D00D6" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_RevenuesFromExternalCustomersAndLongLivedAssetsLineItems_F97AED55B3C4B0BF9DF18095E74D792B" xlink:to="loc_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax_09295F363311928C88BF8095E74D00D6" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_NoncurrentAssets" xlink:label="loc_us-gaap_NoncurrentAssets_AA7ABAEDEE353AB02C4D8095E74DD51C" xlink:type="locator" />
    <link:definitionArc order="2" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_RevenuesFromExternalCustomersAndLongLivedAssetsLineItems_F97AED55B3C4B0BF9DF18095E74D792B" xlink:to="loc_us-gaap_NoncurrentAssets_AA7ABAEDEE353AB02C4D8095E74DD51C" xlink:type="arc" />
  </link:definitionLink>
  <link:definitionLink xlink:role="http://cognex.com/role/SegmentAndGeographicInformationTables" xlink:type="extended" />
  <link:definitionLink xlink:role="http://cognex.com/role/SelectedQuarterlyFinancialDataUnaudited" xlink:type="extended" />
  <link:definitionLink xlink:role="http://cognex.com/role/SelectedQuarterlyFinancialDataUnauditedDetails" xlink:type="extended" />
  <link:definitionLink xlink:role="http://cognex.com/role/SelectedQuarterlyFinancialDataUnauditedTables" xlink:type="extended" />
  <link:definitionLink xlink:role="http://cognex.com/role/ShareholdersEquity" xlink:type="extended" />
  <link:definitionLink xlink:role="http://cognex.com/role/ShareholdersEquityAdditionalInformationDetail" xlink:type="extended">
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ClassOfStockLineItems" xlink:label="loc_us-gaap_ClassOfStockLineItems_788E0A9542B769DA6D281683E0D76525" xlink:type="locator" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ScheduleOfStockByClassTable" xlink:label="loc_us-gaap_ScheduleOfStockByClassTable_8485FE5FECA11D7C75591683E0D5BB9D" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_ClassOfStockLineItems_788E0A9542B769DA6D281683E0D76525" xlink:to="loc_us-gaap_ScheduleOfStockByClassTable_8485FE5FECA11D7C75591683E0D5BB9D" xlink:type="arc" xbrldt:closed="true" xbrldt:contextElement="segment" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_StatementClassOfStockAxis" xlink:label="loc_us-gaap_StatementClassOfStockAxis_04BBF4AD407759E3C1561683E0D501E3" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ScheduleOfStockByClassTable_8485FE5FECA11D7C75591683E0D5BB9D" xlink:to="loc_us-gaap_StatementClassOfStockAxis_04BBF4AD407759E3C1561683E0D501E3" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ClassOfStockDomain" xlink:label="loc_us-gaap_ClassOfStockDomain_EFED2F5A258FCFBFA4A81683E0D5E2D8_default" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_StatementClassOfStockAxis_04BBF4AD407759E3C1561683E0D501E3" xlink:to="loc_us-gaap_ClassOfStockDomain_EFED2F5A258FCFBFA4A81683E0D5E2D8_default" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ClassOfStockDomain" xlink:label="loc_us-gaap_ClassOfStockDomain_EFED2F5A258FCFBFA4A81683E0D5E2D8" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_StatementClassOfStockAxis_04BBF4AD407759E3C1561683E0D501E3" xlink:to="loc_us-gaap_ClassOfStockDomain_EFED2F5A258FCFBFA4A81683E0D5E2D8" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_CommonStockMember" xlink:label="loc_us-gaap_CommonStockMember_E2A5F7C6B328838F23E31683E0D6115C" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ClassOfStockDomain_EFED2F5A258FCFBFA4A81683E0D5E2D8" xlink:to="loc_us-gaap_CommonStockMember_E2A5F7C6B328838F23E31683E0D6115C" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ShareRepurchaseProgramAxis" xlink:label="loc_us-gaap_ShareRepurchaseProgramAxis_0E9C9791F275078E7FDE1683E0D64932" xlink:type="locator" />
    <link:definitionArc order="2" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ScheduleOfStockByClassTable_8485FE5FECA11D7C75591683E0D5BB9D" xlink:to="loc_us-gaap_ShareRepurchaseProgramAxis_0E9C9791F275078E7FDE1683E0D64932" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ShareRepurchaseProgramDomain" xlink:label="loc_us-gaap_ShareRepurchaseProgramDomain_95B8DFC1E6749D16894E1683E0D67159_default" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_ShareRepurchaseProgramAxis_0E9C9791F275078E7FDE1683E0D64932" xlink:to="loc_us-gaap_ShareRepurchaseProgramDomain_95B8DFC1E6749D16894E1683E0D67159_default" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ShareRepurchaseProgramDomain" xlink:label="loc_us-gaap_ShareRepurchaseProgramDomain_95B8DFC1E6749D16894E1683E0D67159" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_ShareRepurchaseProgramAxis_0E9C9791F275078E7FDE1683E0D64932" xlink:to="loc_us-gaap_ShareRepurchaseProgramDomain_95B8DFC1E6749D16894E1683E0D67159" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_RepurchaseProgram2014Member" xlink:label="loc_cgnx_RepurchaseProgram2014Member_64E3999B3D0253961F151683E0D6C7C5" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareRepurchaseProgramDomain_95B8DFC1E6749D16894E1683E0D67159" xlink:to="loc_cgnx_RepurchaseProgram2014Member_64E3999B3D0253961F151683E0D6C7C5" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_RepurchaseProgramTwentyFifteenMember" xlink:label="loc_cgnx_RepurchaseProgramTwentyFifteenMember_3D43861C315B21DDECA01683E0D7FB4A" xlink:type="locator" />
    <link:definitionArc order="2" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareRepurchaseProgramDomain_95B8DFC1E6749D16894E1683E0D67159" xlink:to="loc_cgnx_RepurchaseProgramTwentyFifteenMember_3D43861C315B21DDECA01683E0D7FB4A" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_RepurchaseProgramNovember2015Member" xlink:label="loc_cgnx_RepurchaseProgramNovember2015Member_4F75117F1FBE5F1CCA341683E0D7AF78" xlink:type="locator" />
    <link:definitionArc order="3" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareRepurchaseProgramDomain_95B8DFC1E6749D16894E1683E0D67159" xlink:to="loc_cgnx_RepurchaseProgramNovember2015Member_4F75117F1FBE5F1CCA341683E0D7AF78" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_RepurchaseProgramOctober2018Member" xlink:label="loc_cgnx_RepurchaseProgramOctober2018Member_67D7C908F671C56479E0168415AE02CC" xlink:type="locator" />
    <link:definitionArc order="4" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareRepurchaseProgramDomain_95B8DFC1E6749D16894E1683E0D67159" xlink:to="loc_cgnx_RepurchaseProgramOctober2018Member_67D7C908F671C56479E0168415AE02CC" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_PreferredStockSharesAuthorized" xlink:label="loc_us-gaap_PreferredStockSharesAuthorized_B3590CBB5431D51492CE1683E0D7A384" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ClassOfStockLineItems_788E0A9542B769DA6D281683E0D76525" xlink:to="loc_us-gaap_PreferredStockSharesAuthorized_B3590CBB5431D51492CE1683E0D7A384" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_PreferredStockParOrStatedValuePerShare" xlink:label="loc_us-gaap_PreferredStockParOrStatedValuePerShare_7872FC36068920C3ED8E1683E0D7C79D" xlink:type="locator" />
    <link:definitionArc order="2" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ClassOfStockLineItems_788E0A9542B769DA6D281683E0D76525" xlink:to="loc_us-gaap_PreferredStockParOrStatedValuePerShare_7872FC36068920C3ED8E1683E0D7C79D" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_CommonStockSharesAuthorized" xlink:label="loc_us-gaap_CommonStockSharesAuthorized_B4400136546249C92A7B1683E0D86E92" xlink:type="locator" />
    <link:definitionArc order="3" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ClassOfStockLineItems_788E0A9542B769DA6D281683E0D76525" xlink:to="loc_us-gaap_CommonStockSharesAuthorized_B4400136546249C92A7B1683E0D86E92" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_StockholdersEquityNoteStockSplitConversionRatio1" xlink:label="loc_us-gaap_StockholdersEquityNoteStockSplitConversionRatio1_4E4C66ACC80CEF4776891683E0D8D726" xlink:type="locator" />
    <link:definitionArc order="4" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ClassOfStockLineItems_788E0A9542B769DA6D281683E0D76525" xlink:to="loc_us-gaap_StockholdersEquityNoteStockSplitConversionRatio1_4E4C66ACC80CEF4776891683E0D8D726" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_CommonStockParOrStatedValuePerShare" xlink:label="loc_us-gaap_CommonStockParOrStatedValuePerShare_D5D7D6B0B7E5A4D8E60F1683E0D8F37E" xlink:type="locator" />
    <link:definitionArc order="5" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ClassOfStockLineItems_788E0A9542B769DA6D281683E0D76525" xlink:to="loc_us-gaap_CommonStockParOrStatedValuePerShare_D5D7D6B0B7E5A4D8E60F1683E0D8F37E" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_VoteEntitledForEachCommonShareOutstanding" xlink:label="loc_cgnx_VoteEntitledForEachCommonShareOutstanding_C05521A443E09D70B87A1683E0D8CFEF" xlink:type="locator" />
    <link:definitionArc order="6" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ClassOfStockLineItems_788E0A9542B769DA6D281683E0D76525" xlink:to="loc_cgnx_VoteEntitledForEachCommonShareOutstanding_C05521A443E09D70B87A1683E0D8CFEF" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_StockRepurchaseProgramAuthorizedAmount1" xlink:label="loc_us-gaap_StockRepurchaseProgramAuthorizedAmount1_9A1849A2548D204794B61683E0D86650" xlink:type="locator" />
    <link:definitionArc order="7" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ClassOfStockLineItems_788E0A9542B769DA6D281683E0D76525" xlink:to="loc_us-gaap_StockRepurchaseProgramAuthorizedAmount1_9A1849A2548D204794B61683E0D86650" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_Totalsharesrepurchased" xlink:label="loc_cgnx_Totalsharesrepurchased_C6655A9476211707C9141683E0D8B2E0" xlink:type="locator" />
    <link:definitionArc order="8" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ClassOfStockLineItems_788E0A9542B769DA6D281683E0D76525" xlink:to="loc_cgnx_Totalsharesrepurchased_C6655A9476211707C9141683E0D8B2E0" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_Repurchasedsharestotalcost" xlink:label="loc_cgnx_Repurchasedsharestotalcost_B1EAB83F78C10D24550C1683E0D97BA2" xlink:type="locator" />
    <link:definitionArc order="9" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ClassOfStockLineItems_788E0A9542B769DA6D281683E0D76525" xlink:to="loc_cgnx_Repurchasedsharestotalcost_B1EAB83F78C10D24550C1683E0D97BA2" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_StockRepurchasedDuringPeriodShares" xlink:label="loc_us-gaap_StockRepurchasedDuringPeriodShares_2C3ADB313D1C4940D5C41683E0D966AE" xlink:type="locator" />
    <link:definitionArc order="10" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ClassOfStockLineItems_788E0A9542B769DA6D281683E0D76525" xlink:to="loc_us-gaap_StockRepurchasedDuringPeriodShares_2C3ADB313D1C4940D5C41683E0D966AE" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_StockRepurchasedDuringPeriodValue" xlink:label="loc_us-gaap_StockRepurchasedDuringPeriodValue_E8470760FC1B63900F421683E0D948AC" xlink:type="locator" />
    <link:definitionArc order="11" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ClassOfStockLineItems_788E0A9542B769DA6D281683E0D76525" xlink:to="loc_us-gaap_StockRepurchasedDuringPeriodValue_E8470760FC1B63900F421683E0D948AC" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_CommonStockDividendsPerShareDeclared" xlink:label="loc_us-gaap_CommonStockDividendsPerShareDeclared_6544775379AFC2FAD3531683E0D9E5A1" xlink:type="locator" />
    <link:definitionArc order="12" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ClassOfStockLineItems_788E0A9542B769DA6D281683E0D76525" xlink:to="loc_us-gaap_CommonStockDividendsPerShareDeclared_6544775379AFC2FAD3531683E0D9E5A1" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_PaymentsOfDividends" xlink:label="loc_us-gaap_PaymentsOfDividends_856B635D9E122CC222961683E0D98B5B" xlink:type="locator" />
    <link:definitionArc order="13" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ClassOfStockLineItems_788E0A9542B769DA6D281683E0D76525" xlink:to="loc_us-gaap_PaymentsOfDividends_856B635D9E122CC222961683E0D98B5B" xlink:type="arc" />
  </link:definitionLink>
  <link:definitionLink xlink:role="http://cognex.com/role/StockBasedCompensation" xlink:type="extended" />
  <link:definitionLink xlink:role="http://cognex.com/role/StockBasedCompensationExpenseAdditionalInformationDetail" xlink:type="extended">
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_0818D02CED54A2670FA617AC5C52CFC5" xlink:type="locator" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" xlink:label="loc_us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable_A5B975641CB20EE73F4D17AC5C4C2EB3" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_0818D02CED54A2670FA617AC5C52CFC5" xlink:to="loc_us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable_A5B975641CB20EE73F4D17AC5C4C2EB3" xlink:type="arc" xbrldt:closed="true" xbrldt:contextElement="segment" />
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2018/elts/srt-2018-01-31.xsd#srt_RangeAxis" xlink:label="loc_srt_RangeAxis_A0E33CC0BA888AC76BC617AC5C4F63E2" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable_A5B975641CB20EE73F4D17AC5C4C2EB3" xlink:to="loc_srt_RangeAxis_A0E33CC0BA888AC76BC617AC5C4F63E2" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2018/elts/srt-2018-01-31.xsd#srt_RangeMember" xlink:label="loc_srt_RangeMember_9389EC1C5298C697053517AC5C4F10D5_default" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_srt_RangeAxis_A0E33CC0BA888AC76BC617AC5C4F63E2" xlink:to="loc_srt_RangeMember_9389EC1C5298C697053517AC5C4F10D5_default" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2018/elts/srt-2018-01-31.xsd#srt_RangeMember" xlink:label="loc_srt_RangeMember_9389EC1C5298C697053517AC5C4F10D5" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_srt_RangeAxis_A0E33CC0BA888AC76BC617AC5C4F63E2" xlink:to="loc_srt_RangeMember_9389EC1C5298C697053517AC5C4F10D5" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2018/elts/srt-2018-01-31.xsd#srt_MinimumMember" xlink:label="loc_srt_MinimumMember_570014F8279EEE3C977D17AC5C4FCF43" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srt_RangeMember_9389EC1C5298C697053517AC5C4F10D5" xlink:to="loc_srt_MinimumMember_570014F8279EEE3C977D17AC5C4FCF43" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2018/elts/srt-2018-01-31.xsd#srt_MaximumMember" xlink:label="loc_srt_MaximumMember_CC6996109058AC92A08217AC5C50A359" xlink:type="locator" />
    <link:definitionArc order="2" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srt_RangeMember_9389EC1C5298C697053517AC5C4F10D5" xlink:to="loc_srt_MaximumMember_CC6996109058AC92A08217AC5C50A359" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_AwardTypeAxis" xlink:label="loc_us-gaap_AwardTypeAxis_40FD6127F313E990BCFC17AC5C50B2B7" xlink:type="locator" />
    <link:definitionArc order="2" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable_A5B975641CB20EE73F4D17AC5C4C2EB3" xlink:to="loc_us-gaap_AwardTypeAxis_40FD6127F313E990BCFC17AC5C50B2B7" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_5D2039E5C7B421F9293D17AC5C51475F_default" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_AwardTypeAxis_40FD6127F313E990BCFC17AC5C50B2B7" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_5D2039E5C7B421F9293D17AC5C51475F_default" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_5D2039E5C7B421F9293D17AC5C51475F" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_AwardTypeAxis_40FD6127F313E990BCFC17AC5C50B2B7" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_5D2039E5C7B421F9293D17AC5C51475F" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_EmployeeStockOptionMember" xlink:label="loc_us-gaap_EmployeeStockOptionMember_554D4DD9EAB5E3F0619017AC5C51ED34" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_5D2039E5C7B421F9293D17AC5C51475F" xlink:to="loc_us-gaap_EmployeeStockOptionMember_554D4DD9EAB5E3F0619017AC5C51ED34" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_PerformanceSharesMember" xlink:label="loc_us-gaap_PerformanceSharesMember_14C5BA94EB76EC2886CB17AC5C52831C" xlink:type="locator" />
    <link:definitionArc order="2" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_5D2039E5C7B421F9293D17AC5C51475F" xlink:to="loc_us-gaap_PerformanceSharesMember_14C5BA94EB76EC2886CB17AC5C52831C" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant_05CBF995855DED3D98D017AC5C52D2D9" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_0818D02CED54A2670FA617AC5C52CFC5" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant_05CBF995855DED3D98D017AC5C52D2D9" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1_3D8052326D91A1388B6C17AC5C52DA7A" xlink:type="locator" />
    <link:definitionArc order="2" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_0818D02CED54A2670FA617AC5C52CFC5" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1_3D8052326D91A1388B6C17AC5C52DA7A" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_ExpirationPeriodOfStockOptionPlan" xlink:label="loc_cgnx_ExpirationPeriodOfStockOptionPlan_6447A92B6DBF45C5037017AC5C53A373" xlink:type="locator" />
    <link:definitionArc order="3" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_0818D02CED54A2670FA617AC5C52CFC5" xlink:to="loc_cgnx_ExpirationPeriodOfStockOptionPlan_6447A92B6DBF45C5037017AC5C53A373" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_NumberOfGroupsWithinEmployeePopulation" xlink:label="loc_cgnx_NumberOfGroupsWithinEmployeePopulation_C445A9E0D14C600FA2E217AC5C5371F9" xlink:type="locator" />
    <link:definitionArc order="4" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_0818D02CED54A2670FA617AC5C52CFC5" xlink:to="loc_cgnx_NumberOfGroupsWithinEmployeePopulation_C445A9E0D14C600FA2E217AC5C5371F9" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_EstimatedForfeitureRateForUnvestedOptionsForSeniorManagement" xlink:label="loc_cgnx_EstimatedForfeitureRateForUnvestedOptionsForSeniorManagement_463F7071B42DEC2E288B17AC5C536BC5" xlink:type="locator" />
    <link:definitionArc order="5" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_0818D02CED54A2670FA617AC5C52CFC5" xlink:to="loc_cgnx_EstimatedForfeitureRateForUnvestedOptionsForSeniorManagement_463F7071B42DEC2E288B17AC5C536BC5" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_EstimatedForfeitureRateForUnvestedOptionsForAllNonSeniorManagement" xlink:label="loc_cgnx_EstimatedForfeitureRateForUnvestedOptionsForAllNonSeniorManagement_535E20E82D692617DC8217AC5C53A0C1" xlink:type="locator" />
    <link:definitionArc order="6" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_0818D02CED54A2670FA617AC5C52CFC5" xlink:to="loc_cgnx_EstimatedForfeitureRateForUnvestedOptionsForAllNonSeniorManagement_535E20E82D692617DC8217AC5C53A0C1" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_IncreaseInCompensationExpenseDueToRevisedEstimatedForfeitureRates" xlink:label="loc_cgnx_IncreaseInCompensationExpenseDueToRevisedEstimatedForfeitureRates_3A57EEFFC2A9EBFF833617AC5C53B07B" xlink:type="locator" />
    <link:definitionArc order="7" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_0818D02CED54A2670FA617AC5C52CFC5" xlink:to="loc_cgnx_IncreaseInCompensationExpenseDueToRevisedEstimatedForfeitureRates_3A57EEFFC2A9EBFF833617AC5C53B07B" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue_3428ACAFD856F06B122E17AC5C54BCF6" xlink:type="locator" />
    <link:definitionArc order="8" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_0818D02CED54A2670FA617AC5C52CFC5" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue_3428ACAFD856F06B122E17AC5C54BCF6" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_SharesBasedCompensationArrangementBySharesBasedPaymentAwardOptionsExercisableIntrinsicValue" xlink:label="loc_cgnx_SharesBasedCompensationArrangementBySharesBasedPaymentAwardOptionsExercisableIntrinsicValue_DADF042A04D38D9D563317AC5C540665" xlink:type="locator" />
    <link:definitionArc order="9" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_0818D02CED54A2670FA617AC5C52CFC5" xlink:to="loc_cgnx_SharesBasedCompensationArrangementBySharesBasedPaymentAwardOptionsExercisableIntrinsicValue_DADF042A04D38D9D563317AC5C540665" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedFairValue" xlink:label="loc_cgnx_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedFairValue_B98C6476590167FA9E5217AC5C54111D" xlink:type="locator" />
    <link:definitionArc order="10" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_0818D02CED54A2670FA617AC5C52CFC5" xlink:to="loc_cgnx_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedFairValue_B98C6476590167FA9E5217AC5C54111D" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedStockOptions" xlink:label="loc_us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedStockOptions_7FD38DEB1F15E3F768CC17AC5C54AD4B" xlink:type="locator" />
    <link:definitionArc order="11" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_0818D02CED54A2670FA617AC5C52CFC5" xlink:to="loc_us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedStockOptions_7FD38DEB1F15E3F768CC17AC5C54AD4B" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1" xlink:label="loc_us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1_F9C6856FE8027769EEAA17AC5C543A24" xlink:type="locator" />
    <link:definitionArc order="12" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_0818D02CED54A2670FA617AC5C52CFC5" xlink:to="loc_us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1_F9C6856FE8027769EEAA17AC5C543A24" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_AllocatedShareBasedCompensationExpense" xlink:label="loc_us-gaap_AllocatedShareBasedCompensationExpense_A9F744DAD089BF7788C617AC5C543AD7" xlink:type="locator" />
    <link:definitionArc order="13" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_0818D02CED54A2670FA617AC5C52CFC5" xlink:to="loc_us-gaap_AllocatedShareBasedCompensationExpense_A9F744DAD089BF7788C617AC5C543AD7" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense" xlink:label="loc_us-gaap_EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense_11573156AE4A08439B6417AC5C553218" xlink:type="locator" />
    <link:definitionArc order="14" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_0818D02CED54A2670FA617AC5C52CFC5" xlink:to="loc_us-gaap_EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense_11573156AE4A08439B6417AC5C553218" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_EmployeeServiceShareBasedCompensationRecognizedPeriodCostsCapitalizedAmount" xlink:label="loc_cgnx_EmployeeServiceShareBasedCompensationRecognizedPeriodCostsCapitalizedAmount_F34A183452FCB3007DC017AC5C55888F" xlink:type="locator" />
    <link:definitionArc order="15" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_0818D02CED54A2670FA617AC5C52CFC5" xlink:to="loc_cgnx_EmployeeServiceShareBasedCompensationRecognizedPeriodCostsCapitalizedAmount_F34A183452FCB3007DC017AC5C55888F" xlink:type="arc" />
  </link:definitionLink>
  <link:definitionLink xlink:role="http://cognex.com/role/StockBasedCompensationExpenseStockBasedCompensationExpenseDetail" xlink:type="extended">
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_EmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsLineItems" xlink:label="loc_us-gaap_EmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsLineItems_B33E79D0955697D8F1E28095E8DD0CE6" xlink:type="locator" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTable" xlink:label="loc_us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTable_FAD249FE8886729019128095E8DCA644" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_EmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsLineItems_B33E79D0955697D8F1E28095E8DD0CE6" xlink:to="loc_us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTable_FAD249FE8886729019128095E8DCA644" xlink:type="arc" xbrldt:closed="true" xbrldt:contextElement="segment" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_IncomeStatementLocationAxis" xlink:label="loc_us-gaap_IncomeStatementLocationAxis_3F0E4C860E662027221F8095E8DC2281" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTable_FAD249FE8886729019128095E8DCA644" xlink:to="loc_us-gaap_IncomeStatementLocationAxis_3F0E4C860E662027221F8095E8DC2281" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_IncomeStatementLocationDomain" xlink:label="loc_us-gaap_IncomeStatementLocationDomain_F10EB111342E4A2BCFF28095E8DC9848_default" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_IncomeStatementLocationAxis_3F0E4C860E662027221F8095E8DC2281" xlink:to="loc_us-gaap_IncomeStatementLocationDomain_F10EB111342E4A2BCFF28095E8DC9848_default" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_IncomeStatementLocationDomain" xlink:label="loc_us-gaap_IncomeStatementLocationDomain_F10EB111342E4A2BCFF28095E8DC9848" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_IncomeStatementLocationAxis_3F0E4C860E662027221F8095E8DC2281" xlink:to="loc_us-gaap_IncomeStatementLocationDomain_F10EB111342E4A2BCFF28095E8DC9848" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_ProductCostOfRevenueMember" xlink:label="loc_cgnx_ProductCostOfRevenueMember_E193B76D303CE253D2128095E8DC9C34" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_IncomeStatementLocationDomain_F10EB111342E4A2BCFF28095E8DC9848" xlink:to="loc_cgnx_ProductCostOfRevenueMember_E193B76D303CE253D2128095E8DC9C34" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ResearchAndDevelopmentExpenseMember" xlink:label="loc_us-gaap_ResearchAndDevelopmentExpenseMember_FE72FDDB1EA526F539C78095E8DCB3C7" xlink:type="locator" />
    <link:definitionArc order="2" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_IncomeStatementLocationDomain_F10EB111342E4A2BCFF28095E8DC9848" xlink:to="loc_us-gaap_ResearchAndDevelopmentExpenseMember_FE72FDDB1EA526F539C78095E8DCB3C7" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_SellingGeneralAndAdministrativeMember" xlink:label="loc_cgnx_SellingGeneralAndAdministrativeMember_0E894832395BF3FFD9868095E8DDFD73" xlink:type="locator" />
    <link:definitionArc order="3" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_IncomeStatementLocationDomain_F10EB111342E4A2BCFF28095E8DC9848" xlink:to="loc_cgnx_SellingGeneralAndAdministrativeMember_0E894832395BF3FFD9868095E8DDFD73" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_AllocatedShareBasedCompensationExpense" xlink:label="loc_us-gaap_AllocatedShareBasedCompensationExpense_738C67324F2E4B8EBD308095E8DDECC4" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_EmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsLineItems_B33E79D0955697D8F1E28095E8DD0CE6" xlink:to="loc_us-gaap_AllocatedShareBasedCompensationExpense_738C67324F2E4B8EBD308095E8DDECC4" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense" xlink:label="loc_us-gaap_EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense_F6A9CE9DC07C371311C48095E8DDC7A2" xlink:type="locator" />
    <link:definitionArc order="2" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_EmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsLineItems_B33E79D0955697D8F1E28095E8DD0CE6" xlink:to="loc_us-gaap_EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense_F6A9CE9DC07C371311C48095E8DDC7A2" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_EmployeeServiceShareBasedCompensationRecognizedPeriodCostsCapitalizedAmount" xlink:label="loc_cgnx_EmployeeServiceShareBasedCompensationRecognizedPeriodCostsCapitalizedAmount_3754A7CD01B45902EE648095E8DD582F" xlink:type="locator" />
    <link:definitionArc order="3" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_EmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsLineItems_B33E79D0955697D8F1E28095E8DD0CE6" xlink:to="loc_cgnx_EmployeeServiceShareBasedCompensationRecognizedPeriodCostsCapitalizedAmount_3754A7CD01B45902EE648095E8DD582F" xlink:type="arc" />
  </link:definitionLink>
  <link:definitionLink xlink:role="http://cognex.com/role/StockBasedCompensationExpenseSummaryOfRestrictedStockOptionActivityDetail" xlink:type="extended">
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeLineItems" xlink:label="loc_us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeLineItems_1562C5C2EC8D5DCC75DB3712341D3B46" xlink:type="locator" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ScheduleOfShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeTable" xlink:label="loc_us-gaap_ScheduleOfShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeTable_F809E55C72934C02B9EC3712341A99A0" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeLineItems_1562C5C2EC8D5DCC75DB3712341D3B46" xlink:to="loc_us-gaap_ScheduleOfShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeTable_F809E55C72934C02B9EC3712341A99A0" xlink:type="arc" xbrldt:closed="true" xbrldt:contextElement="segment" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_AwardTypeAxis" xlink:label="loc_us-gaap_AwardTypeAxis_02FB78F580839315FA09371775A5807C" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ScheduleOfShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeTable_F809E55C72934C02B9EC3712341A99A0" xlink:to="loc_us-gaap_AwardTypeAxis_02FB78F580839315FA09371775A5807C" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_0F49F1520D3F2C0A653F371775A8F285_default" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_AwardTypeAxis_02FB78F580839315FA09371775A5807C" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_0F49F1520D3F2C0A653F371775A8F285_default" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_0F49F1520D3F2C0A653F371775A8F285" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_AwardTypeAxis_02FB78F580839315FA09371775A5807C" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_0F49F1520D3F2C0A653F371775A8F285" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_RestrictedStockMember" xlink:label="loc_us-gaap_RestrictedStockMember_12618A091512345FE65137185A23CAB5" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_0F49F1520D3F2C0A653F371775A8F285" xlink:to="loc_us-gaap_RestrictedStockMember_12618A091512345FE65137185A23CAB5" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedRollForward" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedRollForward_B536933CB6AAEB2983E13712341D4DE4" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeLineItems_1562C5C2EC8D5DCC75DB3712341D3B46" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedRollForward_B536933CB6AAEB2983E13712341D4DE4" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber_209B79B4285525D596613712341D3A80" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedRollForward_B536933CB6AAEB2983E13712341D4DE4" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber_209B79B4285525D596613712341D3A80" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod_0056361E629AB358ABF73712341D9D1F" xlink:type="locator" />
    <link:definitionArc order="2" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedRollForward_B536933CB6AAEB2983E13712341D4DE4" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod_0056361E629AB358ABF73712341D9D1F" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod_BFE93955FC76566D329A3712341EDE4C" xlink:type="locator" />
    <link:definitionArc order="3" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedRollForward_B536933CB6AAEB2983E13712341D4DE4" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod_BFE93955FC76566D329A3712341EDE4C" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod_0817A401BD922B4D5DCC3712341E6F0F" xlink:type="locator" />
    <link:definitionArc order="4" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedRollForward_B536933CB6AAEB2983E13712341D4DE4" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod_0817A401BD922B4D5DCC3712341E6F0F" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward_08E8B2E6315BE9CDB9553712341EB966" xlink:type="locator" />
    <link:definitionArc order="2" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeLineItems_1562C5C2EC8D5DCC75DB3712341D3B46" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward_08E8B2E6315BE9CDB9553712341EB966" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue_04E9B2A353739EE3D19B37123420F399" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward_08E8B2E6315BE9CDB9553712341EB966" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue_04E9B2A353739EE3D19B37123420F399" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue_86782418FD019F84AC2837123420D20B" xlink:type="locator" />
    <link:definitionArc order="2" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward_08E8B2E6315BE9CDB9553712341EB966" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue_86782418FD019F84AC2837123420D20B" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue_A98667079C52FABEB0FF371234200E5F" xlink:type="locator" />
    <link:definitionArc order="3" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward_08E8B2E6315BE9CDB9553712341EB966" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue_A98667079C52FABEB0FF371234200E5F" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue_D42932F1CBCF4FF7595F37123420FD03" xlink:type="locator" />
    <link:definitionArc order="4" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward_08E8B2E6315BE9CDB9553712341EB966" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue_D42932F1CBCF4FF7595F37123420FD03" xlink:type="arc" />
  </link:definitionLink>
  <link:definitionLink xlink:role="http://cognex.com/role/StockBasedCompensationExpenseSummaryOfStockOptionActivityDetail" xlink:type="extended" />
  <link:definitionLink xlink:role="http://cognex.com/role/StockBasedCompensationExpenseWeightedAverageAssumptionsUsedInEstimatingFairValuesOfStockOptionsGrantedDetail" xlink:type="extended">
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_B27CE03E3D51C3C0722637123EB7818B" xlink:type="locator" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" xlink:label="loc_us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable_1827D3AFFED3B26426AF37123EB50664" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_B27CE03E3D51C3C0722637123EB7818B" xlink:to="loc_us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable_1827D3AFFED3B26426AF37123EB50664" xlink:type="arc" xbrldt:closed="true" xbrldt:contextElement="segment" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_AwardTypeAxis" xlink:label="loc_us-gaap_AwardTypeAxis_A24FD76EEA0B1C01A94837123EB58663" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable_1827D3AFFED3B26426AF37123EB50664" xlink:to="loc_us-gaap_AwardTypeAxis_A24FD76EEA0B1C01A94837123EB58663" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_30C3FDCBFE4B02C9CF3437123EB6F7C1_default" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_AwardTypeAxis_A24FD76EEA0B1C01A94837123EB58663" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_30C3FDCBFE4B02C9CF3437123EB6F7C1_default" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_30C3FDCBFE4B02C9CF3437123EB6F7C1" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_AwardTypeAxis_A24FD76EEA0B1C01A94837123EB58663" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_30C3FDCBFE4B02C9CF3437123EB6F7C1" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_RestrictedStockMember" xlink:label="loc_us-gaap_RestrictedStockMember_B3BE8C13F4FCB3F46FD537123EB639BA" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_30C3FDCBFE4B02C9CF3437123EB6F7C1" xlink:to="loc_us-gaap_RestrictedStockMember_B3BE8C13F4FCB3F46FD537123EB639BA" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_EmployeeStockOptionMember" xlink:label="loc_us-gaap_EmployeeStockOptionMember_5BE5E90B934592912B5537123EB62644" xlink:type="locator" />
    <link:definitionArc order="2" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_30C3FDCBFE4B02C9CF3437123EB6F7C1" xlink:to="loc_us-gaap_EmployeeStockOptionMember_5BE5E90B934592912B5537123EB62644" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber_87D1F86F27C5EC5E522C37123EB74741" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_B27CE03E3D51C3C0722637123EB7818B" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber_87D1F86F27C5EC5E522C37123EB74741" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue_D67F68018354B72BE12A37123EB72DCA" xlink:type="locator" />
    <link:definitionArc order="2" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_B27CE03E3D51C3C0722637123EB7818B" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue_D67F68018354B72BE12A37123EB72DCA" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod_B977ED01396286E3EB7737123EB705B6" xlink:type="locator" />
    <link:definitionArc order="3" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_B27CE03E3D51C3C0722637123EB7818B" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod_B977ED01396286E3EB7737123EB705B6" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod_7AFA58E2A0F7D3D9BC4837123EB72F47" xlink:type="locator" />
    <link:definitionArc order="4" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_B27CE03E3D51C3C0722637123EB7818B" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod_7AFA58E2A0F7D3D9BC4837123EB72F47" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue_A1EB5E0B5EB718AEB58737123EB8D46B" xlink:type="locator" />
    <link:definitionArc order="5" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_B27CE03E3D51C3C0722637123EB7818B" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue_A1EB5E0B5EB718AEB58737123EB8D46B" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate_4D31E46635BF03B56F5237123EB80559" xlink:type="locator" />
    <link:definitionArc order="6" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_B27CE03E3D51C3C0722637123EB7818B" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate_4D31E46635BF03B56F5237123EB80559" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate_40ADAA90DF82D690510637123EB8A87C" xlink:type="locator" />
    <link:definitionArc order="7" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_B27CE03E3D51C3C0722637123EB7818B" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate_40ADAA90DF82D690510637123EB8A87C" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate_1B1E2AFBD42D269BE05137123EB86ADE" xlink:type="locator" />
    <link:definitionArc order="8" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_B27CE03E3D51C3C0722637123EB7818B" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate_1B1E2AFBD42D269BE05137123EB86ADE" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1" xlink:label="loc_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1_2CB25ADF34725DA66C3D37123EB87315" xlink:type="locator" />
    <link:definitionArc order="9" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_B27CE03E3D51C3C0722637123EB7818B" xlink:to="loc_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1_2CB25ADF34725DA66C3D37123EB87315" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod_53F4C5A2E029043F06BC37123EB8AEF6" xlink:type="locator" />
    <link:definitionArc order="10" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_B27CE03E3D51C3C0722637123EB7818B" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod_53F4C5A2E029043F06BC37123EB8AEF6" xlink:type="arc" />
  </link:definitionLink>
  <link:definitionLink xlink:role="http://cognex.com/role/StockBasedCompensationTables" xlink:type="extended" />
  <link:definitionLink xlink:role="http://cognex.com/role/SubsequentEvents" xlink:type="extended" />
  <link:definitionLink xlink:role="http://cognex.com/role/SubsequentEventsDetails" xlink:type="extended">
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_SubsequentEventLineItems" xlink:label="loc_us-gaap_SubsequentEventLineItems_5408A831191F359D168A8095E64F70AC" xlink:type="locator" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_SubsequentEventTable" xlink:label="loc_us-gaap_SubsequentEventTable_31911A55B8BB0F3C0CA78095E64FDAE9" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_SubsequentEventLineItems_5408A831191F359D168A8095E64F70AC" xlink:to="loc_us-gaap_SubsequentEventTable_31911A55B8BB0F3C0CA78095E64FDAE9" xlink:type="arc" xbrldt:closed="true" xbrldt:contextElement="segment" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_SubsequentEventTypeAxis" xlink:label="loc_us-gaap_SubsequentEventTypeAxis_2616C9DB402BEEDB0E648095E64FA090" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_SubsequentEventTable_31911A55B8BB0F3C0CA78095E64FDAE9" xlink:to="loc_us-gaap_SubsequentEventTypeAxis_2616C9DB402BEEDB0E648095E64FA090" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_SubsequentEventTypeDomain" xlink:label="loc_us-gaap_SubsequentEventTypeDomain_EB2C0136D44A3BC1B1C08095E64F152B_default" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_SubsequentEventTypeAxis_2616C9DB402BEEDB0E648095E64FA090" xlink:to="loc_us-gaap_SubsequentEventTypeDomain_EB2C0136D44A3BC1B1C08095E64F152B_default" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_SubsequentEventTypeDomain" xlink:label="loc_us-gaap_SubsequentEventTypeDomain_EB2C0136D44A3BC1B1C08095E64F152B" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_SubsequentEventTypeAxis_2616C9DB402BEEDB0E648095E64FA090" xlink:to="loc_us-gaap_SubsequentEventTypeDomain_EB2C0136D44A3BC1B1C08095E64F152B" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_SubsequentEventMember" xlink:label="loc_us-gaap_SubsequentEventMember_90E69BD2CD5B901A98058095E64F4A02" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_SubsequentEventTypeDomain_EB2C0136D44A3BC1B1C08095E64F152B" xlink:to="loc_us-gaap_SubsequentEventMember_90E69BD2CD5B901A98058095E64F4A02" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_DividendsPayableAmountPerShare" xlink:label="loc_us-gaap_DividendsPayableAmountPerShare_717D10A735048D17D5A58095E64F2747" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_SubsequentEventLineItems_5408A831191F359D168A8095E64F70AC" xlink:to="loc_us-gaap_DividendsPayableAmountPerShare_717D10A735048D17D5A58095E64F2747" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_DividendsPayableDateDeclaredDayMonthAndYear" xlink:label="loc_us-gaap_DividendsPayableDateDeclaredDayMonthAndYear_E633E271D39930726C0E8095E64F8A46" xlink:type="locator" />
    <link:definitionArc order="2" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_SubsequentEventLineItems_5408A831191F359D168A8095E64F70AC" xlink:to="loc_us-gaap_DividendsPayableDateDeclaredDayMonthAndYear_E633E271D39930726C0E8095E64F8A46" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_DividendsPayableDateOfRecordDayMonthAndYear" xlink:label="loc_us-gaap_DividendsPayableDateOfRecordDayMonthAndYear_9D40564AAFCF11F0E26C8095E64FB897" xlink:type="locator" />
    <link:definitionArc order="3" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_SubsequentEventLineItems_5408A831191F359D168A8095E64F70AC" xlink:to="loc_us-gaap_DividendsPayableDateOfRecordDayMonthAndYear_9D40564AAFCF11F0E26C8095E64FB897" xlink:type="arc" />
  </link:definitionLink>
  <link:definitionLink xlink:role="http://cognex.com/role/SummaryOfSignificantAccountingPolicies" xlink:type="extended" />
  <link:definitionLink xlink:role="http://cognex.com/role/SummaryOfSignificantAccountingPoliciesAdditionalInformationDetail" xlink:type="extended">
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_PropertyPlantAndEquipmentLineItems" xlink:label="loc_us-gaap_PropertyPlantAndEquipmentLineItems_204A6F23BC210D454ADB1600E1A33E68" xlink:type="locator" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ScheduleOfPropertyPlantAndEquipmentTable" xlink:label="loc_us-gaap_ScheduleOfPropertyPlantAndEquipmentTable_FF453A375C4B0E6726901600E1A016A6" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentLineItems_204A6F23BC210D454ADB1600E1A33E68" xlink:to="loc_us-gaap_ScheduleOfPropertyPlantAndEquipmentTable_FF453A375C4B0E6726901600E1A016A6" xlink:type="arc" xbrldt:closed="true" xbrldt:contextElement="segment" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_PropertyPlantAndEquipmentByTypeAxis" xlink:label="loc_us-gaap_PropertyPlantAndEquipmentByTypeAxis_0EB68C89F307CBC4B5F81600E1A0B14F" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ScheduleOfPropertyPlantAndEquipmentTable_FF453A375C4B0E6726901600E1A016A6" xlink:to="loc_us-gaap_PropertyPlantAndEquipmentByTypeAxis_0EB68C89F307CBC4B5F81600E1A0B14F" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_PropertyPlantAndEquipmentTypeDomain" xlink:label="loc_us-gaap_PropertyPlantAndEquipmentTypeDomain_3F8533E132F6D678F39C1600E1A09DE2_default" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentByTypeAxis_0EB68C89F307CBC4B5F81600E1A0B14F" xlink:to="loc_us-gaap_PropertyPlantAndEquipmentTypeDomain_3F8533E132F6D678F39C1600E1A09DE2_default" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_PropertyPlantAndEquipmentTypeDomain" xlink:label="loc_us-gaap_PropertyPlantAndEquipmentTypeDomain_3F8533E132F6D678F39C1600E1A09DE2" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentByTypeAxis_0EB68C89F307CBC4B5F81600E1A0B14F" xlink:to="loc_us-gaap_PropertyPlantAndEquipmentTypeDomain_3F8533E132F6D678F39C1600E1A09DE2" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_BuildingMember" xlink:label="loc_us-gaap_BuildingMember_527E1E185F0CAE5893AD1600E1A10F92" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentTypeDomain_3F8533E132F6D678F39C1600E1A09DE2" xlink:to="loc_us-gaap_BuildingMember_527E1E185F0CAE5893AD1600E1A10F92" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_BuildingImprovementsMember" xlink:label="loc_us-gaap_BuildingImprovementsMember_79F4FB2791899CBB25681600E1A1CE67" xlink:type="locator" />
    <link:definitionArc order="2" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentTypeDomain_3F8533E132F6D678F39C1600E1A09DE2" xlink:to="loc_us-gaap_BuildingImprovementsMember_79F4FB2791899CBB25681600E1A1CE67" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_ComputerHardwareAndSoftwareMember" xlink:label="loc_cgnx_ComputerHardwareAndSoftwareMember_E6CF624414F7188ED4971600E1A1E5A7" xlink:type="locator" />
    <link:definitionArc order="3" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentTypeDomain_3F8533E132F6D678F39C1600E1A09DE2" xlink:to="loc_cgnx_ComputerHardwareAndSoftwareMember_E6CF624414F7188ED4971600E1A1E5A7" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_EquipmentMember" xlink:label="loc_us-gaap_EquipmentMember_1C08E2453968EEBA30231600E1A177CA" xlink:type="locator" />
    <link:definitionArc order="4" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentTypeDomain_3F8533E132F6D678F39C1600E1A09DE2" xlink:to="loc_us-gaap_EquipmentMember_1C08E2453968EEBA30231600E1A177CA" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_FurnitureAndFixturesMember" xlink:label="loc_us-gaap_FurnitureAndFixturesMember_D19A2165E3C3191654B71600E1A17AB6" xlink:type="locator" />
    <link:definitionArc order="5" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentTypeDomain_3F8533E132F6D678F39C1600E1A09DE2" xlink:to="loc_us-gaap_FurnitureAndFixturesMember_D19A2165E3C3191654B71600E1A17AB6" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2018/elts/srt-2018-01-31.xsd#srt_RangeAxis" xlink:label="loc_srt_RangeAxis_DE161B84D2A71BCF8AAB1600E1A232CC" xlink:type="locator" />
    <link:definitionArc order="2" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ScheduleOfPropertyPlantAndEquipmentTable_FF453A375C4B0E6726901600E1A016A6" xlink:to="loc_srt_RangeAxis_DE161B84D2A71BCF8AAB1600E1A232CC" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2018/elts/srt-2018-01-31.xsd#srt_RangeMember" xlink:label="loc_srt_RangeMember_32BA60BCD4F0508251581600E1A2A009_default" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_srt_RangeAxis_DE161B84D2A71BCF8AAB1600E1A232CC" xlink:to="loc_srt_RangeMember_32BA60BCD4F0508251581600E1A2A009_default" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2018/elts/srt-2018-01-31.xsd#srt_RangeMember" xlink:label="loc_srt_RangeMember_32BA60BCD4F0508251581600E1A2A009" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_srt_RangeAxis_DE161B84D2A71BCF8AAB1600E1A232CC" xlink:to="loc_srt_RangeMember_32BA60BCD4F0508251581600E1A2A009" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2018/elts/srt-2018-01-31.xsd#srt_MinimumMember" xlink:label="loc_srt_MinimumMember_2C8D525530DEE6980AAA1600E1A2433B" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srt_RangeMember_32BA60BCD4F0508251581600E1A2A009" xlink:to="loc_srt_MinimumMember_2C8D525530DEE6980AAA1600E1A2433B" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2018/elts/srt-2018-01-31.xsd#srt_MaximumMember" xlink:label="loc_srt_MaximumMember_C0A45BBE7C35FA0A5F741600E1A20A70" xlink:type="locator" />
    <link:definitionArc order="2" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srt_RangeMember_32BA60BCD4F0508251581600E1A2A009" xlink:to="loc_srt_MaximumMember_C0A45BBE7C35FA0A5F741600E1A20A70" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_PropertyPlantAndEquipmentUsefulLife" xlink:label="loc_us-gaap_PropertyPlantAndEquipmentUsefulLife_901925CE1856ED49CE7F1600E1A3B753" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentLineItems_204A6F23BC210D454ADB1600E1A33E68" xlink:to="loc_us-gaap_PropertyPlantAndEquipmentUsefulLife_901925CE1856ED49CE7F1600E1A3B753" xlink:type="arc" />
  </link:definitionLink>
  <link:definitionLink xlink:role="http://cognex.com/role/SummaryOfSignificantAccountingPoliciesAdvertisingCostsDetails" xlink:type="extended" />
  <link:definitionLink xlink:role="http://cognex.com/role/SummaryOfSignificantAccountingPoliciesComprehensiveIncomeLossDetails" xlink:type="extended">
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_AccumulatedOtherComprehensiveIncomeLossLineItems" xlink:label="loc_us-gaap_AccumulatedOtherComprehensiveIncomeLossLineItems_AC83F9A6123902C531A98095E8EAC6FA" xlink:type="locator" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_AccumulatedOtherComprehensiveIncomeLossTable" xlink:label="loc_us-gaap_AccumulatedOtherComprehensiveIncomeLossTable_B5736A0C6B05224EA2688095E8EA4017" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_AccumulatedOtherComprehensiveIncomeLossLineItems_AC83F9A6123902C531A98095E8EAC6FA" xlink:to="loc_us-gaap_AccumulatedOtherComprehensiveIncomeLossTable_B5736A0C6B05224EA2688095E8EA4017" xlink:type="arc" xbrldt:closed="true" xbrldt:contextElement="segment" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_StatementEquityComponentsAxis" xlink:label="loc_us-gaap_StatementEquityComponentsAxis_BE755B4FAFFC102967DE8095E8EAF562" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_AccumulatedOtherComprehensiveIncomeLossTable_B5736A0C6B05224EA2688095E8EA4017" xlink:to="loc_us-gaap_StatementEquityComponentsAxis_BE755B4FAFFC102967DE8095E8EAF562" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_EquityComponentDomain" xlink:label="loc_us-gaap_EquityComponentDomain_ACB32C4006DBA06201258095E8EAE12E_default" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_StatementEquityComponentsAxis_BE755B4FAFFC102967DE8095E8EAF562" xlink:to="loc_us-gaap_EquityComponentDomain_ACB32C4006DBA06201258095E8EAE12E_default" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_EquityComponentDomain" xlink:label="loc_us-gaap_EquityComponentDomain_ACB32C4006DBA06201258095E8EAE12E" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_StatementEquityComponentsAxis_BE755B4FAFFC102967DE8095E8EAF562" xlink:to="loc_us-gaap_EquityComponentDomain_ACB32C4006DBA06201258095E8EAE12E" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_AccumulatedOtherComprehensiveIncomeMember" xlink:label="loc_us-gaap_AccumulatedOtherComprehensiveIncomeMember_3F4D942DFC9CC8B198788095E8EADAC2" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_EquityComponentDomain_ACB32C4006DBA06201258095E8EAE12E" xlink:to="loc_us-gaap_AccumulatedOtherComprehensiveIncomeMember_3F4D942DFC9CC8B198788095E8EADAC2" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_AccumulatedOtherComprehensiveIncomeLossForeignCurrencyTranslationAdjustmentNetOfTax" xlink:label="loc_us-gaap_AccumulatedOtherComprehensiveIncomeLossForeignCurrencyTranslationAdjustmentNetOfTax_4168ED638885A436063B8095E8EA6222" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_AccumulatedOtherComprehensiveIncomeLossLineItems_AC83F9A6123902C531A98095E8EAC6FA" xlink:to="loc_us-gaap_AccumulatedOtherComprehensiveIncomeLossForeignCurrencyTranslationAdjustmentNetOfTax_4168ED638885A436063B8095E8EA6222" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_AccumulatedOtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax" xlink:label="loc_us-gaap_AccumulatedOtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax_ED73FD7E74905153841C8095E8EA8025" xlink:type="locator" />
    <link:definitionArc order="2" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_AccumulatedOtherComprehensiveIncomeLossLineItems_AC83F9A6123902C531A98095E8EAC6FA" xlink:to="loc_us-gaap_AccumulatedOtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax_ED73FD7E74905153841C8095E8EA8025" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_AdjustmentForLongTermIntercompanyTransactionsNetOfTax" xlink:label="loc_us-gaap_AdjustmentForLongTermIntercompanyTransactionsNetOfTax_08F4A1E4BE2A92549BD18095E8EAB7EA" xlink:type="locator" />
    <link:definitionArc order="3" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_AccumulatedOtherComprehensiveIncomeLossLineItems_AC83F9A6123902C531A98095E8EAC6FA" xlink:to="loc_us-gaap_AdjustmentForLongTermIntercompanyTransactionsNetOfTax_08F4A1E4BE2A92549BD18095E8EAB7EA" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax" xlink:label="loc_us-gaap_OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax_8C800DA5C7856D3E71E38095E8EACFDD" xlink:type="locator" />
    <link:definitionArc order="4" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_AccumulatedOtherComprehensiveIncomeLossLineItems_AC83F9A6123902C531A98095E8EAC6FA" xlink:to="loc_us-gaap_OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax_8C800DA5C7856D3E71E38095E8EACFDD" xlink:type="arc" />
  </link:definitionLink>
  <link:definitionLink xlink:role="http://cognex.com/role/SummaryOfSignificantAccountingPoliciesIntangibleAssetsDetails" xlink:type="extended">
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsLineItems" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsLineItems_991594A360834DBB4EBC17B868ADB4D9" xlink:type="locator" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable" xlink:label="loc_us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable_12D9DEC62976099AEA8317B868A44893" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsLineItems_991594A360834DBB4EBC17B868ADB4D9" xlink:to="loc_us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable_12D9DEC62976099AEA8317B868A44893" xlink:type="arc" xbrldt:closed="true" xbrldt:contextElement="segment" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_D555169920AF7DA30EEB17B868A5F192" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable_12D9DEC62976099AEA8317B868A44893" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_D555169920AF7DA30EEB17B868A5F192" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_F3021EA6615599E1887117B868A5FAFB_default" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_D555169920AF7DA30EEB17B868A5F192" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_F3021EA6615599E1887117B868A5FAFB_default" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_F3021EA6615599E1887117B868A5FAFB" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_D555169920AF7DA30EEB17B868A5F192" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_F3021EA6615599E1887117B868A5FAFB" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_DistributionRightsMember" xlink:label="loc_us-gaap_DistributionRightsMember_185353C1D3CE6CF0A5EB17B868A5E102" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_F3021EA6615599E1887117B868A5FAFB" xlink:to="loc_us-gaap_DistributionRightsMember_185353C1D3CE6CF0A5EB17B868A5E102" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_CompletedTechnologiesAndOtherIntangibleAssetsMember" xlink:label="loc_cgnx_CompletedTechnologiesAndOtherIntangibleAssetsMember_C74B1378E2A931A93A7017B868A68215" xlink:type="locator" />
    <link:definitionArc order="2" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_F3021EA6615599E1887117B868A5FAFB" xlink:to="loc_cgnx_CompletedTechnologiesAndOtherIntangibleAssetsMember_C74B1378E2A931A93A7017B868A68215" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_CustomerContractsAndRelationshipsMember" xlink:label="loc_cgnx_CustomerContractsAndRelationshipsMember_DE4F049267619D6081E817B868A68152" xlink:type="locator" />
    <link:definitionArc order="3" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_F3021EA6615599E1887117B868A5FAFB" xlink:to="loc_cgnx_CustomerContractsAndRelationshipsMember_DE4F049267619D6081E817B868A68152" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_NoncompeteAgreementsMember" xlink:label="loc_us-gaap_NoncompeteAgreementsMember_421EE7999B914599B3A717B868AB5683" xlink:type="locator" />
    <link:definitionArc order="4" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_F3021EA6615599E1887117B868A5FAFB" xlink:to="loc_us-gaap_NoncompeteAgreementsMember_421EE7999B914599B3A717B868AB5683" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_TrademarksMember" xlink:label="loc_us-gaap_TrademarksMember_C0AF0815DC9027D32EFB17B868AB3C8A" xlink:type="locator" />
    <link:definitionArc order="5" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_F3021EA6615599E1887117B868A5FAFB" xlink:to="loc_us-gaap_TrademarksMember_C0AF0815DC9027D32EFB17B868AB3C8A" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2018/elts/srt-2018-01-31.xsd#srt_RangeAxis" xlink:label="loc_srt_RangeAxis_697B1B8AFC2EB059AE9017B868AC375C" xlink:type="locator" />
    <link:definitionArc order="2" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable_12D9DEC62976099AEA8317B868A44893" xlink:to="loc_srt_RangeAxis_697B1B8AFC2EB059AE9017B868AC375C" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2018/elts/srt-2018-01-31.xsd#srt_RangeMember" xlink:label="loc_srt_RangeMember_40A61D327FAFFCC2A50A17B868AC2377_default" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_srt_RangeAxis_697B1B8AFC2EB059AE9017B868AC375C" xlink:to="loc_srt_RangeMember_40A61D327FAFFCC2A50A17B868AC2377_default" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2018/elts/srt-2018-01-31.xsd#srt_RangeMember" xlink:label="loc_srt_RangeMember_40A61D327FAFFCC2A50A17B868AC2377" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_srt_RangeAxis_697B1B8AFC2EB059AE9017B868AC375C" xlink:to="loc_srt_RangeMember_40A61D327FAFFCC2A50A17B868AC2377" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2018/elts/srt-2018-01-31.xsd#srt_MinimumMember" xlink:label="loc_srt_MinimumMember_89574EFA17834718E61D17B868AC9C2B" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srt_RangeMember_40A61D327FAFFCC2A50A17B868AC2377" xlink:to="loc_srt_MinimumMember_89574EFA17834718E61D17B868AC9C2B" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2018/elts/srt-2018-01-31.xsd#srt_MaximumMember" xlink:label="loc_srt_MaximumMember_4D23D7D953F20D108ADA17B868AD2E09" xlink:type="locator" />
    <link:definitionArc order="2" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srt_RangeMember_40A61D327FAFFCC2A50A17B868AC2377" xlink:to="loc_srt_MaximumMember_4D23D7D953F20D108ADA17B868AD2E09" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetUsefulLife" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetUsefulLife_E01D1E587A385D2B5E9417B868AD4B17" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsLineItems_991594A360834DBB4EBC17B868ADB4D9" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetUsefulLife_E01D1E587A385D2B5E9417B868AD4B17" xlink:type="arc" />
  </link:definitionLink>
  <link:definitionLink xlink:role="http://cognex.com/role/SummaryOfSignificantAccountingPoliciesPolicies" xlink:type="extended" />
  <link:definitionLink xlink:role="http://cognex.com/role/SummaryOfSignificantAccountingPoliciesSummaryOfSignificantAccountingPoliciesRevenueRecognitionDetails" xlink:type="extended">
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_DisaggregationOfRevenueLineItems" xlink:label="loc_us-gaap_DisaggregationOfRevenueLineItems_59472D663F89FE183743166A9FC76017" xlink:type="locator" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_DisaggregationOfRevenueTable" xlink:label="loc_us-gaap_DisaggregationOfRevenueTable_EB318C094357124C1321166A9FC409FD" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_DisaggregationOfRevenueLineItems_59472D663F89FE183743166A9FC76017" xlink:to="loc_us-gaap_DisaggregationOfRevenueTable_EB318C094357124C1321166A9FC409FD" xlink:type="arc" xbrldt:closed="true" xbrldt:contextElement="segment" />
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2018/elts/srt-2018-01-31.xsd#srt_RangeAxis" xlink:label="loc_srt_RangeAxis_79A36F259A4D5228FE91166A9FC56F77" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_DisaggregationOfRevenueTable_EB318C094357124C1321166A9FC409FD" xlink:to="loc_srt_RangeAxis_79A36F259A4D5228FE91166A9FC56F77" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2018/elts/srt-2018-01-31.xsd#srt_RangeMember" xlink:label="loc_srt_RangeMember_466CAD09EE5F93E5E3C1166A9FC6A1A5_default" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_srt_RangeAxis_79A36F259A4D5228FE91166A9FC56F77" xlink:to="loc_srt_RangeMember_466CAD09EE5F93E5E3C1166A9FC6A1A5_default" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2018/elts/srt-2018-01-31.xsd#srt_RangeMember" xlink:label="loc_srt_RangeMember_466CAD09EE5F93E5E3C1166A9FC6A1A5" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_srt_RangeAxis_79A36F259A4D5228FE91166A9FC56F77" xlink:to="loc_srt_RangeMember_466CAD09EE5F93E5E3C1166A9FC6A1A5" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2018/elts/srt-2018-01-31.xsd#srt_MinimumMember" xlink:label="loc_srt_MinimumMember_2D669C4C480DE91A1C9B166A9FC71C66" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srt_RangeMember_466CAD09EE5F93E5E3C1166A9FC6A1A5" xlink:to="loc_srt_MinimumMember_2D669C4C480DE91A1C9B166A9FC71C66" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2018/elts/srt-2018-01-31.xsd#srt_MaximumMember" xlink:label="loc_srt_MaximumMember_D29CD578134519C734C0166A9FC72F96" xlink:type="locator" />
    <link:definitionArc order="2" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srt_RangeMember_466CAD09EE5F93E5E3C1166A9FC6A1A5" xlink:to="loc_srt_MaximumMember_D29CD578134519C734C0166A9FC72F96" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_RevenuePaymentTerms" xlink:label="loc_cgnx_RevenuePaymentTerms_D5AC754BA3BC9158A6D6166A9FC877F2" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_DisaggregationOfRevenueLineItems_59472D663F89FE183743166A9FC76017" xlink:to="loc_cgnx_RevenuePaymentTerms_D5AC754BA3BC9158A6D6166A9FC877F2" xlink:type="arc" />
  </link:definitionLink>
  <link:definitionLink xlink:role="http://cognex.com/role/SummaryOfSignificantAccountingPoliciesWarrantyDetails" xlink:type="extended">
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ProductLiabilityContingencyLineItems" xlink:label="loc_us-gaap_ProductLiabilityContingencyLineItems_07025B67EDCF266583DF166AA1419BB2" xlink:type="locator" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ProductLiabilityContingencyTable" xlink:label="loc_us-gaap_ProductLiabilityContingencyTable_B41EDFDD84BB556588F3166AA140D0B7" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_ProductLiabilityContingencyLineItems_07025B67EDCF266583DF166AA1419BB2" xlink:to="loc_us-gaap_ProductLiabilityContingencyTable_B41EDFDD84BB556588F3166AA140D0B7" xlink:type="arc" xbrldt:closed="true" xbrldt:contextElement="segment" />
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2018/elts/srt-2018-01-31.xsd#srt_RangeAxis" xlink:label="loc_srt_RangeAxis_2EF4C4A9ECD501C11848166AA140E0DB" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ProductLiabilityContingencyTable_B41EDFDD84BB556588F3166AA140D0B7" xlink:to="loc_srt_RangeAxis_2EF4C4A9ECD501C11848166AA140E0DB" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2018/elts/srt-2018-01-31.xsd#srt_RangeMember" xlink:label="loc_srt_RangeMember_5D9B029B2DB826660DA6166AA140A407_default" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_srt_RangeAxis_2EF4C4A9ECD501C11848166AA140E0DB" xlink:to="loc_srt_RangeMember_5D9B029B2DB826660DA6166AA140A407_default" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2018/elts/srt-2018-01-31.xsd#srt_RangeMember" xlink:label="loc_srt_RangeMember_5D9B029B2DB826660DA6166AA140A407" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_srt_RangeAxis_2EF4C4A9ECD501C11848166AA140E0DB" xlink:to="loc_srt_RangeMember_5D9B029B2DB826660DA6166AA140A407" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2018/elts/srt-2018-01-31.xsd#srt_MinimumMember" xlink:label="loc_srt_MinimumMember_3737140538EF8A1B8533166AA141FAAC" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srt_RangeMember_5D9B029B2DB826660DA6166AA140A407" xlink:to="loc_srt_MinimumMember_3737140538EF8A1B8533166AA141FAAC" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2018/elts/srt-2018-01-31.xsd#srt_MaximumMember" xlink:label="loc_srt_MaximumMember_6FDBF4A10CBA3C3A8EFF166AA1413163" xlink:type="locator" />
    <link:definitionArc order="2" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srt_RangeMember_5D9B029B2DB826660DA6166AA140A407" xlink:to="loc_srt_MaximumMember_6FDBF4A10CBA3C3A8EFF166AA1413163" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_ProductWarrantyPeriod" xlink:label="loc_cgnx_ProductWarrantyPeriod_B1280CE7DCF9E555480C166AA1411D2C" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ProductLiabilityContingencyLineItems_07025B67EDCF266583DF166AA1419BB2" xlink:to="loc_cgnx_ProductWarrantyPeriod_B1280CE7DCF9E555480C166AA1411D2C" xlink:type="arc" />
  </link:definitionLink>
  <link:definitionLink xlink:role="http://cognex.com/role/Taxes" xlink:type="extended" />
  <link:definitionLink xlink:role="http://cognex.com/role/TaxesAdditionalInformationDetails" xlink:type="extended">
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_TaxCreditCarryforwardLineItems" xlink:label="loc_us-gaap_TaxCreditCarryforwardLineItems_E178ED6906E3027DF4C335C11010EA3F" xlink:type="locator" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_TaxCreditCarryforwardTable" xlink:label="loc_us-gaap_TaxCreditCarryforwardTable_A10F6BA9FF4BD7DBEAB835C1100B6F50" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_TaxCreditCarryforwardLineItems_E178ED6906E3027DF4C335C11010EA3F" xlink:to="loc_us-gaap_TaxCreditCarryforwardTable_A10F6BA9FF4BD7DBEAB835C1100B6F50" xlink:type="arc" xbrldt:closed="true" xbrldt:contextElement="segment" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_BusinessAcquisitionAxis" xlink:label="loc_us-gaap_BusinessAcquisitionAxis_0B0635C7DD16E6FFD1DF35C1100BB7A9" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_TaxCreditCarryforwardTable_A10F6BA9FF4BD7DBEAB835C1100B6F50" xlink:to="loc_us-gaap_BusinessAcquisitionAxis_0B0635C7DD16E6FFD1DF35C1100BB7A9" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_BusinessAcquisitionAcquireeDomain" xlink:label="loc_us-gaap_BusinessAcquisitionAcquireeDomain_16A09ECB494DD25D449935C1100BC6FB_default" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_BusinessAcquisitionAxis_0B0635C7DD16E6FFD1DF35C1100BB7A9" xlink:to="loc_us-gaap_BusinessAcquisitionAcquireeDomain_16A09ECB494DD25D449935C1100BC6FB_default" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_BusinessAcquisitionAcquireeDomain" xlink:label="loc_us-gaap_BusinessAcquisitionAcquireeDomain_16A09ECB494DD25D449935C1100BC6FB" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_BusinessAcquisitionAxis_0B0635C7DD16E6FFD1DF35C1100BB7A9" xlink:to="loc_us-gaap_BusinessAcquisitionAcquireeDomain_16A09ECB494DD25D449935C1100BC6FB" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_SualabCo.Ltd.Member" xlink:label="loc_cgnx_SualabCo.Ltd.Member_DC66AEA9E69EAE052B9435C1100B4267" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_BusinessAcquisitionAcquireeDomain_16A09ECB494DD25D449935C1100BC6FB" xlink:to="loc_cgnx_SualabCo.Ltd.Member_DC66AEA9E69EAE052B9435C1100B4267" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_IncomeTaxAuthorityAxis" xlink:label="loc_us-gaap_IncomeTaxAuthorityAxis_094CC3B5905E9C367EEC35C1100C9921" xlink:type="locator" />
    <link:definitionArc order="2" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_TaxCreditCarryforwardTable_A10F6BA9FF4BD7DBEAB835C1100B6F50" xlink:to="loc_us-gaap_IncomeTaxAuthorityAxis_094CC3B5905E9C367EEC35C1100C9921" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_IncomeTaxAuthorityDomain" xlink:label="loc_us-gaap_IncomeTaxAuthorityDomain_0368EE5BFE3D72A54C8F35C1100CC847_default" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_IncomeTaxAuthorityAxis_094CC3B5905E9C367EEC35C1100C9921" xlink:to="loc_us-gaap_IncomeTaxAuthorityDomain_0368EE5BFE3D72A54C8F35C1100CC847_default" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_IncomeTaxAuthorityDomain" xlink:label="loc_us-gaap_IncomeTaxAuthorityDomain_0368EE5BFE3D72A54C8F35C1100CC847" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_IncomeTaxAuthorityAxis_094CC3B5905E9C367EEC35C1100C9921" xlink:to="loc_us-gaap_IncomeTaxAuthorityDomain_0368EE5BFE3D72A54C8F35C1100CC847" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ForeignCountryMember" xlink:label="loc_us-gaap_ForeignCountryMember_E7C41ECA4BCFC03F69CE35C1100C2581" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_IncomeTaxAuthorityDomain_0368EE5BFE3D72A54C8F35C1100CC847" xlink:to="loc_us-gaap_ForeignCountryMember_E7C41ECA4BCFC03F69CE35C1100C2581" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_DomesticCountryMember" xlink:label="loc_us-gaap_DomesticCountryMember_AA9B871603BCC423918D35C1100C877B" xlink:type="locator" />
    <link:definitionArc order="2" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_IncomeTaxAuthorityDomain_0368EE5BFE3D72A54C8F35C1100CC847" xlink:to="loc_us-gaap_DomesticCountryMember_AA9B871603BCC423918D35C1100C877B" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_IncomeTaxAuthorityNameAxis" xlink:label="loc_us-gaap_IncomeTaxAuthorityNameAxis_C86D178898DDB5E44E4835C1100D64EF" xlink:type="locator" />
    <link:definitionArc order="3" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_TaxCreditCarryforwardTable_A10F6BA9FF4BD7DBEAB835C1100B6F50" xlink:to="loc_us-gaap_IncomeTaxAuthorityNameAxis_C86D178898DDB5E44E4835C1100D64EF" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_IncomeTaxAuthorityNameDomain" xlink:label="loc_us-gaap_IncomeTaxAuthorityNameDomain_A85385954781BDCAFCF535C1100D0642_default" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_IncomeTaxAuthorityNameAxis_C86D178898DDB5E44E4835C1100D64EF" xlink:to="loc_us-gaap_IncomeTaxAuthorityNameDomain_A85385954781BDCAFCF535C1100D0642_default" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_IncomeTaxAuthorityNameDomain" xlink:label="loc_us-gaap_IncomeTaxAuthorityNameDomain_A85385954781BDCAFCF535C1100D0642" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_IncomeTaxAuthorityNameAxis_C86D178898DDB5E44E4835C1100D64EF" xlink:to="loc_us-gaap_IncomeTaxAuthorityNameDomain_A85385954781BDCAFCF535C1100D0642" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_RevenueCommissionersIrelandMember" xlink:label="loc_us-gaap_RevenueCommissionersIrelandMember_F9E022295D1899A7DC6435C1100D3365" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_IncomeTaxAuthorityNameDomain_A85385954781BDCAFCF535C1100D0642" xlink:to="loc_us-gaap_RevenueCommissionersIrelandMember_F9E022295D1899A7DC6435C1100D3365" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_StateAdministrationOfTaxationChinaMember" xlink:label="loc_us-gaap_StateAdministrationOfTaxationChinaMember_F562C05BB80D1567546E35C1100EF368" xlink:type="locator" />
    <link:definitionArc order="2" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_IncomeTaxAuthorityNameDomain_A85385954781BDCAFCF535C1100D0642" xlink:to="loc_us-gaap_StateAdministrationOfTaxationChinaMember_F562C05BB80D1567546E35C1100EF368" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_AdjustmentsForNewAccountingPronouncementsAxis" xlink:label="loc_us-gaap_AdjustmentsForNewAccountingPronouncementsAxis_B97DFCC146083AA0113435C1100E7D7B" xlink:type="locator" />
    <link:definitionArc order="4" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_TaxCreditCarryforwardTable_A10F6BA9FF4BD7DBEAB835C1100B6F50" xlink:to="loc_us-gaap_AdjustmentsForNewAccountingPronouncementsAxis_B97DFCC146083AA0113435C1100E7D7B" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_TypeOfAdoptionMember" xlink:label="loc_us-gaap_TypeOfAdoptionMember_D3CDA98240EA60E1E9D835C1100EB9B2_default" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_AdjustmentsForNewAccountingPronouncementsAxis_B97DFCC146083AA0113435C1100E7D7B" xlink:to="loc_us-gaap_TypeOfAdoptionMember_D3CDA98240EA60E1E9D835C1100EB9B2_default" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_TypeOfAdoptionMember" xlink:label="loc_us-gaap_TypeOfAdoptionMember_D3CDA98240EA60E1E9D835C1100EB9B2" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_AdjustmentsForNewAccountingPronouncementsAxis_B97DFCC146083AA0113435C1100E7D7B" xlink:to="loc_us-gaap_TypeOfAdoptionMember_D3CDA98240EA60E1E9D835C1100EB9B2" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_AccountingStandardsUpdate201616Member" xlink:label="loc_us-gaap_AccountingStandardsUpdate201616Member_74D6CB3E57206F8B0C5535C1100E8961" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_TypeOfAdoptionMember_D3CDA98240EA60E1E9D835C1100EB9B2" xlink:to="loc_us-gaap_AccountingStandardsUpdate201616Member_74D6CB3E57206F8B0C5535C1100E8961" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_AccountingStandardsUpdate201609StatutoryTaxWithholdingComponentMember" xlink:label="loc_cgnx_AccountingStandardsUpdate201609StatutoryTaxWithholdingComponentMember_92E66746D55843731F3A35C1100E9376" xlink:type="locator" />
    <link:definitionArc order="2" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_TypeOfAdoptionMember_D3CDA98240EA60E1E9D835C1100EB9B2" xlink:to="loc_cgnx_AccountingStandardsUpdate201609StatutoryTaxWithholdingComponentMember_92E66746D55843731F3A35C1100E9376" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2018/elts/srt-2018-01-31.xsd#srt_StatementGeographicalAxis" xlink:label="loc_srt_StatementGeographicalAxis_92BE507EED3FC57E7C7735C1100E8476" xlink:type="locator" />
    <link:definitionArc order="5" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_TaxCreditCarryforwardTable_A10F6BA9FF4BD7DBEAB835C1100B6F50" xlink:to="loc_srt_StatementGeographicalAxis_92BE507EED3FC57E7C7735C1100E8476" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2018/elts/srt-2018-01-31.xsd#srt_SegmentGeographicalDomain" xlink:label="loc_srt_SegmentGeographicalDomain_088B302042A385F1218635C1100F5E13_default" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_srt_StatementGeographicalAxis_92BE507EED3FC57E7C7735C1100E8476" xlink:to="loc_srt_SegmentGeographicalDomain_088B302042A385F1218635C1100F5E13_default" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2018/elts/srt-2018-01-31.xsd#srt_SegmentGeographicalDomain" xlink:label="loc_srt_SegmentGeographicalDomain_088B302042A385F1218635C1100F5E13" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_srt_StatementGeographicalAxis_92BE507EED3FC57E7C7735C1100E8476" xlink:to="loc_srt_SegmentGeographicalDomain_088B302042A385F1218635C1100F5E13" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_OtherThantheU.SMember" xlink:label="loc_cgnx_OtherThantheU.SMember_DAD4684EDCB87F6B419D35C1100F4569" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srt_SegmentGeographicalDomain_088B302042A385F1218635C1100F5E13" xlink:to="loc_cgnx_OtherThantheU.SMember_DAD4684EDCB87F6B419D35C1100F4569" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_TaxCreditCarryforwardAxis" xlink:label="loc_us-gaap_TaxCreditCarryforwardAxis_B4B9414F8DCB6B008A6E35C1100F19E5" xlink:type="locator" />
    <link:definitionArc order="6" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_TaxCreditCarryforwardTable_A10F6BA9FF4BD7DBEAB835C1100B6F50" xlink:to="loc_us-gaap_TaxCreditCarryforwardAxis_B4B9414F8DCB6B008A6E35C1100F19E5" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_TaxCreditCarryforwardNameDomain" xlink:label="loc_us-gaap_TaxCreditCarryforwardNameDomain_7A53AE9BF81DCAF4064035C1100FAF62_default" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_TaxCreditCarryforwardAxis_B4B9414F8DCB6B008A6E35C1100F19E5" xlink:to="loc_us-gaap_TaxCreditCarryforwardNameDomain_7A53AE9BF81DCAF4064035C1100FAF62_default" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_TaxCreditCarryforwardNameDomain" xlink:label="loc_us-gaap_TaxCreditCarryforwardNameDomain_7A53AE9BF81DCAF4064035C1100FAF62" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_TaxCreditCarryforwardAxis_B4B9414F8DCB6B008A6E35C1100F19E5" xlink:to="loc_us-gaap_TaxCreditCarryforwardNameDomain_7A53AE9BF81DCAF4064035C1100FAF62" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ResearchMember" xlink:label="loc_us-gaap_ResearchMember_A697083286E846F25B3A35C11010807C" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_TaxCreditCarryforwardNameDomain_7A53AE9BF81DCAF4064035C1100FAF62" xlink:to="loc_us-gaap_ResearchMember_A697083286E846F25B3A35C11010807C" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_StateResearchAndExperimentationMember" xlink:label="loc_cgnx_StateResearchAndExperimentationMember_E4C576609B4EB07294A735C1101052DF" xlink:type="locator" />
    <link:definitionArc order="2" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_TaxCreditCarryforwardNameDomain_7A53AE9BF81DCAF4064035C1100FAF62" xlink:to="loc_cgnx_StateResearchAndExperimentationMember_E4C576609B4EB07294A735C1101052DF" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_EffectiveIncomeTaxRateReconciliationMigrationofAcquiredIntellectualProperty" xlink:label="loc_cgnx_EffectiveIncomeTaxRateReconciliationMigrationofAcquiredIntellectualProperty_1C1DFAB219C74EDE9C9935C1101026F5" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_TaxCreditCarryforwardLineItems_E178ED6906E3027DF4C335C11010EA3F" xlink:to="loc_cgnx_EffectiveIncomeTaxRateReconciliationMigrationofAcquiredIntellectualProperty_1C1DFAB219C74EDE9C9935C1101026F5" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_UnrecognizedTaxBenefits" xlink:label="loc_us-gaap_UnrecognizedTaxBenefits_0E1CF283A731F37694E435C11011E6DD" xlink:type="locator" />
    <link:definitionArc order="2" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_TaxCreditCarryforwardLineItems_E178ED6906E3027DF4C335C11010EA3F" xlink:to="loc_us-gaap_UnrecognizedTaxBenefits_0E1CF283A731F37694E435C11011E6DD" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_IncomeTaxReconciliationForeignIncomeTaxRateDifferential" xlink:label="loc_us-gaap_IncomeTaxReconciliationForeignIncomeTaxRateDifferential_524870F8D09DF1AA123835C11011D0F9" xlink:type="locator" />
    <link:definitionArc order="3" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_TaxCreditCarryforwardLineItems_E178ED6906E3027DF4C335C11010EA3F" xlink:to="loc_us-gaap_IncomeTaxReconciliationForeignIncomeTaxRateDifferential_524870F8D09DF1AA123835C11011D0F9" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_DeferredTaxAssetsForeignTaxStructureChange" xlink:label="loc_cgnx_DeferredTaxAssetsForeignTaxStructureChange_49A1FC930417E785216135C11011FFF8" xlink:type="locator" />
    <link:definitionArc order="4" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_TaxCreditCarryforwardLineItems_E178ED6906E3027DF4C335C11010EA3F" xlink:to="loc_cgnx_DeferredTaxAssetsForeignTaxStructureChange_49A1FC930417E785216135C11011FFF8" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_DeferredTaxLiabilitiesTaxCutsAndJobsActGlobalIntangibleLowTaxIncome" xlink:label="loc_cgnx_DeferredTaxLiabilitiesTaxCutsAndJobsActGlobalIntangibleLowTaxIncome_C989389242780F3DF74D35C11011848F" xlink:type="locator" />
    <link:definitionArc order="5" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_TaxCreditCarryforwardLineItems_E178ED6906E3027DF4C335C11010EA3F" xlink:to="loc_cgnx_DeferredTaxLiabilitiesTaxCutsAndJobsActGlobalIntangibleLowTaxIncome_C989389242780F3DF74D35C11011848F" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesDomestic" xlink:label="loc_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesDomestic_FBE9927AF2F4DB0C938D35C11011E0B5" xlink:type="locator" />
    <link:definitionArc order="6" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_TaxCreditCarryforwardLineItems_E178ED6906E3027DF4C335C11010EA3F" xlink:to="loc_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesDomestic_FBE9927AF2F4DB0C938D35C11011E0B5" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign" xlink:label="loc_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign_C613346B917F61514D2835C11011FB87" xlink:type="locator" />
    <link:definitionArc order="7" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_TaxCreditCarryforwardLineItems_E178ED6906E3027DF4C335C11010EA3F" xlink:to="loc_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign_C613346B917F61514D2835C11011FB87" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_TaxCutsAndJobsActOf2017IncompleteAccountingChangeInTaxRateDeferredTaxAssetProvisionalIncomeTaxExpense" xlink:label="loc_cgnx_TaxCutsAndJobsActOf2017IncompleteAccountingChangeInTaxRateDeferredTaxAssetProvisionalIncomeTaxExpense_E1DF2E9A8E27B23248B935C11012AEA4" xlink:type="locator" />
    <link:definitionArc order="8" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_TaxCreditCarryforwardLineItems_E178ED6906E3027DF4C335C11010EA3F" xlink:to="loc_cgnx_TaxCutsAndJobsActOf2017IncompleteAccountingChangeInTaxRateDeferredTaxAssetProvisionalIncomeTaxExpense_E1DF2E9A8E27B23248B935C11012AEA4" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_TaxCutsAndJobsActOf2017IncompleteAccountingTransitionTaxForAccumulatedForeignEarningsProvisionalIncomeTaxExpense" xlink:label="loc_cgnx_TaxCutsAndJobsActOf2017IncompleteAccountingTransitionTaxForAccumulatedForeignEarningsProvisionalIncomeTaxExpense_E32EAD24457B8936461C35C11012B974" xlink:type="locator" />
    <link:definitionArc order="9" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_TaxCreditCarryforwardLineItems_E178ED6906E3027DF4C335C11010EA3F" xlink:to="loc_cgnx_TaxCutsAndJobsActOf2017IncompleteAccountingTransitionTaxForAccumulatedForeignEarningsProvisionalIncomeTaxExpense_E32EAD24457B8936461C35C11012B974" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_TaxCutsAndJobsActOf2017TransitionTaxForAccumulatedForeignEarningsLiability" xlink:label="loc_cgnx_TaxCutsAndJobsActOf2017TransitionTaxForAccumulatedForeignEarningsLiability_129EEE4E7887DFDC52BE35C11012558B" xlink:type="locator" />
    <link:definitionArc order="10" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_TaxCreditCarryforwardLineItems_E178ED6906E3027DF4C335C11010EA3F" xlink:to="loc_cgnx_TaxCutsAndJobsActOf2017TransitionTaxForAccumulatedForeignEarningsLiability_129EEE4E7887DFDC52BE35C11012558B" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate" xlink:label="loc_us-gaap_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate_B4D312BBA830D52078DC35C11012A638" xlink:type="locator" />
    <link:definitionArc order="11" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_TaxCreditCarryforwardLineItems_E178ED6906E3027DF4C335C11010EA3F" xlink:to="loc_us-gaap_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate_B4D312BBA830D52078DC35C11012A638" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_Cash" xlink:label="loc_us-gaap_Cash_8EDB669CE324C3BBC4C635C11012100B" xlink:type="locator" />
    <link:definitionArc order="12" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_TaxCreditCarryforwardLineItems_E178ED6906E3027DF4C335C11010EA3F" xlink:to="loc_us-gaap_Cash_8EDB669CE324C3BBC4C635C11012100B" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_EffectiveIncomeTaxRateReconciliationForeignIncomeTaxRateDifferential" xlink:label="loc_us-gaap_EffectiveIncomeTaxRateReconciliationForeignIncomeTaxRateDifferential_A6FB1FD093CE79FBD67035C11013B8D2" xlink:type="locator" />
    <link:definitionArc order="13" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_TaxCreditCarryforwardLineItems_E178ED6906E3027DF4C335C11010EA3F" xlink:to="loc_us-gaap_EffectiveIncomeTaxRateReconciliationForeignIncomeTaxRateDifferential_A6FB1FD093CE79FBD67035C11013B8D2" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitAmount" xlink:label="loc_us-gaap_EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitAmount_296CF8ED8433ED9549A335C110137DFA" xlink:type="locator" />
    <link:definitionArc order="14" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_TaxCreditCarryforwardLineItems_E178ED6906E3027DF4C335C11010EA3F" xlink:to="loc_us-gaap_EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitAmount_296CF8ED8433ED9549A335C110137DFA" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitPercent" xlink:label="loc_us-gaap_EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitPercent_F04F5925C615FCC21BB435C1101395E9" xlink:type="locator" />
    <link:definitionArc order="15" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_TaxCreditCarryforwardLineItems_E178ED6906E3027DF4C335C11010EA3F" xlink:to="loc_us-gaap_EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitPercent_F04F5925C615FCC21BB435C1101395E9" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_NetCashProvidedByUsedInOperatingActivities" xlink:label="loc_us-gaap_NetCashProvidedByUsedInOperatingActivities_91B0E09DC5FA4C34507C35C1101378D5" xlink:type="locator" />
    <link:definitionArc order="16" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_TaxCreditCarryforwardLineItems_E178ED6906E3027DF4C335C11010EA3F" xlink:to="loc_us-gaap_NetCashProvidedByUsedInOperatingActivities_91B0E09DC5FA4C34507C35C1101378D5" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_NetCashProvidedByUsedInFinancingActivities" xlink:label="loc_us-gaap_NetCashProvidedByUsedInFinancingActivities_123DCD613AF8FF5E966B35C11013855C" xlink:type="locator" />
    <link:definitionArc order="17" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_TaxCreditCarryforwardLineItems_E178ED6906E3027DF4C335C11010EA3F" xlink:to="loc_us-gaap_NetCashProvidedByUsedInFinancingActivities_123DCD613AF8FF5E966B35C11013855C" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestExpense" xlink:label="loc_us-gaap_UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestExpense_9E0E61E019F5448EC4FA35C11013D579" xlink:type="locator" />
    <link:definitionArc order="18" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_TaxCreditCarryforwardLineItems_E178ED6906E3027DF4C335C11010EA3F" xlink:to="loc_us-gaap_UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestExpense_9E0E61E019F5448EC4FA35C11013D579" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_DeferredTaxLiabilitiesGrossNoncurrent" xlink:label="loc_us-gaap_DeferredTaxLiabilitiesGrossNoncurrent_F716B81D0002A900829E35C110149C25" xlink:type="locator" />
    <link:definitionArc order="19" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_TaxCreditCarryforwardLineItems_E178ED6906E3027DF4C335C11010EA3F" xlink:to="loc_us-gaap_DeferredTaxLiabilitiesGrossNoncurrent_F716B81D0002A900829E35C110149C25" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_LiabilityForUncertainTaxPositionsNoncurrent" xlink:label="loc_us-gaap_LiabilityForUncertainTaxPositionsNoncurrent_657D924CAE7140DC801135C11014AC13" xlink:type="locator" />
    <link:definitionArc order="20" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_TaxCreditCarryforwardLineItems_E178ED6906E3027DF4C335C11010EA3F" xlink:to="loc_us-gaap_LiabilityForUncertainTaxPositionsNoncurrent_657D924CAE7140DC801135C11014AC13" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_Unrecognizedtaxbenefitshownasareductiontononcurrentdeferredtaxassets" xlink:label="loc_cgnx_Unrecognizedtaxbenefitshownasareductiontononcurrentdeferredtaxassets_98191BDF1C36DFB4BC3335C11014CE82" xlink:type="locator" />
    <link:definitionArc order="21" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_TaxCreditCarryforwardLineItems_E178ED6906E3027DF4C335C11010EA3F" xlink:to="loc_cgnx_Unrecognizedtaxbenefitshownasareductiontononcurrentdeferredtaxassets_98191BDF1C36DFB4BC3335C11014CE82" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestAccrued" xlink:label="loc_us-gaap_UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestAccrued_5D0D4292BA79CD1786C835C11014F740" xlink:type="locator" />
    <link:definitionArc order="22" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_TaxCreditCarryforwardLineItems_E178ED6906E3027DF4C335C11010EA3F" xlink:to="loc_us-gaap_UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestAccrued_5D0D4292BA79CD1786C835C11014F740" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_MinimumDecreaseInIncomeTaxExpenseDueToReleaseInReserves" xlink:label="loc_cgnx_MinimumDecreaseInIncomeTaxExpenseDueToReleaseInReserves_7727CEE7064BE4FF154035C11014A7DB" xlink:type="locator" />
    <link:definitionArc order="23" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_TaxCreditCarryforwardLineItems_E178ED6906E3027DF4C335C11010EA3F" xlink:to="loc_cgnx_MinimumDecreaseInIncomeTaxExpenseDueToReleaseInReserves_7727CEE7064BE4FF154035C11014A7DB" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_MaximumDecreaseInIncomeTaxExpenseDueToReleaseInReserves" xlink:label="loc_cgnx_MaximumDecreaseInIncomeTaxExpenseDueToReleaseInReserves_8B7F4EEB6C979194329C35C11014C96C" xlink:type="locator" />
    <link:definitionArc order="24" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_TaxCreditCarryforwardLineItems_E178ED6906E3027DF4C335C11010EA3F" xlink:to="loc_cgnx_MaximumDecreaseInIncomeTaxExpenseDueToReleaseInReserves_8B7F4EEB6C979194329C35C11014C96C" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_DeferredTaxLiabilitiesGrossCurrent" xlink:label="loc_us-gaap_DeferredTaxLiabilitiesGrossCurrent_ACDCB55140F945D72B5B35C1101401CB" xlink:type="locator" />
    <link:definitionArc order="25" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_TaxCreditCarryforwardLineItems_E178ED6906E3027DF4C335C11010EA3F" xlink:to="loc_us-gaap_DeferredTaxLiabilitiesGrossCurrent_ACDCB55140F945D72B5B35C1101401CB" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_DeferredTaxLiabilitiesGoodwillAndIntangibleAssetsIntangibleAssets" xlink:label="loc_us-gaap_DeferredTaxLiabilitiesGoodwillAndIntangibleAssetsIntangibleAssets_0BB05DB38241ECA75F5D35C11015A19D" xlink:type="locator" />
    <link:definitionArc order="26" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_TaxCreditCarryforwardLineItems_E178ED6906E3027DF4C335C11010EA3F" xlink:to="loc_us-gaap_DeferredTaxLiabilitiesGoodwillAndIntangibleAssetsIntangibleAssets_0BB05DB38241ECA75F5D35C11015A19D" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_DeferredTaxAssetsValuationAllowance" xlink:label="loc_us-gaap_DeferredTaxAssetsValuationAllowance_DBF97E6CCEECC8EAF6A635C11015F6A9" xlink:type="locator" />
    <link:definitionArc order="27" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_TaxCreditCarryforwardLineItems_E178ED6906E3027DF4C335C11010EA3F" xlink:to="loc_us-gaap_DeferredTaxAssetsValuationAllowance_DBF97E6CCEECC8EAF6A635C11015F6A9" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_DeferredTaxAssetsTaxCreditCarryforwardsResearch" xlink:label="loc_us-gaap_DeferredTaxAssetsTaxCreditCarryforwardsResearch_E96AEA5CF4D3DA900E1835C110154B09" xlink:type="locator" />
    <link:definitionArc order="28" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_TaxCreditCarryforwardLineItems_E178ED6906E3027DF4C335C11010EA3F" xlink:to="loc_us-gaap_DeferredTaxAssetsTaxCreditCarryforwardsResearch_E96AEA5CF4D3DA900E1835C110154B09" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_IncomeTaxesPaidNet" xlink:label="loc_us-gaap_IncomeTaxesPaidNet_2BB9A7196119FF120D9A35C110150B00" xlink:type="locator" />
    <link:definitionArc order="29" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_TaxCreditCarryforwardLineItems_E178ED6906E3027DF4C335C11010EA3F" xlink:to="loc_us-gaap_IncomeTaxesPaidNet_2BB9A7196119FF120D9A35C110150B00" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_OpenTaxYearStateAuthorities" xlink:label="loc_cgnx_OpenTaxYearStateAuthorities_EEBC39D6F20E62DE056335C11015ECA1" xlink:type="locator" />
    <link:definitionArc order="30" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_TaxCreditCarryforwardLineItems_E178ED6906E3027DF4C335C11010EA3F" xlink:to="loc_cgnx_OpenTaxYearStateAuthorities_EEBC39D6F20E62DE056335C11015ECA1" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_OpentaxyearUnitedStatesInternalRevenueService" xlink:label="loc_cgnx_OpentaxyearUnitedStatesInternalRevenueService_3A2589C9EFBC8D9533B835C1101541F4" xlink:type="locator" />
    <link:definitionArc order="31" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_TaxCreditCarryforwardLineItems_E178ED6906E3027DF4C335C11010EA3F" xlink:to="loc_cgnx_OpentaxyearUnitedStatesInternalRevenueService_3A2589C9EFBC8D9533B835C1101541F4" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_Opentaxyearvarioustaxingauthorities" xlink:label="loc_cgnx_Opentaxyearvarioustaxingauthorities_6143A3AA12438369C2AF35C110168CCF" xlink:type="locator" />
    <link:definitionArc order="32" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_TaxCreditCarryforwardLineItems_E178ED6906E3027DF4C335C11010EA3F" xlink:to="loc_cgnx_Opentaxyearvarioustaxingauthorities_6143A3AA12438369C2AF35C110168CCF" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_TaxYearsCoveredThroughAdvancedPricingAgreement" xlink:label="loc_cgnx_TaxYearsCoveredThroughAdvancedPricingAgreement_E417A7B2F88FC9C091CE35C11016026D" xlink:type="locator" />
    <link:definitionArc order="33" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_TaxCreditCarryforwardLineItems_E178ED6906E3027DF4C335C11010EA3F" xlink:to="loc_cgnx_TaxYearsCoveredThroughAdvancedPricingAgreement_E417A7B2F88FC9C091CE35C11016026D" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_TaxyearsforAPAagreement" xlink:label="loc_cgnx_TaxyearsforAPAagreement_A139F53BD3FB3962235B35C11016E3BB" xlink:type="locator" />
    <link:definitionArc order="34" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_TaxCreditCarryforwardLineItems_E178ED6906E3027DF4C335C11010EA3F" xlink:to="loc_cgnx_TaxyearsforAPAagreement_A139F53BD3FB3962235B35C11016E3BB" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_Stateresearchandexperimentationtaxcarryforwards" xlink:label="loc_cgnx_Stateresearchandexperimentationtaxcarryforwards_23E6846FFB5B75B992EB35C11016618E" xlink:type="locator" />
    <link:definitionArc order="35" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_TaxCreditCarryforwardLineItems_E178ED6906E3027DF4C335C11010EA3F" xlink:to="loc_cgnx_Stateresearchandexperimentationtaxcarryforwards_23E6846FFB5B75B992EB35C11016618E" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_CumulativeEffectOnRetainedEarningsNetOfTax1" xlink:label="loc_us-gaap_CumulativeEffectOnRetainedEarningsNetOfTax1_AE4A057507F7FCCC7A2235C1101657E1" xlink:type="locator" />
    <link:definitionArc order="36" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_TaxCreditCarryforwardLineItems_E178ED6906E3027DF4C335C11010EA3F" xlink:to="loc_us-gaap_CumulativeEffectOnRetainedEarningsNetOfTax1_AE4A057507F7FCCC7A2235C1101657E1" xlink:type="arc" />
  </link:definitionLink>
  <link:definitionLink xlink:role="http://cognex.com/role/TaxesChangesInReserveForIncomeTaxesExcludingInterestAndPenaltiesDetails" xlink:type="extended" />
  <link:definitionLink xlink:role="http://cognex.com/role/TaxesConstituentsOfDeferredTaxAssetsDetails" xlink:type="extended">
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_TaxCreditCarryforwardLineItems" xlink:label="loc_us-gaap_TaxCreditCarryforwardLineItems_A9CF265E8F565BFAE12237125BA2283E" xlink:type="locator" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_TaxCreditCarryforwardTable" xlink:label="loc_us-gaap_TaxCreditCarryforwardTable_CE763EBFA2898DA09F2C37125BA1CDBB" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_TaxCreditCarryforwardLineItems_A9CF265E8F565BFAE12237125BA2283E" xlink:to="loc_us-gaap_TaxCreditCarryforwardTable_CE763EBFA2898DA09F2C37125BA1CDBB" xlink:type="arc" xbrldt:closed="true" xbrldt:contextElement="segment" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ValuationAllowanceByDeferredTaxAssetAxis" xlink:label="loc_us-gaap_ValuationAllowanceByDeferredTaxAssetAxis_D733B65C57B80119811537125BA1C624" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_TaxCreditCarryforwardTable_CE763EBFA2898DA09F2C37125BA1CDBB" xlink:to="loc_us-gaap_ValuationAllowanceByDeferredTaxAssetAxis_D733B65C57B80119811537125BA1C624" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_DeferredTaxAssetDomain" xlink:label="loc_us-gaap_DeferredTaxAssetDomain_052F6BEA565D27E9AC4F37125BA16FCA_default" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_ValuationAllowanceByDeferredTaxAssetAxis_D733B65C57B80119811537125BA1C624" xlink:to="loc_us-gaap_DeferredTaxAssetDomain_052F6BEA565D27E9AC4F37125BA16FCA_default" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_DeferredTaxAssetDomain" xlink:label="loc_us-gaap_DeferredTaxAssetDomain_052F6BEA565D27E9AC4F37125BA16FCA" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_ValuationAllowanceByDeferredTaxAssetAxis_D733B65C57B80119811537125BA1C624" xlink:to="loc_us-gaap_DeferredTaxAssetDomain_052F6BEA565D27E9AC4F37125BA16FCA" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ValuationAllowanceOfDeferredTaxAssetsMember" xlink:label="loc_us-gaap_ValuationAllowanceOfDeferredTaxAssetsMember_051DA0C0D1E21F9AA59137125BA12276" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_DeferredTaxAssetDomain_052F6BEA565D27E9AC4F37125BA16FCA" xlink:to="loc_us-gaap_ValuationAllowanceOfDeferredTaxAssetsMember_051DA0C0D1E21F9AA59137125BA12276" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_DeferredTaxAssetsValuationAllowance" xlink:label="loc_us-gaap_DeferredTaxAssetsValuationAllowance_BE9BA1DEC683CCF3B02537125BA29807" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_TaxCreditCarryforwardLineItems_A9CF265E8F565BFAE12237125BA2283E" xlink:to="loc_us-gaap_DeferredTaxAssetsValuationAllowance_BE9BA1DEC683CCF3B02537125BA29807" xlink:type="arc" />
  </link:definitionLink>
  <link:definitionLink xlink:role="http://cognex.com/role/TaxesConstituentsOfProvisionForIncomeTaxesDetails" xlink:type="extended" />
  <link:definitionLink xlink:role="http://cognex.com/role/TaxesReconciliationOfUnitedStatesFederalStatutoryCorporateTaxRateToCompanysEffectiveTaxRateOrIncomeTaxProvisionDetails" xlink:type="extended" />
  <link:definitionLink xlink:role="http://cognex.com/role/TaxesScheduleOfChangeInAccountingPolicyDetails" xlink:type="extended">
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ChangeInAccountingEstimateLineItems" xlink:label="loc_us-gaap_ChangeInAccountingEstimateLineItems_E456BD4EF24472DA9ADC37125BAFAF41" xlink:type="locator" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ScheduleOfChangeInAccountingEstimateTable" xlink:label="loc_us-gaap_ScheduleOfChangeInAccountingEstimateTable_90142EF4F76E606AFC8837125BADF98B" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_ChangeInAccountingEstimateLineItems_E456BD4EF24472DA9ADC37125BAFAF41" xlink:to="loc_us-gaap_ScheduleOfChangeInAccountingEstimateTable_90142EF4F76E606AFC8837125BADF98B" xlink:type="arc" xbrldt:closed="true" xbrldt:contextElement="segment" />
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2018/elts/srt-2018-01-31.xsd#srt_RestatementAxis" xlink:label="loc_srt_RestatementAxis_98C681E8869A04D8C75B37125BAD110B" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ScheduleOfChangeInAccountingEstimateTable_90142EF4F76E606AFC8837125BADF98B" xlink:to="loc_srt_RestatementAxis_98C681E8869A04D8C75B37125BAD110B" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2018/elts/srt-2018-01-31.xsd#srt_RestatementDomain" xlink:label="loc_srt_RestatementDomain_63B10954B1D0204C383437125BAD7A88_default" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_srt_RestatementAxis_98C681E8869A04D8C75B37125BAD110B" xlink:to="loc_srt_RestatementDomain_63B10954B1D0204C383437125BAD7A88_default" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2018/elts/srt-2018-01-31.xsd#srt_RestatementDomain" xlink:label="loc_srt_RestatementDomain_63B10954B1D0204C383437125BAD7A88" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_srt_RestatementAxis_98C681E8869A04D8C75B37125BAD110B" xlink:to="loc_srt_RestatementDomain_63B10954B1D0204C383437125BAD7A88" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2018/elts/srt-2018-01-31.xsd#srt_ScenarioPreviouslyReportedMember" xlink:label="loc_srt_ScenarioPreviouslyReportedMember_99A9C87B0979D112C37137125BAE0580" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srt_RestatementDomain_63B10954B1D0204C383437125BAD7A88" xlink:to="loc_srt_ScenarioPreviouslyReportedMember_99A9C87B0979D112C37137125BAE0580" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2018/elts/srt-2018-01-31.xsd#srt_RestatementAdjustmentMember" xlink:label="loc_srt_RestatementAdjustmentMember_7CCC65CA90D43277AD2B37125BAE66DD" xlink:type="locator" />
    <link:definitionArc order="2" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srt_RestatementDomain_63B10954B1D0204C383437125BAD7A88" xlink:to="loc_srt_RestatementAdjustmentMember_7CCC65CA90D43277AD2B37125BAE66DD" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ChangeInAccountingEstimateByTypeAxis" xlink:label="loc_us-gaap_ChangeInAccountingEstimateByTypeAxis_26C10C107B5F853F907737125BAE7C72" xlink:type="locator" />
    <link:definitionArc order="2" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ScheduleOfChangeInAccountingEstimateTable_90142EF4F76E606AFC8837125BADF98B" xlink:to="loc_us-gaap_ChangeInAccountingEstimateByTypeAxis_26C10C107B5F853F907737125BAE7C72" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ChangeInAccountingEstimateTypeDomain" xlink:label="loc_us-gaap_ChangeInAccountingEstimateTypeDomain_75376F69C6CA423EA0B137125BAE1ADA_default" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_ChangeInAccountingEstimateByTypeAxis_26C10C107B5F853F907737125BAE7C72" xlink:to="loc_us-gaap_ChangeInAccountingEstimateTypeDomain_75376F69C6CA423EA0B137125BAE1ADA_default" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ChangeInAccountingEstimateTypeDomain" xlink:label="loc_us-gaap_ChangeInAccountingEstimateTypeDomain_75376F69C6CA423EA0B137125BAE1ADA" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_ChangeInAccountingEstimateByTypeAxis_26C10C107B5F853F907737125BAE7C72" xlink:to="loc_us-gaap_ChangeInAccountingEstimateTypeDomain_75376F69C6CA423EA0B137125BAE1ADA" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_ChangeinGlobalIntangibleLowTaxedIncomeMember" xlink:label="loc_cgnx_ChangeinGlobalIntangibleLowTaxedIncomeMember_ECFECF05DC04B2758F7937125BAF09C8" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ChangeInAccountingEstimateTypeDomain_75376F69C6CA423EA0B137125BAE1ADA" xlink:to="loc_cgnx_ChangeinGlobalIntangibleLowTaxedIncomeMember_ECFECF05DC04B2758F7937125BAF09C8" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments" xlink:label="loc_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments_34B2BFAF19A195C5EB0237125BAF8C1C" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ChangeInAccountingEstimateLineItems_E456BD4EF24472DA9ADC37125BAFAF41" xlink:to="loc_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments_34B2BFAF19A195C5EB0237125BAF8C1C" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_IncomeTaxExpenseBenefit" xlink:label="loc_us-gaap_IncomeTaxExpenseBenefit_EFF49BFF676ADBCAA87037125BB0BAE9" xlink:type="locator" />
    <link:definitionArc order="2" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ChangeInAccountingEstimateLineItems_E456BD4EF24472DA9ADC37125BAFAF41" xlink:to="loc_us-gaap_IncomeTaxExpenseBenefit_EFF49BFF676ADBCAA87037125BB0BAE9" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_NetIncomeLoss" xlink:label="loc_us-gaap_NetIncomeLoss_17ED044DBEB4A7DCFBEA37125BB02D38" xlink:type="locator" />
    <link:definitionArc order="3" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ChangeInAccountingEstimateLineItems_E456BD4EF24472DA9ADC37125BAFAF41" xlink:to="loc_us-gaap_NetIncomeLoss_17ED044DBEB4A7DCFBEA37125BB02D38" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_EarningsPerShareBasic" xlink:label="loc_us-gaap_EarningsPerShareBasic_F2118810101F5F7B4E4537125BB073F2" xlink:type="locator" />
    <link:definitionArc order="4" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ChangeInAccountingEstimateLineItems_E456BD4EF24472DA9ADC37125BAFAF41" xlink:to="loc_us-gaap_EarningsPerShareBasic_F2118810101F5F7B4E4537125BB073F2" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_EarningsPerShareDiluted" xlink:label="loc_us-gaap_EarningsPerShareDiluted_B1603429C3DEC2757AB037125BB02D8A" xlink:type="locator" />
    <link:definitionArc order="5" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ChangeInAccountingEstimateLineItems_E456BD4EF24472DA9ADC37125BAFAF41" xlink:to="loc_us-gaap_EarningsPerShareDiluted_B1603429C3DEC2757AB037125BB02D8A" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_DeferredTaxAssetsNetNoncurrent" xlink:label="loc_us-gaap_DeferredTaxAssetsNetNoncurrent_E76902B2FBFB8D0C732737125BB07959" xlink:type="locator" />
    <link:definitionArc order="6" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ChangeInAccountingEstimateLineItems_E456BD4EF24472DA9ADC37125BAFAF41" xlink:to="loc_us-gaap_DeferredTaxAssetsNetNoncurrent_E76902B2FBFB8D0C732737125BB07959" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_DeferredIncomeTaxLiabilities" xlink:label="loc_us-gaap_DeferredIncomeTaxLiabilities_57B30DADDD7FC47A6AB737125BB0BA84" xlink:type="locator" />
    <link:definitionArc order="7" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ChangeInAccountingEstimateLineItems_E456BD4EF24472DA9ADC37125BAFAF41" xlink:to="loc_us-gaap_DeferredIncomeTaxLiabilities_57B30DADDD7FC47A6AB737125BB0BA84" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_RetainedEarningsAccumulatedDeficit" xlink:label="loc_us-gaap_RetainedEarningsAccumulatedDeficit_49DEDAB501C688EB2A6E37125BB0DA3E" xlink:type="locator" />
    <link:definitionArc order="8" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ChangeInAccountingEstimateLineItems_E456BD4EF24472DA9ADC37125BAFAF41" xlink:to="loc_us-gaap_RetainedEarningsAccumulatedDeficit_49DEDAB501C688EB2A6E37125BB0DA3E" xlink:type="arc" />
  </link:definitionLink>
  <link:definitionLink xlink:role="http://cognex.com/role/TaxesTables" xlink:type="extended" />
  <link:definitionLink xlink:role="http://cognex.com/role/WeightedAverageShares" xlink:type="extended" />
  <link:definitionLink xlink:role="http://cognex.com/role/WeightedAverageSharesAdditionalInformationDetail" xlink:type="extended">
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareLineItems" xlink:label="loc_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareLineItems_2365C2B5474C435CBB1B173A46C9394F" xlink:type="locator" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTable" xlink:label="loc_us-gaap_ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTable_664379F72286BC59B94C173A46C78C2C" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareLineItems_2365C2B5474C435CBB1B173A46C9394F" xlink:to="loc_us-gaap_ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTable_664379F72286BC59B94C173A46C78C2C" xlink:type="arc" xbrldt:closed="true" xbrldt:contextElement="segment" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis" xlink:label="loc_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis_A0274ED55393A031719C173A7ED34A49" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTable_664379F72286BC59B94C173A46C78C2C" xlink:to="loc_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis_A0274ED55393A031719C173A7ED34A49" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_AntidilutiveSecuritiesNameDomain" xlink:label="loc_us-gaap_AntidilutiveSecuritiesNameDomain_76DC137AC38B8B4AE686173A7EE5057D_default" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis_A0274ED55393A031719C173A7ED34A49" xlink:to="loc_us-gaap_AntidilutiveSecuritiesNameDomain_76DC137AC38B8B4AE686173A7EE5057D_default" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_AntidilutiveSecuritiesNameDomain" xlink:label="loc_us-gaap_AntidilutiveSecuritiesNameDomain_76DC137AC38B8B4AE686173A7EE5057D" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis_A0274ED55393A031719C173A7ED34A49" xlink:to="loc_us-gaap_AntidilutiveSecuritiesNameDomain_76DC137AC38B8B4AE686173A7EE5057D" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_EmployeeStockOptionMember" xlink:label="loc_us-gaap_EmployeeStockOptionMember_F1D9B9C1C486C42AF61F173C6153EF38" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_AntidilutiveSecuritiesNameDomain_76DC137AC38B8B4AE686173A7EE5057D" xlink:to="loc_us-gaap_EmployeeStockOptionMember_F1D9B9C1C486C42AF61F173C6153EF38" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_RestrictedStockMember" xlink:label="loc_us-gaap_RestrictedStockMember_3A51C80659270E42206E173C0050B744" xlink:type="locator" />
    <link:definitionArc order="2" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_AntidilutiveSecuritiesNameDomain_76DC137AC38B8B4AE686173A7EE5057D" xlink:to="loc_us-gaap_RestrictedStockMember_3A51C80659270E42206E173C0050B744" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount" xlink:label="loc_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount_85794EAB81C3B5A00104170C9178DABA" xlink:type="locator" />
    <link:definitionArc order="1" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareLineItems_2365C2B5474C435CBB1B173A46C9394F" xlink:to="loc_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount_85794EAB81C3B5A00104170C9178DABA" xlink:type="arc" />
  </link:definitionLink>
  <link:definitionLink xlink:role="http://cognex.com/role/WeightedAverageSharesCalculationOfWeightedAverageSharesDetail" xlink:type="extended" />
  <link:definitionLink xlink:role="http://cognex.com/role/WeightedAverageSharesTables" xlink:type="extended" />
</link:linkbase>
</XBRL>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EX-101.LAB
<SEQUENCE>14
<FILENAME>cgnx-20191231_lab.xml
<DESCRIPTION>XBRL TAXONOMY EXTENSION LABEL LINKBASE DOCUMENT
<TEXT>
<XBRL>
<?xml version="1.0" encoding="US-ASCII"?>
<!--XBRL Document Created with Wdesk from Workiva-->
<!-- -->
<link:linkbase xsi:schemaLocation="http://www.xbrl.org/2003/linkbase http://www.xbrl.org/2003/xbrl-linkbase-2003-12-31.xsd" 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">
  <link:roleRef roleURI="http://www.xbrl.org/2009/role/negatedPeriodStartLabel" xlink:href="http://www.xbrl.org/lrr/role/negated-2009-12-16.xsd#negatedPeriodStartLabel" xlink:type="simple" />
  <link:roleRef roleURI="http://www.xbrl.org/2009/role/netLabel" xlink:href="http://www.xbrl.org/lrr/role/net-2009-12-16.xsd#netLabel" xlink:type="simple" />
  <link:roleRef roleURI="http://www.xbrl.org/2009/role/negatedNetLabel" xlink:href="http://www.xbrl.org/lrr/role/negated-2009-12-16.xsd#negatedNetLabel" xlink:type="simple" />
  <link:roleRef roleURI="http://www.xbrl.org/2009/role/negatedTerseLabel" xlink:href="http://www.xbrl.org/lrr/role/negated-2009-12-16.xsd#negatedTerseLabel" xlink:type="simple" />
  <link:roleRef roleURI="http://www.xbrl.org/2009/role/negatedPeriodEndLabel" xlink:href="http://www.xbrl.org/lrr/role/negated-2009-12-16.xsd#negatedPeriodEndLabel" xlink:type="simple" />
  <link:roleRef roleURI="http://www.xbrl.org/2009/role/negatedLabel" xlink:href="http://www.xbrl.org/lrr/role/negated-2009-12-16.xsd#negatedLabel" xlink:type="simple" />
  <link:roleRef roleURI="http://www.xbrl.org/2009/role/negatedTotalLabel" xlink:href="http://www.xbrl.org/lrr/role/negated-2009-12-16.xsd#negatedTotalLabel" xlink:type="simple" />
  <link:labelLink xlink:role="http://www.xbrl.org/2003/role/link" xlink:type="extended">
    <link:label id="lab_us-gaap_StatementOfStockholdersEquityAbstract_CC28C56408BBF13ECF208095E8986259_label_en-US" xlink:label="lab_us-gaap_StatementOfStockholdersEquityAbstract_CC28C56408BBF13ECF208095E8986259" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Statement of Stockholders' Equity [Abstract]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_StatementOfStockholdersEquityAbstract" xlink:label="loc_us-gaap_StatementOfStockholdersEquityAbstract_CC28C56408BBF13ECF208095E8986259" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_StatementOfStockholdersEquityAbstract_CC28C56408BBF13ECF208095E8986259" xlink:to="lab_us-gaap_StatementOfStockholdersEquityAbstract_CC28C56408BBF13ECF208095E8986259" xlink:type="arc" />
    <link:label id="lab_us-gaap_StockholdersEquityNoteStockSplitConversionRatio1_819E570429ABCE2C06008095E898B67F_terseLabel_en-US" xlink:label="lab_us-gaap_StockholdersEquityNoteStockSplitConversionRatio1_819E570429ABCE2C06008095E898B67F" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Stock split</link:label>
    <link:label id="lab_us-gaap_StockholdersEquityNoteStockSplitConversionRatio1_819E570429ABCE2C06008095E898B67F_label_en-US" xlink:label="lab_us-gaap_StockholdersEquityNoteStockSplitConversionRatio1_819E570429ABCE2C06008095E898B67F" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Stockholders' Equity Note, Stock Split, Conversion Ratio</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_StockholdersEquityNoteStockSplitConversionRatio1" xlink:label="loc_us-gaap_StockholdersEquityNoteStockSplitConversionRatio1_819E570429ABCE2C06008095E898B67F" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_StockholdersEquityNoteStockSplitConversionRatio1_819E570429ABCE2C06008095E898B67F" xlink:to="lab_us-gaap_StockholdersEquityNoteStockSplitConversionRatio1_819E570429ABCE2C06008095E898B67F" xlink:type="arc" />
    <link:label id="lab_us-gaap_OtherComprehensiveIncomeLossDerivativesQualifyingAsHedgesTax_4CB6D746B2E36D3727A88095E898E144_verboseLabel_en-US" xlink:label="lab_us-gaap_OtherComprehensiveIncomeLossDerivativesQualifyingAsHedgesTax_4CB6D746B2E36D3727A88095E898E144" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xml:lang="en-US">Tax effect of unrealized gain on derivative instruments</link:label>
    <link:label id="lab_us-gaap_OtherComprehensiveIncomeLossDerivativesQualifyingAsHedgesTax_4CB6D746B2E36D3727A88095E898E144_label_en-US" xlink:label="lab_us-gaap_OtherComprehensiveIncomeLossDerivativesQualifyingAsHedgesTax_4CB6D746B2E36D3727A88095E898E144" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Other Comprehensive Income (Loss), Derivatives Qualifying as Hedges, Tax</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_OtherComprehensiveIncomeLossDerivativesQualifyingAsHedgesTax" xlink:label="loc_us-gaap_OtherComprehensiveIncomeLossDerivativesQualifyingAsHedgesTax_4CB6D746B2E36D3727A88095E898E144" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_OtherComprehensiveIncomeLossDerivativesQualifyingAsHedgesTax_4CB6D746B2E36D3727A88095E898E144" xlink:to="lab_us-gaap_OtherComprehensiveIncomeLossDerivativesQualifyingAsHedgesTax_4CB6D746B2E36D3727A88095E898E144" xlink:type="arc" />
    <link:label id="lab_us-gaap_OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodTax_0A9C37E54C3225C2E7438095E898E9D6_verboseLabel_en-US" xlink:label="lab_us-gaap_OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodTax_0A9C37E54C3225C2E7438095E898E9D6" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xml:lang="en-US">Tax effect of unrealized gain on available-for-sale investments</link:label>
    <link:label id="lab_us-gaap_OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodTax_0A9C37E54C3225C2E7438095E898E9D6_label_en-US" xlink:label="lab_us-gaap_OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodTax_0A9C37E54C3225C2E7438095E898E9D6" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Other Comprehensive Income (Loss), Securities, Available-for-Sale, Unrealized Holding Gain (Loss) Arising During Period, Tax</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodTax" xlink:label="loc_us-gaap_OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodTax_0A9C37E54C3225C2E7438095E898E9D6" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodTax_0A9C37E54C3225C2E7438095E898E9D6" xlink:to="lab_us-gaap_OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodTax_0A9C37E54C3225C2E7438095E898E9D6" xlink:type="arc" />
    <link:label id="lab_us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTranslationAdjustmentTax_36F167458CD920D722F68095E898C3BC_terseLabel_en-US" xlink:label="lab_us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTranslationAdjustmentTax_36F167458CD920D722F68095E898C3BC" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Tax benefit of foreign currency translation adjustment</link:label>
    <link:label id="lab_us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTranslationAdjustmentTax_36F167458CD920D722F68095E898C3BC_label_en-US" xlink:label="lab_us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTranslationAdjustmentTax_36F167458CD920D722F68095E898C3BC" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Other Comprehensive Income (Loss), Foreign Currency Translation Adjustment, Tax</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTranslationAdjustmentTax" xlink:label="loc_us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTranslationAdjustmentTax_36F167458CD920D722F68095E898C3BC" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTranslationAdjustmentTax_36F167458CD920D722F68095E898C3BC" xlink:to="lab_us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTranslationAdjustmentTax_36F167458CD920D722F68095E898C3BC" xlink:type="arc" />
    <link:label id="lab_us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract_C820C734DD220F22B56430EAB79080CA_label_en-US" xlink:label="lab_us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract_C820C734DD220F22B56430EAB79080CA" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Goodwill and Intangible Assets Disclosure [Abstract]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract" xlink:label="loc_us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract_C820C734DD220F22B56430EAB79080CA" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract_C820C734DD220F22B56430EAB79080CA" xlink:to="lab_us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract_C820C734DD220F22B56430EAB79080CA" xlink:type="arc" />
    <link:label id="lab_us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable_8789136AA478A805CD4030EAB7916726_terseLabel_en-US" xlink:label="lab_us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable_8789136AA478A805CD4030EAB7916726" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Schedule of Finite-Lived Intangible Assets [Table]</link:label>
    <link:label id="lab_us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable_8789136AA478A805CD4030EAB7916726_label_en-US" xlink:label="lab_us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable_8789136AA478A805CD4030EAB7916726" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Schedule of Finite-Lived Intangible Assets [Table]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable" xlink:label="loc_us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable_8789136AA478A805CD4030EAB7916726" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable_8789136AA478A805CD4030EAB7916726" xlink:to="lab_us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable_8789136AA478A805CD4030EAB7916726" xlink:type="arc" />
    <link:label id="lab_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_C9D18B4724E1DD1B44F630EAB7919448_terseLabel_en-US" xlink:label="lab_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_C9D18B4724E1DD1B44F630EAB7919448" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Finite-Lived Intangible Assets by Major Class [Axis]</link:label>
    <link:label id="lab_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_C9D18B4724E1DD1B44F630EAB7919448_label_en-US" xlink:label="lab_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_C9D18B4724E1DD1B44F630EAB7919448" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Finite-Lived Intangible Assets by Major Class [Axis]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_C9D18B4724E1DD1B44F630EAB7919448" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_C9D18B4724E1DD1B44F630EAB7919448" xlink:to="lab_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_C9D18B4724E1DD1B44F630EAB7919448" xlink:type="arc" />
    <link:label id="lab_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_753339B7EB5A3F8D485630EAB7918175_terseLabel_en-US" xlink:label="lab_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_753339B7EB5A3F8D485630EAB7918175" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Finite-Lived Intangible Assets, Major Class Name [Domain]</link:label>
    <link:label id="lab_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_753339B7EB5A3F8D485630EAB7918175_label_en-US" xlink:label="lab_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_753339B7EB5A3F8D485630EAB7918175" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Finite-Lived Intangible Assets, Major Class Name [Domain]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_753339B7EB5A3F8D485630EAB7918175" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_753339B7EB5A3F8D485630EAB7918175" xlink:to="lab_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_753339B7EB5A3F8D485630EAB7918175" xlink:type="arc" />
    <link:label id="lab_us-gaap_DistributionRightsMember_86DC26C9427B7A1D506B30EAB791C222_terseLabel_en-US" xlink:label="lab_us-gaap_DistributionRightsMember_86DC26C9427B7A1D506B30EAB791C222" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Distribution Networks [Member]</link:label>
    <link:label id="lab_us-gaap_DistributionRightsMember_86DC26C9427B7A1D506B30EAB791C222_label_en-US" xlink:label="lab_us-gaap_DistributionRightsMember_86DC26C9427B7A1D506B30EAB791C222" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Distribution Rights [Member]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_DistributionRightsMember" xlink:label="loc_us-gaap_DistributionRightsMember_86DC26C9427B7A1D506B30EAB791C222" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DistributionRightsMember_86DC26C9427B7A1D506B30EAB791C222" xlink:to="lab_us-gaap_DistributionRightsMember_86DC26C9427B7A1D506B30EAB791C222" xlink:type="arc" />
    <link:label id="lab_us-gaap_DevelopedTechnologyRightsMember_DFE4E36EA122880CF81030EAB792AAF8_terseLabel_en-US" xlink:label="lab_us-gaap_DevelopedTechnologyRightsMember_DFE4E36EA122880CF81030EAB792AAF8" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Completed Technologies [Member]</link:label>
    <link:label id="lab_us-gaap_DevelopedTechnologyRightsMember_DFE4E36EA122880CF81030EAB792AAF8_label_en-US" xlink:label="lab_us-gaap_DevelopedTechnologyRightsMember_DFE4E36EA122880CF81030EAB792AAF8" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Developed Technology Rights [Member]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_DevelopedTechnologyRightsMember" xlink:label="loc_us-gaap_DevelopedTechnologyRightsMember_DFE4E36EA122880CF81030EAB792AAF8" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DevelopedTechnologyRightsMember_DFE4E36EA122880CF81030EAB792AAF8" xlink:to="lab_us-gaap_DevelopedTechnologyRightsMember_DFE4E36EA122880CF81030EAB792AAF8" xlink:type="arc" />
    <link:label id="lab_cgnx_CustomerContractsAndRelationshipsMember_D6F917A015685B619AE630EAB792A350_verboseLabel_en-US" xlink:label="lab_cgnx_CustomerContractsAndRelationshipsMember_D6F917A015685B619AE630EAB792A350" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xml:lang="en-US">Customer Relationships [Member]</link:label>
    <link:label id="lab_cgnx_CustomerContractsAndRelationshipsMember_D6F917A015685B619AE630EAB792A350_label_en-US" xlink:label="lab_cgnx_CustomerContractsAndRelationshipsMember_D6F917A015685B619AE630EAB792A350" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Customer Contracts And Relationships [Member]</link:label>
    <link:label id="lab_cgnx_CustomerContractsAndRelationshipsMember_D6F917A015685B619AE630EAB792A350_documentation_en-US" xlink:label="lab_cgnx_CustomerContractsAndRelationshipsMember_D6F917A015685B619AE630EAB792A350" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Customer Contracts And Relationships [Member]</link:label>
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_CustomerContractsAndRelationshipsMember" xlink:label="loc_cgnx_CustomerContractsAndRelationshipsMember_D6F917A015685B619AE630EAB792A350" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_CustomerContractsAndRelationshipsMember_D6F917A015685B619AE630EAB792A350" xlink:to="lab_cgnx_CustomerContractsAndRelationshipsMember_D6F917A015685B619AE630EAB792A350" xlink:type="arc" />
    <link:label id="lab_us-gaap_InProcessResearchAndDevelopmentMember_130747FF35BC14A973B630EAB792DCA8_terseLabel_en-US" xlink:label="lab_us-gaap_InProcessResearchAndDevelopmentMember_130747FF35BC14A973B630EAB792DCA8" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">In Process Research and Development [Member]</link:label>
    <link:label id="lab_us-gaap_InProcessResearchAndDevelopmentMember_130747FF35BC14A973B630EAB792DCA8_label_en-US" xlink:label="lab_us-gaap_InProcessResearchAndDevelopmentMember_130747FF35BC14A973B630EAB792DCA8" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">In Process Research and Development [Member]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_InProcessResearchAndDevelopmentMember" xlink:label="loc_us-gaap_InProcessResearchAndDevelopmentMember_130747FF35BC14A973B630EAB792DCA8" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_InProcessResearchAndDevelopmentMember_130747FF35BC14A973B630EAB792DCA8" xlink:to="lab_us-gaap_InProcessResearchAndDevelopmentMember_130747FF35BC14A973B630EAB792DCA8" xlink:type="arc" />
    <link:label id="lab_us-gaap_NoncompeteAgreementsMember_E7524B4541979F07C7BF30EAB79241D6_terseLabel_en-US" xlink:label="lab_us-gaap_NoncompeteAgreementsMember_E7524B4541979F07C7BF30EAB79241D6" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Non-compete agreements</link:label>
    <link:label id="lab_us-gaap_NoncompeteAgreementsMember_E7524B4541979F07C7BF30EAB79241D6_label_en-US" xlink:label="lab_us-gaap_NoncompeteAgreementsMember_E7524B4541979F07C7BF30EAB79241D6" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Noncompete Agreements [Member]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_NoncompeteAgreementsMember" xlink:label="loc_us-gaap_NoncompeteAgreementsMember_E7524B4541979F07C7BF30EAB79241D6" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_NoncompeteAgreementsMember_E7524B4541979F07C7BF30EAB79241D6" xlink:to="lab_us-gaap_NoncompeteAgreementsMember_E7524B4541979F07C7BF30EAB79241D6" xlink:type="arc" />
    <link:label id="lab_us-gaap_TrademarksMember_9E00504A4B85E31B18F130EAB793743F_terseLabel_en-US" xlink:label="lab_us-gaap_TrademarksMember_9E00504A4B85E31B18F130EAB793743F" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Trademarks [Member]</link:label>
    <link:label id="lab_us-gaap_TrademarksMember_9E00504A4B85E31B18F130EAB793743F_label_en-US" xlink:label="lab_us-gaap_TrademarksMember_9E00504A4B85E31B18F130EAB793743F" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Trademarks [Member]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_TrademarksMember" xlink:label="loc_us-gaap_TrademarksMember_9E00504A4B85E31B18F130EAB793743F" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_TrademarksMember_9E00504A4B85E31B18F130EAB793743F" xlink:to="lab_us-gaap_TrademarksMember_9E00504A4B85E31B18F130EAB793743F" xlink:type="arc" />
    <link:label id="lab_us-gaap_OtherIntangibleAssetsMember_52BE84243227E6BB1E0830EAB7933589_terseLabel_en-US" xlink:label="lab_us-gaap_OtherIntangibleAssetsMember_52BE84243227E6BB1E0830EAB7933589" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Non-compete Agreements [Member]</link:label>
    <link:label id="lab_us-gaap_OtherIntangibleAssetsMember_52BE84243227E6BB1E0830EAB7933589_label_en-US" xlink:label="lab_us-gaap_OtherIntangibleAssetsMember_52BE84243227E6BB1E0830EAB7933589" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Other Intangible Assets [Member]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_OtherIntangibleAssetsMember" xlink:label="loc_us-gaap_OtherIntangibleAssetsMember_52BE84243227E6BB1E0830EAB7933589" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_OtherIntangibleAssetsMember_52BE84243227E6BB1E0830EAB7933589" xlink:to="lab_us-gaap_OtherIntangibleAssetsMember_52BE84243227E6BB1E0830EAB7933589" xlink:type="arc" />
    <link:label id="lab_us-gaap_FiniteLivedIntangibleAssetsLineItems_677F78B3DAEEA3C52CBE30EAB793BB3A_terseLabel_en-US" xlink:label="lab_us-gaap_FiniteLivedIntangibleAssetsLineItems_677F78B3DAEEA3C52CBE30EAB793BB3A" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Finite-Lived Intangible Assets [Line Items]</link:label>
    <link:label id="lab_us-gaap_FiniteLivedIntangibleAssetsLineItems_677F78B3DAEEA3C52CBE30EAB793BB3A_label_en-US" xlink:label="lab_us-gaap_FiniteLivedIntangibleAssetsLineItems_677F78B3DAEEA3C52CBE30EAB793BB3A" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Finite-Lived Intangible Assets [Line Items]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsLineItems" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsLineItems_677F78B3DAEEA3C52CBE30EAB793BB3A" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsLineItems_677F78B3DAEEA3C52CBE30EAB793BB3A" xlink:to="lab_us-gaap_FiniteLivedIntangibleAssetsLineItems_677F78B3DAEEA3C52CBE30EAB793BB3A" xlink:type="arc" />
    <link:label id="lab_us-gaap_FiniteLivedIntangibleAssetsGross_A2D239A5708A62A0549130EAB793D9BF_terseLabel_en-US" xlink:label="lab_us-gaap_FiniteLivedIntangibleAssetsGross_A2D239A5708A62A0549130EAB793D9BF" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Gross Carrying Value</link:label>
    <link:label id="lab_us-gaap_FiniteLivedIntangibleAssetsGross_A2D239A5708A62A0549130EAB793D9BF_label_en-US" xlink:label="lab_us-gaap_FiniteLivedIntangibleAssetsGross_A2D239A5708A62A0549130EAB793D9BF" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Finite-Lived Intangible Assets, Gross</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsGross" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsGross_A2D239A5708A62A0549130EAB793D9BF" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsGross_A2D239A5708A62A0549130EAB793D9BF" xlink:to="lab_us-gaap_FiniteLivedIntangibleAssetsGross_A2D239A5708A62A0549130EAB793D9BF" xlink:type="arc" />
    <link:label id="lab_us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization_12BB2EF3CF749AADAA8330EAB79395E2_terseLabel_en-US" xlink:label="lab_us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization_12BB2EF3CF749AADAA8330EAB79395E2" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Accumulated Amortization</link:label>
    <link:label id="lab_us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization_12BB2EF3CF749AADAA8330EAB79395E2_label_en-US" xlink:label="lab_us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization_12BB2EF3CF749AADAA8330EAB79395E2" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Finite-Lived Intangible Assets, Accumulated Amortization</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization_12BB2EF3CF749AADAA8330EAB79395E2" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization_12BB2EF3CF749AADAA8330EAB79395E2" xlink:to="lab_us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization_12BB2EF3CF749AADAA8330EAB79395E2" xlink:type="arc" />
    <link:label id="lab_us-gaap_IntangibleAssetsNetIncludingGoodwill_109F1B8B8ECAB110495F30EABAF40E7A_terseLabel_en-US" xlink:label="lab_us-gaap_IntangibleAssetsNetIncludingGoodwill_109F1B8B8ECAB110495F30EABAF40E7A" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Intangible Assets, Net (Including Goodwill)</link:label>
    <link:label id="lab_us-gaap_IntangibleAssetsNetIncludingGoodwill_109F1B8B8ECAB110495F30EABAF40E7A_label_en-US" xlink:label="lab_us-gaap_IntangibleAssetsNetIncludingGoodwill_109F1B8B8ECAB110495F30EABAF40E7A" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Intangible Assets, Net (Including Goodwill)</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_IntangibleAssetsNetIncludingGoodwill" xlink:label="loc_us-gaap_IntangibleAssetsNetIncludingGoodwill_109F1B8B8ECAB110495F30EABAF40E7A" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_IntangibleAssetsNetIncludingGoodwill_109F1B8B8ECAB110495F30EABAF40E7A" xlink:to="lab_us-gaap_IntangibleAssetsNetIncludingGoodwill_109F1B8B8ECAB110495F30EABAF40E7A" xlink:type="arc" />
    <link:label id="lab_us-gaap_FiniteLivedIntangibleAssetsNet_0BB43CFA93571E4C618A30EAB7933A2E_totalLabel_en-US" xlink:label="lab_us-gaap_FiniteLivedIntangibleAssetsNet_0BB43CFA93571E4C618A30EAB7933A2E" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xml:lang="en-US">Net Carrying Value</link:label>
    <link:label id="lab_us-gaap_FiniteLivedIntangibleAssetsNet_0BB43CFA93571E4C618A30EAB7933A2E_label_en-US" xlink:label="lab_us-gaap_FiniteLivedIntangibleAssetsNet_0BB43CFA93571E4C618A30EAB7933A2E" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Finite-Lived Intangible Assets, Net</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsNet" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsNet_0BB43CFA93571E4C618A30EAB7933A2E" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsNet_0BB43CFA93571E4C618A30EAB7933A2E" xlink:to="lab_us-gaap_FiniteLivedIntangibleAssetsNet_0BB43CFA93571E4C618A30EAB7933A2E" xlink:type="arc" />
    <link:label id="lab_us-gaap_PayablesAndAccrualsAbstract_7A27F0BD395D6D6A771CAB969FEEE41E_label_en-US" xlink:label="lab_us-gaap_PayablesAndAccrualsAbstract_7A27F0BD395D6D6A771CAB969FEEE41E" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Payables and Accruals [Abstract]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_PayablesAndAccrualsAbstract" xlink:label="loc_us-gaap_PayablesAndAccrualsAbstract_7A27F0BD395D6D6A771CAB969FEEE41E" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_PayablesAndAccrualsAbstract_7A27F0BD395D6D6A771CAB969FEEE41E" xlink:to="lab_us-gaap_PayablesAndAccrualsAbstract_7A27F0BD395D6D6A771CAB969FEEE41E" xlink:type="arc" />
    <link:label id="lab_us-gaap_AccruedLiabilitiesCurrentAbstract_AD65C521129A0FF27046AB969FF7619A_terseLabel_en-US" xlink:label="lab_us-gaap_AccruedLiabilitiesCurrentAbstract_AD65C521129A0FF27046AB969FF7619A" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Constituents of accrued expenses</link:label>
    <link:label id="lab_us-gaap_AccruedLiabilitiesCurrentAbstract_AD65C521129A0FF27046AB969FF7619A_label_en-US" xlink:label="lab_us-gaap_AccruedLiabilitiesCurrentAbstract_AD65C521129A0FF27046AB969FF7619A" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Accrued Liabilities, Current [Abstract]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_AccruedLiabilitiesCurrentAbstract" xlink:label="loc_us-gaap_AccruedLiabilitiesCurrentAbstract_AD65C521129A0FF27046AB969FF7619A" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AccruedLiabilitiesCurrentAbstract_AD65C521129A0FF27046AB969FF7619A" xlink:to="lab_us-gaap_AccruedLiabilitiesCurrentAbstract_AD65C521129A0FF27046AB969FF7619A" xlink:type="arc" />
    <link:label id="lab_us-gaap_AccruedSalariesCurrent_3BBECD4A7DFA7BEA5BEFAB969FFBD91F_terseLabel_en-US" xlink:label="lab_us-gaap_AccruedSalariesCurrent_3BBECD4A7DFA7BEA5BEFAB969FFBD91F" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Salaries, commissions, and payroll taxes</link:label>
    <link:label id="lab_us-gaap_AccruedSalariesCurrent_3BBECD4A7DFA7BEA5BEFAB969FFBD91F_label_en-US" xlink:label="lab_us-gaap_AccruedSalariesCurrent_3BBECD4A7DFA7BEA5BEFAB969FFBD91F" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Accrued Salaries, Current</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_AccruedSalariesCurrent" xlink:label="loc_us-gaap_AccruedSalariesCurrent_3BBECD4A7DFA7BEA5BEFAB969FFBD91F" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AccruedSalariesCurrent_3BBECD4A7DFA7BEA5BEFAB969FFBD91F" xlink:to="lab_us-gaap_AccruedSalariesCurrent_3BBECD4A7DFA7BEA5BEFAB969FFBD91F" xlink:type="arc" />
    <link:label id="lab_us-gaap_AccruedBonusesCurrent_1860A18A49581A1B4A40AB96A0060C33_terseLabel_en-US" xlink:label="lab_us-gaap_AccruedBonusesCurrent_1860A18A49581A1B4A40AB96A0060C33" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Company bonuses</link:label>
    <link:label id="lab_us-gaap_AccruedBonusesCurrent_1860A18A49581A1B4A40AB96A0060C33_label_en-US" xlink:label="lab_us-gaap_AccruedBonusesCurrent_1860A18A49581A1B4A40AB96A0060C33" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Accrued Bonuses, Current</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_AccruedBonusesCurrent" xlink:label="loc_us-gaap_AccruedBonusesCurrent_1860A18A49581A1B4A40AB96A0060C33" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AccruedBonusesCurrent_1860A18A49581A1B4A40AB96A0060C33" xlink:to="lab_us-gaap_AccruedBonusesCurrent_1860A18A49581A1B4A40AB96A0060C33" xlink:type="arc" />
    <link:label id="lab_us-gaap_AccruedVacationCurrent_CA3EE0C9DF533684E216AB96A0063ECB_terseLabel_en-US" xlink:label="lab_us-gaap_AccruedVacationCurrent_CA3EE0C9DF533684E216AB96A0063ECB" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Vacation</link:label>
    <link:label id="lab_us-gaap_AccruedVacationCurrent_CA3EE0C9DF533684E216AB96A0063ECB_label_en-US" xlink:label="lab_us-gaap_AccruedVacationCurrent_CA3EE0C9DF533684E216AB96A0063ECB" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Accrued Vacation, Current</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_AccruedVacationCurrent" xlink:label="loc_us-gaap_AccruedVacationCurrent_CA3EE0C9DF533684E216AB96A0063ECB" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AccruedVacationCurrent_CA3EE0C9DF533684E216AB96A0063ECB" xlink:to="lab_us-gaap_AccruedVacationCurrent_CA3EE0C9DF533684E216AB96A0063ECB" xlink:type="arc" />
    <link:label id="lab_cgnx_RetirementAllowance_C0BA574861FEB63FE4B1AB96A0064FBC_terseLabel_en-US" xlink:label="lab_cgnx_RetirementAllowance_C0BA574861FEB63FE4B1AB96A0064FBC" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Foreign retirement obligations</link:label>
    <link:label id="lab_cgnx_RetirementAllowance_C0BA574861FEB63FE4B1AB96A0064FBC_label_en-US" xlink:label="lab_cgnx_RetirementAllowance_C0BA574861FEB63FE4B1AB96A0064FBC" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Retirement Allowance</link:label>
    <link:label id="lab_cgnx_RetirementAllowance_C0BA574861FEB63FE4B1AB96A0064FBC_documentation_en-US" xlink:label="lab_cgnx_RetirementAllowance_C0BA574861FEB63FE4B1AB96A0064FBC" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Retirement allowance Japan.</link:label>
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_RetirementAllowance" xlink:label="loc_cgnx_RetirementAllowance_C0BA574861FEB63FE4B1AB96A0064FBC" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_RetirementAllowance_C0BA574861FEB63FE4B1AB96A0064FBC" xlink:to="lab_cgnx_RetirementAllowance_C0BA574861FEB63FE4B1AB96A0064FBC" xlink:type="arc" />
    <link:label id="lab_us-gaap_ProductWarrantyAccrualClassifiedCurrent_5F563FE544060295A55BAB96A0068923_terseLabel_en-US" xlink:label="lab_us-gaap_ProductWarrantyAccrualClassifiedCurrent_5F563FE544060295A55BAB96A0068923" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Warranty obligations</link:label>
    <link:label id="lab_us-gaap_ProductWarrantyAccrualClassifiedCurrent_5F563FE544060295A55BAB96A0068923_label_en-US" xlink:label="lab_us-gaap_ProductWarrantyAccrualClassifiedCurrent_5F563FE544060295A55BAB96A0068923" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Product Warranty Accrual, Current</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ProductWarrantyAccrualClassifiedCurrent" xlink:label="loc_us-gaap_ProductWarrantyAccrualClassifiedCurrent_5F563FE544060295A55BAB96A0068923" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ProductWarrantyAccrualClassifiedCurrent_5F563FE544060295A55BAB96A0068923" xlink:to="lab_us-gaap_ProductWarrantyAccrualClassifiedCurrent_5F563FE544060295A55BAB96A0068923" xlink:type="arc" />
    <link:label id="lab_us-gaap_BusinessCombinationSeparatelyRecognizedTransactionsLiabilitiesRecognized_09CD907443E14CD54E1CAB96A006CFCA_terseLabel_en-US" xlink:label="lab_us-gaap_BusinessCombinationSeparatelyRecognizedTransactionsLiabilitiesRecognized_09CD907443E14CD54E1CAB96A006CFCA" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Acquisition deferred and contingent liabilities</link:label>
    <link:label id="lab_us-gaap_BusinessCombinationSeparatelyRecognizedTransactionsLiabilitiesRecognized_09CD907443E14CD54E1CAB96A006CFCA_label_en-US" xlink:label="lab_us-gaap_BusinessCombinationSeparatelyRecognizedTransactionsLiabilitiesRecognized_09CD907443E14CD54E1CAB96A006CFCA" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Business Combination, Separately Recognized Transactions, Liabilities Recognized</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_BusinessCombinationSeparatelyRecognizedTransactionsLiabilitiesRecognized" xlink:label="loc_us-gaap_BusinessCombinationSeparatelyRecognizedTransactionsLiabilitiesRecognized_09CD907443E14CD54E1CAB96A006CFCA" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_BusinessCombinationSeparatelyRecognizedTransactionsLiabilitiesRecognized_09CD907443E14CD54E1CAB96A006CFCA" xlink:to="lab_us-gaap_BusinessCombinationSeparatelyRecognizedTransactionsLiabilitiesRecognized_09CD907443E14CD54E1CAB96A006CFCA" xlink:type="arc" />
    <link:label id="lab_us-gaap_OtherAccruedLiabilitiesCurrent_FDA92FAC93EFC15D23E6AB96A006704C_terseLabel_en-US" xlink:label="lab_us-gaap_OtherAccruedLiabilitiesCurrent_FDA92FAC93EFC15D23E6AB96A006704C" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Other</link:label>
    <link:label id="lab_us-gaap_OtherAccruedLiabilitiesCurrent_FDA92FAC93EFC15D23E6AB96A006704C_label_en-US" xlink:label="lab_us-gaap_OtherAccruedLiabilitiesCurrent_FDA92FAC93EFC15D23E6AB96A006704C" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Other Accrued Liabilities, Current</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_OtherAccruedLiabilitiesCurrent" xlink:label="loc_us-gaap_OtherAccruedLiabilitiesCurrent_FDA92FAC93EFC15D23E6AB96A006704C" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_OtherAccruedLiabilitiesCurrent_FDA92FAC93EFC15D23E6AB96A006704C" xlink:to="lab_us-gaap_OtherAccruedLiabilitiesCurrent_FDA92FAC93EFC15D23E6AB96A006704C" xlink:type="arc" />
    <link:label id="lab_us-gaap_AccruedLiabilitiesCurrent_35E06754D3F9919463E5AB96A0070A6D_totalLabel_en-US" xlink:label="lab_us-gaap_AccruedLiabilitiesCurrent_35E06754D3F9919463E5AB96A0070A6D" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xml:lang="en-US">Accrued expenses</link:label>
    <link:label id="lab_us-gaap_AccruedLiabilitiesCurrent_35E06754D3F9919463E5AB96A0070A6D_label_en-US" xlink:label="lab_us-gaap_AccruedLiabilitiesCurrent_35E06754D3F9919463E5AB96A0070A6D" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Accrued Liabilities, Current</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_AccruedLiabilitiesCurrent" xlink:label="loc_us-gaap_AccruedLiabilitiesCurrent_35E06754D3F9919463E5AB96A0070A6D" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AccruedLiabilitiesCurrent_35E06754D3F9919463E5AB96A0070A6D" xlink:to="lab_us-gaap_AccruedLiabilitiesCurrent_35E06754D3F9919463E5AB96A0070A6D" xlink:type="arc" />
    <link:label id="lab_us-gaap_LeasesAbstract_3DBAF6C7465A51DBCBD5F3F5AF501DEC_label_en-US" xlink:label="lab_us-gaap_LeasesAbstract_3DBAF6C7465A51DBCBD5F3F5AF501DEC" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Leases [Abstract]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_LeasesAbstract" xlink:label="loc_us-gaap_LeasesAbstract_3DBAF6C7465A51DBCBD5F3F5AF501DEC" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_LeasesAbstract_3DBAF6C7465A51DBCBD5F3F5AF501DEC" xlink:to="lab_us-gaap_LeasesAbstract_3DBAF6C7465A51DBCBD5F3F5AF501DEC" xlink:type="arc" />
    <link:label id="lab_us-gaap_LesseeOperatingLeaseLiabilityMaturityTableTextBlock_1F1B9FF443F1747A3699F3F6B5104F2C_terseLabel_en-US" xlink:label="lab_us-gaap_LesseeOperatingLeaseLiabilityMaturityTableTextBlock_1F1B9FF443F1747A3699F3F6B5104F2C" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Schedule of lease payments</link:label>
    <link:label id="lab_us-gaap_LesseeOperatingLeaseLiabilityMaturityTableTextBlock_1F1B9FF443F1747A3699F3F6B5104F2C_label_en-US" xlink:label="lab_us-gaap_LesseeOperatingLeaseLiabilityMaturityTableTextBlock_1F1B9FF443F1747A3699F3F6B5104F2C" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Lessee, Operating Lease, Liability, Maturity [Table Text Block]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_LesseeOperatingLeaseLiabilityMaturityTableTextBlock" xlink:label="loc_us-gaap_LesseeOperatingLeaseLiabilityMaturityTableTextBlock_1F1B9FF443F1747A3699F3F6B5104F2C" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_LesseeOperatingLeaseLiabilityMaturityTableTextBlock_1F1B9FF443F1747A3699F3F6B5104F2C" xlink:to="lab_us-gaap_LesseeOperatingLeaseLiabilityMaturityTableTextBlock_1F1B9FF443F1747A3699F3F6B5104F2C" xlink:type="arc" />
    <link:label id="lab_us-gaap_LessorOperatingLeasePaymentsToBeReceivedMaturityTableTextBlock_C3BFEE3B8F70E0A5850AF3F8727FD63C_terseLabel_en-US" xlink:label="lab_us-gaap_LessorOperatingLeasePaymentsToBeReceivedMaturityTableTextBlock_C3BFEE3B8F70E0A5850AF3F8727FD63C" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Schedule of lease receipts</link:label>
    <link:label id="lab_us-gaap_LessorOperatingLeasePaymentsToBeReceivedMaturityTableTextBlock_C3BFEE3B8F70E0A5850AF3F8727FD63C_label_en-US" xlink:label="lab_us-gaap_LessorOperatingLeasePaymentsToBeReceivedMaturityTableTextBlock_C3BFEE3B8F70E0A5850AF3F8727FD63C" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Lessor, Operating Lease, Payments to be Received, Maturity [Table Text Block]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_LessorOperatingLeasePaymentsToBeReceivedMaturityTableTextBlock" xlink:label="loc_us-gaap_LessorOperatingLeasePaymentsToBeReceivedMaturityTableTextBlock_C3BFEE3B8F70E0A5850AF3F8727FD63C" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_LessorOperatingLeasePaymentsToBeReceivedMaturityTableTextBlock_C3BFEE3B8F70E0A5850AF3F8727FD63C" xlink:to="lab_us-gaap_LessorOperatingLeasePaymentsToBeReceivedMaturityTableTextBlock_C3BFEE3B8F70E0A5850AF3F8727FD63C" xlink:type="arc" />
    <link:label id="lab_us-gaap_AccountsPayableAndAccruedLiabilitiesDisclosureTextBlock_0A9DCB00D4B4C2B4936A8095E5FBA8BF_terseLabel_en-US" xlink:label="lab_us-gaap_AccountsPayableAndAccruedLiabilitiesDisclosureTextBlock_0A9DCB00D4B4C2B4936A8095E5FBA8BF" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Accrued Expenses</link:label>
    <link:label id="lab_us-gaap_AccountsPayableAndAccruedLiabilitiesDisclosureTextBlock_0A9DCB00D4B4C2B4936A8095E5FBA8BF_label_en-US" xlink:label="lab_us-gaap_AccountsPayableAndAccruedLiabilitiesDisclosureTextBlock_0A9DCB00D4B4C2B4936A8095E5FBA8BF" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Accounts Payable and Accrued Liabilities Disclosure [Text Block]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_AccountsPayableAndAccruedLiabilitiesDisclosureTextBlock" xlink:label="loc_us-gaap_AccountsPayableAndAccruedLiabilitiesDisclosureTextBlock_0A9DCB00D4B4C2B4936A8095E5FBA8BF" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AccountsPayableAndAccruedLiabilitiesDisclosureTextBlock_0A9DCB00D4B4C2B4936A8095E5FBA8BF" xlink:to="lab_us-gaap_AccountsPayableAndAccruedLiabilitiesDisclosureTextBlock_0A9DCB00D4B4C2B4936A8095E5FBA8BF" xlink:type="arc" />
    <link:label id="lab_us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract_A6CAA455FF80746694F38095E8CA9CE0_label_en-US" xlink:label="lab_us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract_A6CAA455FF80746694F38095E8CA9CE0" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Disclosure of Compensation Related Costs, Share-based Payments [Abstract]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:label="loc_us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract_A6CAA455FF80746694F38095E8CA9CE0" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract_A6CAA455FF80746694F38095E8CA9CE0" xlink:to="lab_us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract_A6CAA455FF80746694F38095E8CA9CE0" xlink:type="arc" />
    <link:label id="lab_us-gaap_ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock_E097B2D981D4E9C6B8B08095E8CAA9AF_terseLabel_en-US" xlink:label="lab_us-gaap_ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock_E097B2D981D4E9C6B8B08095E8CAA9AF" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Summary of Stock Option Activity</link:label>
    <link:label id="lab_us-gaap_ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock_E097B2D981D4E9C6B8B08095E8CAA9AF_label_en-US" xlink:label="lab_us-gaap_ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock_E097B2D981D4E9C6B8B08095E8CAA9AF" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Share-based Compensation, Stock Options, Activity [Table Text Block]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock" xlink:label="loc_us-gaap_ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock_E097B2D981D4E9C6B8B08095E8CAA9AF" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock_E097B2D981D4E9C6B8B08095E8CAA9AF" xlink:to="lab_us-gaap_ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock_E097B2D981D4E9C6B8B08095E8CAA9AF" xlink:type="arc" />
    <link:label id="lab_us-gaap_ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock_919A928370D468B5919D8095E8CA2884_terseLabel_en-US" xlink:label="lab_us-gaap_ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock_919A928370D468B5919D8095E8CA2884" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Weighted-Average Assumptions Used in Estimating Fair Values of Stock Options Granted</link:label>
    <link:label id="lab_us-gaap_ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock_919A928370D468B5919D8095E8CA2884_label_en-US" xlink:label="lab_us-gaap_ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock_919A928370D468B5919D8095E8CA2884" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Schedule of Share-based Payment Award, Stock Options, Valuation Assumptions [Table Text Block]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock" xlink:label="loc_us-gaap_ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock_919A928370D468B5919D8095E8CA2884" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock_919A928370D468B5919D8095E8CA2884" xlink:to="lab_us-gaap_ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock_919A928370D468B5919D8095E8CA2884" xlink:type="arc" />
    <link:label id="lab_us-gaap_NonvestedRestrictedStockSharesActivityTableTextBlock_CB80E16BFFD09E67F8B38095E8CB4EB9_terseLabel_en-US" xlink:label="lab_us-gaap_NonvestedRestrictedStockSharesActivityTableTextBlock_CB80E16BFFD09E67F8B38095E8CB4EB9" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Nonvested Restricted Stock Shares Activity [Table Text Block]</link:label>
    <link:label id="lab_us-gaap_NonvestedRestrictedStockSharesActivityTableTextBlock_CB80E16BFFD09E67F8B38095E8CB4EB9_label_en-US" xlink:label="lab_us-gaap_NonvestedRestrictedStockSharesActivityTableTextBlock_CB80E16BFFD09E67F8B38095E8CB4EB9" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Nonvested Restricted Stock Shares Activity [Table Text Block]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_NonvestedRestrictedStockSharesActivityTableTextBlock" xlink:label="loc_us-gaap_NonvestedRestrictedStockSharesActivityTableTextBlock_CB80E16BFFD09E67F8B38095E8CB4EB9" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_NonvestedRestrictedStockSharesActivityTableTextBlock_CB80E16BFFD09E67F8B38095E8CB4EB9" xlink:to="lab_us-gaap_NonvestedRestrictedStockSharesActivityTableTextBlock_CB80E16BFFD09E67F8B38095E8CB4EB9" xlink:type="arc" />
    <link:label id="lab_us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock_5A6C8C6EE339DD2A1B9E8095E8CB773D_terseLabel_en-US" xlink:label="lab_us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock_5A6C8C6EE339DD2A1B9E8095E8CB773D" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Stock-Based Compensation Expense</link:label>
    <link:label id="lab_us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock_5A6C8C6EE339DD2A1B9E8095E8CB773D_label_en-US" xlink:label="lab_us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock_5A6C8C6EE339DD2A1B9E8095E8CB773D" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Schedule of Employee Service Share-based Compensation, Allocation of Recognized Period Costs [Table Text Block]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock" xlink:label="loc_us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock_5A6C8C6EE339DD2A1B9E8095E8CB773D" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock_5A6C8C6EE339DD2A1B9E8095E8CB773D" xlink:to="lab_us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock_5A6C8C6EE339DD2A1B9E8095E8CB773D" xlink:type="arc" />
    <link:label id="lab_us-gaap_BusinessCombinationsAbstract_74CBCF7B4FBCE10ED26016BD433D59B3_label_en-US" xlink:label="lab_us-gaap_BusinessCombinationsAbstract_74CBCF7B4FBCE10ED26016BD433D59B3" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Business Combinations [Abstract]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_BusinessCombinationsAbstract" xlink:label="loc_us-gaap_BusinessCombinationsAbstract_74CBCF7B4FBCE10ED26016BD433D59B3" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_BusinessCombinationsAbstract_74CBCF7B4FBCE10ED26016BD433D59B3" xlink:to="lab_us-gaap_BusinessCombinationsAbstract_74CBCF7B4FBCE10ED26016BD433D59B3" xlink:type="arc" />
    <link:label id="lab_us-gaap_NumberOfBusinessesAcquired_4C25AD61941712BDE7A616BD433D5881_terseLabel_en-US" xlink:label="lab_us-gaap_NumberOfBusinessesAcquired_4C25AD61941712BDE7A616BD433D5881" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Number of acquisitions</link:label>
    <link:label id="lab_us-gaap_NumberOfBusinessesAcquired_4C25AD61941712BDE7A616BD433D5881_label_en-US" xlink:label="lab_us-gaap_NumberOfBusinessesAcquired_4C25AD61941712BDE7A616BD433D5881" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Number of Businesses Acquired</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_NumberOfBusinessesAcquired" xlink:label="loc_us-gaap_NumberOfBusinessesAcquired_4C25AD61941712BDE7A616BD433D5881" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_NumberOfBusinessesAcquired_4C25AD61941712BDE7A616BD433D5881" xlink:to="lab_us-gaap_NumberOfBusinessesAcquired_4C25AD61941712BDE7A616BD433D5881" xlink:type="arc" />
    <link:label id="lab_us-gaap_IncomeStatementAbstract_5FECFC201F959A11C3AC30EEF1ABEE72_label_en-US" xlink:label="lab_us-gaap_IncomeStatementAbstract_5FECFC201F959A11C3AC30EEF1ABEE72" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Income Statement [Abstract]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_IncomeStatementAbstract" xlink:label="loc_us-gaap_IncomeStatementAbstract_5FECFC201F959A11C3AC30EEF1ABEE72" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_IncomeStatementAbstract_5FECFC201F959A11C3AC30EEF1ABEE72" xlink:to="lab_us-gaap_IncomeStatementAbstract_5FECFC201F959A11C3AC30EEF1ABEE72" xlink:type="arc" />
    <link:label id="lab_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax_5393FE1F7855AC164B9E30EEF1AB2C28_terseLabel_en-US" xlink:label="lab_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax_5393FE1F7855AC164B9E30EEF1AB2C28" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Revenue</link:label>
    <link:label id="lab_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax_5393FE1F7855AC164B9E30EEF1AB2C28_label_en-US" xlink:label="lab_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax_5393FE1F7855AC164B9E30EEF1AB2C28" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Revenue from Contract with Customer, Excluding Assessed Tax</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax" xlink:label="loc_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax_5393FE1F7855AC164B9E30EEF1AB2C28" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax_5393FE1F7855AC164B9E30EEF1AB2C28" xlink:to="lab_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax_5393FE1F7855AC164B9E30EEF1AB2C28" xlink:type="arc" />
    <link:label id="lab_us-gaap_CostOfGoodsAndServicesSold_E6BD28FC2DF41282BF2230EEF1ABE5E7_terseLabel_en-US" xlink:label="lab_us-gaap_CostOfGoodsAndServicesSold_E6BD28FC2DF41282BF2230EEF1ABE5E7" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Cost of revenue</link:label>
    <link:label id="lab_us-gaap_CostOfGoodsAndServicesSold_E6BD28FC2DF41282BF2230EEF1ABE5E7_label_en-US" xlink:label="lab_us-gaap_CostOfGoodsAndServicesSold_E6BD28FC2DF41282BF2230EEF1ABE5E7" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Cost of Goods and Services Sold</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_CostOfGoodsAndServicesSold" xlink:label="loc_us-gaap_CostOfGoodsAndServicesSold_E6BD28FC2DF41282BF2230EEF1ABE5E7" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_CostOfGoodsAndServicesSold_E6BD28FC2DF41282BF2230EEF1ABE5E7" xlink:to="lab_us-gaap_CostOfGoodsAndServicesSold_E6BD28FC2DF41282BF2230EEF1ABE5E7" xlink:type="arc" />
    <link:label id="lab_us-gaap_GrossProfit_90723D194202843A079130EEF1AC9A33_totalLabel_en-US" xlink:label="lab_us-gaap_GrossProfit_90723D194202843A079130EEF1AC9A33" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xml:lang="en-US">Gross margin</link:label>
    <link:label id="lab_us-gaap_GrossProfit_90723D194202843A079130EEF1AC9A33_label_en-US" xlink:label="lab_us-gaap_GrossProfit_90723D194202843A079130EEF1AC9A33" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Gross Profit</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_GrossProfit" xlink:label="loc_us-gaap_GrossProfit_90723D194202843A079130EEF1AC9A33" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_GrossProfit_90723D194202843A079130EEF1AC9A33" xlink:to="lab_us-gaap_GrossProfit_90723D194202843A079130EEF1AC9A33" xlink:type="arc" />
    <link:label id="lab_us-gaap_ResearchAndDevelopmentExpense_A6A7C740F03F9EEE240F30EEF1ACCF56_terseLabel_en-US" xlink:label="lab_us-gaap_ResearchAndDevelopmentExpense_A6A7C740F03F9EEE240F30EEF1ACCF56" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Research, development, and engineering expenses</link:label>
    <link:label id="lab_us-gaap_ResearchAndDevelopmentExpense_A6A7C740F03F9EEE240F30EEF1ACCF56_label_en-US" xlink:label="lab_us-gaap_ResearchAndDevelopmentExpense_A6A7C740F03F9EEE240F30EEF1ACCF56" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Research and Development Expense</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ResearchAndDevelopmentExpense" xlink:label="loc_us-gaap_ResearchAndDevelopmentExpense_A6A7C740F03F9EEE240F30EEF1ACCF56" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ResearchAndDevelopmentExpense_A6A7C740F03F9EEE240F30EEF1ACCF56" xlink:to="lab_us-gaap_ResearchAndDevelopmentExpense_A6A7C740F03F9EEE240F30EEF1ACCF56" xlink:type="arc" />
    <link:label id="lab_us-gaap_SellingGeneralAndAdministrativeExpense_82677656ADBA9B83C0AF30EEF1AC6D22_terseLabel_en-US" xlink:label="lab_us-gaap_SellingGeneralAndAdministrativeExpense_82677656ADBA9B83C0AF30EEF1AC6D22" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Selling, general, and administrative expenses</link:label>
    <link:label id="lab_us-gaap_SellingGeneralAndAdministrativeExpense_82677656ADBA9B83C0AF30EEF1AC6D22_label_en-US" xlink:label="lab_us-gaap_SellingGeneralAndAdministrativeExpense_82677656ADBA9B83C0AF30EEF1AC6D22" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Selling, General and Administrative Expense</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_SellingGeneralAndAdministrativeExpense" xlink:label="loc_us-gaap_SellingGeneralAndAdministrativeExpense_82677656ADBA9B83C0AF30EEF1AC6D22" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_SellingGeneralAndAdministrativeExpense_82677656ADBA9B83C0AF30EEF1AC6D22" xlink:to="lab_us-gaap_SellingGeneralAndAdministrativeExpense_82677656ADBA9B83C0AF30EEF1AC6D22" xlink:type="arc" />
    <link:label id="lab_us-gaap_OperatingIncomeLoss_A6562B3E8B80F01B9FFA30EEF1ACD6C3_totalLabel_en-US" xlink:label="lab_us-gaap_OperatingIncomeLoss_A6562B3E8B80F01B9FFA30EEF1ACD6C3" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xml:lang="en-US">Operating income</link:label>
    <link:label id="lab_us-gaap_OperatingIncomeLoss_A6562B3E8B80F01B9FFA30EEF1ACD6C3_label_en-US" xlink:label="lab_us-gaap_OperatingIncomeLoss_A6562B3E8B80F01B9FFA30EEF1ACD6C3" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Operating Income (Loss)</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_OperatingIncomeLoss" xlink:label="loc_us-gaap_OperatingIncomeLoss_A6562B3E8B80F01B9FFA30EEF1ACD6C3" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_OperatingIncomeLoss_A6562B3E8B80F01B9FFA30EEF1ACD6C3" xlink:to="lab_us-gaap_OperatingIncomeLoss_A6562B3E8B80F01B9FFA30EEF1ACD6C3" xlink:type="arc" />
    <link:label id="lab_us-gaap_ForeignCurrencyTransactionGainLossBeforeTax_842551F7DEA287422E0630EEF1AC9094_terseLabel_en-US" xlink:label="lab_us-gaap_ForeignCurrencyTransactionGainLossBeforeTax_842551F7DEA287422E0630EEF1AC9094" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Foreign currency gain (loss)</link:label>
    <link:label id="lab_us-gaap_ForeignCurrencyTransactionGainLossBeforeTax_842551F7DEA287422E0630EEF1AC9094_label_en-US" xlink:label="lab_us-gaap_ForeignCurrencyTransactionGainLossBeforeTax_842551F7DEA287422E0630EEF1AC9094" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Foreign Currency Transaction Gain (Loss), before Tax</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ForeignCurrencyTransactionGainLossBeforeTax" xlink:label="loc_us-gaap_ForeignCurrencyTransactionGainLossBeforeTax_842551F7DEA287422E0630EEF1AC9094" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ForeignCurrencyTransactionGainLossBeforeTax_842551F7DEA287422E0630EEF1AC9094" xlink:to="lab_us-gaap_ForeignCurrencyTransactionGainLossBeforeTax_842551F7DEA287422E0630EEF1AC9094" xlink:type="arc" />
    <link:label id="lab_us-gaap_InvestmentIncomeNonoperating_35183889DC1EE9877C0130EEF1ADF397_terseLabel_en-US" xlink:label="lab_us-gaap_InvestmentIncomeNonoperating_35183889DC1EE9877C0130EEF1ADF397" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Investment income</link:label>
    <link:label id="lab_us-gaap_InvestmentIncomeNonoperating_35183889DC1EE9877C0130EEF1ADF397_label_en-US" xlink:label="lab_us-gaap_InvestmentIncomeNonoperating_35183889DC1EE9877C0130EEF1ADF397" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Investment Income, Nonoperating</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_InvestmentIncomeNonoperating" xlink:label="loc_us-gaap_InvestmentIncomeNonoperating_35183889DC1EE9877C0130EEF1ADF397" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_InvestmentIncomeNonoperating_35183889DC1EE9877C0130EEF1ADF397" xlink:to="lab_us-gaap_InvestmentIncomeNonoperating_35183889DC1EE9877C0130EEF1ADF397" xlink:type="arc" />
    <link:label id="lab_us-gaap_OtherNonoperatingIncomeExpense_82A7D42CF34AD7A4341430EEF1AD443B_terseLabel_en-US" xlink:label="lab_us-gaap_OtherNonoperatingIncomeExpense_82A7D42CF34AD7A4341430EEF1AD443B" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Other income (expense)</link:label>
    <link:label id="lab_us-gaap_OtherNonoperatingIncomeExpense_82A7D42CF34AD7A4341430EEF1AD443B_label_en-US" xlink:label="lab_us-gaap_OtherNonoperatingIncomeExpense_82A7D42CF34AD7A4341430EEF1AD443B" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Other Nonoperating Income (Expense)</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_OtherNonoperatingIncomeExpense" xlink:label="loc_us-gaap_OtherNonoperatingIncomeExpense_82A7D42CF34AD7A4341430EEF1AD443B" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_OtherNonoperatingIncomeExpense_82A7D42CF34AD7A4341430EEF1AD443B" xlink:to="lab_us-gaap_OtherNonoperatingIncomeExpense_82A7D42CF34AD7A4341430EEF1AD443B" xlink:type="arc" />
    <link:label id="lab_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments_3E8A12E0EB68B3BDEA6D30EEF1AD7708_totalLabel_en-US" xlink:label="lab_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments_3E8A12E0EB68B3BDEA6D30EEF1AD7708" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xml:lang="en-US">Income before income tax expense</link:label>
    <link:label id="lab_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments_3E8A12E0EB68B3BDEA6D30EEF1AD7708_label_en-US" xlink:label="lab_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments_3E8A12E0EB68B3BDEA6D30EEF1AD7708" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Income (Loss) from Continuing Operations before Equity Method Investments, Income Taxes, Noncontrolling Interest</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments" xlink:label="loc_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments_3E8A12E0EB68B3BDEA6D30EEF1AD7708" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments_3E8A12E0EB68B3BDEA6D30EEF1AD7708" xlink:to="lab_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments_3E8A12E0EB68B3BDEA6D30EEF1AD7708" xlink:type="arc" />
    <link:label id="lab_us-gaap_IncomeTaxExpenseBenefit_7761F440E54E4D5EEAE530EEF1AD5606_terseLabel_en-US" xlink:label="lab_us-gaap_IncomeTaxExpenseBenefit_7761F440E54E4D5EEAE530EEF1AD5606" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Income tax expense on continuing operations</link:label>
    <link:label id="lab_us-gaap_IncomeTaxExpenseBenefit_7761F440E54E4D5EEAE530EEF1AD5606_label_en-US" xlink:label="lab_us-gaap_IncomeTaxExpenseBenefit_7761F440E54E4D5EEAE530EEF1AD5606" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Income Tax Expense (Benefit)</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_IncomeTaxExpenseBenefit" xlink:label="loc_us-gaap_IncomeTaxExpenseBenefit_7761F440E54E4D5EEAE530EEF1AD5606" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_IncomeTaxExpenseBenefit_7761F440E54E4D5EEAE530EEF1AD5606" xlink:to="lab_us-gaap_IncomeTaxExpenseBenefit_7761F440E54E4D5EEAE530EEF1AD5606" xlink:type="arc" />
    <link:label id="lab_us-gaap_NetIncomeLoss_BE2FA825937EB6ED6A5530EEF1AE8749_totalLabel_en-US" xlink:label="lab_us-gaap_NetIncomeLoss_BE2FA825937EB6ED6A5530EEF1AE8749" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xml:lang="en-US">Net income</link:label>
    <link:label id="lab_us-gaap_NetIncomeLoss_BE2FA825937EB6ED6A5530EEF1AE8749_label_en-US" xlink:label="lab_us-gaap_NetIncomeLoss_BE2FA825937EB6ED6A5530EEF1AE8749" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Net Income (Loss) Attributable to Parent</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_NetIncomeLoss" xlink:label="loc_us-gaap_NetIncomeLoss_BE2FA825937EB6ED6A5530EEF1AE8749" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_NetIncomeLoss_BE2FA825937EB6ED6A5530EEF1AE8749" xlink:to="lab_us-gaap_NetIncomeLoss_BE2FA825937EB6ED6A5530EEF1AE8749" xlink:type="arc" />
    <link:label id="lab_us-gaap_EarningsPerShareBasicAbstract_06CB2C74F9146DC3DBE130EEF1AE0557_terseLabel_en-US" xlink:label="lab_us-gaap_EarningsPerShareBasicAbstract_06CB2C74F9146DC3DBE130EEF1AE0557" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Net Income per weighted-average common and common-equivalent share (1):</link:label>
    <link:label id="lab_us-gaap_EarningsPerShareBasicAbstract_06CB2C74F9146DC3DBE130EEF1AE0557_label_en-US" xlink:label="lab_us-gaap_EarningsPerShareBasicAbstract_06CB2C74F9146DC3DBE130EEF1AE0557" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Earnings Per Share, Basic [Abstract]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_EarningsPerShareBasicAbstract" xlink:label="loc_us-gaap_EarningsPerShareBasicAbstract_06CB2C74F9146DC3DBE130EEF1AE0557" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_EarningsPerShareBasicAbstract_06CB2C74F9146DC3DBE130EEF1AE0557" xlink:to="lab_us-gaap_EarningsPerShareBasicAbstract_06CB2C74F9146DC3DBE130EEF1AE0557" xlink:type="arc" />
    <link:label id="lab_us-gaap_EarningsPerShareBasic_EA72F3E104ED502F422A30EEF1AF1717_totalLabel_en-US" xlink:label="lab_us-gaap_EarningsPerShareBasic_EA72F3E104ED502F422A30EEF1AF1717" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xml:lang="en-US">Net income (in dollars per share)</link:label>
    <link:label id="lab_us-gaap_EarningsPerShareBasic_EA72F3E104ED502F422A30EEF1AF1717_label_en-US" xlink:label="lab_us-gaap_EarningsPerShareBasic_EA72F3E104ED502F422A30EEF1AF1717" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Earnings Per Share, Basic</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_EarningsPerShareBasic" xlink:label="loc_us-gaap_EarningsPerShareBasic_EA72F3E104ED502F422A30EEF1AF1717" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_EarningsPerShareBasic_EA72F3E104ED502F422A30EEF1AF1717" xlink:to="lab_us-gaap_EarningsPerShareBasic_EA72F3E104ED502F422A30EEF1AF1717" xlink:type="arc" />
    <link:label id="lab_us-gaap_EarningsPerShareDilutedAbstract_191891E9B0BA8E1A732730EEF1AF94FC_terseLabel_en-US" xlink:label="lab_us-gaap_EarningsPerShareDilutedAbstract_191891E9B0BA8E1A732730EEF1AF94FC" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Diluted earnings per weighted-average common and common-equivalent share (1):</link:label>
    <link:label id="lab_us-gaap_EarningsPerShareDilutedAbstract_191891E9B0BA8E1A732730EEF1AF94FC_label_en-US" xlink:label="lab_us-gaap_EarningsPerShareDilutedAbstract_191891E9B0BA8E1A732730EEF1AF94FC" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Earnings Per Share, Diluted [Abstract]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_EarningsPerShareDilutedAbstract" xlink:label="loc_us-gaap_EarningsPerShareDilutedAbstract_191891E9B0BA8E1A732730EEF1AF94FC" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_EarningsPerShareDilutedAbstract_191891E9B0BA8E1A732730EEF1AF94FC" xlink:to="lab_us-gaap_EarningsPerShareDilutedAbstract_191891E9B0BA8E1A732730EEF1AF94FC" xlink:type="arc" />
    <link:label id="lab_us-gaap_EarningsPerShareDiluted_0230672ACA360720E3D930EEF1B0AB37_totalLabel_en-US" xlink:label="lab_us-gaap_EarningsPerShareDiluted_0230672ACA360720E3D930EEF1B0AB37" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xml:lang="en-US">Net income (in dollars per share)</link:label>
    <link:label id="lab_us-gaap_EarningsPerShareDiluted_0230672ACA360720E3D930EEF1B0AB37_label_en-US" xlink:label="lab_us-gaap_EarningsPerShareDiluted_0230672ACA360720E3D930EEF1B0AB37" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Earnings Per Share, Diluted</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_EarningsPerShareDiluted" xlink:label="loc_us-gaap_EarningsPerShareDiluted_0230672ACA360720E3D930EEF1B0AB37" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_EarningsPerShareDiluted_0230672ACA360720E3D930EEF1B0AB37" xlink:to="lab_us-gaap_EarningsPerShareDiluted_0230672ACA360720E3D930EEF1B0AB37" xlink:type="arc" />
    <link:label id="lab_us-gaap_WeightedAverageNumberOfSharesOutstandingAbstract_43BA35D69E9B11FC34CE30EEF1B0A0B6_terseLabel_en-US" xlink:label="lab_us-gaap_WeightedAverageNumberOfSharesOutstandingAbstract_43BA35D69E9B11FC34CE30EEF1B0A0B6" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Weighted-average common and common-equivalent shares outstanding (1):</link:label>
    <link:label id="lab_us-gaap_WeightedAverageNumberOfSharesOutstandingAbstract_43BA35D69E9B11FC34CE30EEF1B0A0B6_label_en-US" xlink:label="lab_us-gaap_WeightedAverageNumberOfSharesOutstandingAbstract_43BA35D69E9B11FC34CE30EEF1B0A0B6" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Weighted Average Number of Shares Outstanding, Diluted [Abstract]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_WeightedAverageNumberOfSharesOutstandingAbstract" xlink:label="loc_us-gaap_WeightedAverageNumberOfSharesOutstandingAbstract_43BA35D69E9B11FC34CE30EEF1B0A0B6" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_WeightedAverageNumberOfSharesOutstandingAbstract_43BA35D69E9B11FC34CE30EEF1B0A0B6" xlink:to="lab_us-gaap_WeightedAverageNumberOfSharesOutstandingAbstract_43BA35D69E9B11FC34CE30EEF1B0A0B6" xlink:type="arc" />
    <link:label id="lab_us-gaap_WeightedAverageNumberOfSharesOutstandingBasic_66B47C9B32DA08E93D8230EEF1B077F7_terseLabel_en-US" xlink:label="lab_us-gaap_WeightedAverageNumberOfSharesOutstandingBasic_66B47C9B32DA08E93D8230EEF1B077F7" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Basic (in shares)</link:label>
    <link:label id="lab_us-gaap_WeightedAverageNumberOfSharesOutstandingBasic_66B47C9B32DA08E93D8230EEF1B077F7_label_en-US" xlink:label="lab_us-gaap_WeightedAverageNumberOfSharesOutstandingBasic_66B47C9B32DA08E93D8230EEF1B077F7" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Weighted Average Number of Shares Outstanding, Basic</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_WeightedAverageNumberOfSharesOutstandingBasic" xlink:label="loc_us-gaap_WeightedAverageNumberOfSharesOutstandingBasic_66B47C9B32DA08E93D8230EEF1B077F7" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_WeightedAverageNumberOfSharesOutstandingBasic_66B47C9B32DA08E93D8230EEF1B077F7" xlink:to="lab_us-gaap_WeightedAverageNumberOfSharesOutstandingBasic_66B47C9B32DA08E93D8230EEF1B077F7" xlink:type="arc" />
    <link:label id="lab_us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding_440A8E7D7596EA67D6DD30EEF1B19B12_terseLabel_en-US" xlink:label="lab_us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding_440A8E7D7596EA67D6DD30EEF1B19B12" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Diluted (in shares)</link:label>
    <link:label id="lab_us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding_440A8E7D7596EA67D6DD30EEF1B19B12_label_en-US" xlink:label="lab_us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding_440A8E7D7596EA67D6DD30EEF1B19B12" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Weighted Average Number of Shares Outstanding, Diluted</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding" xlink:label="loc_us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding_440A8E7D7596EA67D6DD30EEF1B19B12" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding_440A8E7D7596EA67D6DD30EEF1B19B12" xlink:to="lab_us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding_440A8E7D7596EA67D6DD30EEF1B19B12" xlink:type="arc" />
    <link:label id="lab_us-gaap_CommonStockDividendsPerShareCashPaid_2D37FD49475FEE74A45C30EEF1B1D7EF_terseLabel_en-US" xlink:label="lab_us-gaap_CommonStockDividendsPerShareCashPaid_2D37FD49475FEE74A45C30EEF1B1D7EF" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Cash dividends per common share (in dollars per share)</link:label>
    <link:label id="lab_us-gaap_CommonStockDividendsPerShareCashPaid_2D37FD49475FEE74A45C30EEF1B1D7EF_label_en-US" xlink:label="lab_us-gaap_CommonStockDividendsPerShareCashPaid_2D37FD49475FEE74A45C30EEF1B1D7EF" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Common Stock, Dividends, Per Share, Cash Paid</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_CommonStockDividendsPerShareCashPaid" xlink:label="loc_us-gaap_CommonStockDividendsPerShareCashPaid_2D37FD49475FEE74A45C30EEF1B1D7EF" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_CommonStockDividendsPerShareCashPaid_2D37FD49475FEE74A45C30EEF1B1D7EF" xlink:to="lab_us-gaap_CommonStockDividendsPerShareCashPaid_2D37FD49475FEE74A45C30EEF1B1D7EF" xlink:type="arc" />
    <link:label id="lab_us-gaap_RevenueFromContractWithCustomerAbstract_318195D859251863CC0B8095E7C96F62_label_en-US" xlink:label="lab_us-gaap_RevenueFromContractWithCustomerAbstract_318195D859251863CC0B8095E7C96F62" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Revenue from Contract with Customer [Abstract]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_RevenueFromContractWithCustomerAbstract" xlink:label="loc_us-gaap_RevenueFromContractWithCustomerAbstract_318195D859251863CC0B8095E7C96F62" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_RevenueFromContractWithCustomerAbstract_318195D859251863CC0B8095E7C96F62" xlink:to="lab_us-gaap_RevenueFromContractWithCustomerAbstract_318195D859251863CC0B8095E7C96F62" xlink:type="arc" />
    <link:label id="lab_us-gaap_DisaggregationOfRevenueTable_1F42CBFA650F66BD821D8095E7C93D2F_terseLabel_en-US" xlink:label="lab_us-gaap_DisaggregationOfRevenueTable_1F42CBFA650F66BD821D8095E7C93D2F" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Disaggregation of Revenue [Table]</link:label>
    <link:label id="lab_us-gaap_DisaggregationOfRevenueTable_1F42CBFA650F66BD821D8095E7C93D2F_label_en-US" xlink:label="lab_us-gaap_DisaggregationOfRevenueTable_1F42CBFA650F66BD821D8095E7C93D2F" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Disaggregation of Revenue [Table]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_DisaggregationOfRevenueTable" xlink:label="loc_us-gaap_DisaggregationOfRevenueTable_1F42CBFA650F66BD821D8095E7C93D2F" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DisaggregationOfRevenueTable_1F42CBFA650F66BD821D8095E7C93D2F" xlink:to="lab_us-gaap_DisaggregationOfRevenueTable_1F42CBFA650F66BD821D8095E7C93D2F" xlink:type="arc" />
    <link:label id="lab_srt_StatementGeographicalAxis_A0DC6B252882BD69C5698095E7CA02B6_terseLabel_en-US" xlink:label="lab_srt_StatementGeographicalAxis_A0DC6B252882BD69C5698095E7CA02B6" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Geographical [Axis]</link:label>
    <link:label id="lab_srt_StatementGeographicalAxis_A0DC6B252882BD69C5698095E7CA02B6_label_en-US" xlink:label="lab_srt_StatementGeographicalAxis_A0DC6B252882BD69C5698095E7CA02B6" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Geographical [Axis]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2018/elts/srt-2018-01-31.xsd#srt_StatementGeographicalAxis" xlink:label="loc_srt_StatementGeographicalAxis_A0DC6B252882BD69C5698095E7CA02B6" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_srt_StatementGeographicalAxis_A0DC6B252882BD69C5698095E7CA02B6" xlink:to="lab_srt_StatementGeographicalAxis_A0DC6B252882BD69C5698095E7CA02B6" xlink:type="arc" />
    <link:label id="lab_srt_SegmentGeographicalDomain_9C6AF6EF4867D79EEE338095E7CA2140_terseLabel_en-US" xlink:label="lab_srt_SegmentGeographicalDomain_9C6AF6EF4867D79EEE338095E7CA2140" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Geographical [Domain]</link:label>
    <link:label id="lab_srt_SegmentGeographicalDomain_9C6AF6EF4867D79EEE338095E7CA2140_label_en-US" xlink:label="lab_srt_SegmentGeographicalDomain_9C6AF6EF4867D79EEE338095E7CA2140" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Geographical [Domain]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2018/elts/srt-2018-01-31.xsd#srt_SegmentGeographicalDomain" xlink:label="loc_srt_SegmentGeographicalDomain_9C6AF6EF4867D79EEE338095E7CA2140" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_srt_SegmentGeographicalDomain_9C6AF6EF4867D79EEE338095E7CA2140" xlink:to="lab_srt_SegmentGeographicalDomain_9C6AF6EF4867D79EEE338095E7CA2140" xlink:type="arc" />
    <link:label id="lab_srt_AmericasMember_AF2AAEE74332B67BFAFA8095E7CB699C_terseLabel_en-US" xlink:label="lab_srt_AmericasMember_AF2AAEE74332B67BFAFA8095E7CB699C" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Americas [Member]</link:label>
    <link:label id="lab_srt_AmericasMember_AF2AAEE74332B67BFAFA8095E7CB699C_label_en-US" xlink:label="lab_srt_AmericasMember_AF2AAEE74332B67BFAFA8095E7CB699C" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Americas [Member]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2018/elts/srt-2018-01-31.xsd#srt_AmericasMember" xlink:label="loc_srt_AmericasMember_AF2AAEE74332B67BFAFA8095E7CB699C" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_srt_AmericasMember_AF2AAEE74332B67BFAFA8095E7CB699C" xlink:to="lab_srt_AmericasMember_AF2AAEE74332B67BFAFA8095E7CB699C" xlink:type="arc" />
    <link:label id="lab_srt_EuropeMember_9BDE3FE1A6E226BAEDA78095E7CB0DAF_terseLabel_en-US" xlink:label="lab_srt_EuropeMember_9BDE3FE1A6E226BAEDA78095E7CB0DAF" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Europe [Member]</link:label>
    <link:label id="lab_srt_EuropeMember_9BDE3FE1A6E226BAEDA78095E7CB0DAF_label_en-US" xlink:label="lab_srt_EuropeMember_9BDE3FE1A6E226BAEDA78095E7CB0DAF" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Europe [Member]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2018/elts/srt-2018-01-31.xsd#srt_EuropeMember" xlink:label="loc_srt_EuropeMember_9BDE3FE1A6E226BAEDA78095E7CB0DAF" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_srt_EuropeMember_9BDE3FE1A6E226BAEDA78095E7CB0DAF" xlink:to="lab_srt_EuropeMember_9BDE3FE1A6E226BAEDA78095E7CB0DAF" xlink:type="arc" />
    <link:label id="lab_cgnx_GreaterChinaMember_A61C195EF7BEF06687608095E7CB0D1D_terseLabel_en-US" xlink:label="lab_cgnx_GreaterChinaMember_A61C195EF7BEF06687608095E7CB0D1D" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Greater China [Member]</link:label>
    <link:label id="lab_cgnx_GreaterChinaMember_A61C195EF7BEF06687608095E7CB0D1D_label_en-US" xlink:label="lab_cgnx_GreaterChinaMember_A61C195EF7BEF06687608095E7CB0D1D" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Greater China [Member]</link:label>
    <link:label id="lab_cgnx_GreaterChinaMember_A61C195EF7BEF06687608095E7CB0D1D_documentation_en-US" xlink:label="lab_cgnx_GreaterChinaMember_A61C195EF7BEF06687608095E7CB0D1D" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Greater China [Member]</link:label>
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_GreaterChinaMember" xlink:label="loc_cgnx_GreaterChinaMember_A61C195EF7BEF06687608095E7CB0D1D" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_GreaterChinaMember_A61C195EF7BEF06687608095E7CB0D1D" xlink:to="lab_cgnx_GreaterChinaMember_A61C195EF7BEF06687608095E7CB0D1D" xlink:type="arc" />
    <link:label id="lab_cgnx_OtherAsiaMember_5F5F61EF62B4A2D330678095E7CBA5E3_terseLabel_en-US" xlink:label="lab_cgnx_OtherAsiaMember_5F5F61EF62B4A2D330678095E7CBA5E3" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Other Asia [Member]</link:label>
    <link:label id="lab_cgnx_OtherAsiaMember_5F5F61EF62B4A2D330678095E7CBA5E3_label_en-US" xlink:label="lab_cgnx_OtherAsiaMember_5F5F61EF62B4A2D330678095E7CBA5E3" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Other Asia [Member]</link:label>
    <link:label id="lab_cgnx_OtherAsiaMember_5F5F61EF62B4A2D330678095E7CBA5E3_documentation_en-US" xlink:label="lab_cgnx_OtherAsiaMember_5F5F61EF62B4A2D330678095E7CBA5E3" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Other Asia [Member]</link:label>
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_OtherAsiaMember" xlink:label="loc_cgnx_OtherAsiaMember_5F5F61EF62B4A2D330678095E7CBA5E3" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_OtherAsiaMember_5F5F61EF62B4A2D330678095E7CBA5E3" xlink:to="lab_cgnx_OtherAsiaMember_5F5F61EF62B4A2D330678095E7CBA5E3" xlink:type="arc" />
    <link:label id="lab_srt_ProductOrServiceAxis_2A469A5BC03427C2B1C58095E7CBCB38_terseLabel_en-US" xlink:label="lab_srt_ProductOrServiceAxis_2A469A5BC03427C2B1C58095E7CBCB38" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Product and Service [Axis]</link:label>
    <link:label id="lab_srt_ProductOrServiceAxis_2A469A5BC03427C2B1C58095E7CBCB38_label_en-US" xlink:label="lab_srt_ProductOrServiceAxis_2A469A5BC03427C2B1C58095E7CBCB38" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Product and Service [Axis]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2018/elts/srt-2018-01-31.xsd#srt_ProductOrServiceAxis" xlink:label="loc_srt_ProductOrServiceAxis_2A469A5BC03427C2B1C58095E7CBCB38" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_srt_ProductOrServiceAxis_2A469A5BC03427C2B1C58095E7CBCB38" xlink:to="lab_srt_ProductOrServiceAxis_2A469A5BC03427C2B1C58095E7CBCB38" xlink:type="arc" />
    <link:label id="lab_srt_ProductsAndServicesDomain_BD41715CC781B9C21BBB8095E7CB3030_terseLabel_en-US" xlink:label="lab_srt_ProductsAndServicesDomain_BD41715CC781B9C21BBB8095E7CB3030" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Product and Service [Domain]</link:label>
    <link:label id="lab_srt_ProductsAndServicesDomain_BD41715CC781B9C21BBB8095E7CB3030_label_en-US" xlink:label="lab_srt_ProductsAndServicesDomain_BD41715CC781B9C21BBB8095E7CB3030" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Product and Service [Domain]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2018/elts/srt-2018-01-31.xsd#srt_ProductsAndServicesDomain" xlink:label="loc_srt_ProductsAndServicesDomain_BD41715CC781B9C21BBB8095E7CB3030" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_srt_ProductsAndServicesDomain_BD41715CC781B9C21BBB8095E7CB3030" xlink:to="lab_srt_ProductsAndServicesDomain_BD41715CC781B9C21BBB8095E7CB3030" xlink:type="arc" />
    <link:label id="lab_cgnx_StandardProductandServicesMember_F384FFCF6D1656B360118095E7CB1C2B_terseLabel_en-US" xlink:label="lab_cgnx_StandardProductandServicesMember_F384FFCF6D1656B360118095E7CB1C2B" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Standard products and services</link:label>
    <link:label id="lab_cgnx_StandardProductandServicesMember_F384FFCF6D1656B360118095E7CB1C2B_label_en-US" xlink:label="lab_cgnx_StandardProductandServicesMember_F384FFCF6D1656B360118095E7CB1C2B" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Standard Product and Services [Member]</link:label>
    <link:label id="lab_cgnx_StandardProductandServicesMember_F384FFCF6D1656B360118095E7CB1C2B_documentation_en-US" xlink:label="lab_cgnx_StandardProductandServicesMember_F384FFCF6D1656B360118095E7CB1C2B" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Standard Product and Services [Member]</link:label>
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_StandardProductandServicesMember" xlink:label="loc_cgnx_StandardProductandServicesMember_F384FFCF6D1656B360118095E7CB1C2B" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_StandardProductandServicesMember_F384FFCF6D1656B360118095E7CB1C2B" xlink:to="lab_cgnx_StandardProductandServicesMember_F384FFCF6D1656B360118095E7CB1C2B" xlink:type="arc" />
    <link:label id="lab_cgnx_ApplicationofCustomerSpecificSolutionsMember_B8CADF21BE7166734B7E8095E7CC9FF7_terseLabel_en-US" xlink:label="lab_cgnx_ApplicationofCustomerSpecificSolutionsMember_B8CADF21BE7166734B7E8095E7CC9FF7" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Application-specific customer solutions</link:label>
    <link:label id="lab_cgnx_ApplicationofCustomerSpecificSolutionsMember_B8CADF21BE7166734B7E8095E7CC9FF7_label_en-US" xlink:label="lab_cgnx_ApplicationofCustomerSpecificSolutionsMember_B8CADF21BE7166734B7E8095E7CC9FF7" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Application of Customer Specific Solutions [Member]</link:label>
    <link:label id="lab_cgnx_ApplicationofCustomerSpecificSolutionsMember_B8CADF21BE7166734B7E8095E7CC9FF7_documentation_en-US" xlink:label="lab_cgnx_ApplicationofCustomerSpecificSolutionsMember_B8CADF21BE7166734B7E8095E7CC9FF7" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Application of Customer Specific Solutions [Member]</link:label>
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_ApplicationofCustomerSpecificSolutionsMember" xlink:label="loc_cgnx_ApplicationofCustomerSpecificSolutionsMember_B8CADF21BE7166734B7E8095E7CC9FF7" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_ApplicationofCustomerSpecificSolutionsMember_B8CADF21BE7166734B7E8095E7CC9FF7" xlink:to="lab_cgnx_ApplicationofCustomerSpecificSolutionsMember_B8CADF21BE7166734B7E8095E7CC9FF7" xlink:type="arc" />
    <link:label id="lab_us-gaap_DisaggregationOfRevenueLineItems_079986992CEB7DED66128095E7CC7D7D_terseLabel_en-US" xlink:label="lab_us-gaap_DisaggregationOfRevenueLineItems_079986992CEB7DED66128095E7CC7D7D" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Disaggregation of Revenue [Line Items]</link:label>
    <link:label id="lab_us-gaap_DisaggregationOfRevenueLineItems_079986992CEB7DED66128095E7CC7D7D_label_en-US" xlink:label="lab_us-gaap_DisaggregationOfRevenueLineItems_079986992CEB7DED66128095E7CC7D7D" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Disaggregation of Revenue [Line Items]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_DisaggregationOfRevenueLineItems" xlink:label="loc_us-gaap_DisaggregationOfRevenueLineItems_079986992CEB7DED66128095E7CC7D7D" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DisaggregationOfRevenueLineItems_079986992CEB7DED66128095E7CC7D7D" xlink:to="lab_us-gaap_DisaggregationOfRevenueLineItems_079986992CEB7DED66128095E7CC7D7D" xlink:type="arc" />
    <link:label id="lab_us-gaap_FairValueDisclosuresAbstract_2BB73F5355ED7BB3FDFF8095E761FEEF_label_en-US" xlink:label="lab_us-gaap_FairValueDisclosuresAbstract_2BB73F5355ED7BB3FDFF8095E761FEEF" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Fair Value Disclosures [Abstract]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_FairValueDisclosuresAbstract" xlink:label="loc_us-gaap_FairValueDisclosuresAbstract_2BB73F5355ED7BB3FDFF8095E761FEEF" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_FairValueDisclosuresAbstract_2BB73F5355ED7BB3FDFF8095E761FEEF" xlink:to="lab_us-gaap_FairValueDisclosuresAbstract_2BB73F5355ED7BB3FDFF8095E761FEEF" xlink:type="arc" />
    <link:label id="lab_us-gaap_FairValueDisclosuresTextBlock_B52E450ADDC101BBC6518095E761015F_terseLabel_en-US" xlink:label="lab_us-gaap_FairValueDisclosuresTextBlock_B52E450ADDC101BBC6518095E761015F" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Fair Value Measurements</link:label>
    <link:label id="lab_us-gaap_FairValueDisclosuresTextBlock_B52E450ADDC101BBC6518095E761015F_label_en-US" xlink:label="lab_us-gaap_FairValueDisclosuresTextBlock_B52E450ADDC101BBC6518095E761015F" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Fair Value Disclosures [Text Block]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_FairValueDisclosuresTextBlock" xlink:label="loc_us-gaap_FairValueDisclosuresTextBlock_B52E450ADDC101BBC6518095E761015F" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_FairValueDisclosuresTextBlock_B52E450ADDC101BBC6518095E761015F" xlink:to="lab_us-gaap_FairValueDisclosuresTextBlock_B52E450ADDC101BBC6518095E761015F" xlink:type="arc" />
    <link:label id="lab_us-gaap_QuarterlyFinancialInformationDisclosureAbstract_1E73A7F6910B4C82FC0A8095E8954840_label_en-US" xlink:label="lab_us-gaap_QuarterlyFinancialInformationDisclosureAbstract_1E73A7F6910B4C82FC0A8095E8954840" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Quarterly Financial Information Disclosure [Abstract]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_QuarterlyFinancialInformationDisclosureAbstract" xlink:label="loc_us-gaap_QuarterlyFinancialInformationDisclosureAbstract_1E73A7F6910B4C82FC0A8095E8954840" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_QuarterlyFinancialInformationDisclosureAbstract_1E73A7F6910B4C82FC0A8095E8954840" xlink:to="lab_us-gaap_QuarterlyFinancialInformationDisclosureAbstract_1E73A7F6910B4C82FC0A8095E8954840" xlink:type="arc" />
    <link:label id="lab_us-gaap_QuarterlyFinancialInformationTextBlock_D25248E464786003F8398095E895201E_terseLabel_en-US" xlink:label="lab_us-gaap_QuarterlyFinancialInformationTextBlock_D25248E464786003F8398095E895201E" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Selected Quarterly Financial Data (Unaudited)</link:label>
    <link:label id="lab_us-gaap_QuarterlyFinancialInformationTextBlock_D25248E464786003F8398095E895201E_label_en-US" xlink:label="lab_us-gaap_QuarterlyFinancialInformationTextBlock_D25248E464786003F8398095E895201E" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Quarterly Financial Information [Text Block]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_QuarterlyFinancialInformationTextBlock" xlink:label="loc_us-gaap_QuarterlyFinancialInformationTextBlock_D25248E464786003F8398095E895201E" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_QuarterlyFinancialInformationTextBlock_D25248E464786003F8398095E895201E" xlink:to="lab_us-gaap_QuarterlyFinancialInformationTextBlock_D25248E464786003F8398095E895201E" xlink:type="arc" />
    <link:label id="lab_us-gaap_CashAndCashEquivalentsAbstract_0A75D7B204B5C04F5481F3C8FFFD91AE_label_en-US" xlink:label="lab_us-gaap_CashAndCashEquivalentsAbstract_0A75D7B204B5C04F5481F3C8FFFD91AE" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Cash and Cash Equivalents [Abstract]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_CashAndCashEquivalentsAbstract" xlink:label="loc_us-gaap_CashAndCashEquivalentsAbstract_0A75D7B204B5C04F5481F3C8FFFD91AE" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_CashAndCashEquivalentsAbstract_0A75D7B204B5C04F5481F3C8FFFD91AE" xlink:to="lab_us-gaap_CashAndCashEquivalentsAbstract_0A75D7B204B5C04F5481F3C8FFFD91AE" xlink:type="arc" />
    <link:label id="lab_us-gaap_ScheduleOfAvailableForSaleSecuritiesTable_9615E77BC202ED5DD39EF3C8FFFDEFF2_terseLabel_en-US" xlink:label="lab_us-gaap_ScheduleOfAvailableForSaleSecuritiesTable_9615E77BC202ED5DD39EF3C8FFFDEFF2" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Schedule of Available-for-sale Securities [Table]</link:label>
    <link:label id="lab_us-gaap_ScheduleOfAvailableForSaleSecuritiesTable_9615E77BC202ED5DD39EF3C8FFFDEFF2_label_en-US" xlink:label="lab_us-gaap_ScheduleOfAvailableForSaleSecuritiesTable_9615E77BC202ED5DD39EF3C8FFFDEFF2" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Schedule of Available-for-sale Securities [Table]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ScheduleOfAvailableForSaleSecuritiesTable" xlink:label="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesTable_9615E77BC202ED5DD39EF3C8FFFDEFF2" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesTable_9615E77BC202ED5DD39EF3C8FFFDEFF2" xlink:to="lab_us-gaap_ScheduleOfAvailableForSaleSecuritiesTable_9615E77BC202ED5DD39EF3C8FFFDEFF2" xlink:type="arc" />
    <link:label id="lab_us-gaap_FinancialInstrumentAxis_C1C8C6D9F34637677CC6F3C8FFFD3724_terseLabel_en-US" xlink:label="lab_us-gaap_FinancialInstrumentAxis_C1C8C6D9F34637677CC6F3C8FFFD3724" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Financial Instrument [Axis]</link:label>
    <link:label id="lab_us-gaap_FinancialInstrumentAxis_C1C8C6D9F34637677CC6F3C8FFFD3724_label_en-US" xlink:label="lab_us-gaap_FinancialInstrumentAxis_C1C8C6D9F34637677CC6F3C8FFFD3724" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Financial Instrument [Axis]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_FinancialInstrumentAxis" xlink:label="loc_us-gaap_FinancialInstrumentAxis_C1C8C6D9F34637677CC6F3C8FFFD3724" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_FinancialInstrumentAxis_C1C8C6D9F34637677CC6F3C8FFFD3724" xlink:to="lab_us-gaap_FinancialInstrumentAxis_C1C8C6D9F34637677CC6F3C8FFFD3724" xlink:type="arc" />
    <link:label id="lab_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_32AC84320778231DAFD1F3C8FFFD2B12_terseLabel_en-US" xlink:label="lab_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_32AC84320778231DAFD1F3C8FFFD2B12" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Financial Instruments [Domain]</link:label>
    <link:label id="lab_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_32AC84320778231DAFD1F3C8FFFD2B12_label_en-US" xlink:label="lab_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_32AC84320778231DAFD1F3C8FFFD2B12" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Financial Instruments [Domain]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain" xlink:label="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_32AC84320778231DAFD1F3C8FFFD2B12" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_32AC84320778231DAFD1F3C8FFFD2B12" xlink:to="lab_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_32AC84320778231DAFD1F3C8FFFD2B12" xlink:type="arc" />
    <link:label id="lab_us-gaap_USTreasurySecuritiesMember_26B8F17F6EB381A61578F3C8FFFE3021_terseLabel_en-US" xlink:label="lab_us-gaap_USTreasurySecuritiesMember_26B8F17F6EB381A61578F3C8FFFE3021" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Treasury Bills [Member]</link:label>
    <link:label id="lab_us-gaap_USTreasurySecuritiesMember_26B8F17F6EB381A61578F3C8FFFE3021_label_en-US" xlink:label="lab_us-gaap_USTreasurySecuritiesMember_26B8F17F6EB381A61578F3C8FFFE3021" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">US Treasury Securities [Member]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_USTreasurySecuritiesMember" xlink:label="loc_us-gaap_USTreasurySecuritiesMember_26B8F17F6EB381A61578F3C8FFFE3021" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_USTreasurySecuritiesMember_26B8F17F6EB381A61578F3C8FFFE3021" xlink:to="lab_us-gaap_USTreasurySecuritiesMember_26B8F17F6EB381A61578F3C8FFFE3021" xlink:type="arc" />
    <link:label id="lab_us-gaap_CorporateBondSecuritiesMember_C2DC526434DBFFDB3323F3C8FFFE859F_terseLabel_en-US" xlink:label="lab_us-gaap_CorporateBondSecuritiesMember_C2DC526434DBFFDB3323F3C8FFFE859F" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Corporate Bonds [Member]</link:label>
    <link:label id="lab_us-gaap_CorporateBondSecuritiesMember_C2DC526434DBFFDB3323F3C8FFFE859F_label_en-US" xlink:label="lab_us-gaap_CorporateBondSecuritiesMember_C2DC526434DBFFDB3323F3C8FFFE859F" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Corporate Bond Securities [Member]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_CorporateBondSecuritiesMember" xlink:label="loc_us-gaap_CorporateBondSecuritiesMember_C2DC526434DBFFDB3323F3C8FFFE859F" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_CorporateBondSecuritiesMember_C2DC526434DBFFDB3323F3C8FFFE859F" xlink:to="lab_us-gaap_CorporateBondSecuritiesMember_C2DC526434DBFFDB3323F3C8FFFE859F" xlink:type="arc" />
    <link:label id="lab_us-gaap_AssetBackedSecuritiesMember_849DD5284725175BAEEDF3C8FFFE745E_terseLabel_en-US" xlink:label="lab_us-gaap_AssetBackedSecuritiesMember_849DD5284725175BAEEDF3C8FFFE745E" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Asset-Backed Securities [Member]</link:label>
    <link:label id="lab_us-gaap_AssetBackedSecuritiesMember_849DD5284725175BAEEDF3C8FFFE745E_label_en-US" xlink:label="lab_us-gaap_AssetBackedSecuritiesMember_849DD5284725175BAEEDF3C8FFFE745E" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Asset-backed Securities [Member]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_AssetBackedSecuritiesMember" xlink:label="loc_us-gaap_AssetBackedSecuritiesMember_849DD5284725175BAEEDF3C8FFFE745E" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AssetBackedSecuritiesMember_849DD5284725175BAEEDF3C8FFFE745E" xlink:to="lab_us-gaap_AssetBackedSecuritiesMember_849DD5284725175BAEEDF3C8FFFE745E" xlink:type="arc" />
    <link:label id="lab_us-gaap_SovereignDebtSecuritiesMember_794110867F610A930343F3C8FFFEB301_terseLabel_en-US" xlink:label="lab_us-gaap_SovereignDebtSecuritiesMember_794110867F610A930343F3C8FFFEB301" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Sovereign Bonds [Member]</link:label>
    <link:label id="lab_us-gaap_SovereignDebtSecuritiesMember_794110867F610A930343F3C8FFFEB301_label_en-US" xlink:label="lab_us-gaap_SovereignDebtSecuritiesMember_794110867F610A930343F3C8FFFEB301" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Sovereign Debt Securities [Member]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_SovereignDebtSecuritiesMember" xlink:label="loc_us-gaap_SovereignDebtSecuritiesMember_794110867F610A930343F3C8FFFEB301" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_SovereignDebtSecuritiesMember_794110867F610A930343F3C8FFFEB301" xlink:to="lab_us-gaap_SovereignDebtSecuritiesMember_794110867F610A930343F3C8FFFEB301" xlink:type="arc" />
    <link:label id="lab_us-gaap_MunicipalBondsMember_33F8BC26E13487951015F3C8FFFF4970_terseLabel_en-US" xlink:label="lab_us-gaap_MunicipalBondsMember_33F8BC26E13487951015F3C8FFFF4970" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Municipal Bonds [Member]</link:label>
    <link:label id="lab_us-gaap_MunicipalBondsMember_33F8BC26E13487951015F3C8FFFF4970_label_en-US" xlink:label="lab_us-gaap_MunicipalBondsMember_33F8BC26E13487951015F3C8FFFF4970" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Municipal Bonds [Member]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_MunicipalBondsMember" xlink:label="loc_us-gaap_MunicipalBondsMember_33F8BC26E13487951015F3C8FFFF4970" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_MunicipalBondsMember_33F8BC26E13487951015F3C8FFFF4970" xlink:to="lab_us-gaap_MunicipalBondsMember_33F8BC26E13487951015F3C8FFFF4970" xlink:type="arc" />
    <link:label id="lab_cgnx_AgencyBondsMember_29DDFCFC1A1EE8CD7BCAF3C8FFFE08C9_terseLabel_en-US" xlink:label="lab_cgnx_AgencyBondsMember_29DDFCFC1A1EE8CD7BCAF3C8FFFE08C9" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Agency Bonds [Member]</link:label>
    <link:label id="lab_cgnx_AgencyBondsMember_29DDFCFC1A1EE8CD7BCAF3C8FFFE08C9_label_en-US" xlink:label="lab_cgnx_AgencyBondsMember_29DDFCFC1A1EE8CD7BCAF3C8FFFE08C9" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Agency Bonds [Member]</link:label>
    <link:label id="lab_cgnx_AgencyBondsMember_29DDFCFC1A1EE8CD7BCAF3C8FFFE08C9_documentation_en-US" xlink:label="lab_cgnx_AgencyBondsMember_29DDFCFC1A1EE8CD7BCAF3C8FFFE08C9" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Agency bond.</link:label>
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_AgencyBondsMember" xlink:label="loc_cgnx_AgencyBondsMember_29DDFCFC1A1EE8CD7BCAF3C8FFFE08C9" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_AgencyBondsMember_29DDFCFC1A1EE8CD7BCAF3C8FFFE08C9" xlink:to="lab_cgnx_AgencyBondsMember_29DDFCFC1A1EE8CD7BCAF3C8FFFE08C9" xlink:type="arc" />
    <link:label id="lab_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_2EC4776CE6C216A35CC1F3C8FFFF13A5_terseLabel_en-US" xlink:label="lab_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_2EC4776CE6C216A35CC1F3C8FFFF13A5" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Debt Securities, Available-for-sale [Line Items]</link:label>
    <link:label id="lab_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_2EC4776CE6C216A35CC1F3C8FFFF13A5_label_en-US" xlink:label="lab_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_2EC4776CE6C216A35CC1F3C8FFFF13A5" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Debt Securities, Available-for-sale [Line Items]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems" xlink:label="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_2EC4776CE6C216A35CC1F3C8FFFF13A5" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_2EC4776CE6C216A35CC1F3C8FFFF13A5" xlink:to="lab_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_2EC4776CE6C216A35CC1F3C8FFFF13A5" xlink:type="arc" />
    <link:label id="lab_us-gaap_AvailableForSaleSecuritiesDebtMaturitiesWithinOneYearFairValue_85301040D5566C243BC7F3C8FFFFF030_terseLabel_en-US" xlink:label="lab_us-gaap_AvailableForSaleSecuritiesDebtMaturitiesWithinOneYearFairValue_85301040D5566C243BC7F3C8FFFFF030" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Less than 1 Year</link:label>
    <link:label id="lab_us-gaap_AvailableForSaleSecuritiesDebtMaturitiesWithinOneYearFairValue_85301040D5566C243BC7F3C8FFFFF030_label_en-US" xlink:label="lab_us-gaap_AvailableForSaleSecuritiesDebtMaturitiesWithinOneYearFairValue_85301040D5566C243BC7F3C8FFFFF030" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Debt Securities, Available-for-sale, Maturity, Allocated and Single Maturity Date, within One Year, Fair Value</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_AvailableForSaleSecuritiesDebtMaturitiesWithinOneYearFairValue" xlink:label="loc_us-gaap_AvailableForSaleSecuritiesDebtMaturitiesWithinOneYearFairValue_85301040D5566C243BC7F3C8FFFFF030" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AvailableForSaleSecuritiesDebtMaturitiesWithinOneYearFairValue_85301040D5566C243BC7F3C8FFFFF030" xlink:to="lab_us-gaap_AvailableForSaleSecuritiesDebtMaturitiesWithinOneYearFairValue_85301040D5566C243BC7F3C8FFFFF030" xlink:type="arc" />
    <link:label id="lab_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterOneYearBeforeTwoYearsFairValue_9069B0623FBFC2BFEEE5F3C8FFFFDB7C_terseLabel_en-US" xlink:label="lab_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterOneYearBeforeTwoYearsFairValue_9069B0623FBFC2BFEEE5F3C8FFFFDB7C" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">1-2 Years</link:label>
    <link:label id="lab_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterOneYearBeforeTwoYearsFairValue_9069B0623FBFC2BFEEE5F3C8FFFFDB7C_label_en-US" xlink:label="lab_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterOneYearBeforeTwoYearsFairValue_9069B0623FBFC2BFEEE5F3C8FFFFDB7C" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Available For Sale Securities Debt Maturities After One Year Before Two Years Fair Value</link:label>
    <link:label id="lab_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterOneYearBeforeTwoYearsFairValue_9069B0623FBFC2BFEEE5F3C8FFFFDB7C_documentation_en-US" xlink:label="lab_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterOneYearBeforeTwoYearsFairValue_9069B0623FBFC2BFEEE5F3C8FFFFDB7C" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">This item represents the fair value of debt securities which are expected to mature within one year of the balance sheet date and which are categorized neither as held-to-maturity nor trading securities.</link:label>
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterOneYearBeforeTwoYearsFairValue" xlink:label="loc_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterOneYearBeforeTwoYearsFairValue_9069B0623FBFC2BFEEE5F3C8FFFFDB7C" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterOneYearBeforeTwoYearsFairValue_9069B0623FBFC2BFEEE5F3C8FFFFDB7C" xlink:to="lab_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterOneYearBeforeTwoYearsFairValue_9069B0623FBFC2BFEEE5F3C8FFFFDB7C" xlink:type="arc" />
    <link:label id="lab_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterTwoYearsBeforeThreeYearsFairValue_16DF33ED3A30E4AF4255F3C8FFFFEE9E_terseLabel_en-US" xlink:label="lab_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterTwoYearsBeforeThreeYearsFairValue_16DF33ED3A30E4AF4255F3C8FFFFEE9E" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">2-3 Years</link:label>
    <link:label id="lab_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterTwoYearsBeforeThreeYearsFairValue_16DF33ED3A30E4AF4255F3C8FFFFEE9E_label_en-US" xlink:label="lab_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterTwoYearsBeforeThreeYearsFairValue_16DF33ED3A30E4AF4255F3C8FFFFEE9E" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Available For Sale Securities Debt Maturities After Two Years Before Three Years Fair Value</link:label>
    <link:label id="lab_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterTwoYearsBeforeThreeYearsFairValue_16DF33ED3A30E4AF4255F3C8FFFFEE9E_documentation_en-US" xlink:label="lab_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterTwoYearsBeforeThreeYearsFairValue_16DF33ED3A30E4AF4255F3C8FFFFEE9E" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Available-for-sale securities, debt maturities after second year but before third year, fair value.</link:label>
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterTwoYearsBeforeThreeYearsFairValue" xlink:label="loc_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterTwoYearsBeforeThreeYearsFairValue_16DF33ED3A30E4AF4255F3C8FFFFEE9E" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterTwoYearsBeforeThreeYearsFairValue_16DF33ED3A30E4AF4255F3C8FFFFEE9E" xlink:to="lab_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterTwoYearsBeforeThreeYearsFairValue_16DF33ED3A30E4AF4255F3C8FFFFEE9E" xlink:type="arc" />
    <link:label id="lab_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterThreeYearsBeforeFourYearsFairValue_52F72B3B6AEF080A2D70F3C8FFFF0EBA_terseLabel_en-US" xlink:label="lab_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterThreeYearsBeforeFourYearsFairValue_52F72B3B6AEF080A2D70F3C8FFFF0EBA" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">3-4 Years</link:label>
    <link:label id="lab_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterThreeYearsBeforeFourYearsFairValue_52F72B3B6AEF080A2D70F3C8FFFF0EBA_label_en-US" xlink:label="lab_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterThreeYearsBeforeFourYearsFairValue_52F72B3B6AEF080A2D70F3C8FFFF0EBA" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Available For Sale Securities Debt Maturities After Three Years Before Four Years Fair Value</link:label>
    <link:label id="lab_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterThreeYearsBeforeFourYearsFairValue_52F72B3B6AEF080A2D70F3C8FFFF0EBA_documentation_en-US" xlink:label="lab_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterThreeYearsBeforeFourYearsFairValue_52F72B3B6AEF080A2D70F3C8FFFF0EBA" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Available-for-sale securities, debt maturities after third year but before fourth year, fair value.</link:label>
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterThreeYearsBeforeFourYearsFairValue" xlink:label="loc_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterThreeYearsBeforeFourYearsFairValue_52F72B3B6AEF080A2D70F3C8FFFF0EBA" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterThreeYearsBeforeFourYearsFairValue_52F72B3B6AEF080A2D70F3C8FFFF0EBA" xlink:to="lab_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterThreeYearsBeforeFourYearsFairValue_52F72B3B6AEF080A2D70F3C8FFFF0EBA" xlink:type="arc" />
    <link:label id="lab_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterFourYearsBeforeFiveYearsFairValue_32E87E987C989EEA606BF3C90000D3E0_terseLabel_en-US" xlink:label="lab_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterFourYearsBeforeFiveYearsFairValue_32E87E987C989EEA606BF3C90000D3E0" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">4-5 Years</link:label>
    <link:label id="lab_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterFourYearsBeforeFiveYearsFairValue_32E87E987C989EEA606BF3C90000D3E0_label_en-US" xlink:label="lab_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterFourYearsBeforeFiveYearsFairValue_32E87E987C989EEA606BF3C90000D3E0" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Available For Sale Securities Debt Maturities After Four Years Before Five Years Fair Value</link:label>
    <link:label id="lab_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterFourYearsBeforeFiveYearsFairValue_32E87E987C989EEA606BF3C90000D3E0_documentation_en-US" xlink:label="lab_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterFourYearsBeforeFiveYearsFairValue_32E87E987C989EEA606BF3C90000D3E0" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Available-for-sale securities, debt maturities after fourth year but before fifth year, fair value.</link:label>
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterFourYearsBeforeFiveYearsFairValue" xlink:label="loc_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterFourYearsBeforeFiveYearsFairValue_32E87E987C989EEA606BF3C90000D3E0" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterFourYearsBeforeFiveYearsFairValue_32E87E987C989EEA606BF3C90000D3E0" xlink:to="lab_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterFourYearsBeforeFiveYearsFairValue_32E87E987C989EEA606BF3C90000D3E0" xlink:type="arc" />
    <link:label id="lab_us-gaap_AvailableForSaleSecuritiesDebtSecurities_0ACA170D48AB715F8EB7F3C90000CFF8_totalLabel_en-US" xlink:label="lab_us-gaap_AvailableForSaleSecuritiesDebtSecurities_0ACA170D48AB715F8EB7F3C90000CFF8" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xml:lang="en-US">Fair Value, Total</link:label>
    <link:label id="lab_us-gaap_AvailableForSaleSecuritiesDebtSecurities_0ACA170D48AB715F8EB7F3C90000CFF8_label_en-US" xlink:label="lab_us-gaap_AvailableForSaleSecuritiesDebtSecurities_0ACA170D48AB715F8EB7F3C90000CFF8" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Debt Securities, Available-for-sale</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_AvailableForSaleSecuritiesDebtSecurities" xlink:label="loc_us-gaap_AvailableForSaleSecuritiesDebtSecurities_0ACA170D48AB715F8EB7F3C90000CFF8" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AvailableForSaleSecuritiesDebtSecurities_0ACA170D48AB715F8EB7F3C90000CFF8" xlink:to="lab_us-gaap_AvailableForSaleSecuritiesDebtSecurities_0ACA170D48AB715F8EB7F3C90000CFF8" xlink:type="arc" />
    <link:label id="lab_us-gaap_InventoryDisclosureAbstract_2433393BE8BD2FF647688095E5FA5379_label_en-US" xlink:label="lab_us-gaap_InventoryDisclosureAbstract_2433393BE8BD2FF647688095E5FA5379" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Inventory Disclosure [Abstract]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_InventoryDisclosureAbstract" xlink:label="loc_us-gaap_InventoryDisclosureAbstract_2433393BE8BD2FF647688095E5FA5379" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_InventoryDisclosureAbstract_2433393BE8BD2FF647688095E5FA5379" xlink:to="lab_us-gaap_InventoryDisclosureAbstract_2433393BE8BD2FF647688095E5FA5379" xlink:type="arc" />
    <link:label id="lab_us-gaap_InventoryRawMaterialsNetOfReserves_730E3BB60E49603068398095E5FA7AE5_terseLabel_en-US" xlink:label="lab_us-gaap_InventoryRawMaterialsNetOfReserves_730E3BB60E49603068398095E5FA7AE5" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Raw materials</link:label>
    <link:label id="lab_us-gaap_InventoryRawMaterialsNetOfReserves_730E3BB60E49603068398095E5FA7AE5_label_en-US" xlink:label="lab_us-gaap_InventoryRawMaterialsNetOfReserves_730E3BB60E49603068398095E5FA7AE5" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Inventory, Raw Materials, Net of Reserves</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_InventoryRawMaterialsNetOfReserves" xlink:label="loc_us-gaap_InventoryRawMaterialsNetOfReserves_730E3BB60E49603068398095E5FA7AE5" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_InventoryRawMaterialsNetOfReserves_730E3BB60E49603068398095E5FA7AE5" xlink:to="lab_us-gaap_InventoryRawMaterialsNetOfReserves_730E3BB60E49603068398095E5FA7AE5" xlink:type="arc" />
    <link:label id="lab_us-gaap_InventoryWorkInProcessNetOfReserves_4F65B24A2C003F2BC34D8095E5FA4D7D_terseLabel_en-US" xlink:label="lab_us-gaap_InventoryWorkInProcessNetOfReserves_4F65B24A2C003F2BC34D8095E5FA4D7D" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Work-in-process</link:label>
    <link:label id="lab_us-gaap_InventoryWorkInProcessNetOfReserves_4F65B24A2C003F2BC34D8095E5FA4D7D_label_en-US" xlink:label="lab_us-gaap_InventoryWorkInProcessNetOfReserves_4F65B24A2C003F2BC34D8095E5FA4D7D" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Inventory, Work in Process, Net of Reserves</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_InventoryWorkInProcessNetOfReserves" xlink:label="loc_us-gaap_InventoryWorkInProcessNetOfReserves_4F65B24A2C003F2BC34D8095E5FA4D7D" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_InventoryWorkInProcessNetOfReserves_4F65B24A2C003F2BC34D8095E5FA4D7D" xlink:to="lab_us-gaap_InventoryWorkInProcessNetOfReserves_4F65B24A2C003F2BC34D8095E5FA4D7D" xlink:type="arc" />
    <link:label id="lab_us-gaap_InventoryFinishedGoodsNetOfReserves_0B9CA83D4951956106468095E5FA7218_terseLabel_en-US" xlink:label="lab_us-gaap_InventoryFinishedGoodsNetOfReserves_0B9CA83D4951956106468095E5FA7218" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Finished goods</link:label>
    <link:label id="lab_us-gaap_InventoryFinishedGoodsNetOfReserves_0B9CA83D4951956106468095E5FA7218_label_en-US" xlink:label="lab_us-gaap_InventoryFinishedGoodsNetOfReserves_0B9CA83D4951956106468095E5FA7218" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Inventory, Finished Goods, Net of Reserves</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_InventoryFinishedGoodsNetOfReserves" xlink:label="loc_us-gaap_InventoryFinishedGoodsNetOfReserves_0B9CA83D4951956106468095E5FA7218" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_InventoryFinishedGoodsNetOfReserves_0B9CA83D4951956106468095E5FA7218" xlink:to="lab_us-gaap_InventoryFinishedGoodsNetOfReserves_0B9CA83D4951956106468095E5FA7218" xlink:type="arc" />
    <link:label id="lab_us-gaap_InventoryNet_AFDC5F996F9953FB3EA98095E5FAE72E_totalLabel_en-US" xlink:label="lab_us-gaap_InventoryNet_AFDC5F996F9953FB3EA98095E5FAE72E" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xml:lang="en-US">Inventories</link:label>
    <link:label id="lab_us-gaap_InventoryNet_AFDC5F996F9953FB3EA98095E5FAE72E_label_en-US" xlink:label="lab_us-gaap_InventoryNet_AFDC5F996F9953FB3EA98095E5FAE72E" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Inventory, Net</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_InventoryNet" xlink:label="loc_us-gaap_InventoryNet_AFDC5F996F9953FB3EA98095E5FAE72E" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_InventoryNet_AFDC5F996F9953FB3EA98095E5FAE72E" xlink:to="lab_us-gaap_InventoryNet_AFDC5F996F9953FB3EA98095E5FAE72E" xlink:type="arc" />
    <link:label id="lab_us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable_2ABFF03934135A52572237125B6E52F1_terseLabel_en-US" xlink:label="lab_us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable_2ABFF03934135A52572237125B6E52F1" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Schedule of Business Acquisitions, by Acquisition [Table]</link:label>
    <link:label id="lab_us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable_2ABFF03934135A52572237125B6E52F1_label_en-US" xlink:label="lab_us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable_2ABFF03934135A52572237125B6E52F1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Schedule of Business Acquisitions, by Acquisition [Table]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable" xlink:label="loc_us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable_2ABFF03934135A52572237125B6E52F1" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable_2ABFF03934135A52572237125B6E52F1" xlink:to="lab_us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable_2ABFF03934135A52572237125B6E52F1" xlink:type="arc" />
    <link:label id="lab_us-gaap_BusinessAcquisitionAxis_5A7C93BAF2747A5F600637125B6F44C2_terseLabel_en-US" xlink:label="lab_us-gaap_BusinessAcquisitionAxis_5A7C93BAF2747A5F600637125B6F44C2" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Business Acquisition [Axis]</link:label>
    <link:label id="lab_us-gaap_BusinessAcquisitionAxis_5A7C93BAF2747A5F600637125B6F44C2_label_en-US" xlink:label="lab_us-gaap_BusinessAcquisitionAxis_5A7C93BAF2747A5F600637125B6F44C2" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Business Acquisition [Axis]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_BusinessAcquisitionAxis" xlink:label="loc_us-gaap_BusinessAcquisitionAxis_5A7C93BAF2747A5F600637125B6F44C2" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_BusinessAcquisitionAxis_5A7C93BAF2747A5F600637125B6F44C2" xlink:to="lab_us-gaap_BusinessAcquisitionAxis_5A7C93BAF2747A5F600637125B6F44C2" xlink:type="arc" />
    <link:label id="lab_us-gaap_BusinessAcquisitionAcquireeDomain_5982EF170F03FA776DA437125B6F94CB_terseLabel_en-US" xlink:label="lab_us-gaap_BusinessAcquisitionAcquireeDomain_5982EF170F03FA776DA437125B6F94CB" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Business Acquisition, Acquiree [Domain]</link:label>
    <link:label id="lab_us-gaap_BusinessAcquisitionAcquireeDomain_5982EF170F03FA776DA437125B6F94CB_label_en-US" xlink:label="lab_us-gaap_BusinessAcquisitionAcquireeDomain_5982EF170F03FA776DA437125B6F94CB" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Business Acquisition, Acquiree [Domain]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_BusinessAcquisitionAcquireeDomain" xlink:label="loc_us-gaap_BusinessAcquisitionAcquireeDomain_5982EF170F03FA776DA437125B6F94CB" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_BusinessAcquisitionAcquireeDomain_5982EF170F03FA776DA437125B6F94CB" xlink:to="lab_us-gaap_BusinessAcquisitionAcquireeDomain_5982EF170F03FA776DA437125B6F94CB" xlink:type="arc" />
    <link:label id="lab_cgnx_SualabCo.Ltd.Member_62B8C8326652AF19EDE237125B6FF359_terseLabel_en-US" xlink:label="lab_cgnx_SualabCo.Ltd.Member_62B8C8326652AF19EDE237125B6FF359" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Sualab Co., Ltd. [Member]</link:label>
    <link:label id="lab_cgnx_SualabCo.Ltd.Member_62B8C8326652AF19EDE237125B6FF359_label_en-US" xlink:label="lab_cgnx_SualabCo.Ltd.Member_62B8C8326652AF19EDE237125B6FF359" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Sualab Co., Ltd. [Member]</link:label>
    <link:label id="lab_cgnx_SualabCo.Ltd.Member_62B8C8326652AF19EDE237125B6FF359_documentation_en-US" xlink:label="lab_cgnx_SualabCo.Ltd.Member_62B8C8326652AF19EDE237125B6FF359" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Sualab Co., Ltd. [Member]</link:label>
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_SualabCo.Ltd.Member" xlink:label="loc_cgnx_SualabCo.Ltd.Member_62B8C8326652AF19EDE237125B6FF359" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_SualabCo.Ltd.Member_62B8C8326652AF19EDE237125B6FF359" xlink:to="lab_cgnx_SualabCo.Ltd.Member_62B8C8326652AF19EDE237125B6FF359" xlink:type="arc" />
    <link:label id="lab_cgnx_CompletedTechnologyMember_D7ED7D5D82C2D9CDA08937125B709CC3_terseLabel_en-US" xlink:label="lab_cgnx_CompletedTechnologyMember_D7ED7D5D82C2D9CDA08937125B709CC3" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Completed Technology [Member]</link:label>
    <link:label id="lab_cgnx_CompletedTechnologyMember_D7ED7D5D82C2D9CDA08937125B709CC3_label_en-US" xlink:label="lab_cgnx_CompletedTechnologyMember_D7ED7D5D82C2D9CDA08937125B709CC3" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Completed Technology [Member]</link:label>
    <link:label id="lab_cgnx_CompletedTechnologyMember_D7ED7D5D82C2D9CDA08937125B709CC3_documentation_en-US" xlink:label="lab_cgnx_CompletedTechnologyMember_D7ED7D5D82C2D9CDA08937125B709CC3" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Completed Technology [Member]</link:label>
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_CompletedTechnologyMember" xlink:label="loc_cgnx_CompletedTechnologyMember_D7ED7D5D82C2D9CDA08937125B709CC3" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_CompletedTechnologyMember_D7ED7D5D82C2D9CDA08937125B709CC3" xlink:to="lab_cgnx_CompletedTechnologyMember_D7ED7D5D82C2D9CDA08937125B709CC3" xlink:type="arc" />
    <link:label id="lab_us-gaap_CustomerRelationshipsMember_95BE986831015E5A901137125B70F939_terseLabel_en-US" xlink:label="lab_us-gaap_CustomerRelationshipsMember_95BE986831015E5A901137125B70F939" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Customer Relationships [Member]</link:label>
    <link:label id="lab_us-gaap_CustomerRelationshipsMember_95BE986831015E5A901137125B70F939_label_en-US" xlink:label="lab_us-gaap_CustomerRelationshipsMember_95BE986831015E5A901137125B70F939" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Customer Relationships [Member]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_CustomerRelationshipsMember" xlink:label="loc_us-gaap_CustomerRelationshipsMember_95BE986831015E5A901137125B70F939" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_CustomerRelationshipsMember_95BE986831015E5A901137125B70F939" xlink:to="lab_us-gaap_CustomerRelationshipsMember_95BE986831015E5A901137125B70F939" xlink:type="arc" />
    <link:label id="lab_srt_RangeAxis_EEBAEE32B875BC8DDC3E37125B713A52_terseLabel_en-US" xlink:label="lab_srt_RangeAxis_EEBAEE32B875BC8DDC3E37125B713A52" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Range [Axis]</link:label>
    <link:label id="lab_srt_RangeAxis_EEBAEE32B875BC8DDC3E37125B713A52_label_en-US" xlink:label="lab_srt_RangeAxis_EEBAEE32B875BC8DDC3E37125B713A52" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Range [Axis]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2018/elts/srt-2018-01-31.xsd#srt_RangeAxis" xlink:label="loc_srt_RangeAxis_EEBAEE32B875BC8DDC3E37125B713A52" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_srt_RangeAxis_EEBAEE32B875BC8DDC3E37125B713A52" xlink:to="lab_srt_RangeAxis_EEBAEE32B875BC8DDC3E37125B713A52" xlink:type="arc" />
    <link:label id="lab_srt_RangeMember_163B9AE7A97CAF7715D137125B717C32_terseLabel_en-US" xlink:label="lab_srt_RangeMember_163B9AE7A97CAF7715D137125B717C32" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Range [Domain]</link:label>
    <link:label id="lab_srt_RangeMember_163B9AE7A97CAF7715D137125B717C32_label_en-US" xlink:label="lab_srt_RangeMember_163B9AE7A97CAF7715D137125B717C32" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Range [Domain]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2018/elts/srt-2018-01-31.xsd#srt_RangeMember" xlink:label="loc_srt_RangeMember_163B9AE7A97CAF7715D137125B717C32" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_srt_RangeMember_163B9AE7A97CAF7715D137125B717C32" xlink:to="lab_srt_RangeMember_163B9AE7A97CAF7715D137125B717C32" xlink:type="arc" />
    <link:label id="lab_srt_MinimumMember_B54AE2FC8017496DD86537125B71580E_terseLabel_en-US" xlink:label="lab_srt_MinimumMember_B54AE2FC8017496DD86537125B71580E" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Minimum [Member]</link:label>
    <link:label id="lab_srt_MinimumMember_B54AE2FC8017496DD86537125B71580E_label_en-US" xlink:label="lab_srt_MinimumMember_B54AE2FC8017496DD86537125B71580E" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Minimum [Member]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2018/elts/srt-2018-01-31.xsd#srt_MinimumMember" xlink:label="loc_srt_MinimumMember_B54AE2FC8017496DD86537125B71580E" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_srt_MinimumMember_B54AE2FC8017496DD86537125B71580E" xlink:to="lab_srt_MinimumMember_B54AE2FC8017496DD86537125B71580E" xlink:type="arc" />
    <link:label id="lab_srt_MaximumMember_261A41E1215E1D58DBA237125B729148_terseLabel_en-US" xlink:label="lab_srt_MaximumMember_261A41E1215E1D58DBA237125B729148" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Maximum [Member]</link:label>
    <link:label id="lab_srt_MaximumMember_261A41E1215E1D58DBA237125B729148_label_en-US" xlink:label="lab_srt_MaximumMember_261A41E1215E1D58DBA237125B729148" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Maximum [Member]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2018/elts/srt-2018-01-31.xsd#srt_MaximumMember" xlink:label="loc_srt_MaximumMember_261A41E1215E1D58DBA237125B729148" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_srt_MaximumMember_261A41E1215E1D58DBA237125B729148" xlink:to="lab_srt_MaximumMember_261A41E1215E1D58DBA237125B729148" xlink:type="arc" />
    <link:label id="lab_us-gaap_BusinessAcquisitionLineItems_4C2117681C0883FFD01B37125B7260F1_terseLabel_en-US" xlink:label="lab_us-gaap_BusinessAcquisitionLineItems_4C2117681C0883FFD01B37125B7260F1" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Business Acquisition [Line Items]</link:label>
    <link:label id="lab_us-gaap_BusinessAcquisitionLineItems_4C2117681C0883FFD01B37125B7260F1_label_en-US" xlink:label="lab_us-gaap_BusinessAcquisitionLineItems_4C2117681C0883FFD01B37125B7260F1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Business Acquisition [Line Items]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_BusinessAcquisitionLineItems" xlink:label="loc_us-gaap_BusinessAcquisitionLineItems_4C2117681C0883FFD01B37125B7260F1" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_4C2117681C0883FFD01B37125B7260F1" xlink:to="lab_us-gaap_BusinessAcquisitionLineItems_4C2117681C0883FFD01B37125B7260F1" xlink:type="arc" />
    <link:label id="lab_us-gaap_AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife_B1CFE3981CB44B1D6C6A37125B72C3A6_terseLabel_en-US" xlink:label="lab_us-gaap_AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife_B1CFE3981CB44B1D6C6A37125B72C3A6" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Intangible assets, useful life</link:label>
    <link:label id="lab_us-gaap_AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife_B1CFE3981CB44B1D6C6A37125B72C3A6_label_en-US" xlink:label="lab_us-gaap_AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife_B1CFE3981CB44B1D6C6A37125B72C3A6" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Acquired Finite-lived Intangible Assets, Weighted Average Useful Life</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife" xlink:label="loc_us-gaap_AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife_B1CFE3981CB44B1D6C6A37125B72C3A6" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife_B1CFE3981CB44B1D6C6A37125B72C3A6" xlink:to="lab_us-gaap_AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife_B1CFE3981CB44B1D6C6A37125B72C3A6" xlink:type="arc" />
    <link:label id="lab_us-gaap_BusinessAcquisitionPurchasePriceAllocationGoodwillExpectedTaxDeductibleAmount_277419A4BCF1721B99B637125B72F31A_terseLabel_en-US" xlink:label="lab_us-gaap_BusinessAcquisitionPurchasePriceAllocationGoodwillExpectedTaxDeductibleAmount_277419A4BCF1721B99B637125B72F31A" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Tax deductible goodwill</link:label>
    <link:label id="lab_us-gaap_BusinessAcquisitionPurchasePriceAllocationGoodwillExpectedTaxDeductibleAmount_277419A4BCF1721B99B637125B72F31A_label_en-US" xlink:label="lab_us-gaap_BusinessAcquisitionPurchasePriceAllocationGoodwillExpectedTaxDeductibleAmount_277419A4BCF1721B99B637125B72F31A" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Business Acquisition, Goodwill, Expected Tax Deductible Amount</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_BusinessAcquisitionPurchasePriceAllocationGoodwillExpectedTaxDeductibleAmount" xlink:label="loc_us-gaap_BusinessAcquisitionPurchasePriceAllocationGoodwillExpectedTaxDeductibleAmount_277419A4BCF1721B99B637125B72F31A" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_BusinessAcquisitionPurchasePriceAllocationGoodwillExpectedTaxDeductibleAmount_277419A4BCF1721B99B637125B72F31A" xlink:to="lab_us-gaap_BusinessAcquisitionPurchasePriceAllocationGoodwillExpectedTaxDeductibleAmount_277419A4BCF1721B99B637125B72F31A" xlink:type="arc" />
    <link:label id="lab_us-gaap_BusinessCombinationConsiderationTransferred1_DDAD9CE3A0CFE169B12E37125B72B8D7_terseLabel_en-US" xlink:label="lab_us-gaap_BusinessCombinationConsiderationTransferred1_DDAD9CE3A0CFE169B12E37125B72B8D7" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Purchase price</link:label>
    <link:label id="lab_us-gaap_BusinessCombinationConsiderationTransferred1_DDAD9CE3A0CFE169B12E37125B72B8D7_label_en-US" xlink:label="lab_us-gaap_BusinessCombinationConsiderationTransferred1_DDAD9CE3A0CFE169B12E37125B72B8D7" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Business Combination, Consideration Transferred</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_BusinessCombinationConsiderationTransferred1" xlink:label="loc_us-gaap_BusinessCombinationConsiderationTransferred1_DDAD9CE3A0CFE169B12E37125B72B8D7" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_BusinessCombinationConsiderationTransferred1_DDAD9CE3A0CFE169B12E37125B72B8D7" xlink:to="lab_us-gaap_BusinessCombinationConsiderationTransferred1_DDAD9CE3A0CFE169B12E37125B72B8D7" xlink:type="arc" />
    <link:label id="lab_us-gaap_PaymentsToAcquireBusinessesGross_B010D6C362673E12568D37125B7279DD_terseLabel_en-US" xlink:label="lab_us-gaap_PaymentsToAcquireBusinessesGross_B010D6C362673E12568D37125B7279DD" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Cash paid in purchase price</link:label>
    <link:label id="lab_us-gaap_PaymentsToAcquireBusinessesGross_B010D6C362673E12568D37125B7279DD_label_en-US" xlink:label="lab_us-gaap_PaymentsToAcquireBusinessesGross_B010D6C362673E12568D37125B7279DD" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Payments to Acquire Businesses, Gross</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_PaymentsToAcquireBusinessesGross" xlink:label="loc_us-gaap_PaymentsToAcquireBusinessesGross_B010D6C362673E12568D37125B7279DD" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_PaymentsToAcquireBusinessesGross_B010D6C362673E12568D37125B7279DD" xlink:to="lab_us-gaap_PaymentsToAcquireBusinessesGross_B010D6C362673E12568D37125B7279DD" xlink:type="arc" />
    <link:label id="lab_us-gaap_BusinessCombinationContingentConsiderationLiability_5433D3CB3389F8E76DF137125B7361B3_terseLabel_en-US" xlink:label="lab_us-gaap_BusinessCombinationContingentConsiderationLiability_5433D3CB3389F8E76DF137125B7361B3" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Contingent consideration liabilities</link:label>
    <link:label id="lab_us-gaap_BusinessCombinationContingentConsiderationLiability_5433D3CB3389F8E76DF137125B7361B3_label_en-US" xlink:label="lab_us-gaap_BusinessCombinationContingentConsiderationLiability_5433D3CB3389F8E76DF137125B7361B3" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Business Combination, Contingent Consideration, Liability</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_BusinessCombinationContingentConsiderationLiability" xlink:label="loc_us-gaap_BusinessCombinationContingentConsiderationLiability_5433D3CB3389F8E76DF137125B7361B3" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_BusinessCombinationContingentConsiderationLiability_5433D3CB3389F8E76DF137125B7361B3" xlink:to="lab_us-gaap_BusinessCombinationContingentConsiderationLiability_5433D3CB3389F8E76DF137125B7361B3" xlink:type="arc" />
    <link:label id="lab_us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosureAbstract_CA03A4B6DA30A432D1468095E89AEC8D_label_en-US" xlink:label="lab_us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosureAbstract_CA03A4B6DA30A432D1468095E89AEC8D" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Derivative Instruments and Hedging Activities Disclosure [Abstract]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosureAbstract" xlink:label="loc_us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosureAbstract_CA03A4B6DA30A432D1468095E89AEC8D" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosureAbstract_CA03A4B6DA30A432D1468095E89AEC8D" xlink:to="lab_us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosureAbstract_CA03A4B6DA30A432D1468095E89AEC8D" xlink:type="arc" />
    <link:label id="lab_us-gaap_DerivativeTable_6B2962033CAC20628A4B8095E89BE5AC_terseLabel_en-US" xlink:label="lab_us-gaap_DerivativeTable_6B2962033CAC20628A4B8095E89BE5AC" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Derivative [Table]</link:label>
    <link:label id="lab_us-gaap_DerivativeTable_6B2962033CAC20628A4B8095E89BE5AC_label_en-US" xlink:label="lab_us-gaap_DerivativeTable_6B2962033CAC20628A4B8095E89BE5AC" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Derivative [Table]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_DerivativeTable" xlink:label="loc_us-gaap_DerivativeTable_6B2962033CAC20628A4B8095E89BE5AC" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DerivativeTable_6B2962033CAC20628A4B8095E89BE5AC" xlink:to="lab_us-gaap_DerivativeTable_6B2962033CAC20628A4B8095E89BE5AC" xlink:type="arc" />
    <link:label id="lab_us-gaap_HedgingDesignationAxis_737F5D76FE1988E7AD748095E89BE1A0_terseLabel_en-US" xlink:label="lab_us-gaap_HedgingDesignationAxis_737F5D76FE1988E7AD748095E89BE1A0" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Hedging Designation [Axis]</link:label>
    <link:label id="lab_us-gaap_HedgingDesignationAxis_737F5D76FE1988E7AD748095E89BE1A0_label_en-US" xlink:label="lab_us-gaap_HedgingDesignationAxis_737F5D76FE1988E7AD748095E89BE1A0" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Hedging Designation [Axis]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_HedgingDesignationAxis" xlink:label="loc_us-gaap_HedgingDesignationAxis_737F5D76FE1988E7AD748095E89BE1A0" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_HedgingDesignationAxis_737F5D76FE1988E7AD748095E89BE1A0" xlink:to="lab_us-gaap_HedgingDesignationAxis_737F5D76FE1988E7AD748095E89BE1A0" xlink:type="arc" />
    <link:label id="lab_us-gaap_HedgingDesignationDomain_CB38C9E44FDC266B10448095E89BF9DC_terseLabel_en-US" xlink:label="lab_us-gaap_HedgingDesignationDomain_CB38C9E44FDC266B10448095E89BF9DC" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Hedging Designation [Domain]</link:label>
    <link:label id="lab_us-gaap_HedgingDesignationDomain_CB38C9E44FDC266B10448095E89BF9DC_label_en-US" xlink:label="lab_us-gaap_HedgingDesignationDomain_CB38C9E44FDC266B10448095E89BF9DC" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Hedging Designation [Domain]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_HedgingDesignationDomain" xlink:label="loc_us-gaap_HedgingDesignationDomain_CB38C9E44FDC266B10448095E89BF9DC" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_HedgingDesignationDomain_CB38C9E44FDC266B10448095E89BF9DC" xlink:to="lab_us-gaap_HedgingDesignationDomain_CB38C9E44FDC266B10448095E89BF9DC" xlink:type="arc" />
    <link:label id="lab_us-gaap_NondesignatedMember_D0EC90F27621A8B20FDD8095E89BAA15_terseLabel_en-US" xlink:label="lab_us-gaap_NondesignatedMember_D0EC90F27621A8B20FDD8095E89BAA15" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Not Designated as Hedging Instrument [Member]</link:label>
    <link:label id="lab_us-gaap_NondesignatedMember_D0EC90F27621A8B20FDD8095E89BAA15_label_en-US" xlink:label="lab_us-gaap_NondesignatedMember_D0EC90F27621A8B20FDD8095E89BAA15" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Not Designated as Hedging Instrument [Member]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_NondesignatedMember" xlink:label="loc_us-gaap_NondesignatedMember_D0EC90F27621A8B20FDD8095E89BAA15" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_NondesignatedMember_D0EC90F27621A8B20FDD8095E89BAA15" xlink:to="lab_us-gaap_NondesignatedMember_D0EC90F27621A8B20FDD8095E89BAA15" xlink:type="arc" />
    <link:label id="lab_us-gaap_DesignatedAsHedgingInstrumentMember_5E4DDBA4A8AA28F9D0DD8095E89B9E34_terseLabel_en-US" xlink:label="lab_us-gaap_DesignatedAsHedgingInstrumentMember_5E4DDBA4A8AA28F9D0DD8095E89B9E34" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Designated as Hedging Instrument [Member]</link:label>
    <link:label id="lab_us-gaap_DesignatedAsHedgingInstrumentMember_5E4DDBA4A8AA28F9D0DD8095E89B9E34_label_en-US" xlink:label="lab_us-gaap_DesignatedAsHedgingInstrumentMember_5E4DDBA4A8AA28F9D0DD8095E89B9E34" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Designated as Hedging Instrument [Member]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_DesignatedAsHedgingInstrumentMember" xlink:label="loc_us-gaap_DesignatedAsHedgingInstrumentMember_5E4DDBA4A8AA28F9D0DD8095E89B9E34" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DesignatedAsHedgingInstrumentMember_5E4DDBA4A8AA28F9D0DD8095E89B9E34" xlink:to="lab_us-gaap_DesignatedAsHedgingInstrumentMember_5E4DDBA4A8AA28F9D0DD8095E89B9E34" xlink:type="arc" />
    <link:label id="lab_us-gaap_DerivativeLineItems_3B205E576DA00F8735C68095E89BDDAD_terseLabel_en-US" xlink:label="lab_us-gaap_DerivativeLineItems_3B205E576DA00F8735C68095E89BDDAD" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Derivative [Line Items]</link:label>
    <link:label id="lab_us-gaap_DerivativeLineItems_3B205E576DA00F8735C68095E89BDDAD_label_en-US" xlink:label="lab_us-gaap_DerivativeLineItems_3B205E576DA00F8735C68095E89BDDAD" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Derivative [Line Items]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_DerivativeLineItems" xlink:label="loc_us-gaap_DerivativeLineItems_3B205E576DA00F8735C68095E89BDDAD" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DerivativeLineItems_3B205E576DA00F8735C68095E89BDDAD" xlink:to="lab_us-gaap_DerivativeLineItems_3B205E576DA00F8735C68095E89BDDAD" xlink:type="arc" />
    <link:label id="lab_us-gaap_MaximumRemainingMaturityOfForeignCurrencyDerivatives1_F814C04CE9588AB06C078095E89B0950_terseLabel_en-US" xlink:label="lab_us-gaap_MaximumRemainingMaturityOfForeignCurrencyDerivatives1_F814C04CE9588AB06C078095E89B0950" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Maturities of forward of contracts</link:label>
    <link:label id="lab_us-gaap_MaximumRemainingMaturityOfForeignCurrencyDerivatives1_F814C04CE9588AB06C078095E89B0950_label_en-US" xlink:label="lab_us-gaap_MaximumRemainingMaturityOfForeignCurrencyDerivatives1_F814C04CE9588AB06C078095E89B0950" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Maximum Remaining Maturity of Foreign Currency Derivatives</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_MaximumRemainingMaturityOfForeignCurrencyDerivatives1" xlink:label="loc_us-gaap_MaximumRemainingMaturityOfForeignCurrencyDerivatives1_F814C04CE9588AB06C078095E89B0950" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_MaximumRemainingMaturityOfForeignCurrencyDerivatives1_F814C04CE9588AB06C078095E89B0950" xlink:to="lab_us-gaap_MaximumRemainingMaturityOfForeignCurrencyDerivatives1_F814C04CE9588AB06C078095E89B0950" xlink:type="arc" />
    <link:label id="lab_us-gaap_MaximumLengthOfTimeHedgedInCashFlowHedge1_AA258CB4B531151A11998095E89BAD2C_terseLabel_en-US" xlink:label="lab_us-gaap_MaximumLengthOfTimeHedgedInCashFlowHedge1_AA258CB4B531151A11998095E89BAD2C" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Maturities of foreign currency forward contracts</link:label>
    <link:label id="lab_us-gaap_MaximumLengthOfTimeHedgedInCashFlowHedge1_AA258CB4B531151A11998095E89BAD2C_label_en-US" xlink:label="lab_us-gaap_MaximumLengthOfTimeHedgedInCashFlowHedge1_AA258CB4B531151A11998095E89BAD2C" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Maximum Length of Time Hedged in Cash Flow Hedge</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_MaximumLengthOfTimeHedgedInCashFlowHedge1" xlink:label="loc_us-gaap_MaximumLengthOfTimeHedgedInCashFlowHedge1_AA258CB4B531151A11998095E89BAD2C" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_MaximumLengthOfTimeHedgedInCashFlowHedge1_AA258CB4B531151A11998095E89BAD2C" xlink:to="lab_us-gaap_MaximumLengthOfTimeHedgedInCashFlowHedge1_AA258CB4B531151A11998095E89BAD2C" xlink:type="arc" />
    <link:label id="lab_us-gaap_AccountingPoliciesAbstract_17C5ED651754FDC260488095E7DCAA73_label_en-US" xlink:label="lab_us-gaap_AccountingPoliciesAbstract_17C5ED651754FDC260488095E7DCAA73" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Accounting Policies [Abstract]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_AccountingPoliciesAbstract" xlink:label="loc_us-gaap_AccountingPoliciesAbstract_17C5ED651754FDC260488095E7DCAA73" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AccountingPoliciesAbstract_17C5ED651754FDC260488095E7DCAA73" xlink:to="lab_us-gaap_AccountingPoliciesAbstract_17C5ED651754FDC260488095E7DCAA73" xlink:type="arc" />
    <link:label id="lab_cgnx_NatureOfOperationsPolicyTextBlock_96AD6CCE4ADCDAD725018095E7DCB0F2_terseLabel_en-US" xlink:label="lab_cgnx_NatureOfOperationsPolicyTextBlock_96AD6CCE4ADCDAD725018095E7DCB0F2" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Nature of Operations</link:label>
    <link:label id="lab_cgnx_NatureOfOperationsPolicyTextBlock_96AD6CCE4ADCDAD725018095E7DCB0F2_label_en-US" xlink:label="lab_cgnx_NatureOfOperationsPolicyTextBlock_96AD6CCE4ADCDAD725018095E7DCB0F2" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Nature Of Operations [Policy Text Block]</link:label>
    <link:label id="lab_cgnx_NatureOfOperationsPolicyTextBlock_96AD6CCE4ADCDAD725018095E7DCB0F2_documentation_en-US" xlink:label="lab_cgnx_NatureOfOperationsPolicyTextBlock_96AD6CCE4ADCDAD725018095E7DCB0F2" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Nature of Operations.</link:label>
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_NatureOfOperationsPolicyTextBlock" xlink:label="loc_cgnx_NatureOfOperationsPolicyTextBlock_96AD6CCE4ADCDAD725018095E7DCB0F2" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_NatureOfOperationsPolicyTextBlock_96AD6CCE4ADCDAD725018095E7DCB0F2" xlink:to="lab_cgnx_NatureOfOperationsPolicyTextBlock_96AD6CCE4ADCDAD725018095E7DCB0F2" xlink:type="arc" />
    <link:label id="lab_us-gaap_UseOfEstimates_3AE84BF076E817D5F8C98095E7DC0DFC_terseLabel_en-US" xlink:label="lab_us-gaap_UseOfEstimates_3AE84BF076E817D5F8C98095E7DC0DFC" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Use of Estimates in the Preparation of Financial Statements</link:label>
    <link:label id="lab_us-gaap_UseOfEstimates_3AE84BF076E817D5F8C98095E7DC0DFC_label_en-US" xlink:label="lab_us-gaap_UseOfEstimates_3AE84BF076E817D5F8C98095E7DC0DFC" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Use of Estimates, Policy [Policy Text Block]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_UseOfEstimates" xlink:label="loc_us-gaap_UseOfEstimates_3AE84BF076E817D5F8C98095E7DC0DFC" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_UseOfEstimates_3AE84BF076E817D5F8C98095E7DC0DFC" xlink:to="lab_us-gaap_UseOfEstimates_3AE84BF076E817D5F8C98095E7DC0DFC" xlink:type="arc" />
    <link:label id="lab_us-gaap_ConsolidationPolicyTextBlock_6A381C60AAB8CB5F14488095E7DC1433_terseLabel_en-US" xlink:label="lab_us-gaap_ConsolidationPolicyTextBlock_6A381C60AAB8CB5F14488095E7DC1433" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Basis of Consolidation</link:label>
    <link:label id="lab_us-gaap_ConsolidationPolicyTextBlock_6A381C60AAB8CB5F14488095E7DC1433_label_en-US" xlink:label="lab_us-gaap_ConsolidationPolicyTextBlock_6A381C60AAB8CB5F14488095E7DC1433" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Consolidation, Policy [Policy Text Block]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ConsolidationPolicyTextBlock" xlink:label="loc_us-gaap_ConsolidationPolicyTextBlock_6A381C60AAB8CB5F14488095E7DC1433" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ConsolidationPolicyTextBlock_6A381C60AAB8CB5F14488095E7DC1433" xlink:to="lab_us-gaap_ConsolidationPolicyTextBlock_6A381C60AAB8CB5F14488095E7DC1433" xlink:type="arc" />
    <link:label id="lab_us-gaap_ForeignCurrencyTransactionsAndTranslationsPolicyTextBlock_44C1801BCF31BAAA451C8095E7DCBB19_terseLabel_en-US" xlink:label="lab_us-gaap_ForeignCurrencyTransactionsAndTranslationsPolicyTextBlock_44C1801BCF31BAAA451C8095E7DCBB19" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Foreign Currency</link:label>
    <link:label id="lab_us-gaap_ForeignCurrencyTransactionsAndTranslationsPolicyTextBlock_44C1801BCF31BAAA451C8095E7DCBB19_label_en-US" xlink:label="lab_us-gaap_ForeignCurrencyTransactionsAndTranslationsPolicyTextBlock_44C1801BCF31BAAA451C8095E7DCBB19" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Foreign Currency Transactions and Translations Policy [Policy Text Block]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ForeignCurrencyTransactionsAndTranslationsPolicyTextBlock" xlink:label="loc_us-gaap_ForeignCurrencyTransactionsAndTranslationsPolicyTextBlock_44C1801BCF31BAAA451C8095E7DCBB19" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ForeignCurrencyTransactionsAndTranslationsPolicyTextBlock_44C1801BCF31BAAA451C8095E7DCBB19" xlink:to="lab_us-gaap_ForeignCurrencyTransactionsAndTranslationsPolicyTextBlock_44C1801BCF31BAAA451C8095E7DCBB19" xlink:type="arc" />
    <link:label id="lab_us-gaap_FairValueOfFinancialInstrumentsPolicy_1DD2B059EBC28E7C54318095E7DC8F17_terseLabel_en-US" xlink:label="lab_us-gaap_FairValueOfFinancialInstrumentsPolicy_1DD2B059EBC28E7C54318095E7DC8F17" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Fair Value Measurements</link:label>
    <link:label id="lab_us-gaap_FairValueOfFinancialInstrumentsPolicy_1DD2B059EBC28E7C54318095E7DC8F17_label_en-US" xlink:label="lab_us-gaap_FairValueOfFinancialInstrumentsPolicy_1DD2B059EBC28E7C54318095E7DC8F17" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Fair Value of Financial Instruments, Policy [Policy Text Block]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_FairValueOfFinancialInstrumentsPolicy" xlink:label="loc_us-gaap_FairValueOfFinancialInstrumentsPolicy_1DD2B059EBC28E7C54318095E7DC8F17" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_FairValueOfFinancialInstrumentsPolicy_1DD2B059EBC28E7C54318095E7DC8F17" xlink:to="lab_us-gaap_FairValueOfFinancialInstrumentsPolicy_1DD2B059EBC28E7C54318095E7DC8F17" xlink:type="arc" />
    <link:label id="lab_us-gaap_CashAndCashEquivalentsPolicyTextBlock_A3880C5A27C7D997A3C68095E7DCA5CA_terseLabel_en-US" xlink:label="lab_us-gaap_CashAndCashEquivalentsPolicyTextBlock_A3880C5A27C7D997A3C68095E7DCA5CA" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Cash, Cash Equivalents, and Investments</link:label>
    <link:label id="lab_us-gaap_CashAndCashEquivalentsPolicyTextBlock_A3880C5A27C7D997A3C68095E7DCA5CA_label_en-US" xlink:label="lab_us-gaap_CashAndCashEquivalentsPolicyTextBlock_A3880C5A27C7D997A3C68095E7DCA5CA" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Cash and Cash Equivalents, Policy [Policy Text Block]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_CashAndCashEquivalentsPolicyTextBlock" xlink:label="loc_us-gaap_CashAndCashEquivalentsPolicyTextBlock_A3880C5A27C7D997A3C68095E7DCA5CA" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_CashAndCashEquivalentsPolicyTextBlock_A3880C5A27C7D997A3C68095E7DCA5CA" xlink:to="lab_us-gaap_CashAndCashEquivalentsPolicyTextBlock_A3880C5A27C7D997A3C68095E7DCA5CA" xlink:type="arc" />
    <link:label id="lab_us-gaap_ReceivablesPolicyTextBlock_D246CEFE8EE122FC17A08095E7DC7CB2_terseLabel_en-US" xlink:label="lab_us-gaap_ReceivablesPolicyTextBlock_D246CEFE8EE122FC17A08095E7DC7CB2" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Accounts Receivable</link:label>
    <link:label id="lab_us-gaap_ReceivablesPolicyTextBlock_D246CEFE8EE122FC17A08095E7DC7CB2_label_en-US" xlink:label="lab_us-gaap_ReceivablesPolicyTextBlock_D246CEFE8EE122FC17A08095E7DC7CB2" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Receivables, Policy [Policy Text Block]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ReceivablesPolicyTextBlock" xlink:label="loc_us-gaap_ReceivablesPolicyTextBlock_D246CEFE8EE122FC17A08095E7DC7CB2" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ReceivablesPolicyTextBlock_D246CEFE8EE122FC17A08095E7DC7CB2" xlink:to="lab_us-gaap_ReceivablesPolicyTextBlock_D246CEFE8EE122FC17A08095E7DC7CB2" xlink:type="arc" />
    <link:label id="lab_us-gaap_InventoryPolicyTextBlock_E5DAE89BA60CF6711C818095E7DCA035_terseLabel_en-US" xlink:label="lab_us-gaap_InventoryPolicyTextBlock_E5DAE89BA60CF6711C818095E7DCA035" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Inventories</link:label>
    <link:label id="lab_us-gaap_InventoryPolicyTextBlock_E5DAE89BA60CF6711C818095E7DCA035_label_en-US" xlink:label="lab_us-gaap_InventoryPolicyTextBlock_E5DAE89BA60CF6711C818095E7DCA035" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Inventory, Policy [Policy Text Block]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_InventoryPolicyTextBlock" xlink:label="loc_us-gaap_InventoryPolicyTextBlock_E5DAE89BA60CF6711C818095E7DCA035" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_InventoryPolicyTextBlock_E5DAE89BA60CF6711C818095E7DCA035" xlink:to="lab_us-gaap_InventoryPolicyTextBlock_E5DAE89BA60CF6711C818095E7DCA035" xlink:type="arc" />
    <link:label id="lab_us-gaap_PropertyPlantAndEquipmentPolicyTextBlock_99D234D57091B25A9A488095E7DC9331_terseLabel_en-US" xlink:label="lab_us-gaap_PropertyPlantAndEquipmentPolicyTextBlock_99D234D57091B25A9A488095E7DC9331" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Property, Plant, and Equipment</link:label>
    <link:label id="lab_us-gaap_PropertyPlantAndEquipmentPolicyTextBlock_99D234D57091B25A9A488095E7DC9331_label_en-US" xlink:label="lab_us-gaap_PropertyPlantAndEquipmentPolicyTextBlock_99D234D57091B25A9A488095E7DC9331" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Property, Plant and Equipment, Policy [Policy Text Block]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_PropertyPlantAndEquipmentPolicyTextBlock" xlink:label="loc_us-gaap_PropertyPlantAndEquipmentPolicyTextBlock_99D234D57091B25A9A488095E7DC9331" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentPolicyTextBlock_99D234D57091B25A9A488095E7DC9331" xlink:to="lab_us-gaap_PropertyPlantAndEquipmentPolicyTextBlock_99D234D57091B25A9A488095E7DC9331" xlink:type="arc" />
    <link:label id="lab_us-gaap_GoodwillAndIntangibleAssetsGoodwillPolicy_1369256D1A2FE63D63A28095E7DCA03B_terseLabel_en-US" xlink:label="lab_us-gaap_GoodwillAndIntangibleAssetsGoodwillPolicy_1369256D1A2FE63D63A28095E7DCA03B" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Goodwill</link:label>
    <link:label id="lab_us-gaap_GoodwillAndIntangibleAssetsGoodwillPolicy_1369256D1A2FE63D63A28095E7DCA03B_label_en-US" xlink:label="lab_us-gaap_GoodwillAndIntangibleAssetsGoodwillPolicy_1369256D1A2FE63D63A28095E7DCA03B" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Goodwill and Intangible Assets, Goodwill, Policy [Policy Text Block]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_GoodwillAndIntangibleAssetsGoodwillPolicy" xlink:label="loc_us-gaap_GoodwillAndIntangibleAssetsGoodwillPolicy_1369256D1A2FE63D63A28095E7DCA03B" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_GoodwillAndIntangibleAssetsGoodwillPolicy_1369256D1A2FE63D63A28095E7DCA03B" xlink:to="lab_us-gaap_GoodwillAndIntangibleAssetsGoodwillPolicy_1369256D1A2FE63D63A28095E7DCA03B" xlink:type="arc" />
    <link:label id="lab_us-gaap_IntangibleAssetsFiniteLivedPolicy_3A0C9CECD33C79B1FB6D8095E7DC5F8B_terseLabel_en-US" xlink:label="lab_us-gaap_IntangibleAssetsFiniteLivedPolicy_3A0C9CECD33C79B1FB6D8095E7DC5F8B" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Intangible Assets</link:label>
    <link:label id="lab_us-gaap_IntangibleAssetsFiniteLivedPolicy_3A0C9CECD33C79B1FB6D8095E7DC5F8B_label_en-US" xlink:label="lab_us-gaap_IntangibleAssetsFiniteLivedPolicy_3A0C9CECD33C79B1FB6D8095E7DC5F8B" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Intangible Assets, Finite-Lived, Policy [Policy Text Block]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_IntangibleAssetsFiniteLivedPolicy" xlink:label="loc_us-gaap_IntangibleAssetsFiniteLivedPolicy_3A0C9CECD33C79B1FB6D8095E7DC5F8B" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_IntangibleAssetsFiniteLivedPolicy_3A0C9CECD33C79B1FB6D8095E7DC5F8B" xlink:to="lab_us-gaap_IntangibleAssetsFiniteLivedPolicy_3A0C9CECD33C79B1FB6D8095E7DC5F8B" xlink:type="arc" />
    <link:label id="lab_us-gaap_StandardProductWarrantyPolicy_58368D5DD35863D9B3C18095E7DC0362_terseLabel_en-US" xlink:label="lab_us-gaap_StandardProductWarrantyPolicy_58368D5DD35863D9B3C18095E7DC0362" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Warranty Obligations</link:label>
    <link:label id="lab_us-gaap_StandardProductWarrantyPolicy_58368D5DD35863D9B3C18095E7DC0362_label_en-US" xlink:label="lab_us-gaap_StandardProductWarrantyPolicy_58368D5DD35863D9B3C18095E7DC0362" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Standard Product Warranty, Policy [Policy Text Block]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_StandardProductWarrantyPolicy" xlink:label="loc_us-gaap_StandardProductWarrantyPolicy_58368D5DD35863D9B3C18095E7DC0362" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_StandardProductWarrantyPolicy_58368D5DD35863D9B3C18095E7DC0362" xlink:to="lab_us-gaap_StandardProductWarrantyPolicy_58368D5DD35863D9B3C18095E7DC0362" xlink:type="arc" />
    <link:label id="lab_us-gaap_CommitmentsAndContingenciesPolicyTextBlock_3A3A2CD63377A00704D98095E7DCA82F_terseLabel_en-US" xlink:label="lab_us-gaap_CommitmentsAndContingenciesPolicyTextBlock_3A3A2CD63377A00704D98095E7DCA82F" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Contingencies</link:label>
    <link:label id="lab_us-gaap_CommitmentsAndContingenciesPolicyTextBlock_3A3A2CD63377A00704D98095E7DCA82F_label_en-US" xlink:label="lab_us-gaap_CommitmentsAndContingenciesPolicyTextBlock_3A3A2CD63377A00704D98095E7DCA82F" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Commitments and Contingencies, Policy [Policy Text Block]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_CommitmentsAndContingenciesPolicyTextBlock" xlink:label="loc_us-gaap_CommitmentsAndContingenciesPolicyTextBlock_3A3A2CD63377A00704D98095E7DCA82F" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_CommitmentsAndContingenciesPolicyTextBlock_3A3A2CD63377A00704D98095E7DCA82F" xlink:to="lab_us-gaap_CommitmentsAndContingenciesPolicyTextBlock_3A3A2CD63377A00704D98095E7DCA82F" xlink:type="arc" />
    <link:label id="lab_us-gaap_RevenueRecognitionPolicyTextBlock_44A12A0ED980077CDF9E8095E7DC3B07_terseLabel_en-US" xlink:label="lab_us-gaap_RevenueRecognitionPolicyTextBlock_44A12A0ED980077CDF9E8095E7DC3B07" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Revenue Recognition</link:label>
    <link:label id="lab_us-gaap_RevenueRecognitionPolicyTextBlock_44A12A0ED980077CDF9E8095E7DC3B07_label_en-US" xlink:label="lab_us-gaap_RevenueRecognitionPolicyTextBlock_44A12A0ED980077CDF9E8095E7DC3B07" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Revenue Recognition, Policy [Policy Text Block]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_RevenueRecognitionPolicyTextBlock" xlink:label="loc_us-gaap_RevenueRecognitionPolicyTextBlock_44A12A0ED980077CDF9E8095E7DC3B07" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_RevenueRecognitionPolicyTextBlock_44A12A0ED980077CDF9E8095E7DC3B07" xlink:to="lab_us-gaap_RevenueRecognitionPolicyTextBlock_44A12A0ED980077CDF9E8095E7DC3B07" xlink:type="arc" />
    <link:label id="lab_us-gaap_ResearchDevelopmentAndComputerSoftwarePolicyTextBlock_047F4F5E786B3AE30FC98095E7DC9B3E_terseLabel_en-US" xlink:label="lab_us-gaap_ResearchDevelopmentAndComputerSoftwarePolicyTextBlock_047F4F5E786B3AE30FC98095E7DC9B3E" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Research and Development</link:label>
    <link:label id="lab_us-gaap_ResearchDevelopmentAndComputerSoftwarePolicyTextBlock_047F4F5E786B3AE30FC98095E7DC9B3E_label_en-US" xlink:label="lab_us-gaap_ResearchDevelopmentAndComputerSoftwarePolicyTextBlock_047F4F5E786B3AE30FC98095E7DC9B3E" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Research, Development, and Computer Software, Policy [Policy Text Block]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ResearchDevelopmentAndComputerSoftwarePolicyTextBlock" xlink:label="loc_us-gaap_ResearchDevelopmentAndComputerSoftwarePolicyTextBlock_047F4F5E786B3AE30FC98095E7DC9B3E" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ResearchDevelopmentAndComputerSoftwarePolicyTextBlock_047F4F5E786B3AE30FC98095E7DC9B3E" xlink:to="lab_us-gaap_ResearchDevelopmentAndComputerSoftwarePolicyTextBlock_047F4F5E786B3AE30FC98095E7DC9B3E" xlink:type="arc" />
    <link:label id="lab_us-gaap_AdvertisingCostsPolicyTextBlock_CEC1170E58C1E0C2100A8095E7DCB3DB_terseLabel_en-US" xlink:label="lab_us-gaap_AdvertisingCostsPolicyTextBlock_CEC1170E58C1E0C2100A8095E7DCB3DB" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Advertising Costs</link:label>
    <link:label id="lab_us-gaap_AdvertisingCostsPolicyTextBlock_CEC1170E58C1E0C2100A8095E7DCB3DB_label_en-US" xlink:label="lab_us-gaap_AdvertisingCostsPolicyTextBlock_CEC1170E58C1E0C2100A8095E7DCB3DB" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Advertising Costs, Policy [Policy Text Block]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_AdvertisingCostsPolicyTextBlock" xlink:label="loc_us-gaap_AdvertisingCostsPolicyTextBlock_CEC1170E58C1E0C2100A8095E7DCB3DB" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AdvertisingCostsPolicyTextBlock_CEC1170E58C1E0C2100A8095E7DCB3DB" xlink:to="lab_us-gaap_AdvertisingCostsPolicyTextBlock_CEC1170E58C1E0C2100A8095E7DCB3DB" xlink:type="arc" />
    <link:label id="lab_us-gaap_ShareBasedCompensationOptionAndIncentivePlansPolicy_DD9BBD2D50D36730D5948095E7DC9175_terseLabel_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationOptionAndIncentivePlansPolicy_DD9BBD2D50D36730D5948095E7DC9175" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Stock-Based Compensation</link:label>
    <link:label id="lab_us-gaap_ShareBasedCompensationOptionAndIncentivePlansPolicy_DD9BBD2D50D36730D5948095E7DC9175_label_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationOptionAndIncentivePlansPolicy_DD9BBD2D50D36730D5948095E7DC9175" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Share-based Compensation, Option and Incentive Plans Policy [Policy Text Block]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ShareBasedCompensationOptionAndIncentivePlansPolicy" xlink:label="loc_us-gaap_ShareBasedCompensationOptionAndIncentivePlansPolicy_DD9BBD2D50D36730D5948095E7DC9175" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ShareBasedCompensationOptionAndIncentivePlansPolicy_DD9BBD2D50D36730D5948095E7DC9175" xlink:to="lab_us-gaap_ShareBasedCompensationOptionAndIncentivePlansPolicy_DD9BBD2D50D36730D5948095E7DC9175" xlink:type="arc" />
    <link:label id="lab_us-gaap_IncomeTaxPolicyTextBlock_A1442190E28A1D7481138095E7DDF427_terseLabel_en-US" xlink:label="lab_us-gaap_IncomeTaxPolicyTextBlock_A1442190E28A1D7481138095E7DDF427" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Taxes</link:label>
    <link:label id="lab_us-gaap_IncomeTaxPolicyTextBlock_A1442190E28A1D7481138095E7DDF427_label_en-US" xlink:label="lab_us-gaap_IncomeTaxPolicyTextBlock_A1442190E28A1D7481138095E7DDF427" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Income Tax, Policy [Policy Text Block]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_IncomeTaxPolicyTextBlock" xlink:label="loc_us-gaap_IncomeTaxPolicyTextBlock_A1442190E28A1D7481138095E7DDF427" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_IncomeTaxPolicyTextBlock_A1442190E28A1D7481138095E7DDF427" xlink:to="lab_us-gaap_IncomeTaxPolicyTextBlock_A1442190E28A1D7481138095E7DDF427" xlink:type="arc" />
    <link:label id="lab_us-gaap_EarningsPerSharePolicyTextBlock_BA5C8EAB9B2FF30F7CB58095E7DD98AD_terseLabel_en-US" xlink:label="lab_us-gaap_EarningsPerSharePolicyTextBlock_BA5C8EAB9B2FF30F7CB58095E7DD98AD" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Net Income Per Share</link:label>
    <link:label id="lab_us-gaap_EarningsPerSharePolicyTextBlock_BA5C8EAB9B2FF30F7CB58095E7DD98AD_label_en-US" xlink:label="lab_us-gaap_EarningsPerSharePolicyTextBlock_BA5C8EAB9B2FF30F7CB58095E7DD98AD" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Earnings Per Share, Policy [Policy Text Block]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_EarningsPerSharePolicyTextBlock" xlink:label="loc_us-gaap_EarningsPerSharePolicyTextBlock_BA5C8EAB9B2FF30F7CB58095E7DD98AD" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_EarningsPerSharePolicyTextBlock_BA5C8EAB9B2FF30F7CB58095E7DD98AD" xlink:to="lab_us-gaap_EarningsPerSharePolicyTextBlock_BA5C8EAB9B2FF30F7CB58095E7DD98AD" xlink:type="arc" />
    <link:label id="lab_us-gaap_ComprehensiveIncomePolicyPolicyTextBlock_4A1317F7DD44B052CDB98095E7DD966D_terseLabel_en-US" xlink:label="lab_us-gaap_ComprehensiveIncomePolicyPolicyTextBlock_4A1317F7DD44B052CDB98095E7DD966D" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Comprehensive Income</link:label>
    <link:label id="lab_us-gaap_ComprehensiveIncomePolicyPolicyTextBlock_4A1317F7DD44B052CDB98095E7DD966D_label_en-US" xlink:label="lab_us-gaap_ComprehensiveIncomePolicyPolicyTextBlock_4A1317F7DD44B052CDB98095E7DD966D" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Comprehensive Income, Policy [Policy Text Block]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ComprehensiveIncomePolicyPolicyTextBlock" xlink:label="loc_us-gaap_ComprehensiveIncomePolicyPolicyTextBlock_4A1317F7DD44B052CDB98095E7DD966D" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ComprehensiveIncomePolicyPolicyTextBlock_4A1317F7DD44B052CDB98095E7DD966D" xlink:to="lab_us-gaap_ComprehensiveIncomePolicyPolicyTextBlock_4A1317F7DD44B052CDB98095E7DD966D" xlink:type="arc" />
    <link:label id="lab_cgnx_ConcentrationsOfRiskPolicyPolicyTextBlock_BFB8B1BB20F7812BFAB28095E7DDE989_terseLabel_en-US" xlink:label="lab_cgnx_ConcentrationsOfRiskPolicyPolicyTextBlock_BFB8B1BB20F7812BFAB28095E7DDE989" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Concentrations of Risk</link:label>
    <link:label id="lab_cgnx_ConcentrationsOfRiskPolicyPolicyTextBlock_BFB8B1BB20F7812BFAB28095E7DDE989_label_en-US" xlink:label="lab_cgnx_ConcentrationsOfRiskPolicyPolicyTextBlock_BFB8B1BB20F7812BFAB28095E7DDE989" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Concentrations Of Risk Policy [Policy Text Block]</link:label>
    <link:label id="lab_cgnx_ConcentrationsOfRiskPolicyPolicyTextBlock_BFB8B1BB20F7812BFAB28095E7DDE989_documentation_en-US" xlink:label="lab_cgnx_ConcentrationsOfRiskPolicyPolicyTextBlock_BFB8B1BB20F7812BFAB28095E7DDE989" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Concentrations of Risk.</link:label>
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_ConcentrationsOfRiskPolicyPolicyTextBlock" xlink:label="loc_cgnx_ConcentrationsOfRiskPolicyPolicyTextBlock_BFB8B1BB20F7812BFAB28095E7DDE989" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_ConcentrationsOfRiskPolicyPolicyTextBlock_BFB8B1BB20F7812BFAB28095E7DDE989" xlink:to="lab_cgnx_ConcentrationsOfRiskPolicyPolicyTextBlock_BFB8B1BB20F7812BFAB28095E7DDE989" xlink:type="arc" />
    <link:label id="lab_us-gaap_DerivativesPolicyTextBlock_EF0D25C8F0C60CAD71498095E7DDC6C3_terseLabel_en-US" xlink:label="lab_us-gaap_DerivativesPolicyTextBlock_EF0D25C8F0C60CAD71498095E7DDC6C3" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Derivative Instruments</link:label>
    <link:label id="lab_us-gaap_DerivativesPolicyTextBlock_EF0D25C8F0C60CAD71498095E7DDC6C3_label_en-US" xlink:label="lab_us-gaap_DerivativesPolicyTextBlock_EF0D25C8F0C60CAD71498095E7DDC6C3" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Derivatives, Policy [Policy Text Block]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_DerivativesPolicyTextBlock" xlink:label="loc_us-gaap_DerivativesPolicyTextBlock_EF0D25C8F0C60CAD71498095E7DDC6C3" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DerivativesPolicyTextBlock_EF0D25C8F0C60CAD71498095E7DDC6C3" xlink:to="lab_us-gaap_DerivativesPolicyTextBlock_EF0D25C8F0C60CAD71498095E7DDC6C3" xlink:type="arc" />
    <link:label id="lab_us-gaap_BusinessCombinationsPolicy_DD0169290D5A7AE379DF8095E7DD7BC5_terseLabel_en-US" xlink:label="lab_us-gaap_BusinessCombinationsPolicy_DD0169290D5A7AE379DF8095E7DD7BC5" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Business Combinations</link:label>
    <link:label id="lab_us-gaap_BusinessCombinationsPolicy_DD0169290D5A7AE379DF8095E7DD7BC5_label_en-US" xlink:label="lab_us-gaap_BusinessCombinationsPolicy_DD0169290D5A7AE379DF8095E7DD7BC5" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Business Combinations Policy [Policy Text Block]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_BusinessCombinationsPolicy" xlink:label="loc_us-gaap_BusinessCombinationsPolicy_DD0169290D5A7AE379DF8095E7DD7BC5" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_BusinessCombinationsPolicy_DD0169290D5A7AE379DF8095E7DD7BC5" xlink:to="lab_us-gaap_BusinessCombinationsPolicy_DD0169290D5A7AE379DF8095E7DD7BC5" xlink:type="arc" />
    <link:label id="lab_us-gaap_BusinessCombinationDisclosureTextBlock_3BF47BB04E20B022529D8095E5A39975_terseLabel_en-US" xlink:label="lab_us-gaap_BusinessCombinationDisclosureTextBlock_3BF47BB04E20B022529D8095E5A39975" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Acquisitions</link:label>
    <link:label id="lab_us-gaap_BusinessCombinationDisclosureTextBlock_3BF47BB04E20B022529D8095E5A39975_label_en-US" xlink:label="lab_us-gaap_BusinessCombinationDisclosureTextBlock_3BF47BB04E20B022529D8095E5A39975" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Business Combination Disclosure [Text Block]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_BusinessCombinationDisclosureTextBlock" xlink:label="loc_us-gaap_BusinessCombinationDisclosureTextBlock_3BF47BB04E20B022529D8095E5A39975" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_BusinessCombinationDisclosureTextBlock_3BF47BB04E20B022529D8095E5A39975" xlink:to="lab_us-gaap_BusinessCombinationDisclosureTextBlock_3BF47BB04E20B022529D8095E5A39975" xlink:type="arc" />
    <link:label id="lab_us-gaap_IntangibleAssetsDisclosureTextBlock_6E2AA5D1ED0218D4BE0F8095E5D57123_terseLabel_en-US" xlink:label="lab_us-gaap_IntangibleAssetsDisclosureTextBlock_6E2AA5D1ED0218D4BE0F8095E5D57123" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Intangible Assets</link:label>
    <link:label id="lab_us-gaap_IntangibleAssetsDisclosureTextBlock_6E2AA5D1ED0218D4BE0F8095E5D57123_label_en-US" xlink:label="lab_us-gaap_IntangibleAssetsDisclosureTextBlock_6E2AA5D1ED0218D4BE0F8095E5D57123" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Intangible Assets Disclosure [Text Block]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_IntangibleAssetsDisclosureTextBlock" xlink:label="loc_us-gaap_IntangibleAssetsDisclosureTextBlock_6E2AA5D1ED0218D4BE0F8095E5D57123" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_IntangibleAssetsDisclosureTextBlock_6E2AA5D1ED0218D4BE0F8095E5D57123" xlink:to="lab_us-gaap_IntangibleAssetsDisclosureTextBlock_6E2AA5D1ED0218D4BE0F8095E5D57123" xlink:type="arc" />
    <link:label id="lab_srt_ValuationAndQualifyingAccountsAbstract_A2907190D61C811FE49F8095E7E35067_label_en-US" xlink:label="lab_srt_ValuationAndQualifyingAccountsAbstract_A2907190D61C811FE49F8095E7E35067" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">SEC Schedule, 12-09, Valuation and Qualifying Accounts [Abstract]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2018/elts/srt-2018-01-31.xsd#srt_ValuationAndQualifyingAccountsAbstract" xlink:label="loc_srt_ValuationAndQualifyingAccountsAbstract_A2907190D61C811FE49F8095E7E35067" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_srt_ValuationAndQualifyingAccountsAbstract_A2907190D61C811FE49F8095E7E35067" xlink:to="lab_srt_ValuationAndQualifyingAccountsAbstract_A2907190D61C811FE49F8095E7E35067" xlink:type="arc" />
    <link:label id="lab_srt_ScheduleOfValuationAndQualifyingAccountsDisclosureTextBlock_C19C5A3E785E7FC312968095E7E3AA15_terseLabel_en-US" xlink:label="lab_srt_ScheduleOfValuationAndQualifyingAccountsDisclosureTextBlock_C19C5A3E785E7FC312968095E7E3AA15" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Schedule II - Valuation and Qualifying Accounts</link:label>
    <link:label id="lab_srt_ScheduleOfValuationAndQualifyingAccountsDisclosureTextBlock_C19C5A3E785E7FC312968095E7E3AA15_label_en-US" xlink:label="lab_srt_ScheduleOfValuationAndQualifyingAccountsDisclosureTextBlock_C19C5A3E785E7FC312968095E7E3AA15" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">SEC Schedule, 12-09, Schedule of Valuation and Qualifying Accounts Disclosure [Text Block]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2018/elts/srt-2018-01-31.xsd#srt_ScheduleOfValuationAndQualifyingAccountsDisclosureTextBlock" xlink:label="loc_srt_ScheduleOfValuationAndQualifyingAccountsDisclosureTextBlock_C19C5A3E785E7FC312968095E7E3AA15" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_srt_ScheduleOfValuationAndQualifyingAccountsDisclosureTextBlock_C19C5A3E785E7FC312968095E7E3AA15" xlink:to="lab_srt_ScheduleOfValuationAndQualifyingAccountsDisclosureTextBlock_C19C5A3E785E7FC312968095E7E3AA15" xlink:type="arc" />
    <link:label id="lab_us-gaap_ScheduleOfNewAccountingPronouncementsAndChangesInAccountingPrinciplesTextBlock_FC165F18FC7A80FD19968095E690C215_terseLabel_en-US" xlink:label="lab_us-gaap_ScheduleOfNewAccountingPronouncementsAndChangesInAccountingPrinciplesTextBlock_FC165F18FC7A80FD19968095E690C215" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Impact on Face Financials</link:label>
    <link:label id="lab_us-gaap_ScheduleOfNewAccountingPronouncementsAndChangesInAccountingPrinciplesTextBlock_FC165F18FC7A80FD19968095E690C215_label_en-US" xlink:label="lab_us-gaap_ScheduleOfNewAccountingPronouncementsAndChangesInAccountingPrinciplesTextBlock_FC165F18FC7A80FD19968095E690C215" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Schedule of New Accounting Pronouncements and Changes in Accounting Principles [Table Text Block]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ScheduleOfNewAccountingPronouncementsAndChangesInAccountingPrinciplesTextBlock" xlink:label="loc_us-gaap_ScheduleOfNewAccountingPronouncementsAndChangesInAccountingPrinciplesTextBlock_FC165F18FC7A80FD19968095E690C215" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ScheduleOfNewAccountingPronouncementsAndChangesInAccountingPrinciplesTextBlock_FC165F18FC7A80FD19968095E690C215" xlink:to="lab_us-gaap_ScheduleOfNewAccountingPronouncementsAndChangesInAccountingPrinciplesTextBlock_FC165F18FC7A80FD19968095E690C215" xlink:type="arc" />
    <link:label id="lab_us-gaap_DisaggregationOfRevenueTableTextBlock_AB32865E5356E7E46B188095E690EB6F_terseLabel_en-US" xlink:label="lab_us-gaap_DisaggregationOfRevenueTableTextBlock_AB32865E5356E7E46B188095E690EB6F" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Disaggregation of Revenue</link:label>
    <link:label id="lab_us-gaap_DisaggregationOfRevenueTableTextBlock_AB32865E5356E7E46B188095E690EB6F_label_en-US" xlink:label="lab_us-gaap_DisaggregationOfRevenueTableTextBlock_AB32865E5356E7E46B188095E690EB6F" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Disaggregation of Revenue [Table Text Block]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_DisaggregationOfRevenueTableTextBlock" xlink:label="loc_us-gaap_DisaggregationOfRevenueTableTextBlock_AB32865E5356E7E46B188095E690EB6F" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DisaggregationOfRevenueTableTextBlock_AB32865E5356E7E46B188095E690EB6F" xlink:to="lab_us-gaap_DisaggregationOfRevenueTableTextBlock_AB32865E5356E7E46B188095E690EB6F" xlink:type="arc" />
    <link:label id="lab_us-gaap_ContractWithCustomerAssetAndLiabilityTableTextBlock_7FC416A15FEE9FB81EEC8095E690B116_terseLabel_en-US" xlink:label="lab_us-gaap_ContractWithCustomerAssetAndLiabilityTableTextBlock_7FC416A15FEE9FB81EEC8095E690B116" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Contract with Customer, Liability</link:label>
    <link:label id="lab_us-gaap_ContractWithCustomerAssetAndLiabilityTableTextBlock_7FC416A15FEE9FB81EEC8095E690B116_label_en-US" xlink:label="lab_us-gaap_ContractWithCustomerAssetAndLiabilityTableTextBlock_7FC416A15FEE9FB81EEC8095E690B116" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Contract with Customer, Asset and Liability [Table Text Block]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ContractWithCustomerAssetAndLiabilityTableTextBlock" xlink:label="loc_us-gaap_ContractWithCustomerAssetAndLiabilityTableTextBlock_7FC416A15FEE9FB81EEC8095E690B116" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ContractWithCustomerAssetAndLiabilityTableTextBlock_7FC416A15FEE9FB81EEC8095E690B116" xlink:to="lab_us-gaap_ContractWithCustomerAssetAndLiabilityTableTextBlock_7FC416A15FEE9FB81EEC8095E690B116" xlink:type="arc" />
    <link:label id="lab_us-gaap_CompensationAndRetirementDisclosureAbstract_FA11C2A3F2495E310B328095E70C1C17_label_en-US" xlink:label="lab_us-gaap_CompensationAndRetirementDisclosureAbstract_FA11C2A3F2495E310B328095E70C1C17" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Retirement Benefits [Abstract]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_CompensationAndRetirementDisclosureAbstract" xlink:label="loc_us-gaap_CompensationAndRetirementDisclosureAbstract_FA11C2A3F2495E310B328095E70C1C17" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_CompensationAndRetirementDisclosureAbstract_FA11C2A3F2495E310B328095E70C1C17" xlink:to="lab_us-gaap_CompensationAndRetirementDisclosureAbstract_FA11C2A3F2495E310B328095E70C1C17" xlink:type="arc" />
    <link:label id="lab_us-gaap_PensionAndOtherPostretirementBenefitsDisclosureTextBlock_EC0CEA8C9E86F7F45F838095E70C0F6B_terseLabel_en-US" xlink:label="lab_us-gaap_PensionAndOtherPostretirementBenefitsDisclosureTextBlock_EC0CEA8C9E86F7F45F838095E70C0F6B" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Employee Savings Plan</link:label>
    <link:label id="lab_us-gaap_PensionAndOtherPostretirementBenefitsDisclosureTextBlock_EC0CEA8C9E86F7F45F838095E70C0F6B_label_en-US" xlink:label="lab_us-gaap_PensionAndOtherPostretirementBenefitsDisclosureTextBlock_EC0CEA8C9E86F7F45F838095E70C0F6B" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Pension and Other Postretirement Benefits Disclosure [Text Block]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_PensionAndOtherPostretirementBenefitsDisclosureTextBlock" xlink:label="loc_us-gaap_PensionAndOtherPostretirementBenefitsDisclosureTextBlock_EC0CEA8C9E86F7F45F838095E70C0F6B" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_PensionAndOtherPostretirementBenefitsDisclosureTextBlock_EC0CEA8C9E86F7F45F838095E70C0F6B" xlink:to="lab_us-gaap_PensionAndOtherPostretirementBenefitsDisclosureTextBlock_EC0CEA8C9E86F7F45F838095E70C0F6B" xlink:type="arc" />
    <link:label id="lab_us-gaap_FairValuesDerivativesBalanceSheetLocationByDerivativeContractTypeByHedgingDesignationTable_F0850B8C8CF61CC95E618095E75B89BB_terseLabel_en-US" xlink:label="lab_us-gaap_FairValuesDerivativesBalanceSheetLocationByDerivativeContractTypeByHedgingDesignationTable_F0850B8C8CF61CC95E618095E75B89BB" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Fair Values Derivatives, Balance Sheet Location, by Derivative Contract Type [Table]</link:label>
    <link:label id="lab_us-gaap_FairValuesDerivativesBalanceSheetLocationByDerivativeContractTypeByHedgingDesignationTable_F0850B8C8CF61CC95E618095E75B89BB_label_en-US" xlink:label="lab_us-gaap_FairValuesDerivativesBalanceSheetLocationByDerivativeContractTypeByHedgingDesignationTable_F0850B8C8CF61CC95E618095E75B89BB" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Fair Values Derivatives, Balance Sheet Location, by Derivative Contract Type [Table]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_FairValuesDerivativesBalanceSheetLocationByDerivativeContractTypeByHedgingDesignationTable" xlink:label="loc_us-gaap_FairValuesDerivativesBalanceSheetLocationByDerivativeContractTypeByHedgingDesignationTable_F0850B8C8CF61CC95E618095E75B89BB" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_FairValuesDerivativesBalanceSheetLocationByDerivativeContractTypeByHedgingDesignationTable_F0850B8C8CF61CC95E618095E75B89BB" xlink:to="lab_us-gaap_FairValuesDerivativesBalanceSheetLocationByDerivativeContractTypeByHedgingDesignationTable_F0850B8C8CF61CC95E618095E75B89BB" xlink:type="arc" />
    <link:label id="lab_us-gaap_BalanceSheetLocationAxis_43D37E242A2DAB13DAD98095E75BBA62_terseLabel_en-US" xlink:label="lab_us-gaap_BalanceSheetLocationAxis_43D37E242A2DAB13DAD98095E75BBA62" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Balance Sheet Location [Axis]</link:label>
    <link:label id="lab_us-gaap_BalanceSheetLocationAxis_43D37E242A2DAB13DAD98095E75BBA62_label_en-US" xlink:label="lab_us-gaap_BalanceSheetLocationAxis_43D37E242A2DAB13DAD98095E75BBA62" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Balance Sheet Location [Axis]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_BalanceSheetLocationAxis" xlink:label="loc_us-gaap_BalanceSheetLocationAxis_43D37E242A2DAB13DAD98095E75BBA62" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_BalanceSheetLocationAxis_43D37E242A2DAB13DAD98095E75BBA62" xlink:to="lab_us-gaap_BalanceSheetLocationAxis_43D37E242A2DAB13DAD98095E75BBA62" xlink:type="arc" />
    <link:label id="lab_us-gaap_BalanceSheetLocationDomain_0CD56C55A1C92C3789B28095E75B8F1E_terseLabel_en-US" xlink:label="lab_us-gaap_BalanceSheetLocationDomain_0CD56C55A1C92C3789B28095E75B8F1E" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Balance Sheet Location [Domain]</link:label>
    <link:label id="lab_us-gaap_BalanceSheetLocationDomain_0CD56C55A1C92C3789B28095E75B8F1E_label_en-US" xlink:label="lab_us-gaap_BalanceSheetLocationDomain_0CD56C55A1C92C3789B28095E75B8F1E" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Balance Sheet Location [Domain]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_BalanceSheetLocationDomain" xlink:label="loc_us-gaap_BalanceSheetLocationDomain_0CD56C55A1C92C3789B28095E75B8F1E" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_BalanceSheetLocationDomain_0CD56C55A1C92C3789B28095E75B8F1E" xlink:to="lab_us-gaap_BalanceSheetLocationDomain_0CD56C55A1C92C3789B28095E75B8F1E" xlink:type="arc" />
    <link:label id="lab_us-gaap_PrepaidExpensesAndOtherCurrentAssetsMember_EA43E22D470BCAD371DC8095E75B64DE_terseLabel_en-US" xlink:label="lab_us-gaap_PrepaidExpensesAndOtherCurrentAssetsMember_EA43E22D470BCAD371DC8095E75B64DE" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Prepaid Expenses and Other Current Assets [Member]</link:label>
    <link:label id="lab_us-gaap_PrepaidExpensesAndOtherCurrentAssetsMember_EA43E22D470BCAD371DC8095E75B64DE_label_en-US" xlink:label="lab_us-gaap_PrepaidExpensesAndOtherCurrentAssetsMember_EA43E22D470BCAD371DC8095E75B64DE" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Prepaid Expenses and Other Current Assets [Member]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_PrepaidExpensesAndOtherCurrentAssetsMember" xlink:label="loc_us-gaap_PrepaidExpensesAndOtherCurrentAssetsMember_EA43E22D470BCAD371DC8095E75B64DE" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_PrepaidExpensesAndOtherCurrentAssetsMember_EA43E22D470BCAD371DC8095E75B64DE" xlink:to="lab_us-gaap_PrepaidExpensesAndOtherCurrentAssetsMember_EA43E22D470BCAD371DC8095E75B64DE" xlink:type="arc" />
    <link:label id="lab_cgnx_AccruedExpensesMember_E306A91B53258FB793C18095E75B5683_terseLabel_en-US" xlink:label="lab_cgnx_AccruedExpensesMember_E306A91B53258FB793C18095E75B5683" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Accrued Expenses [Member]</link:label>
    <link:label id="lab_cgnx_AccruedExpensesMember_E306A91B53258FB793C18095E75B5683_label_en-US" xlink:label="lab_cgnx_AccruedExpensesMember_E306A91B53258FB793C18095E75B5683" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Accrued Expenses [Member]</link:label>
    <link:label id="lab_cgnx_AccruedExpensesMember_E306A91B53258FB793C18095E75B5683_documentation_en-US" xlink:label="lab_cgnx_AccruedExpensesMember_E306A91B53258FB793C18095E75B5683" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Accrued expenses.</link:label>
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_AccruedExpensesMember" xlink:label="loc_cgnx_AccruedExpensesMember_E306A91B53258FB793C18095E75B5683" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_AccruedExpensesMember_E306A91B53258FB793C18095E75B5683" xlink:to="lab_cgnx_AccruedExpensesMember_E306A91B53258FB793C18095E75B5683" xlink:type="arc" />
    <link:label id="lab_us-gaap_DerivativesFairValueLineItems_C44F517377CC67CAB4DA8095E75B686B_terseLabel_en-US" xlink:label="lab_us-gaap_DerivativesFairValueLineItems_C44F517377CC67CAB4DA8095E75B686B" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Derivatives, Fair Value [Line Items]</link:label>
    <link:label id="lab_us-gaap_DerivativesFairValueLineItems_C44F517377CC67CAB4DA8095E75B686B_label_en-US" xlink:label="lab_us-gaap_DerivativesFairValueLineItems_C44F517377CC67CAB4DA8095E75B686B" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Derivatives, Fair Value [Line Items]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_DerivativesFairValueLineItems" xlink:label="loc_us-gaap_DerivativesFairValueLineItems_C44F517377CC67CAB4DA8095E75B686B" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DerivativesFairValueLineItems_C44F517377CC67CAB4DA8095E75B686B" xlink:to="lab_us-gaap_DerivativesFairValueLineItems_C44F517377CC67CAB4DA8095E75B686B" xlink:type="arc" />
    <link:label id="lab_us-gaap_DerivativeAssets_74C879BFA1D22EDE7B8F8095E75B73EE_terseLabel_en-US" xlink:label="lab_us-gaap_DerivativeAssets_74C879BFA1D22EDE7B8F8095E75B73EE" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Net amount of assets presented</link:label>
    <link:label id="lab_us-gaap_DerivativeAssets_74C879BFA1D22EDE7B8F8095E75B73EE_label_en-US" xlink:label="lab_us-gaap_DerivativeAssets_74C879BFA1D22EDE7B8F8095E75B73EE" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Derivative Asset</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_DerivativeAssets" xlink:label="loc_us-gaap_DerivativeAssets_74C879BFA1D22EDE7B8F8095E75B73EE" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DerivativeAssets_74C879BFA1D22EDE7B8F8095E75B73EE" xlink:to="lab_us-gaap_DerivativeAssets_74C879BFA1D22EDE7B8F8095E75B73EE" xlink:type="arc" />
    <link:label id="lab_us-gaap_DerivativeLiabilities_A3E9E2C997ADC9A7DD618095E75BED83_terseLabel_en-US" xlink:label="lab_us-gaap_DerivativeLiabilities_A3E9E2C997ADC9A7DD618095E75BED83" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Net amount of liabilities presented</link:label>
    <link:label id="lab_us-gaap_DerivativeLiabilities_A3E9E2C997ADC9A7DD618095E75BED83_label_en-US" xlink:label="lab_us-gaap_DerivativeLiabilities_A3E9E2C997ADC9A7DD618095E75BED83" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Derivative Liability</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_DerivativeLiabilities" xlink:label="loc_us-gaap_DerivativeLiabilities_A3E9E2C997ADC9A7DD618095E75BED83" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DerivativeLiabilities_A3E9E2C997ADC9A7DD618095E75BED83" xlink:to="lab_us-gaap_DerivativeLiabilities_A3E9E2C997ADC9A7DD618095E75BED83" xlink:type="arc" />
    <link:label id="lab_us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable_1827D3AFFED3B26426AF37123EB50664_terseLabel_en-US" xlink:label="lab_us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable_1827D3AFFED3B26426AF37123EB50664" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Schedule of Share-based Compensation Arrangements by Share-based Payment Award [Table]</link:label>
    <link:label id="lab_us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable_1827D3AFFED3B26426AF37123EB50664_label_en-US" xlink:label="lab_us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable_1827D3AFFED3B26426AF37123EB50664" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Schedule of Share-based Compensation Arrangements by Share-based Payment Award [Table]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" xlink:label="loc_us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable_1827D3AFFED3B26426AF37123EB50664" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable_1827D3AFFED3B26426AF37123EB50664" xlink:to="lab_us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable_1827D3AFFED3B26426AF37123EB50664" xlink:type="arc" />
    <link:label id="lab_us-gaap_AwardTypeAxis_A24FD76EEA0B1C01A94837123EB58663_terseLabel_en-US" xlink:label="lab_us-gaap_AwardTypeAxis_A24FD76EEA0B1C01A94837123EB58663" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Award Type [Axis]</link:label>
    <link:label id="lab_us-gaap_AwardTypeAxis_A24FD76EEA0B1C01A94837123EB58663_label_en-US" xlink:label="lab_us-gaap_AwardTypeAxis_A24FD76EEA0B1C01A94837123EB58663" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Award Type [Axis]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_AwardTypeAxis" xlink:label="loc_us-gaap_AwardTypeAxis_A24FD76EEA0B1C01A94837123EB58663" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AwardTypeAxis_A24FD76EEA0B1C01A94837123EB58663" xlink:to="lab_us-gaap_AwardTypeAxis_A24FD76EEA0B1C01A94837123EB58663" xlink:type="arc" />
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_30C3FDCBFE4B02C9CF3437123EB6F7C1_terseLabel_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_30C3FDCBFE4B02C9CF3437123EB6F7C1" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Equity Award [Domain]</link:label>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_30C3FDCBFE4B02C9CF3437123EB6F7C1_label_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_30C3FDCBFE4B02C9CF3437123EB6F7C1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Equity Award [Domain]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_30C3FDCBFE4B02C9CF3437123EB6F7C1" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_30C3FDCBFE4B02C9CF3437123EB6F7C1" xlink:to="lab_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_30C3FDCBFE4B02C9CF3437123EB6F7C1" xlink:type="arc" />
    <link:label id="lab_us-gaap_RestrictedStockMember_B3BE8C13F4FCB3F46FD537123EB639BA_terseLabel_en-US" xlink:label="lab_us-gaap_RestrictedStockMember_B3BE8C13F4FCB3F46FD537123EB639BA" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Restricted Stock [Member]</link:label>
    <link:label id="lab_us-gaap_RestrictedStockMember_B3BE8C13F4FCB3F46FD537123EB639BA_label_en-US" xlink:label="lab_us-gaap_RestrictedStockMember_B3BE8C13F4FCB3F46FD537123EB639BA" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Restricted Stock [Member]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_RestrictedStockMember" xlink:label="loc_us-gaap_RestrictedStockMember_B3BE8C13F4FCB3F46FD537123EB639BA" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_RestrictedStockMember_B3BE8C13F4FCB3F46FD537123EB639BA" xlink:to="lab_us-gaap_RestrictedStockMember_B3BE8C13F4FCB3F46FD537123EB639BA" xlink:type="arc" />
    <link:label id="lab_us-gaap_EmployeeStockOptionMember_5BE5E90B934592912B5537123EB62644_terseLabel_en-US" xlink:label="lab_us-gaap_EmployeeStockOptionMember_5BE5E90B934592912B5537123EB62644" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Employee Stock Option [Member]</link:label>
    <link:label id="lab_us-gaap_EmployeeStockOptionMember_5BE5E90B934592912B5537123EB62644_label_en-US" xlink:label="lab_us-gaap_EmployeeStockOptionMember_5BE5E90B934592912B5537123EB62644" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Employee Stock Option [Member]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_EmployeeStockOptionMember" xlink:label="loc_us-gaap_EmployeeStockOptionMember_5BE5E90B934592912B5537123EB62644" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_EmployeeStockOptionMember_5BE5E90B934592912B5537123EB62644" xlink:to="lab_us-gaap_EmployeeStockOptionMember_5BE5E90B934592912B5537123EB62644" xlink:type="arc" />
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_B27CE03E3D51C3C0722637123EB7818B_terseLabel_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_B27CE03E3D51C3C0722637123EB7818B" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Share-based Compensation Arrangement by Share-based Payment Award [Line Items]</link:label>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_B27CE03E3D51C3C0722637123EB7818B_label_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_B27CE03E3D51C3C0722637123EB7818B" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Share-based Compensation Arrangement by Share-based Payment Award [Line Items]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_B27CE03E3D51C3C0722637123EB7818B" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_B27CE03E3D51C3C0722637123EB7818B" xlink:to="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_B27CE03E3D51C3C0722637123EB7818B" xlink:type="arc" />
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber_87D1F86F27C5EC5E522C37123EB74741_terseLabel_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber_87D1F86F27C5EC5E522C37123EB74741" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Share-based Compensation Arrangement by Share-based Payment Award, Equity Instruments Other than Options, Nonvested, Number</link:label>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber_87D1F86F27C5EC5E522C37123EB74741_label_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber_87D1F86F27C5EC5E522C37123EB74741" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Share-based Compensation Arrangement by Share-based Payment Award, Equity Instruments Other than Options, Nonvested, Number</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber_87D1F86F27C5EC5E522C37123EB74741" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber_87D1F86F27C5EC5E522C37123EB74741" xlink:to="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber_87D1F86F27C5EC5E522C37123EB74741" xlink:type="arc" />
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue_D67F68018354B72BE12A37123EB72DCA_terseLabel_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue_D67F68018354B72BE12A37123EB72DCA" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Share-based Compensation Arrangement by Share-based Payment Award, Equity Instruments Other than Options, Nonvested, Weighted Average Grant Date Fair Value</link:label>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue_D67F68018354B72BE12A37123EB72DCA_label_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue_D67F68018354B72BE12A37123EB72DCA" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Share-based Compensation Arrangement by Share-based Payment Award, Equity Instruments Other than Options, Nonvested, Weighted Average Grant Date Fair Value</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue_D67F68018354B72BE12A37123EB72DCA" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue_D67F68018354B72BE12A37123EB72DCA" xlink:to="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue_D67F68018354B72BE12A37123EB72DCA" xlink:type="arc" />
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod_B977ED01396286E3EB7737123EB705B6_terseLabel_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod_B977ED01396286E3EB7737123EB705B6" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Share-based Compensation Arrangement by Share-based Payment Award, Equity Instruments Other than Options, Vested in Period</link:label>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod_B977ED01396286E3EB7737123EB705B6_label_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod_B977ED01396286E3EB7737123EB705B6" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Share-based Compensation Arrangement by Share-based Payment Award, Equity Instruments Other than Options, Vested in Period</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod_B977ED01396286E3EB7737123EB705B6" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod_B977ED01396286E3EB7737123EB705B6" xlink:to="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod_B977ED01396286E3EB7737123EB705B6" xlink:type="arc" />
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod_7AFA58E2A0F7D3D9BC4837123EB72F47_terseLabel_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod_7AFA58E2A0F7D3D9BC4837123EB72F47" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Granted</link:label>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod_7AFA58E2A0F7D3D9BC4837123EB72F47_label_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod_7AFA58E2A0F7D3D9BC4837123EB72F47" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Share-based Compensation Arrangement by Share-based Payment Award, Equity Instruments Other than Options, Grants in Period</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod_7AFA58E2A0F7D3D9BC4837123EB72F47" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod_7AFA58E2A0F7D3D9BC4837123EB72F47" xlink:to="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod_7AFA58E2A0F7D3D9BC4837123EB72F47" xlink:type="arc" />
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue_A1EB5E0B5EB718AEB58737123EB8D46B_terseLabel_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue_A1EB5E0B5EB718AEB58737123EB8D46B" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Granted, weighted-average exercise price</link:label>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue_A1EB5E0B5EB718AEB58737123EB8D46B_label_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue_A1EB5E0B5EB718AEB58737123EB8D46B" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Share-based Compensation Arrangement by Share-based Payment Award, Equity Instruments Other than Options, Grants in Period, Weighted Average Grant Date Fair Value</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue_A1EB5E0B5EB718AEB58737123EB8D46B" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue_A1EB5E0B5EB718AEB58737123EB8D46B" xlink:to="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue_A1EB5E0B5EB718AEB58737123EB8D46B" xlink:type="arc" />
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate_4D31E46635BF03B56F5237123EB80559_terseLabel_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate_4D31E46635BF03B56F5237123EB80559" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Risk-free rate</link:label>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate_4D31E46635BF03B56F5237123EB80559_label_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate_4D31E46635BF03B56F5237123EB80559" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Share-based Compensation Arrangement by Share-based Payment Award, Fair Value Assumptions, Risk Free Interest Rate</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate_4D31E46635BF03B56F5237123EB80559" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate_4D31E46635BF03B56F5237123EB80559" xlink:to="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate_4D31E46635BF03B56F5237123EB80559" xlink:type="arc" />
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate_40ADAA90DF82D690510637123EB8A87C_terseLabel_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate_40ADAA90DF82D690510637123EB8A87C" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Expected dividend yield</link:label>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate_40ADAA90DF82D690510637123EB8A87C_label_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate_40ADAA90DF82D690510637123EB8A87C" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Share-based Compensation Arrangement by Share-based Payment Award, Fair Value Assumptions, Expected Dividend Rate</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate_40ADAA90DF82D690510637123EB8A87C" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate_40ADAA90DF82D690510637123EB8A87C" xlink:to="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate_40ADAA90DF82D690510637123EB8A87C" xlink:type="arc" />
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate_1B1E2AFBD42D269BE05137123EB86ADE_terseLabel_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate_1B1E2AFBD42D269BE05137123EB86ADE" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Expected volatility</link:label>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate_1B1E2AFBD42D269BE05137123EB86ADE_label_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate_1B1E2AFBD42D269BE05137123EB86ADE" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Share-based Compensation Arrangement by Share-based Payment Award, Fair Value Assumptions, Expected Volatility Rate</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate_1B1E2AFBD42D269BE05137123EB86ADE" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate_1B1E2AFBD42D269BE05137123EB86ADE" xlink:to="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate_1B1E2AFBD42D269BE05137123EB86ADE" xlink:type="arc" />
    <link:label id="lab_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1_2CB25ADF34725DA66C3D37123EB87315_terseLabel_en-US" xlink:label="lab_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1_2CB25ADF34725DA66C3D37123EB87315" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Expected term (in years)</link:label>
    <link:label id="lab_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1_2CB25ADF34725DA66C3D37123EB87315_label_en-US" xlink:label="lab_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1_2CB25ADF34725DA66C3D37123EB87315" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Share-based Compensation Arrangement by Share-based Payment Award, Fair Value Assumptions, Expected Term</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1" xlink:label="loc_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1_2CB25ADF34725DA66C3D37123EB87315" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1_2CB25ADF34725DA66C3D37123EB87315" xlink:to="lab_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1_2CB25ADF34725DA66C3D37123EB87315" xlink:type="arc" />
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod_53F4C5A2E029043F06BC37123EB8AEF6_terseLabel_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod_53F4C5A2E029043F06BC37123EB8AEF6" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Share-based Compensation Arrangement by Share-based Payment Award, Equity Instruments Other than Options, Forfeited in Period</link:label>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod_53F4C5A2E029043F06BC37123EB8AEF6_label_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod_53F4C5A2E029043F06BC37123EB8AEF6" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Share-based Compensation Arrangement by Share-based Payment Award, Equity Instruments Other than Options, Forfeited in Period</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod_53F4C5A2E029043F06BC37123EB8AEF6" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod_53F4C5A2E029043F06BC37123EB8AEF6" xlink:to="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod_53F4C5A2E029043F06BC37123EB8AEF6" xlink:type="arc" />
    <link:label id="lab_us-gaap_StatementOfFinancialPositionAbstract_29D763211F35808ECE40F3C900A0816F_label_en-US" xlink:label="lab_us-gaap_StatementOfFinancialPositionAbstract_29D763211F35808ECE40F3C900A0816F" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Statement of Financial Position [Abstract]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_StatementOfFinancialPositionAbstract" xlink:label="loc_us-gaap_StatementOfFinancialPositionAbstract_29D763211F35808ECE40F3C900A0816F" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_StatementOfFinancialPositionAbstract_29D763211F35808ECE40F3C900A0816F" xlink:to="lab_us-gaap_StatementOfFinancialPositionAbstract_29D763211F35808ECE40F3C900A0816F" xlink:type="arc" />
    <link:label id="lab_us-gaap_ValuationAllowancesAndReservesBalance_D4D86505D2F1591A2A3EF3C900A01D3E_terseLabel_en-US" xlink:label="lab_us-gaap_ValuationAllowancesAndReservesBalance_D4D86505D2F1591A2A3EF3C900A01D3E" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">SEC Schedule, 12-09, Valuation Allowances and Reserves, Amount</link:label>
    <link:label id="lab_us-gaap_ValuationAllowancesAndReservesBalance_D4D86505D2F1591A2A3EF3C900A01D3E_label_en-US" xlink:label="lab_us-gaap_ValuationAllowancesAndReservesBalance_D4D86505D2F1591A2A3EF3C900A01D3E" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">SEC Schedule, 12-09, Valuation Allowances and Reserves, Amount</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ValuationAllowancesAndReservesBalance" xlink:label="loc_us-gaap_ValuationAllowancesAndReservesBalance_D4D86505D2F1591A2A3EF3C900A01D3E" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ValuationAllowancesAndReservesBalance_D4D86505D2F1591A2A3EF3C900A01D3E" xlink:to="lab_us-gaap_ValuationAllowancesAndReservesBalance_D4D86505D2F1591A2A3EF3C900A01D3E" xlink:type="arc" />
    <link:label id="lab_us-gaap_PreferredStockParOrStatedValuePerShare_104AC5C25391847D7905F3CF59CE62CD_verboseLabel_en-US" xlink:label="lab_us-gaap_PreferredStockParOrStatedValuePerShare_104AC5C25391847D7905F3CF59CE62CD" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xml:lang="en-US">Preferred stock par value, in dollars per share</link:label>
    <link:label id="lab_us-gaap_PreferredStockParOrStatedValuePerShare_104AC5C25391847D7905F3CF59CE62CD_label_en-US" xlink:label="lab_us-gaap_PreferredStockParOrStatedValuePerShare_104AC5C25391847D7905F3CF59CE62CD" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Preferred Stock, Par or Stated Value Per Share</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_PreferredStockParOrStatedValuePerShare" xlink:label="loc_us-gaap_PreferredStockParOrStatedValuePerShare_104AC5C25391847D7905F3CF59CE62CD" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_PreferredStockParOrStatedValuePerShare_104AC5C25391847D7905F3CF59CE62CD" xlink:to="lab_us-gaap_PreferredStockParOrStatedValuePerShare_104AC5C25391847D7905F3CF59CE62CD" xlink:type="arc" />
    <link:label id="lab_us-gaap_PreferredStockSharesAuthorized_B5C71390E4A72BBD8C9BF3CFA6A1B8DE_verboseLabel_en-US" xlink:label="lab_us-gaap_PreferredStockSharesAuthorized_B5C71390E4A72BBD8C9BF3CFA6A1B8DE" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xml:lang="en-US">Preferred stock, shares authorized</link:label>
    <link:label id="lab_us-gaap_PreferredStockSharesAuthorized_B5C71390E4A72BBD8C9BF3CFA6A1B8DE_label_en-US" xlink:label="lab_us-gaap_PreferredStockSharesAuthorized_B5C71390E4A72BBD8C9BF3CFA6A1B8DE" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Preferred Stock, Shares Authorized</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_PreferredStockSharesAuthorized" xlink:label="loc_us-gaap_PreferredStockSharesAuthorized_B5C71390E4A72BBD8C9BF3CFA6A1B8DE" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_PreferredStockSharesAuthorized_B5C71390E4A72BBD8C9BF3CFA6A1B8DE" xlink:to="lab_us-gaap_PreferredStockSharesAuthorized_B5C71390E4A72BBD8C9BF3CFA6A1B8DE" xlink:type="arc" />
    <link:label id="lab_us-gaap_PreferredStockSharesIssued_21648348691CEF15FA46F3CFDCDA6AEC_terseLabel_en-US" xlink:label="lab_us-gaap_PreferredStockSharesIssued_21648348691CEF15FA46F3CFDCDA6AEC" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Preferred stock, shares issued</link:label>
    <link:label id="lab_us-gaap_PreferredStockSharesIssued_21648348691CEF15FA46F3CFDCDA6AEC_label_en-US" xlink:label="lab_us-gaap_PreferredStockSharesIssued_21648348691CEF15FA46F3CFDCDA6AEC" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Preferred Stock, Shares Issued</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_PreferredStockSharesIssued" xlink:label="loc_us-gaap_PreferredStockSharesIssued_21648348691CEF15FA46F3CFDCDA6AEC" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_PreferredStockSharesIssued_21648348691CEF15FA46F3CFDCDA6AEC" xlink:to="lab_us-gaap_PreferredStockSharesIssued_21648348691CEF15FA46F3CFDCDA6AEC" xlink:type="arc" />
    <link:label id="lab_us-gaap_PreferredStockSharesOutstanding_D0E5B8B5E5ED935386E7F3D02865E432_terseLabel_en-US" xlink:label="lab_us-gaap_PreferredStockSharesOutstanding_D0E5B8B5E5ED935386E7F3D02865E432" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Preferred stock, shares outstanding</link:label>
    <link:label id="lab_us-gaap_PreferredStockSharesOutstanding_D0E5B8B5E5ED935386E7F3D02865E432_label_en-US" xlink:label="lab_us-gaap_PreferredStockSharesOutstanding_D0E5B8B5E5ED935386E7F3D02865E432" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Preferred Stock, Shares Outstanding</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_PreferredStockSharesOutstanding" xlink:label="loc_us-gaap_PreferredStockSharesOutstanding_D0E5B8B5E5ED935386E7F3D02865E432" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_PreferredStockSharesOutstanding_D0E5B8B5E5ED935386E7F3D02865E432" xlink:to="lab_us-gaap_PreferredStockSharesOutstanding_D0E5B8B5E5ED935386E7F3D02865E432" xlink:type="arc" />
    <link:label id="lab_us-gaap_CommonStockParOrStatedValuePerShare_8AB1DEF12E50DB747686F3C900A04E60_terseLabel_en-US" xlink:label="lab_us-gaap_CommonStockParOrStatedValuePerShare_8AB1DEF12E50DB747686F3C900A04E60" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Common stock par value, in dollars per share</link:label>
    <link:label id="lab_us-gaap_CommonStockParOrStatedValuePerShare_8AB1DEF12E50DB747686F3C900A04E60_label_en-US" xlink:label="lab_us-gaap_CommonStockParOrStatedValuePerShare_8AB1DEF12E50DB747686F3C900A04E60" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Common Stock, Par or Stated Value Per Share</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_CommonStockParOrStatedValuePerShare" xlink:label="loc_us-gaap_CommonStockParOrStatedValuePerShare_8AB1DEF12E50DB747686F3C900A04E60" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_CommonStockParOrStatedValuePerShare_8AB1DEF12E50DB747686F3C900A04E60" xlink:to="lab_us-gaap_CommonStockParOrStatedValuePerShare_8AB1DEF12E50DB747686F3C900A04E60" xlink:type="arc" />
    <link:label id="lab_us-gaap_CommonStockSharesAuthorized_149E7BFFAB6EB9EF1372F3C900A0152B_terseLabel_en-US" xlink:label="lab_us-gaap_CommonStockSharesAuthorized_149E7BFFAB6EB9EF1372F3C900A0152B" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Common stock, shares authorized</link:label>
    <link:label id="lab_us-gaap_CommonStockSharesAuthorized_149E7BFFAB6EB9EF1372F3C900A0152B_label_en-US" xlink:label="lab_us-gaap_CommonStockSharesAuthorized_149E7BFFAB6EB9EF1372F3C900A0152B" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Common Stock, Shares Authorized</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_CommonStockSharesAuthorized" xlink:label="loc_us-gaap_CommonStockSharesAuthorized_149E7BFFAB6EB9EF1372F3C900A0152B" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_CommonStockSharesAuthorized_149E7BFFAB6EB9EF1372F3C900A0152B" xlink:to="lab_us-gaap_CommonStockSharesAuthorized_149E7BFFAB6EB9EF1372F3C900A0152B" xlink:type="arc" />
    <link:label id="lab_us-gaap_CommonStockSharesIssued_384DDF1E994F34EDB4AFF3C900A0FD69_terseLabel_en-US" xlink:label="lab_us-gaap_CommonStockSharesIssued_384DDF1E994F34EDB4AFF3C900A0FD69" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Common stock, shares issued</link:label>
    <link:label id="lab_us-gaap_CommonStockSharesIssued_384DDF1E994F34EDB4AFF3C900A0FD69_label_en-US" xlink:label="lab_us-gaap_CommonStockSharesIssued_384DDF1E994F34EDB4AFF3C900A0FD69" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Common Stock, Shares, Issued</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_CommonStockSharesIssued" xlink:label="loc_us-gaap_CommonStockSharesIssued_384DDF1E994F34EDB4AFF3C900A0FD69" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_CommonStockSharesIssued_384DDF1E994F34EDB4AFF3C900A0FD69" xlink:to="lab_us-gaap_CommonStockSharesIssued_384DDF1E994F34EDB4AFF3C900A0FD69" xlink:type="arc" />
    <link:label id="lab_us-gaap_CommonStockSharesOutstanding_695954DE0CABF0DA3978F3C900A0C021_terseLabel_en-US" xlink:label="lab_us-gaap_CommonStockSharesOutstanding_695954DE0CABF0DA3978F3C900A0C021" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Common stock, shares outstanding</link:label>
    <link:label id="lab_us-gaap_CommonStockSharesOutstanding_695954DE0CABF0DA3978F3C900A0C021_label_en-US" xlink:label="lab_us-gaap_CommonStockSharesOutstanding_695954DE0CABF0DA3978F3C900A0C021" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Common Stock, Shares, Outstanding</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_CommonStockSharesOutstanding" xlink:label="loc_us-gaap_CommonStockSharesOutstanding_695954DE0CABF0DA3978F3C900A0C021" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_CommonStockSharesOutstanding_695954DE0CABF0DA3978F3C900A0C021" xlink:to="lab_us-gaap_CommonStockSharesOutstanding_695954DE0CABF0DA3978F3C900A0C021" xlink:type="arc" />
    <link:label id="lab_us-gaap_StatementOfIncomeAndComprehensiveIncomeAbstract_65866706C10D761FA25D170C96A55B1F_label_en-US" xlink:label="lab_us-gaap_StatementOfIncomeAndComprehensiveIncomeAbstract_65866706C10D761FA25D170C96A55B1F" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Statement of Comprehensive Income [Abstract]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_StatementOfIncomeAndComprehensiveIncomeAbstract" xlink:label="loc_us-gaap_StatementOfIncomeAndComprehensiveIncomeAbstract_65866706C10D761FA25D170C96A55B1F" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_StatementOfIncomeAndComprehensiveIncomeAbstract_65866706C10D761FA25D170C96A55B1F" xlink:to="lab_us-gaap_StatementOfIncomeAndComprehensiveIncomeAbstract_65866706C10D761FA25D170C96A55B1F" xlink:type="arc" />
    <link:label id="lab_us-gaap_NetIncomeLoss_FA5EAD2CABF89B5E8F18170C96A5C029_terseLabel_en-US" xlink:label="lab_us-gaap_NetIncomeLoss_FA5EAD2CABF89B5E8F18170C96A5C029" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Net income</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_NetIncomeLoss" xlink:label="loc_us-gaap_NetIncomeLoss_FA5EAD2CABF89B5E8F18170C96A5C029" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_NetIncomeLoss_FA5EAD2CABF89B5E8F18170C96A5C029" xlink:to="lab_us-gaap_NetIncomeLoss_FA5EAD2CABF89B5E8F18170C96A5C029" xlink:type="arc" />
    <link:label id="lab_cgnx_CashflowshedgesAbstract_F7D4DF4AF9947FCBE4E8170C96A5825F_terseLabel_en-US" xlink:label="lab_cgnx_CashflowshedgesAbstract_F7D4DF4AF9947FCBE4E8170C96A5825F" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Cash flow hedges:</link:label>
    <link:label id="lab_cgnx_CashflowshedgesAbstract_F7D4DF4AF9947FCBE4E8170C96A5825F_label_en-US" xlink:label="lab_cgnx_CashflowshedgesAbstract_F7D4DF4AF9947FCBE4E8170C96A5825F" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Cash flows hedges [Abstract]</link:label>
    <link:label id="lab_cgnx_CashflowshedgesAbstract_F7D4DF4AF9947FCBE4E8170C96A5825F_documentation_en-US" xlink:label="lab_cgnx_CashflowshedgesAbstract_F7D4DF4AF9947FCBE4E8170C96A5825F" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Cash flows hedges [Abstract]</link:label>
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_CashflowshedgesAbstract" xlink:label="loc_cgnx_CashflowshedgesAbstract_F7D4DF4AF9947FCBE4E8170C96A5825F" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_CashflowshedgesAbstract_F7D4DF4AF9947FCBE4E8170C96A5825F" xlink:to="lab_cgnx_CashflowshedgesAbstract_F7D4DF4AF9947FCBE4E8170C96A5825F" xlink:type="arc" />
    <link:label id="lab_us-gaap_OtherComprehensiveIncomeUnrealizedGainLossOnDerivativesArisingDuringPeriodNetOfTax_EF235A80673EE4860D3C170C96A5B7B0_terseLabel_en-US" xlink:label="lab_us-gaap_OtherComprehensiveIncomeUnrealizedGainLossOnDerivativesArisingDuringPeriodNetOfTax_EF235A80673EE4860D3C170C96A5B7B0" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Net unrealized gain (loss), net of tax of $0, $0, and ($5) in 2019, 2018, and 2017, respectively</link:label>
    <link:label id="lab_us-gaap_OtherComprehensiveIncomeUnrealizedGainLossOnDerivativesArisingDuringPeriodNetOfTax_EF235A80673EE4860D3C170C96A5B7B0_label_en-US" xlink:label="lab_us-gaap_OtherComprehensiveIncomeUnrealizedGainLossOnDerivativesArisingDuringPeriodNetOfTax_EF235A80673EE4860D3C170C96A5B7B0" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Other Comprehensive Income (Loss), Unrealized Gain (Loss) on Derivatives Arising During Period, Net of Tax</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_OtherComprehensiveIncomeUnrealizedGainLossOnDerivativesArisingDuringPeriodNetOfTax" xlink:label="loc_us-gaap_OtherComprehensiveIncomeUnrealizedGainLossOnDerivativesArisingDuringPeriodNetOfTax_EF235A80673EE4860D3C170C96A5B7B0" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_OtherComprehensiveIncomeUnrealizedGainLossOnDerivativesArisingDuringPeriodNetOfTax_EF235A80673EE4860D3C170C96A5B7B0" xlink:to="lab_us-gaap_OtherComprehensiveIncomeUnrealizedGainLossOnDerivativesArisingDuringPeriodNetOfTax_EF235A80673EE4860D3C170C96A5B7B0" xlink:type="arc" />
    <link:label id="lab_us-gaap_OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIOnDerivativesNetOfTax_A46465053FEFAD31D9A8170C96A6A8DB_negatedTerseLabel_en-US" xlink:label="lab_us-gaap_OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIOnDerivativesNetOfTax_A46465053FEFAD31D9A8170C96A6A8DB" xlink:role="http://www.xbrl.org/2009/role/negatedTerseLabel" xlink:type="resource" xml:lang="en-US">Reclassification of net realized (gain) loss into current operations</link:label>
    <link:label id="lab_us-gaap_OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIOnDerivativesNetOfTax_A46465053FEFAD31D9A8170C96A6A8DB_label_en-US" xlink:label="lab_us-gaap_OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIOnDerivativesNetOfTax_A46465053FEFAD31D9A8170C96A6A8DB" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Other Comprehensive Income (Loss), Reclassification Adjustment from AOCI on Derivatives, Net of Tax</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIOnDerivativesNetOfTax" xlink:label="loc_us-gaap_OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIOnDerivativesNetOfTax_A46465053FEFAD31D9A8170C96A6A8DB" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIOnDerivativesNetOfTax_A46465053FEFAD31D9A8170C96A6A8DB" xlink:to="lab_us-gaap_OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIOnDerivativesNetOfTax_A46465053FEFAD31D9A8170C96A6A8DB" xlink:type="arc" />
    <link:label id="lab_us-gaap_OtherComprehensiveIncomeLossDerivativesQualifyingAsHedgesNetOfTax_9A8E32DCDFE030FEAB6C170C96A6A785_totalLabel_en-US" xlink:label="lab_us-gaap_OtherComprehensiveIncomeLossDerivativesQualifyingAsHedgesNetOfTax_9A8E32DCDFE030FEAB6C170C96A6A785" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xml:lang="en-US">Net change related to cash flow hedges</link:label>
    <link:label id="lab_us-gaap_OtherComprehensiveIncomeLossDerivativesQualifyingAsHedgesNetOfTax_9A8E32DCDFE030FEAB6C170C96A6A785_label_en-US" xlink:label="lab_us-gaap_OtherComprehensiveIncomeLossDerivativesQualifyingAsHedgesNetOfTax_9A8E32DCDFE030FEAB6C170C96A6A785" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Other Comprehensive Income (Loss), Derivatives Qualifying as Hedges, Net of Tax</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_OtherComprehensiveIncomeLossDerivativesQualifyingAsHedgesNetOfTax" xlink:label="loc_us-gaap_OtherComprehensiveIncomeLossDerivativesQualifyingAsHedgesNetOfTax_9A8E32DCDFE030FEAB6C170C96A6A785" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_OtherComprehensiveIncomeLossDerivativesQualifyingAsHedgesNetOfTax_9A8E32DCDFE030FEAB6C170C96A6A785" xlink:to="lab_us-gaap_OtherComprehensiveIncomeLossDerivativesQualifyingAsHedgesNetOfTax_9A8E32DCDFE030FEAB6C170C96A6A785" xlink:type="arc" />
    <link:label id="lab_us-gaap_OtherComprehensiveIncomeAvailableforsaleSecuritiesAdjustmentNetOfTaxPortionAttributableToParentAbstract_72E0F86E96C09FE41237170C96A626BC_terseLabel_en-US" xlink:label="lab_us-gaap_OtherComprehensiveIncomeAvailableforsaleSecuritiesAdjustmentNetOfTaxPortionAttributableToParentAbstract_72E0F86E96C09FE41237170C96A626BC" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Available-for-sale investments:</link:label>
    <link:label id="lab_us-gaap_OtherComprehensiveIncomeAvailableforsaleSecuritiesAdjustmentNetOfTaxPortionAttributableToParentAbstract_72E0F86E96C09FE41237170C96A626BC_label_en-US" xlink:label="lab_us-gaap_OtherComprehensiveIncomeAvailableforsaleSecuritiesAdjustmentNetOfTaxPortionAttributableToParentAbstract_72E0F86E96C09FE41237170C96A626BC" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Other Comprehensive Income (Loss), Available-for-sale Securities Adjustment, Net of Tax, Portion Attributable to Parent [Abstract]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_OtherComprehensiveIncomeAvailableforsaleSecuritiesAdjustmentNetOfTaxPortionAttributableToParentAbstract" xlink:label="loc_us-gaap_OtherComprehensiveIncomeAvailableforsaleSecuritiesAdjustmentNetOfTaxPortionAttributableToParentAbstract_72E0F86E96C09FE41237170C96A626BC" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_OtherComprehensiveIncomeAvailableforsaleSecuritiesAdjustmentNetOfTaxPortionAttributableToParentAbstract_72E0F86E96C09FE41237170C96A626BC" xlink:to="lab_us-gaap_OtherComprehensiveIncomeAvailableforsaleSecuritiesAdjustmentNetOfTaxPortionAttributableToParentAbstract_72E0F86E96C09FE41237170C96A626BC" xlink:type="arc" />
    <link:label id="lab_us-gaap_OtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax_D3BC90E456A345CE603C170C96A7ED1B_terseLabel_en-US" xlink:label="lab_us-gaap_OtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax_D3BC90E456A345CE603C170C96A7ED1B" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Net unrealized gain (loss), net of tax of $515, ($188), and $2 in 2019, 2018, and 2017, respectively</link:label>
    <link:label id="lab_us-gaap_OtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax_D3BC90E456A345CE603C170C96A7ED1B_label_en-US" xlink:label="lab_us-gaap_OtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax_D3BC90E456A345CE603C170C96A7ED1B" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Other Comprehensive Income (Loss), Securities, Available-for-sale, Adjustment, after Tax</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_OtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax" xlink:label="loc_us-gaap_OtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax_D3BC90E456A345CE603C170C96A7ED1B" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_OtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax_D3BC90E456A345CE603C170C96A7ED1B" xlink:to="lab_us-gaap_OtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax_D3BC90E456A345CE603C170C96A7ED1B" xlink:type="arc" />
    <link:label id="lab_us-gaap_OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax_1FA1ECA11D5953BB64E3170C96A77BFA_negatedLabel_en-US" xlink:label="lab_us-gaap_OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax_1FA1ECA11D5953BB64E3170C96A77BFA" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:type="resource" xml:lang="en-US">Reclassification of net realized (gain) loss into current operations</link:label>
    <link:label id="lab_us-gaap_OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax_1FA1ECA11D5953BB64E3170C96A77BFA_label_en-US" xlink:label="lab_us-gaap_OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax_1FA1ECA11D5953BB64E3170C96A77BFA" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Other Comprehensive Income (Loss), Reclassification Adjustment from AOCI for Sale of Securities, Net of Tax</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax" xlink:label="loc_us-gaap_OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax_1FA1ECA11D5953BB64E3170C96A77BFA" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax_1FA1ECA11D5953BB64E3170C96A77BFA" xlink:to="lab_us-gaap_OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax_1FA1ECA11D5953BB64E3170C96A77BFA" xlink:type="arc" />
    <link:label id="lab_us-gaap_OtherComprehensiveIncomeAvailableforsaleSecuritiesAdjustmentNetOfTaxPortionAttributableToParent_7CB747E88561E6311924170C96A7F14D_totalLabel_en-US" xlink:label="lab_us-gaap_OtherComprehensiveIncomeAvailableforsaleSecuritiesAdjustmentNetOfTaxPortionAttributableToParent_7CB747E88561E6311924170C96A7F14D" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xml:lang="en-US">Net change related to available-for-sale investments</link:label>
    <link:label id="lab_us-gaap_OtherComprehensiveIncomeAvailableforsaleSecuritiesAdjustmentNetOfTaxPortionAttributableToParent_7CB747E88561E6311924170C96A7F14D_label_en-US" xlink:label="lab_us-gaap_OtherComprehensiveIncomeAvailableforsaleSecuritiesAdjustmentNetOfTaxPortionAttributableToParent_7CB747E88561E6311924170C96A7F14D" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Other Comprehensive Income (Loss), Available-for-sale Securities Adjustment, Net of Tax, Portion Attributable to Parent</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_OtherComprehensiveIncomeAvailableforsaleSecuritiesAdjustmentNetOfTaxPortionAttributableToParent" xlink:label="loc_us-gaap_OtherComprehensiveIncomeAvailableforsaleSecuritiesAdjustmentNetOfTaxPortionAttributableToParent_7CB747E88561E6311924170C96A7F14D" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_OtherComprehensiveIncomeAvailableforsaleSecuritiesAdjustmentNetOfTaxPortionAttributableToParent_7CB747E88561E6311924170C96A7F14D" xlink:to="lab_us-gaap_OtherComprehensiveIncomeAvailableforsaleSecuritiesAdjustmentNetOfTaxPortionAttributableToParent_7CB747E88561E6311924170C96A7F14D" xlink:type="arc" />
    <link:label id="lab_cgnx_CurrencytranslationadjustmentAbstract_6092AF9E05D5FCDD9AAE170C96A73BF2_terseLabel_en-US" xlink:label="lab_cgnx_CurrencytranslationadjustmentAbstract_6092AF9E05D5FCDD9AAE170C96A73BF2" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Foreign currency translation adjustments:</link:label>
    <link:label id="lab_cgnx_CurrencytranslationadjustmentAbstract_6092AF9E05D5FCDD9AAE170C96A73BF2_label_en-US" xlink:label="lab_cgnx_CurrencytranslationadjustmentAbstract_6092AF9E05D5FCDD9AAE170C96A73BF2" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Currency translation adjustment [Abstract]</link:label>
    <link:label id="lab_cgnx_CurrencytranslationadjustmentAbstract_6092AF9E05D5FCDD9AAE170C96A73BF2_documentation_en-US" xlink:label="lab_cgnx_CurrencytranslationadjustmentAbstract_6092AF9E05D5FCDD9AAE170C96A73BF2" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Currency translation adjustment [Abstract]</link:label>
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_CurrencytranslationadjustmentAbstract" xlink:label="loc_cgnx_CurrencytranslationadjustmentAbstract_6092AF9E05D5FCDD9AAE170C96A73BF2" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_CurrencytranslationadjustmentAbstract_6092AF9E05D5FCDD9AAE170C96A73BF2" xlink:to="lab_cgnx_CurrencytranslationadjustmentAbstract_6092AF9E05D5FCDD9AAE170C96A73BF2" xlink:type="arc" />
    <link:label id="lab_us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax_12BAA17918C2F0271A23170C96A7301C_terseLabel_en-US" xlink:label="lab_us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax_12BAA17918C2F0271A23170C96A7301C" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Foreign currency translation adjustments</link:label>
    <link:label id="lab_us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax_12BAA17918C2F0271A23170C96A7301C_label_en-US" xlink:label="lab_us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax_12BAA17918C2F0271A23170C96A7301C" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Other Comprehensive Income (Loss), Foreign Currency Transaction and Translation Adjustment, Net of Tax</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax" xlink:label="loc_us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax_12BAA17918C2F0271A23170C96A7301C" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax_12BAA17918C2F0271A23170C96A7301C" xlink:to="lab_us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax_12BAA17918C2F0271A23170C96A7301C" xlink:type="arc" />
    <link:label id="lab_us-gaap_OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent_967D4F6F3E2CDC4EA89C170C96A89961_totalLabel_en-US" xlink:label="lab_us-gaap_OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent_967D4F6F3E2CDC4EA89C170C96A89961" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xml:lang="en-US">Net change related to foreign currency translation adjustments</link:label>
    <link:label id="lab_us-gaap_OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent_967D4F6F3E2CDC4EA89C170C96A89961_label_en-US" xlink:label="lab_us-gaap_OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent_967D4F6F3E2CDC4EA89C170C96A89961" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Other Comprehensive Income (Loss), Foreign Currency Transaction and Translation Adjustment, Net of Tax, Portion Attributable to Parent</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent" xlink:label="loc_us-gaap_OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent_967D4F6F3E2CDC4EA89C170C96A89961" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent_967D4F6F3E2CDC4EA89C170C96A89961" xlink:to="lab_us-gaap_OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent_967D4F6F3E2CDC4EA89C170C96A89961" xlink:type="arc" />
    <link:label id="lab_us-gaap_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent_479B7BB0C1EE2D2857A9170C96A8DE46_totalLabel_en-US" xlink:label="lab_us-gaap_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent_479B7BB0C1EE2D2857A9170C96A8DE46" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xml:lang="en-US">Other comprehensive income (loss), net of tax</link:label>
    <link:label id="lab_us-gaap_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent_479B7BB0C1EE2D2857A9170C96A8DE46_label_en-US" xlink:label="lab_us-gaap_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent_479B7BB0C1EE2D2857A9170C96A8DE46" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Other Comprehensive Income (Loss), Net of Tax, Portion Attributable to Parent</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent" xlink:label="loc_us-gaap_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent_479B7BB0C1EE2D2857A9170C96A8DE46" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent_479B7BB0C1EE2D2857A9170C96A8DE46" xlink:to="lab_us-gaap_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent_479B7BB0C1EE2D2857A9170C96A8DE46" xlink:type="arc" />
    <link:label id="lab_us-gaap_ComprehensiveIncomeNetOfTax_4700D0EDE0C2D1B5624F170C96A82F80_totalLabel_en-US" xlink:label="lab_us-gaap_ComprehensiveIncomeNetOfTax_4700D0EDE0C2D1B5624F170C96A82F80" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xml:lang="en-US">Total comprehensive income</link:label>
    <link:label id="lab_us-gaap_ComprehensiveIncomeNetOfTax_4700D0EDE0C2D1B5624F170C96A82F80_label_en-US" xlink:label="lab_us-gaap_ComprehensiveIncomeNetOfTax_4700D0EDE0C2D1B5624F170C96A82F80" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Comprehensive Income (Loss), Net of Tax, Attributable to Parent</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ComprehensiveIncomeNetOfTax" xlink:label="loc_us-gaap_ComprehensiveIncomeNetOfTax_4700D0EDE0C2D1B5624F170C96A82F80" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ComprehensiveIncomeNetOfTax_4700D0EDE0C2D1B5624F170C96A82F80" xlink:to="lab_us-gaap_ComprehensiveIncomeNetOfTax_4700D0EDE0C2D1B5624F170C96A82F80" xlink:type="arc" />
    <link:label id="lab_us-gaap_IncomeTaxDisclosureAbstract_18208E6FCB73FE1FF48B35C1100AE1A9_label_en-US" xlink:label="lab_us-gaap_IncomeTaxDisclosureAbstract_18208E6FCB73FE1FF48B35C1100AE1A9" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Income Tax Disclosure [Abstract]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_IncomeTaxDisclosureAbstract" xlink:label="loc_us-gaap_IncomeTaxDisclosureAbstract_18208E6FCB73FE1FF48B35C1100AE1A9" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_IncomeTaxDisclosureAbstract_18208E6FCB73FE1FF48B35C1100AE1A9" xlink:to="lab_us-gaap_IncomeTaxDisclosureAbstract_18208E6FCB73FE1FF48B35C1100AE1A9" xlink:type="arc" />
    <link:label id="lab_us-gaap_TaxCreditCarryforwardTable_A10F6BA9FF4BD7DBEAB835C1100B6F50_terseLabel_en-US" xlink:label="lab_us-gaap_TaxCreditCarryforwardTable_A10F6BA9FF4BD7DBEAB835C1100B6F50" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Tax Credit Carryforward [Table]</link:label>
    <link:label id="lab_us-gaap_TaxCreditCarryforwardTable_A10F6BA9FF4BD7DBEAB835C1100B6F50_label_en-US" xlink:label="lab_us-gaap_TaxCreditCarryforwardTable_A10F6BA9FF4BD7DBEAB835C1100B6F50" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Tax Credit Carryforward [Table]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_TaxCreditCarryforwardTable" xlink:label="loc_us-gaap_TaxCreditCarryforwardTable_A10F6BA9FF4BD7DBEAB835C1100B6F50" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_TaxCreditCarryforwardTable_A10F6BA9FF4BD7DBEAB835C1100B6F50" xlink:to="lab_us-gaap_TaxCreditCarryforwardTable_A10F6BA9FF4BD7DBEAB835C1100B6F50" xlink:type="arc" />
    <link:label id="lab_us-gaap_IncomeTaxAuthorityAxis_094CC3B5905E9C367EEC35C1100C9921_terseLabel_en-US" xlink:label="lab_us-gaap_IncomeTaxAuthorityAxis_094CC3B5905E9C367EEC35C1100C9921" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Income Tax Authority [Axis]</link:label>
    <link:label id="lab_us-gaap_IncomeTaxAuthorityAxis_094CC3B5905E9C367EEC35C1100C9921_label_en-US" xlink:label="lab_us-gaap_IncomeTaxAuthorityAxis_094CC3B5905E9C367EEC35C1100C9921" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Income Tax Authority [Axis]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_IncomeTaxAuthorityAxis" xlink:label="loc_us-gaap_IncomeTaxAuthorityAxis_094CC3B5905E9C367EEC35C1100C9921" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_IncomeTaxAuthorityAxis_094CC3B5905E9C367EEC35C1100C9921" xlink:to="lab_us-gaap_IncomeTaxAuthorityAxis_094CC3B5905E9C367EEC35C1100C9921" xlink:type="arc" />
    <link:label id="lab_us-gaap_IncomeTaxAuthorityDomain_0368EE5BFE3D72A54C8F35C1100CC847_terseLabel_en-US" xlink:label="lab_us-gaap_IncomeTaxAuthorityDomain_0368EE5BFE3D72A54C8F35C1100CC847" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Income Tax Authority [Domain]</link:label>
    <link:label id="lab_us-gaap_IncomeTaxAuthorityDomain_0368EE5BFE3D72A54C8F35C1100CC847_label_en-US" xlink:label="lab_us-gaap_IncomeTaxAuthorityDomain_0368EE5BFE3D72A54C8F35C1100CC847" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Income Tax Authority [Domain]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_IncomeTaxAuthorityDomain" xlink:label="loc_us-gaap_IncomeTaxAuthorityDomain_0368EE5BFE3D72A54C8F35C1100CC847" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_IncomeTaxAuthorityDomain_0368EE5BFE3D72A54C8F35C1100CC847" xlink:to="lab_us-gaap_IncomeTaxAuthorityDomain_0368EE5BFE3D72A54C8F35C1100CC847" xlink:type="arc" />
    <link:label id="lab_us-gaap_ForeignCountryMember_E7C41ECA4BCFC03F69CE35C1100C2581_terseLabel_en-US" xlink:label="lab_us-gaap_ForeignCountryMember_E7C41ECA4BCFC03F69CE35C1100C2581" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Foreign Tax Authority [Member]</link:label>
    <link:label id="lab_us-gaap_ForeignCountryMember_E7C41ECA4BCFC03F69CE35C1100C2581_label_en-US" xlink:label="lab_us-gaap_ForeignCountryMember_E7C41ECA4BCFC03F69CE35C1100C2581" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Foreign Tax Authority [Member]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ForeignCountryMember" xlink:label="loc_us-gaap_ForeignCountryMember_E7C41ECA4BCFC03F69CE35C1100C2581" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ForeignCountryMember_E7C41ECA4BCFC03F69CE35C1100C2581" xlink:to="lab_us-gaap_ForeignCountryMember_E7C41ECA4BCFC03F69CE35C1100C2581" xlink:type="arc" />
    <link:label id="lab_us-gaap_DomesticCountryMember_AA9B871603BCC423918D35C1100C877B_terseLabel_en-US" xlink:label="lab_us-gaap_DomesticCountryMember_AA9B871603BCC423918D35C1100C877B" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Domestic Tax Authority [Member]</link:label>
    <link:label id="lab_us-gaap_DomesticCountryMember_AA9B871603BCC423918D35C1100C877B_label_en-US" xlink:label="lab_us-gaap_DomesticCountryMember_AA9B871603BCC423918D35C1100C877B" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Domestic Tax Authority [Member]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_DomesticCountryMember" xlink:label="loc_us-gaap_DomesticCountryMember_AA9B871603BCC423918D35C1100C877B" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DomesticCountryMember_AA9B871603BCC423918D35C1100C877B" xlink:to="lab_us-gaap_DomesticCountryMember_AA9B871603BCC423918D35C1100C877B" xlink:type="arc" />
    <link:label id="lab_us-gaap_IncomeTaxAuthorityNameAxis_C86D178898DDB5E44E4835C1100D64EF_terseLabel_en-US" xlink:label="lab_us-gaap_IncomeTaxAuthorityNameAxis_C86D178898DDB5E44E4835C1100D64EF" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Income Tax Authority, Name [Axis]</link:label>
    <link:label id="lab_us-gaap_IncomeTaxAuthorityNameAxis_C86D178898DDB5E44E4835C1100D64EF_label_en-US" xlink:label="lab_us-gaap_IncomeTaxAuthorityNameAxis_C86D178898DDB5E44E4835C1100D64EF" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Income Tax Authority, Name [Axis]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_IncomeTaxAuthorityNameAxis" xlink:label="loc_us-gaap_IncomeTaxAuthorityNameAxis_C86D178898DDB5E44E4835C1100D64EF" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_IncomeTaxAuthorityNameAxis_C86D178898DDB5E44E4835C1100D64EF" xlink:to="lab_us-gaap_IncomeTaxAuthorityNameAxis_C86D178898DDB5E44E4835C1100D64EF" xlink:type="arc" />
    <link:label id="lab_us-gaap_IncomeTaxAuthorityNameDomain_A85385954781BDCAFCF535C1100D0642_terseLabel_en-US" xlink:label="lab_us-gaap_IncomeTaxAuthorityNameDomain_A85385954781BDCAFCF535C1100D0642" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Income Tax Authority, Name [Domain]</link:label>
    <link:label id="lab_us-gaap_IncomeTaxAuthorityNameDomain_A85385954781BDCAFCF535C1100D0642_label_en-US" xlink:label="lab_us-gaap_IncomeTaxAuthorityNameDomain_A85385954781BDCAFCF535C1100D0642" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Income Tax Authority, Name [Domain]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_IncomeTaxAuthorityNameDomain" xlink:label="loc_us-gaap_IncomeTaxAuthorityNameDomain_A85385954781BDCAFCF535C1100D0642" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_IncomeTaxAuthorityNameDomain_A85385954781BDCAFCF535C1100D0642" xlink:to="lab_us-gaap_IncomeTaxAuthorityNameDomain_A85385954781BDCAFCF535C1100D0642" xlink:type="arc" />
    <link:label id="lab_us-gaap_RevenueCommissionersIrelandMember_F9E022295D1899A7DC6435C1100D3365_terseLabel_en-US" xlink:label="lab_us-gaap_RevenueCommissionersIrelandMember_F9E022295D1899A7DC6435C1100D3365" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Revenue Commissioners, Ireland [Member]</link:label>
    <link:label id="lab_us-gaap_RevenueCommissionersIrelandMember_F9E022295D1899A7DC6435C1100D3365_label_en-US" xlink:label="lab_us-gaap_RevenueCommissionersIrelandMember_F9E022295D1899A7DC6435C1100D3365" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Revenue Commissioners, Ireland [Member]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_RevenueCommissionersIrelandMember" xlink:label="loc_us-gaap_RevenueCommissionersIrelandMember_F9E022295D1899A7DC6435C1100D3365" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_RevenueCommissionersIrelandMember_F9E022295D1899A7DC6435C1100D3365" xlink:to="lab_us-gaap_RevenueCommissionersIrelandMember_F9E022295D1899A7DC6435C1100D3365" xlink:type="arc" />
    <link:label id="lab_us-gaap_StateAdministrationOfTaxationChinaMember_F562C05BB80D1567546E35C1100EF368_terseLabel_en-US" xlink:label="lab_us-gaap_StateAdministrationOfTaxationChinaMember_F562C05BB80D1567546E35C1100EF368" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">State Administration of Taxation, China [Member]</link:label>
    <link:label id="lab_us-gaap_StateAdministrationOfTaxationChinaMember_F562C05BB80D1567546E35C1100EF368_label_en-US" xlink:label="lab_us-gaap_StateAdministrationOfTaxationChinaMember_F562C05BB80D1567546E35C1100EF368" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">State Administration of Taxation, China [Member]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_StateAdministrationOfTaxationChinaMember" xlink:label="loc_us-gaap_StateAdministrationOfTaxationChinaMember_F562C05BB80D1567546E35C1100EF368" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_StateAdministrationOfTaxationChinaMember_F562C05BB80D1567546E35C1100EF368" xlink:to="lab_us-gaap_StateAdministrationOfTaxationChinaMember_F562C05BB80D1567546E35C1100EF368" xlink:type="arc" />
    <link:label id="lab_us-gaap_AdjustmentsForNewAccountingPronouncementsAxis_B97DFCC146083AA0113435C1100E7D7B_terseLabel_en-US" xlink:label="lab_us-gaap_AdjustmentsForNewAccountingPronouncementsAxis_B97DFCC146083AA0113435C1100E7D7B" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Adjustments for New Accounting Pronouncements [Axis]</link:label>
    <link:label id="lab_us-gaap_AdjustmentsForNewAccountingPronouncementsAxis_B97DFCC146083AA0113435C1100E7D7B_label_en-US" xlink:label="lab_us-gaap_AdjustmentsForNewAccountingPronouncementsAxis_B97DFCC146083AA0113435C1100E7D7B" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Adjustments for New Accounting Pronouncements [Axis]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_AdjustmentsForNewAccountingPronouncementsAxis" xlink:label="loc_us-gaap_AdjustmentsForNewAccountingPronouncementsAxis_B97DFCC146083AA0113435C1100E7D7B" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AdjustmentsForNewAccountingPronouncementsAxis_B97DFCC146083AA0113435C1100E7D7B" xlink:to="lab_us-gaap_AdjustmentsForNewAccountingPronouncementsAxis_B97DFCC146083AA0113435C1100E7D7B" xlink:type="arc" />
    <link:label id="lab_us-gaap_TypeOfAdoptionMember_D3CDA98240EA60E1E9D835C1100EB9B2_terseLabel_en-US" xlink:label="lab_us-gaap_TypeOfAdoptionMember_D3CDA98240EA60E1E9D835C1100EB9B2" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Type of Adoption [Domain]</link:label>
    <link:label id="lab_us-gaap_TypeOfAdoptionMember_D3CDA98240EA60E1E9D835C1100EB9B2_label_en-US" xlink:label="lab_us-gaap_TypeOfAdoptionMember_D3CDA98240EA60E1E9D835C1100EB9B2" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Type of Adoption [Domain]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_TypeOfAdoptionMember" xlink:label="loc_us-gaap_TypeOfAdoptionMember_D3CDA98240EA60E1E9D835C1100EB9B2" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_TypeOfAdoptionMember_D3CDA98240EA60E1E9D835C1100EB9B2" xlink:to="lab_us-gaap_TypeOfAdoptionMember_D3CDA98240EA60E1E9D835C1100EB9B2" xlink:type="arc" />
    <link:label id="lab_us-gaap_AccountingStandardsUpdate201616Member_74D6CB3E57206F8B0C5535C1100E8961_terseLabel_en-US" xlink:label="lab_us-gaap_AccountingStandardsUpdate201616Member_74D6CB3E57206F8B0C5535C1100E8961" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Accounting Standards Update 2016-16 [Member]</link:label>
    <link:label id="lab_us-gaap_AccountingStandardsUpdate201616Member_74D6CB3E57206F8B0C5535C1100E8961_label_en-US" xlink:label="lab_us-gaap_AccountingStandardsUpdate201616Member_74D6CB3E57206F8B0C5535C1100E8961" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Accounting Standards Update 2016-16 [Member]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_AccountingStandardsUpdate201616Member" xlink:label="loc_us-gaap_AccountingStandardsUpdate201616Member_74D6CB3E57206F8B0C5535C1100E8961" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AccountingStandardsUpdate201616Member_74D6CB3E57206F8B0C5535C1100E8961" xlink:to="lab_us-gaap_AccountingStandardsUpdate201616Member_74D6CB3E57206F8B0C5535C1100E8961" xlink:type="arc" />
    <link:label id="lab_cgnx_AccountingStandardsUpdate201609StatutoryTaxWithholdingComponentMember_92E66746D55843731F3A35C1100E9376_terseLabel_en-US" xlink:label="lab_cgnx_AccountingStandardsUpdate201609StatutoryTaxWithholdingComponentMember_92E66746D55843731F3A35C1100E9376" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Accounting Standards Update 2016-09, Statutory Tax Withholding Component [Member]</link:label>
    <link:label id="lab_cgnx_AccountingStandardsUpdate201609StatutoryTaxWithholdingComponentMember_92E66746D55843731F3A35C1100E9376_label_en-US" xlink:label="lab_cgnx_AccountingStandardsUpdate201609StatutoryTaxWithholdingComponentMember_92E66746D55843731F3A35C1100E9376" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Accounting Standards Update 2016-09, Statutory Tax Withholding Component [Member]</link:label>
    <link:label id="lab_cgnx_AccountingStandardsUpdate201609StatutoryTaxWithholdingComponentMember_92E66746D55843731F3A35C1100E9376_documentation_en-US" xlink:label="lab_cgnx_AccountingStandardsUpdate201609StatutoryTaxWithholdingComponentMember_92E66746D55843731F3A35C1100E9376" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Accounting Standards Update 2016-09, Statutory Tax Withholding Component [Member]</link:label>
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_AccountingStandardsUpdate201609StatutoryTaxWithholdingComponentMember" xlink:label="loc_cgnx_AccountingStandardsUpdate201609StatutoryTaxWithholdingComponentMember_92E66746D55843731F3A35C1100E9376" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_AccountingStandardsUpdate201609StatutoryTaxWithholdingComponentMember_92E66746D55843731F3A35C1100E9376" xlink:to="lab_cgnx_AccountingStandardsUpdate201609StatutoryTaxWithholdingComponentMember_92E66746D55843731F3A35C1100E9376" xlink:type="arc" />
    <link:label id="lab_cgnx_OtherThantheU.SMember_DAD4684EDCB87F6B419D35C1100F4569_terseLabel_en-US" xlink:label="lab_cgnx_OtherThantheU.SMember_DAD4684EDCB87F6B419D35C1100F4569" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Other Than the U.S [Member]</link:label>
    <link:label id="lab_cgnx_OtherThantheU.SMember_DAD4684EDCB87F6B419D35C1100F4569_label_en-US" xlink:label="lab_cgnx_OtherThantheU.SMember_DAD4684EDCB87F6B419D35C1100F4569" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Other Than the U.S [Member]</link:label>
    <link:label id="lab_cgnx_OtherThantheU.SMember_DAD4684EDCB87F6B419D35C1100F4569_documentation_en-US" xlink:label="lab_cgnx_OtherThantheU.SMember_DAD4684EDCB87F6B419D35C1100F4569" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Other Than the U.S [Member]</link:label>
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_OtherThantheU.SMember" xlink:label="loc_cgnx_OtherThantheU.SMember_DAD4684EDCB87F6B419D35C1100F4569" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_OtherThantheU.SMember_DAD4684EDCB87F6B419D35C1100F4569" xlink:to="lab_cgnx_OtherThantheU.SMember_DAD4684EDCB87F6B419D35C1100F4569" xlink:type="arc" />
    <link:label id="lab_us-gaap_TaxCreditCarryforwardAxis_B4B9414F8DCB6B008A6E35C1100F19E5_terseLabel_en-US" xlink:label="lab_us-gaap_TaxCreditCarryforwardAxis_B4B9414F8DCB6B008A6E35C1100F19E5" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Tax Credit Carryforward [Axis]</link:label>
    <link:label id="lab_us-gaap_TaxCreditCarryforwardAxis_B4B9414F8DCB6B008A6E35C1100F19E5_label_en-US" xlink:label="lab_us-gaap_TaxCreditCarryforwardAxis_B4B9414F8DCB6B008A6E35C1100F19E5" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Tax Credit Carryforward [Axis]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_TaxCreditCarryforwardAxis" xlink:label="loc_us-gaap_TaxCreditCarryforwardAxis_B4B9414F8DCB6B008A6E35C1100F19E5" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_TaxCreditCarryforwardAxis_B4B9414F8DCB6B008A6E35C1100F19E5" xlink:to="lab_us-gaap_TaxCreditCarryforwardAxis_B4B9414F8DCB6B008A6E35C1100F19E5" xlink:type="arc" />
    <link:label id="lab_us-gaap_TaxCreditCarryforwardNameDomain_7A53AE9BF81DCAF4064035C1100FAF62_terseLabel_en-US" xlink:label="lab_us-gaap_TaxCreditCarryforwardNameDomain_7A53AE9BF81DCAF4064035C1100FAF62" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Tax Credit Carryforward, Name [Domain]</link:label>
    <link:label id="lab_us-gaap_TaxCreditCarryforwardNameDomain_7A53AE9BF81DCAF4064035C1100FAF62_label_en-US" xlink:label="lab_us-gaap_TaxCreditCarryforwardNameDomain_7A53AE9BF81DCAF4064035C1100FAF62" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Tax Credit Carryforward, Name [Domain]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_TaxCreditCarryforwardNameDomain" xlink:label="loc_us-gaap_TaxCreditCarryforwardNameDomain_7A53AE9BF81DCAF4064035C1100FAF62" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_TaxCreditCarryforwardNameDomain_7A53AE9BF81DCAF4064035C1100FAF62" xlink:to="lab_us-gaap_TaxCreditCarryforwardNameDomain_7A53AE9BF81DCAF4064035C1100FAF62" xlink:type="arc" />
    <link:label id="lab_us-gaap_ResearchMember_A697083286E846F25B3A35C11010807C_terseLabel_en-US" xlink:label="lab_us-gaap_ResearchMember_A697083286E846F25B3A35C11010807C" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Research Tax Credit Carryforward [Member]</link:label>
    <link:label id="lab_us-gaap_ResearchMember_A697083286E846F25B3A35C11010807C_label_en-US" xlink:label="lab_us-gaap_ResearchMember_A697083286E846F25B3A35C11010807C" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Research Tax Credit Carryforward [Member]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ResearchMember" xlink:label="loc_us-gaap_ResearchMember_A697083286E846F25B3A35C11010807C" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ResearchMember_A697083286E846F25B3A35C11010807C" xlink:to="lab_us-gaap_ResearchMember_A697083286E846F25B3A35C11010807C" xlink:type="arc" />
    <link:label id="lab_cgnx_StateResearchAndExperimentationMember_E4C576609B4EB07294A735C1101052DF_terseLabel_en-US" xlink:label="lab_cgnx_StateResearchAndExperimentationMember_E4C576609B4EB07294A735C1101052DF" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">State Research And Experimentation [Member]</link:label>
    <link:label id="lab_cgnx_StateResearchAndExperimentationMember_E4C576609B4EB07294A735C1101052DF_label_en-US" xlink:label="lab_cgnx_StateResearchAndExperimentationMember_E4C576609B4EB07294A735C1101052DF" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">State Research And Experimentation [Member]</link:label>
    <link:label id="lab_cgnx_StateResearchAndExperimentationMember_E4C576609B4EB07294A735C1101052DF_documentation_en-US" xlink:label="lab_cgnx_StateResearchAndExperimentationMember_E4C576609B4EB07294A735C1101052DF" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">State research and experimentation.</link:label>
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_StateResearchAndExperimentationMember" xlink:label="loc_cgnx_StateResearchAndExperimentationMember_E4C576609B4EB07294A735C1101052DF" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_StateResearchAndExperimentationMember_E4C576609B4EB07294A735C1101052DF" xlink:to="lab_cgnx_StateResearchAndExperimentationMember_E4C576609B4EB07294A735C1101052DF" xlink:type="arc" />
    <link:label id="lab_us-gaap_TaxCreditCarryforwardLineItems_E178ED6906E3027DF4C335C11010EA3F_terseLabel_en-US" xlink:label="lab_us-gaap_TaxCreditCarryforwardLineItems_E178ED6906E3027DF4C335C11010EA3F" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Tax Credit Carryforward [Line Items]</link:label>
    <link:label id="lab_us-gaap_TaxCreditCarryforwardLineItems_E178ED6906E3027DF4C335C11010EA3F_label_en-US" xlink:label="lab_us-gaap_TaxCreditCarryforwardLineItems_E178ED6906E3027DF4C335C11010EA3F" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Tax Credit Carryforward [Line Items]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_TaxCreditCarryforwardLineItems" xlink:label="loc_us-gaap_TaxCreditCarryforwardLineItems_E178ED6906E3027DF4C335C11010EA3F" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_TaxCreditCarryforwardLineItems_E178ED6906E3027DF4C335C11010EA3F" xlink:to="lab_us-gaap_TaxCreditCarryforwardLineItems_E178ED6906E3027DF4C335C11010EA3F" xlink:type="arc" />
    <link:label id="lab_cgnx_EffectiveIncomeTaxRateReconciliationMigrationofAcquiredIntellectualProperty_1C1DFAB219C74EDE9C9935C1101026F5_verboseLabel_en-US" xlink:label="lab_cgnx_EffectiveIncomeTaxRateReconciliationMigrationofAcquiredIntellectualProperty_1C1DFAB219C74EDE9C9935C1101026F5" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xml:lang="en-US">Discrete tax expense for migration of acquired intellectual property</link:label>
    <link:label id="lab_cgnx_EffectiveIncomeTaxRateReconciliationMigrationofAcquiredIntellectualProperty_1C1DFAB219C74EDE9C9935C1101026F5_label_en-US" xlink:label="lab_cgnx_EffectiveIncomeTaxRateReconciliationMigrationofAcquiredIntellectualProperty_1C1DFAB219C74EDE9C9935C1101026F5" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Effective Income Tax Rate Reconciliation, Migration of Acquired Intellectual Property</link:label>
    <link:label id="lab_cgnx_EffectiveIncomeTaxRateReconciliationMigrationofAcquiredIntellectualProperty_1C1DFAB219C74EDE9C9935C1101026F5_documentation_en-US" xlink:label="lab_cgnx_EffectiveIncomeTaxRateReconciliationMigrationofAcquiredIntellectualProperty_1C1DFAB219C74EDE9C9935C1101026F5" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Effective Income Tax Rate Reconciliation, Migration of Acquired Intellectual Property</link:label>
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_EffectiveIncomeTaxRateReconciliationMigrationofAcquiredIntellectualProperty" xlink:label="loc_cgnx_EffectiveIncomeTaxRateReconciliationMigrationofAcquiredIntellectualProperty_1C1DFAB219C74EDE9C9935C1101026F5" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_EffectiveIncomeTaxRateReconciliationMigrationofAcquiredIntellectualProperty_1C1DFAB219C74EDE9C9935C1101026F5" xlink:to="lab_cgnx_EffectiveIncomeTaxRateReconciliationMigrationofAcquiredIntellectualProperty_1C1DFAB219C74EDE9C9935C1101026F5" xlink:type="arc" />
    <link:label id="lab_us-gaap_UnrecognizedTaxBenefits_0E1CF283A731F37694E435C11011E6DD_terseLabel_en-US" xlink:label="lab_us-gaap_UnrecognizedTaxBenefits_0E1CF283A731F37694E435C11011E6DD" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Reserve for tax uncertainties</link:label>
    <link:label id="lab_us-gaap_UnrecognizedTaxBenefits_0E1CF283A731F37694E435C11011E6DD_label_en-US" xlink:label="lab_us-gaap_UnrecognizedTaxBenefits_0E1CF283A731F37694E435C11011E6DD" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Unrecognized Tax Benefits</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_UnrecognizedTaxBenefits" xlink:label="loc_us-gaap_UnrecognizedTaxBenefits_0E1CF283A731F37694E435C11011E6DD" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_UnrecognizedTaxBenefits_0E1CF283A731F37694E435C11011E6DD" xlink:to="lab_us-gaap_UnrecognizedTaxBenefits_0E1CF283A731F37694E435C11011E6DD" xlink:type="arc" />
    <link:label id="lab_us-gaap_IncomeTaxReconciliationForeignIncomeTaxRateDifferential_524870F8D09DF1AA123835C11011D0F9_terseLabel_en-US" xlink:label="lab_us-gaap_IncomeTaxReconciliationForeignIncomeTaxRateDifferential_524870F8D09DF1AA123835C11011D0F9" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Discrete tax benefit for changes to international tax structure</link:label>
    <link:label id="lab_us-gaap_IncomeTaxReconciliationForeignIncomeTaxRateDifferential_524870F8D09DF1AA123835C11011D0F9_label_en-US" xlink:label="lab_us-gaap_IncomeTaxReconciliationForeignIncomeTaxRateDifferential_524870F8D09DF1AA123835C11011D0F9" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Effective Income Tax Rate Reconciliation, Foreign Income Tax Rate Differential, Amount</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_IncomeTaxReconciliationForeignIncomeTaxRateDifferential" xlink:label="loc_us-gaap_IncomeTaxReconciliationForeignIncomeTaxRateDifferential_524870F8D09DF1AA123835C11011D0F9" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_IncomeTaxReconciliationForeignIncomeTaxRateDifferential_524870F8D09DF1AA123835C11011D0F9" xlink:to="lab_us-gaap_IncomeTaxReconciliationForeignIncomeTaxRateDifferential_524870F8D09DF1AA123835C11011D0F9" xlink:type="arc" />
    <link:label id="lab_cgnx_DeferredTaxAssetsForeignTaxStructureChange_49A1FC930417E785216135C11011FFF8_terseLabel_en-US" xlink:label="lab_cgnx_DeferredTaxAssetsForeignTaxStructureChange_49A1FC930417E785216135C11011FFF8" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Foreign tax structure deferred tax asset</link:label>
    <link:label id="lab_cgnx_DeferredTaxAssetsForeignTaxStructureChange_49A1FC930417E785216135C11011FFF8_label_en-US" xlink:label="lab_cgnx_DeferredTaxAssetsForeignTaxStructureChange_49A1FC930417E785216135C11011FFF8" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Deferred Tax Assets, Foreign Tax Structure Change</link:label>
    <link:label id="lab_cgnx_DeferredTaxAssetsForeignTaxStructureChange_49A1FC930417E785216135C11011FFF8_documentation_en-US" xlink:label="lab_cgnx_DeferredTaxAssetsForeignTaxStructureChange_49A1FC930417E785216135C11011FFF8" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Deferred Tax Assets, Foreign Tax Structure Change</link:label>
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_DeferredTaxAssetsForeignTaxStructureChange" xlink:label="loc_cgnx_DeferredTaxAssetsForeignTaxStructureChange_49A1FC930417E785216135C11011FFF8" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_DeferredTaxAssetsForeignTaxStructureChange_49A1FC930417E785216135C11011FFF8" xlink:to="lab_cgnx_DeferredTaxAssetsForeignTaxStructureChange_49A1FC930417E785216135C11011FFF8" xlink:type="arc" />
    <link:label id="lab_cgnx_DeferredTaxLiabilitiesTaxCutsAndJobsActGlobalIntangibleLowTaxIncome_C989389242780F3DF74D35C11011848F_terseLabel_en-US" xlink:label="lab_cgnx_DeferredTaxLiabilitiesTaxCutsAndJobsActGlobalIntangibleLowTaxIncome_C989389242780F3DF74D35C11011848F" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">GILTI tax basis differences</link:label>
    <link:label id="lab_cgnx_DeferredTaxLiabilitiesTaxCutsAndJobsActGlobalIntangibleLowTaxIncome_C989389242780F3DF74D35C11011848F_label_en-US" xlink:label="lab_cgnx_DeferredTaxLiabilitiesTaxCutsAndJobsActGlobalIntangibleLowTaxIncome_C989389242780F3DF74D35C11011848F" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Deferred Tax Liabilities, Tax Cuts And Jobs Act, Global Intangible Low Tax Income</link:label>
    <link:label id="lab_cgnx_DeferredTaxLiabilitiesTaxCutsAndJobsActGlobalIntangibleLowTaxIncome_C989389242780F3DF74D35C11011848F_documentation_en-US" xlink:label="lab_cgnx_DeferredTaxLiabilitiesTaxCutsAndJobsActGlobalIntangibleLowTaxIncome_C989389242780F3DF74D35C11011848F" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Deferred Tax Liabilities, Tax Cuts And Jobs Act, Global Intangible Low Tax Income</link:label>
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_DeferredTaxLiabilitiesTaxCutsAndJobsActGlobalIntangibleLowTaxIncome" xlink:label="loc_cgnx_DeferredTaxLiabilitiesTaxCutsAndJobsActGlobalIntangibleLowTaxIncome_C989389242780F3DF74D35C11011848F" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_DeferredTaxLiabilitiesTaxCutsAndJobsActGlobalIntangibleLowTaxIncome_C989389242780F3DF74D35C11011848F" xlink:to="lab_cgnx_DeferredTaxLiabilitiesTaxCutsAndJobsActGlobalIntangibleLowTaxIncome_C989389242780F3DF74D35C11011848F" xlink:type="arc" />
    <link:label id="lab_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesDomestic_FBE9927AF2F4DB0C938D35C11011E0B5_terseLabel_en-US" xlink:label="lab_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesDomestic_FBE9927AF2F4DB0C938D35C11011E0B5" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Domestic income from continuing operations before taxes</link:label>
    <link:label id="lab_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesDomestic_FBE9927AF2F4DB0C938D35C11011E0B5_label_en-US" xlink:label="lab_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesDomestic_FBE9927AF2F4DB0C938D35C11011E0B5" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Income (Loss) from Continuing Operations before Income Taxes, Domestic</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesDomestic" xlink:label="loc_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesDomestic_FBE9927AF2F4DB0C938D35C11011E0B5" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesDomestic_FBE9927AF2F4DB0C938D35C11011E0B5" xlink:to="lab_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesDomestic_FBE9927AF2F4DB0C938D35C11011E0B5" xlink:type="arc" />
    <link:label id="lab_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign_C613346B917F61514D2835C11011FB87_terseLabel_en-US" xlink:label="lab_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign_C613346B917F61514D2835C11011FB87" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Foreign income from continuing operations before taxes</link:label>
    <link:label id="lab_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign_C613346B917F61514D2835C11011FB87_label_en-US" xlink:label="lab_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign_C613346B917F61514D2835C11011FB87" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Income (Loss) from Continuing Operations before Income Taxes, Foreign</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign" xlink:label="loc_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign_C613346B917F61514D2835C11011FB87" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign_C613346B917F61514D2835C11011FB87" xlink:to="lab_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign_C613346B917F61514D2835C11011FB87" xlink:type="arc" />
    <link:label id="lab_cgnx_TaxCutsAndJobsActOf2017IncompleteAccountingChangeInTaxRateDeferredTaxAssetProvisionalIncomeTaxExpense_E1DF2E9A8E27B23248B935C11012AEA4_terseLabel_en-US" xlink:label="lab_cgnx_TaxCutsAndJobsActOf2017IncompleteAccountingChangeInTaxRateDeferredTaxAssetProvisionalIncomeTaxExpense_E1DF2E9A8E27B23248B935C11012AEA4" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Tax expense from write down of deferred tax assets</link:label>
    <link:label id="lab_cgnx_TaxCutsAndJobsActOf2017IncompleteAccountingChangeInTaxRateDeferredTaxAssetProvisionalIncomeTaxExpense_E1DF2E9A8E27B23248B935C11012AEA4_label_en-US" xlink:label="lab_cgnx_TaxCutsAndJobsActOf2017IncompleteAccountingChangeInTaxRateDeferredTaxAssetProvisionalIncomeTaxExpense_E1DF2E9A8E27B23248B935C11012AEA4" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Tax Cuts And Jobs Act Of 2017, Incomplete Accounting, Change In Tax Rate, Deferred Tax Asset, Provisional Income Tax Expense</link:label>
    <link:label id="lab_cgnx_TaxCutsAndJobsActOf2017IncompleteAccountingChangeInTaxRateDeferredTaxAssetProvisionalIncomeTaxExpense_E1DF2E9A8E27B23248B935C11012AEA4_documentation_en-US" xlink:label="lab_cgnx_TaxCutsAndJobsActOf2017IncompleteAccountingChangeInTaxRateDeferredTaxAssetProvisionalIncomeTaxExpense_E1DF2E9A8E27B23248B935C11012AEA4" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Tax Cuts And Jobs Act Of 2017, Incomplete Accounting, Change In Tax Rate, Deferred Tax Asset, Provisional Income Tax Expense</link:label>
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_TaxCutsAndJobsActOf2017IncompleteAccountingChangeInTaxRateDeferredTaxAssetProvisionalIncomeTaxExpense" xlink:label="loc_cgnx_TaxCutsAndJobsActOf2017IncompleteAccountingChangeInTaxRateDeferredTaxAssetProvisionalIncomeTaxExpense_E1DF2E9A8E27B23248B935C11012AEA4" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_TaxCutsAndJobsActOf2017IncompleteAccountingChangeInTaxRateDeferredTaxAssetProvisionalIncomeTaxExpense_E1DF2E9A8E27B23248B935C11012AEA4" xlink:to="lab_cgnx_TaxCutsAndJobsActOf2017IncompleteAccountingChangeInTaxRateDeferredTaxAssetProvisionalIncomeTaxExpense_E1DF2E9A8E27B23248B935C11012AEA4" xlink:type="arc" />
    <link:label id="lab_cgnx_TaxCutsAndJobsActOf2017IncompleteAccountingTransitionTaxForAccumulatedForeignEarningsProvisionalIncomeTaxExpense_E32EAD24457B8936461C35C11012B974_terseLabel_en-US" xlink:label="lab_cgnx_TaxCutsAndJobsActOf2017IncompleteAccountingTransitionTaxForAccumulatedForeignEarningsProvisionalIncomeTaxExpense_E32EAD24457B8936461C35C11012B974" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Estimated tax expense</link:label>
    <link:label id="lab_cgnx_TaxCutsAndJobsActOf2017IncompleteAccountingTransitionTaxForAccumulatedForeignEarningsProvisionalIncomeTaxExpense_E32EAD24457B8936461C35C11012B974_label_en-US" xlink:label="lab_cgnx_TaxCutsAndJobsActOf2017IncompleteAccountingTransitionTaxForAccumulatedForeignEarningsProvisionalIncomeTaxExpense_E32EAD24457B8936461C35C11012B974" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Tax Cuts And Jobs Act Of 2017, Incomplete Accounting, Transition Tax For Accumulated Foreign Earnings, Provisional Income Tax Expense</link:label>
    <link:label id="lab_cgnx_TaxCutsAndJobsActOf2017IncompleteAccountingTransitionTaxForAccumulatedForeignEarningsProvisionalIncomeTaxExpense_E32EAD24457B8936461C35C11012B974_documentation_en-US" xlink:label="lab_cgnx_TaxCutsAndJobsActOf2017IncompleteAccountingTransitionTaxForAccumulatedForeignEarningsProvisionalIncomeTaxExpense_E32EAD24457B8936461C35C11012B974" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Tax Cuts And Jobs Act Of 2017, Incomplete Accounting, Transition Tax For Accumulated Foreign Earnings, Provisional Income Tax Expense</link:label>
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_TaxCutsAndJobsActOf2017IncompleteAccountingTransitionTaxForAccumulatedForeignEarningsProvisionalIncomeTaxExpense" xlink:label="loc_cgnx_TaxCutsAndJobsActOf2017IncompleteAccountingTransitionTaxForAccumulatedForeignEarningsProvisionalIncomeTaxExpense_E32EAD24457B8936461C35C11012B974" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_TaxCutsAndJobsActOf2017IncompleteAccountingTransitionTaxForAccumulatedForeignEarningsProvisionalIncomeTaxExpense_E32EAD24457B8936461C35C11012B974" xlink:to="lab_cgnx_TaxCutsAndJobsActOf2017IncompleteAccountingTransitionTaxForAccumulatedForeignEarningsProvisionalIncomeTaxExpense_E32EAD24457B8936461C35C11012B974" xlink:type="arc" />
    <link:label id="lab_cgnx_TaxCutsAndJobsActOf2017TransitionTaxForAccumulatedForeignEarningsLiability_129EEE4E7887DFDC52BE35C11012558B_terseLabel_en-US" xlink:label="lab_cgnx_TaxCutsAndJobsActOf2017TransitionTaxForAccumulatedForeignEarningsLiability_129EEE4E7887DFDC52BE35C11012558B" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">One-time transition tax payable</link:label>
    <link:label id="lab_cgnx_TaxCutsAndJobsActOf2017TransitionTaxForAccumulatedForeignEarningsLiability_129EEE4E7887DFDC52BE35C11012558B_label_en-US" xlink:label="lab_cgnx_TaxCutsAndJobsActOf2017TransitionTaxForAccumulatedForeignEarningsLiability_129EEE4E7887DFDC52BE35C11012558B" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Tax Cuts And Jobs Act Of 2017, Transition Tax For Accumulated Foreign Earnings, Liability</link:label>
    <link:label id="lab_cgnx_TaxCutsAndJobsActOf2017TransitionTaxForAccumulatedForeignEarningsLiability_129EEE4E7887DFDC52BE35C11012558B_documentation_en-US" xlink:label="lab_cgnx_TaxCutsAndJobsActOf2017TransitionTaxForAccumulatedForeignEarningsLiability_129EEE4E7887DFDC52BE35C11012558B" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Tax Cuts And Jobs Act Of 2017, Transition Tax For Accumulated Foreign Earnings, Liability</link:label>
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_TaxCutsAndJobsActOf2017TransitionTaxForAccumulatedForeignEarningsLiability" xlink:label="loc_cgnx_TaxCutsAndJobsActOf2017TransitionTaxForAccumulatedForeignEarningsLiability_129EEE4E7887DFDC52BE35C11012558B" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_TaxCutsAndJobsActOf2017TransitionTaxForAccumulatedForeignEarningsLiability_129EEE4E7887DFDC52BE35C11012558B" xlink:to="lab_cgnx_TaxCutsAndJobsActOf2017TransitionTaxForAccumulatedForeignEarningsLiability_129EEE4E7887DFDC52BE35C11012558B" xlink:type="arc" />
    <link:label id="lab_us-gaap_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate_B4D312BBA830D52078DC35C11012A638_verboseLabel_en-US" xlink:label="lab_us-gaap_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate_B4D312BBA830D52078DC35C11012A638" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xml:lang="en-US">Income tax rate</link:label>
    <link:label id="lab_us-gaap_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate_B4D312BBA830D52078DC35C11012A638_label_en-US" xlink:label="lab_us-gaap_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate_B4D312BBA830D52078DC35C11012A638" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Effective Income Tax Rate Reconciliation, at Federal Statutory Income Tax Rate, Percent</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate" xlink:label="loc_us-gaap_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate_B4D312BBA830D52078DC35C11012A638" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate_B4D312BBA830D52078DC35C11012A638" xlink:to="lab_us-gaap_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate_B4D312BBA830D52078DC35C11012A638" xlink:type="arc" />
    <link:label id="lab_us-gaap_Cash_8EDB669CE324C3BBC4C635C11012100B_terseLabel_en-US" xlink:label="lab_us-gaap_Cash_8EDB669CE324C3BBC4C635C11012100B" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Cash</link:label>
    <link:label id="lab_us-gaap_Cash_8EDB669CE324C3BBC4C635C11012100B_label_en-US" xlink:label="lab_us-gaap_Cash_8EDB669CE324C3BBC4C635C11012100B" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Cash</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_Cash" xlink:label="loc_us-gaap_Cash_8EDB669CE324C3BBC4C635C11012100B" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_Cash_8EDB669CE324C3BBC4C635C11012100B" xlink:to="lab_us-gaap_Cash_8EDB669CE324C3BBC4C635C11012100B" xlink:type="arc" />
    <link:label id="lab_us-gaap_EffectiveIncomeTaxRateReconciliationForeignIncomeTaxRateDifferential_A6FB1FD093CE79FBD67035C11013B8D2_negatedTerseLabel_en-US" xlink:label="lab_us-gaap_EffectiveIncomeTaxRateReconciliationForeignIncomeTaxRateDifferential_A6FB1FD093CE79FBD67035C11013B8D2" xlink:role="http://www.xbrl.org/2009/role/negatedTerseLabel" xlink:type="resource" xml:lang="en-US">Foreign tax rate differential</link:label>
    <link:label id="lab_us-gaap_EffectiveIncomeTaxRateReconciliationForeignIncomeTaxRateDifferential_A6FB1FD093CE79FBD67035C11013B8D2_label_en-US" xlink:label="lab_us-gaap_EffectiveIncomeTaxRateReconciliationForeignIncomeTaxRateDifferential_A6FB1FD093CE79FBD67035C11013B8D2" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Effective Income Tax Rate Reconciliation, Foreign Income Tax Rate Differential, Percent</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_EffectiveIncomeTaxRateReconciliationForeignIncomeTaxRateDifferential" xlink:label="loc_us-gaap_EffectiveIncomeTaxRateReconciliationForeignIncomeTaxRateDifferential_A6FB1FD093CE79FBD67035C11013B8D2" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_EffectiveIncomeTaxRateReconciliationForeignIncomeTaxRateDifferential_A6FB1FD093CE79FBD67035C11013B8D2" xlink:to="lab_us-gaap_EffectiveIncomeTaxRateReconciliationForeignIncomeTaxRateDifferential_A6FB1FD093CE79FBD67035C11013B8D2" xlink:type="arc" />
    <link:label id="lab_us-gaap_EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitAmount_296CF8ED8433ED9549A335C110137DFA_terseLabel_en-US" xlink:label="lab_us-gaap_EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitAmount_296CF8ED8433ED9549A335C110137DFA" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Reduction of income tax expense for adoption of ASU 2016-09</link:label>
    <link:label id="lab_us-gaap_EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitAmount_296CF8ED8433ED9549A335C110137DFA_label_en-US" xlink:label="lab_us-gaap_EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitAmount_296CF8ED8433ED9549A335C110137DFA" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Effective Income Tax Rate Reconciliation, Share-based Compensation, Excess Tax Benefit, Amount</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitAmount" xlink:label="loc_us-gaap_EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitAmount_296CF8ED8433ED9549A335C110137DFA" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitAmount_296CF8ED8433ED9549A335C110137DFA" xlink:to="lab_us-gaap_EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitAmount_296CF8ED8433ED9549A335C110137DFA" xlink:type="arc" />
    <link:label id="lab_us-gaap_EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitPercent_F04F5925C615FCC21BB435C1101395E9_terseLabel_en-US" xlink:label="lab_us-gaap_EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitPercent_F04F5925C615FCC21BB435C1101395E9" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Discrete tax benefit related to employee stock option exercises</link:label>
    <link:label id="lab_us-gaap_EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitPercent_F04F5925C615FCC21BB435C1101395E9_label_en-US" xlink:label="lab_us-gaap_EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitPercent_F04F5925C615FCC21BB435C1101395E9" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Effective Income Tax Rate Reconciliation, Share-based Compensation, Excess Tax Benefit, Percent</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitPercent" xlink:label="loc_us-gaap_EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitPercent_F04F5925C615FCC21BB435C1101395E9" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitPercent_F04F5925C615FCC21BB435C1101395E9" xlink:to="lab_us-gaap_EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitPercent_F04F5925C615FCC21BB435C1101395E9" xlink:type="arc" />
    <link:label id="lab_us-gaap_NetCashProvidedByUsedInOperatingActivities_91B0E09DC5FA4C34507C35C1101378D5_terseLabel_en-US" xlink:label="lab_us-gaap_NetCashProvidedByUsedInOperatingActivities_91B0E09DC5FA4C34507C35C1101378D5" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Net cash provided by operating activities</link:label>
    <link:label id="lab_us-gaap_NetCashProvidedByUsedInOperatingActivities_91B0E09DC5FA4C34507C35C1101378D5_label_en-US" xlink:label="lab_us-gaap_NetCashProvidedByUsedInOperatingActivities_91B0E09DC5FA4C34507C35C1101378D5" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Net Cash Provided by (Used in) Operating Activities</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_NetCashProvidedByUsedInOperatingActivities" xlink:label="loc_us-gaap_NetCashProvidedByUsedInOperatingActivities_91B0E09DC5FA4C34507C35C1101378D5" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_NetCashProvidedByUsedInOperatingActivities_91B0E09DC5FA4C34507C35C1101378D5" xlink:to="lab_us-gaap_NetCashProvidedByUsedInOperatingActivities_91B0E09DC5FA4C34507C35C1101378D5" xlink:type="arc" />
    <link:label id="lab_us-gaap_NetCashProvidedByUsedInFinancingActivities_123DCD613AF8FF5E966B35C11013855C_negatedTerseLabel_en-US" xlink:label="lab_us-gaap_NetCashProvidedByUsedInFinancingActivities_123DCD613AF8FF5E966B35C11013855C" xlink:role="http://www.xbrl.org/2009/role/negatedTerseLabel" xlink:type="resource" xml:lang="en-US">Net cash used in financing activities</link:label>
    <link:label id="lab_us-gaap_NetCashProvidedByUsedInFinancingActivities_123DCD613AF8FF5E966B35C11013855C_label_en-US" xlink:label="lab_us-gaap_NetCashProvidedByUsedInFinancingActivities_123DCD613AF8FF5E966B35C11013855C" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Net Cash Provided by (Used in) Financing Activities</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_NetCashProvidedByUsedInFinancingActivities" xlink:label="loc_us-gaap_NetCashProvidedByUsedInFinancingActivities_123DCD613AF8FF5E966B35C11013855C" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_NetCashProvidedByUsedInFinancingActivities_123DCD613AF8FF5E966B35C11013855C" xlink:to="lab_us-gaap_NetCashProvidedByUsedInFinancingActivities_123DCD613AF8FF5E966B35C11013855C" xlink:type="arc" />
    <link:label id="lab_us-gaap_UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestExpense_9E0E61E019F5448EC4FA35C11013D579_terseLabel_en-US" xlink:label="lab_us-gaap_UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestExpense_9E0E61E019F5448EC4FA35C11013D579" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Income tax penalties and interest expense</link:label>
    <link:label id="lab_us-gaap_UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestExpense_9E0E61E019F5448EC4FA35C11013D579_label_en-US" xlink:label="lab_us-gaap_UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestExpense_9E0E61E019F5448EC4FA35C11013D579" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Unrecognized Tax Benefits, Income Tax Penalties and Interest Expense</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestExpense" xlink:label="loc_us-gaap_UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestExpense_9E0E61E019F5448EC4FA35C11013D579" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestExpense_9E0E61E019F5448EC4FA35C11013D579" xlink:to="lab_us-gaap_UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestExpense_9E0E61E019F5448EC4FA35C11013D579" xlink:type="arc" />
    <link:label id="lab_us-gaap_DeferredTaxLiabilitiesGrossNoncurrent_F716B81D0002A900829E35C110149C25_terseLabel_en-US" xlink:label="lab_us-gaap_DeferredTaxLiabilitiesGrossNoncurrent_F716B81D0002A900829E35C110149C25" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Deferred tax liabilities, gross</link:label>
    <link:label id="lab_us-gaap_DeferredTaxLiabilitiesGrossNoncurrent_F716B81D0002A900829E35C110149C25_label_en-US" xlink:label="lab_us-gaap_DeferredTaxLiabilitiesGrossNoncurrent_F716B81D0002A900829E35C110149C25" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Deferred Tax Liabilities, Gross, Noncurrent</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_DeferredTaxLiabilitiesGrossNoncurrent" xlink:label="loc_us-gaap_DeferredTaxLiabilitiesGrossNoncurrent_F716B81D0002A900829E35C110149C25" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DeferredTaxLiabilitiesGrossNoncurrent_F716B81D0002A900829E35C110149C25" xlink:to="lab_us-gaap_DeferredTaxLiabilitiesGrossNoncurrent_F716B81D0002A900829E35C110149C25" xlink:type="arc" />
    <link:label id="lab_us-gaap_LiabilityForUncertainTaxPositionsNoncurrent_657D924CAE7140DC801135C11014AC13_terseLabel_en-US" xlink:label="lab_us-gaap_LiabilityForUncertainTaxPositionsNoncurrent_657D924CAE7140DC801135C11014AC13" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Reserve for income taxes</link:label>
    <link:label id="lab_us-gaap_LiabilityForUncertainTaxPositionsNoncurrent_657D924CAE7140DC801135C11014AC13_label_en-US" xlink:label="lab_us-gaap_LiabilityForUncertainTaxPositionsNoncurrent_657D924CAE7140DC801135C11014AC13" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Liability for Uncertainty in Income Taxes, Noncurrent</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_LiabilityForUncertainTaxPositionsNoncurrent" xlink:label="loc_us-gaap_LiabilityForUncertainTaxPositionsNoncurrent_657D924CAE7140DC801135C11014AC13" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_LiabilityForUncertainTaxPositionsNoncurrent_657D924CAE7140DC801135C11014AC13" xlink:to="lab_us-gaap_LiabilityForUncertainTaxPositionsNoncurrent_657D924CAE7140DC801135C11014AC13" xlink:type="arc" />
    <link:label id="lab_cgnx_Unrecognizedtaxbenefitshownasareductiontononcurrentdeferredtaxassets_98191BDF1C36DFB4BC3335C11014CE82_terseLabel_en-US" xlink:label="lab_cgnx_Unrecognizedtaxbenefitshownasareductiontononcurrentdeferredtaxassets_98191BDF1C36DFB4BC3335C11014CE82" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Unrecognized tax benefit shown as a reduction to noncurrent deferred tax assets</link:label>
    <link:label id="lab_cgnx_Unrecognizedtaxbenefitshownasareductiontononcurrentdeferredtaxassets_98191BDF1C36DFB4BC3335C11014CE82_label_en-US" xlink:label="lab_cgnx_Unrecognizedtaxbenefitshownasareductiontononcurrentdeferredtaxassets_98191BDF1C36DFB4BC3335C11014CE82" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Unrecognized tax benefit shown as a reduction to noncurrent deferred tax assets</link:label>
    <link:label id="lab_cgnx_Unrecognizedtaxbenefitshownasareductiontononcurrentdeferredtaxassets_98191BDF1C36DFB4BC3335C11014CE82_documentation_en-US" xlink:label="lab_cgnx_Unrecognizedtaxbenefitshownasareductiontononcurrentdeferredtaxassets_98191BDF1C36DFB4BC3335C11014CE82" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" 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:href="cgnx-20191231.xsd#cgnx_Unrecognizedtaxbenefitshownasareductiontononcurrentdeferredtaxassets" xlink:label="loc_cgnx_Unrecognizedtaxbenefitshownasareductiontononcurrentdeferredtaxassets_98191BDF1C36DFB4BC3335C11014CE82" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_Unrecognizedtaxbenefitshownasareductiontononcurrentdeferredtaxassets_98191BDF1C36DFB4BC3335C11014CE82" xlink:to="lab_cgnx_Unrecognizedtaxbenefitshownasareductiontononcurrentdeferredtaxassets_98191BDF1C36DFB4BC3335C11014CE82" xlink:type="arc" />
    <link:label id="lab_us-gaap_UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestAccrued_5D0D4292BA79CD1786C835C11014F740_terseLabel_en-US" xlink:label="lab_us-gaap_UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestAccrued_5D0D4292BA79CD1786C835C11014F740" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Interest and penalties, gross</link:label>
    <link:label id="lab_us-gaap_UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestAccrued_5D0D4292BA79CD1786C835C11014F740_label_en-US" xlink:label="lab_us-gaap_UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestAccrued_5D0D4292BA79CD1786C835C11014F740" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Unrecognized Tax Benefits, Income Tax Penalties and Interest Accrued</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestAccrued" xlink:label="loc_us-gaap_UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestAccrued_5D0D4292BA79CD1786C835C11014F740" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestAccrued_5D0D4292BA79CD1786C835C11014F740" xlink:to="lab_us-gaap_UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestAccrued_5D0D4292BA79CD1786C835C11014F740" xlink:type="arc" />
    <link:label id="lab_cgnx_MinimumDecreaseInIncomeTaxExpenseDueToReleaseInReserves_7727CEE7064BE4FF154035C11014A7DB_terseLabel_en-US" xlink:label="lab_cgnx_MinimumDecreaseInIncomeTaxExpenseDueToReleaseInReserves_7727CEE7064BE4FF154035C11014A7DB" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Minimum decrease in income tax expense due to release in reserves</link:label>
    <link:label id="lab_cgnx_MinimumDecreaseInIncomeTaxExpenseDueToReleaseInReserves_7727CEE7064BE4FF154035C11014A7DB_label_en-US" xlink:label="lab_cgnx_MinimumDecreaseInIncomeTaxExpenseDueToReleaseInReserves_7727CEE7064BE4FF154035C11014A7DB" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Minimum Decrease In Income Tax Expense Due To Release In Reserves</link:label>
    <link:label id="lab_cgnx_MinimumDecreaseInIncomeTaxExpenseDueToReleaseInReserves_7727CEE7064BE4FF154035C11014A7DB_documentation_en-US" xlink:label="lab_cgnx_MinimumDecreaseInIncomeTaxExpenseDueToReleaseInReserves_7727CEE7064BE4FF154035C11014A7DB" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Minimum decrease in income tax expense due to release in reserves.</link:label>
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_MinimumDecreaseInIncomeTaxExpenseDueToReleaseInReserves" xlink:label="loc_cgnx_MinimumDecreaseInIncomeTaxExpenseDueToReleaseInReserves_7727CEE7064BE4FF154035C11014A7DB" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_MinimumDecreaseInIncomeTaxExpenseDueToReleaseInReserves_7727CEE7064BE4FF154035C11014A7DB" xlink:to="lab_cgnx_MinimumDecreaseInIncomeTaxExpenseDueToReleaseInReserves_7727CEE7064BE4FF154035C11014A7DB" xlink:type="arc" />
    <link:label id="lab_cgnx_MaximumDecreaseInIncomeTaxExpenseDueToReleaseInReserves_8B7F4EEB6C979194329C35C11014C96C_terseLabel_en-US" xlink:label="lab_cgnx_MaximumDecreaseInIncomeTaxExpenseDueToReleaseInReserves_8B7F4EEB6C979194329C35C11014C96C" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Maximum decrease in income tax expense due to release in reserves</link:label>
    <link:label id="lab_cgnx_MaximumDecreaseInIncomeTaxExpenseDueToReleaseInReserves_8B7F4EEB6C979194329C35C11014C96C_label_en-US" xlink:label="lab_cgnx_MaximumDecreaseInIncomeTaxExpenseDueToReleaseInReserves_8B7F4EEB6C979194329C35C11014C96C" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Maximum Decrease In Income Tax Expense Due To Release In Reserves</link:label>
    <link:label id="lab_cgnx_MaximumDecreaseInIncomeTaxExpenseDueToReleaseInReserves_8B7F4EEB6C979194329C35C11014C96C_documentation_en-US" xlink:label="lab_cgnx_MaximumDecreaseInIncomeTaxExpenseDueToReleaseInReserves_8B7F4EEB6C979194329C35C11014C96C" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Maximum decrease in income tax expense due to release in reserves.</link:label>
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_MaximumDecreaseInIncomeTaxExpenseDueToReleaseInReserves" xlink:label="loc_cgnx_MaximumDecreaseInIncomeTaxExpenseDueToReleaseInReserves_8B7F4EEB6C979194329C35C11014C96C" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_MaximumDecreaseInIncomeTaxExpenseDueToReleaseInReserves_8B7F4EEB6C979194329C35C11014C96C" xlink:to="lab_cgnx_MaximumDecreaseInIncomeTaxExpenseDueToReleaseInReserves_8B7F4EEB6C979194329C35C11014C96C" xlink:type="arc" />
    <link:label id="lab_us-gaap_DeferredTaxLiabilitiesGrossCurrent_ACDCB55140F945D72B5B35C1101401CB_negatedTerseLabel_en-US" xlink:label="lab_us-gaap_DeferredTaxLiabilitiesGrossCurrent_ACDCB55140F945D72B5B35C1101401CB" xlink:role="http://www.xbrl.org/2009/role/negatedTerseLabel" xlink:type="resource" xml:lang="en-US">Net non-current deferred tax liabilities</link:label>
    <link:label id="lab_us-gaap_DeferredTaxLiabilitiesGrossCurrent_ACDCB55140F945D72B5B35C1101401CB_label_en-US" xlink:label="lab_us-gaap_DeferredTaxLiabilitiesGrossCurrent_ACDCB55140F945D72B5B35C1101401CB" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Deferred Tax Liabilities, Gross, Current</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_DeferredTaxLiabilitiesGrossCurrent" xlink:label="loc_us-gaap_DeferredTaxLiabilitiesGrossCurrent_ACDCB55140F945D72B5B35C1101401CB" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DeferredTaxLiabilitiesGrossCurrent_ACDCB55140F945D72B5B35C1101401CB" xlink:to="lab_us-gaap_DeferredTaxLiabilitiesGrossCurrent_ACDCB55140F945D72B5B35C1101401CB" xlink:type="arc" />
    <link:label id="lab_us-gaap_DeferredTaxLiabilitiesGoodwillAndIntangibleAssetsIntangibleAssets_0BB05DB38241ECA75F5D35C11015A19D_terseLabel_en-US" xlink:label="lab_us-gaap_DeferredTaxLiabilitiesGoodwillAndIntangibleAssetsIntangibleAssets_0BB05DB38241ECA75F5D35C11015A19D" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Non deductible federal and state liabilities</link:label>
    <link:label id="lab_us-gaap_DeferredTaxLiabilitiesGoodwillAndIntangibleAssetsIntangibleAssets_0BB05DB38241ECA75F5D35C11015A19D_label_en-US" xlink:label="lab_us-gaap_DeferredTaxLiabilitiesGoodwillAndIntangibleAssetsIntangibleAssets_0BB05DB38241ECA75F5D35C11015A19D" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Deferred Tax Liabilities, Intangible Assets</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_DeferredTaxLiabilitiesGoodwillAndIntangibleAssetsIntangibleAssets" xlink:label="loc_us-gaap_DeferredTaxLiabilitiesGoodwillAndIntangibleAssetsIntangibleAssets_0BB05DB38241ECA75F5D35C11015A19D" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DeferredTaxLiabilitiesGoodwillAndIntangibleAssetsIntangibleAssets_0BB05DB38241ECA75F5D35C11015A19D" xlink:to="lab_us-gaap_DeferredTaxLiabilitiesGoodwillAndIntangibleAssetsIntangibleAssets_0BB05DB38241ECA75F5D35C11015A19D" xlink:type="arc" />
    <link:label id="lab_us-gaap_DeferredTaxAssetsValuationAllowance_DBF97E6CCEECC8EAF6A635C11015F6A9_terseLabel_en-US" xlink:label="lab_us-gaap_DeferredTaxAssetsValuationAllowance_DBF97E6CCEECC8EAF6A635C11015F6A9" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Deferred tax assets, valuation allowance</link:label>
    <link:label id="lab_us-gaap_DeferredTaxAssetsValuationAllowance_DBF97E6CCEECC8EAF6A635C11015F6A9_label_en-US" xlink:label="lab_us-gaap_DeferredTaxAssetsValuationAllowance_DBF97E6CCEECC8EAF6A635C11015F6A9" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Deferred Tax Assets, Valuation Allowance</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_DeferredTaxAssetsValuationAllowance" xlink:label="loc_us-gaap_DeferredTaxAssetsValuationAllowance_DBF97E6CCEECC8EAF6A635C11015F6A9" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DeferredTaxAssetsValuationAllowance_DBF97E6CCEECC8EAF6A635C11015F6A9" xlink:to="lab_us-gaap_DeferredTaxAssetsValuationAllowance_DBF97E6CCEECC8EAF6A635C11015F6A9" xlink:type="arc" />
    <link:label id="lab_us-gaap_DeferredTaxAssetsTaxCreditCarryforwardsResearch_E96AEA5CF4D3DA900E1835C110154B09_terseLabel_en-US" xlink:label="lab_us-gaap_DeferredTaxAssetsTaxCreditCarryforwardsResearch_E96AEA5CF4D3DA900E1835C110154B09" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Deferred tax assets, tax credit carryforwards, research</link:label>
    <link:label id="lab_us-gaap_DeferredTaxAssetsTaxCreditCarryforwardsResearch_E96AEA5CF4D3DA900E1835C110154B09_label_en-US" xlink:label="lab_us-gaap_DeferredTaxAssetsTaxCreditCarryforwardsResearch_E96AEA5CF4D3DA900E1835C110154B09" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Deferred Tax Assets, Tax Credit Carryforwards, Research</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_DeferredTaxAssetsTaxCreditCarryforwardsResearch" xlink:label="loc_us-gaap_DeferredTaxAssetsTaxCreditCarryforwardsResearch_E96AEA5CF4D3DA900E1835C110154B09" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DeferredTaxAssetsTaxCreditCarryforwardsResearch_E96AEA5CF4D3DA900E1835C110154B09" xlink:to="lab_us-gaap_DeferredTaxAssetsTaxCreditCarryforwardsResearch_E96AEA5CF4D3DA900E1835C110154B09" xlink:type="arc" />
    <link:label id="lab_us-gaap_IncomeTaxesPaidNet_2BB9A7196119FF120D9A35C110150B00_terseLabel_en-US" xlink:label="lab_us-gaap_IncomeTaxesPaidNet_2BB9A7196119FF120D9A35C110150B00" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Income tax paid net</link:label>
    <link:label id="lab_us-gaap_IncomeTaxesPaidNet_2BB9A7196119FF120D9A35C110150B00_label_en-US" xlink:label="lab_us-gaap_IncomeTaxesPaidNet_2BB9A7196119FF120D9A35C110150B00" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Income Taxes Paid, Net</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_IncomeTaxesPaidNet" xlink:label="loc_us-gaap_IncomeTaxesPaidNet_2BB9A7196119FF120D9A35C110150B00" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_IncomeTaxesPaidNet_2BB9A7196119FF120D9A35C110150B00" xlink:to="lab_us-gaap_IncomeTaxesPaidNet_2BB9A7196119FF120D9A35C110150B00" xlink:type="arc" />
    <link:label id="lab_cgnx_OpenTaxYearStateAuthorities_EEBC39D6F20E62DE056335C11015ECA1_terseLabel_en-US" xlink:label="lab_cgnx_OpenTaxYearStateAuthorities_EEBC39D6F20E62DE056335C11015ECA1" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Open Tax Year State Authorities</link:label>
    <link:label id="lab_cgnx_OpenTaxYearStateAuthorities_EEBC39D6F20E62DE056335C11015ECA1_label_en-US" xlink:label="lab_cgnx_OpenTaxYearStateAuthorities_EEBC39D6F20E62DE056335C11015ECA1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Open Tax Year State Authorities</link:label>
    <link:label id="lab_cgnx_OpenTaxYearStateAuthorities_EEBC39D6F20E62DE056335C11015ECA1_documentation_en-US" xlink:label="lab_cgnx_OpenTaxYearStateAuthorities_EEBC39D6F20E62DE056335C11015ECA1" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Open Tax Year State Authorities</link:label>
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_OpenTaxYearStateAuthorities" xlink:label="loc_cgnx_OpenTaxYearStateAuthorities_EEBC39D6F20E62DE056335C11015ECA1" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_OpenTaxYearStateAuthorities_EEBC39D6F20E62DE056335C11015ECA1" xlink:to="lab_cgnx_OpenTaxYearStateAuthorities_EEBC39D6F20E62DE056335C11015ECA1" xlink:type="arc" />
    <link:label id="lab_cgnx_OpentaxyearUnitedStatesInternalRevenueService_3A2589C9EFBC8D9533B835C1101541F4_terseLabel_en-US" xlink:label="lab_cgnx_OpentaxyearUnitedStatesInternalRevenueService_3A2589C9EFBC8D9533B835C1101541F4" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Open tax year United States Internal Revenue Service</link:label>
    <link:label id="lab_cgnx_OpentaxyearUnitedStatesInternalRevenueService_3A2589C9EFBC8D9533B835C1101541F4_label_en-US" xlink:label="lab_cgnx_OpentaxyearUnitedStatesInternalRevenueService_3A2589C9EFBC8D9533B835C1101541F4" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Open tax year United States Internal Revenue Service</link:label>
    <link:label id="lab_cgnx_OpentaxyearUnitedStatesInternalRevenueService_3A2589C9EFBC8D9533B835C1101541F4_documentation_en-US" xlink:label="lab_cgnx_OpentaxyearUnitedStatesInternalRevenueService_3A2589C9EFBC8D9533B835C1101541F4" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Open tax years open to examination within the United States by the Internal Revenue Service</link:label>
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_OpentaxyearUnitedStatesInternalRevenueService" xlink:label="loc_cgnx_OpentaxyearUnitedStatesInternalRevenueService_3A2589C9EFBC8D9533B835C1101541F4" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_OpentaxyearUnitedStatesInternalRevenueService_3A2589C9EFBC8D9533B835C1101541F4" xlink:to="lab_cgnx_OpentaxyearUnitedStatesInternalRevenueService_3A2589C9EFBC8D9533B835C1101541F4" xlink:type="arc" />
    <link:label id="lab_cgnx_Opentaxyearvarioustaxingauthorities_6143A3AA12438369C2AF35C110168CCF_terseLabel_en-US" xlink:label="lab_cgnx_Opentaxyearvarioustaxingauthorities_6143A3AA12438369C2AF35C110168CCF" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Open tax year, various taxing authorities</link:label>
    <link:label id="lab_cgnx_Opentaxyearvarioustaxingauthorities_6143A3AA12438369C2AF35C110168CCF_label_en-US" xlink:label="lab_cgnx_Opentaxyearvarioustaxingauthorities_6143A3AA12438369C2AF35C110168CCF" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Open tax year, various taxing authorities</link:label>
    <link:label id="lab_cgnx_Opentaxyearvarioustaxingauthorities_6143A3AA12438369C2AF35C110168CCF_documentation_en-US" xlink:label="lab_cgnx_Opentaxyearvarioustaxingauthorities_6143A3AA12438369C2AF35C110168CCF" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Open tax year, various taxing authorities</link:label>
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_Opentaxyearvarioustaxingauthorities" xlink:label="loc_cgnx_Opentaxyearvarioustaxingauthorities_6143A3AA12438369C2AF35C110168CCF" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_Opentaxyearvarioustaxingauthorities_6143A3AA12438369C2AF35C110168CCF" xlink:to="lab_cgnx_Opentaxyearvarioustaxingauthorities_6143A3AA12438369C2AF35C110168CCF" xlink:type="arc" />
    <link:label id="lab_cgnx_TaxYearsCoveredThroughAdvancedPricingAgreement_E417A7B2F88FC9C091CE35C11016026D_terseLabel_en-US" xlink:label="lab_cgnx_TaxYearsCoveredThroughAdvancedPricingAgreement_E417A7B2F88FC9C091CE35C11016026D" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Tax Years Covered Through Advanced Pricing Agreement</link:label>
    <link:label id="lab_cgnx_TaxYearsCoveredThroughAdvancedPricingAgreement_E417A7B2F88FC9C091CE35C11016026D_label_en-US" xlink:label="lab_cgnx_TaxYearsCoveredThroughAdvancedPricingAgreement_E417A7B2F88FC9C091CE35C11016026D" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Tax Years Covered Through Advanced Pricing Agreement</link:label>
    <link:label id="lab_cgnx_TaxYearsCoveredThroughAdvancedPricingAgreement_E417A7B2F88FC9C091CE35C11016026D_documentation_en-US" xlink:label="lab_cgnx_TaxYearsCoveredThroughAdvancedPricingAgreement_E417A7B2F88FC9C091CE35C11016026D" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Tax years covered through Advanced Pricing Agreement.</link:label>
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_TaxYearsCoveredThroughAdvancedPricingAgreement" xlink:label="loc_cgnx_TaxYearsCoveredThroughAdvancedPricingAgreement_E417A7B2F88FC9C091CE35C11016026D" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_TaxYearsCoveredThroughAdvancedPricingAgreement_E417A7B2F88FC9C091CE35C11016026D" xlink:to="lab_cgnx_TaxYearsCoveredThroughAdvancedPricingAgreement_E417A7B2F88FC9C091CE35C11016026D" xlink:type="arc" />
    <link:label id="lab_cgnx_TaxyearsforAPAagreement_A139F53BD3FB3962235B35C11016E3BB_terseLabel_en-US" xlink:label="lab_cgnx_TaxyearsforAPAagreement_A139F53BD3FB3962235B35C11016E3BB" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Tax years for APA agreement</link:label>
    <link:label id="lab_cgnx_TaxyearsforAPAagreement_A139F53BD3FB3962235B35C11016E3BB_label_en-US" xlink:label="lab_cgnx_TaxyearsforAPAagreement_A139F53BD3FB3962235B35C11016E3BB" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Tax years for APA agreement</link:label>
    <link:label id="lab_cgnx_TaxyearsforAPAagreement_A139F53BD3FB3962235B35C11016E3BB_documentation_en-US" xlink:label="lab_cgnx_TaxyearsforAPAagreement_A139F53BD3FB3962235B35C11016E3BB" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Tax years for APA agreement</link:label>
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_TaxyearsforAPAagreement" xlink:label="loc_cgnx_TaxyearsforAPAagreement_A139F53BD3FB3962235B35C11016E3BB" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_TaxyearsforAPAagreement_A139F53BD3FB3962235B35C11016E3BB" xlink:to="lab_cgnx_TaxyearsforAPAagreement_A139F53BD3FB3962235B35C11016E3BB" xlink:type="arc" />
    <link:label id="lab_cgnx_Stateresearchandexperimentationtaxcarryforwards_23E6846FFB5B75B992EB35C11016618E_terseLabel_en-US" xlink:label="lab_cgnx_Stateresearchandexperimentationtaxcarryforwards_23E6846FFB5B75B992EB35C11016618E" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">State research and experimentation tax carryforwards</link:label>
    <link:label id="lab_cgnx_Stateresearchandexperimentationtaxcarryforwards_23E6846FFB5B75B992EB35C11016618E_label_en-US" xlink:label="lab_cgnx_Stateresearchandexperimentationtaxcarryforwards_23E6846FFB5B75B992EB35C11016618E" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">State research and experimentation tax carryforwards</link:label>
    <link:label id="lab_cgnx_Stateresearchandexperimentationtaxcarryforwards_23E6846FFB5B75B992EB35C11016618E_documentation_en-US" xlink:label="lab_cgnx_Stateresearchandexperimentationtaxcarryforwards_23E6846FFB5B75B992EB35C11016618E" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">State research and experimentation tax carryforwards</link:label>
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_Stateresearchandexperimentationtaxcarryforwards" xlink:label="loc_cgnx_Stateresearchandexperimentationtaxcarryforwards_23E6846FFB5B75B992EB35C11016618E" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_Stateresearchandexperimentationtaxcarryforwards_23E6846FFB5B75B992EB35C11016618E" xlink:to="lab_cgnx_Stateresearchandexperimentationtaxcarryforwards_23E6846FFB5B75B992EB35C11016618E" xlink:type="arc" />
    <link:label id="lab_us-gaap_CumulativeEffectOnRetainedEarningsNetOfTax1_AE4A057507F7FCCC7A2235C1101657E1_terseLabel_en-US" xlink:label="lab_us-gaap_CumulativeEffectOnRetainedEarningsNetOfTax1_AE4A057507F7FCCC7A2235C1101657E1" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Cumulative effect on retained earnings, net of tax</link:label>
    <link:label id="lab_us-gaap_CumulativeEffectOnRetainedEarningsNetOfTax1_AE4A057507F7FCCC7A2235C1101657E1_label_en-US" xlink:label="lab_us-gaap_CumulativeEffectOnRetainedEarningsNetOfTax1_AE4A057507F7FCCC7A2235C1101657E1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Cumulative Effect on Retained Earnings, Net of Tax</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_CumulativeEffectOnRetainedEarningsNetOfTax1" xlink:label="loc_us-gaap_CumulativeEffectOnRetainedEarningsNetOfTax1_AE4A057507F7FCCC7A2235C1101657E1" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_CumulativeEffectOnRetainedEarningsNetOfTax1_AE4A057507F7FCCC7A2235C1101657E1" xlink:to="lab_us-gaap_CumulativeEffectOnRetainedEarningsNetOfTax1_AE4A057507F7FCCC7A2235C1101657E1" xlink:type="arc" />
    <link:label id="lab_us-gaap_ScheduleOfGoodwillTable_C2688F67A075E88C3BD9F3C8FFD4AF6F_terseLabel_en-US" xlink:label="lab_us-gaap_ScheduleOfGoodwillTable_C2688F67A075E88C3BD9F3C8FFD4AF6F" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Schedule of Goodwill [Table]</link:label>
    <link:label id="lab_us-gaap_ScheduleOfGoodwillTable_C2688F67A075E88C3BD9F3C8FFD4AF6F_label_en-US" xlink:label="lab_us-gaap_ScheduleOfGoodwillTable_C2688F67A075E88C3BD9F3C8FFD4AF6F" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Schedule of Goodwill [Table]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ScheduleOfGoodwillTable" xlink:label="loc_us-gaap_ScheduleOfGoodwillTable_C2688F67A075E88C3BD9F3C8FFD4AF6F" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ScheduleOfGoodwillTable_C2688F67A075E88C3BD9F3C8FFD4AF6F" xlink:to="lab_us-gaap_ScheduleOfGoodwillTable_C2688F67A075E88C3BD9F3C8FFD4AF6F" xlink:type="arc" />
    <link:label id="lab_us-gaap_GoodwillLineItems_7EBC56DB0EC5896455CEF3C8FFD5FDC2_terseLabel_en-US" xlink:label="lab_us-gaap_GoodwillLineItems_7EBC56DB0EC5896455CEF3C8FFD5FDC2" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Goodwill [Line Items]</link:label>
    <link:label id="lab_us-gaap_GoodwillLineItems_7EBC56DB0EC5896455CEF3C8FFD5FDC2_label_en-US" xlink:label="lab_us-gaap_GoodwillLineItems_7EBC56DB0EC5896455CEF3C8FFD5FDC2" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Goodwill [Line Items]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_GoodwillLineItems" xlink:label="loc_us-gaap_GoodwillLineItems_7EBC56DB0EC5896455CEF3C8FFD5FDC2" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_GoodwillLineItems_7EBC56DB0EC5896455CEF3C8FFD5FDC2" xlink:to="lab_us-gaap_GoodwillLineItems_7EBC56DB0EC5896455CEF3C8FFD5FDC2" xlink:type="arc" />
    <link:label id="lab_us-gaap_GoodwillRollForward_BDAC0DA61DAA7E9C90DAF3C8FFD6E617_terseLabel_en-US" xlink:label="lab_us-gaap_GoodwillRollForward_BDAC0DA61DAA7E9C90DAF3C8FFD6E617" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Goodwill [Roll Forward]</link:label>
    <link:label id="lab_us-gaap_GoodwillRollForward_BDAC0DA61DAA7E9C90DAF3C8FFD6E617_label_en-US" xlink:label="lab_us-gaap_GoodwillRollForward_BDAC0DA61DAA7E9C90DAF3C8FFD6E617" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Goodwill [Roll Forward]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_GoodwillRollForward" xlink:label="loc_us-gaap_GoodwillRollForward_BDAC0DA61DAA7E9C90DAF3C8FFD6E617" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_GoodwillRollForward_BDAC0DA61DAA7E9C90DAF3C8FFD6E617" xlink:to="lab_us-gaap_GoodwillRollForward_BDAC0DA61DAA7E9C90DAF3C8FFD6E617" xlink:type="arc" />
    <link:label id="lab_us-gaap_Goodwill_0744871A2227B08574A6F3C8FFD6AE0F_periodStartLabel_en-US" xlink:label="lab_us-gaap_Goodwill_0744871A2227B08574A6F3C8FFD6AE0F" xlink:role="http://www.xbrl.org/2003/role/periodStartLabel" xlink:type="resource" xml:lang="en-US">Goodwill, Beginning Balance</link:label>
    <link:label id="lab_us-gaap_Goodwill_0744871A2227B08574A6F3C8FFD6AE0F_label_en-US" xlink:label="lab_us-gaap_Goodwill_0744871A2227B08574A6F3C8FFD6AE0F" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Goodwill</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_Goodwill" xlink:label="loc_us-gaap_Goodwill_0744871A2227B08574A6F3C8FFD6AE0F" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_Goodwill_0744871A2227B08574A6F3C8FFD6AE0F" xlink:to="lab_us-gaap_Goodwill_0744871A2227B08574A6F3C8FFD6AE0F" xlink:type="arc" />
    <link:label id="lab_us-gaap_GoodwillAcquiredDuringPeriod_DA8C795C2322F8BB0542F3C8FFD6B0B4_terseLabel_en-US" xlink:label="lab_us-gaap_GoodwillAcquiredDuringPeriod_DA8C795C2322F8BB0542F3C8FFD6B0B4" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Goodwill acquired during the period</link:label>
    <link:label id="lab_us-gaap_GoodwillAcquiredDuringPeriod_DA8C795C2322F8BB0542F3C8FFD6B0B4_label_en-US" xlink:label="lab_us-gaap_GoodwillAcquiredDuringPeriod_DA8C795C2322F8BB0542F3C8FFD6B0B4" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Goodwill, Acquired During Period</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_GoodwillAcquiredDuringPeriod" xlink:label="loc_us-gaap_GoodwillAcquiredDuringPeriod_DA8C795C2322F8BB0542F3C8FFD6B0B4" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_GoodwillAcquiredDuringPeriod_DA8C795C2322F8BB0542F3C8FFD6B0B4" xlink:to="lab_us-gaap_GoodwillAcquiredDuringPeriod_DA8C795C2322F8BB0542F3C8FFD6B0B4" xlink:type="arc" />
    <link:label id="lab_us-gaap_GoodwillForeignCurrencyTranslationGainLoss_670E2D39A11B71EAD142F41255C800F9_terseLabel_en-US" xlink:label="lab_us-gaap_GoodwillForeignCurrencyTranslationGainLoss_670E2D39A11B71EAD142F41255C800F9" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Foreign exchange rate changes</link:label>
    <link:label id="lab_us-gaap_GoodwillForeignCurrencyTranslationGainLoss_670E2D39A11B71EAD142F41255C800F9_label_en-US" xlink:label="lab_us-gaap_GoodwillForeignCurrencyTranslationGainLoss_670E2D39A11B71EAD142F41255C800F9" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Goodwill, Foreign Currency Translation Gain (Loss)</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_GoodwillForeignCurrencyTranslationGainLoss" xlink:label="loc_us-gaap_GoodwillForeignCurrencyTranslationGainLoss_670E2D39A11B71EAD142F41255C800F9" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_GoodwillForeignCurrencyTranslationGainLoss_670E2D39A11B71EAD142F41255C800F9" xlink:to="lab_us-gaap_GoodwillForeignCurrencyTranslationGainLoss_670E2D39A11B71EAD142F41255C800F9" xlink:type="arc" />
    <link:label id="lab_us-gaap_Goodwill_C4F669C50B297773D150F3C8FFD66F63_periodEndLabel_en-US" xlink:label="lab_us-gaap_Goodwill_C4F669C50B297773D150F3C8FFD66F63" xlink:role="http://www.xbrl.org/2003/role/periodEndLabel" xlink:type="resource" xml:lang="en-US">Goodwill, Ending Balance</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_Goodwill" xlink:label="loc_us-gaap_Goodwill_C4F669C50B297773D150F3C8FFD66F63" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_Goodwill_C4F669C50B297773D150F3C8FFD66F63" xlink:to="lab_us-gaap_Goodwill_C4F669C50B297773D150F3C8FFD66F63" xlink:type="arc" />
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward_ABB98CFEAAACD605030D8095E8E52A3D_terseLabel_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward_ABB98CFEAAACD605030D8095E8E52A3D" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Shares</link:label>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward_ABB98CFEAAACD605030D8095E8E52A3D_label_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward_ABB98CFEAAACD605030D8095E8E52A3D" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Share-based Compensation Arrangement by Share-based Payment Award, Options, Outstanding [Roll Forward]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward_ABB98CFEAAACD605030D8095E8E52A3D" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward_ABB98CFEAAACD605030D8095E8E52A3D" xlink:to="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward_ABB98CFEAAACD605030D8095E8E52A3D" xlink:type="arc" />
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber_04321E7D795881C403448095E8E5B308_periodStartLabel_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber_04321E7D795881C403448095E8E5B308" xlink:role="http://www.xbrl.org/2003/role/periodStartLabel" xlink:type="resource" xml:lang="en-US">Beginning balance outstanding</link:label>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber_04321E7D795881C403448095E8E5B308_label_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber_04321E7D795881C403448095E8E5B308" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Share-based Compensation Arrangement by Share-based Payment Award, Options, Outstanding, Number</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber_04321E7D795881C403448095E8E5B308" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber_04321E7D795881C403448095E8E5B308" xlink:to="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber_04321E7D795881C403448095E8E5B308" xlink:type="arc" />
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriod_840AEAE17B85D55337458095E8E59A60_terseLabel_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriod_840AEAE17B85D55337458095E8E59A60" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Granted</link:label>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriod_840AEAE17B85D55337458095E8E59A60_label_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriod_840AEAE17B85D55337458095E8E59A60" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Share-based Compensation Arrangement by Share-based Payment Award, Options, Grants in Period, Net of Forfeitures</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriod" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriod_840AEAE17B85D55337458095E8E59A60" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriod_840AEAE17B85D55337458095E8E59A60" xlink:to="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriod_840AEAE17B85D55337458095E8E59A60" xlink:type="arc" />
    <link:label id="lab_us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised_9C06FD33231381E0BF3A8095E8E56FD0_negatedLabel_en-US" xlink:label="lab_us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised_9C06FD33231381E0BF3A8095E8E56FD0" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:type="resource" xml:lang="en-US">Exercised</link:label>
    <link:label id="lab_us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised_9C06FD33231381E0BF3A8095E8E56FD0_label_en-US" xlink:label="lab_us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised_9C06FD33231381E0BF3A8095E8E56FD0" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Share-based Compensation Arrangement by Share-based Payment Award, Options, Exercises in Period</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised" xlink:label="loc_us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised_9C06FD33231381E0BF3A8095E8E56FD0" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised_9C06FD33231381E0BF3A8095E8E56FD0" xlink:to="lab_us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised_9C06FD33231381E0BF3A8095E8E56FD0" xlink:type="arc" />
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriod_6BB1CC826060CA150A818095E8E639F2_negatedLabel_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriod_6BB1CC826060CA150A818095E8E639F2" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:type="resource" xml:lang="en-US">Forfeited or expired</link:label>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriod_6BB1CC826060CA150A818095E8E639F2_label_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriod_6BB1CC826060CA150A818095E8E639F2" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Share-based Compensation Arrangement by Share-based Payment Award, Options, Forfeitures and Expirations in Period</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriod" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriod_6BB1CC826060CA150A818095E8E639F2" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriod_6BB1CC826060CA150A818095E8E639F2" xlink:to="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriod_6BB1CC826060CA150A818095E8E639F2" xlink:type="arc" />
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber_E6E4CDA1A2E3C42DE8318095E8E65F7B_periodEndLabel_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber_E6E4CDA1A2E3C42DE8318095E8E65F7B" xlink:role="http://www.xbrl.org/2003/role/periodEndLabel" xlink:type="resource" xml:lang="en-US">Ending balance outstanding</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber_E6E4CDA1A2E3C42DE8318095E8E65F7B" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber_E6E4CDA1A2E3C42DE8318095E8E65F7B" xlink:to="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber_E6E4CDA1A2E3C42DE8318095E8E65F7B" xlink:type="arc" />
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward_5CC63CF0D5980903A9958095E8E67424_label_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward_5CC63CF0D5980903A9958095E8E67424" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Share-based Compensation Arrangement by Share-based Payment Award, Options, Outstanding, Weighted Average Exercise Price [Abstract]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward_5CC63CF0D5980903A9958095E8E67424" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward_5CC63CF0D5980903A9958095E8E67424" xlink:to="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward_5CC63CF0D5980903A9958095E8E67424" xlink:type="arc" />
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice_2B6815B15418FC9B80E38095E8E6CD4E_periodStartLabel_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice_2B6815B15418FC9B80E38095E8E6CD4E" xlink:role="http://www.xbrl.org/2003/role/periodStartLabel" xlink:type="resource" xml:lang="en-US">Beginning balance outstanding, weighted-average exercise price</link:label>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice_2B6815B15418FC9B80E38095E8E6CD4E_label_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice_2B6815B15418FC9B80E38095E8E6CD4E" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Share-based Compensation Arrangement by Share-based Payment Award, Options, Outstanding, Weighted Average Exercise Price</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice_2B6815B15418FC9B80E38095E8E6CD4E" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice_2B6815B15418FC9B80E38095E8E6CD4E" xlink:to="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice_2B6815B15418FC9B80E38095E8E6CD4E" xlink:type="arc" />
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice_A51270727C4203A18E968095E8E6C05B_terseLabel_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice_A51270727C4203A18E968095E8E6C05B" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Granted, weighted-average exercise price</link:label>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice_A51270727C4203A18E968095E8E6C05B_label_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice_A51270727C4203A18E968095E8E6C05B" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Share-based Compensation Arrangements by Share-based Payment Award, Options, Grants in Period, Weighted Average Exercise Price</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice_A51270727C4203A18E968095E8E6C05B" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice_A51270727C4203A18E968095E8E6C05B" xlink:to="lab_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice_A51270727C4203A18E968095E8E6C05B" xlink:type="arc" />
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice_C8CDAAD2F9F8395E0C048095E8E6F68D_terseLabel_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice_C8CDAAD2F9F8395E0C048095E8E6F68D" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Exercised, weighted-average exercise price</link:label>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice_C8CDAAD2F9F8395E0C048095E8E6F68D_label_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice_C8CDAAD2F9F8395E0C048095E8E6F68D" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Share-based Compensation Arrangements by Share-based Payment Award, Options, Exercises in Period, Weighted Average Exercise Price</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice_C8CDAAD2F9F8395E0C048095E8E6F68D" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice_C8CDAAD2F9F8395E0C048095E8E6F68D" xlink:to="lab_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice_C8CDAAD2F9F8395E0C048095E8E6F68D" xlink:type="arc" />
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriodWeightedAverageExercisePrice_C9B4228AE4CB011F38868095E8E67F32_terseLabel_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriodWeightedAverageExercisePrice_C9B4228AE4CB011F38868095E8E67F32" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Forfeited or expired, weighted-average exercise price</link:label>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriodWeightedAverageExercisePrice_C9B4228AE4CB011F38868095E8E67F32_label_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriodWeightedAverageExercisePrice_C9B4228AE4CB011F38868095E8E67F32" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Share-based Compensation Arrangement by Share-based Payment Award, Options, Forfeitures and Expirations in Period, Weighted Average Exercise Price</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriodWeightedAverageExercisePrice" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriodWeightedAverageExercisePrice_C9B4228AE4CB011F38868095E8E67F32" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriodWeightedAverageExercisePrice_C9B4228AE4CB011F38868095E8E67F32" xlink:to="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriodWeightedAverageExercisePrice_C9B4228AE4CB011F38868095E8E67F32" xlink:type="arc" />
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice_4CEC155A77A5C0D826C98095E8E6BAAE_periodEndLabel_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice_4CEC155A77A5C0D826C98095E8E6BAAE" xlink:role="http://www.xbrl.org/2003/role/periodEndLabel" xlink:type="resource" xml:lang="en-US">Ending balance outstanding, weighted-average exercise price</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice_4CEC155A77A5C0D826C98095E8E6BAAE" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice_4CEC155A77A5C0D826C98095E8E6BAAE" xlink:to="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice_4CEC155A77A5C0D826C98095E8E6BAAE" xlink:type="arc" />
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber_E8930168B58F84BC33AA8095E8E64958_terseLabel_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber_E8930168B58F84BC33AA8095E8E64958" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Exercisable, Shares</link:label>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber_E8930168B58F84BC33AA8095E8E64958_label_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber_E8930168B58F84BC33AA8095E8E64958" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Share-based Compensation Arrangement by Share-based Payment Award, Options, Exercisable, Number</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber_E8930168B58F84BC33AA8095E8E64958" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber_E8930168B58F84BC33AA8095E8E64958" xlink:to="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber_E8930168B58F84BC33AA8095E8E64958" xlink:type="arc" />
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableNumber_E2E6BDD0DCB5B9DE7E918095E8E6CE8A_terseLabel_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableNumber_E2E6BDD0DCB5B9DE7E918095E8E6CE8A" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Options vested or expected to vest</link:label>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableNumber_E2E6BDD0DCB5B9DE7E918095E8E6CE8A_label_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableNumber_E2E6BDD0DCB5B9DE7E918095E8E6CE8A" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Share-based Compensation Arrangement by Share-based Payment Award, Options, Vested and Expected to Vest, Exercisable, Number</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableNumber" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableNumber_E2E6BDD0DCB5B9DE7E918095E8E6CE8A" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableNumber_E2E6BDD0DCB5B9DE7E918095E8E6CE8A" xlink:to="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableNumber_E2E6BDD0DCB5B9DE7E918095E8E6CE8A" xlink:type="arc" />
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice_1BEF36D56E97267ECF128095E8E6F41F_terseLabel_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice_1BEF36D56E97267ECF128095E8E6F41F" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Exercisable, weighted-average exercise price</link:label>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice_1BEF36D56E97267ECF128095E8E6F41F_label_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice_1BEF36D56E97267ECF128095E8E6F41F" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Share-based Compensation Arrangement by Share-based Payment Award, Options, Exercisable, Weighted Average Exercise Price</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice_1BEF36D56E97267ECF128095E8E6F41F" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice_1BEF36D56E97267ECF128095E8E6F41F" xlink:to="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice_1BEF36D56E97267ECF128095E8E6F41F" xlink:type="arc" />
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice_5DD3FD90E82A03C796348095E8E64876_terseLabel_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice_5DD3FD90E82A03C796348095E8E64876" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Options vested or expected to vest, weighted-average exercise price</link:label>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice_5DD3FD90E82A03C796348095E8E64876_label_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice_5DD3FD90E82A03C796348095E8E64876" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Share-based Compensation Arrangement by Share-based Payment Award, Options, Vested and Expected to Vest, Outstanding, Weighted Average Exercise Price</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice_5DD3FD90E82A03C796348095E8E64876" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice_5DD3FD90E82A03C796348095E8E64876" xlink:to="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice_5DD3FD90E82A03C796348095E8E64876" xlink:type="arc" />
    <link:label id="lab_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2_40BE540814DE93D62E2C8095E8E6C17F_terseLabel_en-US" xlink:label="lab_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2_40BE540814DE93D62E2C8095E8E6C17F" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Outstanding, weighted-average remaining contractual term (in years)</link:label>
    <link:label id="lab_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2_40BE540814DE93D62E2C8095E8E6C17F_label_en-US" xlink:label="lab_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2_40BE540814DE93D62E2C8095E8E6C17F" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Share-based Compensation Arrangement by Share-based Payment Award, Options, Outstanding, Weighted Average Remaining Contractual Term</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2" xlink:label="loc_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2_40BE540814DE93D62E2C8095E8E6C17F" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2_40BE540814DE93D62E2C8095E8E6C17F" xlink:to="lab_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2_40BE540814DE93D62E2C8095E8E6C17F" xlink:type="arc" />
    <link:label id="lab_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1_DBA3A0BE286CD32D7B408095E8E634C3_terseLabel_en-US" xlink:label="lab_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1_DBA3A0BE286CD32D7B408095E8E634C3" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Exercisable, weighted-average remaining contractual term (in years)</link:label>
    <link:label id="lab_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1_DBA3A0BE286CD32D7B408095E8E634C3_label_en-US" xlink:label="lab_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1_DBA3A0BE286CD32D7B408095E8E634C3" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Share-based Compensation Arrangement by Share-based Payment Award, Options, Exercisable, Weighted Average Remaining Contractual Term</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1" xlink:label="loc_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1_DBA3A0BE286CD32D7B408095E8E634C3" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1_DBA3A0BE286CD32D7B408095E8E634C3" xlink:to="lab_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1_DBA3A0BE286CD32D7B408095E8E634C3" xlink:type="arc" />
    <link:label id="lab_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1_8DDCDB4F3D4FA4CDB8368095E8E6EF4D_terseLabel_en-US" xlink:label="lab_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1_8DDCDB4F3D4FA4CDB8368095E8E6EF4D" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Options vested or expected to vest, weighted-average remaining contractual term (in years)</link:label>
    <link:label id="lab_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1_8DDCDB4F3D4FA4CDB8368095E8E6EF4D_label_en-US" xlink:label="lab_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1_8DDCDB4F3D4FA4CDB8368095E8E6EF4D" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Share-based Compensation Arrangement by Share-based Payment Award, Options, Vested and Expected to Vest, Outstanding, Weighted Average Remaining Contractual Term</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1" xlink:label="loc_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1_8DDCDB4F3D4FA4CDB8368095E8E6EF4D" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1_8DDCDB4F3D4FA4CDB8368095E8E6EF4D" xlink:to="lab_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1_8DDCDB4F3D4FA4CDB8368095E8E6EF4D" xlink:type="arc" />
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue_AE15B84F784C6658C4A98095E8E61A6B_terseLabel_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue_AE15B84F784C6658C4A98095E8E61A6B" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Outstanding, aggregate intrinsic value</link:label>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue_AE15B84F784C6658C4A98095E8E61A6B_label_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue_AE15B84F784C6658C4A98095E8E61A6B" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Share-based Compensation Arrangement by Share-based Payment Award, Options, Outstanding, Intrinsic Value</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue_AE15B84F784C6658C4A98095E8E61A6B" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue_AE15B84F784C6658C4A98095E8E61A6B" xlink:to="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue_AE15B84F784C6658C4A98095E8E61A6B" xlink:type="arc" />
    <link:label id="lab_cgnx_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableAggregateIntrinsicValue_34156DE649A0631AE5018095E8E71562_terseLabel_en-US" xlink:label="lab_cgnx_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableAggregateIntrinsicValue_34156DE649A0631AE5018095E8E71562" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Exercisable, aggregate intrinsic value</link:label>
    <link:label id="lab_cgnx_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableAggregateIntrinsicValue_34156DE649A0631AE5018095E8E71562_label_en-US" xlink:label="lab_cgnx_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableAggregateIntrinsicValue_34156DE649A0631AE5018095E8E71562" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Share Based Compensation Arrangement By Share Based Payment Award Options Exercisable Aggregate Intrinsic Value</link:label>
    <link:label id="lab_cgnx_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableAggregateIntrinsicValue_34156DE649A0631AE5018095E8E71562_documentation_en-US" xlink:label="lab_cgnx_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableAggregateIntrinsicValue_34156DE649A0631AE5018095E8E71562" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Share based compensation arrangement by share based payment award options exercisable aggregate intrinsic value.</link:label>
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableAggregateIntrinsicValue" xlink:label="loc_cgnx_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableAggregateIntrinsicValue_34156DE649A0631AE5018095E8E71562" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableAggregateIntrinsicValue_34156DE649A0631AE5018095E8E71562" xlink:to="lab_cgnx_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableAggregateIntrinsicValue_34156DE649A0631AE5018095E8E71562" xlink:type="arc" />
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue_6105A9888F45217161238095E8E77E7A_terseLabel_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue_6105A9888F45217161238095E8E77E7A" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Options vested or expected to vest, aggregate intrinsic value</link:label>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue_6105A9888F45217161238095E8E77E7A_label_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue_6105A9888F45217161238095E8E77E7A" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Share-based Compensation Arrangement by Share-based Payment Award, Options, Vested and Expected to Vest, Outstanding, Aggregate Intrinsic Value</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue_6105A9888F45217161238095E8E77E7A" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue_6105A9888F45217161238095E8E77E7A" xlink:to="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue_6105A9888F45217161238095E8E77E7A" xlink:type="arc" />
    <link:label id="lab_us-gaap_CapitalizedContractCostGross_D178EE728DA28D924AC58095E5665994_terseLabel_en-US" xlink:label="lab_us-gaap_CapitalizedContractCostGross_D178EE728DA28D924AC58095E5665994" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Capitalized Contract Cost, Gross</link:label>
    <link:label id="lab_us-gaap_CapitalizedContractCostGross_D178EE728DA28D924AC58095E5665994_label_en-US" xlink:label="lab_us-gaap_CapitalizedContractCostGross_D178EE728DA28D924AC58095E5665994" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Capitalized Contract Cost, Gross</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_CapitalizedContractCostGross" xlink:label="loc_us-gaap_CapitalizedContractCostGross_D178EE728DA28D924AC58095E5665994" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_CapitalizedContractCostGross_D178EE728DA28D924AC58095E5665994" xlink:to="lab_us-gaap_CapitalizedContractCostGross_D178EE728DA28D924AC58095E5665994" xlink:type="arc" />
    <link:label id="lab_us-gaap_AccountingChangesAndErrorCorrectionsAbstract_3D13F0B91464EF63BCD78095E8D1D6F0_label_en-US" xlink:label="lab_us-gaap_AccountingChangesAndErrorCorrectionsAbstract_3D13F0B91464EF63BCD78095E8D1D6F0" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Accounting Changes and Error Corrections [Abstract]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_AccountingChangesAndErrorCorrectionsAbstract" xlink:label="loc_us-gaap_AccountingChangesAndErrorCorrectionsAbstract_3D13F0B91464EF63BCD78095E8D1D6F0" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AccountingChangesAndErrorCorrectionsAbstract_3D13F0B91464EF63BCD78095E8D1D6F0" xlink:to="lab_us-gaap_AccountingChangesAndErrorCorrectionsAbstract_3D13F0B91464EF63BCD78095E8D1D6F0" xlink:type="arc" />
    <link:label id="lab_us-gaap_NewAccountingPronouncementsAndChangesInAccountingPrinciplesTextBlock_2F0FD66314A73AC0A2188095E8D13832_terseLabel_en-US" xlink:label="lab_us-gaap_NewAccountingPronouncementsAndChangesInAccountingPrinciplesTextBlock_2F0FD66314A73AC0A2188095E8D13832" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">New Pronouncements</link:label>
    <link:label id="lab_us-gaap_NewAccountingPronouncementsAndChangesInAccountingPrinciplesTextBlock_2F0FD66314A73AC0A2188095E8D13832_label_en-US" xlink:label="lab_us-gaap_NewAccountingPronouncementsAndChangesInAccountingPrinciplesTextBlock_2F0FD66314A73AC0A2188095E8D13832" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">New Accounting Pronouncements and Changes in Accounting Principles [Text Block]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_NewAccountingPronouncementsAndChangesInAccountingPrinciplesTextBlock" xlink:label="loc_us-gaap_NewAccountingPronouncementsAndChangesInAccountingPrinciplesTextBlock_2F0FD66314A73AC0A2188095E8D13832" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_NewAccountingPronouncementsAndChangesInAccountingPrinciplesTextBlock_2F0FD66314A73AC0A2188095E8D13832" xlink:to="lab_us-gaap_NewAccountingPronouncementsAndChangesInAccountingPrinciplesTextBlock_2F0FD66314A73AC0A2188095E8D13832" xlink:type="arc" />
    <link:label id="lab_us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1_0FFE90012136520DD7468095E8DCE8FB_terseLabel_en-US" xlink:label="lab_us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1_0FFE90012136520DD7468095E8DCE8FB" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Recognition period for unrecognized compensation expense</link:label>
    <link:label id="lab_us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1_0FFE90012136520DD7468095E8DCE8FB_label_en-US" xlink:label="lab_us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1_0FFE90012136520DD7468095E8DCE8FB" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Employee Service Share-based Compensation, Nonvested Awards, Compensation Cost Not yet Recognized, Period for Recognition</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1" xlink:label="loc_us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1_0FFE90012136520DD7468095E8DCE8FB" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1_0FFE90012136520DD7468095E8DCE8FB" xlink:to="lab_us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1_0FFE90012136520DD7468095E8DCE8FB" xlink:type="arc" />
    <link:label id="lab_us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTable_FAD249FE8886729019128095E8DCA644_terseLabel_en-US" xlink:label="lab_us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTable_FAD249FE8886729019128095E8DCA644" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Schedule of Employee Service Share-based Compensation, Allocation of Recognized Period Costs [Table]</link:label>
    <link:label id="lab_us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTable_FAD249FE8886729019128095E8DCA644_label_en-US" xlink:label="lab_us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTable_FAD249FE8886729019128095E8DCA644" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Schedule of Employee Service Share-based Compensation, Allocation of Recognized Period Costs [Table]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTable" xlink:label="loc_us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTable_FAD249FE8886729019128095E8DCA644" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTable_FAD249FE8886729019128095E8DCA644" xlink:to="lab_us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTable_FAD249FE8886729019128095E8DCA644" xlink:type="arc" />
    <link:label id="lab_us-gaap_IncomeStatementLocationAxis_3F0E4C860E662027221F8095E8DC2281_verboseLabel_en-US" xlink:label="lab_us-gaap_IncomeStatementLocationAxis_3F0E4C860E662027221F8095E8DC2281" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xml:lang="en-US">Schedule of Employee Service Share-Based Compensation, Allocation of Recognized Period Costs, by Report Line [Axis]</link:label>
    <link:label id="lab_us-gaap_IncomeStatementLocationAxis_3F0E4C860E662027221F8095E8DC2281_label_en-US" xlink:label="lab_us-gaap_IncomeStatementLocationAxis_3F0E4C860E662027221F8095E8DC2281" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Income Statement Location [Axis]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_IncomeStatementLocationAxis" xlink:label="loc_us-gaap_IncomeStatementLocationAxis_3F0E4C860E662027221F8095E8DC2281" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_IncomeStatementLocationAxis_3F0E4C860E662027221F8095E8DC2281" xlink:to="lab_us-gaap_IncomeStatementLocationAxis_3F0E4C860E662027221F8095E8DC2281" xlink:type="arc" />
    <link:label id="lab_us-gaap_IncomeStatementLocationDomain_F10EB111342E4A2BCFF28095E8DC9848_verboseLabel_en-US" xlink:label="lab_us-gaap_IncomeStatementLocationDomain_F10EB111342E4A2BCFF28095E8DC9848" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xml:lang="en-US">Employee Service Share-based Compensation, Allocation of Recognized Period Costs, Report Line [Domain]</link:label>
    <link:label id="lab_us-gaap_IncomeStatementLocationDomain_F10EB111342E4A2BCFF28095E8DC9848_label_en-US" xlink:label="lab_us-gaap_IncomeStatementLocationDomain_F10EB111342E4A2BCFF28095E8DC9848" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Income Statement Location [Domain]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_IncomeStatementLocationDomain" xlink:label="loc_us-gaap_IncomeStatementLocationDomain_F10EB111342E4A2BCFF28095E8DC9848" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_IncomeStatementLocationDomain_F10EB111342E4A2BCFF28095E8DC9848" xlink:to="lab_us-gaap_IncomeStatementLocationDomain_F10EB111342E4A2BCFF28095E8DC9848" xlink:type="arc" />
    <link:label id="lab_cgnx_ProductCostOfRevenueMember_E193B76D303CE253D2128095E8DC9C34_terseLabel_en-US" xlink:label="lab_cgnx_ProductCostOfRevenueMember_E193B76D303CE253D2128095E8DC9C34" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Product cost of revenue [Member]</link:label>
    <link:label id="lab_cgnx_ProductCostOfRevenueMember_E193B76D303CE253D2128095E8DC9C34_label_en-US" xlink:label="lab_cgnx_ProductCostOfRevenueMember_E193B76D303CE253D2128095E8DC9C34" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Product Cost Of Revenue [Member]</link:label>
    <link:label id="lab_cgnx_ProductCostOfRevenueMember_E193B76D303CE253D2128095E8DC9C34_documentation_en-US" xlink:label="lab_cgnx_ProductCostOfRevenueMember_E193B76D303CE253D2128095E8DC9C34" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Product cost of revenue.</link:label>
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_ProductCostOfRevenueMember" xlink:label="loc_cgnx_ProductCostOfRevenueMember_E193B76D303CE253D2128095E8DC9C34" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_ProductCostOfRevenueMember_E193B76D303CE253D2128095E8DC9C34" xlink:to="lab_cgnx_ProductCostOfRevenueMember_E193B76D303CE253D2128095E8DC9C34" xlink:type="arc" />
    <link:label id="lab_us-gaap_ResearchAndDevelopmentExpenseMember_FE72FDDB1EA526F539C78095E8DCB3C7_terseLabel_en-US" xlink:label="lab_us-gaap_ResearchAndDevelopmentExpenseMember_FE72FDDB1EA526F539C78095E8DCB3C7" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Research, development, and engineering expenses</link:label>
    <link:label id="lab_us-gaap_ResearchAndDevelopmentExpenseMember_FE72FDDB1EA526F539C78095E8DCB3C7_label_en-US" xlink:label="lab_us-gaap_ResearchAndDevelopmentExpenseMember_FE72FDDB1EA526F539C78095E8DCB3C7" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Research and Development Expense [Member]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ResearchAndDevelopmentExpenseMember" xlink:label="loc_us-gaap_ResearchAndDevelopmentExpenseMember_FE72FDDB1EA526F539C78095E8DCB3C7" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ResearchAndDevelopmentExpenseMember_FE72FDDB1EA526F539C78095E8DCB3C7" xlink:to="lab_us-gaap_ResearchAndDevelopmentExpenseMember_FE72FDDB1EA526F539C78095E8DCB3C7" xlink:type="arc" />
    <link:label id="lab_cgnx_SellingGeneralAndAdministrativeMember_0E894832395BF3FFD9868095E8DDFD73_terseLabel_en-US" xlink:label="lab_cgnx_SellingGeneralAndAdministrativeMember_0E894832395BF3FFD9868095E8DDFD73" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Selling, general, and administrative [Member]</link:label>
    <link:label id="lab_cgnx_SellingGeneralAndAdministrativeMember_0E894832395BF3FFD9868095E8DDFD73_label_en-US" xlink:label="lab_cgnx_SellingGeneralAndAdministrativeMember_0E894832395BF3FFD9868095E8DDFD73" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Selling General And Administrative [Member]</link:label>
    <link:label id="lab_cgnx_SellingGeneralAndAdministrativeMember_0E894832395BF3FFD9868095E8DDFD73_documentation_en-US" xlink:label="lab_cgnx_SellingGeneralAndAdministrativeMember_0E894832395BF3FFD9868095E8DDFD73" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Selling, general, and administrative.</link:label>
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_SellingGeneralAndAdministrativeMember" xlink:label="loc_cgnx_SellingGeneralAndAdministrativeMember_0E894832395BF3FFD9868095E8DDFD73" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_SellingGeneralAndAdministrativeMember_0E894832395BF3FFD9868095E8DDFD73" xlink:to="lab_cgnx_SellingGeneralAndAdministrativeMember_0E894832395BF3FFD9868095E8DDFD73" xlink:type="arc" />
    <link:label id="lab_us-gaap_EmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsLineItems_B33E79D0955697D8F1E28095E8DD0CE6_terseLabel_en-US" xlink:label="lab_us-gaap_EmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsLineItems_B33E79D0955697D8F1E28095E8DD0CE6" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Employee Service Share-based Compensation, Allocation of Recognized Period Costs [Line Items]</link:label>
    <link:label id="lab_us-gaap_EmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsLineItems_B33E79D0955697D8F1E28095E8DD0CE6_label_en-US" xlink:label="lab_us-gaap_EmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsLineItems_B33E79D0955697D8F1E28095E8DD0CE6" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Share-based Compensation Arrangement by Share-based Payment Award, Compensation Cost [Line Items]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_EmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsLineItems" xlink:label="loc_us-gaap_EmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsLineItems_B33E79D0955697D8F1E28095E8DD0CE6" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_EmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsLineItems_B33E79D0955697D8F1E28095E8DD0CE6" xlink:to="lab_us-gaap_EmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsLineItems_B33E79D0955697D8F1E28095E8DD0CE6" xlink:type="arc" />
    <link:label id="lab_us-gaap_AllocatedShareBasedCompensationExpense_738C67324F2E4B8EBD308095E8DDECC4_verboseLabel_en-US" xlink:label="lab_us-gaap_AllocatedShareBasedCompensationExpense_738C67324F2E4B8EBD308095E8DDECC4" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xml:lang="en-US">Stock-based compensation expense</link:label>
    <link:label id="lab_us-gaap_AllocatedShareBasedCompensationExpense_738C67324F2E4B8EBD308095E8DDECC4_label_en-US" xlink:label="lab_us-gaap_AllocatedShareBasedCompensationExpense_738C67324F2E4B8EBD308095E8DDECC4" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Allocated Share-based Compensation Expense</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_AllocatedShareBasedCompensationExpense" xlink:label="loc_us-gaap_AllocatedShareBasedCompensationExpense_738C67324F2E4B8EBD308095E8DDECC4" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AllocatedShareBasedCompensationExpense_738C67324F2E4B8EBD308095E8DDECC4" xlink:to="lab_us-gaap_AllocatedShareBasedCompensationExpense_738C67324F2E4B8EBD308095E8DDECC4" xlink:type="arc" />
    <link:label id="lab_us-gaap_EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense_F6A9CE9DC07C371311C48095E8DDC7A2_terseLabel_en-US" xlink:label="lab_us-gaap_EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense_F6A9CE9DC07C371311C48095E8DDC7A2" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Income tax benefit recognized related to stock-based compensation expense</link:label>
    <link:label id="lab_us-gaap_EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense_F6A9CE9DC07C371311C48095E8DDC7A2_label_en-US" xlink:label="lab_us-gaap_EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense_F6A9CE9DC07C371311C48095E8DDC7A2" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Employee Service Share-based Compensation, Tax Benefit from Compensation Expense</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense" xlink:label="loc_us-gaap_EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense_F6A9CE9DC07C371311C48095E8DDC7A2" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense_F6A9CE9DC07C371311C48095E8DDC7A2" xlink:to="lab_us-gaap_EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense_F6A9CE9DC07C371311C48095E8DDC7A2" xlink:type="arc" />
    <link:label id="lab_cgnx_EmployeeServiceShareBasedCompensationRecognizedPeriodCostsCapitalizedAmount_3754A7CD01B45902EE648095E8DD582F_terseLabel_en-US" xlink:label="lab_cgnx_EmployeeServiceShareBasedCompensationRecognizedPeriodCostsCapitalizedAmount_3754A7CD01B45902EE648095E8DD582F" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Compensation expense capitalized</link:label>
    <link:label id="lab_cgnx_EmployeeServiceShareBasedCompensationRecognizedPeriodCostsCapitalizedAmount_3754A7CD01B45902EE648095E8DD582F_label_en-US" xlink:label="lab_cgnx_EmployeeServiceShareBasedCompensationRecognizedPeriodCostsCapitalizedAmount_3754A7CD01B45902EE648095E8DD582F" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Employee Service Share Based Compensation Recognized Period Costs Capitalized Amount</link:label>
    <link:label id="lab_cgnx_EmployeeServiceShareBasedCompensationRecognizedPeriodCostsCapitalizedAmount_3754A7CD01B45902EE648095E8DD582F_documentation_en-US" xlink:label="lab_cgnx_EmployeeServiceShareBasedCompensationRecognizedPeriodCostsCapitalizedAmount_3754A7CD01B45902EE648095E8DD582F" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Employee service share based compensation recognized period costs capitalized amount.</link:label>
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_EmployeeServiceShareBasedCompensationRecognizedPeriodCostsCapitalizedAmount" xlink:label="loc_cgnx_EmployeeServiceShareBasedCompensationRecognizedPeriodCostsCapitalizedAmount_3754A7CD01B45902EE648095E8DD582F" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_EmployeeServiceShareBasedCompensationRecognizedPeriodCostsCapitalizedAmount_3754A7CD01B45902EE648095E8DD582F" xlink:to="lab_cgnx_EmployeeServiceShareBasedCompensationRecognizedPeriodCostsCapitalizedAmount_3754A7CD01B45902EE648095E8DD582F" xlink:type="arc" />
    <link:label id="lab_us-gaap_ScheduleOfFairValueAssetsAndLiabilitiesMeasuredOnRecurringBasisTableTextBlock_5A24DB5F5E5F2D4F68538095E88BE060_terseLabel_en-US" xlink:label="lab_us-gaap_ScheduleOfFairValueAssetsAndLiabilitiesMeasuredOnRecurringBasisTableTextBlock_5A24DB5F5E5F2D4F68538095E88BE060" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Assets and Liabilities Measured at Fair Value on a Recurring Basis</link:label>
    <link:label id="lab_us-gaap_ScheduleOfFairValueAssetsAndLiabilitiesMeasuredOnRecurringBasisTableTextBlock_5A24DB5F5E5F2D4F68538095E88BE060_label_en-US" xlink:label="lab_us-gaap_ScheduleOfFairValueAssetsAndLiabilitiesMeasuredOnRecurringBasisTableTextBlock_5A24DB5F5E5F2D4F68538095E88BE060" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Schedule of Fair Value, Assets and Liabilities Measured on Recurring Basis [Table Text Block]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ScheduleOfFairValueAssetsAndLiabilitiesMeasuredOnRecurringBasisTableTextBlock" xlink:label="loc_us-gaap_ScheduleOfFairValueAssetsAndLiabilitiesMeasuredOnRecurringBasisTableTextBlock_5A24DB5F5E5F2D4F68538095E88BE060" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ScheduleOfFairValueAssetsAndLiabilitiesMeasuredOnRecurringBasisTableTextBlock_5A24DB5F5E5F2D4F68538095E88BE060" xlink:to="lab_us-gaap_ScheduleOfFairValueAssetsAndLiabilitiesMeasuredOnRecurringBasisTableTextBlock_5A24DB5F5E5F2D4F68538095E88BE060" xlink:type="arc" />
    <link:label id="lab_us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationTextBlock_2EA2181AEA9270CE9E368095E88B2095_terseLabel_en-US" xlink:label="lab_us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationTextBlock_2EA2181AEA9270CE9E368095E88B2095" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Fair Value, Liabilities Measured on Recurring Basis, Unobservable Input Reconciliation</link:label>
    <link:label id="lab_us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationTextBlock_2EA2181AEA9270CE9E368095E88B2095_label_en-US" xlink:label="lab_us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationTextBlock_2EA2181AEA9270CE9E368095E88B2095" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Fair Value, Liabilities Measured on Recurring Basis, Unobservable Input Reconciliation [Table Text Block]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationTextBlock" xlink:label="loc_us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationTextBlock_2EA2181AEA9270CE9E368095E88B2095" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationTextBlock_2EA2181AEA9270CE9E368095E88B2095" xlink:to="lab_us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationTextBlock_2EA2181AEA9270CE9E368095E88B2095" xlink:type="arc" />
    <link:label id="lab_us-gaap_SubsequentEventsAbstract_F8B242365E3E9E502A0B8095E64FCF8D_label_en-US" xlink:label="lab_us-gaap_SubsequentEventsAbstract_F8B242365E3E9E502A0B8095E64FCF8D" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Subsequent Events [Abstract]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_SubsequentEventsAbstract" xlink:label="loc_us-gaap_SubsequentEventsAbstract_F8B242365E3E9E502A0B8095E64FCF8D" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_SubsequentEventsAbstract_F8B242365E3E9E502A0B8095E64FCF8D" xlink:to="lab_us-gaap_SubsequentEventsAbstract_F8B242365E3E9E502A0B8095E64FCF8D" xlink:type="arc" />
    <link:label id="lab_us-gaap_SubsequentEventTable_31911A55B8BB0F3C0CA78095E64FDAE9_terseLabel_en-US" xlink:label="lab_us-gaap_SubsequentEventTable_31911A55B8BB0F3C0CA78095E64FDAE9" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Subsequent Event [Table]</link:label>
    <link:label id="lab_us-gaap_SubsequentEventTable_31911A55B8BB0F3C0CA78095E64FDAE9_label_en-US" xlink:label="lab_us-gaap_SubsequentEventTable_31911A55B8BB0F3C0CA78095E64FDAE9" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Subsequent Event [Table]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_SubsequentEventTable" xlink:label="loc_us-gaap_SubsequentEventTable_31911A55B8BB0F3C0CA78095E64FDAE9" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_SubsequentEventTable_31911A55B8BB0F3C0CA78095E64FDAE9" xlink:to="lab_us-gaap_SubsequentEventTable_31911A55B8BB0F3C0CA78095E64FDAE9" xlink:type="arc" />
    <link:label id="lab_us-gaap_SubsequentEventTypeAxis_2616C9DB402BEEDB0E648095E64FA090_terseLabel_en-US" xlink:label="lab_us-gaap_SubsequentEventTypeAxis_2616C9DB402BEEDB0E648095E64FA090" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Subsequent Event Type [Axis]</link:label>
    <link:label id="lab_us-gaap_SubsequentEventTypeAxis_2616C9DB402BEEDB0E648095E64FA090_label_en-US" xlink:label="lab_us-gaap_SubsequentEventTypeAxis_2616C9DB402BEEDB0E648095E64FA090" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Subsequent Event Type [Axis]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_SubsequentEventTypeAxis" xlink:label="loc_us-gaap_SubsequentEventTypeAxis_2616C9DB402BEEDB0E648095E64FA090" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_SubsequentEventTypeAxis_2616C9DB402BEEDB0E648095E64FA090" xlink:to="lab_us-gaap_SubsequentEventTypeAxis_2616C9DB402BEEDB0E648095E64FA090" xlink:type="arc" />
    <link:label id="lab_us-gaap_SubsequentEventTypeDomain_EB2C0136D44A3BC1B1C08095E64F152B_terseLabel_en-US" xlink:label="lab_us-gaap_SubsequentEventTypeDomain_EB2C0136D44A3BC1B1C08095E64F152B" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Subsequent Event Type [Domain]</link:label>
    <link:label id="lab_us-gaap_SubsequentEventTypeDomain_EB2C0136D44A3BC1B1C08095E64F152B_label_en-US" xlink:label="lab_us-gaap_SubsequentEventTypeDomain_EB2C0136D44A3BC1B1C08095E64F152B" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Subsequent Event Type [Domain]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_SubsequentEventTypeDomain" xlink:label="loc_us-gaap_SubsequentEventTypeDomain_EB2C0136D44A3BC1B1C08095E64F152B" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_SubsequentEventTypeDomain_EB2C0136D44A3BC1B1C08095E64F152B" xlink:to="lab_us-gaap_SubsequentEventTypeDomain_EB2C0136D44A3BC1B1C08095E64F152B" xlink:type="arc" />
    <link:label id="lab_us-gaap_SubsequentEventMember_90E69BD2CD5B901A98058095E64F4A02_terseLabel_en-US" xlink:label="lab_us-gaap_SubsequentEventMember_90E69BD2CD5B901A98058095E64F4A02" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Subsequent Event [Member]</link:label>
    <link:label id="lab_us-gaap_SubsequentEventMember_90E69BD2CD5B901A98058095E64F4A02_label_en-US" xlink:label="lab_us-gaap_SubsequentEventMember_90E69BD2CD5B901A98058095E64F4A02" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Subsequent Event [Member]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_SubsequentEventMember" xlink:label="loc_us-gaap_SubsequentEventMember_90E69BD2CD5B901A98058095E64F4A02" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_SubsequentEventMember_90E69BD2CD5B901A98058095E64F4A02" xlink:to="lab_us-gaap_SubsequentEventMember_90E69BD2CD5B901A98058095E64F4A02" xlink:type="arc" />
    <link:label id="lab_us-gaap_SubsequentEventLineItems_5408A831191F359D168A8095E64F70AC_terseLabel_en-US" xlink:label="lab_us-gaap_SubsequentEventLineItems_5408A831191F359D168A8095E64F70AC" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Subsequent Event [Line Items]</link:label>
    <link:label id="lab_us-gaap_SubsequentEventLineItems_5408A831191F359D168A8095E64F70AC_label_en-US" xlink:label="lab_us-gaap_SubsequentEventLineItems_5408A831191F359D168A8095E64F70AC" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Subsequent Event [Line Items]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_SubsequentEventLineItems" xlink:label="loc_us-gaap_SubsequentEventLineItems_5408A831191F359D168A8095E64F70AC" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_SubsequentEventLineItems_5408A831191F359D168A8095E64F70AC" xlink:to="lab_us-gaap_SubsequentEventLineItems_5408A831191F359D168A8095E64F70AC" xlink:type="arc" />
    <link:label id="lab_us-gaap_DividendsPayableAmountPerShare_717D10A735048D17D5A58095E64F2747_terseLabel_en-US" xlink:label="lab_us-gaap_DividendsPayableAmountPerShare_717D10A735048D17D5A58095E64F2747" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Dividends Payable, Amount Per Share</link:label>
    <link:label id="lab_us-gaap_DividendsPayableAmountPerShare_717D10A735048D17D5A58095E64F2747_label_en-US" xlink:label="lab_us-gaap_DividendsPayableAmountPerShare_717D10A735048D17D5A58095E64F2747" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Dividends Payable, Amount Per Share</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_DividendsPayableAmountPerShare" xlink:label="loc_us-gaap_DividendsPayableAmountPerShare_717D10A735048D17D5A58095E64F2747" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DividendsPayableAmountPerShare_717D10A735048D17D5A58095E64F2747" xlink:to="lab_us-gaap_DividendsPayableAmountPerShare_717D10A735048D17D5A58095E64F2747" xlink:type="arc" />
    <link:label id="lab_us-gaap_DividendsPayableDateDeclaredDayMonthAndYear_E633E271D39930726C0E8095E64F8A46_terseLabel_en-US" xlink:label="lab_us-gaap_DividendsPayableDateDeclaredDayMonthAndYear_E633E271D39930726C0E8095E64F8A46" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Dividends Payable, Date Declared</link:label>
    <link:label id="lab_us-gaap_DividendsPayableDateDeclaredDayMonthAndYear_E633E271D39930726C0E8095E64F8A46_label_en-US" xlink:label="lab_us-gaap_DividendsPayableDateDeclaredDayMonthAndYear_E633E271D39930726C0E8095E64F8A46" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Dividends Payable, Date Declared</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_DividendsPayableDateDeclaredDayMonthAndYear" xlink:label="loc_us-gaap_DividendsPayableDateDeclaredDayMonthAndYear_E633E271D39930726C0E8095E64F8A46" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DividendsPayableDateDeclaredDayMonthAndYear_E633E271D39930726C0E8095E64F8A46" xlink:to="lab_us-gaap_DividendsPayableDateDeclaredDayMonthAndYear_E633E271D39930726C0E8095E64F8A46" xlink:type="arc" />
    <link:label id="lab_us-gaap_DividendsPayableDateOfRecordDayMonthAndYear_9D40564AAFCF11F0E26C8095E64FB897_terseLabel_en-US" xlink:label="lab_us-gaap_DividendsPayableDateOfRecordDayMonthAndYear_9D40564AAFCF11F0E26C8095E64FB897" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Dividends Payable, Date of Record</link:label>
    <link:label id="lab_us-gaap_DividendsPayableDateOfRecordDayMonthAndYear_9D40564AAFCF11F0E26C8095E64FB897_label_en-US" xlink:label="lab_us-gaap_DividendsPayableDateOfRecordDayMonthAndYear_9D40564AAFCF11F0E26C8095E64FB897" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Dividends Payable, Date of Record</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_DividendsPayableDateOfRecordDayMonthAndYear" xlink:label="loc_us-gaap_DividendsPayableDateOfRecordDayMonthAndYear_9D40564AAFCF11F0E26C8095E64FB897" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DividendsPayableDateOfRecordDayMonthAndYear_9D40564AAFCF11F0E26C8095E64FB897" xlink:to="lab_us-gaap_DividendsPayableDateOfRecordDayMonthAndYear_9D40564AAFCF11F0E26C8095E64FB897" xlink:type="arc" />
    <link:label id="lab_us-gaap_SegmentReportingAbstract_4BF1D3A13B2B563EAD268095E74CD33A_label_en-US" xlink:label="lab_us-gaap_SegmentReportingAbstract_4BF1D3A13B2B563EAD268095E74CD33A" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Segment Reporting [Abstract]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_SegmentReportingAbstract" xlink:label="loc_us-gaap_SegmentReportingAbstract_4BF1D3A13B2B563EAD268095E74CD33A" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_SegmentReportingAbstract_4BF1D3A13B2B563EAD268095E74CD33A" xlink:to="lab_us-gaap_SegmentReportingAbstract_4BF1D3A13B2B563EAD268095E74CD33A" xlink:type="arc" />
    <link:label id="lab_us-gaap_ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsTable_B364DCB34451C3B174A88095E74C80AB_terseLabel_en-US" xlink:label="lab_us-gaap_ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsTable_B364DCB34451C3B174A88095E74C80AB" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Schedule of Revenues from External Customers and Long-Lived Assets [Table]</link:label>
    <link:label id="lab_us-gaap_ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsTable_B364DCB34451C3B174A88095E74C80AB_label_en-US" xlink:label="lab_us-gaap_ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsTable_B364DCB34451C3B174A88095E74C80AB" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Schedule of Revenues from External Customers and Long-Lived Assets [Table]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsTable" xlink:label="loc_us-gaap_ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsTable_B364DCB34451C3B174A88095E74C80AB" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsTable_B364DCB34451C3B174A88095E74C80AB" xlink:to="lab_us-gaap_ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsTable_B364DCB34451C3B174A88095E74C80AB" xlink:type="arc" />
    <link:label id="lab_country_US_314E2FE1760152F960F88095E74C9981_terseLabel_en-US" xlink:label="lab_country_US_314E2FE1760152F960F88095E74C9981" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">United States [Member]</link:label>
    <link:label id="lab_country_US_314E2FE1760152F960F88095E74C9981_label_en-US" xlink:label="lab_country_US_314E2FE1760152F960F88095E74C9981" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">UNITED STATES</link:label>
    <link:loc xlink:href="http://xbrl.sec.gov/country/2017/country-2017-01-31.xsd#country_US" xlink:label="loc_country_US_314E2FE1760152F960F88095E74C9981" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_country_US_314E2FE1760152F960F88095E74C9981" xlink:to="lab_country_US_314E2FE1760152F960F88095E74C9981" xlink:type="arc" />
    <link:label id="lab_srt_EuropeMember_692AD9B57C373842C6488095E74C875F_verboseLabel_en-US" xlink:label="lab_srt_EuropeMember_692AD9B57C373842C6488095E74C875F" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xml:lang="en-US">Europe [Member]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2018/elts/srt-2018-01-31.xsd#srt_EuropeMember" xlink:label="loc_srt_EuropeMember_692AD9B57C373842C6488095E74C875F" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_srt_EuropeMember_692AD9B57C373842C6488095E74C875F" xlink:to="lab_srt_EuropeMember_692AD9B57C373842C6488095E74C875F" xlink:type="arc" />
    <link:label id="lab_cgnx_GreaterChinaMember_ED497E6A5DBD8159EA1A8095E74D6AEE_verboseLabel_en-US" xlink:label="lab_cgnx_GreaterChinaMember_ED497E6A5DBD8159EA1A8095E74D6AEE" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xml:lang="en-US">Greater China [Member]</link:label>
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_GreaterChinaMember" xlink:label="loc_cgnx_GreaterChinaMember_ED497E6A5DBD8159EA1A8095E74D6AEE" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_GreaterChinaMember_ED497E6A5DBD8159EA1A8095E74D6AEE" xlink:to="lab_cgnx_GreaterChinaMember_ED497E6A5DBD8159EA1A8095E74D6AEE" xlink:type="arc" />
    <link:label id="lab_cgnx_OtherGeographicAreaMember_52CA8A980196ED6B7A068095E74D90A1_terseLabel_en-US" xlink:label="lab_cgnx_OtherGeographicAreaMember_52CA8A980196ED6B7A068095E74D90A1" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Other [Member]</link:label>
    <link:label id="lab_cgnx_OtherGeographicAreaMember_52CA8A980196ED6B7A068095E74D90A1_label_en-US" xlink:label="lab_cgnx_OtherGeographicAreaMember_52CA8A980196ED6B7A068095E74D90A1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Other Geographic Area [Member]</link:label>
    <link:label id="lab_cgnx_OtherGeographicAreaMember_52CA8A980196ED6B7A068095E74D90A1_documentation_en-US" xlink:label="lab_cgnx_OtherGeographicAreaMember_52CA8A980196ED6B7A068095E74D90A1" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Other Geographic Area [Member]</link:label>
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_OtherGeographicAreaMember" xlink:label="loc_cgnx_OtherGeographicAreaMember_52CA8A980196ED6B7A068095E74D90A1" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_OtherGeographicAreaMember_52CA8A980196ED6B7A068095E74D90A1" xlink:to="lab_cgnx_OtherGeographicAreaMember_52CA8A980196ED6B7A068095E74D90A1" xlink:type="arc" />
    <link:label id="lab_us-gaap_RevenuesFromExternalCustomersAndLongLivedAssetsLineItems_F97AED55B3C4B0BF9DF18095E74D792B_terseLabel_en-US" xlink:label="lab_us-gaap_RevenuesFromExternalCustomersAndLongLivedAssetsLineItems_F97AED55B3C4B0BF9DF18095E74D792B" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Revenues from External Customers and Long-Lived Assets [Line Items]</link:label>
    <link:label id="lab_us-gaap_RevenuesFromExternalCustomersAndLongLivedAssetsLineItems_F97AED55B3C4B0BF9DF18095E74D792B_label_en-US" xlink:label="lab_us-gaap_RevenuesFromExternalCustomersAndLongLivedAssetsLineItems_F97AED55B3C4B0BF9DF18095E74D792B" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Revenues from External Customers and Long-Lived Assets [Line Items]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_RevenuesFromExternalCustomersAndLongLivedAssetsLineItems" xlink:label="loc_us-gaap_RevenuesFromExternalCustomersAndLongLivedAssetsLineItems_F97AED55B3C4B0BF9DF18095E74D792B" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_RevenuesFromExternalCustomersAndLongLivedAssetsLineItems_F97AED55B3C4B0BF9DF18095E74D792B" xlink:to="lab_us-gaap_RevenuesFromExternalCustomersAndLongLivedAssetsLineItems_F97AED55B3C4B0BF9DF18095E74D792B" xlink:type="arc" />
    <link:label id="lab_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax_09295F363311928C88BF8095E74D00D6_verboseLabel_en-US" xlink:label="lab_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax_09295F363311928C88BF8095E74D00D6" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xml:lang="en-US">Revenue</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax" xlink:label="loc_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax_09295F363311928C88BF8095E74D00D6" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax_09295F363311928C88BF8095E74D00D6" xlink:to="lab_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax_09295F363311928C88BF8095E74D00D6" xlink:type="arc" />
    <link:label id="lab_us-gaap_NoncurrentAssets_AA7ABAEDEE353AB02C4D8095E74DD51C_terseLabel_en-US" xlink:label="lab_us-gaap_NoncurrentAssets_AA7ABAEDEE353AB02C4D8095E74DD51C" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Long-lived assets</link:label>
    <link:label id="lab_us-gaap_NoncurrentAssets_AA7ABAEDEE353AB02C4D8095E74DD51C_label_en-US" xlink:label="lab_us-gaap_NoncurrentAssets_AA7ABAEDEE353AB02C4D8095E74DD51C" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Long-Lived Assets</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_NoncurrentAssets" xlink:label="loc_us-gaap_NoncurrentAssets_AA7ABAEDEE353AB02C4D8095E74DD51C" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_NoncurrentAssets_AA7ABAEDEE353AB02C4D8095E74DD51C" xlink:to="lab_us-gaap_NoncurrentAssets_AA7ABAEDEE353AB02C4D8095E74DD51C" xlink:type="arc" />
    <link:label id="lab_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths_624D9F0FCD010B7084C2F4010F332286_terseLabel_en-US" xlink:label="lab_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths_624D9F0FCD010B7084C2F4010F332286" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">2020</link:label>
    <link:label id="lab_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths_624D9F0FCD010B7084C2F4010F332286_label_en-US" xlink:label="lab_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths_624D9F0FCD010B7084C2F4010F332286" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Lessee, Operating Lease, Liability, Payments, Due Next Twelve Months</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths" xlink:label="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths_624D9F0FCD010B7084C2F4010F332286" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths_624D9F0FCD010B7084C2F4010F332286" xlink:to="lab_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths_624D9F0FCD010B7084C2F4010F332286" xlink:type="arc" />
    <link:label id="lab_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo_1250C887A372DBA9DCDFF401BDF0D3FC_terseLabel_en-US" xlink:label="lab_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo_1250C887A372DBA9DCDFF401BDF0D3FC" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">2021</link:label>
    <link:label id="lab_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo_1250C887A372DBA9DCDFF401BDF0D3FC_label_en-US" xlink:label="lab_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo_1250C887A372DBA9DCDFF401BDF0D3FC" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Lessee, Operating Lease, Liability, Payments, Due Year Two</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo" xlink:label="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo_1250C887A372DBA9DCDFF401BDF0D3FC" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo_1250C887A372DBA9DCDFF401BDF0D3FC" xlink:to="lab_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo_1250C887A372DBA9DCDFF401BDF0D3FC" xlink:type="arc" />
    <link:label id="lab_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree_C1D65E9A9C8109CEE942F401BDFA2EEE_terseLabel_en-US" xlink:label="lab_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree_C1D65E9A9C8109CEE942F401BDFA2EEE" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">2022</link:label>
    <link:label id="lab_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree_C1D65E9A9C8109CEE942F401BDFA2EEE_label_en-US" xlink:label="lab_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree_C1D65E9A9C8109CEE942F401BDFA2EEE" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Lessee, Operating Lease, Liability, Payments, Due Year Three</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree" xlink:label="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree_C1D65E9A9C8109CEE942F401BDFA2EEE" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree_C1D65E9A9C8109CEE942F401BDFA2EEE" xlink:to="lab_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree_C1D65E9A9C8109CEE942F401BDFA2EEE" xlink:type="arc" />
    <link:label id="lab_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour_D1DF09E1B0351DF04F88F401BE002AC6_terseLabel_en-US" xlink:label="lab_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour_D1DF09E1B0351DF04F88F401BE002AC6" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">2023</link:label>
    <link:label id="lab_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour_D1DF09E1B0351DF04F88F401BE002AC6_label_en-US" xlink:label="lab_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour_D1DF09E1B0351DF04F88F401BE002AC6" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Lessee, Operating Lease, Liability, Payments, Due Year Four</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour" xlink:label="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour_D1DF09E1B0351DF04F88F401BE002AC6" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour_D1DF09E1B0351DF04F88F401BE002AC6" xlink:to="lab_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour_D1DF09E1B0351DF04F88F401BE002AC6" xlink:type="arc" />
    <link:label id="lab_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFive_D80603886E1B8A395E51F401BE0675E0_terseLabel_en-US" xlink:label="lab_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFive_D80603886E1B8A395E51F401BE0675E0" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">2024</link:label>
    <link:label id="lab_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFive_D80603886E1B8A395E51F401BE0675E0_label_en-US" xlink:label="lab_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFive_D80603886E1B8A395E51F401BE0675E0" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Lessee, Operating Lease, Liability, Payments, Due Year Five</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFive" xlink:label="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFive_D80603886E1B8A395E51F401BE0675E0" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFive_D80603886E1B8A395E51F401BE0675E0" xlink:to="lab_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFive_D80603886E1B8A395E51F401BE0675E0" xlink:type="arc" />
    <link:label id="lab_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive_CD161DCDE8140D889FDCF401BE0D9798_terseLabel_en-US" xlink:label="lab_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive_CD161DCDE8140D889FDCF401BE0D9798" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Thereafter</link:label>
    <link:label id="lab_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive_CD161DCDE8140D889FDCF401BE0D9798_label_en-US" xlink:label="lab_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive_CD161DCDE8140D889FDCF401BE0D9798" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Lessee, Operating Lease, Liability, Payments, Due after Year Five</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive" xlink:label="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive_CD161DCDE8140D889FDCF401BE0D9798" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive_CD161DCDE8140D889FDCF401BE0D9798" xlink:to="lab_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive_CD161DCDE8140D889FDCF401BE0D9798" xlink:type="arc" />
    <link:label id="lab_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue_1F00AC948EB83C2820C5F401BE1422E0_totalLabel_en-US" xlink:label="lab_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue_1F00AC948EB83C2820C5F401BE1422E0" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xml:lang="en-US">Total</link:label>
    <link:label id="lab_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue_1F00AC948EB83C2820C5F401BE1422E0_label_en-US" xlink:label="lab_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue_1F00AC948EB83C2820C5F401BE1422E0" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Lessee, Operating Lease, Liability, Payments, Due</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue" xlink:label="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue_1F00AC948EB83C2820C5F401BE1422E0" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue_1F00AC948EB83C2820C5F401BE1422E0" xlink:to="lab_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue_1F00AC948EB83C2820C5F401BE1422E0" xlink:type="arc" />
    <link:label id="lab_us-gaap_GuaranteesAbstract_334F558F11C5BF93201035BFC901C089_label_en-US" xlink:label="lab_us-gaap_GuaranteesAbstract_334F558F11C5BF93201035BFC901C089" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Guarantees [Abstract]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_GuaranteesAbstract" xlink:label="loc_us-gaap_GuaranteesAbstract_334F558F11C5BF93201035BFC901C089" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_GuaranteesAbstract_334F558F11C5BF93201035BFC901C089" xlink:to="lab_us-gaap_GuaranteesAbstract_334F558F11C5BF93201035BFC901C089" xlink:type="arc" />
    <link:label id="lab_us-gaap_LossContingenciesTable_AB0279D1DDE1ACD94E5F35BFC901600B_terseLabel_en-US" xlink:label="lab_us-gaap_LossContingenciesTable_AB0279D1DDE1ACD94E5F35BFC901600B" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Loss Contingencies [Table]</link:label>
    <link:label id="lab_us-gaap_LossContingenciesTable_AB0279D1DDE1ACD94E5F35BFC901600B_label_en-US" xlink:label="lab_us-gaap_LossContingenciesTable_AB0279D1DDE1ACD94E5F35BFC901600B" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Loss Contingencies [Table]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_LossContingenciesTable" xlink:label="loc_us-gaap_LossContingenciesTable_AB0279D1DDE1ACD94E5F35BFC901600B" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_LossContingenciesTable_AB0279D1DDE1ACD94E5F35BFC901600B" xlink:to="lab_us-gaap_LossContingenciesTable_AB0279D1DDE1ACD94E5F35BFC901600B" xlink:type="arc" />
    <link:label id="lab_us-gaap_DisposalGroupClassificationAxis_00BDDD4C5667C7A5820335BFC90117BB_terseLabel_en-US" xlink:label="lab_us-gaap_DisposalGroupClassificationAxis_00BDDD4C5667C7A5820335BFC90117BB" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Disposal Group Classification [Axis]</link:label>
    <link:label id="lab_us-gaap_DisposalGroupClassificationAxis_00BDDD4C5667C7A5820335BFC90117BB_label_en-US" xlink:label="lab_us-gaap_DisposalGroupClassificationAxis_00BDDD4C5667C7A5820335BFC90117BB" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Disposal Group Classification [Axis]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_DisposalGroupClassificationAxis" xlink:label="loc_us-gaap_DisposalGroupClassificationAxis_00BDDD4C5667C7A5820335BFC90117BB" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DisposalGroupClassificationAxis_00BDDD4C5667C7A5820335BFC90117BB" xlink:to="lab_us-gaap_DisposalGroupClassificationAxis_00BDDD4C5667C7A5820335BFC90117BB" xlink:type="arc" />
    <link:label id="lab_us-gaap_DisposalGroupClassificationDomain_83E9F3B100FC3412E97435BFC90271CA_terseLabel_en-US" xlink:label="lab_us-gaap_DisposalGroupClassificationDomain_83E9F3B100FC3412E97435BFC90271CA" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Disposal Group Classification [Domain]</link:label>
    <link:label id="lab_us-gaap_DisposalGroupClassificationDomain_83E9F3B100FC3412E97435BFC90271CA_label_en-US" xlink:label="lab_us-gaap_DisposalGroupClassificationDomain_83E9F3B100FC3412E97435BFC90271CA" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Disposal Group Classification [Domain]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_DisposalGroupClassificationDomain" xlink:label="loc_us-gaap_DisposalGroupClassificationDomain_83E9F3B100FC3412E97435BFC90271CA" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DisposalGroupClassificationDomain_83E9F3B100FC3412E97435BFC90271CA" xlink:to="lab_us-gaap_DisposalGroupClassificationDomain_83E9F3B100FC3412E97435BFC90271CA" xlink:type="arc" />
    <link:label id="lab_srt_LitigationCaseAxis_6E731AA46229A1E9BFC435BFC902666D_terseLabel_en-US" xlink:label="lab_srt_LitigationCaseAxis_6E731AA46229A1E9BFC435BFC902666D" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Litigation Case [Axis]</link:label>
    <link:label id="lab_srt_LitigationCaseAxis_6E731AA46229A1E9BFC435BFC902666D_label_en-US" xlink:label="lab_srt_LitigationCaseAxis_6E731AA46229A1E9BFC435BFC902666D" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Litigation Case [Axis]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2018/elts/srt-2018-01-31.xsd#srt_LitigationCaseAxis" xlink:label="loc_srt_LitigationCaseAxis_6E731AA46229A1E9BFC435BFC902666D" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_srt_LitigationCaseAxis_6E731AA46229A1E9BFC435BFC902666D" xlink:to="lab_srt_LitigationCaseAxis_6E731AA46229A1E9BFC435BFC902666D" xlink:type="arc" />
    <link:label id="lab_srt_LitigationCaseTypeDomain_0273003BE49B29493CA835BFC902626A_terseLabel_en-US" xlink:label="lab_srt_LitigationCaseTypeDomain_0273003BE49B29493CA835BFC902626A" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Litigation Case [Domain]</link:label>
    <link:label id="lab_srt_LitigationCaseTypeDomain_0273003BE49B29493CA835BFC902626A_label_en-US" xlink:label="lab_srt_LitigationCaseTypeDomain_0273003BE49B29493CA835BFC902626A" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Litigation Case [Domain]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2018/elts/srt-2018-01-31.xsd#srt_LitigationCaseTypeDomain" xlink:label="loc_srt_LitigationCaseTypeDomain_0273003BE49B29493CA835BFC902626A" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_srt_LitigationCaseTypeDomain_0273003BE49B29493CA835BFC902626A" xlink:to="lab_srt_LitigationCaseTypeDomain_0273003BE49B29493CA835BFC902626A" xlink:type="arc" />
    <link:label id="lab_us-gaap_LitigationStatusAxis_800EDB91A740909D813635BFC9035F35_terseLabel_en-US" xlink:label="lab_us-gaap_LitigationStatusAxis_800EDB91A740909D813635BFC9035F35" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Litigation Status [Axis]</link:label>
    <link:label id="lab_us-gaap_LitigationStatusAxis_800EDB91A740909D813635BFC9035F35_label_en-US" xlink:label="lab_us-gaap_LitigationStatusAxis_800EDB91A740909D813635BFC9035F35" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Litigation Status [Axis]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_LitigationStatusAxis" xlink:label="loc_us-gaap_LitigationStatusAxis_800EDB91A740909D813635BFC9035F35" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_LitigationStatusAxis_800EDB91A740909D813635BFC9035F35" xlink:to="lab_us-gaap_LitigationStatusAxis_800EDB91A740909D813635BFC9035F35" xlink:type="arc" />
    <link:label id="lab_us-gaap_LitigationStatusDomain_9C9793E209286BF89AE835BFC903C9BA_terseLabel_en-US" xlink:label="lab_us-gaap_LitigationStatusDomain_9C9793E209286BF89AE835BFC903C9BA" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Litigation Status [Domain]</link:label>
    <link:label id="lab_us-gaap_LitigationStatusDomain_9C9793E209286BF89AE835BFC903C9BA_label_en-US" xlink:label="lab_us-gaap_LitigationStatusDomain_9C9793E209286BF89AE835BFC903C9BA" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Litigation Status [Domain]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_LitigationStatusDomain" xlink:label="loc_us-gaap_LitigationStatusDomain_9C9793E209286BF89AE835BFC903C9BA" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_LitigationStatusDomain_9C9793E209286BF89AE835BFC903C9BA" xlink:to="lab_us-gaap_LitigationStatusDomain_9C9793E209286BF89AE835BFC903C9BA" xlink:type="arc" />
    <link:label id="lab_us-gaap_LossContingenciesByNatureOfContingencyAxis_65CFE90675C84200C6C735BFC9047089_terseLabel_en-US" xlink:label="lab_us-gaap_LossContingenciesByNatureOfContingencyAxis_65CFE90675C84200C6C735BFC9047089" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Loss Contingency Nature [Axis]</link:label>
    <link:label id="lab_us-gaap_LossContingenciesByNatureOfContingencyAxis_65CFE90675C84200C6C735BFC9047089_label_en-US" xlink:label="lab_us-gaap_LossContingenciesByNatureOfContingencyAxis_65CFE90675C84200C6C735BFC9047089" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Loss Contingency Nature [Axis]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_LossContingenciesByNatureOfContingencyAxis" xlink:label="loc_us-gaap_LossContingenciesByNatureOfContingencyAxis_65CFE90675C84200C6C735BFC9047089" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_LossContingenciesByNatureOfContingencyAxis_65CFE90675C84200C6C735BFC9047089" xlink:to="lab_us-gaap_LossContingenciesByNatureOfContingencyAxis_65CFE90675C84200C6C735BFC9047089" xlink:type="arc" />
    <link:label id="lab_us-gaap_LossContingencyNatureDomain_E208D362A51E9188B22735BFC904404F_terseLabel_en-US" xlink:label="lab_us-gaap_LossContingencyNatureDomain_E208D362A51E9188B22735BFC904404F" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Loss Contingency, Nature [Domain]</link:label>
    <link:label id="lab_us-gaap_LossContingencyNatureDomain_E208D362A51E9188B22735BFC904404F_label_en-US" xlink:label="lab_us-gaap_LossContingencyNatureDomain_E208D362A51E9188B22735BFC904404F" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Loss Contingency, Nature [Domain]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_LossContingencyNatureDomain" xlink:label="loc_us-gaap_LossContingencyNatureDomain_E208D362A51E9188B22735BFC904404F" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_LossContingencyNatureDomain_E208D362A51E9188B22735BFC904404F" xlink:to="lab_us-gaap_LossContingencyNatureDomain_E208D362A51E9188B22735BFC904404F" xlink:type="arc" />
    <link:label id="lab_us-gaap_GuaranteeObligationsMember_36CA1DECB65F9A4D606535BFC9043117_terseLabel_en-US" xlink:label="lab_us-gaap_GuaranteeObligationsMember_36CA1DECB65F9A4D606535BFC9043117" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Guarantee Obligations [Member]</link:label>
    <link:label id="lab_us-gaap_GuaranteeObligationsMember_36CA1DECB65F9A4D606535BFC9043117_label_en-US" xlink:label="lab_us-gaap_GuaranteeObligationsMember_36CA1DECB65F9A4D606535BFC9043117" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Guarantee Obligations [Member]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_GuaranteeObligationsMember" xlink:label="loc_us-gaap_GuaranteeObligationsMember_36CA1DECB65F9A4D606535BFC9043117" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_GuaranteeObligationsMember_36CA1DECB65F9A4D606535BFC9043117" xlink:to="lab_us-gaap_GuaranteeObligationsMember_36CA1DECB65F9A4D606535BFC9043117" xlink:type="arc" />
    <link:label id="lab_us-gaap_LossContingenciesLineItems_4435AE4CC1E2CFD58C3835BFC90557EB_terseLabel_en-US" xlink:label="lab_us-gaap_LossContingenciesLineItems_4435AE4CC1E2CFD58C3835BFC90557EB" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Loss Contingencies [Line Items]</link:label>
    <link:label id="lab_us-gaap_LossContingenciesLineItems_4435AE4CC1E2CFD58C3835BFC90557EB_label_en-US" xlink:label="lab_us-gaap_LossContingenciesLineItems_4435AE4CC1E2CFD58C3835BFC90557EB" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Loss Contingencies [Line Items]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_LossContingenciesLineItems" xlink:label="loc_us-gaap_LossContingenciesLineItems_4435AE4CC1E2CFD58C3835BFC90557EB" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_LossContingenciesLineItems_4435AE4CC1E2CFD58C3835BFC90557EB" xlink:to="lab_us-gaap_LossContingenciesLineItems_4435AE4CC1E2CFD58C3835BFC90557EB" xlink:type="arc" />
    <link:label id="lab_us-gaap_CommitmentsAndContingenciesDisclosureAbstract_01AF60CD364E5162010835BF86658726_label_en-US" xlink:label="lab_us-gaap_CommitmentsAndContingenciesDisclosureAbstract_01AF60CD364E5162010835BF86658726" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Commitments and Contingencies Disclosure [Abstract]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_CommitmentsAndContingenciesDisclosureAbstract" xlink:label="loc_us-gaap_CommitmentsAndContingenciesDisclosureAbstract_01AF60CD364E5162010835BF86658726" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_CommitmentsAndContingenciesDisclosureAbstract_01AF60CD364E5162010835BF86658726" xlink:to="lab_us-gaap_CommitmentsAndContingenciesDisclosureAbstract_01AF60CD364E5162010835BF86658726" xlink:type="arc" />
    <link:label id="lab_us-gaap_PurchaseCommitmentRemainingMinimumAmountCommitted_AC784B58F6429A50706C35BF8665E8B5_terseLabel_en-US" xlink:label="lab_us-gaap_PurchaseCommitmentRemainingMinimumAmountCommitted_AC784B58F6429A50706C35BF8665E8B5" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Purchase order outstanding</link:label>
    <link:label id="lab_us-gaap_PurchaseCommitmentRemainingMinimumAmountCommitted_AC784B58F6429A50706C35BF8665E8B5_label_en-US" xlink:label="lab_us-gaap_PurchaseCommitmentRemainingMinimumAmountCommitted_AC784B58F6429A50706C35BF8665E8B5" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Purchase Commitment, Remaining Minimum Amount Committed</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_PurchaseCommitmentRemainingMinimumAmountCommitted" xlink:label="loc_us-gaap_PurchaseCommitmentRemainingMinimumAmountCommitted_AC784B58F6429A50706C35BF8665E8B5" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_PurchaseCommitmentRemainingMinimumAmountCommitted_AC784B58F6429A50706C35BF8665E8B5" xlink:to="lab_us-gaap_PurchaseCommitmentRemainingMinimumAmountCommitted_AC784B58F6429A50706C35BF8665E8B5" xlink:type="arc" />
    <link:label id="lab_us-gaap_DerivativeFairValueOfDerivativeAsset_F16BF397D837C9B096F78095E590ED07_terseLabel_en-US" xlink:label="lab_us-gaap_DerivativeFairValueOfDerivativeAsset_F16BF397D837C9B096F78095E590ED07" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Derivative Asset, Fair Value, Gross Asset</link:label>
    <link:label id="lab_us-gaap_DerivativeFairValueOfDerivativeAsset_F16BF397D837C9B096F78095E590ED07_label_en-US" xlink:label="lab_us-gaap_DerivativeFairValueOfDerivativeAsset_F16BF397D837C9B096F78095E590ED07" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Derivative Asset, Fair Value, Gross Asset</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_DerivativeFairValueOfDerivativeAsset" xlink:label="loc_us-gaap_DerivativeFairValueOfDerivativeAsset_F16BF397D837C9B096F78095E590ED07" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DerivativeFairValueOfDerivativeAsset_F16BF397D837C9B096F78095E590ED07" xlink:to="lab_us-gaap_DerivativeFairValueOfDerivativeAsset_F16BF397D837C9B096F78095E590ED07" xlink:type="arc" />
    <link:label id="lab_us-gaap_DerivativeAssetCollateralObligationToReturnCashOffset_115FABD713989C882DFC8095E590A720_negatedTerseLabel_en-US" xlink:label="lab_us-gaap_DerivativeAssetCollateralObligationToReturnCashOffset_115FABD713989C882DFC8095E590A720" xlink:role="http://www.xbrl.org/2009/role/negatedTerseLabel" xlink:type="resource" xml:lang="en-US">Derivative Asset gross amount offset</link:label>
    <link:label id="lab_us-gaap_DerivativeAssetCollateralObligationToReturnCashOffset_115FABD713989C882DFC8095E590A720_label_en-US" xlink:label="lab_us-gaap_DerivativeAssetCollateralObligationToReturnCashOffset_115FABD713989C882DFC8095E590A720" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Derivative Asset, Collateral, Obligation to Return Cash, Offset</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_DerivativeAssetCollateralObligationToReturnCashOffset" xlink:label="loc_us-gaap_DerivativeAssetCollateralObligationToReturnCashOffset_115FABD713989C882DFC8095E590A720" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DerivativeAssetCollateralObligationToReturnCashOffset_115FABD713989C882DFC8095E590A720" xlink:to="lab_us-gaap_DerivativeAssetCollateralObligationToReturnCashOffset_115FABD713989C882DFC8095E590A720" xlink:type="arc" />
    <link:label id="lab_us-gaap_DerivativeAssets_804EC6F63C32AD5B733E8095E59002E5_totalLabel_en-US" xlink:label="lab_us-gaap_DerivativeAssets_804EC6F63C32AD5B733E8095E59002E5" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xml:lang="en-US">Net amount of assets presented</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_DerivativeAssets" xlink:label="loc_us-gaap_DerivativeAssets_804EC6F63C32AD5B733E8095E59002E5" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DerivativeAssets_804EC6F63C32AD5B733E8095E59002E5" xlink:to="lab_us-gaap_DerivativeAssets_804EC6F63C32AD5B733E8095E59002E5" xlink:type="arc" />
    <link:label id="lab_us-gaap_DerivativeFairValueOfDerivativeLiability_873657C6FF33B92BF08B8095E59087C3_terseLabel_en-US" xlink:label="lab_us-gaap_DerivativeFairValueOfDerivativeLiability_873657C6FF33B92BF08B8095E59087C3" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Derivative Liability, Fair Value, Gross Liability</link:label>
    <link:label id="lab_us-gaap_DerivativeFairValueOfDerivativeLiability_873657C6FF33B92BF08B8095E59087C3_label_en-US" xlink:label="lab_us-gaap_DerivativeFairValueOfDerivativeLiability_873657C6FF33B92BF08B8095E59087C3" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Derivative Liability, Fair Value, Gross Liability</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_DerivativeFairValueOfDerivativeLiability" xlink:label="loc_us-gaap_DerivativeFairValueOfDerivativeLiability_873657C6FF33B92BF08B8095E59087C3" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DerivativeFairValueOfDerivativeLiability_873657C6FF33B92BF08B8095E59087C3" xlink:to="lab_us-gaap_DerivativeFairValueOfDerivativeLiability_873657C6FF33B92BF08B8095E59087C3" xlink:type="arc" />
    <link:label id="lab_us-gaap_DerivativeLiabilityCollateralRightToReclaimCashOffset_AD29264C14A2E9C07DB38095E59005C7_negatedTerseLabel_en-US" xlink:label="lab_us-gaap_DerivativeLiabilityCollateralRightToReclaimCashOffset_AD29264C14A2E9C07DB38095E59005C7" xlink:role="http://www.xbrl.org/2009/role/negatedTerseLabel" xlink:type="resource" xml:lang="en-US">Derivative liability gross amount offset</link:label>
    <link:label id="lab_us-gaap_DerivativeLiabilityCollateralRightToReclaimCashOffset_AD29264C14A2E9C07DB38095E59005C7_label_en-US" xlink:label="lab_us-gaap_DerivativeLiabilityCollateralRightToReclaimCashOffset_AD29264C14A2E9C07DB38095E59005C7" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Derivative Liability, Collateral, Right to Reclaim Cash, Offset</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_DerivativeLiabilityCollateralRightToReclaimCashOffset" xlink:label="loc_us-gaap_DerivativeLiabilityCollateralRightToReclaimCashOffset_AD29264C14A2E9C07DB38095E59005C7" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DerivativeLiabilityCollateralRightToReclaimCashOffset_AD29264C14A2E9C07DB38095E59005C7" xlink:to="lab_us-gaap_DerivativeLiabilityCollateralRightToReclaimCashOffset_AD29264C14A2E9C07DB38095E59005C7" xlink:type="arc" />
    <link:label id="lab_us-gaap_DerivativeLiabilities_992FA476E669CF3713508095E590E4E0_totalLabel_en-US" xlink:label="lab_us-gaap_DerivativeLiabilities_992FA476E669CF3713508095E590E4E0" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xml:lang="en-US">Net amount of liabilities presented</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_DerivativeLiabilities" xlink:label="loc_us-gaap_DerivativeLiabilities_992FA476E669CF3713508095E590E4E0" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DerivativeLiabilities_992FA476E669CF3713508095E590E4E0" xlink:to="lab_us-gaap_DerivativeLiabilities_992FA476E669CF3713508095E590E4E0" xlink:type="arc" />
    <link:label id="lab_us-gaap_PerformanceSharesMember_14C5BA94EB76EC2886CB17AC5C52831C_terseLabel_en-US" xlink:label="lab_us-gaap_PerformanceSharesMember_14C5BA94EB76EC2886CB17AC5C52831C" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Performance Shares [Member]</link:label>
    <link:label id="lab_us-gaap_PerformanceSharesMember_14C5BA94EB76EC2886CB17AC5C52831C_label_en-US" xlink:label="lab_us-gaap_PerformanceSharesMember_14C5BA94EB76EC2886CB17AC5C52831C" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Performance Shares [Member]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_PerformanceSharesMember" xlink:label="loc_us-gaap_PerformanceSharesMember_14C5BA94EB76EC2886CB17AC5C52831C" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_PerformanceSharesMember_14C5BA94EB76EC2886CB17AC5C52831C" xlink:to="lab_us-gaap_PerformanceSharesMember_14C5BA94EB76EC2886CB17AC5C52831C" xlink:type="arc" />
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant_05CBF995855DED3D98D017AC5C52D2D9_terseLabel_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant_05CBF995855DED3D98D017AC5C52D2D9" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Shares available for grant under stock option plans</link:label>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant_05CBF995855DED3D98D017AC5C52D2D9_label_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant_05CBF995855DED3D98D017AC5C52D2D9" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Share-based Compensation Arrangement by Share-based Payment Award, Number of Shares Available for Grant</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant_05CBF995855DED3D98D017AC5C52D2D9" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant_05CBF995855DED3D98D017AC5C52D2D9" xlink:to="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant_05CBF995855DED3D98D017AC5C52D2D9" xlink:type="arc" />
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1_3D8052326D91A1388B6C17AC5C52DA7A_terseLabel_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1_3D8052326D91A1388B6C17AC5C52DA7A" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Vesting period for stock option plans</link:label>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1_3D8052326D91A1388B6C17AC5C52DA7A_label_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1_3D8052326D91A1388B6C17AC5C52DA7A" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Share-based Compensation Arrangement by Share-based Payment Award, Award Vesting Period</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1_3D8052326D91A1388B6C17AC5C52DA7A" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1_3D8052326D91A1388B6C17AC5C52DA7A" xlink:to="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1_3D8052326D91A1388B6C17AC5C52DA7A" xlink:type="arc" />
    <link:label id="lab_cgnx_ExpirationPeriodOfStockOptionPlan_6447A92B6DBF45C5037017AC5C53A373_terseLabel_en-US" xlink:label="lab_cgnx_ExpirationPeriodOfStockOptionPlan_6447A92B6DBF45C5037017AC5C53A373" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Expiration period of stock option plan</link:label>
    <link:label id="lab_cgnx_ExpirationPeriodOfStockOptionPlan_6447A92B6DBF45C5037017AC5C53A373_label_en-US" xlink:label="lab_cgnx_ExpirationPeriodOfStockOptionPlan_6447A92B6DBF45C5037017AC5C53A373" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Expiration Period Of Stock Option Plan</link:label>
    <link:label id="lab_cgnx_ExpirationPeriodOfStockOptionPlan_6447A92B6DBF45C5037017AC5C53A373_documentation_en-US" xlink:label="lab_cgnx_ExpirationPeriodOfStockOptionPlan_6447A92B6DBF45C5037017AC5C53A373" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Expiration period of stock option plan.</link:label>
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_ExpirationPeriodOfStockOptionPlan" xlink:label="loc_cgnx_ExpirationPeriodOfStockOptionPlan_6447A92B6DBF45C5037017AC5C53A373" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_ExpirationPeriodOfStockOptionPlan_6447A92B6DBF45C5037017AC5C53A373" xlink:to="lab_cgnx_ExpirationPeriodOfStockOptionPlan_6447A92B6DBF45C5037017AC5C53A373" xlink:type="arc" />
    <link:label id="lab_cgnx_NumberOfGroupsWithinEmployeePopulation_C445A9E0D14C600FA2E217AC5C5371F9_terseLabel_en-US" xlink:label="lab_cgnx_NumberOfGroupsWithinEmployeePopulation_C445A9E0D14C600FA2E217AC5C5371F9" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Number of groups within the employee population</link:label>
    <link:label id="lab_cgnx_NumberOfGroupsWithinEmployeePopulation_C445A9E0D14C600FA2E217AC5C5371F9_label_en-US" xlink:label="lab_cgnx_NumberOfGroupsWithinEmployeePopulation_C445A9E0D14C600FA2E217AC5C5371F9" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Number Of Groups Within Employee Population</link:label>
    <link:label id="lab_cgnx_NumberOfGroupsWithinEmployeePopulation_C445A9E0D14C600FA2E217AC5C5371F9_documentation_en-US" xlink:label="lab_cgnx_NumberOfGroupsWithinEmployeePopulation_C445A9E0D14C600FA2E217AC5C5371F9" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Number of groups within employee population.</link:label>
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_NumberOfGroupsWithinEmployeePopulation" xlink:label="loc_cgnx_NumberOfGroupsWithinEmployeePopulation_C445A9E0D14C600FA2E217AC5C5371F9" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_NumberOfGroupsWithinEmployeePopulation_C445A9E0D14C600FA2E217AC5C5371F9" xlink:to="lab_cgnx_NumberOfGroupsWithinEmployeePopulation_C445A9E0D14C600FA2E217AC5C5371F9" xlink:type="arc" />
    <link:label id="lab_cgnx_EstimatedForfeitureRateForUnvestedOptionsForSeniorManagement_463F7071B42DEC2E288B17AC5C536BC5_terseLabel_en-US" xlink:label="lab_cgnx_EstimatedForfeitureRateForUnvestedOptionsForSeniorManagement_463F7071B42DEC2E288B17AC5C536BC5" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Estimated forfeiture rate for unvested options for senior management</link:label>
    <link:label id="lab_cgnx_EstimatedForfeitureRateForUnvestedOptionsForSeniorManagement_463F7071B42DEC2E288B17AC5C536BC5_label_en-US" xlink:label="lab_cgnx_EstimatedForfeitureRateForUnvestedOptionsForSeniorManagement_463F7071B42DEC2E288B17AC5C536BC5" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Estimated Forfeiture Rate For Unvested Options For Senior Management</link:label>
    <link:label id="lab_cgnx_EstimatedForfeitureRateForUnvestedOptionsForSeniorManagement_463F7071B42DEC2E288B17AC5C536BC5_documentation_en-US" xlink:label="lab_cgnx_EstimatedForfeitureRateForUnvestedOptionsForSeniorManagement_463F7071B42DEC2E288B17AC5C536BC5" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Estimated forfeiture rate for unvested options for senior management.</link:label>
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_EstimatedForfeitureRateForUnvestedOptionsForSeniorManagement" xlink:label="loc_cgnx_EstimatedForfeitureRateForUnvestedOptionsForSeniorManagement_463F7071B42DEC2E288B17AC5C536BC5" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_EstimatedForfeitureRateForUnvestedOptionsForSeniorManagement_463F7071B42DEC2E288B17AC5C536BC5" xlink:to="lab_cgnx_EstimatedForfeitureRateForUnvestedOptionsForSeniorManagement_463F7071B42DEC2E288B17AC5C536BC5" xlink:type="arc" />
    <link:label id="lab_cgnx_EstimatedForfeitureRateForUnvestedOptionsForAllNonSeniorManagement_535E20E82D692617DC8217AC5C53A0C1_terseLabel_en-US" xlink:label="lab_cgnx_EstimatedForfeitureRateForUnvestedOptionsForAllNonSeniorManagement_535E20E82D692617DC8217AC5C53A0C1" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Estimated forfeiture rate for unvested options for all non-senior management</link:label>
    <link:label id="lab_cgnx_EstimatedForfeitureRateForUnvestedOptionsForAllNonSeniorManagement_535E20E82D692617DC8217AC5C53A0C1_label_en-US" xlink:label="lab_cgnx_EstimatedForfeitureRateForUnvestedOptionsForAllNonSeniorManagement_535E20E82D692617DC8217AC5C53A0C1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Estimated Forfeiture Rate For Unvested Options For All Non Senior Management</link:label>
    <link:label id="lab_cgnx_EstimatedForfeitureRateForUnvestedOptionsForAllNonSeniorManagement_535E20E82D692617DC8217AC5C53A0C1_documentation_en-US" xlink:label="lab_cgnx_EstimatedForfeitureRateForUnvestedOptionsForAllNonSeniorManagement_535E20E82D692617DC8217AC5C53A0C1" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Estimated forfeiture rate for unvested options for all non-senior management.</link:label>
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_EstimatedForfeitureRateForUnvestedOptionsForAllNonSeniorManagement" xlink:label="loc_cgnx_EstimatedForfeitureRateForUnvestedOptionsForAllNonSeniorManagement_535E20E82D692617DC8217AC5C53A0C1" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_EstimatedForfeitureRateForUnvestedOptionsForAllNonSeniorManagement_535E20E82D692617DC8217AC5C53A0C1" xlink:to="lab_cgnx_EstimatedForfeitureRateForUnvestedOptionsForAllNonSeniorManagement_535E20E82D692617DC8217AC5C53A0C1" xlink:type="arc" />
    <link:label id="lab_cgnx_IncreaseInCompensationExpenseDueToRevisedEstimatedForfeitureRates_3A57EEFFC2A9EBFF833617AC5C53B07B_terseLabel_en-US" xlink:label="lab_cgnx_IncreaseInCompensationExpenseDueToRevisedEstimatedForfeitureRates_3A57EEFFC2A9EBFF833617AC5C53B07B" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Increase in compensation expense due to revised estimated forfeiture rates</link:label>
    <link:label id="lab_cgnx_IncreaseInCompensationExpenseDueToRevisedEstimatedForfeitureRates_3A57EEFFC2A9EBFF833617AC5C53B07B_label_en-US" xlink:label="lab_cgnx_IncreaseInCompensationExpenseDueToRevisedEstimatedForfeitureRates_3A57EEFFC2A9EBFF833617AC5C53B07B" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Increase In Compensation Expense Due To Revised Estimated Forfeiture Rates</link:label>
    <link:label id="lab_cgnx_IncreaseInCompensationExpenseDueToRevisedEstimatedForfeitureRates_3A57EEFFC2A9EBFF833617AC5C53B07B_documentation_en-US" xlink:label="lab_cgnx_IncreaseInCompensationExpenseDueToRevisedEstimatedForfeitureRates_3A57EEFFC2A9EBFF833617AC5C53B07B" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Increase (decrease) in compensation expense due to revised estimated forfeiture rates.</link:label>
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_IncreaseInCompensationExpenseDueToRevisedEstimatedForfeitureRates" xlink:label="loc_cgnx_IncreaseInCompensationExpenseDueToRevisedEstimatedForfeitureRates_3A57EEFFC2A9EBFF833617AC5C53B07B" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_IncreaseInCompensationExpenseDueToRevisedEstimatedForfeitureRates_3A57EEFFC2A9EBFF833617AC5C53B07B" xlink:to="lab_cgnx_IncreaseInCompensationExpenseDueToRevisedEstimatedForfeitureRates_3A57EEFFC2A9EBFF833617AC5C53B07B" xlink:type="arc" />
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue_3428ACAFD856F06B122E17AC5C54BCF6_terseLabel_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue_3428ACAFD856F06B122E17AC5C54BCF6" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Weighted-average grant-date fair values of stock options granted</link:label>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue_3428ACAFD856F06B122E17AC5C54BCF6_label_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue_3428ACAFD856F06B122E17AC5C54BCF6" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Share-based Compensation Arrangement by Share-based Payment Award, Options, Grants in Period, Weighted Average Grant Date Fair Value</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue_3428ACAFD856F06B122E17AC5C54BCF6" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue_3428ACAFD856F06B122E17AC5C54BCF6" xlink:to="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue_3428ACAFD856F06B122E17AC5C54BCF6" xlink:type="arc" />
    <link:label id="lab_cgnx_SharesBasedCompensationArrangementBySharesBasedPaymentAwardOptionsExercisableIntrinsicValue_DADF042A04D38D9D563317AC5C540665_terseLabel_en-US" xlink:label="lab_cgnx_SharesBasedCompensationArrangementBySharesBasedPaymentAwardOptionsExercisableIntrinsicValue_DADF042A04D38D9D563317AC5C540665" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Total intrinsic values of stock options exercised</link:label>
    <link:label id="lab_cgnx_SharesBasedCompensationArrangementBySharesBasedPaymentAwardOptionsExercisableIntrinsicValue_DADF042A04D38D9D563317AC5C540665_label_en-US" xlink:label="lab_cgnx_SharesBasedCompensationArrangementBySharesBasedPaymentAwardOptionsExercisableIntrinsicValue_DADF042A04D38D9D563317AC5C540665" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Shares Based Compensation Arrangement By Shares Based Payment Award Options Exercisable Intrinsic Value</link:label>
    <link:label id="lab_cgnx_SharesBasedCompensationArrangementBySharesBasedPaymentAwardOptionsExercisableIntrinsicValue_DADF042A04D38D9D563317AC5C540665_documentation_en-US" xlink:label="lab_cgnx_SharesBasedCompensationArrangementBySharesBasedPaymentAwardOptionsExercisableIntrinsicValue_DADF042A04D38D9D563317AC5C540665" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Shares based compensation arrangement by shares based payment award options exercisable intrinsic value.</link:label>
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_SharesBasedCompensationArrangementBySharesBasedPaymentAwardOptionsExercisableIntrinsicValue" xlink:label="loc_cgnx_SharesBasedCompensationArrangementBySharesBasedPaymentAwardOptionsExercisableIntrinsicValue_DADF042A04D38D9D563317AC5C540665" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_SharesBasedCompensationArrangementBySharesBasedPaymentAwardOptionsExercisableIntrinsicValue_DADF042A04D38D9D563317AC5C540665" xlink:to="lab_cgnx_SharesBasedCompensationArrangementBySharesBasedPaymentAwardOptionsExercisableIntrinsicValue_DADF042A04D38D9D563317AC5C540665" xlink:type="arc" />
    <link:label id="lab_cgnx_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedFairValue_B98C6476590167FA9E5217AC5C54111D_terseLabel_en-US" xlink:label="lab_cgnx_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedFairValue_B98C6476590167FA9E5217AC5C54111D" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Total fair values of stock options vested</link:label>
    <link:label id="lab_cgnx_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedFairValue_B98C6476590167FA9E5217AC5C54111D_label_en-US" xlink:label="lab_cgnx_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedFairValue_B98C6476590167FA9E5217AC5C54111D" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Share Based Compensation Arrangement By Share Based Payment Award Options Vested Fair Value</link:label>
    <link:label id="lab_cgnx_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedFairValue_B98C6476590167FA9E5217AC5C54111D_documentation_en-US" xlink:label="lab_cgnx_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedFairValue_B98C6476590167FA9E5217AC5C54111D" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Share based compensation arrangement by share based payment award options vested fair value.</link:label>
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedFairValue" xlink:label="loc_cgnx_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedFairValue_B98C6476590167FA9E5217AC5C54111D" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedFairValue_B98C6476590167FA9E5217AC5C54111D" xlink:to="lab_cgnx_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedFairValue_B98C6476590167FA9E5217AC5C54111D" xlink:type="arc" />
    <link:label id="lab_us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedStockOptions_7FD38DEB1F15E3F768CC17AC5C54AD4B_terseLabel_en-US" xlink:label="lab_us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedStockOptions_7FD38DEB1F15E3F768CC17AC5C54AD4B" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Total unrecognized compensation expense related to non-vested stock options</link:label>
    <link:label id="lab_us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedStockOptions_7FD38DEB1F15E3F768CC17AC5C54AD4B_label_en-US" xlink:label="lab_us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedStockOptions_7FD38DEB1F15E3F768CC17AC5C54AD4B" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Employee Service Share-based Compensation, Nonvested Awards, Compensation Not yet Recognized, Stock Options</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedStockOptions" xlink:label="loc_us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedStockOptions_7FD38DEB1F15E3F768CC17AC5C54AD4B" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedStockOptions_7FD38DEB1F15E3F768CC17AC5C54AD4B" xlink:to="lab_us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedStockOptions_7FD38DEB1F15E3F768CC17AC5C54AD4B" xlink:type="arc" />
    <link:label id="lab_us-gaap_PropertyPlantAndEquipmentAbstract_4E6CBE935E7B609614ECF3C8FFDF8688_label_en-US" xlink:label="lab_us-gaap_PropertyPlantAndEquipmentAbstract_4E6CBE935E7B609614ECF3C8FFDF8688" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Property, Plant and Equipment [Abstract]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_PropertyPlantAndEquipmentAbstract" xlink:label="loc_us-gaap_PropertyPlantAndEquipmentAbstract_4E6CBE935E7B609614ECF3C8FFDF8688" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentAbstract_4E6CBE935E7B609614ECF3C8FFDF8688" xlink:to="lab_us-gaap_PropertyPlantAndEquipmentAbstract_4E6CBE935E7B609614ECF3C8FFDF8688" xlink:type="arc" />
    <link:label id="lab_us-gaap_PropertyPlantAndEquipmentDisposals_CB2F36DA3370143BB4E1F3C8FFDFF6B5_terseLabel_en-US" xlink:label="lab_us-gaap_PropertyPlantAndEquipmentDisposals_CB2F36DA3370143BB4E1F3C8FFDFF6B5" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Disposals in period</link:label>
    <link:label id="lab_us-gaap_PropertyPlantAndEquipmentDisposals_CB2F36DA3370143BB4E1F3C8FFDFF6B5_label_en-US" xlink:label="lab_us-gaap_PropertyPlantAndEquipmentDisposals_CB2F36DA3370143BB4E1F3C8FFDFF6B5" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Property, Plant and Equipment, Disposals</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_PropertyPlantAndEquipmentDisposals" xlink:label="loc_us-gaap_PropertyPlantAndEquipmentDisposals_CB2F36DA3370143BB4E1F3C8FFDFF6B5" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentDisposals_CB2F36DA3370143BB4E1F3C8FFDFF6B5" xlink:to="lab_us-gaap_PropertyPlantAndEquipmentDisposals_CB2F36DA3370143BB4E1F3C8FFDFF6B5" xlink:type="arc" />
    <link:label id="lab_us-gaap_AccumulatedDepreciationDepletionAndAmortizationSaleOfPropertyPlantAndEquipment1_D75C724BD3290F85E141F3F3591A8D9B_terseLabel_en-US" xlink:label="lab_us-gaap_AccumulatedDepreciationDepletionAndAmortizationSaleOfPropertyPlantAndEquipment1_D75C724BD3290F85E141F3F3591A8D9B" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Reduction of accumulated depreciation due to disposals</link:label>
    <link:label id="lab_us-gaap_AccumulatedDepreciationDepletionAndAmortizationSaleOfPropertyPlantAndEquipment1_D75C724BD3290F85E141F3F3591A8D9B_label_en-US" xlink:label="lab_us-gaap_AccumulatedDepreciationDepletionAndAmortizationSaleOfPropertyPlantAndEquipment1_D75C724BD3290F85E141F3F3591A8D9B" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Accumulated Depreciation, Depletion and Amortization, Sale or Disposal of Property, Plant and Equipment</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_AccumulatedDepreciationDepletionAndAmortizationSaleOfPropertyPlantAndEquipment1" xlink:label="loc_us-gaap_AccumulatedDepreciationDepletionAndAmortizationSaleOfPropertyPlantAndEquipment1_D75C724BD3290F85E141F3F3591A8D9B" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AccumulatedDepreciationDepletionAndAmortizationSaleOfPropertyPlantAndEquipment1_D75C724BD3290F85E141F3F3591A8D9B" xlink:to="lab_us-gaap_AccumulatedDepreciationDepletionAndAmortizationSaleOfPropertyPlantAndEquipment1_D75C724BD3290F85E141F3F3591A8D9B" xlink:type="arc" />
    <link:label id="lab_us-gaap_PropertySubjectToOrAvailableForOperatingLeaseGross_6F7CC061F30C158DA514F3C8FFDF42CF_terseLabel_en-US" xlink:label="lab_us-gaap_PropertySubjectToOrAvailableForOperatingLeaseGross_6F7CC061F30C158DA514F3C8FFDF42CF" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Buildings include rental property</link:label>
    <link:label id="lab_us-gaap_PropertySubjectToOrAvailableForOperatingLeaseGross_6F7CC061F30C158DA514F3C8FFDF42CF_label_en-US" xlink:label="lab_us-gaap_PropertySubjectToOrAvailableForOperatingLeaseGross_6F7CC061F30C158DA514F3C8FFDF42CF" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Property Subject to or Available for Operating Lease, Gross</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_PropertySubjectToOrAvailableForOperatingLeaseGross" xlink:label="loc_us-gaap_PropertySubjectToOrAvailableForOperatingLeaseGross_6F7CC061F30C158DA514F3C8FFDF42CF" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_PropertySubjectToOrAvailableForOperatingLeaseGross_6F7CC061F30C158DA514F3C8FFDF42CF" xlink:to="lab_us-gaap_PropertySubjectToOrAvailableForOperatingLeaseGross_6F7CC061F30C158DA514F3C8FFDF42CF" xlink:type="arc" />
    <link:label id="lab_us-gaap_PropertySubjectToOrAvailableForOperatingLeaseAccumulatedDepreciation_B6EEE54DDE3A620D9CB1F3C8FFE01499_terseLabel_en-US" xlink:label="lab_us-gaap_PropertySubjectToOrAvailableForOperatingLeaseAccumulatedDepreciation_B6EEE54DDE3A620D9CB1F3C8FFE01499" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Accumulated depreciation</link:label>
    <link:label id="lab_us-gaap_PropertySubjectToOrAvailableForOperatingLeaseAccumulatedDepreciation_B6EEE54DDE3A620D9CB1F3C8FFE01499_label_en-US" xlink:label="lab_us-gaap_PropertySubjectToOrAvailableForOperatingLeaseAccumulatedDepreciation_B6EEE54DDE3A620D9CB1F3C8FFE01499" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Property Subject to or Available for Operating Lease, Accumulated Depreciation</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_PropertySubjectToOrAvailableForOperatingLeaseAccumulatedDepreciation" xlink:label="loc_us-gaap_PropertySubjectToOrAvailableForOperatingLeaseAccumulatedDepreciation_B6EEE54DDE3A620D9CB1F3C8FFE01499" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_PropertySubjectToOrAvailableForOperatingLeaseAccumulatedDepreciation_B6EEE54DDE3A620D9CB1F3C8FFE01499" xlink:to="lab_us-gaap_PropertySubjectToOrAvailableForOperatingLeaseAccumulatedDepreciation_B6EEE54DDE3A620D9CB1F3C8FFE01499" xlink:type="arc" />
    <link:label id="lab_dei_CoverAbstract_0CF2C3E93E6C5C112CE43F216981529F_label_en-US" xlink:label="lab_dei_CoverAbstract_0CF2C3E93E6C5C112CE43F216981529F" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Cover page.</link:label>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_CoverAbstract" xlink:label="loc_dei_CoverAbstract_0CF2C3E93E6C5C112CE43F216981529F" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_dei_CoverAbstract_0CF2C3E93E6C5C112CE43F216981529F" xlink:to="lab_dei_CoverAbstract_0CF2C3E93E6C5C112CE43F216981529F" xlink:type="arc" />
    <link:label id="lab_dei_DocumentType_08192580F834B22219023F21698E8179_terseLabel_en-US" xlink:label="lab_dei_DocumentType_08192580F834B22219023F21698E8179" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Document Type</link:label>
    <link:label id="lab_dei_DocumentType_08192580F834B22219023F21698E8179_label_en-US" xlink:label="lab_dei_DocumentType_08192580F834B22219023F21698E8179" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Document Type</link:label>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_DocumentType" xlink:label="loc_dei_DocumentType_08192580F834B22219023F21698E8179" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_dei_DocumentType_08192580F834B22219023F21698E8179" xlink:to="lab_dei_DocumentType_08192580F834B22219023F21698E8179" xlink:type="arc" />
    <link:label id="lab_dei_DocumentQuarterlyReport_B021011343BCC272BC083F21699127EB_terseLabel_en-US" xlink:label="lab_dei_DocumentQuarterlyReport_B021011343BCC272BC083F21699127EB" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Document Quarterly Report</link:label>
    <link:label id="lab_dei_DocumentQuarterlyReport_B021011343BCC272BC083F21699127EB_label_en-US" xlink:label="lab_dei_DocumentQuarterlyReport_B021011343BCC272BC083F21699127EB" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Document Quarterly Report</link:label>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_DocumentQuarterlyReport" xlink:label="loc_dei_DocumentQuarterlyReport_B021011343BCC272BC083F21699127EB" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_dei_DocumentQuarterlyReport_B021011343BCC272BC083F21699127EB" xlink:to="lab_dei_DocumentQuarterlyReport_B021011343BCC272BC083F21699127EB" xlink:type="arc" />
    <link:label id="lab_dei_DocumentPeriodEndDate_A9FC403E2A7C5729A5883F2169913215_terseLabel_en-US" xlink:label="lab_dei_DocumentPeriodEndDate_A9FC403E2A7C5729A5883F2169913215" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Document Period End Date</link:label>
    <link:label id="lab_dei_DocumentPeriodEndDate_A9FC403E2A7C5729A5883F2169913215_label_en-US" xlink:label="lab_dei_DocumentPeriodEndDate_A9FC403E2A7C5729A5883F2169913215" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Document Period End Date</link:label>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_DocumentPeriodEndDate" xlink:label="loc_dei_DocumentPeriodEndDate_A9FC403E2A7C5729A5883F2169913215" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_dei_DocumentPeriodEndDate_A9FC403E2A7C5729A5883F2169913215" xlink:to="lab_dei_DocumentPeriodEndDate_A9FC403E2A7C5729A5883F2169913215" xlink:type="arc" />
    <link:label id="lab_dei_DocumentTransitionReport_A7D099E81B0A953DD6BE3F2169916D9A_terseLabel_en-US" xlink:label="lab_dei_DocumentTransitionReport_A7D099E81B0A953DD6BE3F2169916D9A" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Document Transition Report</link:label>
    <link:label id="lab_dei_DocumentTransitionReport_A7D099E81B0A953DD6BE3F2169916D9A_label_en-US" xlink:label="lab_dei_DocumentTransitionReport_A7D099E81B0A953DD6BE3F2169916D9A" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Document Transition Report</link:label>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_DocumentTransitionReport" xlink:label="loc_dei_DocumentTransitionReport_A7D099E81B0A953DD6BE3F2169916D9A" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_dei_DocumentTransitionReport_A7D099E81B0A953DD6BE3F2169916D9A" xlink:to="lab_dei_DocumentTransitionReport_A7D099E81B0A953DD6BE3F2169916D9A" xlink:type="arc" />
    <link:label id="lab_dei_EntityFileNumber_7C57EB36FEAAA464FCE43F216991F8FD_terseLabel_en-US" xlink:label="lab_dei_EntityFileNumber_7C57EB36FEAAA464FCE43F216991F8FD" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Entity File Number</link:label>
    <link:label id="lab_dei_EntityFileNumber_7C57EB36FEAAA464FCE43F216991F8FD_label_en-US" xlink:label="lab_dei_EntityFileNumber_7C57EB36FEAAA464FCE43F216991F8FD" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Entity File Number</link:label>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityFileNumber" xlink:label="loc_dei_EntityFileNumber_7C57EB36FEAAA464FCE43F216991F8FD" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_dei_EntityFileNumber_7C57EB36FEAAA464FCE43F216991F8FD" xlink:to="lab_dei_EntityFileNumber_7C57EB36FEAAA464FCE43F216991F8FD" xlink:type="arc" />
    <link:label id="lab_dei_EntityRegistrantName_BC20282BBBC0523101D13F216991546B_terseLabel_en-US" xlink:label="lab_dei_EntityRegistrantName_BC20282BBBC0523101D13F216991546B" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Entity Registrant Name</link:label>
    <link:label id="lab_dei_EntityRegistrantName_BC20282BBBC0523101D13F216991546B_label_en-US" xlink:label="lab_dei_EntityRegistrantName_BC20282BBBC0523101D13F216991546B" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Entity Registrant Name</link:label>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityRegistrantName" xlink:label="loc_dei_EntityRegistrantName_BC20282BBBC0523101D13F216991546B" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_dei_EntityRegistrantName_BC20282BBBC0523101D13F216991546B" xlink:to="lab_dei_EntityRegistrantName_BC20282BBBC0523101D13F216991546B" xlink:type="arc" />
    <link:label id="lab_dei_EntityIncorporationStateCountryCode_B3CF70769800D761EFC23F216991ADBF_terseLabel_en-US" xlink:label="lab_dei_EntityIncorporationStateCountryCode_B3CF70769800D761EFC23F216991ADBF" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Entity Incorporation, State or Country Code</link:label>
    <link:label id="lab_dei_EntityIncorporationStateCountryCode_B3CF70769800D761EFC23F216991ADBF_label_en-US" xlink:label="lab_dei_EntityIncorporationStateCountryCode_B3CF70769800D761EFC23F216991ADBF" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Entity Incorporation, State or Country Code</link:label>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityIncorporationStateCountryCode" xlink:label="loc_dei_EntityIncorporationStateCountryCode_B3CF70769800D761EFC23F216991ADBF" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_dei_EntityIncorporationStateCountryCode_B3CF70769800D761EFC23F216991ADBF" xlink:to="lab_dei_EntityIncorporationStateCountryCode_B3CF70769800D761EFC23F216991ADBF" xlink:type="arc" />
    <link:label id="lab_dei_EntityTaxIdentificationNumber_A188A492DC26CC587CA03F216991CB7E_terseLabel_en-US" xlink:label="lab_dei_EntityTaxIdentificationNumber_A188A492DC26CC587CA03F216991CB7E" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Entity Tax Identification Number</link:label>
    <link:label id="lab_dei_EntityTaxIdentificationNumber_A188A492DC26CC587CA03F216991CB7E_label_en-US" xlink:label="lab_dei_EntityTaxIdentificationNumber_A188A492DC26CC587CA03F216991CB7E" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Entity Tax Identification Number</link:label>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityTaxIdentificationNumber" xlink:label="loc_dei_EntityTaxIdentificationNumber_A188A492DC26CC587CA03F216991CB7E" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_dei_EntityTaxIdentificationNumber_A188A492DC26CC587CA03F216991CB7E" xlink:to="lab_dei_EntityTaxIdentificationNumber_A188A492DC26CC587CA03F216991CB7E" xlink:type="arc" />
    <link:label id="lab_dei_EntityAddressAddressLine1_1E35A4235776594E2B3C3F2169923540_terseLabel_en-US" xlink:label="lab_dei_EntityAddressAddressLine1_1E35A4235776594E2B3C3F2169923540" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Entity Address, Address Line One</link:label>
    <link:label id="lab_dei_EntityAddressAddressLine1_1E35A4235776594E2B3C3F2169923540_label_en-US" xlink:label="lab_dei_EntityAddressAddressLine1_1E35A4235776594E2B3C3F2169923540" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Entity Address, Address Line One</link:label>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityAddressAddressLine1" xlink:label="loc_dei_EntityAddressAddressLine1_1E35A4235776594E2B3C3F2169923540" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_dei_EntityAddressAddressLine1_1E35A4235776594E2B3C3F2169923540" xlink:to="lab_dei_EntityAddressAddressLine1_1E35A4235776594E2B3C3F2169923540" xlink:type="arc" />
    <link:label id="lab_dei_EntityAddressCityOrTown_717058EAEFF9847E394C3F2169925981_terseLabel_en-US" xlink:label="lab_dei_EntityAddressCityOrTown_717058EAEFF9847E394C3F2169925981" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Entity Address, City or Town</link:label>
    <link:label id="lab_dei_EntityAddressCityOrTown_717058EAEFF9847E394C3F2169925981_label_en-US" xlink:label="lab_dei_EntityAddressCityOrTown_717058EAEFF9847E394C3F2169925981" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Entity Address, City or Town</link:label>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityAddressCityOrTown" xlink:label="loc_dei_EntityAddressCityOrTown_717058EAEFF9847E394C3F2169925981" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_dei_EntityAddressCityOrTown_717058EAEFF9847E394C3F2169925981" xlink:to="lab_dei_EntityAddressCityOrTown_717058EAEFF9847E394C3F2169925981" xlink:type="arc" />
    <link:label id="lab_dei_EntityAddressStateOrProvince_1284EF4F96A57E6F91353F2169922663_terseLabel_en-US" xlink:label="lab_dei_EntityAddressStateOrProvince_1284EF4F96A57E6F91353F2169922663" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Entity Address, State or Province</link:label>
    <link:label id="lab_dei_EntityAddressStateOrProvince_1284EF4F96A57E6F91353F2169922663_label_en-US" xlink:label="lab_dei_EntityAddressStateOrProvince_1284EF4F96A57E6F91353F2169922663" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Entity Address, State or Province</link:label>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityAddressStateOrProvince" xlink:label="loc_dei_EntityAddressStateOrProvince_1284EF4F96A57E6F91353F2169922663" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_dei_EntityAddressStateOrProvince_1284EF4F96A57E6F91353F2169922663" xlink:to="lab_dei_EntityAddressStateOrProvince_1284EF4F96A57E6F91353F2169922663" xlink:type="arc" />
    <link:label id="lab_dei_EntityAddressPostalZipCode_144B70BF7CCDD172C39E3F216992A474_terseLabel_en-US" xlink:label="lab_dei_EntityAddressPostalZipCode_144B70BF7CCDD172C39E3F216992A474" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Entity Address, Postal Zip Code</link:label>
    <link:label id="lab_dei_EntityAddressPostalZipCode_144B70BF7CCDD172C39E3F216992A474_label_en-US" xlink:label="lab_dei_EntityAddressPostalZipCode_144B70BF7CCDD172C39E3F216992A474" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Entity Address, Postal Zip Code</link:label>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityAddressPostalZipCode" xlink:label="loc_dei_EntityAddressPostalZipCode_144B70BF7CCDD172C39E3F216992A474" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_dei_EntityAddressPostalZipCode_144B70BF7CCDD172C39E3F216992A474" xlink:to="lab_dei_EntityAddressPostalZipCode_144B70BF7CCDD172C39E3F216992A474" xlink:type="arc" />
    <link:label id="lab_dei_CityAreaCode_0CCA7F40413CBDFA33983F216992EA9A_terseLabel_en-US" xlink:label="lab_dei_CityAreaCode_0CCA7F40413CBDFA33983F216992EA9A" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">City Area Code</link:label>
    <link:label id="lab_dei_CityAreaCode_0CCA7F40413CBDFA33983F216992EA9A_label_en-US" xlink:label="lab_dei_CityAreaCode_0CCA7F40413CBDFA33983F216992EA9A" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">City Area Code</link:label>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_CityAreaCode" xlink:label="loc_dei_CityAreaCode_0CCA7F40413CBDFA33983F216992EA9A" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_dei_CityAreaCode_0CCA7F40413CBDFA33983F216992EA9A" xlink:to="lab_dei_CityAreaCode_0CCA7F40413CBDFA33983F216992EA9A" xlink:type="arc" />
    <link:label id="lab_dei_LocalPhoneNumber_C4B3AC14D0AC7D476E043F2169928E3E_terseLabel_en-US" xlink:label="lab_dei_LocalPhoneNumber_C4B3AC14D0AC7D476E043F2169928E3E" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Local Phone Number</link:label>
    <link:label id="lab_dei_LocalPhoneNumber_C4B3AC14D0AC7D476E043F2169928E3E_label_en-US" xlink:label="lab_dei_LocalPhoneNumber_C4B3AC14D0AC7D476E043F2169928E3E" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Local Phone Number</link:label>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LocalPhoneNumber" xlink:label="loc_dei_LocalPhoneNumber_C4B3AC14D0AC7D476E043F2169928E3E" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_dei_LocalPhoneNumber_C4B3AC14D0AC7D476E043F2169928E3E" xlink:to="lab_dei_LocalPhoneNumber_C4B3AC14D0AC7D476E043F2169928E3E" xlink:type="arc" />
    <link:label id="lab_dei_Security12bTitle_EF2EF93AAF357ABD0A003F2169936436_terseLabel_en-US" xlink:label="lab_dei_Security12bTitle_EF2EF93AAF357ABD0A003F2169936436" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Title of 12(b) Security</link:label>
    <link:label id="lab_dei_Security12bTitle_EF2EF93AAF357ABD0A003F2169936436_label_en-US" xlink:label="lab_dei_Security12bTitle_EF2EF93AAF357ABD0A003F2169936436" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Title of 12(b) Security</link:label>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_Security12bTitle" xlink:label="loc_dei_Security12bTitle_EF2EF93AAF357ABD0A003F2169936436" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_dei_Security12bTitle_EF2EF93AAF357ABD0A003F2169936436" xlink:to="lab_dei_Security12bTitle_EF2EF93AAF357ABD0A003F2169936436" xlink:type="arc" />
    <link:label id="lab_dei_TradingSymbol_F13FB1C346B9E88AA4283F21699393DA_terseLabel_en-US" xlink:label="lab_dei_TradingSymbol_F13FB1C346B9E88AA4283F21699393DA" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Trading Symbol</link:label>
    <link:label id="lab_dei_TradingSymbol_F13FB1C346B9E88AA4283F21699393DA_label_en-US" xlink:label="lab_dei_TradingSymbol_F13FB1C346B9E88AA4283F21699393DA" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Trading Symbol</link:label>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_TradingSymbol" xlink:label="loc_dei_TradingSymbol_F13FB1C346B9E88AA4283F21699393DA" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_dei_TradingSymbol_F13FB1C346B9E88AA4283F21699393DA" xlink:to="lab_dei_TradingSymbol_F13FB1C346B9E88AA4283F21699393DA" xlink:type="arc" />
    <link:label id="lab_dei_SecurityExchangeName_874E8DF7512AC4185AE83F2169937087_terseLabel_en-US" xlink:label="lab_dei_SecurityExchangeName_874E8DF7512AC4185AE83F2169937087" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Security Exchange Name</link:label>
    <link:label id="lab_dei_SecurityExchangeName_874E8DF7512AC4185AE83F2169937087_label_en-US" xlink:label="lab_dei_SecurityExchangeName_874E8DF7512AC4185AE83F2169937087" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Security Exchange Name</link:label>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_SecurityExchangeName" xlink:label="loc_dei_SecurityExchangeName_874E8DF7512AC4185AE83F2169937087" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_dei_SecurityExchangeName_874E8DF7512AC4185AE83F2169937087" xlink:to="lab_dei_SecurityExchangeName_874E8DF7512AC4185AE83F2169937087" xlink:type="arc" />
    <link:label id="lab_dei_EntityWellKnownSeasonedIssuer_12A36A661F937C646FE23F21699394D4_terseLabel_en-US" xlink:label="lab_dei_EntityWellKnownSeasonedIssuer_12A36A661F937C646FE23F21699394D4" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Entity Well-known Seasoned Issuer</link:label>
    <link:label id="lab_dei_EntityWellKnownSeasonedIssuer_12A36A661F937C646FE23F21699394D4_label_en-US" xlink:label="lab_dei_EntityWellKnownSeasonedIssuer_12A36A661F937C646FE23F21699394D4" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Entity Well-known Seasoned Issuer</link:label>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityWellKnownSeasonedIssuer" xlink:label="loc_dei_EntityWellKnownSeasonedIssuer_12A36A661F937C646FE23F21699394D4" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_dei_EntityWellKnownSeasonedIssuer_12A36A661F937C646FE23F21699394D4" xlink:to="lab_dei_EntityWellKnownSeasonedIssuer_12A36A661F937C646FE23F21699394D4" xlink:type="arc" />
    <link:label id="lab_dei_EntityVoluntaryFilers_4E75F276995316F0FA543F216993D256_terseLabel_en-US" xlink:label="lab_dei_EntityVoluntaryFilers_4E75F276995316F0FA543F216993D256" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Entity Voluntary Filers</link:label>
    <link:label id="lab_dei_EntityVoluntaryFilers_4E75F276995316F0FA543F216993D256_label_en-US" xlink:label="lab_dei_EntityVoluntaryFilers_4E75F276995316F0FA543F216993D256" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Entity Voluntary Filers</link:label>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityVoluntaryFilers" xlink:label="loc_dei_EntityVoluntaryFilers_4E75F276995316F0FA543F216993D256" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_dei_EntityVoluntaryFilers_4E75F276995316F0FA543F216993D256" xlink:to="lab_dei_EntityVoluntaryFilers_4E75F276995316F0FA543F216993D256" xlink:type="arc" />
    <link:label id="lab_dei_EntityCurrentReportingStatus_DD03E56F853FCEB10B303F2169936F2F_terseLabel_en-US" xlink:label="lab_dei_EntityCurrentReportingStatus_DD03E56F853FCEB10B303F2169936F2F" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Entity Current Reporting Status</link:label>
    <link:label id="lab_dei_EntityCurrentReportingStatus_DD03E56F853FCEB10B303F2169936F2F_label_en-US" xlink:label="lab_dei_EntityCurrentReportingStatus_DD03E56F853FCEB10B303F2169936F2F" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Entity Current Reporting Status</link:label>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityCurrentReportingStatus" xlink:label="loc_dei_EntityCurrentReportingStatus_DD03E56F853FCEB10B303F2169936F2F" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_dei_EntityCurrentReportingStatus_DD03E56F853FCEB10B303F2169936F2F" xlink:to="lab_dei_EntityCurrentReportingStatus_DD03E56F853FCEB10B303F2169936F2F" xlink:type="arc" />
    <link:label id="lab_dei_EntityInteractiveDataCurrent_0812EAD275B61279589D3F21699477F5_terseLabel_en-US" xlink:label="lab_dei_EntityInteractiveDataCurrent_0812EAD275B61279589D3F21699477F5" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Entity Interactive Data Current</link:label>
    <link:label id="lab_dei_EntityInteractiveDataCurrent_0812EAD275B61279589D3F21699477F5_label_en-US" xlink:label="lab_dei_EntityInteractiveDataCurrent_0812EAD275B61279589D3F21699477F5" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Entity Interactive Data Current</link:label>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityInteractiveDataCurrent" xlink:label="loc_dei_EntityInteractiveDataCurrent_0812EAD275B61279589D3F21699477F5" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_dei_EntityInteractiveDataCurrent_0812EAD275B61279589D3F21699477F5" xlink:to="lab_dei_EntityInteractiveDataCurrent_0812EAD275B61279589D3F21699477F5" xlink:type="arc" />
    <link:label id="lab_dei_EntityFilerCategory_CD24C83F58C3D3FFCEC73F2169941999_terseLabel_en-US" xlink:label="lab_dei_EntityFilerCategory_CD24C83F58C3D3FFCEC73F2169941999" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Entity Filer Category</link:label>
    <link:label id="lab_dei_EntityFilerCategory_CD24C83F58C3D3FFCEC73F2169941999_label_en-US" xlink:label="lab_dei_EntityFilerCategory_CD24C83F58C3D3FFCEC73F2169941999" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Entity Filer Category</link:label>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityFilerCategory" xlink:label="loc_dei_EntityFilerCategory_CD24C83F58C3D3FFCEC73F2169941999" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_dei_EntityFilerCategory_CD24C83F58C3D3FFCEC73F2169941999" xlink:to="lab_dei_EntityFilerCategory_CD24C83F58C3D3FFCEC73F2169941999" xlink:type="arc" />
    <link:label id="lab_dei_EntitySmallBusiness_2EC347BC5A92B058CEC63F21D06D2610_terseLabel_en-US" xlink:label="lab_dei_EntitySmallBusiness_2EC347BC5A92B058CEC63F21D06D2610" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Entity Small Business</link:label>
    <link:label id="lab_dei_EntitySmallBusiness_2EC347BC5A92B058CEC63F21D06D2610_label_en-US" xlink:label="lab_dei_EntitySmallBusiness_2EC347BC5A92B058CEC63F21D06D2610" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Entity Small Business</link:label>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntitySmallBusiness" xlink:label="loc_dei_EntitySmallBusiness_2EC347BC5A92B058CEC63F21D06D2610" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_dei_EntitySmallBusiness_2EC347BC5A92B058CEC63F21D06D2610" xlink:to="lab_dei_EntitySmallBusiness_2EC347BC5A92B058CEC63F21D06D2610" xlink:type="arc" />
    <link:label id="lab_dei_EntityEmergingGrowthCompany_46004E4EA0361674FB9B3F216CB4A8A8_terseLabel_en-US" xlink:label="lab_dei_EntityEmergingGrowthCompany_46004E4EA0361674FB9B3F216CB4A8A8" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Entity Small Business</link:label>
    <link:label id="lab_dei_EntityEmergingGrowthCompany_46004E4EA0361674FB9B3F216CB4A8A8_label_en-US" xlink:label="lab_dei_EntityEmergingGrowthCompany_46004E4EA0361674FB9B3F216CB4A8A8" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Entity Emerging Growth Company</link:label>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityEmergingGrowthCompany" xlink:label="loc_dei_EntityEmergingGrowthCompany_46004E4EA0361674FB9B3F216CB4A8A8" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_dei_EntityEmergingGrowthCompany_46004E4EA0361674FB9B3F216CB4A8A8" xlink:to="lab_dei_EntityEmergingGrowthCompany_46004E4EA0361674FB9B3F216CB4A8A8" xlink:type="arc" />
    <link:label id="lab_dei_EntityShellCompany_5F3656201D27BB63EB803F21699404D9_terseLabel_en-US" xlink:label="lab_dei_EntityShellCompany_5F3656201D27BB63EB803F21699404D9" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Entity Shell Company</link:label>
    <link:label id="lab_dei_EntityShellCompany_5F3656201D27BB63EB803F21699404D9_label_en-US" xlink:label="lab_dei_EntityShellCompany_5F3656201D27BB63EB803F21699404D9" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Entity Shell Company</link:label>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityShellCompany" xlink:label="loc_dei_EntityShellCompany_5F3656201D27BB63EB803F21699404D9" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_dei_EntityShellCompany_5F3656201D27BB63EB803F21699404D9" xlink:to="lab_dei_EntityShellCompany_5F3656201D27BB63EB803F21699404D9" xlink:type="arc" />
    <link:label id="lab_dei_EntityPublicFloat_3F000E057D78C0B6ABAB3F216994E204_terseLabel_en-US" xlink:label="lab_dei_EntityPublicFloat_3F000E057D78C0B6ABAB3F216994E204" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Entity Public Float</link:label>
    <link:label id="lab_dei_EntityPublicFloat_3F000E057D78C0B6ABAB3F216994E204_label_en-US" xlink:label="lab_dei_EntityPublicFloat_3F000E057D78C0B6ABAB3F216994E204" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Entity Public Float</link:label>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityPublicFloat" xlink:label="loc_dei_EntityPublicFloat_3F000E057D78C0B6ABAB3F216994E204" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_dei_EntityPublicFloat_3F000E057D78C0B6ABAB3F216994E204" xlink:to="lab_dei_EntityPublicFloat_3F000E057D78C0B6ABAB3F216994E204" xlink:type="arc" />
    <link:label id="lab_dei_EntityCommonStockSharesOutstanding_036CE1E402E63EAEFDD73F2169948432_terseLabel_en-US" xlink:label="lab_dei_EntityCommonStockSharesOutstanding_036CE1E402E63EAEFDD73F2169948432" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Entity Common Stock, Shares Outstanding</link:label>
    <link:label id="lab_dei_EntityCommonStockSharesOutstanding_036CE1E402E63EAEFDD73F2169948432_label_en-US" xlink:label="lab_dei_EntityCommonStockSharesOutstanding_036CE1E402E63EAEFDD73F2169948432" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Entity Common Stock, Shares Outstanding</link:label>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityCommonStockSharesOutstanding" xlink:label="loc_dei_EntityCommonStockSharesOutstanding_036CE1E402E63EAEFDD73F2169948432" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_dei_EntityCommonStockSharesOutstanding_036CE1E402E63EAEFDD73F2169948432" xlink:to="lab_dei_EntityCommonStockSharesOutstanding_036CE1E402E63EAEFDD73F2169948432" xlink:type="arc" />
    <link:label id="lab_dei_EntityCentralIndexKey_2FB2F7A053674BD676DB3F2169944ADA_terseLabel_en-US" xlink:label="lab_dei_EntityCentralIndexKey_2FB2F7A053674BD676DB3F2169944ADA" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Entity Central Index Key</link:label>
    <link:label id="lab_dei_EntityCentralIndexKey_2FB2F7A053674BD676DB3F2169944ADA_label_en-US" xlink:label="lab_dei_EntityCentralIndexKey_2FB2F7A053674BD676DB3F2169944ADA" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Entity Central Index Key</link:label>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityCentralIndexKey" xlink:label="loc_dei_EntityCentralIndexKey_2FB2F7A053674BD676DB3F2169944ADA" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_dei_EntityCentralIndexKey_2FB2F7A053674BD676DB3F2169944ADA" xlink:to="lab_dei_EntityCentralIndexKey_2FB2F7A053674BD676DB3F2169944ADA" xlink:type="arc" />
    <link:label id="lab_dei_CurrentFiscalYearEndDate_986DAD9A5F3A70FA53B03F216995D7E5_terseLabel_en-US" xlink:label="lab_dei_CurrentFiscalYearEndDate_986DAD9A5F3A70FA53B03F216995D7E5" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Current Fiscal Year End Date</link:label>
    <link:label id="lab_dei_CurrentFiscalYearEndDate_986DAD9A5F3A70FA53B03F216995D7E5_label_en-US" xlink:label="lab_dei_CurrentFiscalYearEndDate_986DAD9A5F3A70FA53B03F216995D7E5" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Current Fiscal Year End Date</link:label>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_CurrentFiscalYearEndDate" xlink:label="loc_dei_CurrentFiscalYearEndDate_986DAD9A5F3A70FA53B03F216995D7E5" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_dei_CurrentFiscalYearEndDate_986DAD9A5F3A70FA53B03F216995D7E5" xlink:to="lab_dei_CurrentFiscalYearEndDate_986DAD9A5F3A70FA53B03F216995D7E5" xlink:type="arc" />
    <link:label id="lab_dei_DocumentFiscalYearFocus_2BA5D8A5754CA61755063F21699512EE_terseLabel_en-US" xlink:label="lab_dei_DocumentFiscalYearFocus_2BA5D8A5754CA61755063F21699512EE" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Document Fiscal Year Focus</link:label>
    <link:label id="lab_dei_DocumentFiscalYearFocus_2BA5D8A5754CA61755063F21699512EE_label_en-US" xlink:label="lab_dei_DocumentFiscalYearFocus_2BA5D8A5754CA61755063F21699512EE" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Document Fiscal Year Focus</link:label>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_DocumentFiscalYearFocus" xlink:label="loc_dei_DocumentFiscalYearFocus_2BA5D8A5754CA61755063F21699512EE" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_dei_DocumentFiscalYearFocus_2BA5D8A5754CA61755063F21699512EE" xlink:to="lab_dei_DocumentFiscalYearFocus_2BA5D8A5754CA61755063F21699512EE" xlink:type="arc" />
    <link:label id="lab_dei_DocumentFiscalPeriodFocus_3B8C997D72AD5E51A0863F21699589D4_terseLabel_en-US" xlink:label="lab_dei_DocumentFiscalPeriodFocus_3B8C997D72AD5E51A0863F21699589D4" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Document Fiscal Period Focus</link:label>
    <link:label id="lab_dei_DocumentFiscalPeriodFocus_3B8C997D72AD5E51A0863F21699589D4_label_en-US" xlink:label="lab_dei_DocumentFiscalPeriodFocus_3B8C997D72AD5E51A0863F21699589D4" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Document Fiscal Period Focus</link:label>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_DocumentFiscalPeriodFocus" xlink:label="loc_dei_DocumentFiscalPeriodFocus_3B8C997D72AD5E51A0863F21699589D4" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_dei_DocumentFiscalPeriodFocus_3B8C997D72AD5E51A0863F21699589D4" xlink:to="lab_dei_DocumentFiscalPeriodFocus_3B8C997D72AD5E51A0863F21699589D4" xlink:type="arc" />
    <link:label id="lab_dei_AmendmentFlag_504F43AEB994B8B268FA3F216995B7D1_terseLabel_en-US" xlink:label="lab_dei_AmendmentFlag_504F43AEB994B8B268FA3F216995B7D1" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Amendment Flag</link:label>
    <link:label id="lab_dei_AmendmentFlag_504F43AEB994B8B268FA3F216995B7D1_label_en-US" xlink:label="lab_dei_AmendmentFlag_504F43AEB994B8B268FA3F216995B7D1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Amendment Flag</link:label>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_AmendmentFlag" xlink:label="loc_dei_AmendmentFlag_504F43AEB994B8B268FA3F216995B7D1" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_dei_AmendmentFlag_504F43AEB994B8B268FA3F216995B7D1" xlink:to="lab_dei_AmendmentFlag_504F43AEB994B8B268FA3F216995B7D1" xlink:type="arc" />
    <link:label id="lab_us-gaap_EarningsPerShareAbstract_C5F486E9EF6EBBD2CC568095E841C9CB_label_en-US" xlink:label="lab_us-gaap_EarningsPerShareAbstract_C5F486E9EF6EBBD2CC568095E841C9CB" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Earnings Per Share [Abstract]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_EarningsPerShareAbstract" xlink:label="loc_us-gaap_EarningsPerShareAbstract_C5F486E9EF6EBBD2CC568095E841C9CB" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_EarningsPerShareAbstract_C5F486E9EF6EBBD2CC568095E841C9CB" xlink:to="lab_us-gaap_EarningsPerShareAbstract_C5F486E9EF6EBBD2CC568095E841C9CB" xlink:type="arc" />
    <link:label id="lab_us-gaap_WeightedAverageNumberOfSharesOutstandingBasic_C54BEB2E996F651AA2898095E84143D5_verboseLabel_en-US" xlink:label="lab_us-gaap_WeightedAverageNumberOfSharesOutstandingBasic_C54BEB2E996F651AA2898095E84143D5" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xml:lang="en-US">Basic weighted-average common shares outstanding</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_WeightedAverageNumberOfSharesOutstandingBasic" xlink:label="loc_us-gaap_WeightedAverageNumberOfSharesOutstandingBasic_C54BEB2E996F651AA2898095E84143D5" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_WeightedAverageNumberOfSharesOutstandingBasic_C54BEB2E996F651AA2898095E84143D5" xlink:to="lab_us-gaap_WeightedAverageNumberOfSharesOutstandingBasic_C54BEB2E996F651AA2898095E84143D5" xlink:type="arc" />
    <link:label id="lab_us-gaap_WeightedAverageNumberDilutedSharesOutstandingAdjustment_5BA4A35CE376CA8B87C28095E841089B_terseLabel_en-US" xlink:label="lab_us-gaap_WeightedAverageNumberDilutedSharesOutstandingAdjustment_5BA4A35CE376CA8B87C28095E841089B" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Effect of dilutive stock options</link:label>
    <link:label id="lab_us-gaap_WeightedAverageNumberDilutedSharesOutstandingAdjustment_5BA4A35CE376CA8B87C28095E841089B_label_en-US" xlink:label="lab_us-gaap_WeightedAverageNumberDilutedSharesOutstandingAdjustment_5BA4A35CE376CA8B87C28095E841089B" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Weighted Average Number Diluted Shares Outstanding Adjustment</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_WeightedAverageNumberDilutedSharesOutstandingAdjustment" xlink:label="loc_us-gaap_WeightedAverageNumberDilutedSharesOutstandingAdjustment_5BA4A35CE376CA8B87C28095E841089B" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_WeightedAverageNumberDilutedSharesOutstandingAdjustment_5BA4A35CE376CA8B87C28095E841089B" xlink:to="lab_us-gaap_WeightedAverageNumberDilutedSharesOutstandingAdjustment_5BA4A35CE376CA8B87C28095E841089B" xlink:type="arc" />
    <link:label id="lab_us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding_47B6BBB230F41ED1F6FB8095E841538C_totalLabel_en-US" xlink:label="lab_us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding_47B6BBB230F41ED1F6FB8095E841538C" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xml:lang="en-US">Diluted weighted-average common and common-equivalent shares outstanding</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding" xlink:label="loc_us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding_47B6BBB230F41ED1F6FB8095E841538C" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding_47B6BBB230F41ED1F6FB8095E841538C" xlink:to="lab_us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding_47B6BBB230F41ED1F6FB8095E841538C" xlink:type="arc" />
    <link:label id="lab_us-gaap_AccumulatedOtherComprehensiveIncomeLossTable_1764074BFA5217EECA6035BF4AA28D6A_terseLabel_en-US" xlink:label="lab_us-gaap_AccumulatedOtherComprehensiveIncomeLossTable_1764074BFA5217EECA6035BF4AA28D6A" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Accumulated Other Comprehensive Income (Loss) [Table]</link:label>
    <link:label id="lab_us-gaap_AccumulatedOtherComprehensiveIncomeLossTable_1764074BFA5217EECA6035BF4AA28D6A_label_en-US" xlink:label="lab_us-gaap_AccumulatedOtherComprehensiveIncomeLossTable_1764074BFA5217EECA6035BF4AA28D6A" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Accumulated Other Comprehensive Income (Loss) [Table]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_AccumulatedOtherComprehensiveIncomeLossTable" xlink:label="loc_us-gaap_AccumulatedOtherComprehensiveIncomeLossTable_1764074BFA5217EECA6035BF4AA28D6A" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AccumulatedOtherComprehensiveIncomeLossTable_1764074BFA5217EECA6035BF4AA28D6A" xlink:to="lab_us-gaap_AccumulatedOtherComprehensiveIncomeLossTable_1764074BFA5217EECA6035BF4AA28D6A" xlink:type="arc" />
    <link:label id="lab_us-gaap_StatementEquityComponentsAxis_D545945FF53C465484A935BF4AA3F56B_terseLabel_en-US" xlink:label="lab_us-gaap_StatementEquityComponentsAxis_D545945FF53C465484A935BF4AA3F56B" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Equity Components [Axis]</link:label>
    <link:label id="lab_us-gaap_StatementEquityComponentsAxis_D545945FF53C465484A935BF4AA3F56B_label_en-US" xlink:label="lab_us-gaap_StatementEquityComponentsAxis_D545945FF53C465484A935BF4AA3F56B" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Equity Components [Axis]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_StatementEquityComponentsAxis" xlink:label="loc_us-gaap_StatementEquityComponentsAxis_D545945FF53C465484A935BF4AA3F56B" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_StatementEquityComponentsAxis_D545945FF53C465484A935BF4AA3F56B" xlink:to="lab_us-gaap_StatementEquityComponentsAxis_D545945FF53C465484A935BF4AA3F56B" xlink:type="arc" />
    <link:label id="lab_us-gaap_EquityComponentDomain_960F7B0936E13AFC2DCB35BF4AA329B2_terseLabel_en-US" xlink:label="lab_us-gaap_EquityComponentDomain_960F7B0936E13AFC2DCB35BF4AA329B2" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Equity Component [Domain]</link:label>
    <link:label id="lab_us-gaap_EquityComponentDomain_960F7B0936E13AFC2DCB35BF4AA329B2_label_en-US" xlink:label="lab_us-gaap_EquityComponentDomain_960F7B0936E13AFC2DCB35BF4AA329B2" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Equity Component [Domain]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_EquityComponentDomain" xlink:label="loc_us-gaap_EquityComponentDomain_960F7B0936E13AFC2DCB35BF4AA329B2" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_EquityComponentDomain_960F7B0936E13AFC2DCB35BF4AA329B2" xlink:to="lab_us-gaap_EquityComponentDomain_960F7B0936E13AFC2DCB35BF4AA329B2" xlink:type="arc" />
    <link:label id="lab_us-gaap_AccumulatedOtherComprehensiveIncomeLossLineItems_D3D822DA32B44DCDBAA635BF4AA3F2FC_terseLabel_en-US" xlink:label="lab_us-gaap_AccumulatedOtherComprehensiveIncomeLossLineItems_D3D822DA32B44DCDBAA635BF4AA3F2FC" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Accumulated Other Comprehensive Income (Loss) [Line Items]</link:label>
    <link:label id="lab_us-gaap_AccumulatedOtherComprehensiveIncomeLossLineItems_D3D822DA32B44DCDBAA635BF4AA3F2FC_label_en-US" xlink:label="lab_us-gaap_AccumulatedOtherComprehensiveIncomeLossLineItems_D3D822DA32B44DCDBAA635BF4AA3F2FC" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Accumulated Other Comprehensive Income (Loss) [Line Items]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_AccumulatedOtherComprehensiveIncomeLossLineItems" xlink:label="loc_us-gaap_AccumulatedOtherComprehensiveIncomeLossLineItems_D3D822DA32B44DCDBAA635BF4AA3F2FC" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AccumulatedOtherComprehensiveIncomeLossLineItems_D3D822DA32B44DCDBAA635BF4AA3F2FC" xlink:to="lab_us-gaap_AccumulatedOtherComprehensiveIncomeLossLineItems_D3D822DA32B44DCDBAA635BF4AA3F2FC" xlink:type="arc" />
    <link:label id="lab_us-gaap_AOCIAttributableToParentNetOfTaxRollForward_21E365232ED45223F22035BF4AA3F69D_terseLabel_en-US" xlink:label="lab_us-gaap_AOCIAttributableToParentNetOfTaxRollForward_21E365232ED45223F22035BF4AA3F69D" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Accumulated Other Comprehensive Income (Loss), Net of Tax [Roll Forward]</link:label>
    <link:label id="lab_us-gaap_AOCIAttributableToParentNetOfTaxRollForward_21E365232ED45223F22035BF4AA3F69D_label_en-US" xlink:label="lab_us-gaap_AOCIAttributableToParentNetOfTaxRollForward_21E365232ED45223F22035BF4AA3F69D" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">AOCI Attributable to Parent, Net of Tax [Roll Forward]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_AOCIAttributableToParentNetOfTaxRollForward" xlink:label="loc_us-gaap_AOCIAttributableToParentNetOfTaxRollForward_21E365232ED45223F22035BF4AA3F69D" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AOCIAttributableToParentNetOfTaxRollForward_21E365232ED45223F22035BF4AA3F69D" xlink:to="lab_us-gaap_AOCIAttributableToParentNetOfTaxRollForward_21E365232ED45223F22035BF4AA3F69D" xlink:type="arc" />
    <link:label id="lab_us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax_B988C09C618B4DC3DF7935BF4AA42F90_periodStartLabel_en-US" xlink:label="lab_us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax_B988C09C618B4DC3DF7935BF4AA42F90" xlink:role="http://www.xbrl.org/2003/role/periodStartLabel" xlink:type="resource" xml:lang="en-US">Beginning balance</link:label>
    <link:label id="lab_us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax_B988C09C618B4DC3DF7935BF4AA42F90_label_en-US" xlink:label="lab_us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax_B988C09C618B4DC3DF7935BF4AA42F90" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Accumulated Other Comprehensive Income (Loss), Net of Tax</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax" xlink:label="loc_us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax_B988C09C618B4DC3DF7935BF4AA42F90" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax_B988C09C618B4DC3DF7935BF4AA42F90" xlink:to="lab_us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax_B988C09C618B4DC3DF7935BF4AA42F90" xlink:type="arc" />
    <link:label id="lab_us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax_B696192C41C86A9A064635BF4AA489AE_periodEndLabel_en-US" xlink:label="lab_us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax_B696192C41C86A9A064635BF4AA489AE" xlink:role="http://www.xbrl.org/2003/role/periodEndLabel" xlink:type="resource" xml:lang="en-US">Ending balance</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax" xlink:label="loc_us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax_B696192C41C86A9A064635BF4AA489AE" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax_B696192C41C86A9A064635BF4AA489AE" xlink:to="lab_us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax_B696192C41C86A9A064635BF4AA489AE" xlink:type="arc" />
    <link:label id="lab_us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax_5DFAF42C8EC2258F7DFF35BF4AA4CE79_verboseLabel_en-US" xlink:label="lab_us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax_5DFAF42C8EC2258F7DFF35BF4AA4CE79" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xml:lang="en-US">Balance as of December 31, 2018</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax" xlink:label="loc_us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax_5DFAF42C8EC2258F7DFF35BF4AA4CE79" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax_5DFAF42C8EC2258F7DFF35BF4AA4CE79" xlink:to="lab_us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax_5DFAF42C8EC2258F7DFF35BF4AA4CE79" xlink:type="arc" />
    <link:label id="lab_us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock_D0B98266D579156981748095E82796BC_terseLabel_en-US" xlink:label="lab_us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock_D0B98266D579156981748095E82796BC" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Amortized Intangible Assets</link:label>
    <link:label id="lab_us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock_D0B98266D579156981748095E82796BC_label_en-US" xlink:label="lab_us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock_D0B98266D579156981748095E82796BC" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Schedule of Finite-Lived Intangible Assets [Table Text Block]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock" xlink:label="loc_us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock_D0B98266D579156981748095E82796BC" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock_D0B98266D579156981748095E82796BC" xlink:to="lab_us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock_D0B98266D579156981748095E82796BC" xlink:type="arc" />
    <link:label id="lab_us-gaap_ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock_23860B971F277EF3BA9D8095E8276600_terseLabel_en-US" xlink:label="lab_us-gaap_ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock_23860B971F277EF3BA9D8095E8276600" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Estimated Amortization Expense Succeeding Fiscal Years</link:label>
    <link:label id="lab_us-gaap_ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock_23860B971F277EF3BA9D8095E8276600_label_en-US" xlink:label="lab_us-gaap_ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock_23860B971F277EF3BA9D8095E8276600" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Schedule of Finite-Lived Intangible Assets, Future Amortization Expense [Table Text Block]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock" xlink:label="loc_us-gaap_ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock_23860B971F277EF3BA9D8095E8276600" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock_23860B971F277EF3BA9D8095E8276600" xlink:to="lab_us-gaap_ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock_23860B971F277EF3BA9D8095E8276600" xlink:type="arc" />
    <link:label id="lab_cgnx_RevenuePaymentTerms_D5AC754BA3BC9158A6D6166A9FC877F2_terseLabel_en-US" xlink:label="lab_cgnx_RevenuePaymentTerms_D5AC754BA3BC9158A6D6166A9FC877F2" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Revenue, payment terms</link:label>
    <link:label id="lab_cgnx_RevenuePaymentTerms_D5AC754BA3BC9158A6D6166A9FC877F2_label_en-US" xlink:label="lab_cgnx_RevenuePaymentTerms_D5AC754BA3BC9158A6D6166A9FC877F2" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Revenue, Payment Terms</link:label>
    <link:label id="lab_cgnx_RevenuePaymentTerms_D5AC754BA3BC9158A6D6166A9FC877F2_documentation_en-US" xlink:label="lab_cgnx_RevenuePaymentTerms_D5AC754BA3BC9158A6D6166A9FC877F2" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Revenue, Payment Terms</link:label>
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_RevenuePaymentTerms" xlink:label="loc_cgnx_RevenuePaymentTerms_D5AC754BA3BC9158A6D6166A9FC877F2" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_RevenuePaymentTerms_D5AC754BA3BC9158A6D6166A9FC877F2" xlink:to="lab_cgnx_RevenuePaymentTerms_D5AC754BA3BC9158A6D6166A9FC877F2" xlink:type="arc" />
    <link:label id="lab_us-gaap_NewAccountingPronouncementsOrChangeInAccountingPrincipleTable_46E9E48377B65C81900630EDE0B49C18_terseLabel_en-US" xlink:label="lab_us-gaap_NewAccountingPronouncementsOrChangeInAccountingPrincipleTable_46E9E48377B65C81900630EDE0B49C18" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">New Accounting Pronouncements or Change in Accounting Principle [Table]</link:label>
    <link:label id="lab_us-gaap_NewAccountingPronouncementsOrChangeInAccountingPrincipleTable_46E9E48377B65C81900630EDE0B49C18_label_en-US" xlink:label="lab_us-gaap_NewAccountingPronouncementsOrChangeInAccountingPrincipleTable_46E9E48377B65C81900630EDE0B49C18" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">New Accounting Pronouncements or Change in Accounting Principle [Table]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_NewAccountingPronouncementsOrChangeInAccountingPrincipleTable" xlink:label="loc_us-gaap_NewAccountingPronouncementsOrChangeInAccountingPrincipleTable_46E9E48377B65C81900630EDE0B49C18" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_NewAccountingPronouncementsOrChangeInAccountingPrincipleTable_46E9E48377B65C81900630EDE0B49C18" xlink:to="lab_us-gaap_NewAccountingPronouncementsOrChangeInAccountingPrincipleTable_46E9E48377B65C81900630EDE0B49C18" xlink:type="arc" />
    <link:label id="lab_us-gaap_AccountingStandardsUpdate201602Member_CD77C168680B139B67EC30EDE0B5C4AB_terseLabel_en-US" xlink:label="lab_us-gaap_AccountingStandardsUpdate201602Member_CD77C168680B139B67EC30EDE0B5C4AB" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Accounting Standards Update 2016-02 [Member]</link:label>
    <link:label id="lab_us-gaap_AccountingStandardsUpdate201602Member_CD77C168680B139B67EC30EDE0B5C4AB_label_en-US" xlink:label="lab_us-gaap_AccountingStandardsUpdate201602Member_CD77C168680B139B67EC30EDE0B5C4AB" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Accounting Standards Update 2016-02 [Member]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_AccountingStandardsUpdate201602Member" xlink:label="loc_us-gaap_AccountingStandardsUpdate201602Member_CD77C168680B139B67EC30EDE0B5C4AB" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AccountingStandardsUpdate201602Member_CD77C168680B139B67EC30EDE0B5C4AB" xlink:to="lab_us-gaap_AccountingStandardsUpdate201602Member_CD77C168680B139B67EC30EDE0B5C4AB" xlink:type="arc" />
    <link:label id="lab_us-gaap_StatementScenarioAxis_4ECA7CFBAC4627FF938930EDE0B5811F_terseLabel_en-US" xlink:label="lab_us-gaap_StatementScenarioAxis_4ECA7CFBAC4627FF938930EDE0B5811F" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Scenario [Axis]</link:label>
    <link:label id="lab_us-gaap_StatementScenarioAxis_4ECA7CFBAC4627FF938930EDE0B5811F_label_en-US" xlink:label="lab_us-gaap_StatementScenarioAxis_4ECA7CFBAC4627FF938930EDE0B5811F" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Scenario [Axis]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_StatementScenarioAxis" xlink:label="loc_us-gaap_StatementScenarioAxis_4ECA7CFBAC4627FF938930EDE0B5811F" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_StatementScenarioAxis_4ECA7CFBAC4627FF938930EDE0B5811F" xlink:to="lab_us-gaap_StatementScenarioAxis_4ECA7CFBAC4627FF938930EDE0B5811F" xlink:type="arc" />
    <link:label id="lab_us-gaap_ScenarioUnspecifiedDomain_CF283C5ABC653C3E6E8630EDE0B5B7E1_terseLabel_en-US" xlink:label="lab_us-gaap_ScenarioUnspecifiedDomain_CF283C5ABC653C3E6E8630EDE0B5B7E1" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Scenario, Unspecified [Domain]</link:label>
    <link:label id="lab_us-gaap_ScenarioUnspecifiedDomain_CF283C5ABC653C3E6E8630EDE0B5B7E1_label_en-US" xlink:label="lab_us-gaap_ScenarioUnspecifiedDomain_CF283C5ABC653C3E6E8630EDE0B5B7E1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Scenario, Unspecified [Domain]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ScenarioUnspecifiedDomain" xlink:label="loc_us-gaap_ScenarioUnspecifiedDomain_CF283C5ABC653C3E6E8630EDE0B5B7E1" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ScenarioUnspecifiedDomain_CF283C5ABC653C3E6E8630EDE0B5B7E1" xlink:to="lab_us-gaap_ScenarioUnspecifiedDomain_CF283C5ABC653C3E6E8630EDE0B5B7E1" xlink:type="arc" />
    <link:label id="lab_us-gaap_NewAccountingPronouncementsOrChangeInAccountingPrincipleLineItems_C7CD83291B3AAA2BF3B730EDE0B63751_terseLabel_en-US" xlink:label="lab_us-gaap_NewAccountingPronouncementsOrChangeInAccountingPrincipleLineItems_C7CD83291B3AAA2BF3B730EDE0B63751" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">New Accounting Pronouncements or Change in Accounting Principle [Line Items]</link:label>
    <link:label id="lab_us-gaap_NewAccountingPronouncementsOrChangeInAccountingPrincipleLineItems_C7CD83291B3AAA2BF3B730EDE0B63751_label_en-US" xlink:label="lab_us-gaap_NewAccountingPronouncementsOrChangeInAccountingPrincipleLineItems_C7CD83291B3AAA2BF3B730EDE0B63751" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">New Accounting Pronouncements or Change in Accounting Principle [Line Items]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_NewAccountingPronouncementsOrChangeInAccountingPrincipleLineItems" xlink:label="loc_us-gaap_NewAccountingPronouncementsOrChangeInAccountingPrincipleLineItems_C7CD83291B3AAA2BF3B730EDE0B63751" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_NewAccountingPronouncementsOrChangeInAccountingPrincipleLineItems_C7CD83291B3AAA2BF3B730EDE0B63751" xlink:to="lab_us-gaap_NewAccountingPronouncementsOrChangeInAccountingPrincipleLineItems_C7CD83291B3AAA2BF3B730EDE0B63751" xlink:type="arc" />
    <link:label id="lab_us-gaap_OperatingLeaseRightOfUseAsset_7FCE55CCFD75D062559830EDE0B66D55_terseLabel_en-US" xlink:label="lab_us-gaap_OperatingLeaseRightOfUseAsset_7FCE55CCFD75D062559830EDE0B66D55" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Operating lease assets</link:label>
    <link:label id="lab_us-gaap_OperatingLeaseRightOfUseAsset_7FCE55CCFD75D062559830EDE0B66D55_label_en-US" xlink:label="lab_us-gaap_OperatingLeaseRightOfUseAsset_7FCE55CCFD75D062559830EDE0B66D55" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Operating Lease, Right-of-Use Asset</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_OperatingLeaseRightOfUseAsset" xlink:label="loc_us-gaap_OperatingLeaseRightOfUseAsset_7FCE55CCFD75D062559830EDE0B66D55" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_OperatingLeaseRightOfUseAsset_7FCE55CCFD75D062559830EDE0B66D55" xlink:to="lab_us-gaap_OperatingLeaseRightOfUseAsset_7FCE55CCFD75D062559830EDE0B66D55" xlink:type="arc" />
    <link:label id="lab_us-gaap_OperatingLeaseLiability_C8E122AA1519E0B7F3C930EDE0B68B05_terseLabel_en-US" xlink:label="lab_us-gaap_OperatingLeaseLiability_C8E122AA1519E0B7F3C930EDE0B68B05" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Operating lease, liability</link:label>
    <link:label id="lab_us-gaap_OperatingLeaseLiability_C8E122AA1519E0B7F3C930EDE0B68B05_label_en-US" xlink:label="lab_us-gaap_OperatingLeaseLiability_C8E122AA1519E0B7F3C930EDE0B68B05" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Operating Lease, Liability</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_OperatingLeaseLiability" xlink:label="loc_us-gaap_OperatingLeaseLiability_C8E122AA1519E0B7F3C930EDE0B68B05" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_OperatingLeaseLiability_C8E122AA1519E0B7F3C930EDE0B68B05" xlink:to="lab_us-gaap_OperatingLeaseLiability_C8E122AA1519E0B7F3C930EDE0B68B05" xlink:type="arc" />
    <link:label id="lab_us-gaap_ScheduleOfAccruedLiabilitiesTableTextBlock_09C374DDCA8F9C366E808095E5921674_terseLabel_en-US" xlink:label="lab_us-gaap_ScheduleOfAccruedLiabilitiesTableTextBlock_09C374DDCA8F9C366E808095E5921674" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Constituents of Accrued Expenses</link:label>
    <link:label id="lab_us-gaap_ScheduleOfAccruedLiabilitiesTableTextBlock_09C374DDCA8F9C366E808095E5921674_label_en-US" xlink:label="lab_us-gaap_ScheduleOfAccruedLiabilitiesTableTextBlock_09C374DDCA8F9C366E808095E5921674" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Schedule of Accrued Liabilities [Table Text Block]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ScheduleOfAccruedLiabilitiesTableTextBlock" xlink:label="loc_us-gaap_ScheduleOfAccruedLiabilitiesTableTextBlock_09C374DDCA8F9C366E808095E5921674" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ScheduleOfAccruedLiabilitiesTableTextBlock_09C374DDCA8F9C366E808095E5921674" xlink:to="lab_us-gaap_ScheduleOfAccruedLiabilitiesTableTextBlock_09C374DDCA8F9C366E808095E5921674" xlink:type="arc" />
    <link:label id="lab_us-gaap_ScheduleOfProductWarrantyLiabilityTableTextBlock_9F01C1D7E733BE3D76F28095E5925966_terseLabel_en-US" xlink:label="lab_us-gaap_ScheduleOfProductWarrantyLiabilityTableTextBlock_9F01C1D7E733BE3D76F28095E5925966" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Changes in Warranty Obligations</link:label>
    <link:label id="lab_us-gaap_ScheduleOfProductWarrantyLiabilityTableTextBlock_9F01C1D7E733BE3D76F28095E5925966_label_en-US" xlink:label="lab_us-gaap_ScheduleOfProductWarrantyLiabilityTableTextBlock_9F01C1D7E733BE3D76F28095E5925966" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Schedule of Product Warranty Liability [Table Text Block]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ScheduleOfProductWarrantyLiabilityTableTextBlock" xlink:label="loc_us-gaap_ScheduleOfProductWarrantyLiabilityTableTextBlock_9F01C1D7E733BE3D76F28095E5925966" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ScheduleOfProductWarrantyLiabilityTableTextBlock_9F01C1D7E733BE3D76F28095E5925966" xlink:to="lab_us-gaap_ScheduleOfProductWarrantyLiabilityTableTextBlock_9F01C1D7E733BE3D76F28095E5925966" xlink:type="arc" />
    <link:label id="lab_cgnx_AvailableforsaleSecuritiesDebtMaturitiesEffectiveTermMaximum_382421CB990C0E01A5DE1600E19F288A_terseLabel_en-US" xlink:label="lab_cgnx_AvailableforsaleSecuritiesDebtMaturitiesEffectiveTermMaximum_382421CB990C0E01A5DE1600E19F288A" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Effective maturity of investments</link:label>
    <link:label id="lab_cgnx_AvailableforsaleSecuritiesDebtMaturitiesEffectiveTermMaximum_382421CB990C0E01A5DE1600E19F288A_label_en-US" xlink:label="lab_cgnx_AvailableforsaleSecuritiesDebtMaturitiesEffectiveTermMaximum_382421CB990C0E01A5DE1600E19F288A" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Available-for-sale Securities, Debt Maturities, Effective Term, Maximum</link:label>
    <link:label id="lab_cgnx_AvailableforsaleSecuritiesDebtMaturitiesEffectiveTermMaximum_382421CB990C0E01A5DE1600E19F288A_documentation_en-US" xlink:label="lab_cgnx_AvailableforsaleSecuritiesDebtMaturitiesEffectiveTermMaximum_382421CB990C0E01A5DE1600E19F288A" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Available-for-sale Securities, Debt Maturities, Effective Term, Maximum</link:label>
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_AvailableforsaleSecuritiesDebtMaturitiesEffectiveTermMaximum" xlink:label="loc_cgnx_AvailableforsaleSecuritiesDebtMaturitiesEffectiveTermMaximum_382421CB990C0E01A5DE1600E19F288A" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_AvailableforsaleSecuritiesDebtMaturitiesEffectiveTermMaximum_382421CB990C0E01A5DE1600E19F288A" xlink:to="lab_cgnx_AvailableforsaleSecuritiesDebtMaturitiesEffectiveTermMaximum_382421CB990C0E01A5DE1600E19F288A" xlink:type="arc" />
    <link:label id="lab_cgnx_MaximumInvestmentOfCompanyInPartnership_BC7891510630D88BC85D1600E1A0B77F_terseLabel_en-US" xlink:label="lab_cgnx_MaximumInvestmentOfCompanyInPartnership_BC7891510630D88BC85D1600E1A0B77F" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Maximum investment of the company in partnership</link:label>
    <link:label id="lab_cgnx_MaximumInvestmentOfCompanyInPartnership_BC7891510630D88BC85D1600E1A0B77F_label_en-US" xlink:label="lab_cgnx_MaximumInvestmentOfCompanyInPartnership_BC7891510630D88BC85D1600E1A0B77F" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Maximum Investment Of Company In Partnership</link:label>
    <link:label id="lab_cgnx_MaximumInvestmentOfCompanyInPartnership_BC7891510630D88BC85D1600E1A0B77F_documentation_en-US" xlink:label="lab_cgnx_MaximumInvestmentOfCompanyInPartnership_BC7891510630D88BC85D1600E1A0B77F" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Maximum investment of the company in partnership.</link:label>
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_MaximumInvestmentOfCompanyInPartnership" xlink:label="loc_cgnx_MaximumInvestmentOfCompanyInPartnership_BC7891510630D88BC85D1600E1A0B77F" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_MaximumInvestmentOfCompanyInPartnership_BC7891510630D88BC85D1600E1A0B77F" xlink:to="lab_cgnx_MaximumInvestmentOfCompanyInPartnership_BC7891510630D88BC85D1600E1A0B77F" xlink:type="arc" />
    <link:label id="lab_us-gaap_ScheduleOfPropertyPlantAndEquipmentTable_FF453A375C4B0E6726901600E1A016A6_label_en-US" xlink:label="lab_us-gaap_ScheduleOfPropertyPlantAndEquipmentTable_FF453A375C4B0E6726901600E1A016A6" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Property, Plant and Equipment [Table]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ScheduleOfPropertyPlantAndEquipmentTable" xlink:label="loc_us-gaap_ScheduleOfPropertyPlantAndEquipmentTable_FF453A375C4B0E6726901600E1A016A6" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ScheduleOfPropertyPlantAndEquipmentTable_FF453A375C4B0E6726901600E1A016A6" xlink:to="lab_us-gaap_ScheduleOfPropertyPlantAndEquipmentTable_FF453A375C4B0E6726901600E1A016A6" xlink:type="arc" />
    <link:label id="lab_us-gaap_PropertyPlantAndEquipmentByTypeAxis_0EB68C89F307CBC4B5F81600E1A0B14F_terseLabel_en-US" xlink:label="lab_us-gaap_PropertyPlantAndEquipmentByTypeAxis_0EB68C89F307CBC4B5F81600E1A0B14F" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Property, Plant and Equipment, Type [Axis]</link:label>
    <link:label id="lab_us-gaap_PropertyPlantAndEquipmentByTypeAxis_0EB68C89F307CBC4B5F81600E1A0B14F_label_en-US" xlink:label="lab_us-gaap_PropertyPlantAndEquipmentByTypeAxis_0EB68C89F307CBC4B5F81600E1A0B14F" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Property, Plant and Equipment, Type [Axis]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_PropertyPlantAndEquipmentByTypeAxis" xlink:label="loc_us-gaap_PropertyPlantAndEquipmentByTypeAxis_0EB68C89F307CBC4B5F81600E1A0B14F" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentByTypeAxis_0EB68C89F307CBC4B5F81600E1A0B14F" xlink:to="lab_us-gaap_PropertyPlantAndEquipmentByTypeAxis_0EB68C89F307CBC4B5F81600E1A0B14F" xlink:type="arc" />
    <link:label id="lab_us-gaap_PropertyPlantAndEquipmentTypeDomain_3F8533E132F6D678F39C1600E1A09DE2_terseLabel_en-US" xlink:label="lab_us-gaap_PropertyPlantAndEquipmentTypeDomain_3F8533E132F6D678F39C1600E1A09DE2" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Property, Plant and Equipment, Type [Domain]</link:label>
    <link:label id="lab_us-gaap_PropertyPlantAndEquipmentTypeDomain_3F8533E132F6D678F39C1600E1A09DE2_label_en-US" xlink:label="lab_us-gaap_PropertyPlantAndEquipmentTypeDomain_3F8533E132F6D678F39C1600E1A09DE2" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Property, Plant and Equipment, Type [Domain]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_PropertyPlantAndEquipmentTypeDomain" xlink:label="loc_us-gaap_PropertyPlantAndEquipmentTypeDomain_3F8533E132F6D678F39C1600E1A09DE2" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentTypeDomain_3F8533E132F6D678F39C1600E1A09DE2" xlink:to="lab_us-gaap_PropertyPlantAndEquipmentTypeDomain_3F8533E132F6D678F39C1600E1A09DE2" xlink:type="arc" />
    <link:label id="lab_us-gaap_BuildingMember_527E1E185F0CAE5893AD1600E1A10F92_terseLabel_en-US" xlink:label="lab_us-gaap_BuildingMember_527E1E185F0CAE5893AD1600E1A10F92" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Building [Member]</link:label>
    <link:label id="lab_us-gaap_BuildingMember_527E1E185F0CAE5893AD1600E1A10F92_label_en-US" xlink:label="lab_us-gaap_BuildingMember_527E1E185F0CAE5893AD1600E1A10F92" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Building [Member]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_BuildingMember" xlink:label="loc_us-gaap_BuildingMember_527E1E185F0CAE5893AD1600E1A10F92" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_BuildingMember_527E1E185F0CAE5893AD1600E1A10F92" xlink:to="lab_us-gaap_BuildingMember_527E1E185F0CAE5893AD1600E1A10F92" xlink:type="arc" />
    <link:label id="lab_us-gaap_BuildingImprovementsMember_79F4FB2791899CBB25681600E1A1CE67_terseLabel_en-US" xlink:label="lab_us-gaap_BuildingImprovementsMember_79F4FB2791899CBB25681600E1A1CE67" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Building Improvements [Member]</link:label>
    <link:label id="lab_us-gaap_BuildingImprovementsMember_79F4FB2791899CBB25681600E1A1CE67_label_en-US" xlink:label="lab_us-gaap_BuildingImprovementsMember_79F4FB2791899CBB25681600E1A1CE67" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Building Improvements [Member]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_BuildingImprovementsMember" xlink:label="loc_us-gaap_BuildingImprovementsMember_79F4FB2791899CBB25681600E1A1CE67" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_BuildingImprovementsMember_79F4FB2791899CBB25681600E1A1CE67" xlink:to="lab_us-gaap_BuildingImprovementsMember_79F4FB2791899CBB25681600E1A1CE67" xlink:type="arc" />
    <link:label id="lab_cgnx_ComputerHardwareAndSoftwareMember_E6CF624414F7188ED4971600E1A1E5A7_terseLabel_en-US" xlink:label="lab_cgnx_ComputerHardwareAndSoftwareMember_E6CF624414F7188ED4971600E1A1E5A7" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Computer Hardware and Software [Member]</link:label>
    <link:label id="lab_cgnx_ComputerHardwareAndSoftwareMember_E6CF624414F7188ED4971600E1A1E5A7_label_en-US" xlink:label="lab_cgnx_ComputerHardwareAndSoftwareMember_E6CF624414F7188ED4971600E1A1E5A7" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Computer Hardware And Software [Member]</link:label>
    <link:label id="lab_cgnx_ComputerHardwareAndSoftwareMember_E6CF624414F7188ED4971600E1A1E5A7_documentation_en-US" xlink:label="lab_cgnx_ComputerHardwareAndSoftwareMember_E6CF624414F7188ED4971600E1A1E5A7" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Computer Hardware and Software Member.</link:label>
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_ComputerHardwareAndSoftwareMember" xlink:label="loc_cgnx_ComputerHardwareAndSoftwareMember_E6CF624414F7188ED4971600E1A1E5A7" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_ComputerHardwareAndSoftwareMember_E6CF624414F7188ED4971600E1A1E5A7" xlink:to="lab_cgnx_ComputerHardwareAndSoftwareMember_E6CF624414F7188ED4971600E1A1E5A7" xlink:type="arc" />
    <link:label id="lab_us-gaap_EquipmentMember_1C08E2453968EEBA30231600E1A177CA_verboseLabel_en-US" xlink:label="lab_us-gaap_EquipmentMember_1C08E2453968EEBA30231600E1A177CA" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xml:lang="en-US">Manufacturing Test Equipment [Member]</link:label>
    <link:label id="lab_us-gaap_EquipmentMember_1C08E2453968EEBA30231600E1A177CA_label_en-US" xlink:label="lab_us-gaap_EquipmentMember_1C08E2453968EEBA30231600E1A177CA" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Equipment [Member]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_EquipmentMember" xlink:label="loc_us-gaap_EquipmentMember_1C08E2453968EEBA30231600E1A177CA" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_EquipmentMember_1C08E2453968EEBA30231600E1A177CA" xlink:to="lab_us-gaap_EquipmentMember_1C08E2453968EEBA30231600E1A177CA" xlink:type="arc" />
    <link:label id="lab_us-gaap_FurnitureAndFixturesMember_D19A2165E3C3191654B71600E1A17AB6_terseLabel_en-US" xlink:label="lab_us-gaap_FurnitureAndFixturesMember_D19A2165E3C3191654B71600E1A17AB6" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Furniture and Fixtures [Member]</link:label>
    <link:label id="lab_us-gaap_FurnitureAndFixturesMember_D19A2165E3C3191654B71600E1A17AB6_label_en-US" xlink:label="lab_us-gaap_FurnitureAndFixturesMember_D19A2165E3C3191654B71600E1A17AB6" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Furniture and Fixtures [Member]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_FurnitureAndFixturesMember" xlink:label="loc_us-gaap_FurnitureAndFixturesMember_D19A2165E3C3191654B71600E1A17AB6" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_FurnitureAndFixturesMember_D19A2165E3C3191654B71600E1A17AB6" xlink:to="lab_us-gaap_FurnitureAndFixturesMember_D19A2165E3C3191654B71600E1A17AB6" xlink:type="arc" />
    <link:label id="lab_us-gaap_PropertyPlantAndEquipmentLineItems_204A6F23BC210D454ADB1600E1A33E68_terseLabel_en-US" xlink:label="lab_us-gaap_PropertyPlantAndEquipmentLineItems_204A6F23BC210D454ADB1600E1A33E68" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Property, Plant and Equipment [Line Items]</link:label>
    <link:label id="lab_us-gaap_PropertyPlantAndEquipmentLineItems_204A6F23BC210D454ADB1600E1A33E68_label_en-US" xlink:label="lab_us-gaap_PropertyPlantAndEquipmentLineItems_204A6F23BC210D454ADB1600E1A33E68" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Property, Plant and Equipment [Line Items]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_PropertyPlantAndEquipmentLineItems" xlink:label="loc_us-gaap_PropertyPlantAndEquipmentLineItems_204A6F23BC210D454ADB1600E1A33E68" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentLineItems_204A6F23BC210D454ADB1600E1A33E68" xlink:to="lab_us-gaap_PropertyPlantAndEquipmentLineItems_204A6F23BC210D454ADB1600E1A33E68" xlink:type="arc" />
    <link:label id="lab_us-gaap_PropertyPlantAndEquipmentUsefulLife_901925CE1856ED49CE7F1600E1A3B753_terseLabel_en-US" xlink:label="lab_us-gaap_PropertyPlantAndEquipmentUsefulLife_901925CE1856ED49CE7F1600E1A3B753" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Property, Plant and Equipment, Useful Life</link:label>
    <link:label id="lab_us-gaap_PropertyPlantAndEquipmentUsefulLife_901925CE1856ED49CE7F1600E1A3B753_label_en-US" xlink:label="lab_us-gaap_PropertyPlantAndEquipmentUsefulLife_901925CE1856ED49CE7F1600E1A3B753" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Property, Plant and Equipment, Useful Life</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_PropertyPlantAndEquipmentUsefulLife" xlink:label="loc_us-gaap_PropertyPlantAndEquipmentUsefulLife_901925CE1856ED49CE7F1600E1A3B753" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentUsefulLife_901925CE1856ED49CE7F1600E1A3B753" xlink:to="lab_us-gaap_PropertyPlantAndEquipmentUsefulLife_901925CE1856ED49CE7F1600E1A3B753" xlink:type="arc" />
    <link:label id="lab_srt_CurrencyAxis_0B2C204A07078114E70830F90F349F48_terseLabel_en-US" xlink:label="lab_srt_CurrencyAxis_0B2C204A07078114E70830F90F349F48" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Currency [Axis]</link:label>
    <link:label id="lab_srt_CurrencyAxis_0B2C204A07078114E70830F90F349F48_label_en-US" xlink:label="lab_srt_CurrencyAxis_0B2C204A07078114E70830F90F349F48" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Currency [Axis]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2018/elts/srt-2018-01-31.xsd#srt_CurrencyAxis" xlink:label="loc_srt_CurrencyAxis_0B2C204A07078114E70830F90F349F48" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_srt_CurrencyAxis_0B2C204A07078114E70830F90F349F48" xlink:to="lab_srt_CurrencyAxis_0B2C204A07078114E70830F90F349F48" xlink:type="arc" />
    <link:label id="lab_currency_AllCurrenciesDomain_2923F30B1916FBDAA82E30F90F3417F9_terseLabel_en-US" xlink:label="lab_currency_AllCurrenciesDomain_2923F30B1916FBDAA82E30F90F3417F9" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">All Currencies [Domain]</link:label>
    <link:label id="lab_currency_AllCurrenciesDomain_2923F30B1916FBDAA82E30F90F3417F9_label_en-US" xlink:label="lab_currency_AllCurrenciesDomain_2923F30B1916FBDAA82E30F90F3417F9" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">All Currencies [Domain]</link:label>
    <link:loc xlink:href="http://xbrl.sec.gov/currency/2017/currency-2017-01-31.xsd#currency_AllCurrenciesDomain" xlink:label="loc_currency_AllCurrenciesDomain_2923F30B1916FBDAA82E30F90F3417F9" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_currency_AllCurrenciesDomain_2923F30B1916FBDAA82E30F90F3417F9" xlink:to="lab_currency_AllCurrenciesDomain_2923F30B1916FBDAA82E30F90F3417F9" xlink:type="arc" />
    <link:label id="lab_currency_KRW_AF2C26702AA946496BB330F90F35010F_terseLabel_en-US" xlink:label="lab_currency_KRW_AF2C26702AA946496BB330F90F35010F" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Korean Won [Member]</link:label>
    <link:label id="lab_currency_KRW_AF2C26702AA946496BB330F90F35010F_label_en-US" xlink:label="lab_currency_KRW_AF2C26702AA946496BB330F90F35010F" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Korea (South), Won</link:label>
    <link:loc xlink:href="http://xbrl.sec.gov/currency/2017/currency-2017-01-31.xsd#currency_KRW" xlink:label="loc_currency_KRW_AF2C26702AA946496BB330F90F35010F" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_currency_KRW_AF2C26702AA946496BB330F90F35010F" xlink:to="lab_currency_KRW_AF2C26702AA946496BB330F90F35010F" xlink:type="arc" />
    <link:label id="lab_currency_EUR_023DCB8820A1C400CDB130F90F35E55B_terseLabel_en-US" xlink:label="lab_currency_EUR_023DCB8820A1C400CDB130F90F35E55B" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Euro [Member]</link:label>
    <link:label id="lab_currency_EUR_023DCB8820A1C400CDB130F90F35E55B_label_en-US" xlink:label="lab_currency_EUR_023DCB8820A1C400CDB130F90F35E55B" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Euro Member Countries, Euro</link:label>
    <link:loc xlink:href="http://xbrl.sec.gov/currency/2017/currency-2017-01-31.xsd#currency_EUR" xlink:label="loc_currency_EUR_023DCB8820A1C400CDB130F90F35E55B" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_currency_EUR_023DCB8820A1C400CDB130F90F35E55B" xlink:to="lab_currency_EUR_023DCB8820A1C400CDB130F90F35E55B" xlink:type="arc" />
    <link:label id="lab_currency_JPY_02DBFD1482065484886B30F90F351F1B_terseLabel_en-US" xlink:label="lab_currency_JPY_02DBFD1482065484886B30F90F351F1B" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Japanese Yen [Member]</link:label>
    <link:label id="lab_currency_JPY_02DBFD1482065484886B30F90F351F1B_label_en-US" xlink:label="lab_currency_JPY_02DBFD1482065484886B30F90F351F1B" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Japan, Yen</link:label>
    <link:loc xlink:href="http://xbrl.sec.gov/currency/2017/currency-2017-01-31.xsd#currency_JPY" xlink:label="loc_currency_JPY_02DBFD1482065484886B30F90F351F1B" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_currency_JPY_02DBFD1482065484886B30F90F351F1B" xlink:to="lab_currency_JPY_02DBFD1482065484886B30F90F351F1B" xlink:type="arc" />
    <link:label id="lab_currency_MXN_B44052A0666C51C413A530F90F356030_terseLabel_en-US" xlink:label="lab_currency_MXN_B44052A0666C51C413A530F90F356030" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Mexican Peso [Member]</link:label>
    <link:label id="lab_currency_MXN_B44052A0666C51C413A530F90F356030_label_en-US" xlink:label="lab_currency_MXN_B44052A0666C51C413A530F90F356030" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Mexico, Pesos</link:label>
    <link:loc xlink:href="http://xbrl.sec.gov/currency/2017/currency-2017-01-31.xsd#currency_MXN" xlink:label="loc_currency_MXN_B44052A0666C51C413A530F90F356030" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_currency_MXN_B44052A0666C51C413A530F90F356030" xlink:to="lab_currency_MXN_B44052A0666C51C413A530F90F356030" xlink:type="arc" />
    <link:label id="lab_currency_GBP_6BBA5BD7DDE021DEEA6830F90F353F19_terseLabel_en-US" xlink:label="lab_currency_GBP_6BBA5BD7DDE021DEEA6830F90F353F19" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">British Pound [Member]</link:label>
    <link:label id="lab_currency_GBP_6BBA5BD7DDE021DEEA6830F90F353F19_label_en-US" xlink:label="lab_currency_GBP_6BBA5BD7DDE021DEEA6830F90F353F19" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">United Kingdom, Pounds</link:label>
    <link:loc xlink:href="http://xbrl.sec.gov/currency/2017/currency-2017-01-31.xsd#currency_GBP" xlink:label="loc_currency_GBP_6BBA5BD7DDE021DEEA6830F90F353F19" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_currency_GBP_6BBA5BD7DDE021DEEA6830F90F353F19" xlink:to="lab_currency_GBP_6BBA5BD7DDE021DEEA6830F90F353F19" xlink:type="arc" />
    <link:label id="lab_currency_HUF_CB6AC627E4007A2B005B30F90F360E3B_terseLabel_en-US" xlink:label="lab_currency_HUF_CB6AC627E4007A2B005B30F90F360E3B" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Hungarian Forint [Member]</link:label>
    <link:label id="lab_currency_HUF_CB6AC627E4007A2B005B30F90F360E3B_label_en-US" xlink:label="lab_currency_HUF_CB6AC627E4007A2B005B30F90F360E3B" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Hungary, Forint</link:label>
    <link:loc xlink:href="http://xbrl.sec.gov/currency/2017/currency-2017-01-31.xsd#currency_HUF" xlink:label="loc_currency_HUF_CB6AC627E4007A2B005B30F90F360E3B" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_currency_HUF_CB6AC627E4007A2B005B30F90F360E3B" xlink:to="lab_currency_HUF_CB6AC627E4007A2B005B30F90F360E3B" xlink:type="arc" />
    <link:label id="lab_currency_TWD_E9498BE22828B1EAE59F30F90F36F8A3_terseLabel_en-US" xlink:label="lab_currency_TWD_E9498BE22828B1EAE59F30F90F36F8A3" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Taiwanese Dollar [Member]</link:label>
    <link:label id="lab_currency_TWD_E9498BE22828B1EAE59F30F90F36F8A3_label_en-US" xlink:label="lab_currency_TWD_E9498BE22828B1EAE59F30F90F36F8A3" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Taiwan, New Dollars</link:label>
    <link:loc xlink:href="http://xbrl.sec.gov/currency/2017/currency-2017-01-31.xsd#currency_TWD" xlink:label="loc_currency_TWD_E9498BE22828B1EAE59F30F90F36F8A3" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_currency_TWD_E9498BE22828B1EAE59F30F90F36F8A3" xlink:to="lab_currency_TWD_E9498BE22828B1EAE59F30F90F36F8A3" xlink:type="arc" />
    <link:label id="lab_currency_CAD_BC20211A8F8FD6371E8930F90F361A44_terseLabel_en-US" xlink:label="lab_currency_CAD_BC20211A8F8FD6371E8930F90F361A44" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Canadian Dollar [Member]</link:label>
    <link:label id="lab_currency_CAD_BC20211A8F8FD6371E8930F90F361A44_label_en-US" xlink:label="lab_currency_CAD_BC20211A8F8FD6371E8930F90F361A44" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Canada, Dollars</link:label>
    <link:loc xlink:href="http://xbrl.sec.gov/currency/2017/currency-2017-01-31.xsd#currency_CAD" xlink:label="loc_currency_CAD_BC20211A8F8FD6371E8930F90F361A44" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_currency_CAD_BC20211A8F8FD6371E8930F90F361A44" xlink:to="lab_currency_CAD_BC20211A8F8FD6371E8930F90F361A44" xlink:type="arc" />
    <link:label id="lab_currency_SGD_ACE2642FAA600CC7377A30F90F367FBE_terseLabel_en-US" xlink:label="lab_currency_SGD_ACE2642FAA600CC7377A30F90F367FBE" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Singapore Dollar [Member]</link:label>
    <link:label id="lab_currency_SGD_ACE2642FAA600CC7377A30F90F367FBE_label_en-US" xlink:label="lab_currency_SGD_ACE2642FAA600CC7377A30F90F367FBE" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Singapore, Dollars</link:label>
    <link:loc xlink:href="http://xbrl.sec.gov/currency/2017/currency-2017-01-31.xsd#currency_SGD" xlink:label="loc_currency_SGD_ACE2642FAA600CC7377A30F90F367FBE" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_currency_SGD_ACE2642FAA600CC7377A30F90F367FBE" xlink:to="lab_currency_SGD_ACE2642FAA600CC7377A30F90F367FBE" xlink:type="arc" />
    <link:label id="lab_us-gaap_DerivativeAssetNotionalAmount_88D3145E544E878F2C5D30F90F37A8EA_terseLabel_en-US" xlink:label="lab_us-gaap_DerivativeAssetNotionalAmount_88D3145E544E878F2C5D30F90F37A8EA" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Derivative Asset, Notional Amount</link:label>
    <link:label id="lab_us-gaap_DerivativeAssetNotionalAmount_88D3145E544E878F2C5D30F90F37A8EA_label_en-US" xlink:label="lab_us-gaap_DerivativeAssetNotionalAmount_88D3145E544E878F2C5D30F90F37A8EA" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Derivative Asset, Notional Amount</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_DerivativeAssetNotionalAmount" xlink:label="loc_us-gaap_DerivativeAssetNotionalAmount_88D3145E544E878F2C5D30F90F37A8EA" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DerivativeAssetNotionalAmount_88D3145E544E878F2C5D30F90F37A8EA" xlink:to="lab_us-gaap_DerivativeAssetNotionalAmount_88D3145E544E878F2C5D30F90F37A8EA" xlink:type="arc" />
    <link:label id="lab_us-gaap_PropertyPlantAndEquipmentDisclosureTextBlock_7AECD14A9599B2F040138095E7F721FE_terseLabel_en-US" xlink:label="lab_us-gaap_PropertyPlantAndEquipmentDisclosureTextBlock_7AECD14A9599B2F040138095E7F721FE" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Property, Plant, and Equipment</link:label>
    <link:label id="lab_us-gaap_PropertyPlantAndEquipmentDisclosureTextBlock_7AECD14A9599B2F040138095E7F721FE_label_en-US" xlink:label="lab_us-gaap_PropertyPlantAndEquipmentDisclosureTextBlock_7AECD14A9599B2F040138095E7F721FE" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Property, Plant and Equipment Disclosure [Text Block]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_PropertyPlantAndEquipmentDisclosureTextBlock" xlink:label="loc_us-gaap_PropertyPlantAndEquipmentDisclosureTextBlock_7AECD14A9599B2F040138095E7F721FE" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentDisclosureTextBlock_7AECD14A9599B2F040138095E7F721FE" xlink:to="lab_us-gaap_PropertyPlantAndEquipmentDisclosureTextBlock_7AECD14A9599B2F040138095E7F721FE" xlink:type="arc" />
    <link:label id="lab_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisTable_8E6A7C40F4F31B776D76F3C9003471D3_terseLabel_en-US" xlink:label="lab_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisTable_8E6A7C40F4F31B776D76F3C9003471D3" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Fair Value Measurements, Recurring and Nonrecurring [Table]</link:label>
    <link:label id="lab_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisTable_8E6A7C40F4F31B776D76F3C9003471D3_label_en-US" xlink:label="lab_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisTable_8E6A7C40F4F31B776D76F3C9003471D3" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Fair Value Measurements, Recurring and Nonrecurring [Table]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisTable" xlink:label="loc_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisTable_8E6A7C40F4F31B776D76F3C9003471D3" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisTable_8E6A7C40F4F31B776D76F3C9003471D3" xlink:to="lab_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisTable_8E6A7C40F4F31B776D76F3C9003471D3" xlink:type="arc" />
    <link:label id="lab_us-gaap_FairValueByFairValueHierarchyLevelAxis_72F69AD3B2633AD13DB1F3C90035607D_terseLabel_en-US" xlink:label="lab_us-gaap_FairValueByFairValueHierarchyLevelAxis_72F69AD3B2633AD13DB1F3C90035607D" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Fair Value Hierarchy and NAV [Axis]</link:label>
    <link:label id="lab_us-gaap_FairValueByFairValueHierarchyLevelAxis_72F69AD3B2633AD13DB1F3C90035607D_label_en-US" xlink:label="lab_us-gaap_FairValueByFairValueHierarchyLevelAxis_72F69AD3B2633AD13DB1F3C90035607D" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Fair Value Hierarchy and NAV [Axis]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_FairValueByFairValueHierarchyLevelAxis" xlink:label="loc_us-gaap_FairValueByFairValueHierarchyLevelAxis_72F69AD3B2633AD13DB1F3C90035607D" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_FairValueByFairValueHierarchyLevelAxis_72F69AD3B2633AD13DB1F3C90035607D" xlink:to="lab_us-gaap_FairValueByFairValueHierarchyLevelAxis_72F69AD3B2633AD13DB1F3C90035607D" xlink:type="arc" />
    <link:label id="lab_us-gaap_FairValueMeasurementsFairValueHierarchyDomain_20F729C55C38CF342375F3C90035CD53_terseLabel_en-US" xlink:label="lab_us-gaap_FairValueMeasurementsFairValueHierarchyDomain_20F729C55C38CF342375F3C90035CD53" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Fair Value, Measurements, Fair Value Hierarchy [Domain]</link:label>
    <link:label id="lab_us-gaap_FairValueMeasurementsFairValueHierarchyDomain_20F729C55C38CF342375F3C90035CD53_label_en-US" xlink:label="lab_us-gaap_FairValueMeasurementsFairValueHierarchyDomain_20F729C55C38CF342375F3C90035CD53" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Fair Value Hierarchy and NAV [Domain]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_FairValueMeasurementsFairValueHierarchyDomain" xlink:label="loc_us-gaap_FairValueMeasurementsFairValueHierarchyDomain_20F729C55C38CF342375F3C90035CD53" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_FairValueMeasurementsFairValueHierarchyDomain_20F729C55C38CF342375F3C90035CD53" xlink:to="lab_us-gaap_FairValueMeasurementsFairValueHierarchyDomain_20F729C55C38CF342375F3C90035CD53" xlink:type="arc" />
    <link:label id="lab_us-gaap_FairValueInputsLevel1Member_5E8E89A51A7199A033D1F3C90035725C_terseLabel_en-US" xlink:label="lab_us-gaap_FairValueInputsLevel1Member_5E8E89A51A7199A033D1F3C90035725C" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Quoted Prices in Active Markets for Identical Assets (Level 1)</link:label>
    <link:label id="lab_us-gaap_FairValueInputsLevel1Member_5E8E89A51A7199A033D1F3C90035725C_label_en-US" xlink:label="lab_us-gaap_FairValueInputsLevel1Member_5E8E89A51A7199A033D1F3C90035725C" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Fair Value, Inputs, Level 1 [Member]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_FairValueInputsLevel1Member" xlink:label="loc_us-gaap_FairValueInputsLevel1Member_5E8E89A51A7199A033D1F3C90035725C" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_FairValueInputsLevel1Member_5E8E89A51A7199A033D1F3C90035725C" xlink:to="lab_us-gaap_FairValueInputsLevel1Member_5E8E89A51A7199A033D1F3C90035725C" xlink:type="arc" />
    <link:label id="lab_us-gaap_FairValueInputsLevel2Member_C9F2ABF2C16D4BEA6623F3C90036E376_terseLabel_en-US" xlink:label="lab_us-gaap_FairValueInputsLevel2Member_C9F2ABF2C16D4BEA6623F3C90036E376" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Significant Other Observable Inputs (Level 2)</link:label>
    <link:label id="lab_us-gaap_FairValueInputsLevel2Member_C9F2ABF2C16D4BEA6623F3C90036E376_label_en-US" xlink:label="lab_us-gaap_FairValueInputsLevel2Member_C9F2ABF2C16D4BEA6623F3C90036E376" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Fair Value, Inputs, Level 2 [Member]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_FairValueInputsLevel2Member" xlink:label="loc_us-gaap_FairValueInputsLevel2Member_C9F2ABF2C16D4BEA6623F3C90036E376" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_FairValueInputsLevel2Member_C9F2ABF2C16D4BEA6623F3C90036E376" xlink:to="lab_us-gaap_FairValueInputsLevel2Member_C9F2ABF2C16D4BEA6623F3C90036E376" xlink:type="arc" />
    <link:label id="lab_us-gaap_FairValueInputsLevel3Member_3A7BE9FE52C9B92FC50AF3C90036550E_terseLabel_en-US" xlink:label="lab_us-gaap_FairValueInputsLevel3Member_3A7BE9FE52C9B92FC50AF3C90036550E" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Unobservable Inputs (Level 3)</link:label>
    <link:label id="lab_us-gaap_FairValueInputsLevel3Member_3A7BE9FE52C9B92FC50AF3C90036550E_label_en-US" xlink:label="lab_us-gaap_FairValueInputsLevel3Member_3A7BE9FE52C9B92FC50AF3C90036550E" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Fair Value, Inputs, Level 3 [Member]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_FairValueInputsLevel3Member" xlink:label="loc_us-gaap_FairValueInputsLevel3Member_3A7BE9FE52C9B92FC50AF3C90036550E" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_FairValueInputsLevel3Member_3A7BE9FE52C9B92FC50AF3C90036550E" xlink:to="lab_us-gaap_FairValueInputsLevel3Member_3A7BE9FE52C9B92FC50AF3C90036550E" xlink:type="arc" />
    <link:label id="lab_us-gaap_FairValueByMeasurementFrequencyAxis_8BE98BA05A7A35AA64CBF3C900366396_terseLabel_en-US" xlink:label="lab_us-gaap_FairValueByMeasurementFrequencyAxis_8BE98BA05A7A35AA64CBF3C900366396" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Measurement Frequency [Axis]</link:label>
    <link:label id="lab_us-gaap_FairValueByMeasurementFrequencyAxis_8BE98BA05A7A35AA64CBF3C900366396_label_en-US" xlink:label="lab_us-gaap_FairValueByMeasurementFrequencyAxis_8BE98BA05A7A35AA64CBF3C900366396" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Measurement Frequency [Axis]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_FairValueByMeasurementFrequencyAxis" xlink:label="loc_us-gaap_FairValueByMeasurementFrequencyAxis_8BE98BA05A7A35AA64CBF3C900366396" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_FairValueByMeasurementFrequencyAxis_8BE98BA05A7A35AA64CBF3C900366396" xlink:to="lab_us-gaap_FairValueByMeasurementFrequencyAxis_8BE98BA05A7A35AA64CBF3C900366396" xlink:type="arc" />
    <link:label id="lab_us-gaap_FairValueMeasurementFrequencyDomain_5C45205616BBEF045A36F3C90036BF7C_terseLabel_en-US" xlink:label="lab_us-gaap_FairValueMeasurementFrequencyDomain_5C45205616BBEF045A36F3C90036BF7C" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Fair Value, Measurement Frequency [Domain]</link:label>
    <link:label id="lab_us-gaap_FairValueMeasurementFrequencyDomain_5C45205616BBEF045A36F3C90036BF7C_label_en-US" xlink:label="lab_us-gaap_FairValueMeasurementFrequencyDomain_5C45205616BBEF045A36F3C90036BF7C" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Fair Value, Measurement Frequency [Domain]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_FairValueMeasurementFrequencyDomain" xlink:label="loc_us-gaap_FairValueMeasurementFrequencyDomain_5C45205616BBEF045A36F3C90036BF7C" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_FairValueMeasurementFrequencyDomain_5C45205616BBEF045A36F3C90036BF7C" xlink:to="lab_us-gaap_FairValueMeasurementFrequencyDomain_5C45205616BBEF045A36F3C90036BF7C" xlink:type="arc" />
    <link:label id="lab_us-gaap_FairValueMeasurementsRecurringMember_0B17EB267FAE7BBBA593F3C900368501_terseLabel_en-US" xlink:label="lab_us-gaap_FairValueMeasurementsRecurringMember_0B17EB267FAE7BBBA593F3C900368501" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Fair Value, Measurements, Recurring</link:label>
    <link:label id="lab_us-gaap_FairValueMeasurementsRecurringMember_0B17EB267FAE7BBBA593F3C900368501_label_en-US" xlink:label="lab_us-gaap_FairValueMeasurementsRecurringMember_0B17EB267FAE7BBBA593F3C900368501" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Fair Value, Measurements, Recurring [Member]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_FairValueMeasurementsRecurringMember" xlink:label="loc_us-gaap_FairValueMeasurementsRecurringMember_0B17EB267FAE7BBBA593F3C900368501" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_FairValueMeasurementsRecurringMember_0B17EB267FAE7BBBA593F3C900368501" xlink:to="lab_us-gaap_FairValueMeasurementsRecurringMember_0B17EB267FAE7BBBA593F3C900368501" xlink:type="arc" />
    <link:label id="lab_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems_AECFBEC4AD4CFA4443BFF3C900375C2F_terseLabel_en-US" xlink:label="lab_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems_AECFBEC4AD4CFA4443BFF3C900375C2F" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Fair Value, Assets and Liabilities Measured on Recurring and Nonrecurring Basis [Line Items]</link:label>
    <link:label id="lab_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems_AECFBEC4AD4CFA4443BFF3C900375C2F_label_en-US" xlink:label="lab_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems_AECFBEC4AD4CFA4443BFF3C900375C2F" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Fair Value, Assets and Liabilities Measured on Recurring and Nonrecurring Basis [Line Items]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems" xlink:label="loc_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems_AECFBEC4AD4CFA4443BFF3C900375C2F" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems_AECFBEC4AD4CFA4443BFF3C900375C2F" xlink:to="lab_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems_AECFBEC4AD4CFA4443BFF3C900375C2F" xlink:type="arc" />
    <link:label id="lab_us-gaap_AssetsFairValueDisclosureAbstract_FC05C4386DDA7DFDF1F5F3C90037A59D_terseLabel_en-US" xlink:label="lab_us-gaap_AssetsFairValueDisclosureAbstract_FC05C4386DDA7DFDF1F5F3C90037A59D" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Assets:</link:label>
    <link:label id="lab_us-gaap_AssetsFairValueDisclosureAbstract_FC05C4386DDA7DFDF1F5F3C90037A59D_label_en-US" xlink:label="lab_us-gaap_AssetsFairValueDisclosureAbstract_FC05C4386DDA7DFDF1F5F3C90037A59D" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Assets, Fair Value Disclosure [Abstract]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_AssetsFairValueDisclosureAbstract" xlink:label="loc_us-gaap_AssetsFairValueDisclosureAbstract_FC05C4386DDA7DFDF1F5F3C90037A59D" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AssetsFairValueDisclosureAbstract_FC05C4386DDA7DFDF1F5F3C90037A59D" xlink:to="lab_us-gaap_AssetsFairValueDisclosureAbstract_FC05C4386DDA7DFDF1F5F3C90037A59D" xlink:type="arc" />
    <link:label id="lab_cgnx_MoneyMarketInstrumentsFairValueDisclosure_54C03A6A32D64234A519F3C90037144B_terseLabel_en-US" xlink:label="lab_cgnx_MoneyMarketInstrumentsFairValueDisclosure_54C03A6A32D64234A519F3C90037144B" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Money market instruments</link:label>
    <link:label id="lab_cgnx_MoneyMarketInstrumentsFairValueDisclosure_54C03A6A32D64234A519F3C90037144B_label_en-US" xlink:label="lab_cgnx_MoneyMarketInstrumentsFairValueDisclosure_54C03A6A32D64234A519F3C90037144B" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Money Market Instruments Fair Value Disclosure</link:label>
    <link:label id="lab_cgnx_MoneyMarketInstrumentsFairValueDisclosure_54C03A6A32D64234A519F3C90037144B_documentation_en-US" xlink:label="lab_cgnx_MoneyMarketInstrumentsFairValueDisclosure_54C03A6A32D64234A519F3C90037144B" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Money market instruments fair value disclosure.</link:label>
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_MoneyMarketInstrumentsFairValueDisclosure" xlink:label="loc_cgnx_MoneyMarketInstrumentsFairValueDisclosure_54C03A6A32D64234A519F3C90037144B" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_MoneyMarketInstrumentsFairValueDisclosure_54C03A6A32D64234A519F3C90037144B" xlink:to="lab_cgnx_MoneyMarketInstrumentsFairValueDisclosure_54C03A6A32D64234A519F3C90037144B" xlink:type="arc" />
    <link:label id="lab_cgnx_TreasuryBillsFairValueDisclosure_172950622E1E06DE5B36F3C90038C0F9_terseLabel_en-US" xlink:label="lab_cgnx_TreasuryBillsFairValueDisclosure_172950622E1E06DE5B36F3C90038C0F9" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Treasury bills</link:label>
    <link:label id="lab_cgnx_TreasuryBillsFairValueDisclosure_172950622E1E06DE5B36F3C90038C0F9_label_en-US" xlink:label="lab_cgnx_TreasuryBillsFairValueDisclosure_172950622E1E06DE5B36F3C90038C0F9" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Treasury Bills Fair Value Disclosure</link:label>
    <link:label id="lab_cgnx_TreasuryBillsFairValueDisclosure_172950622E1E06DE5B36F3C90038C0F9_documentation_en-US" xlink:label="lab_cgnx_TreasuryBillsFairValueDisclosure_172950622E1E06DE5B36F3C90038C0F9" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Treasury bills fair value disclosure.</link:label>
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_TreasuryBillsFairValueDisclosure" xlink:label="loc_cgnx_TreasuryBillsFairValueDisclosure_172950622E1E06DE5B36F3C90038C0F9" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_TreasuryBillsFairValueDisclosure_172950622E1E06DE5B36F3C90038C0F9" xlink:to="lab_cgnx_TreasuryBillsFairValueDisclosure_172950622E1E06DE5B36F3C90038C0F9" xlink:type="arc" />
    <link:label id="lab_cgnx_CorporateBondsFairValueDisclosure_B9E527EB9721B8DE7481F3C900387FCC_terseLabel_en-US" xlink:label="lab_cgnx_CorporateBondsFairValueDisclosure_B9E527EB9721B8DE7481F3C900387FCC" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Corporate bonds</link:label>
    <link:label id="lab_cgnx_CorporateBondsFairValueDisclosure_B9E527EB9721B8DE7481F3C900387FCC_label_en-US" xlink:label="lab_cgnx_CorporateBondsFairValueDisclosure_B9E527EB9721B8DE7481F3C900387FCC" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Corporate Bonds Fair Value Disclosure</link:label>
    <link:label id="lab_cgnx_CorporateBondsFairValueDisclosure_B9E527EB9721B8DE7481F3C900387FCC_documentation_en-US" xlink:label="lab_cgnx_CorporateBondsFairValueDisclosure_B9E527EB9721B8DE7481F3C900387FCC" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Corporate bonds fair value disclosure.</link:label>
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_CorporateBondsFairValueDisclosure" xlink:label="loc_cgnx_CorporateBondsFairValueDisclosure_B9E527EB9721B8DE7481F3C900387FCC" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_CorporateBondsFairValueDisclosure_B9E527EB9721B8DE7481F3C900387FCC" xlink:to="lab_cgnx_CorporateBondsFairValueDisclosure_B9E527EB9721B8DE7481F3C900387FCC" xlink:type="arc" />
    <link:label id="lab_cgnx_AssetBackedSecuritiesFairValueDisclosure_94EA398A981D960EB0B2F3C900383DDF_verboseLabel_en-US" xlink:label="lab_cgnx_AssetBackedSecuritiesFairValueDisclosure_94EA398A981D960EB0B2F3C900383DDF" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xml:lang="en-US">Asset-backed securities</link:label>
    <link:label id="lab_cgnx_AssetBackedSecuritiesFairValueDisclosure_94EA398A981D960EB0B2F3C900383DDF_label_en-US" xlink:label="lab_cgnx_AssetBackedSecuritiesFairValueDisclosure_94EA398A981D960EB0B2F3C900383DDF" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Asset Backed Securities Fair Value Disclosure</link:label>
    <link:label id="lab_cgnx_AssetBackedSecuritiesFairValueDisclosure_94EA398A981D960EB0B2F3C900383DDF_documentation_en-US" xlink:label="lab_cgnx_AssetBackedSecuritiesFairValueDisclosure_94EA398A981D960EB0B2F3C900383DDF" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Asset Backed Securities Fair Value Disclosure</link:label>
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_AssetBackedSecuritiesFairValueDisclosure" xlink:label="loc_cgnx_AssetBackedSecuritiesFairValueDisclosure_94EA398A981D960EB0B2F3C900383DDF" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_AssetBackedSecuritiesFairValueDisclosure_94EA398A981D960EB0B2F3C900383DDF" xlink:to="lab_cgnx_AssetBackedSecuritiesFairValueDisclosure_94EA398A981D960EB0B2F3C900383DDF" xlink:type="arc" />
    <link:label id="lab_cgnx_SovereignBondsFairValueDisclosure_0EDDCC5B05518E8B3BD3F3C90038C0A1_terseLabel_en-US" xlink:label="lab_cgnx_SovereignBondsFairValueDisclosure_0EDDCC5B05518E8B3BD3F3C90038C0A1" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Sovereign bonds</link:label>
    <link:label id="lab_cgnx_SovereignBondsFairValueDisclosure_0EDDCC5B05518E8B3BD3F3C90038C0A1_label_en-US" xlink:label="lab_cgnx_SovereignBondsFairValueDisclosure_0EDDCC5B05518E8B3BD3F3C90038C0A1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Sovereign Bonds Fair Value Disclosure</link:label>
    <link:label id="lab_cgnx_SovereignBondsFairValueDisclosure_0EDDCC5B05518E8B3BD3F3C90038C0A1_documentation_en-US" xlink:label="lab_cgnx_SovereignBondsFairValueDisclosure_0EDDCC5B05518E8B3BD3F3C90038C0A1" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Sovereign bonds fair value disclosure.</link:label>
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_SovereignBondsFairValueDisclosure" xlink:label="loc_cgnx_SovereignBondsFairValueDisclosure_0EDDCC5B05518E8B3BD3F3C90038C0A1" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_SovereignBondsFairValueDisclosure_0EDDCC5B05518E8B3BD3F3C90038C0A1" xlink:to="lab_cgnx_SovereignBondsFairValueDisclosure_0EDDCC5B05518E8B3BD3F3C90038C0A1" xlink:type="arc" />
    <link:label id="lab_cgnx_MunicipalBondsFairValueDisclosure_AD570EE7AB3C3FF2C976F3C90038EFFA_terseLabel_en-US" xlink:label="lab_cgnx_MunicipalBondsFairValueDisclosure_AD570EE7AB3C3FF2C976F3C90038EFFA" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Municipal bonds</link:label>
    <link:label id="lab_cgnx_MunicipalBondsFairValueDisclosure_AD570EE7AB3C3FF2C976F3C90038EFFA_label_en-US" xlink:label="lab_cgnx_MunicipalBondsFairValueDisclosure_AD570EE7AB3C3FF2C976F3C90038EFFA" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Municipal Bonds Fair Value Disclosure</link:label>
    <link:label id="lab_cgnx_MunicipalBondsFairValueDisclosure_AD570EE7AB3C3FF2C976F3C90038EFFA_documentation_en-US" xlink:label="lab_cgnx_MunicipalBondsFairValueDisclosure_AD570EE7AB3C3FF2C976F3C90038EFFA" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Municipal bonds fair value disclosure.</link:label>
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_MunicipalBondsFairValueDisclosure" xlink:label="loc_cgnx_MunicipalBondsFairValueDisclosure_AD570EE7AB3C3FF2C976F3C90038EFFA" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_MunicipalBondsFairValueDisclosure_AD570EE7AB3C3FF2C976F3C90038EFFA" xlink:to="lab_cgnx_MunicipalBondsFairValueDisclosure_AD570EE7AB3C3FF2C976F3C90038EFFA" xlink:type="arc" />
    <link:label id="lab_cgnx_AgencyBondsFairValueDisclosure_205EBBA4ABD2D259CA88F3C90038FEF2_terseLabel_en-US" xlink:label="lab_cgnx_AgencyBondsFairValueDisclosure_205EBBA4ABD2D259CA88F3C90038FEF2" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Agency bonds</link:label>
    <link:label id="lab_cgnx_AgencyBondsFairValueDisclosure_205EBBA4ABD2D259CA88F3C90038FEF2_label_en-US" xlink:label="lab_cgnx_AgencyBondsFairValueDisclosure_205EBBA4ABD2D259CA88F3C90038FEF2" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Agency Bonds Fair Value Disclosure</link:label>
    <link:label id="lab_cgnx_AgencyBondsFairValueDisclosure_205EBBA4ABD2D259CA88F3C90038FEF2_documentation_en-US" xlink:label="lab_cgnx_AgencyBondsFairValueDisclosure_205EBBA4ABD2D259CA88F3C90038FEF2" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Agency bonds fair value disclosure.</link:label>
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_AgencyBondsFairValueDisclosure" xlink:label="loc_cgnx_AgencyBondsFairValueDisclosure_205EBBA4ABD2D259CA88F3C90038FEF2" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_AgencyBondsFairValueDisclosure_205EBBA4ABD2D259CA88F3C90038FEF2" xlink:to="lab_cgnx_AgencyBondsFairValueDisclosure_205EBBA4ABD2D259CA88F3C90038FEF2" xlink:type="arc" />
    <link:label id="lab_cgnx_CertificateOfDepositFairValueDisclosure_BD625731E66E80D8E98CF3D47F3F495A_terseLabel_en-US" xlink:label="lab_cgnx_CertificateOfDepositFairValueDisclosure_BD625731E66E80D8E98CF3D47F3F495A" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Certificate of deposit</link:label>
    <link:label id="lab_cgnx_CertificateOfDepositFairValueDisclosure_BD625731E66E80D8E98CF3D47F3F495A_label_en-US" xlink:label="lab_cgnx_CertificateOfDepositFairValueDisclosure_BD625731E66E80D8E98CF3D47F3F495A" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Certificate Of Deposit Fair Value Disclosure</link:label>
    <link:label id="lab_cgnx_CertificateOfDepositFairValueDisclosure_BD625731E66E80D8E98CF3D47F3F495A_documentation_en-US" xlink:label="lab_cgnx_CertificateOfDepositFairValueDisclosure_BD625731E66E80D8E98CF3D47F3F495A" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Certificate Of Deposit Fair Value Disclosure</link:label>
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_CertificateOfDepositFairValueDisclosure" xlink:label="loc_cgnx_CertificateOfDepositFairValueDisclosure_BD625731E66E80D8E98CF3D47F3F495A" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_CertificateOfDepositFairValueDisclosure_BD625731E66E80D8E98CF3D47F3F495A" xlink:to="lab_cgnx_CertificateOfDepositFairValueDisclosure_BD625731E66E80D8E98CF3D47F3F495A" xlink:type="arc" />
    <link:label id="lab_us-gaap_ForeignCurrencyContractAssetFairValueDisclosure_B5AB3F66A52EDA148500F3C900396555_terseLabel_en-US" xlink:label="lab_us-gaap_ForeignCurrencyContractAssetFairValueDisclosure_B5AB3F66A52EDA148500F3C900396555" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Economic hedge forward contracts</link:label>
    <link:label id="lab_us-gaap_ForeignCurrencyContractAssetFairValueDisclosure_B5AB3F66A52EDA148500F3C900396555_label_en-US" xlink:label="lab_us-gaap_ForeignCurrencyContractAssetFairValueDisclosure_B5AB3F66A52EDA148500F3C900396555" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Foreign Currency Contract, Asset, Fair Value Disclosure</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ForeignCurrencyContractAssetFairValueDisclosure" xlink:label="loc_us-gaap_ForeignCurrencyContractAssetFairValueDisclosure_B5AB3F66A52EDA148500F3C900396555" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ForeignCurrencyContractAssetFairValueDisclosure_B5AB3F66A52EDA148500F3C900396555" xlink:to="lab_us-gaap_ForeignCurrencyContractAssetFairValueDisclosure_B5AB3F66A52EDA148500F3C900396555" xlink:type="arc" />
    <link:label id="lab_us-gaap_LiabilitiesFairValueDisclosureAbstract_431B2C039571A700DDE1F3C900393857_terseLabel_en-US" xlink:label="lab_us-gaap_LiabilitiesFairValueDisclosureAbstract_431B2C039571A700DDE1F3C900393857" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Liabilities:</link:label>
    <link:label id="lab_us-gaap_LiabilitiesFairValueDisclosureAbstract_431B2C039571A700DDE1F3C900393857_label_en-US" xlink:label="lab_us-gaap_LiabilitiesFairValueDisclosureAbstract_431B2C039571A700DDE1F3C900393857" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Liabilities, Fair Value Disclosure [Abstract]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_LiabilitiesFairValueDisclosureAbstract" xlink:label="loc_us-gaap_LiabilitiesFairValueDisclosureAbstract_431B2C039571A700DDE1F3C900393857" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_LiabilitiesFairValueDisclosureAbstract_431B2C039571A700DDE1F3C900393857" xlink:to="lab_us-gaap_LiabilitiesFairValueDisclosureAbstract_431B2C039571A700DDE1F3C900393857" xlink:type="arc" />
    <link:label id="lab_us-gaap_ForeignCurrencyContractsLiabilityFairValueDisclosure_5E1CF9DD6B0473FAF7BFF3C90039B2CC_terseLabel_en-US" xlink:label="lab_us-gaap_ForeignCurrencyContractsLiabilityFairValueDisclosure_5E1CF9DD6B0473FAF7BFF3C90039B2CC" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Economic hedge forward contracts</link:label>
    <link:label id="lab_us-gaap_ForeignCurrencyContractsLiabilityFairValueDisclosure_5E1CF9DD6B0473FAF7BFF3C90039B2CC_label_en-US" xlink:label="lab_us-gaap_ForeignCurrencyContractsLiabilityFairValueDisclosure_5E1CF9DD6B0473FAF7BFF3C90039B2CC" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Foreign Currency Contracts, Liability, Fair Value Disclosure</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ForeignCurrencyContractsLiabilityFairValueDisclosure" xlink:label="loc_us-gaap_ForeignCurrencyContractsLiabilityFairValueDisclosure_5E1CF9DD6B0473FAF7BFF3C90039B2CC" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ForeignCurrencyContractsLiabilityFairValueDisclosure_5E1CF9DD6B0473FAF7BFF3C90039B2CC" xlink:to="lab_us-gaap_ForeignCurrencyContractsLiabilityFairValueDisclosure_5E1CF9DD6B0473FAF7BFF3C90039B2CC" xlink:type="arc" />
    <link:label id="lab_us-gaap_OtherThanTemporaryImpairmentLossesInvestmentsPortionRecognizedInEarningsNet_1B8FB2F5F5D780AEDD22F3C900390570_terseLabel_en-US" xlink:label="lab_us-gaap_OtherThanTemporaryImpairmentLossesInvestmentsPortionRecognizedInEarningsNet_1B8FB2F5F5D780AEDD22F3C900390570" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Other than temporary impairment loss</link:label>
    <link:label id="lab_us-gaap_OtherThanTemporaryImpairmentLossesInvestmentsPortionRecognizedInEarningsNet_1B8FB2F5F5D780AEDD22F3C900390570_label_en-US" xlink:label="lab_us-gaap_OtherThanTemporaryImpairmentLossesInvestmentsPortionRecognizedInEarningsNet_1B8FB2F5F5D780AEDD22F3C900390570" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Other than Temporary Impairment Losses, Investments, Portion Recognized in Earnings, Net</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_OtherThanTemporaryImpairmentLossesInvestmentsPortionRecognizedInEarningsNet" xlink:label="loc_us-gaap_OtherThanTemporaryImpairmentLossesInvestmentsPortionRecognizedInEarningsNet_1B8FB2F5F5D780AEDD22F3C900390570" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_OtherThanTemporaryImpairmentLossesInvestmentsPortionRecognizedInEarningsNet_1B8FB2F5F5D780AEDD22F3C900390570" xlink:to="lab_us-gaap_OtherThanTemporaryImpairmentLossesInvestmentsPortionRecognizedInEarningsNet_1B8FB2F5F5D780AEDD22F3C900390570" xlink:type="arc" />
    <link:label id="lab_cgnx_OtherThanTemporaryImpairmentLossesInvestmentsPortionRecognizedInEarningsNetnoncurrent_020ECCEE1408FC954E28F3C9003909AA_terseLabel_en-US" xlink:label="lab_cgnx_OtherThanTemporaryImpairmentLossesInvestmentsPortionRecognizedInEarningsNetnoncurrent_020ECCEE1408FC954E28F3C9003909AA" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Other than temporary impairment loss non-current</link:label>
    <link:label id="lab_cgnx_OtherThanTemporaryImpairmentLossesInvestmentsPortionRecognizedInEarningsNetnoncurrent_020ECCEE1408FC954E28F3C9003909AA_label_en-US" xlink:label="lab_cgnx_OtherThanTemporaryImpairmentLossesInvestmentsPortionRecognizedInEarningsNetnoncurrent_020ECCEE1408FC954E28F3C9003909AA" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Other Than Temporary Impairment Losses Investments Portion Recognized In Earnings Net, non current</link:label>
    <link:label id="lab_cgnx_OtherThanTemporaryImpairmentLossesInvestmentsPortionRecognizedInEarningsNetnoncurrent_020ECCEE1408FC954E28F3C9003909AA_documentation_en-US" xlink:label="lab_cgnx_OtherThanTemporaryImpairmentLossesInvestmentsPortionRecognizedInEarningsNetnoncurrent_020ECCEE1408FC954E28F3C9003909AA" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Other Than Temporary Impairment Losses Investments Portion Recognized In Earnings Net, non current</link:label>
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_OtherThanTemporaryImpairmentLossesInvestmentsPortionRecognizedInEarningsNetnoncurrent" xlink:label="loc_cgnx_OtherThanTemporaryImpairmentLossesInvestmentsPortionRecognizedInEarningsNetnoncurrent_020ECCEE1408FC954E28F3C9003909AA" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_OtherThanTemporaryImpairmentLossesInvestmentsPortionRecognizedInEarningsNetnoncurrent_020ECCEE1408FC954E28F3C9003909AA" xlink:to="lab_cgnx_OtherThanTemporaryImpairmentLossesInvestmentsPortionRecognizedInEarningsNetnoncurrent_020ECCEE1408FC954E28F3C9003909AA" xlink:type="arc" />
    <link:label id="lab_us-gaap_RevenueInitialApplicationPeriodCumulativeEffectTransitionTable_55CFF700393DA30590A630EED0F4B4BE_terseLabel_en-US" xlink:label="lab_us-gaap_RevenueInitialApplicationPeriodCumulativeEffectTransitionTable_55CFF700393DA30590A630EED0F4B4BE" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Revenue, Initial Application Period Cumulative Effect Transition [Table]</link:label>
    <link:label id="lab_us-gaap_RevenueInitialApplicationPeriodCumulativeEffectTransitionTable_55CFF700393DA30590A630EED0F4B4BE_label_en-US" xlink:label="lab_us-gaap_RevenueInitialApplicationPeriodCumulativeEffectTransitionTable_55CFF700393DA30590A630EED0F4B4BE" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Revenue, Initial Application Period Cumulative Effect Transition [Table]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_RevenueInitialApplicationPeriodCumulativeEffectTransitionTable" xlink:label="loc_us-gaap_RevenueInitialApplicationPeriodCumulativeEffectTransitionTable_55CFF700393DA30590A630EED0F4B4BE" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_RevenueInitialApplicationPeriodCumulativeEffectTransitionTable_55CFF700393DA30590A630EED0F4B4BE" xlink:to="lab_us-gaap_RevenueInitialApplicationPeriodCumulativeEffectTransitionTable_55CFF700393DA30590A630EED0F4B4BE" xlink:type="arc" />
    <link:label id="lab_srt_RestatementAxis_28590BC860DC1CE8EABF30EED0F43FCE_terseLabel_en-US" xlink:label="lab_srt_RestatementAxis_28590BC860DC1CE8EABF30EED0F43FCE" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Restatement [Axis]</link:label>
    <link:label id="lab_srt_RestatementAxis_28590BC860DC1CE8EABF30EED0F43FCE_label_en-US" xlink:label="lab_srt_RestatementAxis_28590BC860DC1CE8EABF30EED0F43FCE" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Restatement [Axis]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2018/elts/srt-2018-01-31.xsd#srt_RestatementAxis" xlink:label="loc_srt_RestatementAxis_28590BC860DC1CE8EABF30EED0F43FCE" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_srt_RestatementAxis_28590BC860DC1CE8EABF30EED0F43FCE" xlink:to="lab_srt_RestatementAxis_28590BC860DC1CE8EABF30EED0F43FCE" xlink:type="arc" />
    <link:label id="lab_srt_RestatementDomain_ED16010EB5272092538D30EED0F55EB8_terseLabel_en-US" xlink:label="lab_srt_RestatementDomain_ED16010EB5272092538D30EED0F55EB8" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Restatement [Domain]</link:label>
    <link:label id="lab_srt_RestatementDomain_ED16010EB5272092538D30EED0F55EB8_label_en-US" xlink:label="lab_srt_RestatementDomain_ED16010EB5272092538D30EED0F55EB8" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Restatement [Domain]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2018/elts/srt-2018-01-31.xsd#srt_RestatementDomain" xlink:label="loc_srt_RestatementDomain_ED16010EB5272092538D30EED0F55EB8" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_srt_RestatementDomain_ED16010EB5272092538D30EED0F55EB8" xlink:to="lab_srt_RestatementDomain_ED16010EB5272092538D30EED0F55EB8" xlink:type="arc" />
    <link:label id="lab_srt_ScenarioPreviouslyReportedMember_5389702A27F963272C0E30EED0F53822_verboseLabel_en-US" xlink:label="lab_srt_ScenarioPreviouslyReportedMember_5389702A27F963272C0E30EED0F53822" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xml:lang="en-US">As previously reported</link:label>
    <link:label id="lab_srt_ScenarioPreviouslyReportedMember_5389702A27F963272C0E30EED0F53822_label_en-US" xlink:label="lab_srt_ScenarioPreviouslyReportedMember_5389702A27F963272C0E30EED0F53822" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Previously Reported [Member]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2018/elts/srt-2018-01-31.xsd#srt_ScenarioPreviouslyReportedMember" xlink:label="loc_srt_ScenarioPreviouslyReportedMember_5389702A27F963272C0E30EED0F53822" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_srt_ScenarioPreviouslyReportedMember_5389702A27F963272C0E30EED0F53822" xlink:to="lab_srt_ScenarioPreviouslyReportedMember_5389702A27F963272C0E30EED0F53822" xlink:type="arc" />
    <link:label id="lab_srt_RestatementAdjustmentMember_9F17C98A9C19A205A19930EED0F5817E_verboseLabel_en-US" xlink:label="lab_srt_RestatementAdjustmentMember_9F17C98A9C19A205A19930EED0F5817E" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xml:lang="en-US">Adjustment [Member]</link:label>
    <link:label id="lab_srt_RestatementAdjustmentMember_9F17C98A9C19A205A19930EED0F5817E_label_en-US" xlink:label="lab_srt_RestatementAdjustmentMember_9F17C98A9C19A205A19930EED0F5817E" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Restatement Adjustment [Member]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2018/elts/srt-2018-01-31.xsd#srt_RestatementAdjustmentMember" xlink:label="loc_srt_RestatementAdjustmentMember_9F17C98A9C19A205A19930EED0F5817E" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_srt_RestatementAdjustmentMember_9F17C98A9C19A205A19930EED0F5817E" xlink:to="lab_srt_RestatementAdjustmentMember_9F17C98A9C19A205A19930EED0F5817E" xlink:type="arc" />
    <link:label id="lab_us-gaap_RevenueInitialApplicationPeriodCumulativeEffectTransitionLineItems_FA874236EBB67B0A498830EED0F6EB30_terseLabel_en-US" xlink:label="lab_us-gaap_RevenueInitialApplicationPeriodCumulativeEffectTransitionLineItems_FA874236EBB67B0A498830EED0F6EB30" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Revenue</link:label>
    <link:label id="lab_us-gaap_RevenueInitialApplicationPeriodCumulativeEffectTransitionLineItems_FA874236EBB67B0A498830EED0F6EB30_label_en-US" xlink:label="lab_us-gaap_RevenueInitialApplicationPeriodCumulativeEffectTransitionLineItems_FA874236EBB67B0A498830EED0F6EB30" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Revenue, Initial Application Period Cumulative Effect Transition [Line Items]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_RevenueInitialApplicationPeriodCumulativeEffectTransitionLineItems" xlink:label="loc_us-gaap_RevenueInitialApplicationPeriodCumulativeEffectTransitionLineItems_FA874236EBB67B0A498830EED0F6EB30" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_RevenueInitialApplicationPeriodCumulativeEffectTransitionLineItems_FA874236EBB67B0A498830EED0F6EB30" xlink:to="lab_us-gaap_RevenueInitialApplicationPeriodCumulativeEffectTransitionLineItems_FA874236EBB67B0A498830EED0F6EB30" xlink:type="arc" />
    <link:label id="lab_us-gaap_OperatingIncomeLoss_16EE3D9564C8B4FC995B30EED0F7984C_terseLabel_en-US" xlink:label="lab_us-gaap_OperatingIncomeLoss_16EE3D9564C8B4FC995B30EED0F7984C" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Operating income</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_OperatingIncomeLoss" xlink:label="loc_us-gaap_OperatingIncomeLoss_16EE3D9564C8B4FC995B30EED0F7984C" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_OperatingIncomeLoss_16EE3D9564C8B4FC995B30EED0F7984C" xlink:to="lab_us-gaap_OperatingIncomeLoss_16EE3D9564C8B4FC995B30EED0F7984C" xlink:type="arc" />
    <link:label id="lab_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments_D48DB1F363648358F1F230EED0F70F24_terseLabel_en-US" xlink:label="lab_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments_D48DB1F363648358F1F230EED0F70F24" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Income before income tax expense</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments" xlink:label="loc_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments_D48DB1F363648358F1F230EED0F70F24" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments_D48DB1F363648358F1F230EED0F70F24" xlink:to="lab_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments_D48DB1F363648358F1F230EED0F70F24" xlink:type="arc" />
    <link:label id="lab_us-gaap_IncomeTaxExpenseBenefit_FE93CD6D4B33F77A50BC30EED0F75459_verboseLabel_en-US" xlink:label="lab_us-gaap_IncomeTaxExpenseBenefit_FE93CD6D4B33F77A50BC30EED0F75459" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xml:lang="en-US">Income tax expense (benefit)</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_IncomeTaxExpenseBenefit" xlink:label="loc_us-gaap_IncomeTaxExpenseBenefit_FE93CD6D4B33F77A50BC30EED0F75459" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_IncomeTaxExpenseBenefit_FE93CD6D4B33F77A50BC30EED0F75459" xlink:to="lab_us-gaap_IncomeTaxExpenseBenefit_FE93CD6D4B33F77A50BC30EED0F75459" xlink:type="arc" />
    <link:label id="lab_us-gaap_EarningsPerShareBasicAndDilutedAbstract_B6CA1F099A9D685A679D30EED0F825F0_terseLabel_en-US" xlink:label="lab_us-gaap_EarningsPerShareBasicAndDilutedAbstract_B6CA1F099A9D685A679D30EED0F825F0" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Net income per weighted-average common and common-equivalent share:</link:label>
    <link:label id="lab_us-gaap_EarningsPerShareBasicAndDilutedAbstract_B6CA1F099A9D685A679D30EED0F825F0_label_en-US" xlink:label="lab_us-gaap_EarningsPerShareBasicAndDilutedAbstract_B6CA1F099A9D685A679D30EED0F825F0" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Earnings Per Share, Basic and Diluted [Abstract]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_EarningsPerShareBasicAndDilutedAbstract" xlink:label="loc_us-gaap_EarningsPerShareBasicAndDilutedAbstract_B6CA1F099A9D685A679D30EED0F825F0" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_EarningsPerShareBasicAndDilutedAbstract_B6CA1F099A9D685A679D30EED0F825F0" xlink:to="lab_us-gaap_EarningsPerShareBasicAndDilutedAbstract_B6CA1F099A9D685A679D30EED0F825F0" xlink:type="arc" />
    <link:label id="lab_us-gaap_EarningsPerShareBasic_34AB119A07F1BB03E3CE30EED0F8A046_terseLabel_en-US" xlink:label="lab_us-gaap_EarningsPerShareBasic_34AB119A07F1BB03E3CE30EED0F8A046" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Net income (in dollars per share)</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_EarningsPerShareBasic" xlink:label="loc_us-gaap_EarningsPerShareBasic_34AB119A07F1BB03E3CE30EED0F8A046" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_EarningsPerShareBasic_34AB119A07F1BB03E3CE30EED0F8A046" xlink:to="lab_us-gaap_EarningsPerShareBasic_34AB119A07F1BB03E3CE30EED0F8A046" xlink:type="arc" />
    <link:label id="lab_us-gaap_EarningsPerShareDiluted_BBFE7CA904CA54456B1530EED0F86F53_verboseLabel_en-US" xlink:label="lab_us-gaap_EarningsPerShareDiluted_BBFE7CA904CA54456B1530EED0F86F53" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xml:lang="en-US">Diluted net income (loss) per share (in dollars per share)</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_EarningsPerShareDiluted" xlink:label="loc_us-gaap_EarningsPerShareDiluted_BBFE7CA904CA54456B1530EED0F86F53" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_EarningsPerShareDiluted_BBFE7CA904CA54456B1530EED0F86F53" xlink:to="lab_us-gaap_EarningsPerShareDiluted_BBFE7CA904CA54456B1530EED0F86F53" xlink:type="arc" />
    <link:label id="lab_us-gaap_AssetsAbstract_19A9541187710483DE6C30EA0FC41C35_terseLabel_en-US" xlink:label="lab_us-gaap_AssetsAbstract_19A9541187710483DE6C30EA0FC41C35" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">ASSETS</link:label>
    <link:label id="lab_us-gaap_AssetsAbstract_19A9541187710483DE6C30EA0FC41C35_label_en-US" xlink:label="lab_us-gaap_AssetsAbstract_19A9541187710483DE6C30EA0FC41C35" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Assets [Abstract]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_AssetsAbstract" xlink:label="loc_us-gaap_AssetsAbstract_19A9541187710483DE6C30EA0FC41C35" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AssetsAbstract_19A9541187710483DE6C30EA0FC41C35" xlink:to="lab_us-gaap_AssetsAbstract_19A9541187710483DE6C30EA0FC41C35" xlink:type="arc" />
    <link:label id="lab_us-gaap_AssetsCurrentAbstract_4CBB40E0C82817A0DF4230EA0FC6AFAE_terseLabel_en-US" xlink:label="lab_us-gaap_AssetsCurrentAbstract_4CBB40E0C82817A0DF4230EA0FC6AFAE" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Current assets:</link:label>
    <link:label id="lab_us-gaap_AssetsCurrentAbstract_4CBB40E0C82817A0DF4230EA0FC6AFAE_label_en-US" xlink:label="lab_us-gaap_AssetsCurrentAbstract_4CBB40E0C82817A0DF4230EA0FC6AFAE" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Assets, Current [Abstract]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_AssetsCurrentAbstract" xlink:label="loc_us-gaap_AssetsCurrentAbstract_4CBB40E0C82817A0DF4230EA0FC6AFAE" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AssetsCurrentAbstract_4CBB40E0C82817A0DF4230EA0FC6AFAE" xlink:to="lab_us-gaap_AssetsCurrentAbstract_4CBB40E0C82817A0DF4230EA0FC6AFAE" xlink:type="arc" />
    <link:label id="lab_us-gaap_CashAndCashEquivalentsAtCarryingValue_9F0563D0665861917C0330EA0FD058CA_terseLabel_en-US" xlink:label="lab_us-gaap_CashAndCashEquivalentsAtCarryingValue_9F0563D0665861917C0330EA0FD058CA" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Cash and cash equivalents</link:label>
    <link:label id="lab_us-gaap_CashAndCashEquivalentsAtCarryingValue_9F0563D0665861917C0330EA0FD058CA_label_en-US" xlink:label="lab_us-gaap_CashAndCashEquivalentsAtCarryingValue_9F0563D0665861917C0330EA0FD058CA" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Cash and Cash Equivalents, at Carrying Value</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_CashAndCashEquivalentsAtCarryingValue" xlink:label="loc_us-gaap_CashAndCashEquivalentsAtCarryingValue_9F0563D0665861917C0330EA0FD058CA" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_CashAndCashEquivalentsAtCarryingValue_9F0563D0665861917C0330EA0FD058CA" xlink:to="lab_us-gaap_CashAndCashEquivalentsAtCarryingValue_9F0563D0665861917C0330EA0FD058CA" xlink:type="arc" />
    <link:label id="lab_us-gaap_AvailableForSaleSecuritiesDebtSecuritiesCurrent_4975F11F7AF6096F9D5430EA0FD21FB9_terseLabel_en-US" xlink:label="lab_us-gaap_AvailableForSaleSecuritiesDebtSecuritiesCurrent_4975F11F7AF6096F9D5430EA0FD21FB9" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Current investments</link:label>
    <link:label id="lab_us-gaap_AvailableForSaleSecuritiesDebtSecuritiesCurrent_4975F11F7AF6096F9D5430EA0FD21FB9_label_en-US" xlink:label="lab_us-gaap_AvailableForSaleSecuritiesDebtSecuritiesCurrent_4975F11F7AF6096F9D5430EA0FD21FB9" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Debt Securities, Available-for-sale, Current</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_AvailableForSaleSecuritiesDebtSecuritiesCurrent" xlink:label="loc_us-gaap_AvailableForSaleSecuritiesDebtSecuritiesCurrent_4975F11F7AF6096F9D5430EA0FD21FB9" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AvailableForSaleSecuritiesDebtSecuritiesCurrent_4975F11F7AF6096F9D5430EA0FD21FB9" xlink:to="lab_us-gaap_AvailableForSaleSecuritiesDebtSecuritiesCurrent_4975F11F7AF6096F9D5430EA0FD21FB9" xlink:type="arc" />
    <link:label id="lab_us-gaap_AccountsReceivableNetCurrent_4D7165DD2734E82C63A830EA0FD31F10_terseLabel_en-US" xlink:label="lab_us-gaap_AccountsReceivableNetCurrent_4D7165DD2734E82C63A830EA0FD31F10" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Accounts receivable, less reserves of $1,821 and $1,646 in 2019 and 2018, respectively</link:label>
    <link:label id="lab_us-gaap_AccountsReceivableNetCurrent_4D7165DD2734E82C63A830EA0FD31F10_label_en-US" xlink:label="lab_us-gaap_AccountsReceivableNetCurrent_4D7165DD2734E82C63A830EA0FD31F10" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Accounts Receivable, Net, Current</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_AccountsReceivableNetCurrent" xlink:label="loc_us-gaap_AccountsReceivableNetCurrent_4D7165DD2734E82C63A830EA0FD31F10" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AccountsReceivableNetCurrent_4D7165DD2734E82C63A830EA0FD31F10" xlink:to="lab_us-gaap_AccountsReceivableNetCurrent_4D7165DD2734E82C63A830EA0FD31F10" xlink:type="arc" />
    <link:label id="lab_us-gaap_UnbilledReceivablesCurrent_98DB42A3330D4D3ABD1C30EA0FD89672_terseLabel_en-US" xlink:label="lab_us-gaap_UnbilledReceivablesCurrent_98DB42A3330D4D3ABD1C30EA0FD89672" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Unbilled revenue</link:label>
    <link:label id="lab_us-gaap_UnbilledReceivablesCurrent_98DB42A3330D4D3ABD1C30EA0FD89672_label_en-US" xlink:label="lab_us-gaap_UnbilledReceivablesCurrent_98DB42A3330D4D3ABD1C30EA0FD89672" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Unbilled Receivables, Current</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_UnbilledReceivablesCurrent" xlink:label="loc_us-gaap_UnbilledReceivablesCurrent_98DB42A3330D4D3ABD1C30EA0FD89672" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_UnbilledReceivablesCurrent_98DB42A3330D4D3ABD1C30EA0FD89672" xlink:to="lab_us-gaap_UnbilledReceivablesCurrent_98DB42A3330D4D3ABD1C30EA0FD89672" xlink:type="arc" />
    <link:label id="lab_us-gaap_InventoryNet_1A26291B2DC637B4AB9D30EA0FD89CE5_terseLabel_en-US" xlink:label="lab_us-gaap_InventoryNet_1A26291B2DC637B4AB9D30EA0FD89CE5" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Inventories</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_InventoryNet" xlink:label="loc_us-gaap_InventoryNet_1A26291B2DC637B4AB9D30EA0FD89CE5" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_InventoryNet_1A26291B2DC637B4AB9D30EA0FD89CE5" xlink:to="lab_us-gaap_InventoryNet_1A26291B2DC637B4AB9D30EA0FD89CE5" xlink:type="arc" />
    <link:label id="lab_us-gaap_PrepaidExpenseAndOtherAssetsCurrent_F3D683F93633646F13F330EA0FD9FCE1_terseLabel_en-US" xlink:label="lab_us-gaap_PrepaidExpenseAndOtherAssetsCurrent_F3D683F93633646F13F330EA0FD9FCE1" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Prepaid expenses and other current assets</link:label>
    <link:label id="lab_us-gaap_PrepaidExpenseAndOtherAssetsCurrent_F3D683F93633646F13F330EA0FD9FCE1_label_en-US" xlink:label="lab_us-gaap_PrepaidExpenseAndOtherAssetsCurrent_F3D683F93633646F13F330EA0FD9FCE1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Prepaid Expense and Other Assets, Current</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_PrepaidExpenseAndOtherAssetsCurrent" xlink:label="loc_us-gaap_PrepaidExpenseAndOtherAssetsCurrent_F3D683F93633646F13F330EA0FD9FCE1" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_PrepaidExpenseAndOtherAssetsCurrent_F3D683F93633646F13F330EA0FD9FCE1" xlink:to="lab_us-gaap_PrepaidExpenseAndOtherAssetsCurrent_F3D683F93633646F13F330EA0FD9FCE1" xlink:type="arc" />
    <link:label id="lab_us-gaap_AssetsCurrent_44A855462DDB02DCDA1230EA0FD99C50_totalLabel_en-US" xlink:label="lab_us-gaap_AssetsCurrent_44A855462DDB02DCDA1230EA0FD99C50" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xml:lang="en-US">Total current assets</link:label>
    <link:label id="lab_us-gaap_AssetsCurrent_44A855462DDB02DCDA1230EA0FD99C50_label_en-US" xlink:label="lab_us-gaap_AssetsCurrent_44A855462DDB02DCDA1230EA0FD99C50" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Assets, Current</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_AssetsCurrent" xlink:label="loc_us-gaap_AssetsCurrent_44A855462DDB02DCDA1230EA0FD99C50" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AssetsCurrent_44A855462DDB02DCDA1230EA0FD99C50" xlink:to="lab_us-gaap_AssetsCurrent_44A855462DDB02DCDA1230EA0FD99C50" xlink:type="arc" />
    <link:label id="lab_us-gaap_LongTermInvestments_AF87BD3622B26134D03C30EA0FD99EBA_terseLabel_en-US" xlink:label="lab_us-gaap_LongTermInvestments_AF87BD3622B26134D03C30EA0FD99EBA" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Non-current investments</link:label>
    <link:label id="lab_us-gaap_LongTermInvestments_AF87BD3622B26134D03C30EA0FD99EBA_label_en-US" xlink:label="lab_us-gaap_LongTermInvestments_AF87BD3622B26134D03C30EA0FD99EBA" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Long-term Investments</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_LongTermInvestments" xlink:label="loc_us-gaap_LongTermInvestments_AF87BD3622B26134D03C30EA0FD99EBA" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_LongTermInvestments_AF87BD3622B26134D03C30EA0FD99EBA" xlink:to="lab_us-gaap_LongTermInvestments_AF87BD3622B26134D03C30EA0FD99EBA" xlink:type="arc" />
    <link:label id="lab_us-gaap_PropertyPlantAndEquipmentNet_9C07E92ED9133188B75530EA0FD99A9A_terseLabel_en-US" xlink:label="lab_us-gaap_PropertyPlantAndEquipmentNet_9C07E92ED9133188B75530EA0FD99A9A" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Property, plant, and equipment, net</link:label>
    <link:label id="lab_us-gaap_PropertyPlantAndEquipmentNet_9C07E92ED9133188B75530EA0FD99A9A_label_en-US" xlink:label="lab_us-gaap_PropertyPlantAndEquipmentNet_9C07E92ED9133188B75530EA0FD99A9A" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Property, Plant and Equipment, Net</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_PropertyPlantAndEquipmentNet" xlink:label="loc_us-gaap_PropertyPlantAndEquipmentNet_9C07E92ED9133188B75530EA0FD99A9A" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentNet_9C07E92ED9133188B75530EA0FD99A9A" xlink:to="lab_us-gaap_PropertyPlantAndEquipmentNet_9C07E92ED9133188B75530EA0FD99A9A" xlink:type="arc" />
    <link:label id="lab_us-gaap_Goodwill_DFDD045416B8F142D46430EA0FD9D42D_terseLabel_en-US" xlink:label="lab_us-gaap_Goodwill_DFDD045416B8F142D46430EA0FD9D42D" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Goodwill</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_Goodwill" xlink:label="loc_us-gaap_Goodwill_DFDD045416B8F142D46430EA0FD9D42D" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_Goodwill_DFDD045416B8F142D46430EA0FD9D42D" xlink:to="lab_us-gaap_Goodwill_DFDD045416B8F142D46430EA0FD9D42D" xlink:type="arc" />
    <link:label id="lab_us-gaap_IntangibleAssetsNetExcludingGoodwill_6296E535267758D5ED7330EA1310A064_terseLabel_en-US" xlink:label="lab_us-gaap_IntangibleAssetsNetExcludingGoodwill_6296E535267758D5ED7330EA1310A064" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Intangible Assets, Net (Excluding Goodwill)</link:label>
    <link:label id="lab_us-gaap_IntangibleAssetsNetExcludingGoodwill_6296E535267758D5ED7330EA1310A064_label_en-US" xlink:label="lab_us-gaap_IntangibleAssetsNetExcludingGoodwill_6296E535267758D5ED7330EA1310A064" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Intangible Assets, Net (Excluding Goodwill)</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_IntangibleAssetsNetExcludingGoodwill" xlink:label="loc_us-gaap_IntangibleAssetsNetExcludingGoodwill_6296E535267758D5ED7330EA1310A064" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_IntangibleAssetsNetExcludingGoodwill_6296E535267758D5ED7330EA1310A064" xlink:to="lab_us-gaap_IntangibleAssetsNetExcludingGoodwill_6296E535267758D5ED7330EA1310A064" xlink:type="arc" />
    <link:label id="lab_us-gaap_DeferredTaxAssetsNetNoncurrent_26603E045FD3E5ED11FE30EA0FDAC01A_terseLabel_en-US" xlink:label="lab_us-gaap_DeferredTaxAssetsNetNoncurrent_26603E045FD3E5ED11FE30EA0FDAC01A" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Deferred income taxes</link:label>
    <link:label id="lab_us-gaap_DeferredTaxAssetsNetNoncurrent_26603E045FD3E5ED11FE30EA0FDAC01A_label_en-US" xlink:label="lab_us-gaap_DeferredTaxAssetsNetNoncurrent_26603E045FD3E5ED11FE30EA0FDAC01A" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Deferred Tax Assets, Net of Valuation Allowance, Noncurrent</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_DeferredTaxAssetsNetNoncurrent" xlink:label="loc_us-gaap_DeferredTaxAssetsNetNoncurrent_26603E045FD3E5ED11FE30EA0FDAC01A" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DeferredTaxAssetsNetNoncurrent_26603E045FD3E5ED11FE30EA0FDAC01A" xlink:to="lab_us-gaap_DeferredTaxAssetsNetNoncurrent_26603E045FD3E5ED11FE30EA0FDAC01A" xlink:type="arc" />
    <link:label id="lab_us-gaap_OtherAssetsNoncurrent_765D6D795185962B2BBD30EA0FDAC1C6_terseLabel_en-US" xlink:label="lab_us-gaap_OtherAssetsNoncurrent_765D6D795185962B2BBD30EA0FDAC1C6" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Other assets</link:label>
    <link:label id="lab_us-gaap_OtherAssetsNoncurrent_765D6D795185962B2BBD30EA0FDAC1C6_label_en-US" xlink:label="lab_us-gaap_OtherAssetsNoncurrent_765D6D795185962B2BBD30EA0FDAC1C6" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Other Assets, Noncurrent</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_OtherAssetsNoncurrent" xlink:label="loc_us-gaap_OtherAssetsNoncurrent_765D6D795185962B2BBD30EA0FDAC1C6" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_OtherAssetsNoncurrent_765D6D795185962B2BBD30EA0FDAC1C6" xlink:to="lab_us-gaap_OtherAssetsNoncurrent_765D6D795185962B2BBD30EA0FDAC1C6" xlink:type="arc" />
    <link:label id="lab_us-gaap_Assets_A893EB27B740CB97D31630EA0FDAE19C_totalLabel_en-US" xlink:label="lab_us-gaap_Assets_A893EB27B740CB97D31630EA0FDAE19C" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xml:lang="en-US">Total assets</link:label>
    <link:label id="lab_us-gaap_Assets_A893EB27B740CB97D31630EA0FDAE19C_label_en-US" xlink:label="lab_us-gaap_Assets_A893EB27B740CB97D31630EA0FDAE19C" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Assets</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_Assets" xlink:label="loc_us-gaap_Assets_A893EB27B740CB97D31630EA0FDAE19C" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_Assets_A893EB27B740CB97D31630EA0FDAE19C" xlink:to="lab_us-gaap_Assets_A893EB27B740CB97D31630EA0FDAE19C" xlink:type="arc" />
    <link:label id="lab_us-gaap_LiabilitiesAndStockholdersEquityAbstract_DA9B869E80FF0FC7099630EA0FDA3275_terseLabel_en-US" xlink:label="lab_us-gaap_LiabilitiesAndStockholdersEquityAbstract_DA9B869E80FF0FC7099630EA0FDA3275" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">LIABILITIES AND SHAREHOLDERS&#8217; EQUITY</link:label>
    <link:label id="lab_us-gaap_LiabilitiesAndStockholdersEquityAbstract_DA9B869E80FF0FC7099630EA0FDA3275_label_en-US" xlink:label="lab_us-gaap_LiabilitiesAndStockholdersEquityAbstract_DA9B869E80FF0FC7099630EA0FDA3275" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Liabilities and Equity [Abstract]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_LiabilitiesAndStockholdersEquityAbstract" xlink:label="loc_us-gaap_LiabilitiesAndStockholdersEquityAbstract_DA9B869E80FF0FC7099630EA0FDA3275" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_LiabilitiesAndStockholdersEquityAbstract_DA9B869E80FF0FC7099630EA0FDA3275" xlink:to="lab_us-gaap_LiabilitiesAndStockholdersEquityAbstract_DA9B869E80FF0FC7099630EA0FDA3275" xlink:type="arc" />
    <link:label id="lab_us-gaap_LiabilitiesCurrentAbstract_FB6D4F67307C8DA126D430EA0FDA8F07_terseLabel_en-US" xlink:label="lab_us-gaap_LiabilitiesCurrentAbstract_FB6D4F67307C8DA126D430EA0FDA8F07" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Current liabilities:</link:label>
    <link:label id="lab_us-gaap_LiabilitiesCurrentAbstract_FB6D4F67307C8DA126D430EA0FDA8F07_label_en-US" xlink:label="lab_us-gaap_LiabilitiesCurrentAbstract_FB6D4F67307C8DA126D430EA0FDA8F07" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Liabilities, Current [Abstract]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_LiabilitiesCurrentAbstract" xlink:label="loc_us-gaap_LiabilitiesCurrentAbstract_FB6D4F67307C8DA126D430EA0FDA8F07" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_LiabilitiesCurrentAbstract_FB6D4F67307C8DA126D430EA0FDA8F07" xlink:to="lab_us-gaap_LiabilitiesCurrentAbstract_FB6D4F67307C8DA126D430EA0FDA8F07" xlink:type="arc" />
    <link:label id="lab_us-gaap_AccountsPayableCurrent_B77BA950764C2F96A52130EA0FDBAAEC_terseLabel_en-US" xlink:label="lab_us-gaap_AccountsPayableCurrent_B77BA950764C2F96A52130EA0FDBAAEC" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Accounts payable</link:label>
    <link:label id="lab_us-gaap_AccountsPayableCurrent_B77BA950764C2F96A52130EA0FDBAAEC_label_en-US" xlink:label="lab_us-gaap_AccountsPayableCurrent_B77BA950764C2F96A52130EA0FDBAAEC" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Accounts Payable, Current</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_AccountsPayableCurrent" xlink:label="loc_us-gaap_AccountsPayableCurrent_B77BA950764C2F96A52130EA0FDBAAEC" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AccountsPayableCurrent_B77BA950764C2F96A52130EA0FDBAAEC" xlink:to="lab_us-gaap_AccountsPayableCurrent_B77BA950764C2F96A52130EA0FDBAAEC" xlink:type="arc" />
    <link:label id="lab_us-gaap_AccruedLiabilitiesCurrent_16A9425CAC318092DEF230EA0FDBC1CD_terseLabel_en-US" xlink:label="lab_us-gaap_AccruedLiabilitiesCurrent_16A9425CAC318092DEF230EA0FDBC1CD" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Accrued expenses</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_AccruedLiabilitiesCurrent" xlink:label="loc_us-gaap_AccruedLiabilitiesCurrent_16A9425CAC318092DEF230EA0FDBC1CD" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AccruedLiabilitiesCurrent_16A9425CAC318092DEF230EA0FDBC1CD" xlink:to="lab_us-gaap_AccruedLiabilitiesCurrent_16A9425CAC318092DEF230EA0FDBC1CD" xlink:type="arc" />
    <link:label id="lab_us-gaap_AccruedIncomeTaxesCurrent_127AD0F1ED273033DC5130EA0FDB6941_terseLabel_en-US" xlink:label="lab_us-gaap_AccruedIncomeTaxesCurrent_127AD0F1ED273033DC5130EA0FDB6941" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Accrued income taxes</link:label>
    <link:label id="lab_us-gaap_AccruedIncomeTaxesCurrent_127AD0F1ED273033DC5130EA0FDB6941_label_en-US" xlink:label="lab_us-gaap_AccruedIncomeTaxesCurrent_127AD0F1ED273033DC5130EA0FDB6941" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Accrued Income Taxes, Current</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_AccruedIncomeTaxesCurrent" xlink:label="loc_us-gaap_AccruedIncomeTaxesCurrent_127AD0F1ED273033DC5130EA0FDB6941" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AccruedIncomeTaxesCurrent_127AD0F1ED273033DC5130EA0FDB6941" xlink:to="lab_us-gaap_AccruedIncomeTaxesCurrent_127AD0F1ED273033DC5130EA0FDB6941" xlink:type="arc" />
    <link:label id="lab_us-gaap_ContractWithCustomerLiabilityCurrent_00C2D10E2D4CAFD2909C30EA0FDB1E28_terseLabel_en-US" xlink:label="lab_us-gaap_ContractWithCustomerLiabilityCurrent_00C2D10E2D4CAFD2909C30EA0FDB1E28" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Deferred revenue and customer deposits</link:label>
    <link:label id="lab_us-gaap_ContractWithCustomerLiabilityCurrent_00C2D10E2D4CAFD2909C30EA0FDB1E28_label_en-US" xlink:label="lab_us-gaap_ContractWithCustomerLiabilityCurrent_00C2D10E2D4CAFD2909C30EA0FDB1E28" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Contract with Customer, Liability, Current</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ContractWithCustomerLiabilityCurrent" xlink:label="loc_us-gaap_ContractWithCustomerLiabilityCurrent_00C2D10E2D4CAFD2909C30EA0FDB1E28" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ContractWithCustomerLiabilityCurrent_00C2D10E2D4CAFD2909C30EA0FDB1E28" xlink:to="lab_us-gaap_ContractWithCustomerLiabilityCurrent_00C2D10E2D4CAFD2909C30EA0FDB1E28" xlink:type="arc" />
    <link:label id="lab_us-gaap_OperatingLeaseLiabilityCurrent_17BDDED352301993E10F30EA0FDB6065_terseLabel_en-US" xlink:label="lab_us-gaap_OperatingLeaseLiabilityCurrent_17BDDED352301993E10F30EA0FDB6065" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Operating lease liabilities</link:label>
    <link:label id="lab_us-gaap_OperatingLeaseLiabilityCurrent_17BDDED352301993E10F30EA0FDB6065_label_en-US" xlink:label="lab_us-gaap_OperatingLeaseLiabilityCurrent_17BDDED352301993E10F30EA0FDB6065" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Operating Lease, Liability, Current</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_OperatingLeaseLiabilityCurrent" xlink:label="loc_us-gaap_OperatingLeaseLiabilityCurrent_17BDDED352301993E10F30EA0FDB6065" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_OperatingLeaseLiabilityCurrent_17BDDED352301993E10F30EA0FDB6065" xlink:to="lab_us-gaap_OperatingLeaseLiabilityCurrent_17BDDED352301993E10F30EA0FDB6065" xlink:type="arc" />
    <link:label id="lab_us-gaap_LiabilitiesCurrent_FD8DAD5D6C012B00D3B130EA0FDC5C5F_totalLabel_en-US" xlink:label="lab_us-gaap_LiabilitiesCurrent_FD8DAD5D6C012B00D3B130EA0FDC5C5F" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xml:lang="en-US">Total current liabilities</link:label>
    <link:label id="lab_us-gaap_LiabilitiesCurrent_FD8DAD5D6C012B00D3B130EA0FDC5C5F_label_en-US" xlink:label="lab_us-gaap_LiabilitiesCurrent_FD8DAD5D6C012B00D3B130EA0FDC5C5F" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Liabilities, Current</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_LiabilitiesCurrent" xlink:label="loc_us-gaap_LiabilitiesCurrent_FD8DAD5D6C012B00D3B130EA0FDC5C5F" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_LiabilitiesCurrent_FD8DAD5D6C012B00D3B130EA0FDC5C5F" xlink:to="lab_us-gaap_LiabilitiesCurrent_FD8DAD5D6C012B00D3B130EA0FDC5C5F" xlink:type="arc" />
    <link:label id="lab_us-gaap_OperatingLeaseLiabilityNoncurrent_F6816FF8C7E7F731876A30EA0FDCAD44_terseLabel_en-US" xlink:label="lab_us-gaap_OperatingLeaseLiabilityNoncurrent_F6816FF8C7E7F731876A30EA0FDCAD44" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Non-current operating lease liabilities</link:label>
    <link:label id="lab_us-gaap_OperatingLeaseLiabilityNoncurrent_F6816FF8C7E7F731876A30EA0FDCAD44_label_en-US" xlink:label="lab_us-gaap_OperatingLeaseLiabilityNoncurrent_F6816FF8C7E7F731876A30EA0FDCAD44" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Operating Lease, Liability, Noncurrent</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_OperatingLeaseLiabilityNoncurrent" xlink:label="loc_us-gaap_OperatingLeaseLiabilityNoncurrent_F6816FF8C7E7F731876A30EA0FDCAD44" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_OperatingLeaseLiabilityNoncurrent_F6816FF8C7E7F731876A30EA0FDCAD44" xlink:to="lab_us-gaap_OperatingLeaseLiabilityNoncurrent_F6816FF8C7E7F731876A30EA0FDCAD44" xlink:type="arc" />
    <link:label id="lab_us-gaap_DeferredIncomeTaxLiabilitiesNet_B1E35C285B1DF80AA26330EA0FDC8F26_terseLabel_en-US" xlink:label="lab_us-gaap_DeferredIncomeTaxLiabilitiesNet_B1E35C285B1DF80AA26330EA0FDC8F26" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Deferred income taxes</link:label>
    <link:label id="lab_us-gaap_DeferredIncomeTaxLiabilitiesNet_B1E35C285B1DF80AA26330EA0FDC8F26_label_en-US" xlink:label="lab_us-gaap_DeferredIncomeTaxLiabilitiesNet_B1E35C285B1DF80AA26330EA0FDC8F26" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Deferred Income Tax Liabilities, Net</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_DeferredIncomeTaxLiabilitiesNet" xlink:label="loc_us-gaap_DeferredIncomeTaxLiabilitiesNet_B1E35C285B1DF80AA26330EA0FDC8F26" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DeferredIncomeTaxLiabilitiesNet_B1E35C285B1DF80AA26330EA0FDC8F26" xlink:to="lab_us-gaap_DeferredIncomeTaxLiabilitiesNet_B1E35C285B1DF80AA26330EA0FDC8F26" xlink:type="arc" />
    <link:label id="lab_us-gaap_AccruedIncomeTaxesNoncurrent_576EA47C3341B3DAA3BD30EA0FDCCD49_terseLabel_en-US" xlink:label="lab_us-gaap_AccruedIncomeTaxesNoncurrent_576EA47C3341B3DAA3BD30EA0FDCCD49" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Non-current accrued income taxes</link:label>
    <link:label id="lab_us-gaap_AccruedIncomeTaxesNoncurrent_576EA47C3341B3DAA3BD30EA0FDCCD49_label_en-US" xlink:label="lab_us-gaap_AccruedIncomeTaxesNoncurrent_576EA47C3341B3DAA3BD30EA0FDCCD49" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Accrued Income Taxes, Noncurrent</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_AccruedIncomeTaxesNoncurrent" xlink:label="loc_us-gaap_AccruedIncomeTaxesNoncurrent_576EA47C3341B3DAA3BD30EA0FDCCD49" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AccruedIncomeTaxesNoncurrent_576EA47C3341B3DAA3BD30EA0FDCCD49" xlink:to="lab_us-gaap_AccruedIncomeTaxesNoncurrent_576EA47C3341B3DAA3BD30EA0FDCCD49" xlink:type="arc" />
    <link:label id="lab_us-gaap_OtherLiabilitiesNoncurrent_0EA34AA9A28AA26E83C830EA0FDC4149_terseLabel_en-US" xlink:label="lab_us-gaap_OtherLiabilitiesNoncurrent_0EA34AA9A28AA26E83C830EA0FDC4149" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Other liabilities</link:label>
    <link:label id="lab_us-gaap_OtherLiabilitiesNoncurrent_0EA34AA9A28AA26E83C830EA0FDC4149_label_en-US" xlink:label="lab_us-gaap_OtherLiabilitiesNoncurrent_0EA34AA9A28AA26E83C830EA0FDC4149" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Other Liabilities, Noncurrent</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_OtherLiabilitiesNoncurrent" xlink:label="loc_us-gaap_OtherLiabilitiesNoncurrent_0EA34AA9A28AA26E83C830EA0FDC4149" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_OtherLiabilitiesNoncurrent_0EA34AA9A28AA26E83C830EA0FDC4149" xlink:to="lab_us-gaap_OtherLiabilitiesNoncurrent_0EA34AA9A28AA26E83C830EA0FDC4149" xlink:type="arc" />
    <link:label id="lab_us-gaap_Liabilities_53C00663C69F7C04B31230EA0FDDF7AD_totalLabel_en-US" xlink:label="lab_us-gaap_Liabilities_53C00663C69F7C04B31230EA0FDDF7AD" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xml:lang="en-US">Total liabilities</link:label>
    <link:label id="lab_us-gaap_Liabilities_53C00663C69F7C04B31230EA0FDDF7AD_label_en-US" xlink:label="lab_us-gaap_Liabilities_53C00663C69F7C04B31230EA0FDDF7AD" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Liabilities</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_Liabilities" xlink:label="loc_us-gaap_Liabilities_53C00663C69F7C04B31230EA0FDDF7AD" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_Liabilities_53C00663C69F7C04B31230EA0FDDF7AD" xlink:to="lab_us-gaap_Liabilities_53C00663C69F7C04B31230EA0FDDF7AD" xlink:type="arc" />
    <link:label id="lab_us-gaap_CommitmentsAndContingencies_ADA29434F2AB24A117E730EA0FDDFAFD_terseLabel_en-US" xlink:label="lab_us-gaap_CommitmentsAndContingencies_ADA29434F2AB24A117E730EA0FDDFAFD" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Commitments and contingencies (Note 11)</link:label>
    <link:label id="lab_us-gaap_CommitmentsAndContingencies_ADA29434F2AB24A117E730EA0FDDFAFD_label_en-US" xlink:label="lab_us-gaap_CommitmentsAndContingencies_ADA29434F2AB24A117E730EA0FDDFAFD" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Commitments and Contingencies</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_CommitmentsAndContingencies" xlink:label="loc_us-gaap_CommitmentsAndContingencies_ADA29434F2AB24A117E730EA0FDDFAFD" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_CommitmentsAndContingencies_ADA29434F2AB24A117E730EA0FDDFAFD" xlink:to="lab_us-gaap_CommitmentsAndContingencies_ADA29434F2AB24A117E730EA0FDDFAFD" xlink:type="arc" />
    <link:label id="lab_us-gaap_StockholdersEquityAbstract_5B6F969DE5E0CA05DE4530EA0FDD697C_terseLabel_en-US" xlink:label="lab_us-gaap_StockholdersEquityAbstract_5B6F969DE5E0CA05DE4530EA0FDD697C" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Shareholders&#8217; equity:</link:label>
    <link:label id="lab_us-gaap_StockholdersEquityAbstract_5B6F969DE5E0CA05DE4530EA0FDD697C_label_en-US" xlink:label="lab_us-gaap_StockholdersEquityAbstract_5B6F969DE5E0CA05DE4530EA0FDD697C" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Stockholders' Equity Attributable to Parent [Abstract]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_StockholdersEquityAbstract" xlink:label="loc_us-gaap_StockholdersEquityAbstract_5B6F969DE5E0CA05DE4530EA0FDD697C" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_StockholdersEquityAbstract_5B6F969DE5E0CA05DE4530EA0FDD697C" xlink:to="lab_us-gaap_StockholdersEquityAbstract_5B6F969DE5E0CA05DE4530EA0FDD697C" xlink:type="arc" />
    <link:label id="lab_us-gaap_PreferredStockValueOutstanding_E054E61489DDFB338D6530EA0FDDE4EA_terseLabel_en-US" xlink:label="lab_us-gaap_PreferredStockValueOutstanding_E054E61489DDFB338D6530EA0FDDE4EA" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Preferred stock,$.01 par value - Authorized: 400 shares in 2019 and 2018, respectively, no shares issued and outstanding</link:label>
    <link:label id="lab_us-gaap_PreferredStockValueOutstanding_E054E61489DDFB338D6530EA0FDDE4EA_label_en-US" xlink:label="lab_us-gaap_PreferredStockValueOutstanding_E054E61489DDFB338D6530EA0FDDE4EA" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Preferred Stock, Value, Outstanding</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_PreferredStockValueOutstanding" xlink:label="loc_us-gaap_PreferredStockValueOutstanding_E054E61489DDFB338D6530EA0FDDE4EA" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_PreferredStockValueOutstanding_E054E61489DDFB338D6530EA0FDDE4EA" xlink:to="lab_us-gaap_PreferredStockValueOutstanding_E054E61489DDFB338D6530EA0FDDE4EA" xlink:type="arc" />
    <link:label id="lab_us-gaap_CommonStockValueOutstanding_4300F6A22C4414D445D830EA0FDD150E_terseLabel_en-US" xlink:label="lab_us-gaap_CommonStockValueOutstanding_4300F6A22C4414D445D830EA0FDD150E" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Common stock, $.002 par value &#8211; Authorized: 300,000 shares in 2019 and 2018, respectively, issued and outstanding: 172,440 and 170,820 shares in 2019 and 2018, respectively</link:label>
    <link:label id="lab_us-gaap_CommonStockValueOutstanding_4300F6A22C4414D445D830EA0FDD150E_label_en-US" xlink:label="lab_us-gaap_CommonStockValueOutstanding_4300F6A22C4414D445D830EA0FDD150E" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Common Stock, Value, Outstanding</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_CommonStockValueOutstanding" xlink:label="loc_us-gaap_CommonStockValueOutstanding_4300F6A22C4414D445D830EA0FDD150E" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_CommonStockValueOutstanding_4300F6A22C4414D445D830EA0FDD150E" xlink:to="lab_us-gaap_CommonStockValueOutstanding_4300F6A22C4414D445D830EA0FDD150E" xlink:type="arc" />
    <link:label id="lab_us-gaap_AdditionalPaidInCapitalCommonStock_4CA181B56FB2BAFB0BCF30EA0FDDE233_terseLabel_en-US" xlink:label="lab_us-gaap_AdditionalPaidInCapitalCommonStock_4CA181B56FB2BAFB0BCF30EA0FDDE233" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Additional paid-in capital</link:label>
    <link:label id="lab_us-gaap_AdditionalPaidInCapitalCommonStock_4CA181B56FB2BAFB0BCF30EA0FDDE233_label_en-US" xlink:label="lab_us-gaap_AdditionalPaidInCapitalCommonStock_4CA181B56FB2BAFB0BCF30EA0FDDE233" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Additional Paid in Capital, Common Stock</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_AdditionalPaidInCapitalCommonStock" xlink:label="loc_us-gaap_AdditionalPaidInCapitalCommonStock_4CA181B56FB2BAFB0BCF30EA0FDDE233" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AdditionalPaidInCapitalCommonStock_4CA181B56FB2BAFB0BCF30EA0FDDE233" xlink:to="lab_us-gaap_AdditionalPaidInCapitalCommonStock_4CA181B56FB2BAFB0BCF30EA0FDDE233" xlink:type="arc" />
    <link:label id="lab_us-gaap_RetainedEarningsAccumulatedDeficit_AC5F9FB0A20150D670DF30EA0FDE4A76_terseLabel_en-US" xlink:label="lab_us-gaap_RetainedEarningsAccumulatedDeficit_AC5F9FB0A20150D670DF30EA0FDE4A76" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Retained earnings</link:label>
    <link:label id="lab_us-gaap_RetainedEarningsAccumulatedDeficit_AC5F9FB0A20150D670DF30EA0FDE4A76_label_en-US" xlink:label="lab_us-gaap_RetainedEarningsAccumulatedDeficit_AC5F9FB0A20150D670DF30EA0FDE4A76" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Retained Earnings (Accumulated Deficit)</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_RetainedEarningsAccumulatedDeficit" xlink:label="loc_us-gaap_RetainedEarningsAccumulatedDeficit_AC5F9FB0A20150D670DF30EA0FDE4A76" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_RetainedEarningsAccumulatedDeficit_AC5F9FB0A20150D670DF30EA0FDE4A76" xlink:to="lab_us-gaap_RetainedEarningsAccumulatedDeficit_AC5F9FB0A20150D670DF30EA0FDE4A76" xlink:type="arc" />
    <link:label id="lab_us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax_0B5F6E1DCCC22E02FA5830EA0FDE1AE3_terseLabel_en-US" xlink:label="lab_us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax_0B5F6E1DCCC22E02FA5830EA0FDE1AE3" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Accumulated other comprehensive loss, net of tax</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax" xlink:label="loc_us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax_0B5F6E1DCCC22E02FA5830EA0FDE1AE3" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax_0B5F6E1DCCC22E02FA5830EA0FDE1AE3" xlink:to="lab_us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax_0B5F6E1DCCC22E02FA5830EA0FDE1AE3" xlink:type="arc" />
    <link:label id="lab_us-gaap_StockholdersEquity_9B7D4DF7306B205E8D2630EA0FDE4714_totalLabel_en-US" xlink:label="lab_us-gaap_StockholdersEquity_9B7D4DF7306B205E8D2630EA0FDE4714" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xml:lang="en-US">Total shareholders&#8217; equity</link:label>
    <link:label id="lab_us-gaap_StockholdersEquity_9B7D4DF7306B205E8D2630EA0FDE4714_label_en-US" xlink:label="lab_us-gaap_StockholdersEquity_9B7D4DF7306B205E8D2630EA0FDE4714" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Stockholders' Equity Attributable to Parent</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_StockholdersEquity" xlink:label="loc_us-gaap_StockholdersEquity_9B7D4DF7306B205E8D2630EA0FDE4714" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_StockholdersEquity_9B7D4DF7306B205E8D2630EA0FDE4714" xlink:to="lab_us-gaap_StockholdersEquity_9B7D4DF7306B205E8D2630EA0FDE4714" xlink:type="arc" />
    <link:label id="lab_us-gaap_LiabilitiesAndStockholdersEquity_26C1C43CDFBDB69CA4E130EA0FDE7D39_totalLabel_en-US" xlink:label="lab_us-gaap_LiabilitiesAndStockholdersEquity_26C1C43CDFBDB69CA4E130EA0FDE7D39" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xml:lang="en-US">Total liabilities and shareholders' equity</link:label>
    <link:label id="lab_us-gaap_LiabilitiesAndStockholdersEquity_26C1C43CDFBDB69CA4E130EA0FDE7D39_label_en-US" xlink:label="lab_us-gaap_LiabilitiesAndStockholdersEquity_26C1C43CDFBDB69CA4E130EA0FDE7D39" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Liabilities and Equity</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_LiabilitiesAndStockholdersEquity" xlink:label="loc_us-gaap_LiabilitiesAndStockholdersEquity_26C1C43CDFBDB69CA4E130EA0FDE7D39" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_LiabilitiesAndStockholdersEquity_26C1C43CDFBDB69CA4E130EA0FDE7D39" xlink:to="lab_us-gaap_LiabilitiesAndStockholdersEquity_26C1C43CDFBDB69CA4E130EA0FDE7D39" xlink:type="arc" />
    <link:label id="lab_us-gaap_ScheduleOfIndefiniteLivedIntangibleAssetsAcquiredAsPartOfBusinessCombinationTextBlock_9E3396374D502DDF4ACDFD4E0142843F_terseLabel_en-US" xlink:label="lab_us-gaap_ScheduleOfIndefiniteLivedIntangibleAssetsAcquiredAsPartOfBusinessCombinationTextBlock_9E3396374D502DDF4ACDFD4E0142843F" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Schedule of Indefinite-lived Intangible Assets Acquired as Part of Business Combination</link:label>
    <link:label id="lab_us-gaap_ScheduleOfIndefiniteLivedIntangibleAssetsAcquiredAsPartOfBusinessCombinationTextBlock_9E3396374D502DDF4ACDFD4E0142843F_label_en-US" xlink:label="lab_us-gaap_ScheduleOfIndefiniteLivedIntangibleAssetsAcquiredAsPartOfBusinessCombinationTextBlock_9E3396374D502DDF4ACDFD4E0142843F" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Schedule of Indefinite-lived Intangible Assets Acquired as Part of Business Combination [Table Text Block]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ScheduleOfIndefiniteLivedIntangibleAssetsAcquiredAsPartOfBusinessCombinationTextBlock" xlink:label="loc_us-gaap_ScheduleOfIndefiniteLivedIntangibleAssetsAcquiredAsPartOfBusinessCombinationTextBlock_9E3396374D502DDF4ACDFD4E0142843F" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ScheduleOfIndefiniteLivedIntangibleAssetsAcquiredAsPartOfBusinessCombinationTextBlock_9E3396374D502DDF4ACDFD4E0142843F" xlink:to="lab_us-gaap_ScheduleOfIndefiniteLivedIntangibleAssetsAcquiredAsPartOfBusinessCombinationTextBlock_9E3396374D502DDF4ACDFD4E0142843F" xlink:type="arc" />
    <link:label id="lab_us-gaap_EquityAbstract_FAECD665E52C8A2FFAD18095E6215A62_label_en-US" xlink:label="lab_us-gaap_EquityAbstract_FAECD665E52C8A2FFAD18095E6215A62" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Equity [Abstract]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_EquityAbstract" xlink:label="loc_us-gaap_EquityAbstract_FAECD665E52C8A2FFAD18095E6215A62" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_EquityAbstract_FAECD665E52C8A2FFAD18095E6215A62" xlink:to="lab_us-gaap_EquityAbstract_FAECD665E52C8A2FFAD18095E6215A62" xlink:type="arc" />
    <link:label id="lab_us-gaap_StockholdersEquityNoteDisclosureTextBlock_8963CCF799EC9FC06B4C8095E621FA9C_terseLabel_en-US" xlink:label="lab_us-gaap_StockholdersEquityNoteDisclosureTextBlock_8963CCF799EC9FC06B4C8095E621FA9C" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Shareholders&#8217; Equity</link:label>
    <link:label id="lab_us-gaap_StockholdersEquityNoteDisclosureTextBlock_8963CCF799EC9FC06B4C8095E621FA9C_label_en-US" xlink:label="lab_us-gaap_StockholdersEquityNoteDisclosureTextBlock_8963CCF799EC9FC06B4C8095E621FA9C" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Stockholders' Equity Note Disclosure [Text Block]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_StockholdersEquityNoteDisclosureTextBlock" xlink:label="loc_us-gaap_StockholdersEquityNoteDisclosureTextBlock_8963CCF799EC9FC06B4C8095E621FA9C" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_StockholdersEquityNoteDisclosureTextBlock_8963CCF799EC9FC06B4C8095E621FA9C" xlink:to="lab_us-gaap_StockholdersEquityNoteDisclosureTextBlock_8963CCF799EC9FC06B4C8095E621FA9C" xlink:type="arc" />
    <link:label id="lab_us-gaap_GrossProfit_BC6D0844A025F6965A7E170C8FD53C8B_terseLabel_en-US" xlink:label="lab_us-gaap_GrossProfit_BC6D0844A025F6965A7E170C8FD53C8B" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Gross margin</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_GrossProfit" xlink:label="loc_us-gaap_GrossProfit_BC6D0844A025F6965A7E170C8FD53C8B" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_GrossProfit_BC6D0844A025F6965A7E170C8FD53C8B" xlink:to="lab_us-gaap_GrossProfit_BC6D0844A025F6965A7E170C8FD53C8B" xlink:type="arc" />
    <link:label id="lab_us-gaap_NetIncomeLoss_0335BBBCE2DB2ECEF9A3170C8FD6BF93_verboseLabel_en-US" xlink:label="lab_us-gaap_NetIncomeLoss_0335BBBCE2DB2ECEF9A3170C8FD6BF93" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xml:lang="en-US">Net income</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_NetIncomeLoss" xlink:label="loc_us-gaap_NetIncomeLoss_0335BBBCE2DB2ECEF9A3170C8FD6BF93" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_NetIncomeLoss_0335BBBCE2DB2ECEF9A3170C8FD6BF93" xlink:to="lab_us-gaap_NetIncomeLoss_0335BBBCE2DB2ECEF9A3170C8FD6BF93" xlink:type="arc" />
    <link:label id="lab_us-gaap_EarningsPerShareBasic_64210D1527E0175B6934170C8FD6CE05_verboseLabel_en-US" xlink:label="lab_us-gaap_EarningsPerShareBasic_64210D1527E0175B6934170C8FD6CE05" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xml:lang="en-US">Basic net income (loss) per share (in dollars per share)</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_EarningsPerShareBasic" xlink:label="loc_us-gaap_EarningsPerShareBasic_64210D1527E0175B6934170C8FD6CE05" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_EarningsPerShareBasic_64210D1527E0175B6934170C8FD6CE05" xlink:to="lab_us-gaap_EarningsPerShareBasic_64210D1527E0175B6934170C8FD6CE05" xlink:type="arc" />
    <link:label id="lab_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount_21800E74B6E671F958EA170C8FD6C1B8_verboseLabel_en-US" xlink:label="lab_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount_21800E74B6E671F958EA170C8FD6C1B8" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xml:lang="en-US">Stock not included in calculation of diluted net loss per share (in shares)</link:label>
    <link:label id="lab_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount_21800E74B6E671F958EA170C8FD6C1B8_label_en-US" xlink:label="lab_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount_21800E74B6E671F958EA170C8FD6C1B8" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Antidilutive Securities Excluded from Computation of Earnings Per Share, Amount</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount" xlink:label="loc_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount_21800E74B6E671F958EA170C8FD6C1B8" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount_21800E74B6E671F958EA170C8FD6C1B8" xlink:to="lab_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount_21800E74B6E671F958EA170C8FD6C1B8" xlink:type="arc" />
    <link:label id="lab_us-gaap_TechnologyBasedIntangibleAssetsMember_33A360E3BA59F538B2A235BC8D916BB1_verboseLabel_en-US" xlink:label="lab_us-gaap_TechnologyBasedIntangibleAssetsMember_33A360E3BA59F538B2A235BC8D916BB1" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xml:lang="en-US">Completed Technologies [Member]</link:label>
    <link:label id="lab_us-gaap_TechnologyBasedIntangibleAssetsMember_33A360E3BA59F538B2A235BC8D916BB1_label_en-US" xlink:label="lab_us-gaap_TechnologyBasedIntangibleAssetsMember_33A360E3BA59F538B2A235BC8D916BB1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Technology-Based Intangible Assets [Member]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_TechnologyBasedIntangibleAssetsMember" xlink:label="loc_us-gaap_TechnologyBasedIntangibleAssetsMember_33A360E3BA59F538B2A235BC8D916BB1" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_TechnologyBasedIntangibleAssetsMember_33A360E3BA59F538B2A235BC8D916BB1" xlink:to="lab_us-gaap_TechnologyBasedIntangibleAssetsMember_33A360E3BA59F538B2A235BC8D916BB1" xlink:type="arc" />
    <link:label id="lab_cgnx_GViVenturesInc.Member_F86DEA352BC88017254435BC8D926A5B_terseLabel_en-US" xlink:label="lab_cgnx_GViVenturesInc.Member_F86DEA352BC88017254435BC8D926A5B" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">GVi Ventures, Inc.</link:label>
    <link:label id="lab_cgnx_GViVenturesInc.Member_F86DEA352BC88017254435BC8D926A5B_label_en-US" xlink:label="lab_cgnx_GViVenturesInc.Member_F86DEA352BC88017254435BC8D926A5B" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">GVi Ventures, Inc. [Member]</link:label>
    <link:label id="lab_cgnx_GViVenturesInc.Member_F86DEA352BC88017254435BC8D926A5B_documentation_en-US" xlink:label="lab_cgnx_GViVenturesInc.Member_F86DEA352BC88017254435BC8D926A5B" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">GVi Ventures, Inc. [Member]</link:label>
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_GViVenturesInc.Member" xlink:label="loc_cgnx_GViVenturesInc.Member_F86DEA352BC88017254435BC8D926A5B" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_GViVenturesInc.Member_F86DEA352BC88017254435BC8D926A5B" xlink:to="lab_cgnx_GViVenturesInc.Member_F86DEA352BC88017254435BC8D926A5B" xlink:type="arc" />
    <link:label id="lab_us-gaap_BusinessCombinationContingentConsiderationArrangementsChangeInTheRangeOfOutcomesContingentConsiderationLiabilityValueLow_31540A628AF92C7C810935BC8D93FA60_terseLabel_en-US" xlink:label="lab_us-gaap_BusinessCombinationContingentConsiderationArrangementsChangeInTheRangeOfOutcomesContingentConsiderationLiabilityValueLow_31540A628AF92C7C810935BC8D93FA60" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Business Combination, Contingent Consideration Arrangements, Change in Range of Outcomes, Contingent Consideration, Liability, Value, Low</link:label>
    <link:label id="lab_us-gaap_BusinessCombinationContingentConsiderationArrangementsChangeInTheRangeOfOutcomesContingentConsiderationLiabilityValueLow_31540A628AF92C7C810935BC8D93FA60_label_en-US" xlink:label="lab_us-gaap_BusinessCombinationContingentConsiderationArrangementsChangeInTheRangeOfOutcomesContingentConsiderationLiabilityValueLow_31540A628AF92C7C810935BC8D93FA60" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Business Combination, Contingent Consideration Arrangements, Change in Range of Outcomes, Contingent Consideration, Liability, Value, Low</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_BusinessCombinationContingentConsiderationArrangementsChangeInTheRangeOfOutcomesContingentConsiderationLiabilityValueLow" xlink:label="loc_us-gaap_BusinessCombinationContingentConsiderationArrangementsChangeInTheRangeOfOutcomesContingentConsiderationLiabilityValueLow_31540A628AF92C7C810935BC8D93FA60" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_BusinessCombinationContingentConsiderationArrangementsChangeInTheRangeOfOutcomesContingentConsiderationLiabilityValueLow_31540A628AF92C7C810935BC8D93FA60" xlink:to="lab_us-gaap_BusinessCombinationContingentConsiderationArrangementsChangeInTheRangeOfOutcomesContingentConsiderationLiabilityValueLow_31540A628AF92C7C810935BC8D93FA60" xlink:type="arc" />
    <link:label id="lab_us-gaap_BusinessCombinationContingentConsiderationArrangementsChangeInTheRangeOfOutcomesContingentConsiderationLiabilityValueHigh_0D815786ED3ED6AE342935BC8D93E2C8_terseLabel_en-US" xlink:label="lab_us-gaap_BusinessCombinationContingentConsiderationArrangementsChangeInTheRangeOfOutcomesContingentConsiderationLiabilityValueHigh_0D815786ED3ED6AE342935BC8D93E2C8" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Business Combination, Contingent Consideration Arrangements, Change in Range of Outcomes, Contingent Consideration, Liability, Value, High</link:label>
    <link:label id="lab_us-gaap_BusinessCombinationContingentConsiderationArrangementsChangeInTheRangeOfOutcomesContingentConsiderationLiabilityValueHigh_0D815786ED3ED6AE342935BC8D93E2C8_label_en-US" xlink:label="lab_us-gaap_BusinessCombinationContingentConsiderationArrangementsChangeInTheRangeOfOutcomesContingentConsiderationLiabilityValueHigh_0D815786ED3ED6AE342935BC8D93E2C8" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Business Combination, Contingent Consideration Arrangements, Change in Range of Outcomes, Contingent Consideration, Liability, Value, High</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_BusinessCombinationContingentConsiderationArrangementsChangeInTheRangeOfOutcomesContingentConsiderationLiabilityValueHigh" xlink:label="loc_us-gaap_BusinessCombinationContingentConsiderationArrangementsChangeInTheRangeOfOutcomesContingentConsiderationLiabilityValueHigh_0D815786ED3ED6AE342935BC8D93E2C8" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_BusinessCombinationContingentConsiderationArrangementsChangeInTheRangeOfOutcomesContingentConsiderationLiabilityValueHigh_0D815786ED3ED6AE342935BC8D93E2C8" xlink:to="lab_us-gaap_BusinessCombinationContingentConsiderationArrangementsChangeInTheRangeOfOutcomesContingentConsiderationLiabilityValueHigh_0D815786ED3ED6AE342935BC8D93E2C8" xlink:type="arc" />
    <link:label id="lab_us-gaap_BusinessCombinationContingentConsiderationLiability_5313C83A9CD02E68DDF435BC8D949A0A_verboseLabel_en-US" xlink:label="lab_us-gaap_BusinessCombinationContingentConsiderationLiability_5313C83A9CD02E68DDF435BC8D949A0A" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xml:lang="en-US">Contingent consideration liability</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_BusinessCombinationContingentConsiderationLiability" xlink:label="loc_us-gaap_BusinessCombinationContingentConsiderationLiability_5313C83A9CD02E68DDF435BC8D949A0A" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_BusinessCombinationContingentConsiderationLiability_5313C83A9CD02E68DDF435BC8D949A0A" xlink:to="lab_us-gaap_BusinessCombinationContingentConsiderationLiability_5313C83A9CD02E68DDF435BC8D949A0A" xlink:type="arc" />
    <link:label id="lab_us-gaap_BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueLow_B0037A2FF888396C0FE835BC8D9457FE_terseLabel_en-US" xlink:label="lab_us-gaap_BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueLow_B0037A2FF888396C0FE835BC8D9457FE" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Contingent consideration, low range</link:label>
    <link:label id="lab_us-gaap_BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueLow_B0037A2FF888396C0FE835BC8D9457FE_label_en-US" xlink:label="lab_us-gaap_BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueLow_B0037A2FF888396C0FE835BC8D9457FE" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Business Combination, Contingent Consideration Arrangements, Range of Outcomes, Value, Low</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueLow" xlink:label="loc_us-gaap_BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueLow_B0037A2FF888396C0FE835BC8D9457FE" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueLow_B0037A2FF888396C0FE835BC8D9457FE" xlink:to="lab_us-gaap_BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueLow_B0037A2FF888396C0FE835BC8D9457FE" xlink:type="arc" />
    <link:label id="lab_us-gaap_BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueHigh_BEF94DBA79763E56940635BC8D94F698_terseLabel_en-US" xlink:label="lab_us-gaap_BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueHigh_BEF94DBA79763E56940635BC8D94F698" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Contingent consideration, high range</link:label>
    <link:label id="lab_us-gaap_BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueHigh_BEF94DBA79763E56940635BC8D94F698_label_en-US" xlink:label="lab_us-gaap_BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueHigh_BEF94DBA79763E56940635BC8D94F698" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Business Combination, Contingent Consideration Arrangements, Range of Outcomes, Value, High</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueHigh" xlink:label="loc_us-gaap_BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueHigh_BEF94DBA79763E56940635BC8D94F698" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueHigh_BEF94DBA79763E56940635BC8D94F698" xlink:to="lab_us-gaap_BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueHigh_BEF94DBA79763E56940635BC8D94F698" xlink:type="arc" />
    <link:label id="lab_us-gaap_BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1_61A28FA16D79531D01D035BC8D943701_terseLabel_en-US" xlink:label="lab_us-gaap_BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1_61A28FA16D79531D01D035BC8D943701" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Revaluation of contingent consideration</link:label>
    <link:label id="lab_us-gaap_BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1_61A28FA16D79531D01D035BC8D943701_label_en-US" xlink:label="lab_us-gaap_BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1_61A28FA16D79531D01D035BC8D943701" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Business Combination, Contingent Consideration Arrangements, Change in Amount of Contingent Consideration, Liability</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1" xlink:label="loc_us-gaap_BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1_61A28FA16D79531D01D035BC8D943701" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1_61A28FA16D79531D01D035BC8D943701" xlink:to="lab_us-gaap_BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1_61A28FA16D79531D01D035BC8D943701" xlink:type="arc" />
    <link:label id="lab_us-gaap_PaymentsForPreviousAcquisition_95D2AEA5918A7D00E78935BC8D95C7A0_terseLabel_en-US" xlink:label="lab_us-gaap_PaymentsForPreviousAcquisition_95D2AEA5918A7D00E78935BC8D95C7A0" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Payment of contingent consideration</link:label>
    <link:label id="lab_us-gaap_PaymentsForPreviousAcquisition_95D2AEA5918A7D00E78935BC8D95C7A0_label_en-US" xlink:label="lab_us-gaap_PaymentsForPreviousAcquisition_95D2AEA5918A7D00E78935BC8D95C7A0" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Payments for Previous Acquisition</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_PaymentsForPreviousAcquisition" xlink:label="loc_us-gaap_PaymentsForPreviousAcquisition_95D2AEA5918A7D00E78935BC8D95C7A0" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_PaymentsForPreviousAcquisition_95D2AEA5918A7D00E78935BC8D95C7A0" xlink:to="lab_us-gaap_PaymentsForPreviousAcquisition_95D2AEA5918A7D00E78935BC8D95C7A0" xlink:type="arc" />
    <link:label id="lab_us-gaap_ScheduleOfQuarterlyFinancialInformationTableTextBlock_3BD7FD8172A8EB511F778095E8137FBC_terseLabel_en-US" xlink:label="lab_us-gaap_ScheduleOfQuarterlyFinancialInformationTableTextBlock_3BD7FD8172A8EB511F778095E8137FBC" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Schedule of Selected Quarterly Financial Information Data</link:label>
    <link:label id="lab_us-gaap_ScheduleOfQuarterlyFinancialInformationTableTextBlock_3BD7FD8172A8EB511F778095E8137FBC_label_en-US" xlink:label="lab_us-gaap_ScheduleOfQuarterlyFinancialInformationTableTextBlock_3BD7FD8172A8EB511F778095E8137FBC" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Quarterly Financial Information [Table Text Block]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ScheduleOfQuarterlyFinancialInformationTableTextBlock" xlink:label="loc_us-gaap_ScheduleOfQuarterlyFinancialInformationTableTextBlock_3BD7FD8172A8EB511F778095E8137FBC" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ScheduleOfQuarterlyFinancialInformationTableTextBlock_3BD7FD8172A8EB511F778095E8137FBC" xlink:to="lab_us-gaap_ScheduleOfQuarterlyFinancialInformationTableTextBlock_3BD7FD8172A8EB511F778095E8137FBC" xlink:type="arc" />
    <link:label id="lab_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsReceivables_DDA3FE3D3276A42F3B83F3C8FDC85187_terseLabel_en-US" xlink:label="lab_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsReceivables_DDA3FE3D3276A42F3B83F3C8FDC85187" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Accounts receivable</link:label>
    <link:label id="lab_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsReceivables_DDA3FE3D3276A42F3B83F3C8FDC85187_label_en-US" xlink:label="lab_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsReceivables_DDA3FE3D3276A42F3B83F3C8FDC85187" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Business Combination, Recognized Identifiable Assets Acquired and Liabilities Assumed, Current Assets, Receivables</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsReceivables" xlink:label="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsReceivables_DDA3FE3D3276A42F3B83F3C8FDC85187" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsReceivables_DDA3FE3D3276A42F3B83F3C8FDC85187" xlink:to="lab_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsReceivables_DDA3FE3D3276A42F3B83F3C8FDC85187" xlink:type="arc" />
    <link:label id="lab_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedInventory_AE2B86A1BEFBD85FD74DF3C8FDC8E031_terseLabel_en-US" xlink:label="lab_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedInventory_AE2B86A1BEFBD85FD74DF3C8FDC8E031" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Inventories</link:label>
    <link:label id="lab_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedInventory_AE2B86A1BEFBD85FD74DF3C8FDC8E031_label_en-US" xlink:label="lab_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedInventory_AE2B86A1BEFBD85FD74DF3C8FDC8E031" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Business Combination, Recognized Identifiable Assets Acquired and Liabilities Assumed, Inventory</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedInventory" xlink:label="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedInventory_AE2B86A1BEFBD85FD74DF3C8FDC8E031" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedInventory_AE2B86A1BEFBD85FD74DF3C8FDC8E031" xlink:to="lab_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedInventory_AE2B86A1BEFBD85FD74DF3C8FDC8E031" xlink:type="arc" />
    <link:label id="lab_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsPrepaidExpenseAndOtherAssets_D1D99365400A5D963E90F3C8FDC89CFA_terseLabel_en-US" xlink:label="lab_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsPrepaidExpenseAndOtherAssets_D1D99365400A5D963E90F3C8FDC89CFA" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Prepaid expenses and other current assets</link:label>
    <link:label id="lab_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsPrepaidExpenseAndOtherAssets_D1D99365400A5D963E90F3C8FDC89CFA_label_en-US" xlink:label="lab_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsPrepaidExpenseAndOtherAssets_D1D99365400A5D963E90F3C8FDC89CFA" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Business Combination, Recognized Identifiable Assets Acquired and Liabilities Assumed, Current Assets, Prepaid Expense and Other Assets</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsPrepaidExpenseAndOtherAssets" xlink:label="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsPrepaidExpenseAndOtherAssets_D1D99365400A5D963E90F3C8FDC89CFA" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsPrepaidExpenseAndOtherAssets_D1D99365400A5D963E90F3C8FDC89CFA" xlink:to="lab_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsPrepaidExpenseAndOtherAssets_D1D99365400A5D963E90F3C8FDC89CFA" xlink:type="arc" />
    <link:label id="lab_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccountsPayable_E8B7563BF3CE74324B82F3C8FDC8BC02_negatedTerseLabel_en-US" xlink:label="lab_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccountsPayable_E8B7563BF3CE74324B82F3C8FDC8BC02" xlink:role="http://www.xbrl.org/2009/role/negatedTerseLabel" xlink:type="resource" xml:lang="en-US">Accounts payable</link:label>
    <link:label id="lab_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccountsPayable_E8B7563BF3CE74324B82F3C8FDC8BC02_label_en-US" xlink:label="lab_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccountsPayable_E8B7563BF3CE74324B82F3C8FDC8BC02" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Business Combination, Recognized Identifiable Assets Acquired and Liabilities Assumed, Current Liabilities, Accounts Payable</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccountsPayable" xlink:label="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccountsPayable_E8B7563BF3CE74324B82F3C8FDC8BC02" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccountsPayable_E8B7563BF3CE74324B82F3C8FDC8BC02" xlink:to="lab_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccountsPayable_E8B7563BF3CE74324B82F3C8FDC8BC02" xlink:type="arc" />
    <link:label id="lab_cgnx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredandLiabilitiesAssumedCurrentLiabilitiesAccruedExpenses_D8A6B683719155508122F3C8FDC87327_negatedTerseLabel_en-US" xlink:label="lab_cgnx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredandLiabilitiesAssumedCurrentLiabilitiesAccruedExpenses_D8A6B683719155508122F3C8FDC87327" xlink:role="http://www.xbrl.org/2009/role/negatedTerseLabel" xlink:type="resource" xml:lang="en-US">Accrued expenses</link:label>
    <link:label id="lab_cgnx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredandLiabilitiesAssumedCurrentLiabilitiesAccruedExpenses_D8A6B683719155508122F3C8FDC87327_label_en-US" xlink:label="lab_cgnx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredandLiabilitiesAssumedCurrentLiabilitiesAccruedExpenses_D8A6B683719155508122F3C8FDC87327" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Business Combination, Recognized Identifiable Assets Acquired and Liabilities Assumed, Current Liabilities, Accrued Expenses</link:label>
    <link:label id="lab_cgnx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredandLiabilitiesAssumedCurrentLiabilitiesAccruedExpenses_D8A6B683719155508122F3C8FDC87327_documentation_en-US" xlink:label="lab_cgnx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredandLiabilitiesAssumedCurrentLiabilitiesAccruedExpenses_D8A6B683719155508122F3C8FDC87327" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Business Combination, Recognized Identifiable Assets Acquired and Liabilities Assumed, Current Liabilities, Accrued Expenses</link:label>
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredandLiabilitiesAssumedCurrentLiabilitiesAccruedExpenses" xlink:label="loc_cgnx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredandLiabilitiesAssumedCurrentLiabilitiesAccruedExpenses_D8A6B683719155508122F3C8FDC87327" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredandLiabilitiesAssumedCurrentLiabilitiesAccruedExpenses_D8A6B683719155508122F3C8FDC87327" xlink:to="lab_cgnx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredandLiabilitiesAssumedCurrentLiabilitiesAccruedExpenses_D8A6B683719155508122F3C8FDC87327" xlink:type="arc" />
    <link:label id="lab_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles_F15277EA890E3A941B3EF3C8FDC9E12F_terseLabel_en-US" xlink:label="lab_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles_F15277EA890E3A941B3EF3C8FDC9E12F" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Finite-lived intangible assets</link:label>
    <link:label id="lab_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles_F15277EA890E3A941B3EF3C8FDC9E12F_label_en-US" xlink:label="lab_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles_F15277EA890E3A941B3EF3C8FDC9E12F" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Business Combination, Recognized Identifiable Assets Acquired and Liabilities Assumed, Finite-Lived Intangibles</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles" xlink:label="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles_F15277EA890E3A941B3EF3C8FDC9E12F" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles_F15277EA890E3A941B3EF3C8FDC9E12F" xlink:to="lab_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles_F15277EA890E3A941B3EF3C8FDC9E12F" xlink:type="arc" />
    <link:label id="lab_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet_1DA8A2BDDA00A48C84C7F3C8FDC97FE8_totalLabel_en-US" xlink:label="lab_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet_1DA8A2BDDA00A48C84C7F3C8FDC97FE8" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xml:lang="en-US">Purchase price</link:label>
    <link:label id="lab_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet_1DA8A2BDDA00A48C84C7F3C8FDC97FE8_label_en-US" xlink:label="lab_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet_1DA8A2BDDA00A48C84C7F3C8FDC97FE8" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Business Combination, Recognized Identifiable Assets Acquired, Goodwill, and Liabilities Assumed, Net</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet" xlink:label="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet_1DA8A2BDDA00A48C84C7F3C8FDC97FE8" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet_1DA8A2BDDA00A48C84C7F3C8FDC97FE8" xlink:to="lab_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet_1DA8A2BDDA00A48C84C7F3C8FDC97FE8" xlink:type="arc" />
    <link:label id="lab_cgnx_IndemnificationProvisionsTextBlock_BF4D8D82583CAF5927198095E8A30731_terseLabel_en-US" xlink:label="lab_cgnx_IndemnificationProvisionsTextBlock_BF4D8D82583CAF5927198095E8A30731" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Indemnification Provisions</link:label>
    <link:label id="lab_cgnx_IndemnificationProvisionsTextBlock_BF4D8D82583CAF5927198095E8A30731_label_en-US" xlink:label="lab_cgnx_IndemnificationProvisionsTextBlock_BF4D8D82583CAF5927198095E8A30731" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Indemnification Provisions [Text Block]</link:label>
    <link:label id="lab_cgnx_IndemnificationProvisionsTextBlock_BF4D8D82583CAF5927198095E8A30731_documentation_en-US" xlink:label="lab_cgnx_IndemnificationProvisionsTextBlock_BF4D8D82583CAF5927198095E8A30731" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Indemnification provisions are a potential liability whereby the Company indemnifies certain directors, officers, and employees (current or former) against expenses incurred by them in relation to specific legal proceedings. The company also indemnifies other parties for specific situations.</link:label>
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_IndemnificationProvisionsTextBlock" xlink:label="loc_cgnx_IndemnificationProvisionsTextBlock_BF4D8D82583CAF5927198095E8A30731" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_IndemnificationProvisionsTextBlock_BF4D8D82583CAF5927198095E8A30731" xlink:to="lab_cgnx_IndemnificationProvisionsTextBlock_BF4D8D82583CAF5927198095E8A30731" xlink:type="arc" />
    <link:label id="lab_us-gaap_ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock_5C560C4063C843CF9951FD820D61CBDB_terseLabel_en-US" xlink:label="lab_us-gaap_ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock_5C560C4063C843CF9951FD820D61CBDB" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Constituents of Provision for Income Taxes</link:label>
    <link:label id="lab_us-gaap_ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock_5C560C4063C843CF9951FD820D61CBDB_label_en-US" xlink:label="lab_us-gaap_ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock_5C560C4063C843CF9951FD820D61CBDB" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Schedule of Components of Income Tax Expense (Benefit) [Table Text Block]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock" xlink:label="loc_us-gaap_ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock_5C560C4063C843CF9951FD820D61CBDB" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock_5C560C4063C843CF9951FD820D61CBDB" xlink:to="lab_us-gaap_ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock_5C560C4063C843CF9951FD820D61CBDB" xlink:type="arc" />
    <link:label id="lab_us-gaap_ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock_4697DF6F5BEA7528FC1EFD820D62009B_terseLabel_en-US" xlink:label="lab_us-gaap_ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock_4697DF6F5BEA7528FC1EFD820D62009B" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Reconciliation of the United States Federal Statutory Corporate Tax Rate to the Company's Effective Tax Rate or Income Tax Provision</link:label>
    <link:label id="lab_us-gaap_ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock_4697DF6F5BEA7528FC1EFD820D62009B_label_en-US" xlink:label="lab_us-gaap_ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock_4697DF6F5BEA7528FC1EFD820D62009B" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Schedule of Effective Income Tax Rate Reconciliation [Table Text Block]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock" xlink:label="loc_us-gaap_ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock_4697DF6F5BEA7528FC1EFD820D62009B" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock_4697DF6F5BEA7528FC1EFD820D62009B" xlink:to="lab_us-gaap_ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock_4697DF6F5BEA7528FC1EFD820D62009B" xlink:type="arc" />
    <link:label id="lab_us-gaap_ScheduleOfChangeInAccountingEstimateTextBlock_64367D95ABBF9CD30031FDD8A2F15669_terseLabel_en-US" xlink:label="lab_us-gaap_ScheduleOfChangeInAccountingEstimateTextBlock_64367D95ABBF9CD30031FDD8A2F15669" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Schedule of Change in Accounting Policy</link:label>
    <link:label id="lab_us-gaap_ScheduleOfChangeInAccountingEstimateTextBlock_64367D95ABBF9CD30031FDD8A2F15669_label_en-US" xlink:label="lab_us-gaap_ScheduleOfChangeInAccountingEstimateTextBlock_64367D95ABBF9CD30031FDD8A2F15669" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Schedule of Change in Accounting Estimate [Table Text Block]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ScheduleOfChangeInAccountingEstimateTextBlock" xlink:label="loc_us-gaap_ScheduleOfChangeInAccountingEstimateTextBlock_64367D95ABBF9CD30031FDD8A2F15669" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ScheduleOfChangeInAccountingEstimateTextBlock_64367D95ABBF9CD30031FDD8A2F15669" xlink:to="lab_us-gaap_ScheduleOfChangeInAccountingEstimateTextBlock_64367D95ABBF9CD30031FDD8A2F15669" xlink:type="arc" />
    <link:label id="lab_us-gaap_SummaryOfIncomeTaxContingenciesTextBlock_4AFA07CEE088F95F0761FD820D62537F_terseLabel_en-US" xlink:label="lab_us-gaap_SummaryOfIncomeTaxContingenciesTextBlock_4AFA07CEE088F95F0761FD820D62537F" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Changes in the Reserve for Income Taxes, Excluding Interest and Penalties</link:label>
    <link:label id="lab_us-gaap_SummaryOfIncomeTaxContingenciesTextBlock_4AFA07CEE088F95F0761FD820D62537F_label_en-US" xlink:label="lab_us-gaap_SummaryOfIncomeTaxContingenciesTextBlock_4AFA07CEE088F95F0761FD820D62537F" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Summary of Income Tax Contingencies [Table Text Block]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_SummaryOfIncomeTaxContingenciesTextBlock" xlink:label="loc_us-gaap_SummaryOfIncomeTaxContingenciesTextBlock_4AFA07CEE088F95F0761FD820D62537F" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_SummaryOfIncomeTaxContingenciesTextBlock_4AFA07CEE088F95F0761FD820D62537F" xlink:to="lab_us-gaap_SummaryOfIncomeTaxContingenciesTextBlock_4AFA07CEE088F95F0761FD820D62537F" xlink:type="arc" />
    <link:label id="lab_us-gaap_ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock_84A812AF864CF7286303FD820D62B716_terseLabel_en-US" xlink:label="lab_us-gaap_ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock_84A812AF864CF7286303FD820D62B716" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Constituents of Deferred Tax Assets</link:label>
    <link:label id="lab_us-gaap_ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock_84A812AF864CF7286303FD820D62B716_label_en-US" xlink:label="lab_us-gaap_ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock_84A812AF864CF7286303FD820D62B716" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Schedule of Deferred Tax Assets and Liabilities [Table Text Block]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock" xlink:label="loc_us-gaap_ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock_84A812AF864CF7286303FD820D62B716" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock_84A812AF864CF7286303FD820D62B716" xlink:to="lab_us-gaap_ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock_84A812AF864CF7286303FD820D62B716" xlink:type="arc" />
    <link:label id="lab_us-gaap_DistributionRightsMember_185353C1D3CE6CF0A5EB17B868A5E102_verboseLabel_en-US" xlink:label="lab_us-gaap_DistributionRightsMember_185353C1D3CE6CF0A5EB17B868A5E102" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xml:lang="en-US">Distribution Rights [Member]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_DistributionRightsMember" xlink:label="loc_us-gaap_DistributionRightsMember_185353C1D3CE6CF0A5EB17B868A5E102" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DistributionRightsMember_185353C1D3CE6CF0A5EB17B868A5E102" xlink:to="lab_us-gaap_DistributionRightsMember_185353C1D3CE6CF0A5EB17B868A5E102" xlink:type="arc" />
    <link:label id="lab_cgnx_CompletedTechnologiesAndOtherIntangibleAssetsMember_C74B1378E2A931A93A7017B868A68215_terseLabel_en-US" xlink:label="lab_cgnx_CompletedTechnologiesAndOtherIntangibleAssetsMember_C74B1378E2A931A93A7017B868A68215" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Completed Technologies And Other Intangible Assets [Member]</link:label>
    <link:label id="lab_cgnx_CompletedTechnologiesAndOtherIntangibleAssetsMember_C74B1378E2A931A93A7017B868A68215_label_en-US" xlink:label="lab_cgnx_CompletedTechnologiesAndOtherIntangibleAssetsMember_C74B1378E2A931A93A7017B868A68215" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Completed Technologies And Other Intangible Assets [Member]</link:label>
    <link:label id="lab_cgnx_CompletedTechnologiesAndOtherIntangibleAssetsMember_C74B1378E2A931A93A7017B868A68215_documentation_en-US" xlink:label="lab_cgnx_CompletedTechnologiesAndOtherIntangibleAssetsMember_C74B1378E2A931A93A7017B868A68215" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Completed Technologies And Other Intangible Assets [Member]</link:label>
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_CompletedTechnologiesAndOtherIntangibleAssetsMember" xlink:label="loc_cgnx_CompletedTechnologiesAndOtherIntangibleAssetsMember_C74B1378E2A931A93A7017B868A68215" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_CompletedTechnologiesAndOtherIntangibleAssetsMember_C74B1378E2A931A93A7017B868A68215" xlink:to="lab_cgnx_CompletedTechnologiesAndOtherIntangibleAssetsMember_C74B1378E2A931A93A7017B868A68215" xlink:type="arc" />
    <link:label id="lab_us-gaap_FiniteLivedIntangibleAssetUsefulLife_E01D1E587A385D2B5E9417B868AD4B17_terseLabel_en-US" xlink:label="lab_us-gaap_FiniteLivedIntangibleAssetUsefulLife_E01D1E587A385D2B5E9417B868AD4B17" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Finite-Lived Intangible Asset, Useful Life</link:label>
    <link:label id="lab_us-gaap_FiniteLivedIntangibleAssetUsefulLife_E01D1E587A385D2B5E9417B868AD4B17_label_en-US" xlink:label="lab_us-gaap_FiniteLivedIntangibleAssetUsefulLife_E01D1E587A385D2B5E9417B868AD4B17" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Finite-Lived Intangible Asset, Useful Life</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetUsefulLife" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetUsefulLife_E01D1E587A385D2B5E9417B868AD4B17" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetUsefulLife_E01D1E587A385D2B5E9417B868AD4B17" xlink:to="lab_us-gaap_FiniteLivedIntangibleAssetUsefulLife_E01D1E587A385D2B5E9417B868AD4B17" xlink:type="arc" />
    <link:label id="lab_us-gaap_USTreasuryBillSecuritiesMember_BB5000F9DCD455788A01F3C9001F043A_verboseLabel_en-US" xlink:label="lab_us-gaap_USTreasuryBillSecuritiesMember_BB5000F9DCD455788A01F3C9001F043A" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xml:lang="en-US">Treasury Bills [Member]</link:label>
    <link:label id="lab_us-gaap_USTreasuryBillSecuritiesMember_BB5000F9DCD455788A01F3C9001F043A_label_en-US" xlink:label="lab_us-gaap_USTreasuryBillSecuritiesMember_BB5000F9DCD455788A01F3C9001F043A" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">US Treasury Bill Securities [Member]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_USTreasuryBillSecuritiesMember" xlink:label="loc_us-gaap_USTreasuryBillSecuritiesMember_BB5000F9DCD455788A01F3C9001F043A" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_USTreasuryBillSecuritiesMember_BB5000F9DCD455788A01F3C9001F043A" xlink:to="lab_us-gaap_USTreasuryBillSecuritiesMember_BB5000F9DCD455788A01F3C9001F043A" xlink:type="arc" />
    <link:label id="lab_us-gaap_CertificatesOfDepositMember_B6407AABB2222BA1C75AF3E313262DE9_terseLabel_en-US" xlink:label="lab_us-gaap_CertificatesOfDepositMember_B6407AABB2222BA1C75AF3E313262DE9" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Certificates of Deposit [Member]</link:label>
    <link:label id="lab_us-gaap_CertificatesOfDepositMember_B6407AABB2222BA1C75AF3E313262DE9_label_en-US" xlink:label="lab_us-gaap_CertificatesOfDepositMember_B6407AABB2222BA1C75AF3E313262DE9" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Certificates of Deposit [Member]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_CertificatesOfDepositMember" xlink:label="loc_us-gaap_CertificatesOfDepositMember_B6407AABB2222BA1C75AF3E313262DE9" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_CertificatesOfDepositMember_B6407AABB2222BA1C75AF3E313262DE9" xlink:to="lab_us-gaap_CertificatesOfDepositMember_B6407AABB2222BA1C75AF3E313262DE9" xlink:type="arc" />
    <link:label id="lab_us-gaap_MoneyMarketFundsAtCarryingValue_47EF8E6FE3AC1B201A66F3C900210682_terseLabel_en-US" xlink:label="lab_us-gaap_MoneyMarketFundsAtCarryingValue_47EF8E6FE3AC1B201A66F3C900210682" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Money market instruments</link:label>
    <link:label id="lab_us-gaap_MoneyMarketFundsAtCarryingValue_47EF8E6FE3AC1B201A66F3C900210682_label_en-US" xlink:label="lab_us-gaap_MoneyMarketFundsAtCarryingValue_47EF8E6FE3AC1B201A66F3C900210682" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Money Market Funds, at Carrying Value</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_MoneyMarketFundsAtCarryingValue" xlink:label="loc_us-gaap_MoneyMarketFundsAtCarryingValue_47EF8E6FE3AC1B201A66F3C900210682" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_MoneyMarketFundsAtCarryingValue_47EF8E6FE3AC1B201A66F3C900210682" xlink:to="lab_us-gaap_MoneyMarketFundsAtCarryingValue_47EF8E6FE3AC1B201A66F3C900210682" xlink:type="arc" />
    <link:label id="lab_us-gaap_CashAndCashEquivalentsAtCarryingValue_F38C17194CD2DF211B26F3C9002148EB_totalLabel_en-US" xlink:label="lab_us-gaap_CashAndCashEquivalentsAtCarryingValue_F38C17194CD2DF211B26F3C9002148EB" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xml:lang="en-US">Cash and cash equivalents</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_CashAndCashEquivalentsAtCarryingValue" xlink:label="loc_us-gaap_CashAndCashEquivalentsAtCarryingValue_F38C17194CD2DF211B26F3C9002148EB" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_CashAndCashEquivalentsAtCarryingValue_F38C17194CD2DF211B26F3C9002148EB" xlink:to="lab_us-gaap_CashAndCashEquivalentsAtCarryingValue_F38C17194CD2DF211B26F3C9002148EB" xlink:type="arc" />
    <link:label id="lab_us-gaap_AvailableForSaleSecuritiesDebtSecuritiesNoncurrent_78860C629250BDE0EEB9F3C90021AEC3_terseLabel_en-US" xlink:label="lab_us-gaap_AvailableForSaleSecuritiesDebtSecuritiesNoncurrent_78860C629250BDE0EEB9F3C90021AEC3" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Long-term investments</link:label>
    <link:label id="lab_us-gaap_AvailableForSaleSecuritiesDebtSecuritiesNoncurrent_78860C629250BDE0EEB9F3C90021AEC3_label_en-US" xlink:label="lab_us-gaap_AvailableForSaleSecuritiesDebtSecuritiesNoncurrent_78860C629250BDE0EEB9F3C90021AEC3" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Debt Securities, Available-for-sale, Noncurrent</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_AvailableForSaleSecuritiesDebtSecuritiesNoncurrent" xlink:label="loc_us-gaap_AvailableForSaleSecuritiesDebtSecuritiesNoncurrent_78860C629250BDE0EEB9F3C90021AEC3" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AvailableForSaleSecuritiesDebtSecuritiesNoncurrent_78860C629250BDE0EEB9F3C90021AEC3" xlink:to="lab_us-gaap_AvailableForSaleSecuritiesDebtSecuritiesNoncurrent_78860C629250BDE0EEB9F3C90021AEC3" xlink:type="arc" />
    <link:label id="lab_us-gaap_LongTermInvestments_A7CE68D7F8006DDEB3A0F3C90022F61A_totalLabel_en-US" xlink:label="lab_us-gaap_LongTermInvestments_A7CE68D7F8006DDEB3A0F3C90022F61A" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xml:lang="en-US">Non-current investments</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_LongTermInvestments" xlink:label="loc_us-gaap_LongTermInvestments_A7CE68D7F8006DDEB3A0F3C90022F61A" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_LongTermInvestments_A7CE68D7F8006DDEB3A0F3C90022F61A" xlink:to="lab_us-gaap_LongTermInvestments_A7CE68D7F8006DDEB3A0F3C90022F61A" xlink:type="arc" />
    <link:label id="lab_cgnx_CashCashEquivalentsShortTermAndLongTermInvestments_D21E99836CE0B6413875F3C9002292C3_totalLabel_en-US" xlink:label="lab_cgnx_CashCashEquivalentsShortTermAndLongTermInvestments_D21E99836CE0B6413875F3C9002292C3" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xml:lang="en-US">Total</link:label>
    <link:label id="lab_cgnx_CashCashEquivalentsShortTermAndLongTermInvestments_D21E99836CE0B6413875F3C9002292C3_label_en-US" xlink:label="lab_cgnx_CashCashEquivalentsShortTermAndLongTermInvestments_D21E99836CE0B6413875F3C9002292C3" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Cash Cash Equivalents Short Term And Long Term Investments</link:label>
    <link:label id="lab_cgnx_CashCashEquivalentsShortTermAndLongTermInvestments_D21E99836CE0B6413875F3C9002292C3_documentation_en-US" xlink:label="lab_cgnx_CashCashEquivalentsShortTermAndLongTermInvestments_D21E99836CE0B6413875F3C9002292C3" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Cash, cash equivalents, short term and long term investments.</link:label>
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_CashCashEquivalentsShortTermAndLongTermInvestments" xlink:label="loc_cgnx_CashCashEquivalentsShortTermAndLongTermInvestments_D21E99836CE0B6413875F3C9002292C3" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_CashCashEquivalentsShortTermAndLongTermInvestments_D21E99836CE0B6413875F3C9002292C3" xlink:to="lab_cgnx_CashCashEquivalentsShortTermAndLongTermInvestments_D21E99836CE0B6413875F3C9002292C3" xlink:type="arc" />
    <link:label id="lab_cgnx_ViDiSystemsS.A.Member_3073C8EA63F1BC4B0C058095E8C32787_terseLabel_en-US" xlink:label="lab_cgnx_ViDiSystemsS.A.Member_3073C8EA63F1BC4B0C058095E8C32787" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">ViDi Systems S.A. [Member]</link:label>
    <link:label id="lab_cgnx_ViDiSystemsS.A.Member_3073C8EA63F1BC4B0C058095E8C32787_label_en-US" xlink:label="lab_cgnx_ViDiSystemsS.A.Member_3073C8EA63F1BC4B0C058095E8C32787" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">ViDi Systems S.A. [Member]</link:label>
    <link:label id="lab_cgnx_ViDiSystemsS.A.Member_3073C8EA63F1BC4B0C058095E8C32787_documentation_en-US" xlink:label="lab_cgnx_ViDiSystemsS.A.Member_3073C8EA63F1BC4B0C058095E8C32787" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">ViDi Systems S.A. [Member]</link:label>
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_ViDiSystemsS.A.Member" xlink:label="loc_cgnx_ViDiSystemsS.A.Member_3073C8EA63F1BC4B0C058095E8C32787" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_ViDiSystemsS.A.Member_3073C8EA63F1BC4B0C058095E8C32787" xlink:to="lab_cgnx_ViDiSystemsS.A.Member_3073C8EA63F1BC4B0C058095E8C32787" xlink:type="arc" />
    <link:label id="lab_us-gaap_BusinessCombinationConsiderationTransferredLiabilitiesIncurred_5DB90D661E6CB54964BC8095E8C32C0F_terseLabel_en-US" xlink:label="lab_us-gaap_BusinessCombinationConsiderationTransferredLiabilitiesIncurred_5DB90D661E6CB54964BC8095E8C32C0F" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Holdback security</link:label>
    <link:label id="lab_us-gaap_BusinessCombinationConsiderationTransferredLiabilitiesIncurred_5DB90D661E6CB54964BC8095E8C32C0F_label_en-US" xlink:label="lab_us-gaap_BusinessCombinationConsiderationTransferredLiabilitiesIncurred_5DB90D661E6CB54964BC8095E8C32C0F" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Business Combination, Consideration Transferred, Liabilities Incurred</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_BusinessCombinationConsiderationTransferredLiabilitiesIncurred" xlink:label="loc_us-gaap_BusinessCombinationConsiderationTransferredLiabilitiesIncurred_5DB90D661E6CB54964BC8095E8C32C0F" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_BusinessCombinationConsiderationTransferredLiabilitiesIncurred_5DB90D661E6CB54964BC8095E8C32C0F" xlink:to="lab_us-gaap_BusinessCombinationConsiderationTransferredLiabilitiesIncurred_5DB90D661E6CB54964BC8095E8C32C0F" xlink:type="arc" />
    <link:label id="lab_cgnx_Taxdeductiblegoodwill_94D087E4BC4AD3E22C228095E8C30838_terseLabel_en-US" xlink:label="lab_cgnx_Taxdeductiblegoodwill_94D087E4BC4AD3E22C228095E8C30838" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Tax deductible goodwill</link:label>
    <link:label id="lab_cgnx_Taxdeductiblegoodwill_94D087E4BC4AD3E22C228095E8C30838_label_en-US" xlink:label="lab_cgnx_Taxdeductiblegoodwill_94D087E4BC4AD3E22C228095E8C30838" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">tax deductible goodwill</link:label>
    <link:label id="lab_cgnx_Taxdeductiblegoodwill_94D087E4BC4AD3E22C228095E8C30838_documentation_en-US" xlink:label="lab_cgnx_Taxdeductiblegoodwill_94D087E4BC4AD3E22C228095E8C30838" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">tax deductible goodwill</link:label>
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_Taxdeductiblegoodwill" xlink:label="loc_cgnx_Taxdeductiblegoodwill_94D087E4BC4AD3E22C228095E8C30838" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_Taxdeductiblegoodwill_94D087E4BC4AD3E22C228095E8C30838" xlink:to="lab_cgnx_Taxdeductiblegoodwill_94D087E4BC4AD3E22C228095E8C30838" xlink:type="arc" />
    <link:label id="lab_us-gaap_RevenueFromContractWithCustomerTextBlock_46EFEDDFB30A5257B1528095E6987ED7_terseLabel_en-US" xlink:label="lab_us-gaap_RevenueFromContractWithCustomerTextBlock_46EFEDDFB30A5257B1528095E6987ED7" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Revenue Recognition</link:label>
    <link:label id="lab_us-gaap_RevenueFromContractWithCustomerTextBlock_46EFEDDFB30A5257B1528095E6987ED7_label_en-US" xlink:label="lab_us-gaap_RevenueFromContractWithCustomerTextBlock_46EFEDDFB30A5257B1528095E6987ED7" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Revenue from Contract with Customer [Text Block]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_RevenueFromContractWithCustomerTextBlock" xlink:label="loc_us-gaap_RevenueFromContractWithCustomerTextBlock_46EFEDDFB30A5257B1528095E6987ED7" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_RevenueFromContractWithCustomerTextBlock_46EFEDDFB30A5257B1528095E6987ED7" xlink:to="lab_us-gaap_RevenueFromContractWithCustomerTextBlock_46EFEDDFB30A5257B1528095E6987ED7" xlink:type="arc" />
    <link:label id="lab_cgnx_DueFromForeignBanks_AFB45B2AD577E76E7EB08095E8A46D3D_terseLabel_en-US" xlink:label="lab_cgnx_DueFromForeignBanks_AFB45B2AD577E76E7EB08095E8A46D3D" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Cash balance included foreign bank balance</link:label>
    <link:label id="lab_cgnx_DueFromForeignBanks_AFB45B2AD577E76E7EB08095E8A46D3D_label_en-US" xlink:label="lab_cgnx_DueFromForeignBanks_AFB45B2AD577E76E7EB08095E8A46D3D" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Due From Foreign Banks</link:label>
    <link:label id="lab_cgnx_DueFromForeignBanks_AFB45B2AD577E76E7EB08095E8A46D3D_documentation_en-US" xlink:label="lab_cgnx_DueFromForeignBanks_AFB45B2AD577E76E7EB08095E8A46D3D" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Due from foreign banks.</link:label>
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_DueFromForeignBanks" xlink:label="loc_cgnx_DueFromForeignBanks_AFB45B2AD577E76E7EB08095E8A46D3D" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_DueFromForeignBanks_AFB45B2AD577E76E7EB08095E8A46D3D" xlink:to="lab_cgnx_DueFromForeignBanks_AFB45B2AD577E76E7EB08095E8A46D3D" xlink:type="arc" />
    <link:label id="lab_us-gaap_AvailableForSaleSecuritiesGrossRealizedGains_3C6AC2B70DFF34C6438E8095E8A48E05_terseLabel_en-US" xlink:label="lab_us-gaap_AvailableForSaleSecuritiesGrossRealizedGains_3C6AC2B70DFF34C6438E8095E8A48E05" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Gross realized gains on sale of debt securities</link:label>
    <link:label id="lab_us-gaap_AvailableForSaleSecuritiesGrossRealizedGains_3C6AC2B70DFF34C6438E8095E8A48E05_label_en-US" xlink:label="lab_us-gaap_AvailableForSaleSecuritiesGrossRealizedGains_3C6AC2B70DFF34C6438E8095E8A48E05" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Available-for-sale Securities, Gross Realized Gains</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_AvailableForSaleSecuritiesGrossRealizedGains" xlink:label="loc_us-gaap_AvailableForSaleSecuritiesGrossRealizedGains_3C6AC2B70DFF34C6438E8095E8A48E05" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AvailableForSaleSecuritiesGrossRealizedGains_3C6AC2B70DFF34C6438E8095E8A48E05" xlink:to="lab_us-gaap_AvailableForSaleSecuritiesGrossRealizedGains_3C6AC2B70DFF34C6438E8095E8A48E05" xlink:type="arc" />
    <link:label id="lab_us-gaap_AvailableForSaleSecuritiesGrossRealizedLosses_EAF68FA1A63A76BF2E9A8095E8A4BBA7_terseLabel_en-US" xlink:label="lab_us-gaap_AvailableForSaleSecuritiesGrossRealizedLosses_EAF68FA1A63A76BF2E9A8095E8A4BBA7" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Gross realized losses on sale of debt securities</link:label>
    <link:label id="lab_us-gaap_AvailableForSaleSecuritiesGrossRealizedLosses_EAF68FA1A63A76BF2E9A8095E8A4BBA7_label_en-US" xlink:label="lab_us-gaap_AvailableForSaleSecuritiesGrossRealizedLosses_EAF68FA1A63A76BF2E9A8095E8A4BBA7" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Available-for-sale Securities, Gross Realized Losses</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_AvailableForSaleSecuritiesGrossRealizedLosses" xlink:label="loc_us-gaap_AvailableForSaleSecuritiesGrossRealizedLosses_EAF68FA1A63A76BF2E9A8095E8A4BBA7" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AvailableForSaleSecuritiesGrossRealizedLosses_EAF68FA1A63A76BF2E9A8095E8A4BBA7" xlink:to="lab_us-gaap_AvailableForSaleSecuritiesGrossRealizedLosses_EAF68FA1A63A76BF2E9A8095E8A4BBA7" xlink:type="arc" />
    <link:label id="lab_us-gaap_ScheduleOfShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeTable_F809E55C72934C02B9EC3712341A99A0_terseLabel_en-US" xlink:label="lab_us-gaap_ScheduleOfShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeTable_F809E55C72934C02B9EC3712341A99A0" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Schedule of Share-based Compensation, Shares Authorized under Stock Option Plans, by Exercise Price Range [Table]</link:label>
    <link:label id="lab_us-gaap_ScheduleOfShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeTable_F809E55C72934C02B9EC3712341A99A0_label_en-US" xlink:label="lab_us-gaap_ScheduleOfShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeTable_F809E55C72934C02B9EC3712341A99A0" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Schedule of Share-based Compensation, Shares Authorized under Stock Option Plans, by Exercise Price Range [Table]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ScheduleOfShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeTable" xlink:label="loc_us-gaap_ScheduleOfShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeTable_F809E55C72934C02B9EC3712341A99A0" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ScheduleOfShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeTable_F809E55C72934C02B9EC3712341A99A0" xlink:to="lab_us-gaap_ScheduleOfShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeTable_F809E55C72934C02B9EC3712341A99A0" xlink:type="arc" />
    <link:label id="lab_us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeLineItems_1562C5C2EC8D5DCC75DB3712341D3B46_terseLabel_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeLineItems_1562C5C2EC8D5DCC75DB3712341D3B46" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Shares</link:label>
    <link:label id="lab_us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeLineItems_1562C5C2EC8D5DCC75DB3712341D3B46_label_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeLineItems_1562C5C2EC8D5DCC75DB3712341D3B46" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Share-based Compensation, Shares Authorized under Stock Option Plans, Exercise Price Range [Line Items]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeLineItems" xlink:label="loc_us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeLineItems_1562C5C2EC8D5DCC75DB3712341D3B46" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeLineItems_1562C5C2EC8D5DCC75DB3712341D3B46" xlink:to="lab_us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeLineItems_1562C5C2EC8D5DCC75DB3712341D3B46" xlink:type="arc" />
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedRollForward_B536933CB6AAEB2983E13712341D4DE4_terseLabel_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedRollForward_B536933CB6AAEB2983E13712341D4DE4" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Share-based Compensation Arrangement by Share-based Payment Award, Equity Instruments Other than Options, Nonvested, Number of Shares [Roll Forward]</link:label>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedRollForward_B536933CB6AAEB2983E13712341D4DE4_label_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedRollForward_B536933CB6AAEB2983E13712341D4DE4" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Share-based Compensation Arrangement by Share-based Payment Award, Equity Instruments Other than Options, Nonvested, Number of Shares [Roll Forward]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedRollForward" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedRollForward_B536933CB6AAEB2983E13712341D4DE4" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedRollForward_B536933CB6AAEB2983E13712341D4DE4" xlink:to="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedRollForward_B536933CB6AAEB2983E13712341D4DE4" xlink:type="arc" />
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber_209B79B4285525D596613712341D3A80_periodStartLabel_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber_209B79B4285525D596613712341D3A80" xlink:role="http://www.xbrl.org/2003/role/periodStartLabel" xlink:type="resource" xml:lang="en-US">Nonvested beginning balance outstanding</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber_209B79B4285525D596613712341D3A80" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber_209B79B4285525D596613712341D3A80" xlink:to="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber_209B79B4285525D596613712341D3A80" xlink:type="arc" />
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod_BFE93955FC76566D329A3712341EDE4C_negatedTerseLabel_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod_BFE93955FC76566D329A3712341EDE4C" xlink:role="http://www.xbrl.org/2009/role/negatedTerseLabel" xlink:type="resource" xml:lang="en-US">Vested</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod_BFE93955FC76566D329A3712341EDE4C" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod_BFE93955FC76566D329A3712341EDE4C" xlink:to="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod_BFE93955FC76566D329A3712341EDE4C" xlink:type="arc" />
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod_0817A401BD922B4D5DCC3712341E6F0F_negatedTerseLabel_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod_0817A401BD922B4D5DCC3712341E6F0F" xlink:role="http://www.xbrl.org/2009/role/negatedTerseLabel" xlink:type="resource" xml:lang="en-US">Forfeited or expired</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod_0817A401BD922B4D5DCC3712341E6F0F" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod_0817A401BD922B4D5DCC3712341E6F0F" xlink:to="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod_0817A401BD922B4D5DCC3712341E6F0F" xlink:type="arc" />
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber_CDCC06DBF34360E6B8EA3712341E2998_periodEndLabel_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber_CDCC06DBF34360E6B8EA3712341E2998" xlink:role="http://www.xbrl.org/2003/role/periodEndLabel" xlink:type="resource" xml:lang="en-US">Nonvested ending balance outstanding</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber_CDCC06DBF34360E6B8EA3712341E2998" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber_CDCC06DBF34360E6B8EA3712341E2998" xlink:to="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber_CDCC06DBF34360E6B8EA3712341E2998" xlink:type="arc" />
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward_08E8B2E6315BE9CDB9553712341EB966_terseLabel_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward_08E8B2E6315BE9CDB9553712341EB966" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Weighted-Average Grant Fair Value</link:label>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward_08E8B2E6315BE9CDB9553712341EB966_label_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward_08E8B2E6315BE9CDB9553712341EB966" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Share-based Compensation Arrangement by Share-based Payment Award, Equity Instruments Other than Options, Nonvested, Weighted Average Grant Date Fair Value [Abstract]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward_08E8B2E6315BE9CDB9553712341EB966" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward_08E8B2E6315BE9CDB9553712341EB966" xlink:to="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward_08E8B2E6315BE9CDB9553712341EB966" xlink:type="arc" />
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue_04E9B2A353739EE3D19B37123420F399_periodStartLabel_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue_04E9B2A353739EE3D19B37123420F399" xlink:role="http://www.xbrl.org/2003/role/periodStartLabel" xlink:type="resource" xml:lang="en-US">Nonvested beginning balance, weighted-average exercise price</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue_04E9B2A353739EE3D19B37123420F399" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue_04E9B2A353739EE3D19B37123420F399" xlink:to="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue_04E9B2A353739EE3D19B37123420F399" xlink:type="arc" />
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue_A98667079C52FABEB0FF371234200E5F_terseLabel_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue_A98667079C52FABEB0FF371234200E5F" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Vested, weighted-average exercise price</link:label>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue_A98667079C52FABEB0FF371234200E5F_label_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue_A98667079C52FABEB0FF371234200E5F" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Share-based Compensation Arrangement by Share-based Payment Award, Equity Instruments Other than Options, Vested in Period, Weighted Average Grant Date Fair Value</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue_A98667079C52FABEB0FF371234200E5F" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue_A98667079C52FABEB0FF371234200E5F" xlink:to="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue_A98667079C52FABEB0FF371234200E5F" xlink:type="arc" />
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue_D42932F1CBCF4FF7595F37123420FD03_terseLabel_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue_D42932F1CBCF4FF7595F37123420FD03" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Forfeited or expired, weighted-average exercise price</link:label>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue_D42932F1CBCF4FF7595F37123420FD03_label_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue_D42932F1CBCF4FF7595F37123420FD03" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Share-based Compensation Arrangement by Share-based Payment Award, Equity Instruments Other than Options, Forfeitures, Weighted Average Grant Date Fair Value</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue_D42932F1CBCF4FF7595F37123420FD03" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue_D42932F1CBCF4FF7595F37123420FD03" xlink:to="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue_D42932F1CBCF4FF7595F37123420FD03" xlink:type="arc" />
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue_E5D348E33C685F5DEC3A3712342004F5_periodEndLabel_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue_E5D348E33C685F5DEC3A3712342004F5" xlink:role="http://www.xbrl.org/2003/role/periodEndLabel" xlink:type="resource" xml:lang="en-US">Nonvested ending balance, weighted-average exercise price</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue_E5D348E33C685F5DEC3A3712342004F5" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue_E5D348E33C685F5DEC3A3712342004F5" xlink:to="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue_E5D348E33C685F5DEC3A3712342004F5" xlink:type="arc" />
    <link:label id="lab_us-gaap_ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsByGeographicalAreasTableTextBlock_4132054F6EF773BED73E8095E655406C_terseLabel_en-US" xlink:label="lab_us-gaap_ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsByGeographicalAreasTableTextBlock_4132054F6EF773BED73E8095E655406C" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Schedule of Revenue from External Customers and Long-Lived Assets, by Geographical Areas</link:label>
    <link:label id="lab_us-gaap_ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsByGeographicalAreasTableTextBlock_4132054F6EF773BED73E8095E655406C_label_en-US" xlink:label="lab_us-gaap_ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsByGeographicalAreasTableTextBlock_4132054F6EF773BED73E8095E655406C" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Schedule of Revenue from External Customers and Long-Lived Assets, by Geographical Areas [Table Text Block]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsByGeographicalAreasTableTextBlock" xlink:label="loc_us-gaap_ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsByGeographicalAreasTableTextBlock_4132054F6EF773BED73E8095E655406C" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsByGeographicalAreasTableTextBlock_4132054F6EF773BED73E8095E655406C" xlink:to="lab_us-gaap_ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsByGeographicalAreasTableTextBlock_4132054F6EF773BED73E8095E655406C" xlink:type="arc" />
    <link:label id="lab_us-gaap_DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock_897802AC877D5A329F868095E6CF71E7_terseLabel_en-US" xlink:label="lab_us-gaap_DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock_897802AC877D5A329F868095E6CF71E7" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Stock-Based Compensation</link:label>
    <link:label id="lab_us-gaap_DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock_897802AC877D5A329F868095E6CF71E7_label_en-US" xlink:label="lab_us-gaap_DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock_897802AC877D5A329F868095E6CF71E7" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Disclosure of Compensation Related Costs, Share-based Payments [Text Block]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock" xlink:label="loc_us-gaap_DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock_897802AC877D5A329F868095E6CF71E7" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock_897802AC877D5A329F868095E6CF71E7" xlink:to="lab_us-gaap_DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock_897802AC877D5A329F868095E6CF71E7" xlink:type="arc" />
    <link:label id="lab_us-gaap_OtherTaxExpenseBenefit_61F0B30022447B1E503F37125BB7BB11_terseLabel_en-US" xlink:label="lab_us-gaap_OtherTaxExpenseBenefit_61F0B30022447B1E503F37125BB7BB11" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Other Tax Expense (Benefit)</link:label>
    <link:label id="lab_us-gaap_OtherTaxExpenseBenefit_61F0B30022447B1E503F37125BB7BB11_label_en-US" xlink:label="lab_us-gaap_OtherTaxExpenseBenefit_61F0B30022447B1E503F37125BB7BB11" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Other Tax Expense (Benefit)</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_OtherTaxExpenseBenefit" xlink:label="loc_us-gaap_OtherTaxExpenseBenefit_61F0B30022447B1E503F37125BB7BB11" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_OtherTaxExpenseBenefit_61F0B30022447B1E503F37125BB7BB11" xlink:to="lab_us-gaap_OtherTaxExpenseBenefit_61F0B30022447B1E503F37125BB7BB11" xlink:type="arc" />
    <link:label id="lab_us-gaap_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate_9ED201DBEEB9B940D54137125BB8CC3C_terseLabel_en-US" xlink:label="lab_us-gaap_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate_9ED201DBEEB9B940D54137125BB8CC3C" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Income tax expense at U.S. federal statutory corporate tax rate</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate" xlink:label="loc_us-gaap_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate_9ED201DBEEB9B940D54137125BB8CC3C" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate_9ED201DBEEB9B940D54137125BB8CC3C" xlink:to="lab_us-gaap_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate_9ED201DBEEB9B940D54137125BB8CC3C" xlink:type="arc" />
    <link:label id="lab_us-gaap_EffectiveIncomeTaxRateReconciliationStateAndLocalIncomeTaxes_65FD4F31C686E2BEAA4A37125BB85F8E_terseLabel_en-US" xlink:label="lab_us-gaap_EffectiveIncomeTaxRateReconciliationStateAndLocalIncomeTaxes_65FD4F31C686E2BEAA4A37125BB85F8E" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">State income taxes, net of federal benefit</link:label>
    <link:label id="lab_us-gaap_EffectiveIncomeTaxRateReconciliationStateAndLocalIncomeTaxes_65FD4F31C686E2BEAA4A37125BB85F8E_label_en-US" xlink:label="lab_us-gaap_EffectiveIncomeTaxRateReconciliationStateAndLocalIncomeTaxes_65FD4F31C686E2BEAA4A37125BB85F8E" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Effective Income Tax Rate Reconciliation, State and Local Income Taxes, Percent</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_EffectiveIncomeTaxRateReconciliationStateAndLocalIncomeTaxes" xlink:label="loc_us-gaap_EffectiveIncomeTaxRateReconciliationStateAndLocalIncomeTaxes_65FD4F31C686E2BEAA4A37125BB85F8E" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_EffectiveIncomeTaxRateReconciliationStateAndLocalIncomeTaxes_65FD4F31C686E2BEAA4A37125BB85F8E" xlink:to="lab_us-gaap_EffectiveIncomeTaxRateReconciliationStateAndLocalIncomeTaxes_65FD4F31C686E2BEAA4A37125BB85F8E" xlink:type="arc" />
    <link:label id="lab_us-gaap_EffectiveIncomeTaxRateReconciliationForeignIncomeTaxRateDifferential_7DD082614918A410D9C837125BB858A2_terseLabel_en-US" xlink:label="lab_us-gaap_EffectiveIncomeTaxRateReconciliationForeignIncomeTaxRateDifferential_7DD082614918A410D9C837125BB858A2" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Foreign tax rate differential</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_EffectiveIncomeTaxRateReconciliationForeignIncomeTaxRateDifferential" xlink:label="loc_us-gaap_EffectiveIncomeTaxRateReconciliationForeignIncomeTaxRateDifferential_7DD082614918A410D9C837125BB858A2" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_EffectiveIncomeTaxRateReconciliationForeignIncomeTaxRateDifferential_7DD082614918A410D9C837125BB858A2" xlink:to="lab_us-gaap_EffectiveIncomeTaxRateReconciliationForeignIncomeTaxRateDifferential_7DD082614918A410D9C837125BB858A2" xlink:type="arc" />
    <link:label id="lab_us-gaap_EffectiveIncomeTaxRateReconciliationTaxCredits_980C9948BFA6B6C276A137125BB8B7F7_negatedTerseLabel_en-US" xlink:label="lab_us-gaap_EffectiveIncomeTaxRateReconciliationTaxCredits_980C9948BFA6B6C276A137125BB8B7F7" xlink:role="http://www.xbrl.org/2009/role/negatedTerseLabel" xlink:type="resource" xml:lang="en-US">Tax credit</link:label>
    <link:label id="lab_us-gaap_EffectiveIncomeTaxRateReconciliationTaxCredits_980C9948BFA6B6C276A137125BB8B7F7_label_en-US" xlink:label="lab_us-gaap_EffectiveIncomeTaxRateReconciliationTaxCredits_980C9948BFA6B6C276A137125BB8B7F7" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Effective Income Tax Rate Reconciliation, Tax Credit, Percent</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_EffectiveIncomeTaxRateReconciliationTaxCredits" xlink:label="loc_us-gaap_EffectiveIncomeTaxRateReconciliationTaxCredits_980C9948BFA6B6C276A137125BB8B7F7" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_EffectiveIncomeTaxRateReconciliationTaxCredits_980C9948BFA6B6C276A137125BB8B7F7" xlink:to="lab_us-gaap_EffectiveIncomeTaxRateReconciliationTaxCredits_980C9948BFA6B6C276A137125BB8B7F7" xlink:type="arc" />
    <link:label id="lab_us-gaap_EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitPercent_7BF06C2D778F5B97941037125BB857FC_negatedTerseLabel_en-US" xlink:label="lab_us-gaap_EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitPercent_7BF06C2D778F5B97941037125BB857FC" xlink:role="http://www.xbrl.org/2009/role/negatedTerseLabel" xlink:type="resource" xml:lang="en-US">Discrete tax benefit related to employee stock options</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitPercent" xlink:label="loc_us-gaap_EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitPercent_7BF06C2D778F5B97941037125BB857FC" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitPercent_7BF06C2D778F5B97941037125BB857FC" xlink:to="lab_us-gaap_EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitPercent_7BF06C2D778F5B97941037125BB857FC" xlink:type="arc" />
    <link:label id="lab_cgnx_EffectiveIncomeTaxRateReconciliationDiscreteTaxExpenseTaxAndJobsActPercent_C5D1BE88F98C01618F1537125BB8478A_terseLabel_en-US" xlink:label="lab_cgnx_EffectiveIncomeTaxRateReconciliationDiscreteTaxExpenseTaxAndJobsActPercent_C5D1BE88F98C01618F1537125BB8478A" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Discrete tax expense (benefit) related to Tax Act</link:label>
    <link:label id="lab_cgnx_EffectiveIncomeTaxRateReconciliationDiscreteTaxExpenseTaxAndJobsActPercent_C5D1BE88F98C01618F1537125BB8478A_label_en-US" xlink:label="lab_cgnx_EffectiveIncomeTaxRateReconciliationDiscreteTaxExpenseTaxAndJobsActPercent_C5D1BE88F98C01618F1537125BB8478A" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Effective Income Tax Rate Reconciliation, Discrete Tax Expense, Tax And Jobs Act, Percent</link:label>
    <link:label id="lab_cgnx_EffectiveIncomeTaxRateReconciliationDiscreteTaxExpenseTaxAndJobsActPercent_C5D1BE88F98C01618F1537125BB8478A_documentation_en-US" xlink:label="lab_cgnx_EffectiveIncomeTaxRateReconciliationDiscreteTaxExpenseTaxAndJobsActPercent_C5D1BE88F98C01618F1537125BB8478A" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Effective Income Tax Rate Reconciliation, Discrete Tax Expense, Percent</link:label>
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_EffectiveIncomeTaxRateReconciliationDiscreteTaxExpenseTaxAndJobsActPercent" xlink:label="loc_cgnx_EffectiveIncomeTaxRateReconciliationDiscreteTaxExpenseTaxAndJobsActPercent_C5D1BE88F98C01618F1537125BB8478A" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_EffectiveIncomeTaxRateReconciliationDiscreteTaxExpenseTaxAndJobsActPercent_C5D1BE88F98C01618F1537125BB8478A" xlink:to="lab_cgnx_EffectiveIncomeTaxRateReconciliationDiscreteTaxExpenseTaxAndJobsActPercent_C5D1BE88F98C01618F1537125BB8478A" xlink:type="arc" />
    <link:label id="lab_us-gaap_EffectiveIncomeTaxRateReconciliationChangeInDeferredTaxAssetsValuationAllowance_3EF85D8B1CC54AB026C337125BB907E5_terseLabel_en-US" xlink:label="lab_us-gaap_EffectiveIncomeTaxRateReconciliationChangeInDeferredTaxAssetsValuationAllowance_3EF85D8B1CC54AB026C337125BB907E5" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Discrete tax expense related to write-down of deferred tax assets</link:label>
    <link:label id="lab_us-gaap_EffectiveIncomeTaxRateReconciliationChangeInDeferredTaxAssetsValuationAllowance_3EF85D8B1CC54AB026C337125BB907E5_label_en-US" xlink:label="lab_us-gaap_EffectiveIncomeTaxRateReconciliationChangeInDeferredTaxAssetsValuationAllowance_3EF85D8B1CC54AB026C337125BB907E5" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Effective Income Tax Rate Reconciliation, Change in Deferred Tax Assets Valuation Allowance, Percent</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_EffectiveIncomeTaxRateReconciliationChangeInDeferredTaxAssetsValuationAllowance" xlink:label="loc_us-gaap_EffectiveIncomeTaxRateReconciliationChangeInDeferredTaxAssetsValuationAllowance_3EF85D8B1CC54AB026C337125BB907E5" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_EffectiveIncomeTaxRateReconciliationChangeInDeferredTaxAssetsValuationAllowance_3EF85D8B1CC54AB026C337125BB907E5" xlink:to="lab_us-gaap_EffectiveIncomeTaxRateReconciliationChangeInDeferredTaxAssetsValuationAllowance_3EF85D8B1CC54AB026C337125BB907E5" xlink:type="arc" />
    <link:label id="lab_cgnx_EffectiveIncomeTaxRateReconciliationMigrationofAcquiredIntellectualProperty_08351E2623D6FC996CC937125BB95A26_terseLabel_en-US" xlink:label="lab_cgnx_EffectiveIncomeTaxRateReconciliationMigrationofAcquiredIntellectualProperty_08351E2623D6FC996CC937125BB95A26" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Discrete tax expense related to migration of acquired IP</link:label>
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_EffectiveIncomeTaxRateReconciliationMigrationofAcquiredIntellectualProperty" xlink:label="loc_cgnx_EffectiveIncomeTaxRateReconciliationMigrationofAcquiredIntellectualProperty_08351E2623D6FC996CC937125BB95A26" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_EffectiveIncomeTaxRateReconciliationMigrationofAcquiredIntellectualProperty_08351E2623D6FC996CC937125BB95A26" xlink:to="lab_cgnx_EffectiveIncomeTaxRateReconciliationMigrationofAcquiredIntellectualProperty_08351E2623D6FC996CC937125BB95A26" xlink:type="arc" />
    <link:label id="lab_us-gaap_EffectiveIncomeTaxRateReconciliationChangeInEnactedTaxRate_0E4D6C0127DB98C84C3637125BB92EE3_terseLabel_en-US" xlink:label="lab_us-gaap_EffectiveIncomeTaxRateReconciliationChangeInEnactedTaxRate_0E4D6C0127DB98C84C3637125BB92EE3" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Discrete tax (benefit) related to change in tax structure</link:label>
    <link:label id="lab_us-gaap_EffectiveIncomeTaxRateReconciliationChangeInEnactedTaxRate_0E4D6C0127DB98C84C3637125BB92EE3_label_en-US" xlink:label="lab_us-gaap_EffectiveIncomeTaxRateReconciliationChangeInEnactedTaxRate_0E4D6C0127DB98C84C3637125BB92EE3" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Effective Income Tax Rate Reconciliation, Change in Enacted Tax Rate, Percent</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_EffectiveIncomeTaxRateReconciliationChangeInEnactedTaxRate" xlink:label="loc_us-gaap_EffectiveIncomeTaxRateReconciliationChangeInEnactedTaxRate_0E4D6C0127DB98C84C3637125BB92EE3" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_EffectiveIncomeTaxRateReconciliationChangeInEnactedTaxRate_0E4D6C0127DB98C84C3637125BB92EE3" xlink:to="lab_us-gaap_EffectiveIncomeTaxRateReconciliationChangeInEnactedTaxRate_0E4D6C0127DB98C84C3637125BB92EE3" xlink:type="arc" />
    <link:label id="lab_cgnx_EffectiveIncomeTaxRateReconciliationTaxCutsandJobsActGlobalIntangibleLowTaxIncomePercent_96840AC80B9A052959E437125BB9C1F6_terseLabel_en-US" xlink:label="lab_cgnx_EffectiveIncomeTaxRateReconciliationTaxCutsandJobsActGlobalIntangibleLowTaxIncomePercent_96840AC80B9A052959E437125BB9C1F6" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Discrete tax expense related to GILTI impact of change in tax structure</link:label>
    <link:label id="lab_cgnx_EffectiveIncomeTaxRateReconciliationTaxCutsandJobsActGlobalIntangibleLowTaxIncomePercent_96840AC80B9A052959E437125BB9C1F6_label_en-US" xlink:label="lab_cgnx_EffectiveIncomeTaxRateReconciliationTaxCutsandJobsActGlobalIntangibleLowTaxIncomePercent_96840AC80B9A052959E437125BB9C1F6" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Effective Income Tax Rate Reconciliation, Tax Cuts and Jobs Act, Global Intangible Low Tax Income, Percent</link:label>
    <link:label id="lab_cgnx_EffectiveIncomeTaxRateReconciliationTaxCutsandJobsActGlobalIntangibleLowTaxIncomePercent_96840AC80B9A052959E437125BB9C1F6_documentation_en-US" xlink:label="lab_cgnx_EffectiveIncomeTaxRateReconciliationTaxCutsandJobsActGlobalIntangibleLowTaxIncomePercent_96840AC80B9A052959E437125BB9C1F6" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Effective Income Tax Rate Reconciliation, Tax Cuts and Jobs Act, Global Intangible Low Tax Income, Percent</link:label>
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_EffectiveIncomeTaxRateReconciliationTaxCutsandJobsActGlobalIntangibleLowTaxIncomePercent" xlink:label="loc_cgnx_EffectiveIncomeTaxRateReconciliationTaxCutsandJobsActGlobalIntangibleLowTaxIncomePercent_96840AC80B9A052959E437125BB9C1F6" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_EffectiveIncomeTaxRateReconciliationTaxCutsandJobsActGlobalIntangibleLowTaxIncomePercent_96840AC80B9A052959E437125BB9C1F6" xlink:to="lab_cgnx_EffectiveIncomeTaxRateReconciliationTaxCutsandJobsActGlobalIntangibleLowTaxIncomePercent_96840AC80B9A052959E437125BB9C1F6" xlink:type="arc" />
    <link:label id="lab_us-gaap_EffectiveIncomeTaxRateReconciliationOtherReconcilingItemsPercent_1D2F38410A20B89B68BF37125BB92119_terseLabel_en-US" xlink:label="lab_us-gaap_EffectiveIncomeTaxRateReconciliationOtherReconcilingItemsPercent_1D2F38410A20B89B68BF37125BB92119" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Other discrete tax events</link:label>
    <link:label id="lab_us-gaap_EffectiveIncomeTaxRateReconciliationOtherReconcilingItemsPercent_1D2F38410A20B89B68BF37125BB92119_label_en-US" xlink:label="lab_us-gaap_EffectiveIncomeTaxRateReconciliationOtherReconcilingItemsPercent_1D2F38410A20B89B68BF37125BB92119" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Effective Income Tax Rate Reconciliation,Other Reconciling Items, Percent</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_EffectiveIncomeTaxRateReconciliationOtherReconcilingItemsPercent" xlink:label="loc_us-gaap_EffectiveIncomeTaxRateReconciliationOtherReconcilingItemsPercent_1D2F38410A20B89B68BF37125BB92119" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_EffectiveIncomeTaxRateReconciliationOtherReconcilingItemsPercent_1D2F38410A20B89B68BF37125BB92119" xlink:to="lab_us-gaap_EffectiveIncomeTaxRateReconciliationOtherReconcilingItemsPercent_1D2F38410A20B89B68BF37125BB92119" xlink:type="arc" />
    <link:label id="lab_us-gaap_EffectiveIncomeTaxRateReconciliationOtherAdjustments_3F3F3C60CB927AA0357937125BB9AE55_terseLabel_en-US" xlink:label="lab_us-gaap_EffectiveIncomeTaxRateReconciliationOtherAdjustments_3F3F3C60CB927AA0357937125BB9AE55" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Other</link:label>
    <link:label id="lab_us-gaap_EffectiveIncomeTaxRateReconciliationOtherAdjustments_3F3F3C60CB927AA0357937125BB9AE55_label_en-US" xlink:label="lab_us-gaap_EffectiveIncomeTaxRateReconciliationOtherAdjustments_3F3F3C60CB927AA0357937125BB9AE55" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Effective Income Tax Rate Reconciliation, Other Adjustments, Percent</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_EffectiveIncomeTaxRateReconciliationOtherAdjustments" xlink:label="loc_us-gaap_EffectiveIncomeTaxRateReconciliationOtherAdjustments_3F3F3C60CB927AA0357937125BB9AE55" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_EffectiveIncomeTaxRateReconciliationOtherAdjustments_3F3F3C60CB927AA0357937125BB9AE55" xlink:to="lab_us-gaap_EffectiveIncomeTaxRateReconciliationOtherAdjustments_3F3F3C60CB927AA0357937125BB9AE55" xlink:type="arc" />
    <link:label id="lab_us-gaap_EffectiveIncomeTaxRateContinuingOperations_B8151CB93A38B0090A5A37125BB937F5_totalLabel_en-US" xlink:label="lab_us-gaap_EffectiveIncomeTaxRateContinuingOperations_B8151CB93A38B0090A5A37125BB937F5" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xml:lang="en-US">Income tax expense</link:label>
    <link:label id="lab_us-gaap_EffectiveIncomeTaxRateContinuingOperations_B8151CB93A38B0090A5A37125BB937F5_label_en-US" xlink:label="lab_us-gaap_EffectiveIncomeTaxRateContinuingOperations_B8151CB93A38B0090A5A37125BB937F5" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Effective Income Tax Rate Reconciliation, Percent</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_EffectiveIncomeTaxRateContinuingOperations" xlink:label="loc_us-gaap_EffectiveIncomeTaxRateContinuingOperations_B8151CB93A38B0090A5A37125BB937F5" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_EffectiveIncomeTaxRateContinuingOperations_B8151CB93A38B0090A5A37125BB937F5" xlink:to="lab_us-gaap_EffectiveIncomeTaxRateContinuingOperations_B8151CB93A38B0090A5A37125BB937F5" xlink:type="arc" />
    <link:label id="lab_us-gaap_LessorOperatingLeasePaymentsToBeReceivedNextTwelveMonths_6394700A5A40B7A4F772F40B0044FF14_terseLabel_en-US" xlink:label="lab_us-gaap_LessorOperatingLeasePaymentsToBeReceivedNextTwelveMonths_6394700A5A40B7A4F772F40B0044FF14" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">2020</link:label>
    <link:label id="lab_us-gaap_LessorOperatingLeasePaymentsToBeReceivedNextTwelveMonths_6394700A5A40B7A4F772F40B0044FF14_label_en-US" xlink:label="lab_us-gaap_LessorOperatingLeasePaymentsToBeReceivedNextTwelveMonths_6394700A5A40B7A4F772F40B0044FF14" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Lessor, Operating Lease, Payments to be Received, Next Twelve Months</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_LessorOperatingLeasePaymentsToBeReceivedNextTwelveMonths" xlink:label="loc_us-gaap_LessorOperatingLeasePaymentsToBeReceivedNextTwelveMonths_6394700A5A40B7A4F772F40B0044FF14" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_LessorOperatingLeasePaymentsToBeReceivedNextTwelveMonths_6394700A5A40B7A4F772F40B0044FF14" xlink:to="lab_us-gaap_LessorOperatingLeasePaymentsToBeReceivedNextTwelveMonths_6394700A5A40B7A4F772F40B0044FF14" xlink:type="arc" />
    <link:label id="lab_us-gaap_LessorOperatingLeasePaymentsToBeReceivedTwoYears_41DAB1F21C465BB3DBC9F40B00561ACB_terseLabel_en-US" xlink:label="lab_us-gaap_LessorOperatingLeasePaymentsToBeReceivedTwoYears_41DAB1F21C465BB3DBC9F40B00561ACB" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">2021</link:label>
    <link:label id="lab_us-gaap_LessorOperatingLeasePaymentsToBeReceivedTwoYears_41DAB1F21C465BB3DBC9F40B00561ACB_label_en-US" xlink:label="lab_us-gaap_LessorOperatingLeasePaymentsToBeReceivedTwoYears_41DAB1F21C465BB3DBC9F40B00561ACB" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Lessor, Operating Lease, Payments to be Received, Two Years</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_LessorOperatingLeasePaymentsToBeReceivedTwoYears" xlink:label="loc_us-gaap_LessorOperatingLeasePaymentsToBeReceivedTwoYears_41DAB1F21C465BB3DBC9F40B00561ACB" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_LessorOperatingLeasePaymentsToBeReceivedTwoYears_41DAB1F21C465BB3DBC9F40B00561ACB" xlink:to="lab_us-gaap_LessorOperatingLeasePaymentsToBeReceivedTwoYears_41DAB1F21C465BB3DBC9F40B00561ACB" xlink:type="arc" />
    <link:label id="lab_us-gaap_LessorOperatingLeasePaymentsToBeReceivedThreeYears_FF669BED89C66E36BA92F40B00631113_terseLabel_en-US" xlink:label="lab_us-gaap_LessorOperatingLeasePaymentsToBeReceivedThreeYears_FF669BED89C66E36BA92F40B00631113" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">2022</link:label>
    <link:label id="lab_us-gaap_LessorOperatingLeasePaymentsToBeReceivedThreeYears_FF669BED89C66E36BA92F40B00631113_label_en-US" xlink:label="lab_us-gaap_LessorOperatingLeasePaymentsToBeReceivedThreeYears_FF669BED89C66E36BA92F40B00631113" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Lessor, Operating Lease, Payments to be Received, Three Years</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_LessorOperatingLeasePaymentsToBeReceivedThreeYears" xlink:label="loc_us-gaap_LessorOperatingLeasePaymentsToBeReceivedThreeYears_FF669BED89C66E36BA92F40B00631113" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_LessorOperatingLeasePaymentsToBeReceivedThreeYears_FF669BED89C66E36BA92F40B00631113" xlink:to="lab_us-gaap_LessorOperatingLeasePaymentsToBeReceivedThreeYears_FF669BED89C66E36BA92F40B00631113" xlink:type="arc" />
    <link:label id="lab_us-gaap_LessorOperatingLeasePaymentsToBeReceived_87D1C2293BC29F4721C6F40B007478BD_totalLabel_en-US" xlink:label="lab_us-gaap_LessorOperatingLeasePaymentsToBeReceived_87D1C2293BC29F4721C6F40B007478BD" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xml:lang="en-US">Total</link:label>
    <link:label id="lab_us-gaap_LessorOperatingLeasePaymentsToBeReceived_87D1C2293BC29F4721C6F40B007478BD_label_en-US" xlink:label="lab_us-gaap_LessorOperatingLeasePaymentsToBeReceived_87D1C2293BC29F4721C6F40B007478BD" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Lessor, Operating Lease, Payments to be Received</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_LessorOperatingLeasePaymentsToBeReceived" xlink:label="loc_us-gaap_LessorOperatingLeasePaymentsToBeReceived_87D1C2293BC29F4721C6F40B007478BD" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_LessorOperatingLeasePaymentsToBeReceived_87D1C2293BC29F4721C6F40B007478BD" xlink:to="lab_us-gaap_LessorOperatingLeasePaymentsToBeReceived_87D1C2293BC29F4721C6F40B007478BD" xlink:type="arc" />
    <link:label id="lab_us-gaap_CurrentIncomeTaxExpenseBenefitContinuingOperationsAbstract_22CE62DD30B268E0F3428095E8D68D6B_terseLabel_en-US" xlink:label="lab_us-gaap_CurrentIncomeTaxExpenseBenefitContinuingOperationsAbstract_22CE62DD30B268E0F3428095E8D68D6B" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Current:</link:label>
    <link:label id="lab_us-gaap_CurrentIncomeTaxExpenseBenefitContinuingOperationsAbstract_22CE62DD30B268E0F3428095E8D68D6B_label_en-US" xlink:label="lab_us-gaap_CurrentIncomeTaxExpenseBenefitContinuingOperationsAbstract_22CE62DD30B268E0F3428095E8D68D6B" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Current Income Tax Expense (Benefit), Continuing Operations [Abstract]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_CurrentIncomeTaxExpenseBenefitContinuingOperationsAbstract" xlink:label="loc_us-gaap_CurrentIncomeTaxExpenseBenefitContinuingOperationsAbstract_22CE62DD30B268E0F3428095E8D68D6B" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_CurrentIncomeTaxExpenseBenefitContinuingOperationsAbstract_22CE62DD30B268E0F3428095E8D68D6B" xlink:to="lab_us-gaap_CurrentIncomeTaxExpenseBenefitContinuingOperationsAbstract_22CE62DD30B268E0F3428095E8D68D6B" xlink:type="arc" />
    <link:label id="lab_us-gaap_CurrentFederalTaxExpenseBenefit_8ECF5A1642B1495422638095E8D64CA7_terseLabel_en-US" xlink:label="lab_us-gaap_CurrentFederalTaxExpenseBenefit_8ECF5A1642B1495422638095E8D64CA7" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Federal</link:label>
    <link:label id="lab_us-gaap_CurrentFederalTaxExpenseBenefit_8ECF5A1642B1495422638095E8D64CA7_label_en-US" xlink:label="lab_us-gaap_CurrentFederalTaxExpenseBenefit_8ECF5A1642B1495422638095E8D64CA7" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Current Federal Tax Expense (Benefit)</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_CurrentFederalTaxExpenseBenefit" xlink:label="loc_us-gaap_CurrentFederalTaxExpenseBenefit_8ECF5A1642B1495422638095E8D64CA7" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_CurrentFederalTaxExpenseBenefit_8ECF5A1642B1495422638095E8D64CA7" xlink:to="lab_us-gaap_CurrentFederalTaxExpenseBenefit_8ECF5A1642B1495422638095E8D64CA7" xlink:type="arc" />
    <link:label id="lab_us-gaap_CurrentStateAndLocalTaxExpenseBenefit_923CB10240E872207E768095E8D66A26_terseLabel_en-US" xlink:label="lab_us-gaap_CurrentStateAndLocalTaxExpenseBenefit_923CB10240E872207E768095E8D66A26" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">State</link:label>
    <link:label id="lab_us-gaap_CurrentStateAndLocalTaxExpenseBenefit_923CB10240E872207E768095E8D66A26_label_en-US" xlink:label="lab_us-gaap_CurrentStateAndLocalTaxExpenseBenefit_923CB10240E872207E768095E8D66A26" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Current State and Local Tax Expense (Benefit)</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_CurrentStateAndLocalTaxExpenseBenefit" xlink:label="loc_us-gaap_CurrentStateAndLocalTaxExpenseBenefit_923CB10240E872207E768095E8D66A26" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_CurrentStateAndLocalTaxExpenseBenefit_923CB10240E872207E768095E8D66A26" xlink:to="lab_us-gaap_CurrentStateAndLocalTaxExpenseBenefit_923CB10240E872207E768095E8D66A26" xlink:type="arc" />
    <link:label id="lab_us-gaap_CurrentForeignTaxExpenseBenefit_0E02DE2AB2E55534A3BF8095E8D6B67C_terseLabel_en-US" xlink:label="lab_us-gaap_CurrentForeignTaxExpenseBenefit_0E02DE2AB2E55534A3BF8095E8D6B67C" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Foreign</link:label>
    <link:label id="lab_us-gaap_CurrentForeignTaxExpenseBenefit_0E02DE2AB2E55534A3BF8095E8D6B67C_label_en-US" xlink:label="lab_us-gaap_CurrentForeignTaxExpenseBenefit_0E02DE2AB2E55534A3BF8095E8D6B67C" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Current Foreign Tax Expense (Benefit)</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_CurrentForeignTaxExpenseBenefit" xlink:label="loc_us-gaap_CurrentForeignTaxExpenseBenefit_0E02DE2AB2E55534A3BF8095E8D6B67C" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_CurrentForeignTaxExpenseBenefit_0E02DE2AB2E55534A3BF8095E8D6B67C" xlink:to="lab_us-gaap_CurrentForeignTaxExpenseBenefit_0E02DE2AB2E55534A3BF8095E8D6B67C" xlink:type="arc" />
    <link:label id="lab_us-gaap_CurrentIncomeTaxExpenseBenefit_0485FB2DBDAEC6F18FD08095E8D65F66_totalLabel_en-US" xlink:label="lab_us-gaap_CurrentIncomeTaxExpenseBenefit_0485FB2DBDAEC6F18FD08095E8D65F66" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xml:lang="en-US">Current income tax expense (benefit), Total</link:label>
    <link:label id="lab_us-gaap_CurrentIncomeTaxExpenseBenefit_0485FB2DBDAEC6F18FD08095E8D65F66_label_en-US" xlink:label="lab_us-gaap_CurrentIncomeTaxExpenseBenefit_0485FB2DBDAEC6F18FD08095E8D65F66" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Current Income Tax Expense (Benefit)</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_CurrentIncomeTaxExpenseBenefit" xlink:label="loc_us-gaap_CurrentIncomeTaxExpenseBenefit_0485FB2DBDAEC6F18FD08095E8D65F66" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_CurrentIncomeTaxExpenseBenefit_0485FB2DBDAEC6F18FD08095E8D65F66" xlink:to="lab_us-gaap_CurrentIncomeTaxExpenseBenefit_0485FB2DBDAEC6F18FD08095E8D65F66" xlink:type="arc" />
    <link:label id="lab_us-gaap_DeferredIncomeTaxExpenseBenefitContinuingOperationsAbstract_3264B725093B252BBD868095E8D73DFF_terseLabel_en-US" xlink:label="lab_us-gaap_DeferredIncomeTaxExpenseBenefitContinuingOperationsAbstract_3264B725093B252BBD868095E8D73DFF" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Deferred:</link:label>
    <link:label id="lab_us-gaap_DeferredIncomeTaxExpenseBenefitContinuingOperationsAbstract_3264B725093B252BBD868095E8D73DFF_label_en-US" xlink:label="lab_us-gaap_DeferredIncomeTaxExpenseBenefitContinuingOperationsAbstract_3264B725093B252BBD868095E8D73DFF" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Deferred Income Tax Expense (Benefit), Continuing Operations [Abstract]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_DeferredIncomeTaxExpenseBenefitContinuingOperationsAbstract" xlink:label="loc_us-gaap_DeferredIncomeTaxExpenseBenefitContinuingOperationsAbstract_3264B725093B252BBD868095E8D73DFF" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DeferredIncomeTaxExpenseBenefitContinuingOperationsAbstract_3264B725093B252BBD868095E8D73DFF" xlink:to="lab_us-gaap_DeferredIncomeTaxExpenseBenefitContinuingOperationsAbstract_3264B725093B252BBD868095E8D73DFF" xlink:type="arc" />
    <link:label id="lab_us-gaap_DeferredFederalIncomeTaxExpenseBenefit_9ACC637517CDBD07D05E8095E8D71A70_terseLabel_en-US" xlink:label="lab_us-gaap_DeferredFederalIncomeTaxExpenseBenefit_9ACC637517CDBD07D05E8095E8D71A70" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Federal</link:label>
    <link:label id="lab_us-gaap_DeferredFederalIncomeTaxExpenseBenefit_9ACC637517CDBD07D05E8095E8D71A70_label_en-US" xlink:label="lab_us-gaap_DeferredFederalIncomeTaxExpenseBenefit_9ACC637517CDBD07D05E8095E8D71A70" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Deferred Federal Income Tax Expense (Benefit)</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_DeferredFederalIncomeTaxExpenseBenefit" xlink:label="loc_us-gaap_DeferredFederalIncomeTaxExpenseBenefit_9ACC637517CDBD07D05E8095E8D71A70" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DeferredFederalIncomeTaxExpenseBenefit_9ACC637517CDBD07D05E8095E8D71A70" xlink:to="lab_us-gaap_DeferredFederalIncomeTaxExpenseBenefit_9ACC637517CDBD07D05E8095E8D71A70" xlink:type="arc" />
    <link:label id="lab_us-gaap_DeferredStateAndLocalIncomeTaxExpenseBenefit_0D33517EEDA50F8E2A318095E8D76986_terseLabel_en-US" xlink:label="lab_us-gaap_DeferredStateAndLocalIncomeTaxExpenseBenefit_0D33517EEDA50F8E2A318095E8D76986" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">State</link:label>
    <link:label id="lab_us-gaap_DeferredStateAndLocalIncomeTaxExpenseBenefit_0D33517EEDA50F8E2A318095E8D76986_label_en-US" xlink:label="lab_us-gaap_DeferredStateAndLocalIncomeTaxExpenseBenefit_0D33517EEDA50F8E2A318095E8D76986" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Deferred State and Local Income Tax Expense (Benefit)</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_DeferredStateAndLocalIncomeTaxExpenseBenefit" xlink:label="loc_us-gaap_DeferredStateAndLocalIncomeTaxExpenseBenefit_0D33517EEDA50F8E2A318095E8D76986" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DeferredStateAndLocalIncomeTaxExpenseBenefit_0D33517EEDA50F8E2A318095E8D76986" xlink:to="lab_us-gaap_DeferredStateAndLocalIncomeTaxExpenseBenefit_0D33517EEDA50F8E2A318095E8D76986" xlink:type="arc" />
    <link:label id="lab_us-gaap_DeferredForeignIncomeTaxExpenseBenefit_98DB17CEEE53FBAD502D8095E8D7CD7F_terseLabel_en-US" xlink:label="lab_us-gaap_DeferredForeignIncomeTaxExpenseBenefit_98DB17CEEE53FBAD502D8095E8D7CD7F" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Foreign</link:label>
    <link:label id="lab_us-gaap_DeferredForeignIncomeTaxExpenseBenefit_98DB17CEEE53FBAD502D8095E8D7CD7F_label_en-US" xlink:label="lab_us-gaap_DeferredForeignIncomeTaxExpenseBenefit_98DB17CEEE53FBAD502D8095E8D7CD7F" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Deferred Foreign Income Tax Expense (Benefit)</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_DeferredForeignIncomeTaxExpenseBenefit" xlink:label="loc_us-gaap_DeferredForeignIncomeTaxExpenseBenefit_98DB17CEEE53FBAD502D8095E8D7CD7F" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DeferredForeignIncomeTaxExpenseBenefit_98DB17CEEE53FBAD502D8095E8D7CD7F" xlink:to="lab_us-gaap_DeferredForeignIncomeTaxExpenseBenefit_98DB17CEEE53FBAD502D8095E8D7CD7F" xlink:type="arc" />
    <link:label id="lab_us-gaap_DeferredIncomeTaxExpenseBenefit_5503AA4FC1EB184F5EED8095E8D75FFC_totalLabel_en-US" xlink:label="lab_us-gaap_DeferredIncomeTaxExpenseBenefit_5503AA4FC1EB184F5EED8095E8D75FFC" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xml:lang="en-US">Deferred income tax expense (benefit), Total</link:label>
    <link:label id="lab_us-gaap_DeferredIncomeTaxExpenseBenefit_5503AA4FC1EB184F5EED8095E8D75FFC_label_en-US" xlink:label="lab_us-gaap_DeferredIncomeTaxExpenseBenefit_5503AA4FC1EB184F5EED8095E8D75FFC" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Deferred Income Tax Expense (Benefit)</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_DeferredIncomeTaxExpenseBenefit" xlink:label="loc_us-gaap_DeferredIncomeTaxExpenseBenefit_5503AA4FC1EB184F5EED8095E8D75FFC" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DeferredIncomeTaxExpenseBenefit_5503AA4FC1EB184F5EED8095E8D75FFC" xlink:to="lab_us-gaap_DeferredIncomeTaxExpenseBenefit_5503AA4FC1EB184F5EED8095E8D75FFC" xlink:type="arc" />
    <link:label id="lab_us-gaap_IncomeTaxExpenseBenefit_B136A56C607EB16A437C8095E8D79F19_totalLabel_en-US" xlink:label="lab_us-gaap_IncomeTaxExpenseBenefit_B136A56C607EB16A437C8095E8D79F19" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xml:lang="en-US">Income tax expense (benefit), continuing operations, Total</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_IncomeTaxExpenseBenefit" xlink:label="loc_us-gaap_IncomeTaxExpenseBenefit_B136A56C607EB16A437C8095E8D79F19" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_IncomeTaxExpenseBenefit_B136A56C607EB16A437C8095E8D79F19" xlink:to="lab_us-gaap_IncomeTaxExpenseBenefit_B136A56C607EB16A437C8095E8D79F19" xlink:type="arc" />
    <link:label id="lab_us-gaap_AdvertisingExpense_67709F0792734C6EAA368095E552E0A7_terseLabel_en-US" xlink:label="lab_us-gaap_AdvertisingExpense_67709F0792734C6EAA368095E552E0A7" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Advertising costs</link:label>
    <link:label id="lab_us-gaap_AdvertisingExpense_67709F0792734C6EAA368095E552E0A7_label_en-US" xlink:label="lab_us-gaap_AdvertisingExpense_67709F0792734C6EAA368095E552E0A7" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Advertising Expense</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_AdvertisingExpense" xlink:label="loc_us-gaap_AdvertisingExpense_67709F0792734C6EAA368095E552E0A7" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AdvertisingExpense_67709F0792734C6EAA368095E552E0A7" xlink:to="lab_us-gaap_AdvertisingExpense_67709F0792734C6EAA368095E552E0A7" xlink:type="arc" />
    <link:label id="lab_us-gaap_DerivativeInstrumentsGainLossByHedgingRelationshipByIncomeStatementLocationByDerivativeInstrumentRiskTable_B575C3892635EA767E5235C0E695EB58_terseLabel_en-US" xlink:label="lab_us-gaap_DerivativeInstrumentsGainLossByHedgingRelationshipByIncomeStatementLocationByDerivativeInstrumentRiskTable_B575C3892635EA767E5235C0E695EB58" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Derivative Instruments, Gain (Loss) [Table]</link:label>
    <link:label id="lab_us-gaap_DerivativeInstrumentsGainLossByHedgingRelationshipByIncomeStatementLocationByDerivativeInstrumentRiskTable_B575C3892635EA767E5235C0E695EB58_label_en-US" xlink:label="lab_us-gaap_DerivativeInstrumentsGainLossByHedgingRelationshipByIncomeStatementLocationByDerivativeInstrumentRiskTable_B575C3892635EA767E5235C0E695EB58" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Derivative Instruments, Gain (Loss) [Table]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_DerivativeInstrumentsGainLossByHedgingRelationshipByIncomeStatementLocationByDerivativeInstrumentRiskTable" xlink:label="loc_us-gaap_DerivativeInstrumentsGainLossByHedgingRelationshipByIncomeStatementLocationByDerivativeInstrumentRiskTable_B575C3892635EA767E5235C0E695EB58" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DerivativeInstrumentsGainLossByHedgingRelationshipByIncomeStatementLocationByDerivativeInstrumentRiskTable_B575C3892635EA767E5235C0E695EB58" xlink:to="lab_us-gaap_DerivativeInstrumentsGainLossByHedgingRelationshipByIncomeStatementLocationByDerivativeInstrumentRiskTable_B575C3892635EA767E5235C0E695EB58" xlink:type="arc" />
    <link:label id="lab_us-gaap_IncomeStatementLocationAxis_55CAE3FD8454800D846A35C0E6950719_terseLabel_en-US" xlink:label="lab_us-gaap_IncomeStatementLocationAxis_55CAE3FD8454800D846A35C0E6950719" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Income Statement Location [Axis]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_IncomeStatementLocationAxis" xlink:label="loc_us-gaap_IncomeStatementLocationAxis_55CAE3FD8454800D846A35C0E6950719" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_IncomeStatementLocationAxis_55CAE3FD8454800D846A35C0E6950719" xlink:to="lab_us-gaap_IncomeStatementLocationAxis_55CAE3FD8454800D846A35C0E6950719" xlink:type="arc" />
    <link:label id="lab_us-gaap_IncomeStatementLocationDomain_58063E15C084D5C9CA5535C0E696A5ED_terseLabel_en-US" xlink:label="lab_us-gaap_IncomeStatementLocationDomain_58063E15C084D5C9CA5535C0E696A5ED" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Income Statement Location [Domain]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_IncomeStatementLocationDomain" xlink:label="loc_us-gaap_IncomeStatementLocationDomain_58063E15C084D5C9CA5535C0E696A5ED" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_IncomeStatementLocationDomain_58063E15C084D5C9CA5535C0E696A5ED" xlink:to="lab_us-gaap_IncomeStatementLocationDomain_58063E15C084D5C9CA5535C0E696A5ED" xlink:type="arc" />
    <link:label id="lab_us-gaap_CashFlowHedgingMember_1A90D2E05CAA7F6B495335C0E69663F5_terseLabel_en-US" xlink:label="lab_us-gaap_CashFlowHedgingMember_1A90D2E05CAA7F6B495335C0E69663F5" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Accumulated other comprehensive income (loss), net of tax</link:label>
    <link:label id="lab_us-gaap_CashFlowHedgingMember_1A90D2E05CAA7F6B495335C0E69663F5_label_en-US" xlink:label="lab_us-gaap_CashFlowHedgingMember_1A90D2E05CAA7F6B495335C0E69663F5" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Cash Flow Hedging [Member]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_CashFlowHedgingMember" xlink:label="loc_us-gaap_CashFlowHedgingMember_1A90D2E05CAA7F6B495335C0E69663F5" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_CashFlowHedgingMember_1A90D2E05CAA7F6B495335C0E69663F5" xlink:to="lab_us-gaap_CashFlowHedgingMember_1A90D2E05CAA7F6B495335C0E69663F5" xlink:type="arc" />
    <link:label id="lab_us-gaap_SalesRevenueGoodsNetMember_66858E7E231683B933CC35C0E696CC3C_terseLabel_en-US" xlink:label="lab_us-gaap_SalesRevenueGoodsNetMember_66858E7E231683B933CC35C0E696CC3C" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Product Revenue</link:label>
    <link:label id="lab_us-gaap_SalesRevenueGoodsNetMember_66858E7E231683B933CC35C0E696CC3C_label_en-US" xlink:label="lab_us-gaap_SalesRevenueGoodsNetMember_66858E7E231683B933CC35C0E696CC3C" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Sales Revenue, Goods, Net [Member]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_SalesRevenueGoodsNetMember" xlink:label="loc_us-gaap_SalesRevenueGoodsNetMember_66858E7E231683B933CC35C0E696CC3C" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_SalesRevenueGoodsNetMember_66858E7E231683B933CC35C0E696CC3C" xlink:to="lab_us-gaap_SalesRevenueGoodsNetMember_66858E7E231683B933CC35C0E696CC3C" xlink:type="arc" />
    <link:label id="lab_us-gaap_GeneralAndAdministrativeExpenseMember_A606CB55F5AC9FE97A9835C0E69638CE_terseLabel_en-US" xlink:label="lab_us-gaap_GeneralAndAdministrativeExpenseMember_A606CB55F5AC9FE97A9835C0E69638CE" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Selling, general and administrative expenses</link:label>
    <link:label id="lab_us-gaap_GeneralAndAdministrativeExpenseMember_A606CB55F5AC9FE97A9835C0E69638CE_label_en-US" xlink:label="lab_us-gaap_GeneralAndAdministrativeExpenseMember_A606CB55F5AC9FE97A9835C0E69638CE" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">General and Administrative Expense [Member]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_GeneralAndAdministrativeExpenseMember" xlink:label="loc_us-gaap_GeneralAndAdministrativeExpenseMember_A606CB55F5AC9FE97A9835C0E69638CE" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_GeneralAndAdministrativeExpenseMember_A606CB55F5AC9FE97A9835C0E69638CE" xlink:to="lab_us-gaap_GeneralAndAdministrativeExpenseMember_A606CB55F5AC9FE97A9835C0E69638CE" xlink:type="arc" />
    <link:label id="lab_us-gaap_ForeignCurrencyGainLossMember_D4DC0A363886C5A067AD35C0E6978315_terseLabel_en-US" xlink:label="lab_us-gaap_ForeignCurrencyGainLossMember_D4DC0A363886C5A067AD35C0E6978315" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Foreign currency gain (loss)</link:label>
    <link:label id="lab_us-gaap_ForeignCurrencyGainLossMember_D4DC0A363886C5A067AD35C0E6978315_label_en-US" xlink:label="lab_us-gaap_ForeignCurrencyGainLossMember_D4DC0A363886C5A067AD35C0E6978315" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Foreign Currency Gain (Loss) [Member]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ForeignCurrencyGainLossMember" xlink:label="loc_us-gaap_ForeignCurrencyGainLossMember_D4DC0A363886C5A067AD35C0E6978315" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ForeignCurrencyGainLossMember_D4DC0A363886C5A067AD35C0E6978315" xlink:to="lab_us-gaap_ForeignCurrencyGainLossMember_D4DC0A363886C5A067AD35C0E6978315" xlink:type="arc" />
    <link:label id="lab_us-gaap_DerivativeInstrumentsGainLossLineItems_80E7155190768B04A3AD35C0E69D91C2_terseLabel_en-US" xlink:label="lab_us-gaap_DerivativeInstrumentsGainLossLineItems_80E7155190768B04A3AD35C0E69D91C2" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Derivative Instruments, Gain (Loss) [Line Items]</link:label>
    <link:label id="lab_us-gaap_DerivativeInstrumentsGainLossLineItems_80E7155190768B04A3AD35C0E69D91C2_label_en-US" xlink:label="lab_us-gaap_DerivativeInstrumentsGainLossLineItems_80E7155190768B04A3AD35C0E69D91C2" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Derivative Instruments, Gain (Loss) [Line Items]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_DerivativeInstrumentsGainLossLineItems" xlink:label="loc_us-gaap_DerivativeInstrumentsGainLossLineItems_80E7155190768B04A3AD35C0E69D91C2" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DerivativeInstrumentsGainLossLineItems_80E7155190768B04A3AD35C0E69D91C2" xlink:to="lab_us-gaap_DerivativeInstrumentsGainLossLineItems_80E7155190768B04A3AD35C0E69D91C2" xlink:type="arc" />
    <link:label id="lab_us-gaap_DerivativeInstrumentsGainLossReclassifiedFromAccumulatedOCIIntoIncomeEffectivePortionNet_153F001CC1AB5BA2623D35C0E69DA308_terseLabel_en-US" xlink:label="lab_us-gaap_DerivativeInstrumentsGainLossReclassifiedFromAccumulatedOCIIntoIncomeEffectivePortionNet_153F001CC1AB5BA2623D35C0E69DA308" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Gains (losses) reclassified from accumulated other comprehensive income (loss) into net income (effective portion)</link:label>
    <link:label id="lab_us-gaap_DerivativeInstrumentsGainLossReclassifiedFromAccumulatedOCIIntoIncomeEffectivePortionNet_153F001CC1AB5BA2623D35C0E69DA308_label_en-US" xlink:label="lab_us-gaap_DerivativeInstrumentsGainLossReclassifiedFromAccumulatedOCIIntoIncomeEffectivePortionNet_153F001CC1AB5BA2623D35C0E69DA308" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Derivative Instruments, Gain (Loss) Reclassified from Accumulated OCI into Income, Effective Portion, Net</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_DerivativeInstrumentsGainLossReclassifiedFromAccumulatedOCIIntoIncomeEffectivePortionNet" xlink:label="loc_us-gaap_DerivativeInstrumentsGainLossReclassifiedFromAccumulatedOCIIntoIncomeEffectivePortionNet_153F001CC1AB5BA2623D35C0E69DA308" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DerivativeInstrumentsGainLossReclassifiedFromAccumulatedOCIIntoIncomeEffectivePortionNet_153F001CC1AB5BA2623D35C0E69DA308" xlink:to="lab_us-gaap_DerivativeInstrumentsGainLossReclassifiedFromAccumulatedOCIIntoIncomeEffectivePortionNet_153F001CC1AB5BA2623D35C0E69DA308" xlink:type="arc" />
    <link:label id="lab_us-gaap_OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIOnDerivativesNetOfTax_A256EBE55BFCDD845C1F35C0E69EDE73_terseLabel_en-US" xlink:label="lab_us-gaap_OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIOnDerivativesNetOfTax_A256EBE55BFCDD845C1F35C0E69EDE73" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Total gains (losses) reclassified from accumulated other comprehensive income (loss) into net income</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIOnDerivativesNetOfTax" xlink:label="loc_us-gaap_OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIOnDerivativesNetOfTax_A256EBE55BFCDD845C1F35C0E69EDE73" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIOnDerivativesNetOfTax_A256EBE55BFCDD845C1F35C0E69EDE73" xlink:to="lab_us-gaap_OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIOnDerivativesNetOfTax_A256EBE55BFCDD845C1F35C0E69EDE73" xlink:type="arc" />
    <link:label id="lab_us-gaap_DerivativeGainLossOnDerivativeNetAbstract_0A684B0540B9C044B7D735C0E69E0B43_terseLabel_en-US" xlink:label="lab_us-gaap_DerivativeGainLossOnDerivativeNetAbstract_0A684B0540B9C044B7D735C0E69E0B43" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Derivative, Gain (Loss) on Derivative, Net [Abstract]</link:label>
    <link:label id="lab_us-gaap_DerivativeGainLossOnDerivativeNetAbstract_0A684B0540B9C044B7D735C0E69E0B43_label_en-US" xlink:label="lab_us-gaap_DerivativeGainLossOnDerivativeNetAbstract_0A684B0540B9C044B7D735C0E69E0B43" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Derivative, Gain (Loss) on Derivative, Net [Abstract]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_DerivativeGainLossOnDerivativeNetAbstract" xlink:label="loc_us-gaap_DerivativeGainLossOnDerivativeNetAbstract_0A684B0540B9C044B7D735C0E69E0B43" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DerivativeGainLossOnDerivativeNetAbstract_0A684B0540B9C044B7D735C0E69E0B43" xlink:to="lab_us-gaap_DerivativeGainLossOnDerivativeNetAbstract_0A684B0540B9C044B7D735C0E69E0B43" xlink:type="arc" />
    <link:label id="lab_us-gaap_DerivativeGainLossOnDerivativeNet_304D118D370A4B1849D835C0E69E154E_terseLabel_en-US" xlink:label="lab_us-gaap_DerivativeGainLossOnDerivativeNet_304D118D370A4B1849D835C0E69E154E" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Gains (losses) recognized in net income</link:label>
    <link:label id="lab_us-gaap_DerivativeGainLossOnDerivativeNet_304D118D370A4B1849D835C0E69E154E_label_en-US" xlink:label="lab_us-gaap_DerivativeGainLossOnDerivativeNet_304D118D370A4B1849D835C0E69E154E" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Derivative, Gain (Loss) on Derivative, Net</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_DerivativeGainLossOnDerivativeNet" xlink:label="loc_us-gaap_DerivativeGainLossOnDerivativeNet_304D118D370A4B1849D835C0E69E154E" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DerivativeGainLossOnDerivativeNet_304D118D370A4B1849D835C0E69E154E" xlink:to="lab_us-gaap_DerivativeGainLossOnDerivativeNet_304D118D370A4B1849D835C0E69E154E" xlink:type="arc" />
    <link:label id="lab_us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionLessThanTwelveMonthsFairValue_65BA618C0CEE7227B09DF3C9000BBEEE_terseLabel_en-US" xlink:label="lab_us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionLessThanTwelveMonthsFairValue_65BA618C0CEE7227B09DF3C9000BBEEE" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Fair Value, Less than 12 months</link:label>
    <link:label id="lab_us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionLessThanTwelveMonthsFairValue_65BA618C0CEE7227B09DF3C9000BBEEE_label_en-US" xlink:label="lab_us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionLessThanTwelveMonthsFairValue_65BA618C0CEE7227B09DF3C9000BBEEE" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Available-for-sale Securities, Continuous Unrealized Loss Position, Less than Twelve Months, Fair Value</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionLessThanTwelveMonthsFairValue" xlink:label="loc_us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionLessThanTwelveMonthsFairValue_65BA618C0CEE7227B09DF3C9000BBEEE" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionLessThanTwelveMonthsFairValue_65BA618C0CEE7227B09DF3C9000BBEEE" xlink:to="lab_us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionLessThanTwelveMonthsFairValue_65BA618C0CEE7227B09DF3C9000BBEEE" xlink:type="arc" />
    <link:label id="lab_us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionLessThan12MonthsAccumulatedLoss_569D48D491B4664E780BF3C9000B2ACB_negatedLabel_en-US" xlink:label="lab_us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionLessThan12MonthsAccumulatedLoss_569D48D491B4664E780BF3C9000B2ACB" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:type="resource" xml:lang="en-US">Unrealized Losses, Less than 12 months</link:label>
    <link:label id="lab_us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionLessThan12MonthsAccumulatedLoss_569D48D491B4664E780BF3C9000B2ACB_label_en-US" xlink:label="lab_us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionLessThan12MonthsAccumulatedLoss_569D48D491B4664E780BF3C9000B2ACB" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Available-for-sale Securities, Continuous Unrealized Loss Position, Less than 12 Months, Accumulated Loss</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionLessThan12MonthsAccumulatedLoss" xlink:label="loc_us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionLessThan12MonthsAccumulatedLoss_569D48D491B4664E780BF3C9000B2ACB" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionLessThan12MonthsAccumulatedLoss_569D48D491B4664E780BF3C9000B2ACB" xlink:to="lab_us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionLessThan12MonthsAccumulatedLoss_569D48D491B4664E780BF3C9000B2ACB" xlink:type="arc" />
    <link:label id="lab_us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionTwelveMonthsOrLongerFairValue_55305730F58E0D71D271F3C9000BE46D_terseLabel_en-US" xlink:label="lab_us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionTwelveMonthsOrLongerFairValue_55305730F58E0D71D271F3C9000BE46D" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Fair Value, Greater than 12 Months</link:label>
    <link:label id="lab_us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionTwelveMonthsOrLongerFairValue_55305730F58E0D71D271F3C9000BE46D_label_en-US" xlink:label="lab_us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionTwelveMonthsOrLongerFairValue_55305730F58E0D71D271F3C9000BE46D" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Available-for-sale Securities, Continuous Unrealized Loss Position, Twelve Months or Longer, Fair Value</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionTwelveMonthsOrLongerFairValue" xlink:label="loc_us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionTwelveMonthsOrLongerFairValue_55305730F58E0D71D271F3C9000BE46D" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionTwelveMonthsOrLongerFairValue_55305730F58E0D71D271F3C9000BE46D" xlink:to="lab_us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionTwelveMonthsOrLongerFairValue_55305730F58E0D71D271F3C9000BE46D" xlink:type="arc" />
    <link:label id="lab_us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPosition12MonthsOrLongerAccumulatedLoss_4CD1F340F5710A567732F3C9000BDEAC_negatedLabel_en-US" xlink:label="lab_us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPosition12MonthsOrLongerAccumulatedLoss_4CD1F340F5710A567732F3C9000BDEAC" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:type="resource" xml:lang="en-US">Unrealized Losses, Greater than 12 Months</link:label>
    <link:label id="lab_us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPosition12MonthsOrLongerAccumulatedLoss_4CD1F340F5710A567732F3C9000BDEAC_label_en-US" xlink:label="lab_us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPosition12MonthsOrLongerAccumulatedLoss_4CD1F340F5710A567732F3C9000BDEAC" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Available-for-sale Securities, Continuous Unrealized Loss Position, 12 Months or Longer, Accumulated Loss</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPosition12MonthsOrLongerAccumulatedLoss" xlink:label="loc_us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPosition12MonthsOrLongerAccumulatedLoss_4CD1F340F5710A567732F3C9000BDEAC" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPosition12MonthsOrLongerAccumulatedLoss_4CD1F340F5710A567732F3C9000BDEAC" xlink:to="lab_us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPosition12MonthsOrLongerAccumulatedLoss_4CD1F340F5710A567732F3C9000BDEAC" xlink:type="arc" />
    <link:label id="lab_us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionFairValue_6BCCCA2762B5BD0AC998F3C9000B023F_totalLabel_en-US" xlink:label="lab_us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionFairValue_6BCCCA2762B5BD0AC998F3C9000B023F" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xml:lang="en-US">Fair Value</link:label>
    <link:label id="lab_us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionFairValue_6BCCCA2762B5BD0AC998F3C9000B023F_label_en-US" xlink:label="lab_us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionFairValue_6BCCCA2762B5BD0AC998F3C9000B023F" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Available-for-sale Securities, Continuous Unrealized Loss Position, Fair Value</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionFairValue" xlink:label="loc_us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionFairValue_6BCCCA2762B5BD0AC998F3C9000B023F" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionFairValue_6BCCCA2762B5BD0AC998F3C9000B023F" xlink:to="lab_us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionFairValue_6BCCCA2762B5BD0AC998F3C9000B023F" xlink:type="arc" />
    <link:label id="lab_us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionAccumulatedLoss_FF593012F2BC28C4D726F3C9000C3B24_negatedTotalLabel_en-US" xlink:label="lab_us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionAccumulatedLoss_FF593012F2BC28C4D726F3C9000C3B24" xlink:role="http://www.xbrl.org/2009/role/negatedTotalLabel" xlink:type="resource" xml:lang="en-US">Unrealized Losses</link:label>
    <link:label id="lab_us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionAccumulatedLoss_FF593012F2BC28C4D726F3C9000C3B24_label_en-US" xlink:label="lab_us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionAccumulatedLoss_FF593012F2BC28C4D726F3C9000C3B24" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Available-for-sale Securities, Continuous Unrealized Loss Position, Accumulated Loss</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionAccumulatedLoss" xlink:label="loc_us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionAccumulatedLoss_FF593012F2BC28C4D726F3C9000C3B24" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionAccumulatedLoss_FF593012F2BC28C4D726F3C9000C3B24" xlink:to="lab_us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionAccumulatedLoss_FF593012F2BC28C4D726F3C9000C3B24" xlink:type="arc" />
    <link:label id="lab_cgnx_InprocessTechnologyMember_6F9553E75AF438AD324D170C90BEB925_terseLabel_en-US" xlink:label="lab_cgnx_InprocessTechnologyMember_6F9553E75AF438AD324D170C90BEB925" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">In-process Technology [Member]</link:label>
    <link:label id="lab_cgnx_InprocessTechnologyMember_6F9553E75AF438AD324D170C90BEB925_label_en-US" xlink:label="lab_cgnx_InprocessTechnologyMember_6F9553E75AF438AD324D170C90BEB925" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">In-process Technology [Member]</link:label>
    <link:label id="lab_cgnx_InprocessTechnologyMember_6F9553E75AF438AD324D170C90BEB925_documentation_en-US" xlink:label="lab_cgnx_InprocessTechnologyMember_6F9553E75AF438AD324D170C90BEB925" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">In-process Technology [Member]</link:label>
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_InprocessTechnologyMember" xlink:label="loc_cgnx_InprocessTechnologyMember_6F9553E75AF438AD324D170C90BEB925" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_InprocessTechnologyMember_6F9553E75AF438AD324D170C90BEB925" xlink:to="lab_cgnx_InprocessTechnologyMember_6F9553E75AF438AD324D170C90BEB925" xlink:type="arc" />
    <link:label id="lab_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCashAndEquivalents_BFEBAEB4B6EA4D93738F170C90C0AA00_terseLabel_en-US" xlink:label="lab_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCashAndEquivalents_BFEBAEB4B6EA4D93738F170C90C0AA00" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Cash and cash equivalents</link:label>
    <link:label id="lab_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCashAndEquivalents_BFEBAEB4B6EA4D93738F170C90C0AA00_label_en-US" xlink:label="lab_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCashAndEquivalents_BFEBAEB4B6EA4D93738F170C90C0AA00" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Business Combination, Recognized Identifiable Assets Acquired and Liabilities Assumed, Cash and Equivalents</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCashAndEquivalents" xlink:label="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCashAndEquivalents_BFEBAEB4B6EA4D93738F170C90C0AA00" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCashAndEquivalents_BFEBAEB4B6EA4D93738F170C90C0AA00" xlink:to="lab_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCashAndEquivalents_BFEBAEB4B6EA4D93738F170C90C0AA00" xlink:type="arc" />
    <link:label id="lab_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsMarketableSecurities_A1F9D788A66E7210B12B170C90C0B066_terseLabel_en-US" xlink:label="lab_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsMarketableSecurities_A1F9D788A66E7210B12B170C90C0B066" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Current investments</link:label>
    <link:label id="lab_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsMarketableSecurities_A1F9D788A66E7210B12B170C90C0B066_label_en-US" xlink:label="lab_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsMarketableSecurities_A1F9D788A66E7210B12B170C90C0B066" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Business Combination, Recognized Identifiable Assets Acquired and Liabilities Assumed, Current Assets, Marketable Securities</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsMarketableSecurities" xlink:label="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsMarketableSecurities_A1F9D788A66E7210B12B170C90C0B066" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsMarketableSecurities_A1F9D788A66E7210B12B170C90C0B066" xlink:to="lab_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsMarketableSecurities_A1F9D788A66E7210B12B170C90C0B066" xlink:type="arc" />
    <link:label id="lab_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment_496B9D73F1AAD0F0805D170C90C16102_terseLabel_en-US" xlink:label="lab_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment_496B9D73F1AAD0F0805D170C90C16102" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Property, plant, and equipment</link:label>
    <link:label id="lab_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment_496B9D73F1AAD0F0805D170C90C16102_label_en-US" xlink:label="lab_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment_496B9D73F1AAD0F0805D170C90C16102" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Business Combination, Recognized Identifiable Assets Acquired and Liabilities Assumed, Property, Plant, and Equipment</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment" xlink:label="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment_496B9D73F1AAD0F0805D170C90C16102" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment_496B9D73F1AAD0F0805D170C90C16102" xlink:to="lab_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment_496B9D73F1AAD0F0805D170C90C16102" xlink:type="arc" />
    <link:label id="lab_cgnx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredandLiabilitiesAssumedOperatingLeaseRightofUseAsset_9115019EB9D5A8F9E6F0170C90C10AF3_terseLabel_en-US" xlink:label="lab_cgnx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredandLiabilitiesAssumedOperatingLeaseRightofUseAsset_9115019EB9D5A8F9E6F0170C90C10AF3" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Operating lease assets</link:label>
    <link:label id="lab_cgnx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredandLiabilitiesAssumedOperatingLeaseRightofUseAsset_9115019EB9D5A8F9E6F0170C90C10AF3_label_en-US" xlink:label="lab_cgnx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredandLiabilitiesAssumedOperatingLeaseRightofUseAsset_9115019EB9D5A8F9E6F0170C90C10AF3" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Business Combination, Recognized Identifiable Assets Acquired and Liabilities Assumed, Operating Lease, Right-of-Use Asset</link:label>
    <link:label id="lab_cgnx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredandLiabilitiesAssumedOperatingLeaseRightofUseAsset_9115019EB9D5A8F9E6F0170C90C10AF3_documentation_en-US" xlink:label="lab_cgnx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredandLiabilitiesAssumedOperatingLeaseRightofUseAsset_9115019EB9D5A8F9E6F0170C90C10AF3" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Business Combination, Recognized Identifiable Assets Acquired and Liabilities Assumed, Operating Lease, Right-of-Use Asset</link:label>
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredandLiabilitiesAssumedOperatingLeaseRightofUseAsset" xlink:label="loc_cgnx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredandLiabilitiesAssumedOperatingLeaseRightofUseAsset_9115019EB9D5A8F9E6F0170C90C10AF3" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredandLiabilitiesAssumedOperatingLeaseRightofUseAsset_9115019EB9D5A8F9E6F0170C90C10AF3" xlink:to="lab_cgnx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredandLiabilitiesAssumedOperatingLeaseRightofUseAsset_9115019EB9D5A8F9E6F0170C90C10AF3" xlink:type="arc" />
    <link:label id="lab_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxAssets_3B9427677E1660BD7363170C90C106ED_terseLabel_en-US" xlink:label="lab_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxAssets_3B9427677E1660BD7363170C90C106ED" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Deferred income tax asset</link:label>
    <link:label id="lab_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxAssets_3B9427677E1660BD7363170C90C106ED_label_en-US" xlink:label="lab_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxAssets_3B9427677E1660BD7363170C90C106ED" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Business Combination Recognized Identifiable Assets Acquired and Liabilities Assumed, Deferred Tax Assets</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxAssets" xlink:label="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxAssets_3B9427677E1660BD7363170C90C106ED" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxAssets_3B9427677E1660BD7363170C90C106ED" xlink:to="lab_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxAssets_3B9427677E1660BD7363170C90C106ED" xlink:type="arc" />
    <link:label id="lab_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNoncurrentAssets_A07AC6432D2B4A839BA2170C90C19454_terseLabel_en-US" xlink:label="lab_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNoncurrentAssets_A07AC6432D2B4A839BA2170C90C19454" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Other assets</link:label>
    <link:label id="lab_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNoncurrentAssets_A07AC6432D2B4A839BA2170C90C19454_label_en-US" xlink:label="lab_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNoncurrentAssets_A07AC6432D2B4A839BA2170C90C19454" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Business Combination, Recognized Identifiable Assets Acquired and Liabilities Assumed, Noncurrent Assets</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNoncurrentAssets" xlink:label="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNoncurrentAssets_A07AC6432D2B4A839BA2170C90C19454" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNoncurrentAssets_A07AC6432D2B4A839BA2170C90C19454" xlink:to="lab_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNoncurrentAssets_A07AC6432D2B4A839BA2170C90C19454" xlink:type="arc" />
    <link:label id="lab_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilities_48A095E70DAEA6B4905F170C90C2A184_negatedTerseLabel_en-US" xlink:label="lab_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilities_48A095E70DAEA6B4905F170C90C2A184" xlink:role="http://www.xbrl.org/2009/role/negatedTerseLabel" xlink:type="resource" xml:lang="en-US">Accrued expenses</link:label>
    <link:label id="lab_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilities_48A095E70DAEA6B4905F170C90C2A184_label_en-US" xlink:label="lab_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilities_48A095E70DAEA6B4905F170C90C2A184" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Business Combination, Recognized Identifiable Assets Acquired and Liabilities Assumed, Current Liabilities</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilities" xlink:label="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilities_48A095E70DAEA6B4905F170C90C2A184" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilities_48A095E70DAEA6B4905F170C90C2A184" xlink:to="lab_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilities_48A095E70DAEA6B4905F170C90C2A184" xlink:type="arc" />
    <link:label id="lab_cgnx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredandLiabilitiesAssumedCurrentLiabilitiesDeferredRevenueandCustomerDeposits_9159D28CDB3F927C6327170C90C28358_negatedTerseLabel_en-US" xlink:label="lab_cgnx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredandLiabilitiesAssumedCurrentLiabilitiesDeferredRevenueandCustomerDeposits_9159D28CDB3F927C6327170C90C28358" xlink:role="http://www.xbrl.org/2009/role/negatedTerseLabel" xlink:type="resource" xml:lang="en-US">Deferred revenue and customer deposits</link:label>
    <link:label id="lab_cgnx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredandLiabilitiesAssumedCurrentLiabilitiesDeferredRevenueandCustomerDeposits_9159D28CDB3F927C6327170C90C28358_label_en-US" xlink:label="lab_cgnx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredandLiabilitiesAssumedCurrentLiabilitiesDeferredRevenueandCustomerDeposits_9159D28CDB3F927C6327170C90C28358" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Business Combination, Recognized Identifiable Assets Acquired and Liabilities Assumed, Current Liabilities, Deferred Revenue and Customer Deposits</link:label>
    <link:label id="lab_cgnx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredandLiabilitiesAssumedCurrentLiabilitiesDeferredRevenueandCustomerDeposits_9159D28CDB3F927C6327170C90C28358_documentation_en-US" xlink:label="lab_cgnx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredandLiabilitiesAssumedCurrentLiabilitiesDeferredRevenueandCustomerDeposits_9159D28CDB3F927C6327170C90C28358" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Business Combination, Recognized Identifiable Assets Acquired and Liabilities Assumed, Current Liabilities, Deferred Revenue and Customer Deposits</link:label>
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredandLiabilitiesAssumedCurrentLiabilitiesDeferredRevenueandCustomerDeposits" xlink:label="loc_cgnx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredandLiabilitiesAssumedCurrentLiabilitiesDeferredRevenueandCustomerDeposits_9159D28CDB3F927C6327170C90C28358" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredandLiabilitiesAssumedCurrentLiabilitiesDeferredRevenueandCustomerDeposits_9159D28CDB3F927C6327170C90C28358" xlink:to="lab_cgnx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredandLiabilitiesAssumedCurrentLiabilitiesDeferredRevenueandCustomerDeposits_9159D28CDB3F927C6327170C90C28358" xlink:type="arc" />
    <link:label id="lab_cgnx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredandLiabilitiesAssumedOperatingLeaseLiabilityCurrent_0360B65C7220BCFB745A170C90C22494_negatedTerseLabel_en-US" xlink:label="lab_cgnx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredandLiabilitiesAssumedOperatingLeaseLiabilityCurrent_0360B65C7220BCFB745A170C90C22494" xlink:role="http://www.xbrl.org/2009/role/negatedTerseLabel" xlink:type="resource" xml:lang="en-US">Operating lease liabilities</link:label>
    <link:label id="lab_cgnx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredandLiabilitiesAssumedOperatingLeaseLiabilityCurrent_0360B65C7220BCFB745A170C90C22494_label_en-US" xlink:label="lab_cgnx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredandLiabilitiesAssumedOperatingLeaseLiabilityCurrent_0360B65C7220BCFB745A170C90C22494" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Business Combination, Recognized Identifiable Assets Acquired and Liabilities Assumed, Operating Lease, Liability, Current</link:label>
    <link:label id="lab_cgnx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredandLiabilitiesAssumedOperatingLeaseLiabilityCurrent_0360B65C7220BCFB745A170C90C22494_documentation_en-US" xlink:label="lab_cgnx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredandLiabilitiesAssumedOperatingLeaseLiabilityCurrent_0360B65C7220BCFB745A170C90C22494" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Business Combination, Recognized Identifiable Assets Acquired and Liabilities Assumed, Operating Lease, Liability, Current</link:label>
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredandLiabilitiesAssumedOperatingLeaseLiabilityCurrent" xlink:label="loc_cgnx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredandLiabilitiesAssumedOperatingLeaseLiabilityCurrent_0360B65C7220BCFB745A170C90C22494" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredandLiabilitiesAssumedOperatingLeaseLiabilityCurrent_0360B65C7220BCFB745A170C90C22494" xlink:to="lab_cgnx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredandLiabilitiesAssumedOperatingLeaseLiabilityCurrent_0360B65C7220BCFB745A170C90C22494" xlink:type="arc" />
    <link:label id="lab_cgnx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredandLiabilitiesAssumedOperatingLeaseLiabilityNoncurrent_1CD146FFBF603BFAFD03170C90C360DF_negatedTerseLabel_en-US" xlink:label="lab_cgnx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredandLiabilitiesAssumedOperatingLeaseLiabilityNoncurrent_1CD146FFBF603BFAFD03170C90C360DF" xlink:role="http://www.xbrl.org/2009/role/negatedTerseLabel" xlink:type="resource" xml:lang="en-US">Non-current operating lease liabilities</link:label>
    <link:label id="lab_cgnx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredandLiabilitiesAssumedOperatingLeaseLiabilityNoncurrent_1CD146FFBF603BFAFD03170C90C360DF_label_en-US" xlink:label="lab_cgnx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredandLiabilitiesAssumedOperatingLeaseLiabilityNoncurrent_1CD146FFBF603BFAFD03170C90C360DF" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Business Combination, Recognized Identifiable Assets Acquired and Liabilities Assumed, Operating Lease, Liability, Noncurrent</link:label>
    <link:label id="lab_cgnx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredandLiabilitiesAssumedOperatingLeaseLiabilityNoncurrent_1CD146FFBF603BFAFD03170C90C360DF_documentation_en-US" xlink:label="lab_cgnx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredandLiabilitiesAssumedOperatingLeaseLiabilityNoncurrent_1CD146FFBF603BFAFD03170C90C360DF" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Business Combination, Recognized Identifiable Assets Acquired and Liabilities Assumed, Operating Lease, Liability, Noncurrent</link:label>
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredandLiabilitiesAssumedOperatingLeaseLiabilityNoncurrent" xlink:label="loc_cgnx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredandLiabilitiesAssumedOperatingLeaseLiabilityNoncurrent_1CD146FFBF603BFAFD03170C90C360DF" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredandLiabilitiesAssumedOperatingLeaseLiabilityNoncurrent_1CD146FFBF603BFAFD03170C90C360DF" xlink:to="lab_cgnx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredandLiabilitiesAssumedOperatingLeaseLiabilityNoncurrent_1CD146FFBF603BFAFD03170C90C360DF" xlink:type="arc" />
    <link:label id="lab_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesDeferredRevenue_49D091EBFC3AEFB8D153170C90C337CA_negatedTerseLabel_en-US" xlink:label="lab_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesDeferredRevenue_49D091EBFC3AEFB8D153170C90C337CA" xlink:role="http://www.xbrl.org/2009/role/negatedTerseLabel" xlink:type="resource" xml:lang="en-US">Deferred income tax liabilities</link:label>
    <link:label id="lab_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesDeferredRevenue_49D091EBFC3AEFB8D153170C90C337CA_label_en-US" xlink:label="lab_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesDeferredRevenue_49D091EBFC3AEFB8D153170C90C337CA" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Business Combination, Recognized Identifiable Assets Acquired and Liabilities Assumed, Current Liabilities, Deferred Revenue</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesDeferredRevenue" xlink:label="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesDeferredRevenue_49D091EBFC3AEFB8D153170C90C337CA" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesDeferredRevenue_49D091EBFC3AEFB8D153170C90C337CA" xlink:to="lab_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesDeferredRevenue_49D091EBFC3AEFB8D153170C90C337CA" xlink:type="arc" />
    <link:label id="lab_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNoncurrentLiabilitiesOther_6CD513AA624F670EBEF8170C90C3383A_negatedTerseLabel_en-US" xlink:label="lab_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNoncurrentLiabilitiesOther_6CD513AA624F670EBEF8170C90C3383A" xlink:role="http://www.xbrl.org/2009/role/negatedTerseLabel" xlink:type="resource" xml:lang="en-US">Other liabilities</link:label>
    <link:label id="lab_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNoncurrentLiabilitiesOther_6CD513AA624F670EBEF8170C90C3383A_label_en-US" xlink:label="lab_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNoncurrentLiabilitiesOther_6CD513AA624F670EBEF8170C90C3383A" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Business Combination, Recognized Identifiable Assets Acquired and Liabilities Assumed, Noncurrent Liabilities, Other</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNoncurrentLiabilitiesOther" xlink:label="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNoncurrentLiabilitiesOther_6CD513AA624F670EBEF8170C90C3383A" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNoncurrentLiabilitiesOther_6CD513AA624F670EBEF8170C90C3383A" xlink:to="lab_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNoncurrentLiabilitiesOther_6CD513AA624F670EBEF8170C90C3383A" xlink:type="arc" />
    <link:label id="lab_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibleAssetsOtherThanGoodwill_75A3A6760BFEF7E17B95170C90C39CCC_terseLabel_en-US" xlink:label="lab_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibleAssetsOtherThanGoodwill_75A3A6760BFEF7E17B95170C90C39CCC" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Intangible assets</link:label>
    <link:label id="lab_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibleAssetsOtherThanGoodwill_75A3A6760BFEF7E17B95170C90C39CCC_label_en-US" xlink:label="lab_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibleAssetsOtherThanGoodwill_75A3A6760BFEF7E17B95170C90C39CCC" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Business Combination, Recognized Identifiable Assets Acquired and Liabilities Assumed, Intangible Assets, Other than Goodwill</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibleAssetsOtherThanGoodwill" xlink:label="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibleAssetsOtherThanGoodwill_75A3A6760BFEF7E17B95170C90C39CCC" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibleAssetsOtherThanGoodwill_75A3A6760BFEF7E17B95170C90C39CCC" xlink:to="lab_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibleAssetsOtherThanGoodwill_75A3A6760BFEF7E17B95170C90C39CCC" xlink:type="arc" />
    <link:label id="lab_us-gaap_StatementTable_4CC0097DD62AB75821B4170C964077D0_terseLabel_en-US" xlink:label="lab_us-gaap_StatementTable_4CC0097DD62AB75821B4170C964077D0" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Statement [Table]</link:label>
    <link:label id="lab_us-gaap_StatementTable_4CC0097DD62AB75821B4170C964077D0_label_en-US" xlink:label="lab_us-gaap_StatementTable_4CC0097DD62AB75821B4170C964077D0" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Statement [Table]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_StatementTable" xlink:label="loc_us-gaap_StatementTable_4CC0097DD62AB75821B4170C964077D0" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_StatementTable_4CC0097DD62AB75821B4170C964077D0" xlink:to="lab_us-gaap_StatementTable_4CC0097DD62AB75821B4170C964077D0" xlink:type="arc" />
    <link:label id="lab_us-gaap_CommonStockMember_4EB14B57EAA96C3CD3E0170C9642C903_terseLabel_en-US" xlink:label="lab_us-gaap_CommonStockMember_4EB14B57EAA96C3CD3E0170C9642C903" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Common Stock [Member]</link:label>
    <link:label id="lab_us-gaap_CommonStockMember_4EB14B57EAA96C3CD3E0170C9642C903_label_en-US" xlink:label="lab_us-gaap_CommonStockMember_4EB14B57EAA96C3CD3E0170C9642C903" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Common Stock [Member]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_CommonStockMember" xlink:label="loc_us-gaap_CommonStockMember_4EB14B57EAA96C3CD3E0170C9642C903" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_CommonStockMember_4EB14B57EAA96C3CD3E0170C9642C903" xlink:to="lab_us-gaap_CommonStockMember_4EB14B57EAA96C3CD3E0170C9642C903" xlink:type="arc" />
    <link:label id="lab_us-gaap_AdditionalPaidInCapitalMember_4E0A7027878BC958F302170C9642CF85_terseLabel_en-US" xlink:label="lab_us-gaap_AdditionalPaidInCapitalMember_4E0A7027878BC958F302170C9642CF85" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Additional Paid-in Capital [Member]</link:label>
    <link:label id="lab_us-gaap_AdditionalPaidInCapitalMember_4E0A7027878BC958F302170C9642CF85_label_en-US" xlink:label="lab_us-gaap_AdditionalPaidInCapitalMember_4E0A7027878BC958F302170C9642CF85" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Additional Paid-in Capital [Member]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_AdditionalPaidInCapitalMember" xlink:label="loc_us-gaap_AdditionalPaidInCapitalMember_4E0A7027878BC958F302170C9642CF85" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AdditionalPaidInCapitalMember_4E0A7027878BC958F302170C9642CF85" xlink:to="lab_us-gaap_AdditionalPaidInCapitalMember_4E0A7027878BC958F302170C9642CF85" xlink:type="arc" />
    <link:label id="lab_us-gaap_RetainedEarningsMember_5680CD6B2C8E61E31C95170C9642FB36_terseLabel_en-US" xlink:label="lab_us-gaap_RetainedEarningsMember_5680CD6B2C8E61E31C95170C9642FB36" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Retained Earnings [Member]</link:label>
    <link:label id="lab_us-gaap_RetainedEarningsMember_5680CD6B2C8E61E31C95170C9642FB36_label_en-US" xlink:label="lab_us-gaap_RetainedEarningsMember_5680CD6B2C8E61E31C95170C9642FB36" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Retained Earnings [Member]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_RetainedEarningsMember" xlink:label="loc_us-gaap_RetainedEarningsMember_5680CD6B2C8E61E31C95170C9642FB36" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_RetainedEarningsMember_5680CD6B2C8E61E31C95170C9642FB36" xlink:to="lab_us-gaap_RetainedEarningsMember_5680CD6B2C8E61E31C95170C9642FB36" xlink:type="arc" />
    <link:label id="lab_us-gaap_AccumulatedOtherComprehensiveIncomeMember_02842A68B654B2A0BD59170C96420656_terseLabel_en-US" xlink:label="lab_us-gaap_AccumulatedOtherComprehensiveIncomeMember_02842A68B654B2A0BD59170C96420656" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Accumulated Other Comprehensive Loss [Member]</link:label>
    <link:label id="lab_us-gaap_AccumulatedOtherComprehensiveIncomeMember_02842A68B654B2A0BD59170C96420656_label_en-US" xlink:label="lab_us-gaap_AccumulatedOtherComprehensiveIncomeMember_02842A68B654B2A0BD59170C96420656" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">AOCI Attributable to Parent [Member]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_AccumulatedOtherComprehensiveIncomeMember" xlink:label="loc_us-gaap_AccumulatedOtherComprehensiveIncomeMember_02842A68B654B2A0BD59170C96420656" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AccumulatedOtherComprehensiveIncomeMember_02842A68B654B2A0BD59170C96420656" xlink:to="lab_us-gaap_AccumulatedOtherComprehensiveIncomeMember_02842A68B654B2A0BD59170C96420656" xlink:type="arc" />
    <link:label id="lab_us-gaap_StatementLineItems_556514CCA9BC33646401170C9643654B_terseLabel_en-US" xlink:label="lab_us-gaap_StatementLineItems_556514CCA9BC33646401170C9643654B" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Statement [Line Items]</link:label>
    <link:label id="lab_us-gaap_StatementLineItems_556514CCA9BC33646401170C9643654B_label_en-US" xlink:label="lab_us-gaap_StatementLineItems_556514CCA9BC33646401170C9643654B" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Statement [Line Items]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_StatementLineItems" xlink:label="loc_us-gaap_StatementLineItems_556514CCA9BC33646401170C9643654B" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_StatementLineItems_556514CCA9BC33646401170C9643654B" xlink:to="lab_us-gaap_StatementLineItems_556514CCA9BC33646401170C9643654B" xlink:type="arc" />
    <link:label id="lab_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward_362F713FBD359FC16D48170C9643E2C2_terseLabel_en-US" xlink:label="lab_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward_362F713FBD359FC16D48170C9643E2C2" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Increase (Decrease) in Stockholders' Equity [Roll Forward]</link:label>
    <link:label id="lab_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward_362F713FBD359FC16D48170C9643E2C2_label_en-US" xlink:label="lab_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward_362F713FBD359FC16D48170C9643E2C2" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Increase (Decrease) in Stockholders' Equity [Roll Forward]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_IncreaseDecreaseInStockholdersEquityRollForward" xlink:label="loc_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward_362F713FBD359FC16D48170C9643E2C2" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward_362F713FBD359FC16D48170C9643E2C2" xlink:to="lab_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward_362F713FBD359FC16D48170C9643E2C2" xlink:type="arc" />
    <link:label id="lab_us-gaap_StockholdersEquity_CB50070A62A6CC3733A8170C9643E026_periodStartLabel_en-US" xlink:label="lab_us-gaap_StockholdersEquity_CB50070A62A6CC3733A8170C9643E026" xlink:role="http://www.xbrl.org/2003/role/periodStartLabel" xlink:type="resource" xml:lang="en-US">Beginning Balance</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_StockholdersEquity" xlink:label="loc_us-gaap_StockholdersEquity_CB50070A62A6CC3733A8170C9643E026" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_StockholdersEquity_CB50070A62A6CC3733A8170C9643E026" xlink:to="lab_us-gaap_StockholdersEquity_CB50070A62A6CC3733A8170C9643E026" xlink:type="arc" />
    <link:label id="lab_us-gaap_CommonStockSharesIssued_46CEFB82D515785EF0DE170C96445F3B_periodStartLabel_en-US" xlink:label="lab_us-gaap_CommonStockSharesIssued_46CEFB82D515785EF0DE170C96445F3B" xlink:role="http://www.xbrl.org/2003/role/periodStartLabel" xlink:type="resource" xml:lang="en-US">Beginning Balance, shares</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_CommonStockSharesIssued" xlink:label="loc_us-gaap_CommonStockSharesIssued_46CEFB82D515785EF0DE170C96445F3B" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_CommonStockSharesIssued_46CEFB82D515785EF0DE170C96445F3B" xlink:to="lab_us-gaap_CommonStockSharesIssued_46CEFB82D515785EF0DE170C96445F3B" xlink:type="arc" />
    <link:label id="lab_us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised_6DF07E7D346E1FE4BA63170C9644ED1B_terseLabel_en-US" xlink:label="lab_us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised_6DF07E7D346E1FE4BA63170C9644ED1B" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Issuance of common stock under stock option plans</link:label>
    <link:label id="lab_us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised_6DF07E7D346E1FE4BA63170C9644ED1B_label_en-US" xlink:label="lab_us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised_6DF07E7D346E1FE4BA63170C9644ED1B" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Stock Issued During Period, Value, Stock Options Exercised</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised" xlink:label="loc_us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised_6DF07E7D346E1FE4BA63170C9644ED1B" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised_6DF07E7D346E1FE4BA63170C9644ED1B" xlink:to="lab_us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised_6DF07E7D346E1FE4BA63170C9644ED1B" xlink:type="arc" />
    <link:label id="lab_us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised_C3F8EEB34C037647686F170C9644FD38_terseLabel_en-US" xlink:label="lab_us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised_C3F8EEB34C037647686F170C9644FD38" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Issuance of common stock under stock option plans, shares</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised" xlink:label="loc_us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised_C3F8EEB34C037647686F170C9644FD38" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised_C3F8EEB34C037647686F170C9644FD38" xlink:to="lab_us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised_C3F8EEB34C037647686F170C9644FD38" xlink:type="arc" />
    <link:label id="lab_us-gaap_StockRepurchasedDuringPeriodValue_3D568F611AA37F9E0DAC170C96441879_negatedLabel_en-US" xlink:label="lab_us-gaap_StockRepurchasedDuringPeriodValue_3D568F611AA37F9E0DAC170C96441879" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:type="resource" xml:lang="en-US">Repurchase of common stock</link:label>
    <link:label id="lab_us-gaap_StockRepurchasedDuringPeriodValue_3D568F611AA37F9E0DAC170C96441879_label_en-US" xlink:label="lab_us-gaap_StockRepurchasedDuringPeriodValue_3D568F611AA37F9E0DAC170C96441879" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Stock Repurchased During Period, Value</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_StockRepurchasedDuringPeriodValue" xlink:label="loc_us-gaap_StockRepurchasedDuringPeriodValue_3D568F611AA37F9E0DAC170C96441879" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_StockRepurchasedDuringPeriodValue_3D568F611AA37F9E0DAC170C96441879" xlink:to="lab_us-gaap_StockRepurchasedDuringPeriodValue_3D568F611AA37F9E0DAC170C96441879" xlink:type="arc" />
    <link:label id="lab_us-gaap_StockRepurchasedDuringPeriodShares_F42CBF940C76AEAA31C9170C964451F2_negatedTerseLabel_en-US" xlink:label="lab_us-gaap_StockRepurchasedDuringPeriodShares_F42CBF940C76AEAA31C9170C964451F2" xlink:role="http://www.xbrl.org/2009/role/negatedTerseLabel" xlink:type="resource" xml:lang="en-US">Repurchase of common stock, shares</link:label>
    <link:label id="lab_us-gaap_StockRepurchasedDuringPeriodShares_F42CBF940C76AEAA31C9170C964451F2_label_en-US" xlink:label="lab_us-gaap_StockRepurchasedDuringPeriodShares_F42CBF940C76AEAA31C9170C964451F2" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Stock Repurchased During Period, Shares</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_StockRepurchasedDuringPeriodShares" xlink:label="loc_us-gaap_StockRepurchasedDuringPeriodShares_F42CBF940C76AEAA31C9170C964451F2" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_StockRepurchasedDuringPeriodShares_F42CBF940C76AEAA31C9170C964451F2" xlink:to="lab_us-gaap_StockRepurchasedDuringPeriodShares_F42CBF940C76AEAA31C9170C964451F2" xlink:type="arc" />
    <link:label id="lab_us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue_229640086C29D930DE09170C96451EF5_terseLabel_en-US" xlink:label="lab_us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue_229640086C29D930DE09170C96451EF5" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Stock-based compensation expense</link:label>
    <link:label id="lab_us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue_229640086C29D930DE09170C96451EF5_label_en-US" xlink:label="lab_us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue_229640086C29D930DE09170C96451EF5" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Adjustments to Additional Paid in Capital, Share-based Compensation, Requisite Service Period Recognition</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue" xlink:label="loc_us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue_229640086C29D930DE09170C96451EF5" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue_229640086C29D930DE09170C96451EF5" xlink:to="lab_us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue_229640086C29D930DE09170C96451EF5" xlink:type="arc" />
    <link:label id="lab_us-gaap_DividendsCommonStockCash_D8C3A547A4FD04E43588170C964598D0_negatedTerseLabel_en-US" xlink:label="lab_us-gaap_DividendsCommonStockCash_D8C3A547A4FD04E43588170C964598D0" xlink:role="http://www.xbrl.org/2009/role/negatedTerseLabel" xlink:type="resource" xml:lang="en-US">Payment of dividends</link:label>
    <link:label id="lab_us-gaap_DividendsCommonStockCash_D8C3A547A4FD04E43588170C964598D0_label_en-US" xlink:label="lab_us-gaap_DividendsCommonStockCash_D8C3A547A4FD04E43588170C964598D0" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Dividends, Common Stock, Cash</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_DividendsCommonStockCash" xlink:label="loc_us-gaap_DividendsCommonStockCash_D8C3A547A4FD04E43588170C964598D0" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DividendsCommonStockCash_D8C3A547A4FD04E43588170C964598D0" xlink:to="lab_us-gaap_DividendsCommonStockCash_D8C3A547A4FD04E43588170C964598D0" xlink:type="arc" />
    <link:label id="lab_us-gaap_CumulativeEffectOfNewAccountingPrincipleInPeriodOfAdoption_9EAFC273976AC21046C6170C96456A45_terseLabel_en-US" xlink:label="lab_us-gaap_CumulativeEffectOfNewAccountingPrincipleInPeriodOfAdoption_9EAFC273976AC21046C6170C96456A45" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Adjustment as a result of the adoption of ASU 2016-06 Income Taxes - Intra-Entity Transfers Other than Inventory (Note 18)</link:label>
    <link:label id="lab_us-gaap_CumulativeEffectOfNewAccountingPrincipleInPeriodOfAdoption_9EAFC273976AC21046C6170C96456A45_label_en-US" xlink:label="lab_us-gaap_CumulativeEffectOfNewAccountingPrincipleInPeriodOfAdoption_9EAFC273976AC21046C6170C96456A45" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Cumulative Effect of New Accounting Principle in Period of Adoption</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_CumulativeEffectOfNewAccountingPrincipleInPeriodOfAdoption" xlink:label="loc_us-gaap_CumulativeEffectOfNewAccountingPrincipleInPeriodOfAdoption_9EAFC273976AC21046C6170C96456A45" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_CumulativeEffectOfNewAccountingPrincipleInPeriodOfAdoption_9EAFC273976AC21046C6170C96456A45" xlink:to="lab_us-gaap_CumulativeEffectOfNewAccountingPrincipleInPeriodOfAdoption_9EAFC273976AC21046C6170C96456A45" xlink:type="arc" />
    <link:label id="lab_us-gaap_OtherComprehensiveIncomeUnrealizedGainLossOnDerivativesArisingDuringPeriodNetOfTax_A0C77D4E5B3D54FA9C14170C96466B25_verboseLabel_en-US" xlink:label="lab_us-gaap_OtherComprehensiveIncomeUnrealizedGainLossOnDerivativesArisingDuringPeriodNetOfTax_A0C77D4E5B3D54FA9C14170C96466B25" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xml:lang="en-US">Net unrealized gain (loss) on cash flow hedges, net of tax</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_OtherComprehensiveIncomeUnrealizedGainLossOnDerivativesArisingDuringPeriodNetOfTax" xlink:label="loc_us-gaap_OtherComprehensiveIncomeUnrealizedGainLossOnDerivativesArisingDuringPeriodNetOfTax_A0C77D4E5B3D54FA9C14170C96466B25" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_OtherComprehensiveIncomeUnrealizedGainLossOnDerivativesArisingDuringPeriodNetOfTax_A0C77D4E5B3D54FA9C14170C96466B25" xlink:to="lab_us-gaap_OtherComprehensiveIncomeUnrealizedGainLossOnDerivativesArisingDuringPeriodNetOfTax_A0C77D4E5B3D54FA9C14170C96466B25" xlink:type="arc" />
    <link:label id="lab_us-gaap_OtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax_4E2706E62BD7F3443710170C964691AE_verboseLabel_en-US" xlink:label="lab_us-gaap_OtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax_4E2706E62BD7F3443710170C964691AE" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xml:lang="en-US">Net unrealized gain (loss) on available-for-sale investments, net of tax</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_OtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax" xlink:label="loc_us-gaap_OtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax_4E2706E62BD7F3443710170C964691AE" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_OtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax_4E2706E62BD7F3443710170C964691AE" xlink:to="lab_us-gaap_OtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax_4E2706E62BD7F3443710170C964691AE" xlink:type="arc" />
    <link:label id="lab_us-gaap_OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax_75F4B0619BE1F2F65BEC170C9646DDC5_negatedTerseLabel_en-US" xlink:label="lab_us-gaap_OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax_75F4B0619BE1F2F65BEC170C9646DDC5" xlink:role="http://www.xbrl.org/2009/role/negatedTerseLabel" xlink:type="resource" xml:lang="en-US">Reclassification of net realized (gain) loss on the sale of available-for-sale investments</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax" xlink:label="loc_us-gaap_OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax_75F4B0619BE1F2F65BEC170C9646DDC5" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax_75F4B0619BE1F2F65BEC170C9646DDC5" xlink:to="lab_us-gaap_OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax_75F4B0619BE1F2F65BEC170C9646DDC5" xlink:type="arc" />
    <link:label id="lab_us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax_D27F3FC032DAA7425FBA170C96463D40_verboseLabel_en-US" xlink:label="lab_us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax_D27F3FC032DAA7425FBA170C96463D40" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xml:lang="en-US">Foreign currency translation adjustments, net of tax</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax" xlink:label="loc_us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax_D27F3FC032DAA7425FBA170C96463D40" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax_D27F3FC032DAA7425FBA170C96463D40" xlink:to="lab_us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax_D27F3FC032DAA7425FBA170C96463D40" xlink:type="arc" />
    <link:label id="lab_us-gaap_StockholdersEquity_0A65B9D63AEE5AEEDF3E170C9646D841_periodEndLabel_en-US" xlink:label="lab_us-gaap_StockholdersEquity_0A65B9D63AEE5AEEDF3E170C9646D841" xlink:role="http://www.xbrl.org/2003/role/periodEndLabel" xlink:type="resource" xml:lang="en-US">Balance</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_StockholdersEquity" xlink:label="loc_us-gaap_StockholdersEquity_0A65B9D63AEE5AEEDF3E170C9646D841" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_StockholdersEquity_0A65B9D63AEE5AEEDF3E170C9646D841" xlink:to="lab_us-gaap_StockholdersEquity_0A65B9D63AEE5AEEDF3E170C9646D841" xlink:type="arc" />
    <link:label id="lab_us-gaap_CommonStockSharesIssued_8549C8997C40C284A188170C9647E2A4_periodEndLabel_en-US" xlink:label="lab_us-gaap_CommonStockSharesIssued_8549C8997C40C284A188170C9647E2A4" xlink:role="http://www.xbrl.org/2003/role/periodEndLabel" xlink:type="resource" xml:lang="en-US">Balance, shares</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_CommonStockSharesIssued" xlink:label="loc_us-gaap_CommonStockSharesIssued_8549C8997C40C284A188170C9647E2A4" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_CommonStockSharesIssued_8549C8997C40C284A188170C9647E2A4" xlink:to="lab_us-gaap_CommonStockSharesIssued_8549C8997C40C284A188170C9647E2A4" xlink:type="arc" />
    <link:label id="lab_us-gaap_InventoryDisclosureTextBlock_A88A2868A0DCFDFF62438095E8BF6684_verboseLabel_en-US" xlink:label="lab_us-gaap_InventoryDisclosureTextBlock_A88A2868A0DCFDFF62438095E8BF6684" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xml:lang="en-US">Inventories</link:label>
    <link:label id="lab_us-gaap_InventoryDisclosureTextBlock_A88A2868A0DCFDFF62438095E8BF6684_label_en-US" xlink:label="lab_us-gaap_InventoryDisclosureTextBlock_A88A2868A0DCFDFF62438095E8BF6684" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Inventory Disclosure [Text Block]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_InventoryDisclosureTextBlock" xlink:label="loc_us-gaap_InventoryDisclosureTextBlock_A88A2868A0DCFDFF62438095E8BF6684" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_InventoryDisclosureTextBlock_A88A2868A0DCFDFF62438095E8BF6684" xlink:to="lab_us-gaap_InventoryDisclosureTextBlock_A88A2868A0DCFDFF62438095E8BF6684" xlink:type="arc" />
    <link:label id="lab_us-gaap_CommitmentsAndContingenciesDisclosureTextBlock_9BBF8F3563B6C3DB80D58095E6BDEF7F_terseLabel_en-US" xlink:label="lab_us-gaap_CommitmentsAndContingenciesDisclosureTextBlock_9BBF8F3563B6C3DB80D58095E6BDEF7F" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Commitments and Contingencies</link:label>
    <link:label id="lab_us-gaap_CommitmentsAndContingenciesDisclosureTextBlock_9BBF8F3563B6C3DB80D58095E6BDEF7F_label_en-US" xlink:label="lab_us-gaap_CommitmentsAndContingenciesDisclosureTextBlock_9BBF8F3563B6C3DB80D58095E6BDEF7F" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Commitments and Contingencies Disclosure [Text Block]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_CommitmentsAndContingenciesDisclosureTextBlock" xlink:label="loc_us-gaap_CommitmentsAndContingenciesDisclosureTextBlock_9BBF8F3563B6C3DB80D58095E6BDEF7F" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_CommitmentsAndContingenciesDisclosureTextBlock_9BBF8F3563B6C3DB80D58095E6BDEF7F" xlink:to="lab_us-gaap_CommitmentsAndContingenciesDisclosureTextBlock_9BBF8F3563B6C3DB80D58095E6BDEF7F" xlink:type="arc" />
    <link:label id="lab_us-gaap_SegmentReportingDisclosureTextBlock_7226FB01C4AB24B9E4A08095E8D2FF0A_terseLabel_en-US" xlink:label="lab_us-gaap_SegmentReportingDisclosureTextBlock_7226FB01C4AB24B9E4A08095E8D2FF0A" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Segment and Geographic Information</link:label>
    <link:label id="lab_us-gaap_SegmentReportingDisclosureTextBlock_7226FB01C4AB24B9E4A08095E8D2FF0A_label_en-US" xlink:label="lab_us-gaap_SegmentReportingDisclosureTextBlock_7226FB01C4AB24B9E4A08095E8D2FF0A" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Segment Reporting Disclosure [Text Block]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_SegmentReportingDisclosureTextBlock" xlink:label="loc_us-gaap_SegmentReportingDisclosureTextBlock_7226FB01C4AB24B9E4A08095E8D2FF0A" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_SegmentReportingDisclosureTextBlock_7226FB01C4AB24B9E4A08095E8D2FF0A" xlink:to="lab_us-gaap_SegmentReportingDisclosureTextBlock_7226FB01C4AB24B9E4A08095E8D2FF0A" xlink:type="arc" />
    <link:label id="lab_us-gaap_EarningsPerShareTextBlock_3D40DDDA8706DC8C5C028095E61F7569_terseLabel_en-US" xlink:label="lab_us-gaap_EarningsPerShareTextBlock_3D40DDDA8706DC8C5C028095E61F7569" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Weighted Average Shares</link:label>
    <link:label id="lab_us-gaap_EarningsPerShareTextBlock_3D40DDDA8706DC8C5C028095E61F7569_label_en-US" xlink:label="lab_us-gaap_EarningsPerShareTextBlock_3D40DDDA8706DC8C5C028095E61F7569" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Earnings Per Share [Text Block]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_EarningsPerShareTextBlock" xlink:label="loc_us-gaap_EarningsPerShareTextBlock_3D40DDDA8706DC8C5C028095E61F7569" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_EarningsPerShareTextBlock_3D40DDDA8706DC8C5C028095E61F7569" xlink:to="lab_us-gaap_EarningsPerShareTextBlock_3D40DDDA8706DC8C5C028095E61F7569" xlink:type="arc" />
    <link:label id="lab_us-gaap_ScheduleOfInventoryCurrentTableTextBlock_494303C701110FA250CE8095E8963C95_terseLabel_en-US" xlink:label="lab_us-gaap_ScheduleOfInventoryCurrentTableTextBlock_494303C701110FA250CE8095E8963C95" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Inventories</link:label>
    <link:label id="lab_us-gaap_ScheduleOfInventoryCurrentTableTextBlock_494303C701110FA250CE8095E8963C95_label_en-US" xlink:label="lab_us-gaap_ScheduleOfInventoryCurrentTableTextBlock_494303C701110FA250CE8095E8963C95" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Schedule of Inventory, Current [Table Text Block]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ScheduleOfInventoryCurrentTableTextBlock" xlink:label="loc_us-gaap_ScheduleOfInventoryCurrentTableTextBlock_494303C701110FA250CE8095E8963C95" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ScheduleOfInventoryCurrentTableTextBlock_494303C701110FA250CE8095E8963C95" xlink:to="lab_us-gaap_ScheduleOfInventoryCurrentTableTextBlock_494303C701110FA250CE8095E8963C95" xlink:type="arc" />
    <link:label id="lab_cgnx_ComponentsOfCashCashEquivalentsAndInvestmentsTableTableTextBlock_AAD0C642C5E115B95A988095E5DCD5A0_terseLabel_en-US" xlink:label="lab_cgnx_ComponentsOfCashCashEquivalentsAndInvestmentsTableTableTextBlock_AAD0C642C5E115B95A988095E5DCD5A0" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Components of Cash, Cash Equivalents and Investments</link:label>
    <link:label id="lab_cgnx_ComponentsOfCashCashEquivalentsAndInvestmentsTableTableTextBlock_AAD0C642C5E115B95A988095E5DCD5A0_label_en-US" xlink:label="lab_cgnx_ComponentsOfCashCashEquivalentsAndInvestmentsTableTableTextBlock_AAD0C642C5E115B95A988095E5DCD5A0" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Components Of Cash Cash Equivalents And Investments Table [Table Text Block]</link:label>
    <link:label id="lab_cgnx_ComponentsOfCashCashEquivalentsAndInvestmentsTableTableTextBlock_AAD0C642C5E115B95A988095E5DCD5A0_documentation_en-US" xlink:label="lab_cgnx_ComponentsOfCashCashEquivalentsAndInvestmentsTableTableTextBlock_AAD0C642C5E115B95A988095E5DCD5A0" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Components of cash cash equivalents and investments.</link:label>
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_ComponentsOfCashCashEquivalentsAndInvestmentsTableTableTextBlock" xlink:label="loc_cgnx_ComponentsOfCashCashEquivalentsAndInvestmentsTableTableTextBlock_AAD0C642C5E115B95A988095E5DCD5A0" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_ComponentsOfCashCashEquivalentsAndInvestmentsTableTableTextBlock_AAD0C642C5E115B95A988095E5DCD5A0" xlink:to="lab_cgnx_ComponentsOfCashCashEquivalentsAndInvestmentsTableTableTextBlock_AAD0C642C5E115B95A988095E5DCD5A0" xlink:type="arc" />
    <link:label id="lab_us-gaap_ScheduleOfAvailableForSaleSecuritiesReconciliationTableTextBlock_2F35A5E5AA4CE117F3638095E5DC6DBE_terseLabel_en-US" xlink:label="lab_us-gaap_ScheduleOfAvailableForSaleSecuritiesReconciliationTableTextBlock_2F35A5E5AA4CE117F3638095E5DC6DBE" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Summary of Available-for-Sale Investments</link:label>
    <link:label id="lab_us-gaap_ScheduleOfAvailableForSaleSecuritiesReconciliationTableTextBlock_2F35A5E5AA4CE117F3638095E5DC6DBE_label_en-US" xlink:label="lab_us-gaap_ScheduleOfAvailableForSaleSecuritiesReconciliationTableTextBlock_2F35A5E5AA4CE117F3638095E5DC6DBE" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Schedule of Available-for-sale Securities Reconciliation [Table Text Block]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ScheduleOfAvailableForSaleSecuritiesReconciliationTableTextBlock" xlink:label="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesReconciliationTableTextBlock_2F35A5E5AA4CE117F3638095E5DC6DBE" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesReconciliationTableTextBlock_2F35A5E5AA4CE117F3638095E5DC6DBE" xlink:to="lab_us-gaap_ScheduleOfAvailableForSaleSecuritiesReconciliationTableTextBlock_2F35A5E5AA4CE117F3638095E5DC6DBE" xlink:type="arc" />
    <link:label id="lab_us-gaap_ScheduleOfUnrealizedLossOnInvestmentsTableTextBlock_DFD30C2EB1BE150382F18095E5DCA9C2_terseLabel_en-US" xlink:label="lab_us-gaap_ScheduleOfUnrealizedLossOnInvestmentsTableTextBlock_DFD30C2EB1BE150382F18095E5DCA9C2" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Gross Unrealized Losses and Fair Value for Available-for-Sale Investments</link:label>
    <link:label id="lab_us-gaap_ScheduleOfUnrealizedLossOnInvestmentsTableTextBlock_DFD30C2EB1BE150382F18095E5DCA9C2_label_en-US" xlink:label="lab_us-gaap_ScheduleOfUnrealizedLossOnInvestmentsTableTextBlock_DFD30C2EB1BE150382F18095E5DCA9C2" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Schedule of Unrealized Loss on Investments [Table Text Block]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ScheduleOfUnrealizedLossOnInvestmentsTableTextBlock" xlink:label="loc_us-gaap_ScheduleOfUnrealizedLossOnInvestmentsTableTextBlock_DFD30C2EB1BE150382F18095E5DCA9C2" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ScheduleOfUnrealizedLossOnInvestmentsTableTextBlock_DFD30C2EB1BE150382F18095E5DCA9C2" xlink:to="lab_us-gaap_ScheduleOfUnrealizedLossOnInvestmentsTableTextBlock_DFD30C2EB1BE150382F18095E5DCA9C2" xlink:type="arc" />
    <link:label id="lab_us-gaap_InvestmentsClassifiedByContractualMaturityDateTableTextBlock_9462466E918029BE01B78095E5DC0C96_terseLabel_en-US" xlink:label="lab_us-gaap_InvestmentsClassifiedByContractualMaturityDateTableTextBlock_9462466E918029BE01B78095E5DC0C96" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Effective Maturity Dates of Available-for-Sale Investments</link:label>
    <link:label id="lab_us-gaap_InvestmentsClassifiedByContractualMaturityDateTableTextBlock_9462466E918029BE01B78095E5DC0C96_label_en-US" xlink:label="lab_us-gaap_InvestmentsClassifiedByContractualMaturityDateTableTextBlock_9462466E918029BE01B78095E5DC0C96" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Investments Classified by Contractual Maturity Date [Table Text Block]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_InvestmentsClassifiedByContractualMaturityDateTableTextBlock" xlink:label="loc_us-gaap_InvestmentsClassifiedByContractualMaturityDateTableTextBlock_9462466E918029BE01B78095E5DC0C96" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_InvestmentsClassifiedByContractualMaturityDateTableTextBlock_9462466E918029BE01B78095E5DC0C96" xlink:to="lab_us-gaap_InvestmentsClassifiedByContractualMaturityDateTableTextBlock_9462466E918029BE01B78095E5DC0C96" xlink:type="arc" />
    <link:label id="lab_us-gaap_OtherComprehensiveIncomeLossDerivativesQualifyingAsHedgesTax_727F9AB2380C2E9A33B68095E606E456_terseLabel_en-US" xlink:label="lab_us-gaap_OtherComprehensiveIncomeLossDerivativesQualifyingAsHedgesTax_727F9AB2380C2E9A33B68095E606E456" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Tax effect of unrealized gain on cash flow hedges</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_OtherComprehensiveIncomeLossDerivativesQualifyingAsHedgesTax" xlink:label="loc_us-gaap_OtherComprehensiveIncomeLossDerivativesQualifyingAsHedgesTax_727F9AB2380C2E9A33B68095E606E456" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_OtherComprehensiveIncomeLossDerivativesQualifyingAsHedgesTax_727F9AB2380C2E9A33B68095E606E456" xlink:to="lab_us-gaap_OtherComprehensiveIncomeLossDerivativesQualifyingAsHedgesTax_727F9AB2380C2E9A33B68095E606E456" xlink:type="arc" />
    <link:label id="lab_us-gaap_OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodTax_4FF4BE3289B807DF7BAF8095E606882A_terseLabel_en-US" xlink:label="lab_us-gaap_OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodTax_4FF4BE3289B807DF7BAF8095E606882A" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Tax effect of unrealized gain (loss) on available-for-sale investments</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodTax" xlink:label="loc_us-gaap_OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodTax_4FF4BE3289B807DF7BAF8095E606882A" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodTax_4FF4BE3289B807DF7BAF8095E606882A" xlink:to="lab_us-gaap_OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodTax_4FF4BE3289B807DF7BAF8095E606882A" xlink:type="arc" />
    <link:label id="lab_us-gaap_OtherComprehensiveIncomeForeignCurrencyTranslationGainLossArisingDuringPeriodTax_89A8E0A2DF8720DEDEE68095E60655C1_terseLabel_en-US" xlink:label="lab_us-gaap_OtherComprehensiveIncomeForeignCurrencyTranslationGainLossArisingDuringPeriodTax_89A8E0A2DF8720DEDEE68095E60655C1" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Tax effect of foreign currency translation adjustment</link:label>
    <link:label id="lab_us-gaap_OtherComprehensiveIncomeForeignCurrencyTranslationGainLossArisingDuringPeriodTax_89A8E0A2DF8720DEDEE68095E60655C1_label_en-US" xlink:label="lab_us-gaap_OtherComprehensiveIncomeForeignCurrencyTranslationGainLossArisingDuringPeriodTax_89A8E0A2DF8720DEDEE68095E60655C1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Other Comprehensive Income (Loss), Foreign Currency Translation Gain (Loss) Arising During Period, Tax</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_OtherComprehensiveIncomeForeignCurrencyTranslationGainLossArisingDuringPeriodTax" xlink:label="loc_us-gaap_OtherComprehensiveIncomeForeignCurrencyTranslationGainLossArisingDuringPeriodTax_89A8E0A2DF8720DEDEE68095E60655C1" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_OtherComprehensiveIncomeForeignCurrencyTranslationGainLossArisingDuringPeriodTax_89A8E0A2DF8720DEDEE68095E60655C1" xlink:to="lab_us-gaap_OtherComprehensiveIncomeForeignCurrencyTranslationGainLossArisingDuringPeriodTax_89A8E0A2DF8720DEDEE68095E60655C1" xlink:type="arc" />
    <link:label id="lab_us-gaap_IncomeTaxDisclosureTextBlock_D0B108B3DAD641F229E78095E70B04C5_terseLabel_en-US" xlink:label="lab_us-gaap_IncomeTaxDisclosureTextBlock_D0B108B3DAD641F229E78095E70B04C5" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Taxes</link:label>
    <link:label id="lab_us-gaap_IncomeTaxDisclosureTextBlock_D0B108B3DAD641F229E78095E70B04C5_label_en-US" xlink:label="lab_us-gaap_IncomeTaxDisclosureTextBlock_D0B108B3DAD641F229E78095E70B04C5" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Income Tax Disclosure [Text Block]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_IncomeTaxDisclosureTextBlock" xlink:label="loc_us-gaap_IncomeTaxDisclosureTextBlock_D0B108B3DAD641F229E78095E70B04C5" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_IncomeTaxDisclosureTextBlock_D0B108B3DAD641F229E78095E70B04C5" xlink:to="lab_us-gaap_IncomeTaxDisclosureTextBlock_D0B108B3DAD641F229E78095E70B04C5" xlink:type="arc" />
    <link:label id="lab_us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationTable_23F6596F03A00E8BCD97F3C9002C3ACA_terseLabel_en-US" xlink:label="lab_us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationTable_23F6596F03A00E8BCD97F3C9002C3ACA" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Fair Value, Liabilities Measured on Recurring Basis, Unobservable Input Reconciliation [Table]</link:label>
    <link:label id="lab_us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationTable_23F6596F03A00E8BCD97F3C9002C3ACA_label_en-US" xlink:label="lab_us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationTable_23F6596F03A00E8BCD97F3C9002C3ACA" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Fair Value, Liabilities Measured on Recurring Basis, Unobservable Input Reconciliation [Table]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationTable" xlink:label="loc_us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationTable_23F6596F03A00E8BCD97F3C9002C3ACA" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationTable_23F6596F03A00E8BCD97F3C9002C3ACA" xlink:to="lab_us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationTable_23F6596F03A00E8BCD97F3C9002C3ACA" xlink:type="arc" />
    <link:label id="lab_cgnx_ManateeWorksInc.Member_4DC562BA84E155663EA9F3C9002DDC3B_terseLabel_en-US" xlink:label="lab_cgnx_ManateeWorksInc.Member_4DC562BA84E155663EA9F3C9002DDC3B" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Manatee Works, Inc.</link:label>
    <link:label id="lab_cgnx_ManateeWorksInc.Member_4DC562BA84E155663EA9F3C9002DDC3B_label_en-US" xlink:label="lab_cgnx_ManateeWorksInc.Member_4DC562BA84E155663EA9F3C9002DDC3B" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Manatee Works, Inc. [Member]</link:label>
    <link:label id="lab_cgnx_ManateeWorksInc.Member_4DC562BA84E155663EA9F3C9002DDC3B_documentation_en-US" xlink:label="lab_cgnx_ManateeWorksInc.Member_4DC562BA84E155663EA9F3C9002DDC3B" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Manatee Works, Inc. [Member]</link:label>
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_ManateeWorksInc.Member" xlink:label="loc_cgnx_ManateeWorksInc.Member_4DC562BA84E155663EA9F3C9002DDC3B" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_ManateeWorksInc.Member_4DC562BA84E155663EA9F3C9002DDC3B" xlink:to="lab_cgnx_ManateeWorksInc.Member_4DC562BA84E155663EA9F3C9002DDC3B" xlink:type="arc" />
    <link:label id="lab_cgnx_ChiaroTechnologiesLLCMember_F48063CCE5F9E127612FF3C9002EAF06_terseLabel_en-US" xlink:label="lab_cgnx_ChiaroTechnologiesLLCMember_F48063CCE5F9E127612FF3C9002EAF06" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Chiaro Technologies LLC</link:label>
    <link:label id="lab_cgnx_ChiaroTechnologiesLLCMember_F48063CCE5F9E127612FF3C9002EAF06_label_en-US" xlink:label="lab_cgnx_ChiaroTechnologiesLLCMember_F48063CCE5F9E127612FF3C9002EAF06" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Chiaro Technologies LLC [Member]</link:label>
    <link:label id="lab_cgnx_ChiaroTechnologiesLLCMember_F48063CCE5F9E127612FF3C9002EAF06_documentation_en-US" xlink:label="lab_cgnx_ChiaroTechnologiesLLCMember_F48063CCE5F9E127612FF3C9002EAF06" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Chiaro Technologies LLC [Member]</link:label>
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_ChiaroTechnologiesLLCMember" xlink:label="loc_cgnx_ChiaroTechnologiesLLCMember_F48063CCE5F9E127612FF3C9002EAF06" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_ChiaroTechnologiesLLCMember_F48063CCE5F9E127612FF3C9002EAF06" xlink:to="lab_cgnx_ChiaroTechnologiesLLCMember_F48063CCE5F9E127612FF3C9002EAF06" xlink:type="arc" />
    <link:label id="lab_us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationLineItems_AD350B7099C2E10E9B4FF3C9002E9208_terseLabel_en-US" xlink:label="lab_us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationLineItems_AD350B7099C2E10E9B4FF3C9002E9208" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Fair Value, Liabilities Measured on Recurring Basis, Unobservable Input Reconciliation [Line Items]</link:label>
    <link:label id="lab_us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationLineItems_AD350B7099C2E10E9B4FF3C9002E9208_label_en-US" xlink:label="lab_us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationLineItems_AD350B7099C2E10E9B4FF3C9002E9208" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Fair Value, Liabilities Measured on Recurring Basis, Unobservable Input Reconciliation [Line Items]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationLineItems" xlink:label="loc_us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationLineItems_AD350B7099C2E10E9B4FF3C9002E9208" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationLineItems_AD350B7099C2E10E9B4FF3C9002E9208" xlink:to="lab_us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationLineItems_AD350B7099C2E10E9B4FF3C9002E9208" xlink:type="arc" />
    <link:label id="lab_us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationCalculationRollForward_6A54ADB6FA2A89617602F3C9002E20C0_terseLabel_en-US" xlink:label="lab_us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationCalculationRollForward_6A54ADB6FA2A89617602F3C9002E20C0" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Fair Value, Liabilities Measured on Recurring Basis, Unobservable Input Reconciliation, Calculation [Roll Forward]</link:label>
    <link:label id="lab_us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationCalculationRollForward_6A54ADB6FA2A89617602F3C9002E20C0_label_en-US" xlink:label="lab_us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationCalculationRollForward_6A54ADB6FA2A89617602F3C9002E20C0" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Fair Value, Liabilities Measured on Recurring Basis, Unobservable Input Reconciliation, Calculation [Roll Forward]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationCalculationRollForward" xlink:label="loc_us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationCalculationRollForward_6A54ADB6FA2A89617602F3C9002E20C0" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationCalculationRollForward_6A54ADB6FA2A89617602F3C9002E20C0" xlink:to="lab_us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationCalculationRollForward_6A54ADB6FA2A89617602F3C9002E20C0" xlink:type="arc" />
    <link:label id="lab_us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue_28278CF7AD150AFC4BBDF3C9002E1856_periodStartLabel_en-US" xlink:label="lab_us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue_28278CF7AD150AFC4BBDF3C9002E1856" xlink:role="http://www.xbrl.org/2003/role/periodStartLabel" xlink:type="resource" xml:lang="en-US">Beginning balance</link:label>
    <link:label id="lab_us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue_28278CF7AD150AFC4BBDF3C9002E1856_label_en-US" xlink:label="lab_us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue_28278CF7AD150AFC4BBDF3C9002E1856" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Fair Value, Measurement with Unobservable Inputs Reconciliation, Recurring Basis, Liability Value</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue" xlink:label="loc_us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue_28278CF7AD150AFC4BBDF3C9002E1856" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue_28278CF7AD150AFC4BBDF3C9002E1856" xlink:to="lab_us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue_28278CF7AD150AFC4BBDF3C9002E1856" xlink:type="arc" />
    <link:label id="lab_us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilitySettlements_47C47440973C4BBD2374F3C9002FB1FB_negatedTerseLabel_en-US" xlink:label="lab_us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilitySettlements_47C47440973C4BBD2374F3C9002FB1FB" xlink:role="http://www.xbrl.org/2009/role/negatedTerseLabel" xlink:type="resource" xml:lang="en-US">Payment of contingent consideration</link:label>
    <link:label id="lab_us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilitySettlements_47C47440973C4BBD2374F3C9002FB1FB_label_en-US" xlink:label="lab_us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilitySettlements_47C47440973C4BBD2374F3C9002FB1FB" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Fair Value, Measurement with Unobservable Inputs Reconciliation, Recurring Basis, Liability, Settlements</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilitySettlements" xlink:label="loc_us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilitySettlements_47C47440973C4BBD2374F3C9002FB1FB" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilitySettlements_47C47440973C4BBD2374F3C9002FB1FB" xlink:to="lab_us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilitySettlements_47C47440973C4BBD2374F3C9002FB1FB" xlink:type="arc" />
    <link:label id="lab_us-gaap_LiabilitiesFairValueAdjustment_2F303076E3E392CFA9EDF3C9002FA397_terseLabel_en-US" xlink:label="lab_us-gaap_LiabilitiesFairValueAdjustment_2F303076E3E392CFA9EDF3C9002FA397" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Fair value adjustment</link:label>
    <link:label id="lab_us-gaap_LiabilitiesFairValueAdjustment_2F303076E3E392CFA9EDF3C9002FA397_label_en-US" xlink:label="lab_us-gaap_LiabilitiesFairValueAdjustment_2F303076E3E392CFA9EDF3C9002FA397" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Liabilities, Fair Value Adjustment</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_LiabilitiesFairValueAdjustment" xlink:label="loc_us-gaap_LiabilitiesFairValueAdjustment_2F303076E3E392CFA9EDF3C9002FA397" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_LiabilitiesFairValueAdjustment_2F303076E3E392CFA9EDF3C9002FA397" xlink:to="lab_us-gaap_LiabilitiesFairValueAdjustment_2F303076E3E392CFA9EDF3C9002FA397" xlink:type="arc" />
    <link:label id="lab_us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue_E21F73927695D9B9730DF3C9002FF98A_periodEndLabel_en-US" xlink:label="lab_us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue_E21F73927695D9B9730DF3C9002FF98A" xlink:role="http://www.xbrl.org/2003/role/periodEndLabel" xlink:type="resource" xml:lang="en-US">Ending balance</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue" xlink:label="loc_us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue_E21F73927695D9B9730DF3C9002FF98A" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue_E21F73927695D9B9730DF3C9002FF98A" xlink:to="lab_us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue_E21F73927695D9B9730DF3C9002FF98A" xlink:type="arc" />
    <link:label id="lab_us-gaap_GoodwillAndIntangibleAssetImpairment_C6B3F6721A900706E851F3D8002508CC_terseLabel_en-US" xlink:label="lab_us-gaap_GoodwillAndIntangibleAssetImpairment_C6B3F6721A900706E851F3D8002508CC" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Goodwill and intangible asset impairment</link:label>
    <link:label id="lab_us-gaap_GoodwillAndIntangibleAssetImpairment_C6B3F6721A900706E851F3D8002508CC_label_en-US" xlink:label="lab_us-gaap_GoodwillAndIntangibleAssetImpairment_C6B3F6721A900706E851F3D8002508CC" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Goodwill and Intangible Asset Impairment</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_GoodwillAndIntangibleAssetImpairment" xlink:label="loc_us-gaap_GoodwillAndIntangibleAssetImpairment_C6B3F6721A900706E851F3D8002508CC" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_GoodwillAndIntangibleAssetImpairment_C6B3F6721A900706E851F3D8002508CC" xlink:to="lab_us-gaap_GoodwillAndIntangibleAssetImpairment_C6B3F6721A900706E851F3D8002508CC" xlink:type="arc" />
    <link:label id="lab_srt_ValuationAndQualifyingAccountsDisclosureTable_361AA9D85C10F31FD68F8095E877198B_terseLabel_en-US" xlink:label="lab_srt_ValuationAndQualifyingAccountsDisclosureTable_361AA9D85C10F31FD68F8095E877198B" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">SEC Schedule, 12-09, Valuation and Qualifying Accounts Disclosure [Table]</link:label>
    <link:label id="lab_srt_ValuationAndQualifyingAccountsDisclosureTable_361AA9D85C10F31FD68F8095E877198B_label_en-US" xlink:label="lab_srt_ValuationAndQualifyingAccountsDisclosureTable_361AA9D85C10F31FD68F8095E877198B" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">SEC Schedule, 12-09, Valuation and Qualifying Accounts Disclosure [Table]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2018/elts/srt-2018-01-31.xsd#srt_ValuationAndQualifyingAccountsDisclosureTable" xlink:label="loc_srt_ValuationAndQualifyingAccountsDisclosureTable_361AA9D85C10F31FD68F8095E877198B" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_srt_ValuationAndQualifyingAccountsDisclosureTable_361AA9D85C10F31FD68F8095E877198B" xlink:to="lab_srt_ValuationAndQualifyingAccountsDisclosureTable_361AA9D85C10F31FD68F8095E877198B" xlink:type="arc" />
    <link:label id="lab_us-gaap_ValuationAllowancesAndReservesTypeAxis_5CF0CA9E4F5AEB738C678095E877F450_terseLabel_en-US" xlink:label="lab_us-gaap_ValuationAllowancesAndReservesTypeAxis_5CF0CA9E4F5AEB738C678095E877F450" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">SEC Schedule, 12-09, Valuation Allowances and Reserves Type [Axis]</link:label>
    <link:label id="lab_us-gaap_ValuationAllowancesAndReservesTypeAxis_5CF0CA9E4F5AEB738C678095E877F450_label_en-US" xlink:label="lab_us-gaap_ValuationAllowancesAndReservesTypeAxis_5CF0CA9E4F5AEB738C678095E877F450" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">SEC Schedule, 12-09, Valuation Allowances and Reserves Type [Axis]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ValuationAllowancesAndReservesTypeAxis" xlink:label="loc_us-gaap_ValuationAllowancesAndReservesTypeAxis_5CF0CA9E4F5AEB738C678095E877F450" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ValuationAllowancesAndReservesTypeAxis_5CF0CA9E4F5AEB738C678095E877F450" xlink:to="lab_us-gaap_ValuationAllowancesAndReservesTypeAxis_5CF0CA9E4F5AEB738C678095E877F450" xlink:type="arc" />
    <link:label id="lab_us-gaap_ValuationAllowancesAndReservesDomain_B36AC245A1D79E9C7F9B8095E87749BC_terseLabel_en-US" xlink:label="lab_us-gaap_ValuationAllowancesAndReservesDomain_B36AC245A1D79E9C7F9B8095E87749BC" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">SEC Schedule, 12-09, Valuation Allowances and Reserves [Domain]</link:label>
    <link:label id="lab_us-gaap_ValuationAllowancesAndReservesDomain_B36AC245A1D79E9C7F9B8095E87749BC_label_en-US" xlink:label="lab_us-gaap_ValuationAllowancesAndReservesDomain_B36AC245A1D79E9C7F9B8095E87749BC" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">SEC Schedule, 12-09, Valuation Allowances and Reserves [Domain]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ValuationAllowancesAndReservesDomain" xlink:label="loc_us-gaap_ValuationAllowancesAndReservesDomain_B36AC245A1D79E9C7F9B8095E87749BC" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ValuationAllowancesAndReservesDomain_B36AC245A1D79E9C7F9B8095E87749BC" xlink:to="lab_us-gaap_ValuationAllowancesAndReservesDomain_B36AC245A1D79E9C7F9B8095E87749BC" xlink:type="arc" />
    <link:label id="lab_us-gaap_UncollectibleReceivablesMember_C89948BE08C1DBCA46C68095E877C11C_terseLabel_en-US" xlink:label="lab_us-gaap_UncollectibleReceivablesMember_C89948BE08C1DBCA46C68095E877C11C" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Reserve for Uncollectible Accounts Receivable and Sales Return [Member]</link:label>
    <link:label id="lab_us-gaap_UncollectibleReceivablesMember_C89948BE08C1DBCA46C68095E877C11C_label_en-US" xlink:label="lab_us-gaap_UncollectibleReceivablesMember_C89948BE08C1DBCA46C68095E877C11C" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Uncollectible Receivables [Member]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_UncollectibleReceivablesMember" xlink:label="loc_us-gaap_UncollectibleReceivablesMember_C89948BE08C1DBCA46C68095E877C11C" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_UncollectibleReceivablesMember_C89948BE08C1DBCA46C68095E877C11C" xlink:to="lab_us-gaap_UncollectibleReceivablesMember_C89948BE08C1DBCA46C68095E877C11C" xlink:type="arc" />
    <link:label id="lab_us-gaap_ValuationAllowanceOfDeferredTaxAssetsMember_49DD1419C84FA2538DD68095E877B31C_terseLabel_en-US" xlink:label="lab_us-gaap_ValuationAllowanceOfDeferredTaxAssetsMember_49DD1419C84FA2538DD68095E877B31C" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Deferred Tax Valuation Allowance [Member]</link:label>
    <link:label id="lab_us-gaap_ValuationAllowanceOfDeferredTaxAssetsMember_49DD1419C84FA2538DD68095E877B31C_label_en-US" xlink:label="lab_us-gaap_ValuationAllowanceOfDeferredTaxAssetsMember_49DD1419C84FA2538DD68095E877B31C" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">SEC Schedule, 12-09, Valuation Allowance, Deferred Tax Asset [Member]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ValuationAllowanceOfDeferredTaxAssetsMember" xlink:label="loc_us-gaap_ValuationAllowanceOfDeferredTaxAssetsMember_49DD1419C84FA2538DD68095E877B31C" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ValuationAllowanceOfDeferredTaxAssetsMember_49DD1419C84FA2538DD68095E877B31C" xlink:to="lab_us-gaap_ValuationAllowanceOfDeferredTaxAssetsMember_49DD1419C84FA2538DD68095E877B31C" xlink:type="arc" />
    <link:label id="lab_srt_ValuationAndQualifyingAccountsDisclosureLineItems_5BD289F8AA002493A34E8095E8772809_terseLabel_en-US" xlink:label="lab_srt_ValuationAndQualifyingAccountsDisclosureLineItems_5BD289F8AA002493A34E8095E8772809" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">SEC Schedule, 12-09, Valuation and Qualifying Accounts Disclosure [Line Items]</link:label>
    <link:label id="lab_srt_ValuationAndQualifyingAccountsDisclosureLineItems_5BD289F8AA002493A34E8095E8772809_label_en-US" xlink:label="lab_srt_ValuationAndQualifyingAccountsDisclosureLineItems_5BD289F8AA002493A34E8095E8772809" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">SEC Schedule, 12-09, Valuation and Qualifying Accounts Disclosure [Line Items]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2018/elts/srt-2018-01-31.xsd#srt_ValuationAndQualifyingAccountsDisclosureLineItems" xlink:label="loc_srt_ValuationAndQualifyingAccountsDisclosureLineItems_5BD289F8AA002493A34E8095E8772809" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_srt_ValuationAndQualifyingAccountsDisclosureLineItems_5BD289F8AA002493A34E8095E8772809" xlink:to="lab_srt_ValuationAndQualifyingAccountsDisclosureLineItems_5BD289F8AA002493A34E8095E8772809" xlink:type="arc" />
    <link:label id="lab_us-gaap_MovementInValuationAllowancesAndReservesRollForward_6306F1F8EB240F06FF738095E877AED5_terseLabel_en-US" xlink:label="lab_us-gaap_MovementInValuationAllowancesAndReservesRollForward_6306F1F8EB240F06FF738095E877AED5" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">SEC Schedule, 12-09, Movement in Valuation Allowances and Reserves [Roll Forward]</link:label>
    <link:label id="lab_us-gaap_MovementInValuationAllowancesAndReservesRollForward_6306F1F8EB240F06FF738095E877AED5_label_en-US" xlink:label="lab_us-gaap_MovementInValuationAllowancesAndReservesRollForward_6306F1F8EB240F06FF738095E877AED5" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">SEC Schedule, 12-09, Movement in Valuation Allowances and Reserves [Roll Forward]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_MovementInValuationAllowancesAndReservesRollForward" xlink:label="loc_us-gaap_MovementInValuationAllowancesAndReservesRollForward_6306F1F8EB240F06FF738095E877AED5" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_MovementInValuationAllowancesAndReservesRollForward_6306F1F8EB240F06FF738095E877AED5" xlink:to="lab_us-gaap_MovementInValuationAllowancesAndReservesRollForward_6306F1F8EB240F06FF738095E877AED5" xlink:type="arc" />
    <link:label id="lab_us-gaap_ValuationAllowancesAndReservesBalance_EDB1AE52CFC38C5419008095E877C35B_periodStartLabel_en-US" xlink:label="lab_us-gaap_ValuationAllowancesAndReservesBalance_EDB1AE52CFC38C5419008095E877C35B" xlink:role="http://www.xbrl.org/2003/role/periodStartLabel" xlink:type="resource" xml:lang="en-US">Balance at Beginning of Period</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ValuationAllowancesAndReservesBalance" xlink:label="loc_us-gaap_ValuationAllowancesAndReservesBalance_EDB1AE52CFC38C5419008095E877C35B" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ValuationAllowancesAndReservesBalance_EDB1AE52CFC38C5419008095E877C35B" xlink:to="lab_us-gaap_ValuationAllowancesAndReservesBalance_EDB1AE52CFC38C5419008095E877C35B" xlink:type="arc" />
    <link:label id="lab_us-gaap_ValuationAllowancesAndReservesChargedToCostAndExpense_93003A7F45CA2A7C39DF8095E8782847_terseLabel_en-US" xlink:label="lab_us-gaap_ValuationAllowancesAndReservesChargedToCostAndExpense_93003A7F45CA2A7C39DF8095E8782847" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Charged to Costs and Expenses</link:label>
    <link:label id="lab_us-gaap_ValuationAllowancesAndReservesChargedToCostAndExpense_93003A7F45CA2A7C39DF8095E8782847_label_en-US" xlink:label="lab_us-gaap_ValuationAllowancesAndReservesChargedToCostAndExpense_93003A7F45CA2A7C39DF8095E8782847" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">SEC Schedule, 12-09, Valuation Allowances and Reserves, Additions, Charge to Cost and Expense</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ValuationAllowancesAndReservesChargedToCostAndExpense" xlink:label="loc_us-gaap_ValuationAllowancesAndReservesChargedToCostAndExpense_93003A7F45CA2A7C39DF8095E8782847" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ValuationAllowancesAndReservesChargedToCostAndExpense_93003A7F45CA2A7C39DF8095E8782847" xlink:to="lab_us-gaap_ValuationAllowancesAndReservesChargedToCostAndExpense_93003A7F45CA2A7C39DF8095E8782847" xlink:type="arc" />
    <link:label id="lab_us-gaap_ValuationAllowancesAndReservesDeductions_A206F212D31BC0FF669D8095E87852F7_negatedLabel_en-US" xlink:label="lab_us-gaap_ValuationAllowancesAndReservesDeductions_A206F212D31BC0FF669D8095E87852F7" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:type="resource" xml:lang="en-US">Deductions</link:label>
    <link:label id="lab_us-gaap_ValuationAllowancesAndReservesDeductions_A206F212D31BC0FF669D8095E87852F7_label_en-US" xlink:label="lab_us-gaap_ValuationAllowancesAndReservesDeductions_A206F212D31BC0FF669D8095E87852F7" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">SEC Schedule, 12-09, Valuation Allowances and Reserves, Deduction</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ValuationAllowancesAndReservesDeductions" xlink:label="loc_us-gaap_ValuationAllowancesAndReservesDeductions_A206F212D31BC0FF669D8095E87852F7" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ValuationAllowancesAndReservesDeductions_A206F212D31BC0FF669D8095E87852F7" xlink:to="lab_us-gaap_ValuationAllowancesAndReservesDeductions_A206F212D31BC0FF669D8095E87852F7" xlink:type="arc" />
    <link:label id="lab_us-gaap_ValuationAllowancesAndReservesAdjustments_524952FCAEA24F1CC5058095E8786F7C_terseLabel_en-US" xlink:label="lab_us-gaap_ValuationAllowancesAndReservesAdjustments_524952FCAEA24F1CC5058095E8786F7C" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Other</link:label>
    <link:label id="lab_us-gaap_ValuationAllowancesAndReservesAdjustments_524952FCAEA24F1CC5058095E8786F7C_label_en-US" xlink:label="lab_us-gaap_ValuationAllowancesAndReservesAdjustments_524952FCAEA24F1CC5058095E8786F7C" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">SEC Schedule, 12-09, Valuation Allowances and Reserves, Increase (Decrease) Adjustment</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ValuationAllowancesAndReservesAdjustments" xlink:label="loc_us-gaap_ValuationAllowancesAndReservesAdjustments_524952FCAEA24F1CC5058095E8786F7C" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ValuationAllowancesAndReservesAdjustments_524952FCAEA24F1CC5058095E8786F7C" xlink:to="lab_us-gaap_ValuationAllowancesAndReservesAdjustments_524952FCAEA24F1CC5058095E8786F7C" xlink:type="arc" />
    <link:label id="lab_us-gaap_ValuationAllowancesAndReservesBalance_D4A9DE69704BC38AFE588095E8788F08_periodEndLabel_en-US" xlink:label="lab_us-gaap_ValuationAllowancesAndReservesBalance_D4A9DE69704BC38AFE588095E8788F08" xlink:role="http://www.xbrl.org/2003/role/periodEndLabel" xlink:type="resource" xml:lang="en-US">Balance at End of Period</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ValuationAllowancesAndReservesBalance" xlink:label="loc_us-gaap_ValuationAllowancesAndReservesBalance_D4A9DE69704BC38AFE588095E8788F08" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ValuationAllowancesAndReservesBalance_D4A9DE69704BC38AFE588095E8788F08" xlink:to="lab_us-gaap_ValuationAllowancesAndReservesBalance_D4A9DE69704BC38AFE588095E8788F08" xlink:type="arc" />
    <link:label id="lab_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths_ACA36C291E6C56AAF4D48095E63AFEAE_terseLabel_en-US" xlink:label="lab_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths_ACA36C291E6C56AAF4D48095E63AFEAE" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">2019</link:label>
    <link:label id="lab_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths_ACA36C291E6C56AAF4D48095E63AFEAE_label_en-US" xlink:label="lab_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths_ACA36C291E6C56AAF4D48095E63AFEAE" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Finite-Lived Intangible Assets, Amortization Expense, Next Twelve Months</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths_ACA36C291E6C56AAF4D48095E63AFEAE" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths_ACA36C291E6C56AAF4D48095E63AFEAE" xlink:to="lab_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths_ACA36C291E6C56AAF4D48095E63AFEAE" xlink:type="arc" />
    <link:label id="lab_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo_2A46B5BF213E98F92D808095E63ABEAA_terseLabel_en-US" xlink:label="lab_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo_2A46B5BF213E98F92D808095E63ABEAA" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">2020</link:label>
    <link:label id="lab_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo_2A46B5BF213E98F92D808095E63ABEAA_label_en-US" xlink:label="lab_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo_2A46B5BF213E98F92D808095E63ABEAA" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Finite-Lived Intangible Assets, Amortization Expense, Year Two</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo_2A46B5BF213E98F92D808095E63ABEAA" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo_2A46B5BF213E98F92D808095E63ABEAA" xlink:to="lab_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo_2A46B5BF213E98F92D808095E63ABEAA" xlink:type="arc" />
    <link:label id="lab_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearThree_6B590E6B4D0D38E4F50A8095E63A9046_terseLabel_en-US" xlink:label="lab_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearThree_6B590E6B4D0D38E4F50A8095E63A9046" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">2021</link:label>
    <link:label id="lab_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearThree_6B590E6B4D0D38E4F50A8095E63A9046_label_en-US" xlink:label="lab_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearThree_6B590E6B4D0D38E4F50A8095E63A9046" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Finite-Lived Intangible Assets, Amortization Expense, Year Three</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearThree" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearThree_6B590E6B4D0D38E4F50A8095E63A9046" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearThree_6B590E6B4D0D38E4F50A8095E63A9046" xlink:to="lab_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearThree_6B590E6B4D0D38E4F50A8095E63A9046" xlink:type="arc" />
    <link:label id="lab_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFour_B83987ADC477C0B906208095E63BF2B8_terseLabel_en-US" xlink:label="lab_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFour_B83987ADC477C0B906208095E63BF2B8" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">2022</link:label>
    <link:label id="lab_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFour_B83987ADC477C0B906208095E63BF2B8_label_en-US" xlink:label="lab_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFour_B83987ADC477C0B906208095E63BF2B8" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Finite-Lived Intangible Assets, Amortization Expense, Year Four</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFour" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFour_B83987ADC477C0B906208095E63BF2B8" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFour_B83987ADC477C0B906208095E63BF2B8" xlink:to="lab_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFour_B83987ADC477C0B906208095E63BF2B8" xlink:type="arc" />
    <link:label id="lab_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFive_A1398196F1CB409ABCE38095E63B5B32_terseLabel_en-US" xlink:label="lab_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFive_A1398196F1CB409ABCE38095E63B5B32" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">2023</link:label>
    <link:label id="lab_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFive_A1398196F1CB409ABCE38095E63B5B32_label_en-US" xlink:label="lab_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFive_A1398196F1CB409ABCE38095E63B5B32" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Finite-Lived Intangible Assets, Amortization Expense, Year Five</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFive" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFive_A1398196F1CB409ABCE38095E63B5B32" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFive_A1398196F1CB409ABCE38095E63B5B32" xlink:to="lab_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFive_A1398196F1CB409ABCE38095E63B5B32" xlink:type="arc" />
    <link:label id="lab_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive_EADCA1170BA4E6E3B1198095E63B3031_terseLabel_en-US" xlink:label="lab_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive_EADCA1170BA4E6E3B1198095E63B3031" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Thereafter</link:label>
    <link:label id="lab_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive_EADCA1170BA4E6E3B1198095E63B3031_label_en-US" xlink:label="lab_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive_EADCA1170BA4E6E3B1198095E63B3031" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Finite-Lived Intangible Assets, Amortization Expense, after Year Five</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive_EADCA1170BA4E6E3B1198095E63B3031" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive_EADCA1170BA4E6E3B1198095E63B3031" xlink:to="lab_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive_EADCA1170BA4E6E3B1198095E63B3031" xlink:type="arc" />
    <link:label id="lab_us-gaap_ScheduleOfGoodwillTextBlock_A5C0F0F8D1435A2DF4A58095E88C4C2F_terseLabel_en-US" xlink:label="lab_us-gaap_ScheduleOfGoodwillTextBlock_A5C0F0F8D1435A2DF4A58095E88C4C2F" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Changes in the Carrying Value of Goodwill</link:label>
    <link:label id="lab_us-gaap_ScheduleOfGoodwillTextBlock_A5C0F0F8D1435A2DF4A58095E88C4C2F_label_en-US" xlink:label="lab_us-gaap_ScheduleOfGoodwillTextBlock_A5C0F0F8D1435A2DF4A58095E88C4C2F" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Schedule of Goodwill [Table Text Block]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ScheduleOfGoodwillTextBlock" xlink:label="loc_us-gaap_ScheduleOfGoodwillTextBlock_A5C0F0F8D1435A2DF4A58095E88C4C2F" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ScheduleOfGoodwillTextBlock_A5C0F0F8D1435A2DF4A58095E88C4C2F" xlink:to="lab_us-gaap_ScheduleOfGoodwillTextBlock_A5C0F0F8D1435A2DF4A58095E88C4C2F" xlink:type="arc" />
    <link:label id="lab_us-gaap_ReconciliationOfUnrecognizedTaxBenefitsExcludingAmountsPertainingToExaminedTaxReturnsRollForward_037B2F766620F48A05DD30F2E70D6761_terseLabel_en-US" xlink:label="lab_us-gaap_ReconciliationOfUnrecognizedTaxBenefitsExcludingAmountsPertainingToExaminedTaxReturnsRollForward_037B2F766620F48A05DD30F2E70D6761" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" 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_037B2F766620F48A05DD30F2E70D6761_label_en-US" xlink:label="lab_us-gaap_ReconciliationOfUnrecognizedTaxBenefitsExcludingAmountsPertainingToExaminedTaxReturnsRollForward_037B2F766620F48A05DD30F2E70D6761" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Reconciliation of Unrecognized Tax Benefits, Excluding Amounts Pertaining to Examined Tax Returns [Roll Forward]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ReconciliationOfUnrecognizedTaxBenefitsExcludingAmountsPertainingToExaminedTaxReturnsRollForward" xlink:label="loc_us-gaap_ReconciliationOfUnrecognizedTaxBenefitsExcludingAmountsPertainingToExaminedTaxReturnsRollForward_037B2F766620F48A05DD30F2E70D6761" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ReconciliationOfUnrecognizedTaxBenefitsExcludingAmountsPertainingToExaminedTaxReturnsRollForward_037B2F766620F48A05DD30F2E70D6761" xlink:to="lab_us-gaap_ReconciliationOfUnrecognizedTaxBenefitsExcludingAmountsPertainingToExaminedTaxReturnsRollForward_037B2F766620F48A05DD30F2E70D6761" xlink:type="arc" />
    <link:label id="lab_us-gaap_UnrecognizedTaxBenefits_B39DA9B1FF35A1A1BB6C30F2E70DBCB6_periodStartLabel_en-US" xlink:label="lab_us-gaap_UnrecognizedTaxBenefits_B39DA9B1FF35A1A1BB6C30F2E70DBCB6" xlink:role="http://www.xbrl.org/2003/role/periodStartLabel" xlink:type="resource" xml:lang="en-US">Balance of reserve for income taxes</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_UnrecognizedTaxBenefits" xlink:label="loc_us-gaap_UnrecognizedTaxBenefits_B39DA9B1FF35A1A1BB6C30F2E70DBCB6" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_UnrecognizedTaxBenefits_B39DA9B1FF35A1A1BB6C30F2E70DBCB6" xlink:to="lab_us-gaap_UnrecognizedTaxBenefits_B39DA9B1FF35A1A1BB6C30F2E70DBCB6" xlink:type="arc" />
    <link:label id="lab_us-gaap_UnrecognizedTaxBenefitsIncreasesResultingFromPriorPeriodTaxPositions_96195C6D36794E221B1D30F2E70DDE34_terseLabel_en-US" xlink:label="lab_us-gaap_UnrecognizedTaxBenefitsIncreasesResultingFromPriorPeriodTaxPositions_96195C6D36794E221B1D30F2E70DDE34" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" 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_96195C6D36794E221B1D30F2E70DDE34_label_en-US" xlink:label="lab_us-gaap_UnrecognizedTaxBenefitsIncreasesResultingFromPriorPeriodTaxPositions_96195C6D36794E221B1D30F2E70DDE34" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Unrecognized Tax Benefits, Increase Resulting from Prior Period Tax Positions</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_UnrecognizedTaxBenefitsIncreasesResultingFromPriorPeriodTaxPositions" xlink:label="loc_us-gaap_UnrecognizedTaxBenefitsIncreasesResultingFromPriorPeriodTaxPositions_96195C6D36794E221B1D30F2E70DDE34" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_UnrecognizedTaxBenefitsIncreasesResultingFromPriorPeriodTaxPositions_96195C6D36794E221B1D30F2E70DDE34" xlink:to="lab_us-gaap_UnrecognizedTaxBenefitsIncreasesResultingFromPriorPeriodTaxPositions_96195C6D36794E221B1D30F2E70DDE34" xlink:type="arc" />
    <link:label id="lab_us-gaap_UnrecognizedTaxBenefitsPeriodIncreaseDecrease_35FEB8F6F66AD75E27FC30F2E70DDDD2_terseLabel_en-US" xlink:label="lab_us-gaap_UnrecognizedTaxBenefitsPeriodIncreaseDecrease_35FEB8F6F66AD75E27FC30F2E70DDDD2" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" 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_UnrecognizedTaxBenefitsPeriodIncreaseDecrease_35FEB8F6F66AD75E27FC30F2E70DDDD2_label_en-US" xlink:label="lab_us-gaap_UnrecognizedTaxBenefitsPeriodIncreaseDecrease_35FEB8F6F66AD75E27FC30F2E70DDDD2" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Unrecognized Tax Benefits, Period Increase (Decrease)</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_UnrecognizedTaxBenefitsPeriodIncreaseDecrease" xlink:label="loc_us-gaap_UnrecognizedTaxBenefitsPeriodIncreaseDecrease_35FEB8F6F66AD75E27FC30F2E70DDDD2" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_UnrecognizedTaxBenefitsPeriodIncreaseDecrease_35FEB8F6F66AD75E27FC30F2E70DDDD2" xlink:to="lab_us-gaap_UnrecognizedTaxBenefitsPeriodIncreaseDecrease_35FEB8F6F66AD75E27FC30F2E70DDDD2" xlink:type="arc" />
    <link:label id="lab_us-gaap_UnrecognizedTaxBenefitsIncreasesResultingFromCurrentPeriodTaxPositions_B574CD54689548CCD1C330F2E70E56A3_terseLabel_en-US" xlink:label="lab_us-gaap_UnrecognizedTaxBenefitsIncreasesResultingFromCurrentPeriodTaxPositions_B574CD54689548CCD1C330F2E70E56A3" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" 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_B574CD54689548CCD1C330F2E70E56A3_label_en-US" xlink:label="lab_us-gaap_UnrecognizedTaxBenefitsIncreasesResultingFromCurrentPeriodTaxPositions_B574CD54689548CCD1C330F2E70E56A3" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Unrecognized Tax Benefits, Increase Resulting from Current Period Tax Positions</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_UnrecognizedTaxBenefitsIncreasesResultingFromCurrentPeriodTaxPositions" xlink:label="loc_us-gaap_UnrecognizedTaxBenefitsIncreasesResultingFromCurrentPeriodTaxPositions_B574CD54689548CCD1C330F2E70E56A3" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_UnrecognizedTaxBenefitsIncreasesResultingFromCurrentPeriodTaxPositions_B574CD54689548CCD1C330F2E70E56A3" xlink:to="lab_us-gaap_UnrecognizedTaxBenefitsIncreasesResultingFromCurrentPeriodTaxPositions_B574CD54689548CCD1C330F2E70E56A3" xlink:type="arc" />
    <link:label id="lab_us-gaap_UnrecognizedTaxBenefitsReductionsResultingFromLapseOfApplicableStatuteOfLimitations_1264C37386F07E9BD2B230F2E70ED2EA_negatedLabel_en-US" xlink:label="lab_us-gaap_UnrecognizedTaxBenefitsReductionsResultingFromLapseOfApplicableStatuteOfLimitations_1264C37386F07E9BD2B230F2E70ED2EA" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:type="resource" 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_1264C37386F07E9BD2B230F2E70ED2EA_label_en-US" xlink:label="lab_us-gaap_UnrecognizedTaxBenefitsReductionsResultingFromLapseOfApplicableStatuteOfLimitations_1264C37386F07E9BD2B230F2E70ED2EA" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Unrecognized Tax Benefits, Reduction Resulting from Lapse of Applicable Statute of Limitations</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_UnrecognizedTaxBenefitsReductionsResultingFromLapseOfApplicableStatuteOfLimitations" xlink:label="loc_us-gaap_UnrecognizedTaxBenefitsReductionsResultingFromLapseOfApplicableStatuteOfLimitations_1264C37386F07E9BD2B230F2E70ED2EA" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_UnrecognizedTaxBenefitsReductionsResultingFromLapseOfApplicableStatuteOfLimitations_1264C37386F07E9BD2B230F2E70ED2EA" xlink:to="lab_us-gaap_UnrecognizedTaxBenefitsReductionsResultingFromLapseOfApplicableStatuteOfLimitations_1264C37386F07E9BD2B230F2E70ED2EA" xlink:type="arc" />
    <link:label id="lab_us-gaap_UnrecognizedTaxBenefits_444A008F0F53604537DD30F2E70E0564_periodEndLabel_en-US" xlink:label="lab_us-gaap_UnrecognizedTaxBenefits_444A008F0F53604537DD30F2E70E0564" xlink:role="http://www.xbrl.org/2003/role/periodEndLabel" xlink:type="resource" xml:lang="en-US">Balance of reserve for income taxes</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_UnrecognizedTaxBenefits" xlink:label="loc_us-gaap_UnrecognizedTaxBenefits_444A008F0F53604537DD30F2E70E0564" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_UnrecognizedTaxBenefits_444A008F0F53604537DD30F2E70E0564" xlink:to="lab_us-gaap_UnrecognizedTaxBenefits_444A008F0F53604537DD30F2E70E0564" xlink:type="arc" />
    <link:label id="lab_us-gaap_SubsequentEventsTextBlock_DF62DF1EB3100848B6BE8095E8D04877_terseLabel_en-US" xlink:label="lab_us-gaap_SubsequentEventsTextBlock_DF62DF1EB3100848B6BE8095E8D04877" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Subsequent Events</link:label>
    <link:label id="lab_us-gaap_SubsequentEventsTextBlock_DF62DF1EB3100848B6BE8095E8D04877_label_en-US" xlink:label="lab_us-gaap_SubsequentEventsTextBlock_DF62DF1EB3100848B6BE8095E8D04877" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Subsequent Events [Text Block]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_SubsequentEventsTextBlock" xlink:label="loc_us-gaap_SubsequentEventsTextBlock_DF62DF1EB3100848B6BE8095E8D04877" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_SubsequentEventsTextBlock_DF62DF1EB3100848B6BE8095E8D04877" xlink:to="lab_us-gaap_SubsequentEventsTextBlock_DF62DF1EB3100848B6BE8095E8D04877" xlink:type="arc" />
    <link:label id="lab_us-gaap_OperatingLeasesOfLessorDisclosureTextBlock_E2C6577F93ED5BA3B99FF3F7D60F6CFE_terseLabel_en-US" xlink:label="lab_us-gaap_OperatingLeasesOfLessorDisclosureTextBlock_E2C6577F93ED5BA3B99FF3F7D60F6CFE" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Leases</link:label>
    <link:label id="lab_us-gaap_OperatingLeasesOfLessorDisclosureTextBlock_E2C6577F93ED5BA3B99FF3F7D60F6CFE_label_en-US" xlink:label="lab_us-gaap_OperatingLeasesOfLessorDisclosureTextBlock_E2C6577F93ED5BA3B99FF3F7D60F6CFE" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Lessor, Operating Leases [Text Block]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_OperatingLeasesOfLessorDisclosureTextBlock" xlink:label="loc_us-gaap_OperatingLeasesOfLessorDisclosureTextBlock_E2C6577F93ED5BA3B99FF3F7D60F6CFE" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_OperatingLeasesOfLessorDisclosureTextBlock_E2C6577F93ED5BA3B99FF3F7D60F6CFE" xlink:to="lab_us-gaap_OperatingLeasesOfLessorDisclosureTextBlock_E2C6577F93ED5BA3B99FF3F7D60F6CFE" xlink:type="arc" />
    <link:label id="lab_us-gaap_LesseeOperatingLeasesTextBlock_DC0A99EBC5C479007123F3F5D2DD639C_terseLabel_en-US" xlink:label="lab_us-gaap_LesseeOperatingLeasesTextBlock_DC0A99EBC5C479007123F3F5D2DD639C" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Leases</link:label>
    <link:label id="lab_us-gaap_LesseeOperatingLeasesTextBlock_DC0A99EBC5C479007123F3F5D2DD639C_label_en-US" xlink:label="lab_us-gaap_LesseeOperatingLeasesTextBlock_DC0A99EBC5C479007123F3F5D2DD639C" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Lessee, Operating Leases [Text Block]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_LesseeOperatingLeasesTextBlock" xlink:label="loc_us-gaap_LesseeOperatingLeasesTextBlock_DC0A99EBC5C479007123F3F5D2DD639C" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_LesseeOperatingLeasesTextBlock_DC0A99EBC5C479007123F3F5D2DD639C" xlink:to="lab_us-gaap_LesseeOperatingLeasesTextBlock_DC0A99EBC5C479007123F3F5D2DD639C" xlink:type="arc" />
    <link:label id="lab_us-gaap_PropertyPlantAndEquipmentTextBlock_8926FC40B3F622AE22268095E56B31CC_terseLabel_en-US" xlink:label="lab_us-gaap_PropertyPlantAndEquipmentTextBlock_8926FC40B3F622AE22268095E56B31CC" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Property, Plant, and Equipment</link:label>
    <link:label id="lab_us-gaap_PropertyPlantAndEquipmentTextBlock_8926FC40B3F622AE22268095E56B31CC_label_en-US" xlink:label="lab_us-gaap_PropertyPlantAndEquipmentTextBlock_8926FC40B3F622AE22268095E56B31CC" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Property, Plant and Equipment [Table Text Block]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_PropertyPlantAndEquipmentTextBlock" xlink:label="loc_us-gaap_PropertyPlantAndEquipmentTextBlock_8926FC40B3F622AE22268095E56B31CC" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentTextBlock_8926FC40B3F622AE22268095E56B31CC" xlink:to="lab_us-gaap_PropertyPlantAndEquipmentTextBlock_8926FC40B3F622AE22268095E56B31CC" xlink:type="arc" />
    <link:label id="lab_us-gaap_StatementOfCashFlowsAbstract_82C8735C4EEEF732F1A535BFE4689D7B_label_en-US" xlink:label="lab_us-gaap_StatementOfCashFlowsAbstract_82C8735C4EEEF732F1A535BFE4689D7B" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Statement of Cash Flows [Abstract]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_StatementOfCashFlowsAbstract" xlink:label="loc_us-gaap_StatementOfCashFlowsAbstract_82C8735C4EEEF732F1A535BFE4689D7B" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_StatementOfCashFlowsAbstract_82C8735C4EEEF732F1A535BFE4689D7B" xlink:to="lab_us-gaap_StatementOfCashFlowsAbstract_82C8735C4EEEF732F1A535BFE4689D7B" xlink:type="arc" />
    <link:label id="lab_us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract_904007F902CE7D0CB4A435BFE469B700_terseLabel_en-US" xlink:label="lab_us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract_904007F902CE7D0CB4A435BFE469B700" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Cash flows from operating activities:</link:label>
    <link:label id="lab_us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract_904007F902CE7D0CB4A435BFE469B700_label_en-US" xlink:label="lab_us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract_904007F902CE7D0CB4A435BFE469B700" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Net Cash Provided by (Used in) Operating Activities [Abstract]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract" xlink:label="loc_us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract_904007F902CE7D0CB4A435BFE469B700" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract_904007F902CE7D0CB4A435BFE469B700" xlink:to="lab_us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract_904007F902CE7D0CB4A435BFE469B700" xlink:type="arc" />
    <link:label id="lab_us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract_9B30DF06369B880BC69935BFE469CEC0_terseLabel_en-US" xlink:label="lab_us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract_9B30DF06369B880BC69935BFE469CEC0" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Adjustments to reconcile net income to net cash provided by operating activities:</link:label>
    <link:label id="lab_us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract_9B30DF06369B880BC69935BFE469CEC0_label_en-US" xlink:label="lab_us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract_9B30DF06369B880BC69935BFE469CEC0" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Adjustments to Reconcile Net Income (Loss) to Cash Provided by (Used in) Operating Activities [Abstract]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract" xlink:label="loc_us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract_9B30DF06369B880BC69935BFE469CEC0" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract_9B30DF06369B880BC69935BFE469CEC0" xlink:to="lab_us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract_9B30DF06369B880BC69935BFE469CEC0" xlink:type="arc" />
    <link:label id="lab_us-gaap_StockOptionPlanExpense_44F466DD57FE173905DA35BFE46A1450_terseLabel_en-US" xlink:label="lab_us-gaap_StockOptionPlanExpense_44F466DD57FE173905DA35BFE46A1450" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Stock-based compensation expense</link:label>
    <link:label id="lab_us-gaap_StockOptionPlanExpense_44F466DD57FE173905DA35BFE46A1450_label_en-US" xlink:label="lab_us-gaap_StockOptionPlanExpense_44F466DD57FE173905DA35BFE46A1450" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Stock or Unit Option Plan Expense</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_StockOptionPlanExpense" xlink:label="loc_us-gaap_StockOptionPlanExpense_44F466DD57FE173905DA35BFE46A1450" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_StockOptionPlanExpense_44F466DD57FE173905DA35BFE46A1450" xlink:to="lab_us-gaap_StockOptionPlanExpense_44F466DD57FE173905DA35BFE46A1450" xlink:type="arc" />
    <link:label id="lab_us-gaap_Depreciation_5B74832FC64675CA40BF35BFE46A9681_terseLabel_en-US" xlink:label="lab_us-gaap_Depreciation_5B74832FC64675CA40BF35BFE46A9681" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Depreciation of property, plant, and equipment</link:label>
    <link:label id="lab_us-gaap_Depreciation_5B74832FC64675CA40BF35BFE46A9681_label_en-US" xlink:label="lab_us-gaap_Depreciation_5B74832FC64675CA40BF35BFE46A9681" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Depreciation</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_Depreciation" xlink:label="loc_us-gaap_Depreciation_5B74832FC64675CA40BF35BFE46A9681" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_Depreciation_5B74832FC64675CA40BF35BFE46A9681" xlink:to="lab_us-gaap_Depreciation_5B74832FC64675CA40BF35BFE46A9681" xlink:type="arc" />
    <link:label id="lab_us-gaap_AmortizationOfIntangibleAssets_AEA5783BE0AC5178DA9235BFE46AEDCA_terseLabel_en-US" xlink:label="lab_us-gaap_AmortizationOfIntangibleAssets_AEA5783BE0AC5178DA9235BFE46AEDCA" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Amortization of intangible assets</link:label>
    <link:label id="lab_us-gaap_AmortizationOfIntangibleAssets_AEA5783BE0AC5178DA9235BFE46AEDCA_label_en-US" xlink:label="lab_us-gaap_AmortizationOfIntangibleAssets_AEA5783BE0AC5178DA9235BFE46AEDCA" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Amortization of Intangible Assets</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_AmortizationOfIntangibleAssets" xlink:label="loc_us-gaap_AmortizationOfIntangibleAssets_AEA5783BE0AC5178DA9235BFE46AEDCA" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AmortizationOfIntangibleAssets_AEA5783BE0AC5178DA9235BFE46AEDCA" xlink:to="lab_us-gaap_AmortizationOfIntangibleAssets_AEA5783BE0AC5178DA9235BFE46AEDCA" xlink:type="arc" />
    <link:label id="lab_us-gaap_AssetImpairmentCharges_18D6063F716B9170282635BFE46AC55F_terseLabel_en-US" xlink:label="lab_us-gaap_AssetImpairmentCharges_18D6063F716B9170282635BFE46AC55F" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Impairment of intangible assets</link:label>
    <link:label id="lab_us-gaap_AssetImpairmentCharges_18D6063F716B9170282635BFE46AC55F_label_en-US" xlink:label="lab_us-gaap_AssetImpairmentCharges_18D6063F716B9170282635BFE46AC55F" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Asset Impairment Charges</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_AssetImpairmentCharges" xlink:label="loc_us-gaap_AssetImpairmentCharges_18D6063F716B9170282635BFE46AC55F" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AssetImpairmentCharges_18D6063F716B9170282635BFE46AC55F" xlink:to="lab_us-gaap_AssetImpairmentCharges_18D6063F716B9170282635BFE46AC55F" xlink:type="arc" />
    <link:label id="lab_us-gaap_AccretionAmortizationOfDiscountsAndPremiumsInvestments_88DF33F47FE669BF262235BFE46AB15F_negatedLabel_en-US" xlink:label="lab_us-gaap_AccretionAmortizationOfDiscountsAndPremiumsInvestments_88DF33F47FE669BF262235BFE46AB15F" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:type="resource" xml:lang="en-US">Amortization of discounts or premiums on investments</link:label>
    <link:label id="lab_us-gaap_AccretionAmortizationOfDiscountsAndPremiumsInvestments_88DF33F47FE669BF262235BFE46AB15F_label_en-US" xlink:label="lab_us-gaap_AccretionAmortizationOfDiscountsAndPremiumsInvestments_88DF33F47FE669BF262235BFE46AB15F" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Accretion (Amortization) of Discounts and Premiums, Investments</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_AccretionAmortizationOfDiscountsAndPremiumsInvestments" xlink:label="loc_us-gaap_AccretionAmortizationOfDiscountsAndPremiumsInvestments_88DF33F47FE669BF262235BFE46AB15F" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AccretionAmortizationOfDiscountsAndPremiumsInvestments_88DF33F47FE669BF262235BFE46AB15F" xlink:to="lab_us-gaap_AccretionAmortizationOfDiscountsAndPremiumsInvestments_88DF33F47FE669BF262235BFE46AB15F" xlink:type="arc" />
    <link:label id="lab_us-gaap_GainLossOnSaleOfInvestments_682FBBBA67E4BFD4205135BFE46B7318_negatedLabel_en-US" xlink:label="lab_us-gaap_GainLossOnSaleOfInvestments_682FBBBA67E4BFD4205135BFE46B7318" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:type="resource" xml:lang="en-US">Realized (gain) loss on sale of investments</link:label>
    <link:label id="lab_us-gaap_GainLossOnSaleOfInvestments_682FBBBA67E4BFD4205135BFE46B7318_label_en-US" xlink:label="lab_us-gaap_GainLossOnSaleOfInvestments_682FBBBA67E4BFD4205135BFE46B7318" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Gain (Loss) on Sale of Investments</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_GainLossOnSaleOfInvestments" xlink:label="loc_us-gaap_GainLossOnSaleOfInvestments_682FBBBA67E4BFD4205135BFE46B7318" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_GainLossOnSaleOfInvestments_682FBBBA67E4BFD4205135BFE46B7318" xlink:to="lab_us-gaap_GainLossOnSaleOfInvestments_682FBBBA67E4BFD4205135BFE46B7318" xlink:type="arc" />
    <link:label id="lab_us-gaap_IncreaseDecreaseInDeferredIncomeTaxes_E8519B32A984277923DB35BFE46BFBB1_negatedLabel_en-US" xlink:label="lab_us-gaap_IncreaseDecreaseInDeferredIncomeTaxes_E8519B32A984277923DB35BFE46BFBB1" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:type="resource" xml:lang="en-US">Change in deferred income taxes</link:label>
    <link:label id="lab_us-gaap_IncreaseDecreaseInDeferredIncomeTaxes_E8519B32A984277923DB35BFE46BFBB1_label_en-US" xlink:label="lab_us-gaap_IncreaseDecreaseInDeferredIncomeTaxes_E8519B32A984277923DB35BFE46BFBB1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Increase (Decrease) in Deferred Income Taxes</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_IncreaseDecreaseInDeferredIncomeTaxes" xlink:label="loc_us-gaap_IncreaseDecreaseInDeferredIncomeTaxes_E8519B32A984277923DB35BFE46BFBB1" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_IncreaseDecreaseInDeferredIncomeTaxes_E8519B32A984277923DB35BFE46BFBB1" xlink:to="lab_us-gaap_IncreaseDecreaseInDeferredIncomeTaxes_E8519B32A984277923DB35BFE46BFBB1" xlink:type="arc" />
    <link:label id="lab_us-gaap_IncreaseDecreaseInAccountsReceivable_BC83B75BB673FD228C8035BFE46BE8E0_negatedLabel_en-US" xlink:label="lab_us-gaap_IncreaseDecreaseInAccountsReceivable_BC83B75BB673FD228C8035BFE46BE8E0" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:type="resource" xml:lang="en-US">Accounts receivable</link:label>
    <link:label id="lab_us-gaap_IncreaseDecreaseInAccountsReceivable_BC83B75BB673FD228C8035BFE46BE8E0_label_en-US" xlink:label="lab_us-gaap_IncreaseDecreaseInAccountsReceivable_BC83B75BB673FD228C8035BFE46BE8E0" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Increase (Decrease) in Accounts Receivable</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_IncreaseDecreaseInAccountsReceivable" xlink:label="loc_us-gaap_IncreaseDecreaseInAccountsReceivable_BC83B75BB673FD228C8035BFE46BE8E0" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_IncreaseDecreaseInAccountsReceivable_BC83B75BB673FD228C8035BFE46BE8E0" xlink:to="lab_us-gaap_IncreaseDecreaseInAccountsReceivable_BC83B75BB673FD228C8035BFE46BE8E0" xlink:type="arc" />
    <link:label id="lab_us-gaap_IncreaseDecreaseInUnbilledReceivables_48FC4963856350E302C535BFE46B81A0_negatedTerseLabel_en-US" xlink:label="lab_us-gaap_IncreaseDecreaseInUnbilledReceivables_48FC4963856350E302C535BFE46B81A0" xlink:role="http://www.xbrl.org/2009/role/negatedTerseLabel" xlink:type="resource" xml:lang="en-US">Unbilled revenue</link:label>
    <link:label id="lab_us-gaap_IncreaseDecreaseInUnbilledReceivables_48FC4963856350E302C535BFE46B81A0_label_en-US" xlink:label="lab_us-gaap_IncreaseDecreaseInUnbilledReceivables_48FC4963856350E302C535BFE46B81A0" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Increase (Decrease) in Unbilled Receivables</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_IncreaseDecreaseInUnbilledReceivables" xlink:label="loc_us-gaap_IncreaseDecreaseInUnbilledReceivables_48FC4963856350E302C535BFE46B81A0" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_IncreaseDecreaseInUnbilledReceivables_48FC4963856350E302C535BFE46B81A0" xlink:to="lab_us-gaap_IncreaseDecreaseInUnbilledReceivables_48FC4963856350E302C535BFE46B81A0" xlink:type="arc" />
    <link:label id="lab_us-gaap_IncreaseDecreaseInInventories_093ED1A1DE698011172B35BFE46B920B_negatedLabel_en-US" xlink:label="lab_us-gaap_IncreaseDecreaseInInventories_093ED1A1DE698011172B35BFE46B920B" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:type="resource" xml:lang="en-US">Inventories</link:label>
    <link:label id="lab_us-gaap_IncreaseDecreaseInInventories_093ED1A1DE698011172B35BFE46B920B_label_en-US" xlink:label="lab_us-gaap_IncreaseDecreaseInInventories_093ED1A1DE698011172B35BFE46B920B" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Increase (Decrease) in Inventories</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_IncreaseDecreaseInInventories" xlink:label="loc_us-gaap_IncreaseDecreaseInInventories_093ED1A1DE698011172B35BFE46B920B" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_IncreaseDecreaseInInventories_093ED1A1DE698011172B35BFE46B920B" xlink:to="lab_us-gaap_IncreaseDecreaseInInventories_093ED1A1DE698011172B35BFE46B920B" xlink:type="arc" />
    <link:label id="lab_us-gaap_IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets_FE452F517D8FBCAA5AC935BFE46B1C99_negatedTerseLabel_en-US" xlink:label="lab_us-gaap_IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets_FE452F517D8FBCAA5AC935BFE46B1C99" xlink:role="http://www.xbrl.org/2009/role/negatedTerseLabel" xlink:type="resource" xml:lang="en-US">Prepaid expenses and other current assets</link:label>
    <link:label id="lab_us-gaap_IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets_FE452F517D8FBCAA5AC935BFE46B1C99_label_en-US" xlink:label="lab_us-gaap_IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets_FE452F517D8FBCAA5AC935BFE46B1C99" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Increase (Decrease) in Prepaid Expense and Other Assets</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets" xlink:label="loc_us-gaap_IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets_FE452F517D8FBCAA5AC935BFE46B1C99" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets_FE452F517D8FBCAA5AC935BFE46B1C99" xlink:to="lab_us-gaap_IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets_FE452F517D8FBCAA5AC935BFE46B1C99" xlink:type="arc" />
    <link:label id="lab_us-gaap_IncreaseDecreaseInAccountsPayable_448FD4C756E357F2064635BFE46CFEA5_terseLabel_en-US" xlink:label="lab_us-gaap_IncreaseDecreaseInAccountsPayable_448FD4C756E357F2064635BFE46CFEA5" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Accounts payable</link:label>
    <link:label id="lab_us-gaap_IncreaseDecreaseInAccountsPayable_448FD4C756E357F2064635BFE46CFEA5_label_en-US" xlink:label="lab_us-gaap_IncreaseDecreaseInAccountsPayable_448FD4C756E357F2064635BFE46CFEA5" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Increase (Decrease) in Accounts Payable</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_IncreaseDecreaseInAccountsPayable" xlink:label="loc_us-gaap_IncreaseDecreaseInAccountsPayable_448FD4C756E357F2064635BFE46CFEA5" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_IncreaseDecreaseInAccountsPayable_448FD4C756E357F2064635BFE46CFEA5" xlink:to="lab_us-gaap_IncreaseDecreaseInAccountsPayable_448FD4C756E357F2064635BFE46CFEA5" xlink:type="arc" />
    <link:label id="lab_us-gaap_IncreaseDecreaseInAccruedLiabilities_00BBAE7CC60D808032EC35BFE46C8FB1_terseLabel_en-US" xlink:label="lab_us-gaap_IncreaseDecreaseInAccruedLiabilities_00BBAE7CC60D808032EC35BFE46C8FB1" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Accrued expenses</link:label>
    <link:label id="lab_us-gaap_IncreaseDecreaseInAccruedLiabilities_00BBAE7CC60D808032EC35BFE46C8FB1_label_en-US" xlink:label="lab_us-gaap_IncreaseDecreaseInAccruedLiabilities_00BBAE7CC60D808032EC35BFE46C8FB1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Increase (Decrease) in Accrued Liabilities</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_IncreaseDecreaseInAccruedLiabilities" xlink:label="loc_us-gaap_IncreaseDecreaseInAccruedLiabilities_00BBAE7CC60D808032EC35BFE46C8FB1" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_IncreaseDecreaseInAccruedLiabilities_00BBAE7CC60D808032EC35BFE46C8FB1" xlink:to="lab_us-gaap_IncreaseDecreaseInAccruedLiabilities_00BBAE7CC60D808032EC35BFE46C8FB1" xlink:type="arc" />
    <link:label id="lab_us-gaap_IncreaseDecreaseInAccruedIncomeTaxesPayable_40CDE35B771AD1B292F235BFE46C4D77_terseLabel_en-US" xlink:label="lab_us-gaap_IncreaseDecreaseInAccruedIncomeTaxesPayable_40CDE35B771AD1B292F235BFE46C4D77" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Accrued income taxes</link:label>
    <link:label id="lab_us-gaap_IncreaseDecreaseInAccruedIncomeTaxesPayable_40CDE35B771AD1B292F235BFE46C4D77_label_en-US" xlink:label="lab_us-gaap_IncreaseDecreaseInAccruedIncomeTaxesPayable_40CDE35B771AD1B292F235BFE46C4D77" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Increase (Decrease) in Income Taxes Payable</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_IncreaseDecreaseInAccruedIncomeTaxesPayable" xlink:label="loc_us-gaap_IncreaseDecreaseInAccruedIncomeTaxesPayable_40CDE35B771AD1B292F235BFE46C4D77" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_IncreaseDecreaseInAccruedIncomeTaxesPayable_40CDE35B771AD1B292F235BFE46C4D77" xlink:to="lab_us-gaap_IncreaseDecreaseInAccruedIncomeTaxesPayable_40CDE35B771AD1B292F235BFE46C4D77" xlink:type="arc" />
    <link:label id="lab_us-gaap_IncreaseDecreaseInDeferredRevenueAndCustomerAdvancesAndDeposits_05F84FE404A42D85C06D35BFE46CCBFA_terseLabel_en-US" xlink:label="lab_us-gaap_IncreaseDecreaseInDeferredRevenueAndCustomerAdvancesAndDeposits_05F84FE404A42D85C06D35BFE46CCBFA" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Deferred revenue and customer deposits</link:label>
    <link:label id="lab_us-gaap_IncreaseDecreaseInDeferredRevenueAndCustomerAdvancesAndDeposits_05F84FE404A42D85C06D35BFE46CCBFA_label_en-US" xlink:label="lab_us-gaap_IncreaseDecreaseInDeferredRevenueAndCustomerAdvancesAndDeposits_05F84FE404A42D85C06D35BFE46CCBFA" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Increase (Decrease) in Deferred Revenue and Customer Advances and Deposits</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_IncreaseDecreaseInDeferredRevenueAndCustomerAdvancesAndDeposits" xlink:label="loc_us-gaap_IncreaseDecreaseInDeferredRevenueAndCustomerAdvancesAndDeposits_05F84FE404A42D85C06D35BFE46CCBFA" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_IncreaseDecreaseInDeferredRevenueAndCustomerAdvancesAndDeposits_05F84FE404A42D85C06D35BFE46CCBFA" xlink:to="lab_us-gaap_IncreaseDecreaseInDeferredRevenueAndCustomerAdvancesAndDeposits_05F84FE404A42D85C06D35BFE46CCBFA" xlink:type="arc" />
    <link:label id="lab_us-gaap_IncreaseDecreaseInOtherOperatingCapitalNet_2F9E4143EE8F8728E53635BFE46CC0F0_negatedLabel_en-US" xlink:label="lab_us-gaap_IncreaseDecreaseInOtherOperatingCapitalNet_2F9E4143EE8F8728E53635BFE46CC0F0" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:type="resource" xml:lang="en-US">Other</link:label>
    <link:label id="lab_us-gaap_IncreaseDecreaseInOtherOperatingCapitalNet_2F9E4143EE8F8728E53635BFE46CC0F0_label_en-US" xlink:label="lab_us-gaap_IncreaseDecreaseInOtherOperatingCapitalNet_2F9E4143EE8F8728E53635BFE46CC0F0" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Increase (Decrease) in Other Operating Assets and Liabilities, Net</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_IncreaseDecreaseInOtherOperatingCapitalNet" xlink:label="loc_us-gaap_IncreaseDecreaseInOtherOperatingCapitalNet_2F9E4143EE8F8728E53635BFE46CC0F0" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_IncreaseDecreaseInOtherOperatingCapitalNet_2F9E4143EE8F8728E53635BFE46CC0F0" xlink:to="lab_us-gaap_IncreaseDecreaseInOtherOperatingCapitalNet_2F9E4143EE8F8728E53635BFE46CC0F0" xlink:type="arc" />
    <link:label id="lab_us-gaap_NetCashProvidedByUsedInOperatingActivities_25D3307BDA663126D4DE35BFE46D8375_totalLabel_en-US" xlink:label="lab_us-gaap_NetCashProvidedByUsedInOperatingActivities_25D3307BDA663126D4DE35BFE46D8375" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xml:lang="en-US">Net cash provided by operating activities</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_NetCashProvidedByUsedInOperatingActivities" xlink:label="loc_us-gaap_NetCashProvidedByUsedInOperatingActivities_25D3307BDA663126D4DE35BFE46D8375" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_NetCashProvidedByUsedInOperatingActivities_25D3307BDA663126D4DE35BFE46D8375" xlink:to="lab_us-gaap_NetCashProvidedByUsedInOperatingActivities_25D3307BDA663126D4DE35BFE46D8375" xlink:type="arc" />
    <link:label id="lab_us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract_5BE2101299BA8BD9B10835BFE46D83B5_terseLabel_en-US" xlink:label="lab_us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract_5BE2101299BA8BD9B10835BFE46D83B5" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Cash flows from investing activities:</link:label>
    <link:label id="lab_us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract_5BE2101299BA8BD9B10835BFE46D83B5_label_en-US" xlink:label="lab_us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract_5BE2101299BA8BD9B10835BFE46D83B5" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Net Cash Provided by (Used in) Investing Activities [Abstract]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract" xlink:label="loc_us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract_5BE2101299BA8BD9B10835BFE46D83B5" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract_5BE2101299BA8BD9B10835BFE46D83B5" xlink:to="lab_us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract_5BE2101299BA8BD9B10835BFE46D83B5" xlink:type="arc" />
    <link:label id="lab_us-gaap_PaymentsToAcquireInvestments_AE609CB91AD497652A8735BFE46DE31E_negatedLabel_en-US" xlink:label="lab_us-gaap_PaymentsToAcquireInvestments_AE609CB91AD497652A8735BFE46DE31E" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:type="resource" xml:lang="en-US">Purchases of investments</link:label>
    <link:label id="lab_us-gaap_PaymentsToAcquireInvestments_AE609CB91AD497652A8735BFE46DE31E_label_en-US" xlink:label="lab_us-gaap_PaymentsToAcquireInvestments_AE609CB91AD497652A8735BFE46DE31E" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Payments to Acquire Investments</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_PaymentsToAcquireInvestments" xlink:label="loc_us-gaap_PaymentsToAcquireInvestments_AE609CB91AD497652A8735BFE46DE31E" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_PaymentsToAcquireInvestments_AE609CB91AD497652A8735BFE46DE31E" xlink:to="lab_us-gaap_PaymentsToAcquireInvestments_AE609CB91AD497652A8735BFE46DE31E" xlink:type="arc" />
    <link:label id="lab_us-gaap_ProceedsFromSaleMaturityAndCollectionsOfInvestments_4EDC5CBC6DE38B52CC4D35BFE46DF5D4_terseLabel_en-US" xlink:label="lab_us-gaap_ProceedsFromSaleMaturityAndCollectionsOfInvestments_4EDC5CBC6DE38B52CC4D35BFE46DF5D4" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Maturities and sales of investments</link:label>
    <link:label id="lab_us-gaap_ProceedsFromSaleMaturityAndCollectionsOfInvestments_4EDC5CBC6DE38B52CC4D35BFE46DF5D4_label_en-US" xlink:label="lab_us-gaap_ProceedsFromSaleMaturityAndCollectionsOfInvestments_4EDC5CBC6DE38B52CC4D35BFE46DF5D4" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Proceeds from Sale, Maturity and Collection of Investments</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ProceedsFromSaleMaturityAndCollectionsOfInvestments" xlink:label="loc_us-gaap_ProceedsFromSaleMaturityAndCollectionsOfInvestments_4EDC5CBC6DE38B52CC4D35BFE46DF5D4" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ProceedsFromSaleMaturityAndCollectionsOfInvestments_4EDC5CBC6DE38B52CC4D35BFE46DF5D4" xlink:to="lab_us-gaap_ProceedsFromSaleMaturityAndCollectionsOfInvestments_4EDC5CBC6DE38B52CC4D35BFE46DF5D4" xlink:type="arc" />
    <link:label id="lab_us-gaap_PaymentsToAcquirePropertyPlantAndEquipment_0FACB4ADB5ED549319DF35BFE46D4FA2_negatedLabel_en-US" xlink:label="lab_us-gaap_PaymentsToAcquirePropertyPlantAndEquipment_0FACB4ADB5ED549319DF35BFE46D4FA2" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:type="resource" xml:lang="en-US">Purchases of property, plant, and equipment</link:label>
    <link:label id="lab_us-gaap_PaymentsToAcquirePropertyPlantAndEquipment_0FACB4ADB5ED549319DF35BFE46D4FA2_label_en-US" xlink:label="lab_us-gaap_PaymentsToAcquirePropertyPlantAndEquipment_0FACB4ADB5ED549319DF35BFE46D4FA2" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Payments to Acquire Property, Plant, and Equipment</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_PaymentsToAcquirePropertyPlantAndEquipment" xlink:label="loc_us-gaap_PaymentsToAcquirePropertyPlantAndEquipment_0FACB4ADB5ED549319DF35BFE46D4FA2" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_PaymentsToAcquirePropertyPlantAndEquipment_0FACB4ADB5ED549319DF35BFE46D4FA2" xlink:to="lab_us-gaap_PaymentsToAcquirePropertyPlantAndEquipment_0FACB4ADB5ED549319DF35BFE46D4FA2" xlink:type="arc" />
    <link:label id="lab_us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired_4874B9BCA05DADD4E50035BFE46E4402_negatedTerseLabel_en-US" xlink:label="lab_us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired_4874B9BCA05DADD4E50035BFE46E4402" xlink:role="http://www.xbrl.org/2009/role/negatedTerseLabel" xlink:type="resource" xml:lang="en-US">Cash paid for acquisition of business, net of cash acquired</link:label>
    <link:label id="lab_us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired_4874B9BCA05DADD4E50035BFE46E4402_label_en-US" xlink:label="lab_us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired_4874B9BCA05DADD4E50035BFE46E4402" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Payments to Acquire Businesses, Net of Cash Acquired</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired" xlink:label="loc_us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired_4874B9BCA05DADD4E50035BFE46E4402" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired_4874B9BCA05DADD4E50035BFE46E4402" xlink:to="lab_us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired_4874B9BCA05DADD4E50035BFE46E4402" xlink:type="arc" />
    <link:label id="lab_us-gaap_PaymentsForProceedsFromBusinessesAndInterestInAffiliates_6FBAD81595D4491358DE35BFE46ED186_negatedTerseLabel_en-US" xlink:label="lab_us-gaap_PaymentsForProceedsFromBusinessesAndInterestInAffiliates_6FBAD81595D4491358DE35BFE46ED186" xlink:role="http://www.xbrl.org/2009/role/negatedTerseLabel" xlink:type="resource" xml:lang="en-US">Net cash paid from sale of discontinued business</link:label>
    <link:label id="lab_us-gaap_PaymentsForProceedsFromBusinessesAndInterestInAffiliates_6FBAD81595D4491358DE35BFE46ED186_label_en-US" xlink:label="lab_us-gaap_PaymentsForProceedsFromBusinessesAndInterestInAffiliates_6FBAD81595D4491358DE35BFE46ED186" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Payments for (Proceeds from) Businesses and Interest in Affiliates</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_PaymentsForProceedsFromBusinessesAndInterestInAffiliates" xlink:label="loc_us-gaap_PaymentsForProceedsFromBusinessesAndInterestInAffiliates_6FBAD81595D4491358DE35BFE46ED186" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_PaymentsForProceedsFromBusinessesAndInterestInAffiliates_6FBAD81595D4491358DE35BFE46ED186" xlink:to="lab_us-gaap_PaymentsForProceedsFromBusinessesAndInterestInAffiliates_6FBAD81595D4491358DE35BFE46ED186" xlink:type="arc" />
    <link:label id="lab_us-gaap_NetCashProvidedByUsedInInvestingActivities_68E2E823FCE7DBD8199A35BFE46E4730_totalLabel_en-US" xlink:label="lab_us-gaap_NetCashProvidedByUsedInInvestingActivities_68E2E823FCE7DBD8199A35BFE46E4730" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xml:lang="en-US">Net cash used in investing activities</link:label>
    <link:label id="lab_us-gaap_NetCashProvidedByUsedInInvestingActivities_68E2E823FCE7DBD8199A35BFE46E4730_label_en-US" xlink:label="lab_us-gaap_NetCashProvidedByUsedInInvestingActivities_68E2E823FCE7DBD8199A35BFE46E4730" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Net Cash Provided by (Used in) Investing Activities</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_NetCashProvidedByUsedInInvestingActivities" xlink:label="loc_us-gaap_NetCashProvidedByUsedInInvestingActivities_68E2E823FCE7DBD8199A35BFE46E4730" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_NetCashProvidedByUsedInInvestingActivities_68E2E823FCE7DBD8199A35BFE46E4730" xlink:to="lab_us-gaap_NetCashProvidedByUsedInInvestingActivities_68E2E823FCE7DBD8199A35BFE46E4730" xlink:type="arc" />
    <link:label id="lab_us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract_F1988A3A6D8DE70EB0B435BFE46E0610_terseLabel_en-US" xlink:label="lab_us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract_F1988A3A6D8DE70EB0B435BFE46E0610" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Cash flows from financing activities:</link:label>
    <link:label id="lab_us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract_F1988A3A6D8DE70EB0B435BFE46E0610_label_en-US" xlink:label="lab_us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract_F1988A3A6D8DE70EB0B435BFE46E0610" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Net Cash Provided by (Used in) Financing Activities [Abstract]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract" xlink:label="loc_us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract_F1988A3A6D8DE70EB0B435BFE46E0610" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract_F1988A3A6D8DE70EB0B435BFE46E0610" xlink:to="lab_us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract_F1988A3A6D8DE70EB0B435BFE46E0610" xlink:type="arc" />
    <link:label id="lab_us-gaap_ProceedsFromIssuanceOfSharesUnderIncentiveAndShareBasedCompensationPlansIncludingStockOptions_C79A06E98D96908420AC35BFE46ED6FE_terseLabel_en-US" xlink:label="lab_us-gaap_ProceedsFromIssuanceOfSharesUnderIncentiveAndShareBasedCompensationPlansIncludingStockOptions_C79A06E98D96908420AC35BFE46ED6FE" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Issuance of common stock under stock plans</link:label>
    <link:label id="lab_us-gaap_ProceedsFromIssuanceOfSharesUnderIncentiveAndShareBasedCompensationPlansIncludingStockOptions_C79A06E98D96908420AC35BFE46ED6FE_label_en-US" xlink:label="lab_us-gaap_ProceedsFromIssuanceOfSharesUnderIncentiveAndShareBasedCompensationPlansIncludingStockOptions_C79A06E98D96908420AC35BFE46ED6FE" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Proceeds from Issuance of Shares under Incentive and Share-based Compensation Plans, Including Stock Options</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ProceedsFromIssuanceOfSharesUnderIncentiveAndShareBasedCompensationPlansIncludingStockOptions" xlink:label="loc_us-gaap_ProceedsFromIssuanceOfSharesUnderIncentiveAndShareBasedCompensationPlansIncludingStockOptions_C79A06E98D96908420AC35BFE46ED6FE" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ProceedsFromIssuanceOfSharesUnderIncentiveAndShareBasedCompensationPlansIncludingStockOptions_C79A06E98D96908420AC35BFE46ED6FE" xlink:to="lab_us-gaap_ProceedsFromIssuanceOfSharesUnderIncentiveAndShareBasedCompensationPlansIncludingStockOptions_C79A06E98D96908420AC35BFE46ED6FE" xlink:type="arc" />
    <link:label id="lab_us-gaap_PaymentsForRepurchaseOfCommonStock_4F120F4AA17AD0C6DC0635BFE46F61D7_negatedLabel_en-US" xlink:label="lab_us-gaap_PaymentsForRepurchaseOfCommonStock_4F120F4AA17AD0C6DC0635BFE46F61D7" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:type="resource" xml:lang="en-US">Repurchase of common stock</link:label>
    <link:label id="lab_us-gaap_PaymentsForRepurchaseOfCommonStock_4F120F4AA17AD0C6DC0635BFE46F61D7_label_en-US" xlink:label="lab_us-gaap_PaymentsForRepurchaseOfCommonStock_4F120F4AA17AD0C6DC0635BFE46F61D7" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Payments for Repurchase of Common Stock</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_PaymentsForRepurchaseOfCommonStock" xlink:label="loc_us-gaap_PaymentsForRepurchaseOfCommonStock_4F120F4AA17AD0C6DC0635BFE46F61D7" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_PaymentsForRepurchaseOfCommonStock_4F120F4AA17AD0C6DC0635BFE46F61D7" xlink:to="lab_us-gaap_PaymentsForRepurchaseOfCommonStock_4F120F4AA17AD0C6DC0635BFE46F61D7" xlink:type="arc" />
    <link:label id="lab_us-gaap_PaymentsOfDividendsCommonStock_0584BBF4CEB425C37AEE35BFE46F99BC_negatedLabel_en-US" xlink:label="lab_us-gaap_PaymentsOfDividendsCommonStock_0584BBF4CEB425C37AEE35BFE46F99BC" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:type="resource" xml:lang="en-US">Payment of dividends</link:label>
    <link:label id="lab_us-gaap_PaymentsOfDividendsCommonStock_0584BBF4CEB425C37AEE35BFE46F99BC_label_en-US" xlink:label="lab_us-gaap_PaymentsOfDividendsCommonStock_0584BBF4CEB425C37AEE35BFE46F99BC" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Payments of Ordinary Dividends, Common Stock</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_PaymentsOfDividendsCommonStock" xlink:label="loc_us-gaap_PaymentsOfDividendsCommonStock_0584BBF4CEB425C37AEE35BFE46F99BC" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_PaymentsOfDividendsCommonStock_0584BBF4CEB425C37AEE35BFE46F99BC" xlink:to="lab_us-gaap_PaymentsOfDividendsCommonStock_0584BBF4CEB425C37AEE35BFE46F99BC" xlink:type="arc" />
    <link:label id="lab_us-gaap_PaymentsForPreviousAcquisition_7E36D0FC8FDC90EBA32F35BFE46F0B8B_negatedTerseLabel_en-US" xlink:label="lab_us-gaap_PaymentsForPreviousAcquisition_7E36D0FC8FDC90EBA32F35BFE46F0B8B" xlink:role="http://www.xbrl.org/2009/role/negatedTerseLabel" xlink:type="resource" xml:lang="en-US">Payment of contingent consideration</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_PaymentsForPreviousAcquisition" xlink:label="loc_us-gaap_PaymentsForPreviousAcquisition_7E36D0FC8FDC90EBA32F35BFE46F0B8B" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_PaymentsForPreviousAcquisition_7E36D0FC8FDC90EBA32F35BFE46F0B8B" xlink:to="lab_us-gaap_PaymentsForPreviousAcquisition_7E36D0FC8FDC90EBA32F35BFE46F0B8B" xlink:type="arc" />
    <link:label id="lab_us-gaap_NetCashProvidedByUsedInFinancingActivities_ED46AAD406FC9911B1A035BFE46FC24D_totalLabel_en-US" xlink:label="lab_us-gaap_NetCashProvidedByUsedInFinancingActivities_ED46AAD406FC9911B1A035BFE46FC24D" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xml:lang="en-US">Net cash used in financing activities</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_NetCashProvidedByUsedInFinancingActivities" xlink:label="loc_us-gaap_NetCashProvidedByUsedInFinancingActivities_ED46AAD406FC9911B1A035BFE46FC24D" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_NetCashProvidedByUsedInFinancingActivities_ED46AAD406FC9911B1A035BFE46FC24D" xlink:to="lab_us-gaap_NetCashProvidedByUsedInFinancingActivities_ED46AAD406FC9911B1A035BFE46FC24D" xlink:type="arc" />
    <link:label id="lab_us-gaap_EffectOfExchangeRateOnCashAndCashEquivalents_E95BA6239B29A6BF8AF335BFE46FF157_terseLabel_en-US" xlink:label="lab_us-gaap_EffectOfExchangeRateOnCashAndCashEquivalents_E95BA6239B29A6BF8AF335BFE46FF157" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Effect of foreign exchange rate changes on cash and cash equivalents</link:label>
    <link:label id="lab_us-gaap_EffectOfExchangeRateOnCashAndCashEquivalents_E95BA6239B29A6BF8AF335BFE46FF157_label_en-US" xlink:label="lab_us-gaap_EffectOfExchangeRateOnCashAndCashEquivalents_E95BA6239B29A6BF8AF335BFE46FF157" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Effect of Exchange Rate on Cash and Cash Equivalents</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_EffectOfExchangeRateOnCashAndCashEquivalents" xlink:label="loc_us-gaap_EffectOfExchangeRateOnCashAndCashEquivalents_E95BA6239B29A6BF8AF335BFE46FF157" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_EffectOfExchangeRateOnCashAndCashEquivalents_E95BA6239B29A6BF8AF335BFE46FF157" xlink:to="lab_us-gaap_EffectOfExchangeRateOnCashAndCashEquivalents_E95BA6239B29A6BF8AF335BFE46FF157" xlink:type="arc" />
    <link:label id="lab_us-gaap_CashAndCashEquivalentsPeriodIncreaseDecrease_11BBDA543D35AA1056B735BFE46F44BF_totalLabel_en-US" xlink:label="lab_us-gaap_CashAndCashEquivalentsPeriodIncreaseDecrease_11BBDA543D35AA1056B735BFE46F44BF" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xml:lang="en-US">Net change in cash and cash equivalents</link:label>
    <link:label id="lab_us-gaap_CashAndCashEquivalentsPeriodIncreaseDecrease_11BBDA543D35AA1056B735BFE46F44BF_label_en-US" xlink:label="lab_us-gaap_CashAndCashEquivalentsPeriodIncreaseDecrease_11BBDA543D35AA1056B735BFE46F44BF" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Cash and Cash Equivalents, Period Increase (Decrease)</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_CashAndCashEquivalentsPeriodIncreaseDecrease" xlink:label="loc_us-gaap_CashAndCashEquivalentsPeriodIncreaseDecrease_11BBDA543D35AA1056B735BFE46F44BF" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_CashAndCashEquivalentsPeriodIncreaseDecrease_11BBDA543D35AA1056B735BFE46F44BF" xlink:to="lab_us-gaap_CashAndCashEquivalentsPeriodIncreaseDecrease_11BBDA543D35AA1056B735BFE46F44BF" xlink:type="arc" />
    <link:label id="lab_us-gaap_CashAndCashEquivalentsAtCarryingValue_C2208881DDD2B4ED922435BFE4702AE5_periodStartLabel_en-US" xlink:label="lab_us-gaap_CashAndCashEquivalentsAtCarryingValue_C2208881DDD2B4ED922435BFE4702AE5" xlink:role="http://www.xbrl.org/2003/role/periodStartLabel" xlink:type="resource" xml:lang="en-US">Cash and cash equivalents at beginning of year</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_CashAndCashEquivalentsAtCarryingValue" xlink:label="loc_us-gaap_CashAndCashEquivalentsAtCarryingValue_C2208881DDD2B4ED922435BFE4702AE5" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_CashAndCashEquivalentsAtCarryingValue_C2208881DDD2B4ED922435BFE4702AE5" xlink:to="lab_us-gaap_CashAndCashEquivalentsAtCarryingValue_C2208881DDD2B4ED922435BFE4702AE5" xlink:type="arc" />
    <link:label id="lab_us-gaap_CashAndCashEquivalentsAtCarryingValue_A1B2DD636E856ADEB84435BFE470F1A7_periodEndLabel_en-US" xlink:label="lab_us-gaap_CashAndCashEquivalentsAtCarryingValue_A1B2DD636E856ADEB84435BFE470F1A7" xlink:role="http://www.xbrl.org/2003/role/periodEndLabel" xlink:type="resource" xml:lang="en-US">Cash and cash equivalents at end of year</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_CashAndCashEquivalentsAtCarryingValue" xlink:label="loc_us-gaap_CashAndCashEquivalentsAtCarryingValue_A1B2DD636E856ADEB84435BFE470F1A7" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_CashAndCashEquivalentsAtCarryingValue_A1B2DD636E856ADEB84435BFE470F1A7" xlink:to="lab_us-gaap_CashAndCashEquivalentsAtCarryingValue_A1B2DD636E856ADEB84435BFE470F1A7" xlink:type="arc" />
    <link:label id="lab_us-gaap_DefinedContributionPlanTable_54B0ACD9A02EEADAC79230FF5BD742AF_terseLabel_en-US" xlink:label="lab_us-gaap_DefinedContributionPlanTable_54B0ACD9A02EEADAC79230FF5BD742AF" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Defined Contribution Plan [Table]</link:label>
    <link:label id="lab_us-gaap_DefinedContributionPlanTable_54B0ACD9A02EEADAC79230FF5BD742AF_label_en-US" xlink:label="lab_us-gaap_DefinedContributionPlanTable_54B0ACD9A02EEADAC79230FF5BD742AF" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Defined Contribution Plan [Table]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_DefinedContributionPlanTable" xlink:label="loc_us-gaap_DefinedContributionPlanTable_54B0ACD9A02EEADAC79230FF5BD742AF" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DefinedContributionPlanTable_54B0ACD9A02EEADAC79230FF5BD742AF" xlink:to="lab_us-gaap_DefinedContributionPlanTable_54B0ACD9A02EEADAC79230FF5BD742AF" xlink:type="arc" />
    <link:label id="lab_us-gaap_TitleOfIndividualAxis_093A2AD15A3D76FE98A130FF5BD7BFAC_terseLabel_en-US" xlink:label="lab_us-gaap_TitleOfIndividualAxis_093A2AD15A3D76FE98A130FF5BD7BFAC" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Title of Individual [Axis]</link:label>
    <link:label id="lab_us-gaap_TitleOfIndividualAxis_093A2AD15A3D76FE98A130FF5BD7BFAC_label_en-US" xlink:label="lab_us-gaap_TitleOfIndividualAxis_093A2AD15A3D76FE98A130FF5BD7BFAC" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Title of Individual [Axis]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_TitleOfIndividualAxis" xlink:label="loc_us-gaap_TitleOfIndividualAxis_093A2AD15A3D76FE98A130FF5BD7BFAC" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_TitleOfIndividualAxis_093A2AD15A3D76FE98A130FF5BD7BFAC" xlink:to="lab_us-gaap_TitleOfIndividualAxis_093A2AD15A3D76FE98A130FF5BD7BFAC" xlink:type="arc" />
    <link:label id="lab_us-gaap_TitleOfIndividualWithRelationshipToEntityDomain_C846D12A4F0C1D9966F230FF5BD7C128_terseLabel_en-US" xlink:label="lab_us-gaap_TitleOfIndividualWithRelationshipToEntityDomain_C846D12A4F0C1D9966F230FF5BD7C128" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Relationship to Entity [Domain]</link:label>
    <link:label id="lab_us-gaap_TitleOfIndividualWithRelationshipToEntityDomain_C846D12A4F0C1D9966F230FF5BD7C128_label_en-US" xlink:label="lab_us-gaap_TitleOfIndividualWithRelationshipToEntityDomain_C846D12A4F0C1D9966F230FF5BD7C128" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Relationship to Entity [Domain]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_TitleOfIndividualWithRelationshipToEntityDomain" xlink:label="loc_us-gaap_TitleOfIndividualWithRelationshipToEntityDomain_C846D12A4F0C1D9966F230FF5BD7C128" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_TitleOfIndividualWithRelationshipToEntityDomain_C846D12A4F0C1D9966F230FF5BD7C128" xlink:to="lab_us-gaap_TitleOfIndividualWithRelationshipToEntityDomain_C846D12A4F0C1D9966F230FF5BD7C128" xlink:type="arc" />
    <link:label id="lab_us-gaap_DefinedContributionPlanDisclosureLineItems_1EF929BC0443B94A55B730FF5BD82D6C_terseLabel_en-US" xlink:label="lab_us-gaap_DefinedContributionPlanDisclosureLineItems_1EF929BC0443B94A55B730FF5BD82D6C" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Defined Contribution Plan Disclosure [Line Items]</link:label>
    <link:label id="lab_us-gaap_DefinedContributionPlanDisclosureLineItems_1EF929BC0443B94A55B730FF5BD82D6C_label_en-US" xlink:label="lab_us-gaap_DefinedContributionPlanDisclosureLineItems_1EF929BC0443B94A55B730FF5BD82D6C" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Defined Contribution Plan Disclosure [Line Items]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_DefinedContributionPlanDisclosureLineItems" xlink:label="loc_us-gaap_DefinedContributionPlanDisclosureLineItems_1EF929BC0443B94A55B730FF5BD82D6C" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DefinedContributionPlanDisclosureLineItems_1EF929BC0443B94A55B730FF5BD82D6C" xlink:to="lab_us-gaap_DefinedContributionPlanDisclosureLineItems_1EF929BC0443B94A55B730FF5BD82D6C" xlink:type="arc" />
    <link:label id="lab_cgnx_MinimumAgeToBeEligibleToDefinedContributionPlan_3683BAF6864F11B9F26730FF5BD80D81_terseLabel_en-US" xlink:label="lab_cgnx_MinimumAgeToBeEligibleToDefinedContributionPlan_3683BAF6864F11B9F26730FF5BD80D81" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Minimum age to be eligible to defined contribution plan</link:label>
    <link:label id="lab_cgnx_MinimumAgeToBeEligibleToDefinedContributionPlan_3683BAF6864F11B9F26730FF5BD80D81_label_en-US" xlink:label="lab_cgnx_MinimumAgeToBeEligibleToDefinedContributionPlan_3683BAF6864F11B9F26730FF5BD80D81" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Minimum Age To Be Eligible To Defined Contribution Plan</link:label>
    <link:label id="lab_cgnx_MinimumAgeToBeEligibleToDefinedContributionPlan_3683BAF6864F11B9F26730FF5BD80D81_documentation_en-US" xlink:label="lab_cgnx_MinimumAgeToBeEligibleToDefinedContributionPlan_3683BAF6864F11B9F26730FF5BD80D81" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Minimum age to be eligible to defined contribution plan.</link:label>
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_MinimumAgeToBeEligibleToDefinedContributionPlan" xlink:label="loc_cgnx_MinimumAgeToBeEligibleToDefinedContributionPlan_3683BAF6864F11B9F26730FF5BD80D81" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_MinimumAgeToBeEligibleToDefinedContributionPlan_3683BAF6864F11B9F26730FF5BD80D81" xlink:to="lab_cgnx_MinimumAgeToBeEligibleToDefinedContributionPlan_3683BAF6864F11B9F26730FF5BD80D81" xlink:type="arc" />
    <link:label id="lab_us-gaap_DefinedContributionPlanMaximumAnnualContributionsPerEmployeePercent_12FF79A12F20B960E92930FF5BD87282_terseLabel_en-US" xlink:label="lab_us-gaap_DefinedContributionPlanMaximumAnnualContributionsPerEmployeePercent_12FF79A12F20B960E92930FF5BD87282" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Maximum contribution by company expressed as percentage of employee pre-tax salary</link:label>
    <link:label id="lab_us-gaap_DefinedContributionPlanMaximumAnnualContributionsPerEmployeePercent_12FF79A12F20B960E92930FF5BD87282_label_en-US" xlink:label="lab_us-gaap_DefinedContributionPlanMaximumAnnualContributionsPerEmployeePercent_12FF79A12F20B960E92930FF5BD87282" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Defined Contribution Plan, Maximum Annual Contributions Per Employee, Percent</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_DefinedContributionPlanMaximumAnnualContributionsPerEmployeePercent" xlink:label="loc_us-gaap_DefinedContributionPlanMaximumAnnualContributionsPerEmployeePercent_12FF79A12F20B960E92930FF5BD87282" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DefinedContributionPlanMaximumAnnualContributionsPerEmployeePercent_12FF79A12F20B960E92930FF5BD87282" xlink:to="lab_us-gaap_DefinedContributionPlanMaximumAnnualContributionsPerEmployeePercent_12FF79A12F20B960E92930FF5BD87282" xlink:type="arc" />
    <link:label id="lab_us-gaap_DefinedContributionPlanEmployerMatchingContributionPercentOfMatch_447E41C4E3A86385391230FF5BD80138_terseLabel_en-US" xlink:label="lab_us-gaap_DefinedContributionPlanEmployerMatchingContributionPercentOfMatch_447E41C4E3A86385391230FF5BD80138" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Company match percent</link:label>
    <link:label id="lab_us-gaap_DefinedContributionPlanEmployerMatchingContributionPercentOfMatch_447E41C4E3A86385391230FF5BD80138_label_en-US" xlink:label="lab_us-gaap_DefinedContributionPlanEmployerMatchingContributionPercentOfMatch_447E41C4E3A86385391230FF5BD80138" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Defined Contribution Plan, Employer Matching Contribution, Percent of Match</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_DefinedContributionPlanEmployerMatchingContributionPercentOfMatch" xlink:label="loc_us-gaap_DefinedContributionPlanEmployerMatchingContributionPercentOfMatch_447E41C4E3A86385391230FF5BD80138" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DefinedContributionPlanEmployerMatchingContributionPercentOfMatch_447E41C4E3A86385391230FF5BD80138" xlink:to="lab_us-gaap_DefinedContributionPlanEmployerMatchingContributionPercentOfMatch_447E41C4E3A86385391230FF5BD80138" xlink:type="arc" />
    <link:label id="lab_us-gaap_DefinedContributionPlanEmployerMatchingContributionPercent_18AACB096975C85137AB30FF5BD9F518_terseLabel_en-US" xlink:label="lab_us-gaap_DefinedContributionPlanEmployerMatchingContributionPercent_18AACB096975C85137AB30FF5BD9F518" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Percent of employee contribution</link:label>
    <link:label id="lab_us-gaap_DefinedContributionPlanEmployerMatchingContributionPercent_18AACB096975C85137AB30FF5BD9F518_label_en-US" xlink:label="lab_us-gaap_DefinedContributionPlanEmployerMatchingContributionPercent_18AACB096975C85137AB30FF5BD9F518" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Defined Contribution Plan, Employer Matching Contribution, Percent of Employees' Gross Pay</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_DefinedContributionPlanEmployerMatchingContributionPercent" xlink:label="loc_us-gaap_DefinedContributionPlanEmployerMatchingContributionPercent_18AACB096975C85137AB30FF5BD9F518" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DefinedContributionPlanEmployerMatchingContributionPercent_18AACB096975C85137AB30FF5BD9F518" xlink:to="lab_us-gaap_DefinedContributionPlanEmployerMatchingContributionPercent_18AACB096975C85137AB30FF5BD9F518" xlink:type="arc" />
    <link:label id="lab_cgnx_CompanyContributionsVestAtEndOfTwoYear_4349296B18DB41CF72B630FF5BD9607F_terseLabel_en-US" xlink:label="lab_cgnx_CompanyContributionsVestAtEndOfTwoYear_4349296B18DB41CF72B630FF5BD9607F" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Company contributions vest at end of two years</link:label>
    <link:label id="lab_cgnx_CompanyContributionsVestAtEndOfTwoYear_4349296B18DB41CF72B630FF5BD9607F_label_en-US" xlink:label="lab_cgnx_CompanyContributionsVestAtEndOfTwoYear_4349296B18DB41CF72B630FF5BD9607F" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Company Contributions Vest At End Of Two Year</link:label>
    <link:label id="lab_cgnx_CompanyContributionsVestAtEndOfTwoYear_4349296B18DB41CF72B630FF5BD9607F_documentation_en-US" xlink:label="lab_cgnx_CompanyContributionsVestAtEndOfTwoYear_4349296B18DB41CF72B630FF5BD9607F" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Company contributions vest at end of two year.</link:label>
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_CompanyContributionsVestAtEndOfTwoYear" xlink:label="loc_cgnx_CompanyContributionsVestAtEndOfTwoYear_4349296B18DB41CF72B630FF5BD9607F" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_CompanyContributionsVestAtEndOfTwoYear_4349296B18DB41CF72B630FF5BD9607F" xlink:to="lab_cgnx_CompanyContributionsVestAtEndOfTwoYear_4349296B18DB41CF72B630FF5BD9607F" xlink:type="arc" />
    <link:label id="lab_cgnx_CompanyContributionsVestAtEndOfThreeYears_055B845AABE7996D915530FF5BD993D1_terseLabel_en-US" xlink:label="lab_cgnx_CompanyContributionsVestAtEndOfThreeYears_055B845AABE7996D915530FF5BD993D1" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Company contributions vest at end of three years</link:label>
    <link:label id="lab_cgnx_CompanyContributionsVestAtEndOfThreeYears_055B845AABE7996D915530FF5BD993D1_label_en-US" xlink:label="lab_cgnx_CompanyContributionsVestAtEndOfThreeYears_055B845AABE7996D915530FF5BD993D1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Company Contributions Vest At End Of Three Years</link:label>
    <link:label id="lab_cgnx_CompanyContributionsVestAtEndOfThreeYears_055B845AABE7996D915530FF5BD993D1_documentation_en-US" xlink:label="lab_cgnx_CompanyContributionsVestAtEndOfThreeYears_055B845AABE7996D915530FF5BD993D1" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Company contributions vest at end of three years.</link:label>
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_CompanyContributionsVestAtEndOfThreeYears" xlink:label="loc_cgnx_CompanyContributionsVestAtEndOfThreeYears_055B845AABE7996D915530FF5BD993D1" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_CompanyContributionsVestAtEndOfThreeYears_055B845AABE7996D915530FF5BD993D1" xlink:to="lab_cgnx_CompanyContributionsVestAtEndOfThreeYears_055B845AABE7996D915530FF5BD993D1" xlink:type="arc" />
    <link:label id="lab_cgnx_CompanyContributionsVestAtEndOfFourYears_11F578D17477B88F9F6430FF5BD913C7_totalLabel_en-US" xlink:label="lab_cgnx_CompanyContributionsVestAtEndOfFourYears_11F578D17477B88F9F6430FF5BD913C7" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xml:lang="en-US">Company contributions vest at end of four years</link:label>
    <link:label id="lab_cgnx_CompanyContributionsVestAtEndOfFourYears_11F578D17477B88F9F6430FF5BD913C7_label_en-US" xlink:label="lab_cgnx_CompanyContributionsVestAtEndOfFourYears_11F578D17477B88F9F6430FF5BD913C7" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Company Contributions Vest At End Of Four Years</link:label>
    <link:label id="lab_cgnx_CompanyContributionsVestAtEndOfFourYears_11F578D17477B88F9F6430FF5BD913C7_documentation_en-US" xlink:label="lab_cgnx_CompanyContributionsVestAtEndOfFourYears_11F578D17477B88F9F6430FF5BD913C7" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Company contributions vest at end of four years.</link:label>
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_CompanyContributionsVestAtEndOfFourYears" xlink:label="loc_cgnx_CompanyContributionsVestAtEndOfFourYears_11F578D17477B88F9F6430FF5BD913C7" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_CompanyContributionsVestAtEndOfFourYears_11F578D17477B88F9F6430FF5BD913C7" xlink:to="lab_cgnx_CompanyContributionsVestAtEndOfFourYears_11F578D17477B88F9F6430FF5BD913C7" xlink:type="arc" />
    <link:label id="lab_cgnx_CompanyContributionsVestAtEndOfFiveYears_97AC939970AF17A5426730FF5BD95A19_terseLabel_en-US" xlink:label="lab_cgnx_CompanyContributionsVestAtEndOfFiveYears_97AC939970AF17A5426730FF5BD95A19" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Company contributions vest at end of five years</link:label>
    <link:label id="lab_cgnx_CompanyContributionsVestAtEndOfFiveYears_97AC939970AF17A5426730FF5BD95A19_label_en-US" xlink:label="lab_cgnx_CompanyContributionsVestAtEndOfFiveYears_97AC939970AF17A5426730FF5BD95A19" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Company Contributions Vest At End Of Five Years</link:label>
    <link:label id="lab_cgnx_CompanyContributionsVestAtEndOfFiveYears_97AC939970AF17A5426730FF5BD95A19_documentation_en-US" xlink:label="lab_cgnx_CompanyContributionsVestAtEndOfFiveYears_97AC939970AF17A5426730FF5BD95A19" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Company contributions vest at end of five years.</link:label>
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_CompanyContributionsVestAtEndOfFiveYears" xlink:label="loc_cgnx_CompanyContributionsVestAtEndOfFiveYears_97AC939970AF17A5426730FF5BD95A19" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_CompanyContributionsVestAtEndOfFiveYears_97AC939970AF17A5426730FF5BD95A19" xlink:to="lab_cgnx_CompanyContributionsVestAtEndOfFiveYears_97AC939970AF17A5426730FF5BD95A19" xlink:type="arc" />
    <link:label id="lab_us-gaap_DefinedContributionPlanCostRecognized_44FD1F0AC8A39605B5EE30FF5BD96EEA_terseLabel_en-US" xlink:label="lab_us-gaap_DefinedContributionPlanCostRecognized_44FD1F0AC8A39605B5EE30FF5BD96EEA" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Company contributions to employee savings plan</link:label>
    <link:label id="lab_us-gaap_DefinedContributionPlanCostRecognized_44FD1F0AC8A39605B5EE30FF5BD96EEA_label_en-US" xlink:label="lab_us-gaap_DefinedContributionPlanCostRecognized_44FD1F0AC8A39605B5EE30FF5BD96EEA" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Defined Contribution Plan, Cost</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_DefinedContributionPlanCostRecognized" xlink:label="loc_us-gaap_DefinedContributionPlanCostRecognized_44FD1F0AC8A39605B5EE30FF5BD96EEA" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DefinedContributionPlanCostRecognized_44FD1F0AC8A39605B5EE30FF5BD96EEA" xlink:to="lab_us-gaap_DefinedContributionPlanCostRecognized_44FD1F0AC8A39605B5EE30FF5BD96EEA" xlink:type="arc" />
    <link:label id="lab_us-gaap_OperatingLeaseExpense_E9B6D2C27EBC440204B6F3FD0EE9510E_terseLabel_en-US" xlink:label="lab_us-gaap_OperatingLeaseExpense_E9B6D2C27EBC440204B6F3FD0EE9510E" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Operating lease expense</link:label>
    <link:label id="lab_us-gaap_OperatingLeaseExpense_E9B6D2C27EBC440204B6F3FD0EE9510E_label_en-US" xlink:label="lab_us-gaap_OperatingLeaseExpense_E9B6D2C27EBC440204B6F3FD0EE9510E" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Operating Lease, Expense</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_OperatingLeaseExpense" xlink:label="loc_us-gaap_OperatingLeaseExpense_E9B6D2C27EBC440204B6F3FD0EE9510E" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_OperatingLeaseExpense_E9B6D2C27EBC440204B6F3FD0EE9510E" xlink:to="lab_us-gaap_OperatingLeaseExpense_E9B6D2C27EBC440204B6F3FD0EE9510E" xlink:type="arc" />
    <link:label id="lab_us-gaap_OperatingLeasePayments_C0D2A231D57B0C3A37B4F3FDAA0D88B8_terseLabel_en-US" xlink:label="lab_us-gaap_OperatingLeasePayments_C0D2A231D57B0C3A37B4F3FDAA0D88B8" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Operating lease payments</link:label>
    <link:label id="lab_us-gaap_OperatingLeasePayments_C0D2A231D57B0C3A37B4F3FDAA0D88B8_label_en-US" xlink:label="lab_us-gaap_OperatingLeasePayments_C0D2A231D57B0C3A37B4F3FDAA0D88B8" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Operating Lease, Payments</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_OperatingLeasePayments" xlink:label="loc_us-gaap_OperatingLeasePayments_C0D2A231D57B0C3A37B4F3FDAA0D88B8" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_OperatingLeasePayments_C0D2A231D57B0C3A37B4F3FDAA0D88B8" xlink:to="lab_us-gaap_OperatingLeasePayments_C0D2A231D57B0C3A37B4F3FDAA0D88B8" xlink:type="arc" />
    <link:label id="lab_cgnx_OperatingLeaseExpenseNoLiabilityOrAssetRecognized_AE2BF7D5391C5C6EA8FFF3FFA888D701_terseLabel_en-US" xlink:label="lab_cgnx_OperatingLeaseExpenseNoLiabilityOrAssetRecognized_AE2BF7D5391C5C6EA8FFF3FFA888D701" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Operating lease expense for which no liability or asset was recognized</link:label>
    <link:label id="lab_cgnx_OperatingLeaseExpenseNoLiabilityOrAssetRecognized_AE2BF7D5391C5C6EA8FFF3FFA888D701_label_en-US" xlink:label="lab_cgnx_OperatingLeaseExpenseNoLiabilityOrAssetRecognized_AE2BF7D5391C5C6EA8FFF3FFA888D701" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Operating Lease, Expense, No Liability Or Asset Recognized</link:label>
    <link:label id="lab_cgnx_OperatingLeaseExpenseNoLiabilityOrAssetRecognized_AE2BF7D5391C5C6EA8FFF3FFA888D701_documentation_en-US" xlink:label="lab_cgnx_OperatingLeaseExpenseNoLiabilityOrAssetRecognized_AE2BF7D5391C5C6EA8FFF3FFA888D701" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Operating Lease, Expense, No Liability Or Asset Recognized</link:label>
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_OperatingLeaseExpenseNoLiabilityOrAssetRecognized" xlink:label="loc_cgnx_OperatingLeaseExpenseNoLiabilityOrAssetRecognized_AE2BF7D5391C5C6EA8FFF3FFA888D701" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_OperatingLeaseExpenseNoLiabilityOrAssetRecognized_AE2BF7D5391C5C6EA8FFF3FFA888D701" xlink:to="lab_cgnx_OperatingLeaseExpenseNoLiabilityOrAssetRecognized_AE2BF7D5391C5C6EA8FFF3FFA888D701" xlink:type="arc" />
    <link:label id="lab_us-gaap_LeaseAndRentalExpense_9E60831B7BDB419298C2F3FE8082801C_terseLabel_en-US" xlink:label="lab_us-gaap_LeaseAndRentalExpense_9E60831B7BDB419298C2F3FE8082801C" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Rent expense</link:label>
    <link:label id="lab_us-gaap_LeaseAndRentalExpense_9E60831B7BDB419298C2F3FE8082801C_label_en-US" xlink:label="lab_us-gaap_LeaseAndRentalExpense_9E60831B7BDB419298C2F3FE8082801C" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Operating Leases, Rent Expense</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_LeaseAndRentalExpense" xlink:label="loc_us-gaap_LeaseAndRentalExpense_9E60831B7BDB419298C2F3FE8082801C" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_LeaseAndRentalExpense_9E60831B7BDB419298C2F3FE8082801C" xlink:to="lab_us-gaap_LeaseAndRentalExpense_9E60831B7BDB419298C2F3FE8082801C" xlink:type="arc" />
    <link:label id="lab_us-gaap_OperatingLeaseWeightedAverageDiscountRatePercent_D51C54562CC5D6B0AEDFF4044DEEAC03_terseLabel_en-US" xlink:label="lab_us-gaap_OperatingLeaseWeightedAverageDiscountRatePercent_D51C54562CC5D6B0AEDFF4044DEEAC03" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Operating lease, weighted average discount rate (percent)</link:label>
    <link:label id="lab_us-gaap_OperatingLeaseWeightedAverageDiscountRatePercent_D51C54562CC5D6B0AEDFF4044DEEAC03_label_en-US" xlink:label="lab_us-gaap_OperatingLeaseWeightedAverageDiscountRatePercent_D51C54562CC5D6B0AEDFF4044DEEAC03" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Operating Lease, Weighted Average Discount Rate, Percent</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_OperatingLeaseWeightedAverageDiscountRatePercent" xlink:label="loc_us-gaap_OperatingLeaseWeightedAverageDiscountRatePercent_D51C54562CC5D6B0AEDFF4044DEEAC03" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_OperatingLeaseWeightedAverageDiscountRatePercent_D51C54562CC5D6B0AEDFF4044DEEAC03" xlink:to="lab_us-gaap_OperatingLeaseWeightedAverageDiscountRatePercent_D51C54562CC5D6B0AEDFF4044DEEAC03" xlink:type="arc" />
    <link:label id="lab_us-gaap_OperatingLeaseWeightedAverageRemainingLeaseTerm1_88224D8961D9ACCD7C00F4056057ED40_terseLabel_en-US" xlink:label="lab_us-gaap_OperatingLeaseWeightedAverageRemainingLeaseTerm1_88224D8961D9ACCD7C00F4056057ED40" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Operating lease, weighted average remaining lease term (years)</link:label>
    <link:label id="lab_us-gaap_OperatingLeaseWeightedAverageRemainingLeaseTerm1_88224D8961D9ACCD7C00F4056057ED40_label_en-US" xlink:label="lab_us-gaap_OperatingLeaseWeightedAverageRemainingLeaseTerm1_88224D8961D9ACCD7C00F4056057ED40" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Operating Lease, Weighted Average Remaining Lease Term</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_OperatingLeaseWeightedAverageRemainingLeaseTerm1" xlink:label="loc_us-gaap_OperatingLeaseWeightedAverageRemainingLeaseTerm1_88224D8961D9ACCD7C00F4056057ED40" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_OperatingLeaseWeightedAverageRemainingLeaseTerm1_88224D8961D9ACCD7C00F4056057ED40" xlink:to="lab_us-gaap_OperatingLeaseWeightedAverageRemainingLeaseTerm1_88224D8961D9ACCD7C00F4056057ED40" xlink:type="arc" />
    <link:label id="lab_us-gaap_OperatingLeaseLeaseIncome_67FD589BD10ED0184008F406DD4489F4_terseLabel_en-US" xlink:label="lab_us-gaap_OperatingLeaseLeaseIncome_67FD589BD10ED0184008F406DD4489F4" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Operating lease income</link:label>
    <link:label id="lab_us-gaap_OperatingLeaseLeaseIncome_67FD589BD10ED0184008F406DD4489F4_label_en-US" xlink:label="lab_us-gaap_OperatingLeaseLeaseIncome_67FD589BD10ED0184008F406DD4489F4" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Operating Lease, Lease Income</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_OperatingLeaseLeaseIncome" xlink:label="loc_us-gaap_OperatingLeaseLeaseIncome_67FD589BD10ED0184008F406DD4489F4" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_OperatingLeaseLeaseIncome_67FD589BD10ED0184008F406DD4489F4" xlink:to="lab_us-gaap_OperatingLeaseLeaseIncome_67FD589BD10ED0184008F406DD4489F4" xlink:type="arc" />
    <link:label id="lab_us-gaap_RentalIncomeNonoperating_6ABF3F6FEEC6CF42C8CBF408ECB0B99B_terseLabel_en-US" xlink:label="lab_us-gaap_RentalIncomeNonoperating_6ABF3F6FEEC6CF42C8CBF408ECB0B99B" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Operating lease income</link:label>
    <link:label id="lab_us-gaap_RentalIncomeNonoperating_6ABF3F6FEEC6CF42C8CBF408ECB0B99B_label_en-US" xlink:label="lab_us-gaap_RentalIncomeNonoperating_6ABF3F6FEEC6CF42C8CBF408ECB0B99B" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Rental Income, Nonoperating</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_RentalIncomeNonoperating" xlink:label="loc_us-gaap_RentalIncomeNonoperating_6ABF3F6FEEC6CF42C8CBF408ECB0B99B" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_RentalIncomeNonoperating_6ABF3F6FEEC6CF42C8CBF408ECB0B99B" xlink:to="lab_us-gaap_RentalIncomeNonoperating_6ABF3F6FEEC6CF42C8CBF408ECB0B99B" xlink:type="arc" />
    <link:label id="lab_us-gaap_TechnologyBasedIntangibleAssetsMember_31DAAE689F5E185B4467FD820CAEE95D_terseLabel_en-US" xlink:label="lab_us-gaap_TechnologyBasedIntangibleAssetsMember_31DAAE689F5E185B4467FD820CAEE95D" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Technology-Based Intangible Assets [Member]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_TechnologyBasedIntangibleAssetsMember" xlink:label="loc_us-gaap_TechnologyBasedIntangibleAssetsMember_31DAAE689F5E185B4467FD820CAEE95D" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_TechnologyBasedIntangibleAssetsMember_31DAAE689F5E185B4467FD820CAEE95D" xlink:to="lab_us-gaap_TechnologyBasedIntangibleAssetsMember_31DAAE689F5E185B4467FD820CAEE95D" xlink:type="arc" />
    <link:label id="lab_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCashAndEquivalents_DD39A66A13759968BFEDFD820CAF939C_verboseLabel_en-US" xlink:label="lab_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCashAndEquivalents_DD39A66A13759968BFEDFD820CAF939C" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xml:lang="en-US">Cash</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCashAndEquivalents" xlink:label="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCashAndEquivalents_DD39A66A13759968BFEDFD820CAF939C" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCashAndEquivalents_DD39A66A13759968BFEDFD820CAF939C" xlink:to="lab_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCashAndEquivalents_DD39A66A13759968BFEDFD820CAF939C" xlink:type="arc" />
    <link:label id="lab_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxLiabilities_0F0CA5C4D8589696BEC8FD820CB01E44_negatedLabel_en-US" xlink:label="lab_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxLiabilities_0F0CA5C4D8589696BEC8FD820CB01E44" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:type="resource" xml:lang="en-US">Deferred income tax liability</link:label>
    <link:label id="lab_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxLiabilities_0F0CA5C4D8589696BEC8FD820CB01E44_label_en-US" xlink:label="lab_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxLiabilities_0F0CA5C4D8589696BEC8FD820CB01E44" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Business Combination, Recognized Identifiable Assets Acquired and Liabilities Assumed, Deferred Tax Liabilities</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxLiabilities" xlink:label="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxLiabilities_0F0CA5C4D8589696BEC8FD820CB01E44" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxLiabilities_0F0CA5C4D8589696BEC8FD820CB01E44" xlink:to="lab_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxLiabilities_0F0CA5C4D8589696BEC8FD820CB01E44" xlink:type="arc" />
    <link:label id="lab_us-gaap_MovementInStandardProductWarrantyAccrualRollForward_88A6C962E233D33BE04F8095E732366B_terseLabel_en-US" xlink:label="lab_us-gaap_MovementInStandardProductWarrantyAccrualRollForward_88A6C962E233D33BE04F8095E732366B" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Movement in Standard Product Warranty Accrual [Roll Forward]</link:label>
    <link:label id="lab_us-gaap_MovementInStandardProductWarrantyAccrualRollForward_88A6C962E233D33BE04F8095E732366B_label_en-US" xlink:label="lab_us-gaap_MovementInStandardProductWarrantyAccrualRollForward_88A6C962E233D33BE04F8095E732366B" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Movement in Standard Product Warranty Accrual [Roll Forward]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_MovementInStandardProductWarrantyAccrualRollForward" xlink:label="loc_us-gaap_MovementInStandardProductWarrantyAccrualRollForward_88A6C962E233D33BE04F8095E732366B" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_MovementInStandardProductWarrantyAccrualRollForward_88A6C962E233D33BE04F8095E732366B" xlink:to="lab_us-gaap_MovementInStandardProductWarrantyAccrualRollForward_88A6C962E233D33BE04F8095E732366B" xlink:type="arc" />
    <link:label id="lab_us-gaap_ProductWarrantyAccrual_42950AD70BB4CEC42AEA8095E7320DC6_periodStartLabel_en-US" xlink:label="lab_us-gaap_ProductWarrantyAccrual_42950AD70BB4CEC42AEA8095E7320DC6" xlink:role="http://www.xbrl.org/2003/role/periodStartLabel" xlink:type="resource" xml:lang="en-US">Beginning Balance</link:label>
    <link:label id="lab_us-gaap_ProductWarrantyAccrual_42950AD70BB4CEC42AEA8095E7320DC6_label_en-US" xlink:label="lab_us-gaap_ProductWarrantyAccrual_42950AD70BB4CEC42AEA8095E7320DC6" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Standard and Extended Product Warranty Accrual</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ProductWarrantyAccrual" xlink:label="loc_us-gaap_ProductWarrantyAccrual_42950AD70BB4CEC42AEA8095E7320DC6" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ProductWarrantyAccrual_42950AD70BB4CEC42AEA8095E7320DC6" xlink:to="lab_us-gaap_ProductWarrantyAccrual_42950AD70BB4CEC42AEA8095E7320DC6" xlink:type="arc" />
    <link:label id="lab_us-gaap_ProductWarrantyAccrualWarrantiesIssued_46D8F017413B58EC36448095E73258AF_terseLabel_en-US" xlink:label="lab_us-gaap_ProductWarrantyAccrualWarrantiesIssued_46D8F017413B58EC36448095E73258AF" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Provisions for warranties issued during the period</link:label>
    <link:label id="lab_us-gaap_ProductWarrantyAccrualWarrantiesIssued_46D8F017413B58EC36448095E73258AF_label_en-US" xlink:label="lab_us-gaap_ProductWarrantyAccrualWarrantiesIssued_46D8F017413B58EC36448095E73258AF" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Standard and Extended Product Warranty Accrual, Increase for Warranties Issued</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ProductWarrantyAccrualWarrantiesIssued" xlink:label="loc_us-gaap_ProductWarrantyAccrualWarrantiesIssued_46D8F017413B58EC36448095E73258AF" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ProductWarrantyAccrualWarrantiesIssued_46D8F017413B58EC36448095E73258AF" xlink:to="lab_us-gaap_ProductWarrantyAccrualWarrantiesIssued_46D8F017413B58EC36448095E73258AF" xlink:type="arc" />
    <link:label id="lab_us-gaap_ProductWarrantyAccrualPayments_3BA89CAD848E7FB43D758095E7320D1D_negatedLabel_en-US" xlink:label="lab_us-gaap_ProductWarrantyAccrualPayments_3BA89CAD848E7FB43D758095E7320D1D" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:type="resource" xml:lang="en-US">Fulfillment of warranty obligations</link:label>
    <link:label id="lab_us-gaap_ProductWarrantyAccrualPayments_3BA89CAD848E7FB43D758095E7320D1D_label_en-US" xlink:label="lab_us-gaap_ProductWarrantyAccrualPayments_3BA89CAD848E7FB43D758095E7320D1D" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Standard and Extended Product Warranty Accrual, Decrease for Payments</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ProductWarrantyAccrualPayments" xlink:label="loc_us-gaap_ProductWarrantyAccrualPayments_3BA89CAD848E7FB43D758095E7320D1D" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ProductWarrantyAccrualPayments_3BA89CAD848E7FB43D758095E7320D1D" xlink:to="lab_us-gaap_ProductWarrantyAccrualPayments_3BA89CAD848E7FB43D758095E7320D1D" xlink:type="arc" />
    <link:label id="lab_us-gaap_StandardAndExtendedProductWarrantyAccrualForeignCurrencyTranslationGainLoss_7C7B8425D313415F093D8095E73243E5_terseLabel_en-US" xlink:label="lab_us-gaap_StandardAndExtendedProductWarrantyAccrualForeignCurrencyTranslationGainLoss_7C7B8425D313415F093D8095E73243E5" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Foreign exchange rate changes</link:label>
    <link:label id="lab_us-gaap_StandardAndExtendedProductWarrantyAccrualForeignCurrencyTranslationGainLoss_7C7B8425D313415F093D8095E73243E5_label_en-US" xlink:label="lab_us-gaap_StandardAndExtendedProductWarrantyAccrualForeignCurrencyTranslationGainLoss_7C7B8425D313415F093D8095E73243E5" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Standard and Extended Product Warranty Accrual, Foreign Currency Translation Gain (Loss)</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_StandardAndExtendedProductWarrantyAccrualForeignCurrencyTranslationGainLoss" xlink:label="loc_us-gaap_StandardAndExtendedProductWarrantyAccrualForeignCurrencyTranslationGainLoss_7C7B8425D313415F093D8095E73243E5" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_StandardAndExtendedProductWarrantyAccrualForeignCurrencyTranslationGainLoss_7C7B8425D313415F093D8095E73243E5" xlink:to="lab_us-gaap_StandardAndExtendedProductWarrantyAccrualForeignCurrencyTranslationGainLoss_7C7B8425D313415F093D8095E73243E5" xlink:type="arc" />
    <link:label id="lab_us-gaap_ProductWarrantyAccrual_1684CE63BE5689978E338095E732DF17_periodEndLabel_en-US" xlink:label="lab_us-gaap_ProductWarrantyAccrual_1684CE63BE5689978E338095E732DF17" xlink:role="http://www.xbrl.org/2003/role/periodEndLabel" xlink:type="resource" xml:lang="en-US">Ending Balance</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ProductWarrantyAccrual" xlink:label="loc_us-gaap_ProductWarrantyAccrual_1684CE63BE5689978E338095E732DF17" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ProductWarrantyAccrual_1684CE63BE5689978E338095E732DF17" xlink:to="lab_us-gaap_ProductWarrantyAccrual_1684CE63BE5689978E338095E732DF17" xlink:type="arc" />
    <link:label id="lab_us-gaap_SignificantAccountingPoliciesTextBlock_002A3068CAAE948A4A7C8095E67E74ED_terseLabel_en-US" xlink:label="lab_us-gaap_SignificantAccountingPoliciesTextBlock_002A3068CAAE948A4A7C8095E67E74ED" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Summary of Significant Accounting Policies</link:label>
    <link:label id="lab_us-gaap_SignificantAccountingPoliciesTextBlock_002A3068CAAE948A4A7C8095E67E74ED_label_en-US" xlink:label="lab_us-gaap_SignificantAccountingPoliciesTextBlock_002A3068CAAE948A4A7C8095E67E74ED" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Significant Accounting Policies [Text Block]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_SignificantAccountingPoliciesTextBlock" xlink:label="loc_us-gaap_SignificantAccountingPoliciesTextBlock_002A3068CAAE948A4A7C8095E67E74ED" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_SignificantAccountingPoliciesTextBlock_002A3068CAAE948A4A7C8095E67E74ED" xlink:to="lab_us-gaap_SignificantAccountingPoliciesTextBlock_002A3068CAAE948A4A7C8095E67E74ED" xlink:type="arc" />
    <link:label id="lab_us-gaap_LandMember_16A22946F242E2B52DBAF3C8FFE51DD2_terseLabel_en-US" xlink:label="lab_us-gaap_LandMember_16A22946F242E2B52DBAF3C8FFE51DD2" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Land [Member]</link:label>
    <link:label id="lab_us-gaap_LandMember_16A22946F242E2B52DBAF3C8FFE51DD2_label_en-US" xlink:label="lab_us-gaap_LandMember_16A22946F242E2B52DBAF3C8FFE51DD2" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Land [Member]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_LandMember" xlink:label="loc_us-gaap_LandMember_16A22946F242E2B52DBAF3C8FFE51DD2" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_LandMember_16A22946F242E2B52DBAF3C8FFE51DD2" xlink:to="lab_us-gaap_LandMember_16A22946F242E2B52DBAF3C8FFE51DD2" xlink:type="arc" />
    <link:label id="lab_us-gaap_LeaseholdImprovementsMember_A20526049B615C49F86AF3C8FFE67387_verboseLabel_en-US" xlink:label="lab_us-gaap_LeaseholdImprovementsMember_A20526049B615C49F86AF3C8FFE67387" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xml:lang="en-US">Leasehold Improvements [Member]</link:label>
    <link:label id="lab_us-gaap_LeaseholdImprovementsMember_A20526049B615C49F86AF3C8FFE67387_label_en-US" xlink:label="lab_us-gaap_LeaseholdImprovementsMember_A20526049B615C49F86AF3C8FFE67387" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Leasehold Improvements [Member]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_LeaseholdImprovementsMember" xlink:label="loc_us-gaap_LeaseholdImprovementsMember_A20526049B615C49F86AF3C8FFE67387" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_LeaseholdImprovementsMember_A20526049B615C49F86AF3C8FFE67387" xlink:to="lab_us-gaap_LeaseholdImprovementsMember_A20526049B615C49F86AF3C8FFE67387" xlink:type="arc" />
    <link:label id="lab_cgnx_HardwareAndSoftwareMember_A110795A7683F75ABC9BF3C8FFE600C0_terseLabel_en-US" xlink:label="lab_cgnx_HardwareAndSoftwareMember_A110795A7683F75ABC9BF3C8FFE600C0" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Computer Hardware And Software [Member]</link:label>
    <link:label id="lab_cgnx_HardwareAndSoftwareMember_A110795A7683F75ABC9BF3C8FFE600C0_label_en-US" xlink:label="lab_cgnx_HardwareAndSoftwareMember_A110795A7683F75ABC9BF3C8FFE600C0" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Hardware And Software [Member]</link:label>
    <link:label id="lab_cgnx_HardwareAndSoftwareMember_A110795A7683F75ABC9BF3C8FFE600C0_documentation_en-US" xlink:label="lab_cgnx_HardwareAndSoftwareMember_A110795A7683F75ABC9BF3C8FFE600C0" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Hardware and software.</link:label>
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_HardwareAndSoftwareMember" xlink:label="loc_cgnx_HardwareAndSoftwareMember_A110795A7683F75ABC9BF3C8FFE600C0" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_HardwareAndSoftwareMember_A110795A7683F75ABC9BF3C8FFE600C0" xlink:to="lab_cgnx_HardwareAndSoftwareMember_A110795A7683F75ABC9BF3C8FFE600C0" xlink:type="arc" />
    <link:label id="lab_us-gaap_PropertyPlantAndEquipmentGross_6C1D70A4ED67A4EA2777F3C8FFE6047F_terseLabel_en-US" xlink:label="lab_us-gaap_PropertyPlantAndEquipmentGross_6C1D70A4ED67A4EA2777F3C8FFE6047F" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Property, plant and equipment, gross</link:label>
    <link:label id="lab_us-gaap_PropertyPlantAndEquipmentGross_6C1D70A4ED67A4EA2777F3C8FFE6047F_label_en-US" xlink:label="lab_us-gaap_PropertyPlantAndEquipmentGross_6C1D70A4ED67A4EA2777F3C8FFE6047F" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Property, Plant and Equipment, Gross</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_PropertyPlantAndEquipmentGross" xlink:label="loc_us-gaap_PropertyPlantAndEquipmentGross_6C1D70A4ED67A4EA2777F3C8FFE6047F" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentGross_6C1D70A4ED67A4EA2777F3C8FFE6047F" xlink:to="lab_us-gaap_PropertyPlantAndEquipmentGross_6C1D70A4ED67A4EA2777F3C8FFE6047F" xlink:type="arc" />
    <link:label id="lab_us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment_82CDFF486782EBF3545DF3C8FFE7F821_negatedLabel_en-US" xlink:label="lab_us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment_82CDFF486782EBF3545DF3C8FFE7F821" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:type="resource" xml:lang="en-US">Less: accumulated depreciation</link:label>
    <link:label id="lab_us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment_82CDFF486782EBF3545DF3C8FFE7F821_label_en-US" xlink:label="lab_us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment_82CDFF486782EBF3545DF3C8FFE7F821" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Accumulated Depreciation, Depletion and Amortization, Property, Plant, and Equipment</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment" xlink:label="loc_us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment_82CDFF486782EBF3545DF3C8FFE7F821" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment_82CDFF486782EBF3545DF3C8FFE7F821" xlink:to="lab_us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment_82CDFF486782EBF3545DF3C8FFE7F821" xlink:type="arc" />
    <link:label id="lab_us-gaap_PropertyPlantAndEquipmentNet_27FEE7A4128862D569EDF3C8FFE77FC2_totalLabel_en-US" xlink:label="lab_us-gaap_PropertyPlantAndEquipmentNet_27FEE7A4128862D569EDF3C8FFE77FC2" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xml:lang="en-US">Property, plant and equipment, net, total</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_PropertyPlantAndEquipmentNet" xlink:label="loc_us-gaap_PropertyPlantAndEquipmentNet_27FEE7A4128862D569EDF3C8FFE77FC2" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentNet_27FEE7A4128862D569EDF3C8FFE77FC2" xlink:to="lab_us-gaap_PropertyPlantAndEquipmentNet_27FEE7A4128862D569EDF3C8FFE77FC2" xlink:type="arc" />
    <link:label id="lab_us-gaap_ProductLiabilityContingencyTable_B41EDFDD84BB556588F3166AA140D0B7_terseLabel_en-US" xlink:label="lab_us-gaap_ProductLiabilityContingencyTable_B41EDFDD84BB556588F3166AA140D0B7" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Product Liability Contingency [Table]</link:label>
    <link:label id="lab_us-gaap_ProductLiabilityContingencyTable_B41EDFDD84BB556588F3166AA140D0B7_label_en-US" xlink:label="lab_us-gaap_ProductLiabilityContingencyTable_B41EDFDD84BB556588F3166AA140D0B7" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Product Liability Contingency [Table]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ProductLiabilityContingencyTable" xlink:label="loc_us-gaap_ProductLiabilityContingencyTable_B41EDFDD84BB556588F3166AA140D0B7" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ProductLiabilityContingencyTable_B41EDFDD84BB556588F3166AA140D0B7" xlink:to="lab_us-gaap_ProductLiabilityContingencyTable_B41EDFDD84BB556588F3166AA140D0B7" xlink:type="arc" />
    <link:label id="lab_us-gaap_ProductLiabilityContingencyLineItems_07025B67EDCF266583DF166AA1419BB2_terseLabel_en-US" xlink:label="lab_us-gaap_ProductLiabilityContingencyLineItems_07025B67EDCF266583DF166AA1419BB2" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Product Liability Contingency [Line Items]</link:label>
    <link:label id="lab_us-gaap_ProductLiabilityContingencyLineItems_07025B67EDCF266583DF166AA1419BB2_label_en-US" xlink:label="lab_us-gaap_ProductLiabilityContingencyLineItems_07025B67EDCF266583DF166AA1419BB2" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Product Liability Contingency [Line Items]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ProductLiabilityContingencyLineItems" xlink:label="loc_us-gaap_ProductLiabilityContingencyLineItems_07025B67EDCF266583DF166AA1419BB2" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ProductLiabilityContingencyLineItems_07025B67EDCF266583DF166AA1419BB2" xlink:to="lab_us-gaap_ProductLiabilityContingencyLineItems_07025B67EDCF266583DF166AA1419BB2" xlink:type="arc" />
    <link:label id="lab_cgnx_ProductWarrantyPeriod_B1280CE7DCF9E555480C166AA1411D2C_terseLabel_en-US" xlink:label="lab_cgnx_ProductWarrantyPeriod_B1280CE7DCF9E555480C166AA1411D2C" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Product Warranty Period</link:label>
    <link:label id="lab_cgnx_ProductWarrantyPeriod_B1280CE7DCF9E555480C166AA1411D2C_label_en-US" xlink:label="lab_cgnx_ProductWarrantyPeriod_B1280CE7DCF9E555480C166AA1411D2C" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Product Warranty Period</link:label>
    <link:label id="lab_cgnx_ProductWarrantyPeriod_B1280CE7DCF9E555480C166AA1411D2C_documentation_en-US" xlink:label="lab_cgnx_ProductWarrantyPeriod_B1280CE7DCF9E555480C166AA1411D2C" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Product warranty period.</link:label>
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_ProductWarrantyPeriod" xlink:label="loc_cgnx_ProductWarrantyPeriod_B1280CE7DCF9E555480C166AA1411D2C" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_ProductWarrantyPeriod_B1280CE7DCF9E555480C166AA1411D2C" xlink:to="lab_cgnx_ProductWarrantyPeriod_B1280CE7DCF9E555480C166AA1411D2C" xlink:type="arc" />
    <link:label id="lab_us-gaap_InvestmentTypeAxis_E5E98053AD6BADD8F905F3C9001464E7_terseLabel_en-US" xlink:label="lab_us-gaap_InvestmentTypeAxis_E5E98053AD6BADD8F905F3C9001464E7" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Investment Type [Axis]</link:label>
    <link:label id="lab_us-gaap_InvestmentTypeAxis_E5E98053AD6BADD8F905F3C9001464E7_label_en-US" xlink:label="lab_us-gaap_InvestmentTypeAxis_E5E98053AD6BADD8F905F3C9001464E7" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Investment Type [Axis]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_InvestmentTypeAxis" xlink:label="loc_us-gaap_InvestmentTypeAxis_E5E98053AD6BADD8F905F3C9001464E7" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_InvestmentTypeAxis_E5E98053AD6BADD8F905F3C9001464E7" xlink:to="lab_us-gaap_InvestmentTypeAxis_E5E98053AD6BADD8F905F3C9001464E7" xlink:type="arc" />
    <link:label id="lab_us-gaap_InvestmentTypeCategorizationMember_13E1F20D7982A7A9AAB8F3C900147F12_terseLabel_en-US" xlink:label="lab_us-gaap_InvestmentTypeCategorizationMember_13E1F20D7982A7A9AAB8F3C900147F12" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Investment Type Categorization [Domain]</link:label>
    <link:label id="lab_us-gaap_InvestmentTypeCategorizationMember_13E1F20D7982A7A9AAB8F3C900147F12_label_en-US" xlink:label="lab_us-gaap_InvestmentTypeCategorizationMember_13E1F20D7982A7A9AAB8F3C900147F12" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Investments [Domain]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_InvestmentTypeCategorizationMember" xlink:label="loc_us-gaap_InvestmentTypeCategorizationMember_13E1F20D7982A7A9AAB8F3C900147F12" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_InvestmentTypeCategorizationMember_13E1F20D7982A7A9AAB8F3C900147F12" xlink:to="lab_us-gaap_InvestmentTypeCategorizationMember_13E1F20D7982A7A9AAB8F3C900147F12" xlink:type="arc" />
    <link:label id="lab_us-gaap_ShortTermInvestmentsMember_DD924BF217925255DC7BF3C90014F6C7_terseLabel_en-US" xlink:label="lab_us-gaap_ShortTermInvestmentsMember_DD924BF217925255DC7BF3C90014F6C7" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Short-term Investments [Member]</link:label>
    <link:label id="lab_us-gaap_ShortTermInvestmentsMember_DD924BF217925255DC7BF3C90014F6C7_label_en-US" xlink:label="lab_us-gaap_ShortTermInvestmentsMember_DD924BF217925255DC7BF3C90014F6C7" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Short-term Investments [Member]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ShortTermInvestmentsMember" xlink:label="loc_us-gaap_ShortTermInvestmentsMember_DD924BF217925255DC7BF3C90014F6C7" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ShortTermInvestmentsMember_DD924BF217925255DC7BF3C90014F6C7" xlink:to="lab_us-gaap_ShortTermInvestmentsMember_DD924BF217925255DC7BF3C90014F6C7" xlink:type="arc" />
    <link:label id="lab_cgnx_LongTermInvestmentsMember_F5BE412BD7A64E9B0D55F3C90015BF9D_terseLabel_en-US" xlink:label="lab_cgnx_LongTermInvestmentsMember_F5BE412BD7A64E9B0D55F3C90015BF9D" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Long-term investments [Member]</link:label>
    <link:label id="lab_cgnx_LongTermInvestmentsMember_F5BE412BD7A64E9B0D55F3C90015BF9D_label_en-US" xlink:label="lab_cgnx_LongTermInvestmentsMember_F5BE412BD7A64E9B0D55F3C90015BF9D" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Long Term Investments [Member]</link:label>
    <link:label id="lab_cgnx_LongTermInvestmentsMember_F5BE412BD7A64E9B0D55F3C90015BF9D_documentation_en-US" xlink:label="lab_cgnx_LongTermInvestmentsMember_F5BE412BD7A64E9B0D55F3C90015BF9D" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Long-term investments.</link:label>
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_LongTermInvestmentsMember" xlink:label="loc_cgnx_LongTermInvestmentsMember_F5BE412BD7A64E9B0D55F3C90015BF9D" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_LongTermInvestmentsMember_F5BE412BD7A64E9B0D55F3C90015BF9D" xlink:to="lab_cgnx_LongTermInvestmentsMember_F5BE412BD7A64E9B0D55F3C90015BF9D" xlink:type="arc" />
    <link:label id="lab_us-gaap_AvailableForSaleDebtSecuritiesAmortizedCostBasis_D7921001C7B8FEB05661F3C900157B03_totalLabel_en-US" xlink:label="lab_us-gaap_AvailableForSaleDebtSecuritiesAmortizedCostBasis_D7921001C7B8FEB05661F3C900157B03" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xml:lang="en-US">Amortized Cost</link:label>
    <link:label id="lab_us-gaap_AvailableForSaleDebtSecuritiesAmortizedCostBasis_D7921001C7B8FEB05661F3C900157B03_label_en-US" xlink:label="lab_us-gaap_AvailableForSaleDebtSecuritiesAmortizedCostBasis_D7921001C7B8FEB05661F3C900157B03" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Debt Securities, Available-for-sale, Amortized Cost</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_AvailableForSaleDebtSecuritiesAmortizedCostBasis" xlink:label="loc_us-gaap_AvailableForSaleDebtSecuritiesAmortizedCostBasis_D7921001C7B8FEB05661F3C900157B03" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AvailableForSaleDebtSecuritiesAmortizedCostBasis_D7921001C7B8FEB05661F3C900157B03" xlink:to="lab_us-gaap_AvailableForSaleDebtSecuritiesAmortizedCostBasis_D7921001C7B8FEB05661F3C900157B03" xlink:type="arc" />
    <link:label id="lab_us-gaap_AvailableForSaleSecuritiesAccumulatedGrossUnrealizedGainBeforeTax_1D8CB6789D895017A15CF3C900156FA2_terseLabel_en-US" xlink:label="lab_us-gaap_AvailableForSaleSecuritiesAccumulatedGrossUnrealizedGainBeforeTax_1D8CB6789D895017A15CF3C900156FA2" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Gross Unrealized Gains</link:label>
    <link:label id="lab_us-gaap_AvailableForSaleSecuritiesAccumulatedGrossUnrealizedGainBeforeTax_1D8CB6789D895017A15CF3C900156FA2_label_en-US" xlink:label="lab_us-gaap_AvailableForSaleSecuritiesAccumulatedGrossUnrealizedGainBeforeTax_1D8CB6789D895017A15CF3C900156FA2" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Available-for-sale Securities, Accumulated Gross Unrealized Gain, before Tax</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_AvailableForSaleSecuritiesAccumulatedGrossUnrealizedGainBeforeTax" xlink:label="loc_us-gaap_AvailableForSaleSecuritiesAccumulatedGrossUnrealizedGainBeforeTax_1D8CB6789D895017A15CF3C900156FA2" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AvailableForSaleSecuritiesAccumulatedGrossUnrealizedGainBeforeTax_1D8CB6789D895017A15CF3C900156FA2" xlink:to="lab_us-gaap_AvailableForSaleSecuritiesAccumulatedGrossUnrealizedGainBeforeTax_1D8CB6789D895017A15CF3C900156FA2" xlink:type="arc" />
    <link:label id="lab_us-gaap_AvailableForSaleSecuritiesAccumulatedGrossUnrealizedLossBeforeTax_599BF4D206D02B4E6C41F3C90016B282_negatedLabel_en-US" xlink:label="lab_us-gaap_AvailableForSaleSecuritiesAccumulatedGrossUnrealizedLossBeforeTax_599BF4D206D02B4E6C41F3C90016B282" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:type="resource" xml:lang="en-US">Gross Unrealized Losses</link:label>
    <link:label id="lab_us-gaap_AvailableForSaleSecuritiesAccumulatedGrossUnrealizedLossBeforeTax_599BF4D206D02B4E6C41F3C90016B282_label_en-US" xlink:label="lab_us-gaap_AvailableForSaleSecuritiesAccumulatedGrossUnrealizedLossBeforeTax_599BF4D206D02B4E6C41F3C90016B282" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Available-for-sale Securities, Accumulated Gross Unrealized Loss, before Tax</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_AvailableForSaleSecuritiesAccumulatedGrossUnrealizedLossBeforeTax" xlink:label="loc_us-gaap_AvailableForSaleSecuritiesAccumulatedGrossUnrealizedLossBeforeTax_599BF4D206D02B4E6C41F3C90016B282" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AvailableForSaleSecuritiesAccumulatedGrossUnrealizedLossBeforeTax_599BF4D206D02B4E6C41F3C90016B282" xlink:to="lab_us-gaap_AvailableForSaleSecuritiesAccumulatedGrossUnrealizedLossBeforeTax_599BF4D206D02B4E6C41F3C90016B282" xlink:type="arc" />
    <link:label id="lab_us-gaap_AvailableForSaleSecuritiesDebtSecurities_E35F86407F13BEF36031F3C90016A175_terseLabel_en-US" xlink:label="lab_us-gaap_AvailableForSaleSecuritiesDebtSecurities_E35F86407F13BEF36031F3C90016A175" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Fair Value, Total</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_AvailableForSaleSecuritiesDebtSecurities" xlink:label="loc_us-gaap_AvailableForSaleSecuritiesDebtSecurities_E35F86407F13BEF36031F3C90016A175" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AvailableForSaleSecuritiesDebtSecurities_E35F86407F13BEF36031F3C90016A175" xlink:to="lab_us-gaap_AvailableForSaleSecuritiesDebtSecurities_E35F86407F13BEF36031F3C90016A175" xlink:type="arc" />
    <link:label id="lab_us-gaap_GoodwillDisclosureTextBlock_3A238C27CEA4970584F08095E8D906A2_terseLabel_en-US" xlink:label="lab_us-gaap_GoodwillDisclosureTextBlock_3A238C27CEA4970584F08095E8D906A2" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Goodwill</link:label>
    <link:label id="lab_us-gaap_GoodwillDisclosureTextBlock_3A238C27CEA4970584F08095E8D906A2_label_en-US" xlink:label="lab_us-gaap_GoodwillDisclosureTextBlock_3A238C27CEA4970584F08095E8D906A2" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Goodwill Disclosure [Text Block]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_GoodwillDisclosureTextBlock" xlink:label="loc_us-gaap_GoodwillDisclosureTextBlock_3A238C27CEA4970584F08095E8D906A2" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_GoodwillDisclosureTextBlock_3A238C27CEA4970584F08095E8D906A2" xlink:to="lab_us-gaap_GoodwillDisclosureTextBlock_3A238C27CEA4970584F08095E8D906A2" xlink:type="arc" />
    <link:label id="lab_us-gaap_ScheduleOfStockByClassTable_8485FE5FECA11D7C75591683E0D5BB9D_terseLabel_en-US" xlink:label="lab_us-gaap_ScheduleOfStockByClassTable_8485FE5FECA11D7C75591683E0D5BB9D" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Schedule of Stock by Class [Table]</link:label>
    <link:label id="lab_us-gaap_ScheduleOfStockByClassTable_8485FE5FECA11D7C75591683E0D5BB9D_label_en-US" xlink:label="lab_us-gaap_ScheduleOfStockByClassTable_8485FE5FECA11D7C75591683E0D5BB9D" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Schedule of Stock by Class [Table]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ScheduleOfStockByClassTable" xlink:label="loc_us-gaap_ScheduleOfStockByClassTable_8485FE5FECA11D7C75591683E0D5BB9D" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ScheduleOfStockByClassTable_8485FE5FECA11D7C75591683E0D5BB9D" xlink:to="lab_us-gaap_ScheduleOfStockByClassTable_8485FE5FECA11D7C75591683E0D5BB9D" xlink:type="arc" />
    <link:label id="lab_us-gaap_StatementClassOfStockAxis_04BBF4AD407759E3C1561683E0D501E3_terseLabel_en-US" xlink:label="lab_us-gaap_StatementClassOfStockAxis_04BBF4AD407759E3C1561683E0D501E3" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Class of Stock [Axis]</link:label>
    <link:label id="lab_us-gaap_StatementClassOfStockAxis_04BBF4AD407759E3C1561683E0D501E3_label_en-US" xlink:label="lab_us-gaap_StatementClassOfStockAxis_04BBF4AD407759E3C1561683E0D501E3" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Class of Stock [Axis]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_StatementClassOfStockAxis" xlink:label="loc_us-gaap_StatementClassOfStockAxis_04BBF4AD407759E3C1561683E0D501E3" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_StatementClassOfStockAxis_04BBF4AD407759E3C1561683E0D501E3" xlink:to="lab_us-gaap_StatementClassOfStockAxis_04BBF4AD407759E3C1561683E0D501E3" xlink:type="arc" />
    <link:label id="lab_us-gaap_ClassOfStockDomain_EFED2F5A258FCFBFA4A81683E0D5E2D8_terseLabel_en-US" xlink:label="lab_us-gaap_ClassOfStockDomain_EFED2F5A258FCFBFA4A81683E0D5E2D8" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Class of Stock [Domain]</link:label>
    <link:label id="lab_us-gaap_ClassOfStockDomain_EFED2F5A258FCFBFA4A81683E0D5E2D8_label_en-US" xlink:label="lab_us-gaap_ClassOfStockDomain_EFED2F5A258FCFBFA4A81683E0D5E2D8" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Class of Stock [Domain]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ClassOfStockDomain" xlink:label="loc_us-gaap_ClassOfStockDomain_EFED2F5A258FCFBFA4A81683E0D5E2D8" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ClassOfStockDomain_EFED2F5A258FCFBFA4A81683E0D5E2D8" xlink:to="lab_us-gaap_ClassOfStockDomain_EFED2F5A258FCFBFA4A81683E0D5E2D8" xlink:type="arc" />
    <link:label id="lab_us-gaap_ShareRepurchaseProgramAxis_0E9C9791F275078E7FDE1683E0D64932_terseLabel_en-US" xlink:label="lab_us-gaap_ShareRepurchaseProgramAxis_0E9C9791F275078E7FDE1683E0D64932" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Share Repurchase Program [Axis]</link:label>
    <link:label id="lab_us-gaap_ShareRepurchaseProgramAxis_0E9C9791F275078E7FDE1683E0D64932_label_en-US" xlink:label="lab_us-gaap_ShareRepurchaseProgramAxis_0E9C9791F275078E7FDE1683E0D64932" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Share Repurchase Program [Axis]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ShareRepurchaseProgramAxis" xlink:label="loc_us-gaap_ShareRepurchaseProgramAxis_0E9C9791F275078E7FDE1683E0D64932" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ShareRepurchaseProgramAxis_0E9C9791F275078E7FDE1683E0D64932" xlink:to="lab_us-gaap_ShareRepurchaseProgramAxis_0E9C9791F275078E7FDE1683E0D64932" xlink:type="arc" />
    <link:label id="lab_us-gaap_ShareRepurchaseProgramDomain_95B8DFC1E6749D16894E1683E0D67159_terseLabel_en-US" xlink:label="lab_us-gaap_ShareRepurchaseProgramDomain_95B8DFC1E6749D16894E1683E0D67159" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Share Repurchase Program [Domain]</link:label>
    <link:label id="lab_us-gaap_ShareRepurchaseProgramDomain_95B8DFC1E6749D16894E1683E0D67159_label_en-US" xlink:label="lab_us-gaap_ShareRepurchaseProgramDomain_95B8DFC1E6749D16894E1683E0D67159" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Share Repurchase Program [Domain]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ShareRepurchaseProgramDomain" xlink:label="loc_us-gaap_ShareRepurchaseProgramDomain_95B8DFC1E6749D16894E1683E0D67159" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ShareRepurchaseProgramDomain_95B8DFC1E6749D16894E1683E0D67159" xlink:to="lab_us-gaap_ShareRepurchaseProgramDomain_95B8DFC1E6749D16894E1683E0D67159" xlink:type="arc" />
    <link:label id="lab_cgnx_RepurchaseProgram2014Member_64E3999B3D0253961F151683E0D6C7C5_terseLabel_en-US" xlink:label="lab_cgnx_RepurchaseProgram2014Member_64E3999B3D0253961F151683E0D6C7C5" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Repurchase Program 2014 [Member]</link:label>
    <link:label id="lab_cgnx_RepurchaseProgram2014Member_64E3999B3D0253961F151683E0D6C7C5_label_en-US" xlink:label="lab_cgnx_RepurchaseProgram2014Member_64E3999B3D0253961F151683E0D6C7C5" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Repurchase Program 2014 [Member]</link:label>
    <link:label id="lab_cgnx_RepurchaseProgram2014Member_64E3999B3D0253961F151683E0D6C7C5_documentation_en-US" xlink:label="lab_cgnx_RepurchaseProgram2014Member_64E3999B3D0253961F151683E0D6C7C5" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Repurchase Program 2014 [Member]</link:label>
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_RepurchaseProgram2014Member" xlink:label="loc_cgnx_RepurchaseProgram2014Member_64E3999B3D0253961F151683E0D6C7C5" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_RepurchaseProgram2014Member_64E3999B3D0253961F151683E0D6C7C5" xlink:to="lab_cgnx_RepurchaseProgram2014Member_64E3999B3D0253961F151683E0D6C7C5" xlink:type="arc" />
    <link:label id="lab_cgnx_RepurchaseProgramTwentyFifteenMember_3D43861C315B21DDECA01683E0D7FB4A_terseLabel_en-US" xlink:label="lab_cgnx_RepurchaseProgramTwentyFifteenMember_3D43861C315B21DDECA01683E0D7FB4A" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Repurchase Program 2015 [Member]</link:label>
    <link:label id="lab_cgnx_RepurchaseProgramTwentyFifteenMember_3D43861C315B21DDECA01683E0D7FB4A_label_en-US" xlink:label="lab_cgnx_RepurchaseProgramTwentyFifteenMember_3D43861C315B21DDECA01683E0D7FB4A" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Repurchase Program Twenty Fifteen [Member]</link:label>
    <link:label id="lab_cgnx_RepurchaseProgramTwentyFifteenMember_3D43861C315B21DDECA01683E0D7FB4A_documentation_en-US" xlink:label="lab_cgnx_RepurchaseProgramTwentyFifteenMember_3D43861C315B21DDECA01683E0D7FB4A" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Repurchase Program Twenty Fifteen [Member]</link:label>
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_RepurchaseProgramTwentyFifteenMember" xlink:label="loc_cgnx_RepurchaseProgramTwentyFifteenMember_3D43861C315B21DDECA01683E0D7FB4A" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_RepurchaseProgramTwentyFifteenMember_3D43861C315B21DDECA01683E0D7FB4A" xlink:to="lab_cgnx_RepurchaseProgramTwentyFifteenMember_3D43861C315B21DDECA01683E0D7FB4A" xlink:type="arc" />
    <link:label id="lab_cgnx_RepurchaseProgramNovember2015Member_4F75117F1FBE5F1CCA341683E0D7AF78_terseLabel_en-US" xlink:label="lab_cgnx_RepurchaseProgramNovember2015Member_4F75117F1FBE5F1CCA341683E0D7AF78" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Repurchase Program November 2015 [Member]</link:label>
    <link:label id="lab_cgnx_RepurchaseProgramNovember2015Member_4F75117F1FBE5F1CCA341683E0D7AF78_label_en-US" xlink:label="lab_cgnx_RepurchaseProgramNovember2015Member_4F75117F1FBE5F1CCA341683E0D7AF78" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Repurchase Program November 2015 [Member]</link:label>
    <link:label id="lab_cgnx_RepurchaseProgramNovember2015Member_4F75117F1FBE5F1CCA341683E0D7AF78_documentation_en-US" xlink:label="lab_cgnx_RepurchaseProgramNovember2015Member_4F75117F1FBE5F1CCA341683E0D7AF78" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Repurchase Program November 2015 [Member]</link:label>
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_RepurchaseProgramNovember2015Member" xlink:label="loc_cgnx_RepurchaseProgramNovember2015Member_4F75117F1FBE5F1CCA341683E0D7AF78" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_RepurchaseProgramNovember2015Member_4F75117F1FBE5F1CCA341683E0D7AF78" xlink:to="lab_cgnx_RepurchaseProgramNovember2015Member_4F75117F1FBE5F1CCA341683E0D7AF78" xlink:type="arc" />
    <link:label id="lab_cgnx_RepurchaseProgramOctober2018Member_67D7C908F671C56479E0168415AE02CC_terseLabel_en-US" xlink:label="lab_cgnx_RepurchaseProgramOctober2018Member_67D7C908F671C56479E0168415AE02CC" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Repurchase Program October 2018 [Member]</link:label>
    <link:label id="lab_cgnx_RepurchaseProgramOctober2018Member_67D7C908F671C56479E0168415AE02CC_label_en-US" xlink:label="lab_cgnx_RepurchaseProgramOctober2018Member_67D7C908F671C56479E0168415AE02CC" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Repurchase Program October 2018 [Member]</link:label>
    <link:label id="lab_cgnx_RepurchaseProgramOctober2018Member_67D7C908F671C56479E0168415AE02CC_documentation_en-US" xlink:label="lab_cgnx_RepurchaseProgramOctober2018Member_67D7C908F671C56479E0168415AE02CC" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Repurchase Program October 2018 [Member]</link:label>
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_RepurchaseProgramOctober2018Member" xlink:label="loc_cgnx_RepurchaseProgramOctober2018Member_67D7C908F671C56479E0168415AE02CC" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_RepurchaseProgramOctober2018Member_67D7C908F671C56479E0168415AE02CC" xlink:to="lab_cgnx_RepurchaseProgramOctober2018Member_67D7C908F671C56479E0168415AE02CC" xlink:type="arc" />
    <link:label id="lab_us-gaap_ClassOfStockLineItems_788E0A9542B769DA6D281683E0D76525_terseLabel_en-US" xlink:label="lab_us-gaap_ClassOfStockLineItems_788E0A9542B769DA6D281683E0D76525" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Class of Stock [Line Items]</link:label>
    <link:label id="lab_us-gaap_ClassOfStockLineItems_788E0A9542B769DA6D281683E0D76525_label_en-US" xlink:label="lab_us-gaap_ClassOfStockLineItems_788E0A9542B769DA6D281683E0D76525" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Class of Stock [Line Items]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ClassOfStockLineItems" xlink:label="loc_us-gaap_ClassOfStockLineItems_788E0A9542B769DA6D281683E0D76525" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ClassOfStockLineItems_788E0A9542B769DA6D281683E0D76525" xlink:to="lab_us-gaap_ClassOfStockLineItems_788E0A9542B769DA6D281683E0D76525" xlink:type="arc" />
    <link:label id="lab_us-gaap_PreferredStockSharesAuthorized_B3590CBB5431D51492CE1683E0D7A384_terseLabel_en-US" xlink:label="lab_us-gaap_PreferredStockSharesAuthorized_B3590CBB5431D51492CE1683E0D7A384" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Authorized shares</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_PreferredStockSharesAuthorized" xlink:label="loc_us-gaap_PreferredStockSharesAuthorized_B3590CBB5431D51492CE1683E0D7A384" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_PreferredStockSharesAuthorized_B3590CBB5431D51492CE1683E0D7A384" xlink:to="lab_us-gaap_PreferredStockSharesAuthorized_B3590CBB5431D51492CE1683E0D7A384" xlink:type="arc" />
    <link:label id="lab_us-gaap_PreferredStockParOrStatedValuePerShare_7872FC36068920C3ED8E1683E0D7C79D_terseLabel_en-US" xlink:label="lab_us-gaap_PreferredStockParOrStatedValuePerShare_7872FC36068920C3ED8E1683E0D7C79D" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Preferred stock par value (in dollars per share)</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_PreferredStockParOrStatedValuePerShare" xlink:label="loc_us-gaap_PreferredStockParOrStatedValuePerShare_7872FC36068920C3ED8E1683E0D7C79D" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_PreferredStockParOrStatedValuePerShare_7872FC36068920C3ED8E1683E0D7C79D" xlink:to="lab_us-gaap_PreferredStockParOrStatedValuePerShare_7872FC36068920C3ED8E1683E0D7C79D" xlink:type="arc" />
    <link:label id="lab_cgnx_VoteEntitledForEachCommonShareOutstanding_C05521A443E09D70B87A1683E0D8CFEF_terseLabel_en-US" xlink:label="lab_cgnx_VoteEntitledForEachCommonShareOutstanding_C05521A443E09D70B87A1683E0D8CFEF" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Vote entitled for each common share outstanding</link:label>
    <link:label id="lab_cgnx_VoteEntitledForEachCommonShareOutstanding_C05521A443E09D70B87A1683E0D8CFEF_label_en-US" xlink:label="lab_cgnx_VoteEntitledForEachCommonShareOutstanding_C05521A443E09D70B87A1683E0D8CFEF" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Vote Entitled For Each Common Share Outstanding</link:label>
    <link:label id="lab_cgnx_VoteEntitledForEachCommonShareOutstanding_C05521A443E09D70B87A1683E0D8CFEF_documentation_en-US" xlink:label="lab_cgnx_VoteEntitledForEachCommonShareOutstanding_C05521A443E09D70B87A1683E0D8CFEF" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Vote entitled for each common share outstanding.</link:label>
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_VoteEntitledForEachCommonShareOutstanding" xlink:label="loc_cgnx_VoteEntitledForEachCommonShareOutstanding_C05521A443E09D70B87A1683E0D8CFEF" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_VoteEntitledForEachCommonShareOutstanding_C05521A443E09D70B87A1683E0D8CFEF" xlink:to="lab_cgnx_VoteEntitledForEachCommonShareOutstanding_C05521A443E09D70B87A1683E0D8CFEF" xlink:type="arc" />
    <link:label id="lab_us-gaap_StockRepurchaseProgramAuthorizedAmount1_9A1849A2548D204794B61683E0D86650_terseLabel_en-US" xlink:label="lab_us-gaap_StockRepurchaseProgramAuthorizedAmount1_9A1849A2548D204794B61683E0D86650" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Repurchase of authorized common stock</link:label>
    <link:label id="lab_us-gaap_StockRepurchaseProgramAuthorizedAmount1_9A1849A2548D204794B61683E0D86650_label_en-US" xlink:label="lab_us-gaap_StockRepurchaseProgramAuthorizedAmount1_9A1849A2548D204794B61683E0D86650" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Stock Repurchase Program, Authorized Amount</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_StockRepurchaseProgramAuthorizedAmount1" xlink:label="loc_us-gaap_StockRepurchaseProgramAuthorizedAmount1_9A1849A2548D204794B61683E0D86650" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_StockRepurchaseProgramAuthorizedAmount1_9A1849A2548D204794B61683E0D86650" xlink:to="lab_us-gaap_StockRepurchaseProgramAuthorizedAmount1_9A1849A2548D204794B61683E0D86650" xlink:type="arc" />
    <link:label id="lab_cgnx_Totalsharesrepurchased_C6655A9476211707C9141683E0D8B2E0_terseLabel_en-US" xlink:label="lab_cgnx_Totalsharesrepurchased_C6655A9476211707C9141683E0D8B2E0" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">total shares repurchased</link:label>
    <link:label id="lab_cgnx_Totalsharesrepurchased_C6655A9476211707C9141683E0D8B2E0_label_en-US" xlink:label="lab_cgnx_Totalsharesrepurchased_C6655A9476211707C9141683E0D8B2E0" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">total shares repurchased</link:label>
    <link:label id="lab_cgnx_Totalsharesrepurchased_C6655A9476211707C9141683E0D8B2E0_documentation_en-US" xlink:label="lab_cgnx_Totalsharesrepurchased_C6655A9476211707C9141683E0D8B2E0" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">total shares repurchased</link:label>
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_Totalsharesrepurchased" xlink:label="loc_cgnx_Totalsharesrepurchased_C6655A9476211707C9141683E0D8B2E0" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_Totalsharesrepurchased_C6655A9476211707C9141683E0D8B2E0" xlink:to="lab_cgnx_Totalsharesrepurchased_C6655A9476211707C9141683E0D8B2E0" xlink:type="arc" />
    <link:label id="lab_cgnx_Repurchasedsharestotalcost_B1EAB83F78C10D24550C1683E0D97BA2_terseLabel_en-US" xlink:label="lab_cgnx_Repurchasedsharestotalcost_B1EAB83F78C10D24550C1683E0D97BA2" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Repurchased shares, total cost</link:label>
    <link:label id="lab_cgnx_Repurchasedsharestotalcost_B1EAB83F78C10D24550C1683E0D97BA2_label_en-US" xlink:label="lab_cgnx_Repurchasedsharestotalcost_B1EAB83F78C10D24550C1683E0D97BA2" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Repurchased shares, total cost</link:label>
    <link:label id="lab_cgnx_Repurchasedsharestotalcost_B1EAB83F78C10D24550C1683E0D97BA2_documentation_en-US" xlink:label="lab_cgnx_Repurchasedsharestotalcost_B1EAB83F78C10D24550C1683E0D97BA2" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Repurchased shares, total cost</link:label>
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_Repurchasedsharestotalcost" xlink:label="loc_cgnx_Repurchasedsharestotalcost_B1EAB83F78C10D24550C1683E0D97BA2" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_Repurchasedsharestotalcost_B1EAB83F78C10D24550C1683E0D97BA2" xlink:to="lab_cgnx_Repurchasedsharestotalcost_B1EAB83F78C10D24550C1683E0D97BA2" xlink:type="arc" />
    <link:label id="lab_us-gaap_StockRepurchasedDuringPeriodShares_2C3ADB313D1C4940D5C41683E0D966AE_verboseLabel_en-US" xlink:label="lab_us-gaap_StockRepurchasedDuringPeriodShares_2C3ADB313D1C4940D5C41683E0D966AE" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xml:lang="en-US">Repurchase of common stock, shares</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_StockRepurchasedDuringPeriodShares" xlink:label="loc_us-gaap_StockRepurchasedDuringPeriodShares_2C3ADB313D1C4940D5C41683E0D966AE" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_StockRepurchasedDuringPeriodShares_2C3ADB313D1C4940D5C41683E0D966AE" xlink:to="lab_us-gaap_StockRepurchasedDuringPeriodShares_2C3ADB313D1C4940D5C41683E0D966AE" xlink:type="arc" />
    <link:label id="lab_us-gaap_StockRepurchasedDuringPeriodValue_E8470760FC1B63900F421683E0D948AC_verboseLabel_en-US" xlink:label="lab_us-gaap_StockRepurchasedDuringPeriodValue_E8470760FC1B63900F421683E0D948AC" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xml:lang="en-US">Repurchase of common stock</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_StockRepurchasedDuringPeriodValue" xlink:label="loc_us-gaap_StockRepurchasedDuringPeriodValue_E8470760FC1B63900F421683E0D948AC" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_StockRepurchasedDuringPeriodValue_E8470760FC1B63900F421683E0D948AC" xlink:to="lab_us-gaap_StockRepurchasedDuringPeriodValue_E8470760FC1B63900F421683E0D948AC" xlink:type="arc" />
    <link:label id="lab_us-gaap_CommonStockDividendsPerShareDeclared_6544775379AFC2FAD3531683E0D9E5A1_terseLabel_en-US" xlink:label="lab_us-gaap_CommonStockDividendsPerShareDeclared_6544775379AFC2FAD3531683E0D9E5A1" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Cash dividend declared per common share</link:label>
    <link:label id="lab_us-gaap_CommonStockDividendsPerShareDeclared_6544775379AFC2FAD3531683E0D9E5A1_label_en-US" xlink:label="lab_us-gaap_CommonStockDividendsPerShareDeclared_6544775379AFC2FAD3531683E0D9E5A1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Common Stock, Dividends, Per Share, Declared</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_CommonStockDividendsPerShareDeclared" xlink:label="loc_us-gaap_CommonStockDividendsPerShareDeclared_6544775379AFC2FAD3531683E0D9E5A1" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_CommonStockDividendsPerShareDeclared_6544775379AFC2FAD3531683E0D9E5A1" xlink:to="lab_us-gaap_CommonStockDividendsPerShareDeclared_6544775379AFC2FAD3531683E0D9E5A1" xlink:type="arc" />
    <link:label id="lab_us-gaap_PaymentsOfDividends_856B635D9E122CC222961683E0D98B5B_terseLabel_en-US" xlink:label="lab_us-gaap_PaymentsOfDividends_856B635D9E122CC222961683E0D98B5B" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Payments of dividends</link:label>
    <link:label id="lab_us-gaap_PaymentsOfDividends_856B635D9E122CC222961683E0D98B5B_label_en-US" xlink:label="lab_us-gaap_PaymentsOfDividends_856B635D9E122CC222961683E0D98B5B" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Payments of Dividends</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_PaymentsOfDividends" xlink:label="loc_us-gaap_PaymentsOfDividends_856B635D9E122CC222961683E0D98B5B" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_PaymentsOfDividends_856B635D9E122CC222961683E0D98B5B" xlink:to="lab_us-gaap_PaymentsOfDividends_856B635D9E122CC222961683E0D98B5B" xlink:type="arc" />
    <link:label id="lab_us-gaap_InvestmentsInDebtAndEquityInstrumentsCashAndCashEquivalentsUnrealizedAndRealizedGainsLossesTextBlock_C28B15C71D3CEFBEE44B8095E66B153E_terseLabel_en-US" xlink:label="lab_us-gaap_InvestmentsInDebtAndEquityInstrumentsCashAndCashEquivalentsUnrealizedAndRealizedGainsLossesTextBlock_C28B15C71D3CEFBEE44B8095E66B153E" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Cash, Cash Equivalents, and Investments</link:label>
    <link:label id="lab_us-gaap_InvestmentsInDebtAndEquityInstrumentsCashAndCashEquivalentsUnrealizedAndRealizedGainsLossesTextBlock_C28B15C71D3CEFBEE44B8095E66B153E_label_en-US" xlink:label="lab_us-gaap_InvestmentsInDebtAndEquityInstrumentsCashAndCashEquivalentsUnrealizedAndRealizedGainsLossesTextBlock_C28B15C71D3CEFBEE44B8095E66B153E" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Investments in Debt and Equity Instruments, Cash and Cash Equivalents, Unrealized and Realized Gains (Losses) [Text Block]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_InvestmentsInDebtAndEquityInstrumentsCashAndCashEquivalentsUnrealizedAndRealizedGainsLossesTextBlock" xlink:label="loc_us-gaap_InvestmentsInDebtAndEquityInstrumentsCashAndCashEquivalentsUnrealizedAndRealizedGainsLossesTextBlock_C28B15C71D3CEFBEE44B8095E66B153E" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_InvestmentsInDebtAndEquityInstrumentsCashAndCashEquivalentsUnrealizedAndRealizedGainsLossesTextBlock_C28B15C71D3CEFBEE44B8095E66B153E" xlink:to="lab_us-gaap_InvestmentsInDebtAndEquityInstrumentsCashAndCashEquivalentsUnrealizedAndRealizedGainsLossesTextBlock_C28B15C71D3CEFBEE44B8095E66B153E" xlink:type="arc" />
    <link:label id="lab_us-gaap_ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTable_664379F72286BC59B94C173A46C78C2C_terseLabel_en-US" xlink:label="lab_us-gaap_ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTable_664379F72286BC59B94C173A46C78C2C" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" 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_664379F72286BC59B94C173A46C78C2C_label_en-US" xlink:label="lab_us-gaap_ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTable_664379F72286BC59B94C173A46C78C2C" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Schedule of Antidilutive Securities Excluded from Computation of Earnings Per Share [Table]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTable" xlink:label="loc_us-gaap_ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTable_664379F72286BC59B94C173A46C78C2C" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTable_664379F72286BC59B94C173A46C78C2C" xlink:to="lab_us-gaap_ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTable_664379F72286BC59B94C173A46C78C2C" xlink:type="arc" />
    <link:label id="lab_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis_A0274ED55393A031719C173A7ED34A49_terseLabel_en-US" xlink:label="lab_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis_A0274ED55393A031719C173A7ED34A49" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Antidilutive Securities [Axis]</link:label>
    <link:label id="lab_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis_A0274ED55393A031719C173A7ED34A49_label_en-US" xlink:label="lab_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis_A0274ED55393A031719C173A7ED34A49" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Antidilutive Securities [Axis]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis" xlink:label="loc_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis_A0274ED55393A031719C173A7ED34A49" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis_A0274ED55393A031719C173A7ED34A49" xlink:to="lab_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis_A0274ED55393A031719C173A7ED34A49" xlink:type="arc" />
    <link:label id="lab_us-gaap_AntidilutiveSecuritiesNameDomain_76DC137AC38B8B4AE686173A7EE5057D_terseLabel_en-US" xlink:label="lab_us-gaap_AntidilutiveSecuritiesNameDomain_76DC137AC38B8B4AE686173A7EE5057D" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Antidilutive Securities, Name [Domain]</link:label>
    <link:label id="lab_us-gaap_AntidilutiveSecuritiesNameDomain_76DC137AC38B8B4AE686173A7EE5057D_label_en-US" xlink:label="lab_us-gaap_AntidilutiveSecuritiesNameDomain_76DC137AC38B8B4AE686173A7EE5057D" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Antidilutive Securities, Name [Domain]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_AntidilutiveSecuritiesNameDomain" xlink:label="loc_us-gaap_AntidilutiveSecuritiesNameDomain_76DC137AC38B8B4AE686173A7EE5057D" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AntidilutiveSecuritiesNameDomain_76DC137AC38B8B4AE686173A7EE5057D" xlink:to="lab_us-gaap_AntidilutiveSecuritiesNameDomain_76DC137AC38B8B4AE686173A7EE5057D" xlink:type="arc" />
    <link:label id="lab_us-gaap_EmployeeStockOptionMember_F1D9B9C1C486C42AF61F173C6153EF38_verboseLabel_en-US" xlink:label="lab_us-gaap_EmployeeStockOptionMember_F1D9B9C1C486C42AF61F173C6153EF38" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xml:lang="en-US">Stock Compensation Plan [Member]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_EmployeeStockOptionMember" xlink:label="loc_us-gaap_EmployeeStockOptionMember_F1D9B9C1C486C42AF61F173C6153EF38" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_EmployeeStockOptionMember_F1D9B9C1C486C42AF61F173C6153EF38" xlink:to="lab_us-gaap_EmployeeStockOptionMember_F1D9B9C1C486C42AF61F173C6153EF38" xlink:type="arc" />
    <link:label id="lab_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareLineItems_2365C2B5474C435CBB1B173A46C9394F_terseLabel_en-US" xlink:label="lab_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareLineItems_2365C2B5474C435CBB1B173A46C9394F" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Antidilutive Securities Excluded from Computation of Earnings Per Share [Line Items]</link:label>
    <link:label id="lab_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareLineItems_2365C2B5474C435CBB1B173A46C9394F_label_en-US" xlink:label="lab_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareLineItems_2365C2B5474C435CBB1B173A46C9394F" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Antidilutive Securities Excluded from Computation of Earnings Per Share [Line Items]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareLineItems" xlink:label="loc_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareLineItems_2365C2B5474C435CBB1B173A46C9394F" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareLineItems_2365C2B5474C435CBB1B173A46C9394F" xlink:to="lab_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareLineItems_2365C2B5474C435CBB1B173A46C9394F" xlink:type="arc" />
    <link:label id="lab_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount_85794EAB81C3B5A00104170C9178DABA_terseLabel_en-US" xlink:label="lab_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount_85794EAB81C3B5A00104170C9178DABA" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Stock options to purchase anti-dilutive common stock</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount" xlink:label="loc_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount_85794EAB81C3B5A00104170C9178DABA" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount_85794EAB81C3B5A00104170C9178DABA" xlink:to="lab_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount_85794EAB81C3B5A00104170C9178DABA" xlink:type="arc" />
    <link:label id="lab_us-gaap_ScheduleOfNotionalAmountsOfOutstandingDerivativePositionsTableTextBlock_B29D6E9206B71E4ECA118095E5DFDBBE_terseLabel_en-US" xlink:label="lab_us-gaap_ScheduleOfNotionalAmountsOfOutstandingDerivativePositionsTableTextBlock_B29D6E9206B71E4ECA118095E5DFDBBE" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Schedule of Notional Amounts of Outstanding Derivative Positions</link:label>
    <link:label id="lab_us-gaap_ScheduleOfNotionalAmountsOfOutstandingDerivativePositionsTableTextBlock_B29D6E9206B71E4ECA118095E5DFDBBE_label_en-US" xlink:label="lab_us-gaap_ScheduleOfNotionalAmountsOfOutstandingDerivativePositionsTableTextBlock_B29D6E9206B71E4ECA118095E5DFDBBE" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Schedule of Notional Amounts of Outstanding Derivative Positions [Table Text Block]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ScheduleOfNotionalAmountsOfOutstandingDerivativePositionsTableTextBlock" xlink:label="loc_us-gaap_ScheduleOfNotionalAmountsOfOutstandingDerivativePositionsTableTextBlock_B29D6E9206B71E4ECA118095E5DFDBBE" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ScheduleOfNotionalAmountsOfOutstandingDerivativePositionsTableTextBlock_B29D6E9206B71E4ECA118095E5DFDBBE" xlink:to="lab_us-gaap_ScheduleOfNotionalAmountsOfOutstandingDerivativePositionsTableTextBlock_B29D6E9206B71E4ECA118095E5DFDBBE" xlink:type="arc" />
    <link:label id="lab_us-gaap_ScheduleOfDerivativeInstrumentsInStatementOfFinancialPositionFairValueTextBlock_9ADF9A9B1406D98DF4388095E5DFB07F_terseLabel_en-US" xlink:label="lab_us-gaap_ScheduleOfDerivativeInstrumentsInStatementOfFinancialPositionFairValueTextBlock_9ADF9A9B1406D98DF4388095E5DFB07F" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Schedule of Derivative Instruments in Statement of Financial Position, Fair Value</link:label>
    <link:label id="lab_us-gaap_ScheduleOfDerivativeInstrumentsInStatementOfFinancialPositionFairValueTextBlock_9ADF9A9B1406D98DF4388095E5DFB07F_label_en-US" xlink:label="lab_us-gaap_ScheduleOfDerivativeInstrumentsInStatementOfFinancialPositionFairValueTextBlock_9ADF9A9B1406D98DF4388095E5DFB07F" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Schedule of Derivative Instruments in Statement of Financial Position, Fair Value [Table Text Block]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ScheduleOfDerivativeInstrumentsInStatementOfFinancialPositionFairValueTextBlock" xlink:label="loc_us-gaap_ScheduleOfDerivativeInstrumentsInStatementOfFinancialPositionFairValueTextBlock_9ADF9A9B1406D98DF4388095E5DFB07F" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ScheduleOfDerivativeInstrumentsInStatementOfFinancialPositionFairValueTextBlock_9ADF9A9B1406D98DF4388095E5DFB07F" xlink:to="lab_us-gaap_ScheduleOfDerivativeInstrumentsInStatementOfFinancialPositionFairValueTextBlock_9ADF9A9B1406D98DF4388095E5DFB07F" xlink:type="arc" />
    <link:label id="lab_us-gaap_OffsettingAssetsTableTextBlock_EEE12106E0226611DDD48095E5DFE275_terseLabel_en-US" xlink:label="lab_us-gaap_OffsettingAssetsTableTextBlock_EEE12106E0226611DDD48095E5DFE275" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Offsetting Assets</link:label>
    <link:label id="lab_us-gaap_OffsettingAssetsTableTextBlock_EEE12106E0226611DDD48095E5DFE275_label_en-US" xlink:label="lab_us-gaap_OffsettingAssetsTableTextBlock_EEE12106E0226611DDD48095E5DFE275" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Offsetting Assets [Table Text Block]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_OffsettingAssetsTableTextBlock" xlink:label="loc_us-gaap_OffsettingAssetsTableTextBlock_EEE12106E0226611DDD48095E5DFE275" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_OffsettingAssetsTableTextBlock_EEE12106E0226611DDD48095E5DFE275" xlink:to="lab_us-gaap_OffsettingAssetsTableTextBlock_EEE12106E0226611DDD48095E5DFE275" xlink:type="arc" />
    <link:label id="lab_us-gaap_ScheduleOfDerivativeInstrumentsGainLossInStatementOfFinancialPerformanceTextBlock_8D18D1CCA5CA59ED47EC8095E5E00D0D_terseLabel_en-US" xlink:label="lab_us-gaap_ScheduleOfDerivativeInstrumentsGainLossInStatementOfFinancialPerformanceTextBlock_8D18D1CCA5CA59ED47EC8095E5E00D0D" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Derivative Instruments, Gain (Loss)</link:label>
    <link:label id="lab_us-gaap_ScheduleOfDerivativeInstrumentsGainLossInStatementOfFinancialPerformanceTextBlock_8D18D1CCA5CA59ED47EC8095E5E00D0D_label_en-US" xlink:label="lab_us-gaap_ScheduleOfDerivativeInstrumentsGainLossInStatementOfFinancialPerformanceTextBlock_8D18D1CCA5CA59ED47EC8095E5E00D0D" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Derivative Instruments, Gain (Loss) [Table Text Block]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ScheduleOfDerivativeInstrumentsGainLossInStatementOfFinancialPerformanceTextBlock" xlink:label="loc_us-gaap_ScheduleOfDerivativeInstrumentsGainLossInStatementOfFinancialPerformanceTextBlock_8D18D1CCA5CA59ED47EC8095E5E00D0D" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ScheduleOfDerivativeInstrumentsGainLossInStatementOfFinancialPerformanceTextBlock_8D18D1CCA5CA59ED47EC8095E5E00D0D" xlink:to="lab_us-gaap_ScheduleOfDerivativeInstrumentsGainLossInStatementOfFinancialPerformanceTextBlock_8D18D1CCA5CA59ED47EC8095E5E00D0D" xlink:type="arc" />
    <link:label id="lab_us-gaap_ScheduleOfDerivativeInstrumentsEffectOnOtherComprehensiveIncomeLossTableTextBlock_C18E397D9525985961758095E5E0BA15_terseLabel_en-US" xlink:label="lab_us-gaap_ScheduleOfDerivativeInstrumentsEffectOnOtherComprehensiveIncomeLossTableTextBlock_C18E397D9525985961758095E5E0BA15" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Schedule of Derivative Instruments, Effect on Other Comprehensive Income (Loss)</link:label>
    <link:label id="lab_us-gaap_ScheduleOfDerivativeInstrumentsEffectOnOtherComprehensiveIncomeLossTableTextBlock_C18E397D9525985961758095E5E0BA15_label_en-US" xlink:label="lab_us-gaap_ScheduleOfDerivativeInstrumentsEffectOnOtherComprehensiveIncomeLossTableTextBlock_C18E397D9525985961758095E5E0BA15" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Schedule of Derivative Instruments, Effect on Other Comprehensive Income (Loss) [Table Text Block]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ScheduleOfDerivativeInstrumentsEffectOnOtherComprehensiveIncomeLossTableTextBlock" xlink:label="loc_us-gaap_ScheduleOfDerivativeInstrumentsEffectOnOtherComprehensiveIncomeLossTableTextBlock_C18E397D9525985961758095E5E0BA15" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ScheduleOfDerivativeInstrumentsEffectOnOtherComprehensiveIncomeLossTableTextBlock_C18E397D9525985961758095E5E0BA15" xlink:to="lab_us-gaap_ScheduleOfDerivativeInstrumentsEffectOnOtherComprehensiveIncomeLossTableTextBlock_C18E397D9525985961758095E5E0BA15" xlink:type="arc" />
    <link:label id="lab_us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosureTextBlock_76B5653EE59C74F8B17A8095E6ACD49E_terseLabel_en-US" xlink:label="lab_us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosureTextBlock_76B5653EE59C74F8B17A8095E6ACD49E" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Derivative Instruments</link:label>
    <link:label id="lab_us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosureTextBlock_76B5653EE59C74F8B17A8095E6ACD49E_label_en-US" xlink:label="lab_us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosureTextBlock_76B5653EE59C74F8B17A8095E6ACD49E" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Derivative Instruments and Hedging Activities Disclosure [Text Block]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosureTextBlock" xlink:label="loc_us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosureTextBlock_76B5653EE59C74F8B17A8095E6ACD49E" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosureTextBlock_76B5653EE59C74F8B17A8095E6ACD49E" xlink:to="lab_us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosureTextBlock_76B5653EE59C74F8B17A8095E6ACD49E" xlink:type="arc" />
    <link:label id="lab_us-gaap_AccumulatedOtherComprehensiveIncomeLossForeignCurrencyTranslationAdjustmentNetOfTax_4168ED638885A436063B8095E8EA6222_terseLabel_en-US" xlink:label="lab_us-gaap_AccumulatedOtherComprehensiveIncomeLossForeignCurrencyTranslationAdjustmentNetOfTax_4168ED638885A436063B8095E8EA6222" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Accumulated other comprehensive loss consists of foreign currency translation adjustments, net of tax</link:label>
    <link:label id="lab_us-gaap_AccumulatedOtherComprehensiveIncomeLossForeignCurrencyTranslationAdjustmentNetOfTax_4168ED638885A436063B8095E8EA6222_label_en-US" xlink:label="lab_us-gaap_AccumulatedOtherComprehensiveIncomeLossForeignCurrencyTranslationAdjustmentNetOfTax_4168ED638885A436063B8095E8EA6222" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Accumulated Other Comprehensive Income (Loss), Foreign Currency Translation Adjustment, Net of Tax</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_AccumulatedOtherComprehensiveIncomeLossForeignCurrencyTranslationAdjustmentNetOfTax" xlink:label="loc_us-gaap_AccumulatedOtherComprehensiveIncomeLossForeignCurrencyTranslationAdjustmentNetOfTax_4168ED638885A436063B8095E8EA6222" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AccumulatedOtherComprehensiveIncomeLossForeignCurrencyTranslationAdjustmentNetOfTax_4168ED638885A436063B8095E8EA6222" xlink:to="lab_us-gaap_AccumulatedOtherComprehensiveIncomeLossForeignCurrencyTranslationAdjustmentNetOfTax_4168ED638885A436063B8095E8EA6222" xlink:type="arc" />
    <link:label id="lab_us-gaap_AccumulatedOtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax_ED73FD7E74905153841C8095E8EA8025_terseLabel_en-US" xlink:label="lab_us-gaap_AccumulatedOtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax_ED73FD7E74905153841C8095E8EA8025" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Net unrealized losses on available-for-sale investments, net of tax</link:label>
    <link:label id="lab_us-gaap_AccumulatedOtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax_ED73FD7E74905153841C8095E8EA8025_label_en-US" xlink:label="lab_us-gaap_AccumulatedOtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax_ED73FD7E74905153841C8095E8EA8025" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Accumulated Other Comprehensive Income (Loss), Debt Securities, Available-for-sale, Adjustment, after Tax</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_AccumulatedOtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax" xlink:label="loc_us-gaap_AccumulatedOtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax_ED73FD7E74905153841C8095E8EA8025" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AccumulatedOtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax_ED73FD7E74905153841C8095E8EA8025" xlink:to="lab_us-gaap_AccumulatedOtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax_ED73FD7E74905153841C8095E8EA8025" xlink:type="arc" />
    <link:label id="lab_us-gaap_AdjustmentForLongTermIntercompanyTransactionsNetOfTax_08F4A1E4BE2A92549BD18095E8EAB7EA_terseLabel_en-US" xlink:label="lab_us-gaap_AdjustmentForLongTermIntercompanyTransactionsNetOfTax_08F4A1E4BE2A92549BD18095E8EAB7EA" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Losses on currency swaps, net of gains on long-term intercompany loans</link:label>
    <link:label id="lab_us-gaap_AdjustmentForLongTermIntercompanyTransactionsNetOfTax_08F4A1E4BE2A92549BD18095E8EAB7EA_label_en-US" xlink:label="lab_us-gaap_AdjustmentForLongTermIntercompanyTransactionsNetOfTax_08F4A1E4BE2A92549BD18095E8EAB7EA" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Adjustment for Long-term Intercompany Transactions, Net of Tax</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_AdjustmentForLongTermIntercompanyTransactionsNetOfTax" xlink:label="loc_us-gaap_AdjustmentForLongTermIntercompanyTransactionsNetOfTax_08F4A1E4BE2A92549BD18095E8EAB7EA" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AdjustmentForLongTermIntercompanyTransactionsNetOfTax_08F4A1E4BE2A92549BD18095E8EAB7EA" xlink:to="lab_us-gaap_AdjustmentForLongTermIntercompanyTransactionsNetOfTax_08F4A1E4BE2A92549BD18095E8EAB7EA" xlink:type="arc" />
    <link:label id="lab_us-gaap_OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax_8C800DA5C7856D3E71E38095E8EACFDD_verboseLabel_en-US" xlink:label="lab_us-gaap_OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax_8C800DA5C7856D3E71E38095E8EACFDD" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xml:lang="en-US">Net realized gains reclassified into current operations</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax" xlink:label="loc_us-gaap_OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax_8C800DA5C7856D3E71E38095E8EACFDD" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax_8C800DA5C7856D3E71E38095E8EACFDD" xlink:to="lab_us-gaap_OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax_8C800DA5C7856D3E71E38095E8EACFDD" xlink:type="arc" />
    <link:label id="lab_us-gaap_ScheduleOfChangeInAccountingEstimateTable_90142EF4F76E606AFC8837125BADF98B_terseLabel_en-US" xlink:label="lab_us-gaap_ScheduleOfChangeInAccountingEstimateTable_90142EF4F76E606AFC8837125BADF98B" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Schedule of Change in Accounting Estimate [Table]</link:label>
    <link:label id="lab_us-gaap_ScheduleOfChangeInAccountingEstimateTable_90142EF4F76E606AFC8837125BADF98B_label_en-US" xlink:label="lab_us-gaap_ScheduleOfChangeInAccountingEstimateTable_90142EF4F76E606AFC8837125BADF98B" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Schedule of Change in Accounting Estimate [Table]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ScheduleOfChangeInAccountingEstimateTable" xlink:label="loc_us-gaap_ScheduleOfChangeInAccountingEstimateTable_90142EF4F76E606AFC8837125BADF98B" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ScheduleOfChangeInAccountingEstimateTable_90142EF4F76E606AFC8837125BADF98B" xlink:to="lab_us-gaap_ScheduleOfChangeInAccountingEstimateTable_90142EF4F76E606AFC8837125BADF98B" xlink:type="arc" />
    <link:label id="lab_srt_ScenarioPreviouslyReportedMember_99A9C87B0979D112C37137125BAE0580_terseLabel_en-US" xlink:label="lab_srt_ScenarioPreviouslyReportedMember_99A9C87B0979D112C37137125BAE0580" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">As computed under the previous accounting policy</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2018/elts/srt-2018-01-31.xsd#srt_ScenarioPreviouslyReportedMember" xlink:label="loc_srt_ScenarioPreviouslyReportedMember_99A9C87B0979D112C37137125BAE0580" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_srt_ScenarioPreviouslyReportedMember_99A9C87B0979D112C37137125BAE0580" xlink:to="lab_srt_ScenarioPreviouslyReportedMember_99A9C87B0979D112C37137125BAE0580" xlink:type="arc" />
    <link:label id="lab_srt_RestatementAdjustmentMember_7CCC65CA90D43277AD2B37125BAE66DD_terseLabel_en-US" xlink:label="lab_srt_RestatementAdjustmentMember_7CCC65CA90D43277AD2B37125BAE66DD" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Effect of change</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2018/elts/srt-2018-01-31.xsd#srt_RestatementAdjustmentMember" xlink:label="loc_srt_RestatementAdjustmentMember_7CCC65CA90D43277AD2B37125BAE66DD" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_srt_RestatementAdjustmentMember_7CCC65CA90D43277AD2B37125BAE66DD" xlink:to="lab_srt_RestatementAdjustmentMember_7CCC65CA90D43277AD2B37125BAE66DD" xlink:type="arc" />
    <link:label id="lab_us-gaap_ChangeInAccountingEstimateByTypeAxis_26C10C107B5F853F907737125BAE7C72_terseLabel_en-US" xlink:label="lab_us-gaap_ChangeInAccountingEstimateByTypeAxis_26C10C107B5F853F907737125BAE7C72" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Change in Accounting Estimate by Type [Axis]</link:label>
    <link:label id="lab_us-gaap_ChangeInAccountingEstimateByTypeAxis_26C10C107B5F853F907737125BAE7C72_label_en-US" xlink:label="lab_us-gaap_ChangeInAccountingEstimateByTypeAxis_26C10C107B5F853F907737125BAE7C72" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Change in Accounting Estimate by Type [Axis]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ChangeInAccountingEstimateByTypeAxis" xlink:label="loc_us-gaap_ChangeInAccountingEstimateByTypeAxis_26C10C107B5F853F907737125BAE7C72" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ChangeInAccountingEstimateByTypeAxis_26C10C107B5F853F907737125BAE7C72" xlink:to="lab_us-gaap_ChangeInAccountingEstimateByTypeAxis_26C10C107B5F853F907737125BAE7C72" xlink:type="arc" />
    <link:label id="lab_us-gaap_ChangeInAccountingEstimateTypeDomain_75376F69C6CA423EA0B137125BAE1ADA_terseLabel_en-US" xlink:label="lab_us-gaap_ChangeInAccountingEstimateTypeDomain_75376F69C6CA423EA0B137125BAE1ADA" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Change in Accounting Estimate, Type [Domain]</link:label>
    <link:label id="lab_us-gaap_ChangeInAccountingEstimateTypeDomain_75376F69C6CA423EA0B137125BAE1ADA_label_en-US" xlink:label="lab_us-gaap_ChangeInAccountingEstimateTypeDomain_75376F69C6CA423EA0B137125BAE1ADA" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Change in Accounting Estimate, Type [Domain]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ChangeInAccountingEstimateTypeDomain" xlink:label="loc_us-gaap_ChangeInAccountingEstimateTypeDomain_75376F69C6CA423EA0B137125BAE1ADA" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ChangeInAccountingEstimateTypeDomain_75376F69C6CA423EA0B137125BAE1ADA" xlink:to="lab_us-gaap_ChangeInAccountingEstimateTypeDomain_75376F69C6CA423EA0B137125BAE1ADA" xlink:type="arc" />
    <link:label id="lab_cgnx_ChangeinGlobalIntangibleLowTaxedIncomeMember_ECFECF05DC04B2758F7937125BAF09C8_terseLabel_en-US" xlink:label="lab_cgnx_ChangeinGlobalIntangibleLowTaxedIncomeMember_ECFECF05DC04B2758F7937125BAF09C8" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Change in accounting policy</link:label>
    <link:label id="lab_cgnx_ChangeinGlobalIntangibleLowTaxedIncomeMember_ECFECF05DC04B2758F7937125BAF09C8_label_en-US" xlink:label="lab_cgnx_ChangeinGlobalIntangibleLowTaxedIncomeMember_ECFECF05DC04B2758F7937125BAF09C8" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Change in Global Intangible Low-Taxed Income [Member]</link:label>
    <link:label id="lab_cgnx_ChangeinGlobalIntangibleLowTaxedIncomeMember_ECFECF05DC04B2758F7937125BAF09C8_documentation_en-US" xlink:label="lab_cgnx_ChangeinGlobalIntangibleLowTaxedIncomeMember_ECFECF05DC04B2758F7937125BAF09C8" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Change in Global Intangible Low-Taxed Income [Member]</link:label>
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_ChangeinGlobalIntangibleLowTaxedIncomeMember" xlink:label="loc_cgnx_ChangeinGlobalIntangibleLowTaxedIncomeMember_ECFECF05DC04B2758F7937125BAF09C8" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_ChangeinGlobalIntangibleLowTaxedIncomeMember_ECFECF05DC04B2758F7937125BAF09C8" xlink:to="lab_cgnx_ChangeinGlobalIntangibleLowTaxedIncomeMember_ECFECF05DC04B2758F7937125BAF09C8" xlink:type="arc" />
    <link:label id="lab_us-gaap_ChangeInAccountingEstimateLineItems_E456BD4EF24472DA9ADC37125BAFAF41_terseLabel_en-US" xlink:label="lab_us-gaap_ChangeInAccountingEstimateLineItems_E456BD4EF24472DA9ADC37125BAFAF41" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Change in Accounting Estimate [Line Items]</link:label>
    <link:label id="lab_us-gaap_ChangeInAccountingEstimateLineItems_E456BD4EF24472DA9ADC37125BAFAF41_label_en-US" xlink:label="lab_us-gaap_ChangeInAccountingEstimateLineItems_E456BD4EF24472DA9ADC37125BAFAF41" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Change in Accounting Estimate [Line Items]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ChangeInAccountingEstimateLineItems" xlink:label="loc_us-gaap_ChangeInAccountingEstimateLineItems_E456BD4EF24472DA9ADC37125BAFAF41" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ChangeInAccountingEstimateLineItems_E456BD4EF24472DA9ADC37125BAFAF41" xlink:to="lab_us-gaap_ChangeInAccountingEstimateLineItems_E456BD4EF24472DA9ADC37125BAFAF41" xlink:type="arc" />
    <link:label id="lab_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments_34B2BFAF19A195C5EB0237125BAF8C1C_verboseLabel_en-US" xlink:label="lab_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments_34B2BFAF19A195C5EB0237125BAF8C1C" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xml:lang="en-US">Income before income tax expense</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments" xlink:label="loc_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments_34B2BFAF19A195C5EB0237125BAF8C1C" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments_34B2BFAF19A195C5EB0237125BAF8C1C" xlink:to="lab_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments_34B2BFAF19A195C5EB0237125BAF8C1C" xlink:type="arc" />
    <link:label id="lab_us-gaap_DeferredTaxAssetsNetNoncurrent_E76902B2FBFB8D0C732737125BB07959_verboseLabel_en-US" xlink:label="lab_us-gaap_DeferredTaxAssetsNetNoncurrent_E76902B2FBFB8D0C732737125BB07959" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xml:lang="en-US">Deferred tax assets</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_DeferredTaxAssetsNetNoncurrent" xlink:label="loc_us-gaap_DeferredTaxAssetsNetNoncurrent_E76902B2FBFB8D0C732737125BB07959" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DeferredTaxAssetsNetNoncurrent_E76902B2FBFB8D0C732737125BB07959" xlink:to="lab_us-gaap_DeferredTaxAssetsNetNoncurrent_E76902B2FBFB8D0C732737125BB07959" xlink:type="arc" />
    <link:label id="lab_us-gaap_DeferredIncomeTaxLiabilities_57B30DADDD7FC47A6AB737125BB0BA84_terseLabel_en-US" xlink:label="lab_us-gaap_DeferredIncomeTaxLiabilities_57B30DADDD7FC47A6AB737125BB0BA84" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Deferred tax liabilities</link:label>
    <link:label id="lab_us-gaap_DeferredIncomeTaxLiabilities_57B30DADDD7FC47A6AB737125BB0BA84_label_en-US" xlink:label="lab_us-gaap_DeferredIncomeTaxLiabilities_57B30DADDD7FC47A6AB737125BB0BA84" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Deferred Tax Liabilities, Gross</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_DeferredIncomeTaxLiabilities" xlink:label="loc_us-gaap_DeferredIncomeTaxLiabilities_57B30DADDD7FC47A6AB737125BB0BA84" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DeferredIncomeTaxLiabilities_57B30DADDD7FC47A6AB737125BB0BA84" xlink:to="lab_us-gaap_DeferredIncomeTaxLiabilities_57B30DADDD7FC47A6AB737125BB0BA84" xlink:type="arc" />
    <link:label id="lab_us-gaap_RetainedEarningsAccumulatedDeficit_49DEDAB501C688EB2A6E37125BB0DA3E_verboseLabel_en-US" xlink:label="lab_us-gaap_RetainedEarningsAccumulatedDeficit_49DEDAB501C688EB2A6E37125BB0DA3E" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xml:lang="en-US">Retained earnings</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_RetainedEarningsAccumulatedDeficit" xlink:label="loc_us-gaap_RetainedEarningsAccumulatedDeficit_49DEDAB501C688EB2A6E37125BB0DA3E" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_RetainedEarningsAccumulatedDeficit_49DEDAB501C688EB2A6E37125BB0DA3E" xlink:to="lab_us-gaap_RetainedEarningsAccumulatedDeficit_49DEDAB501C688EB2A6E37125BB0DA3E" xlink:type="arc" />
    <link:label id="lab_us-gaap_ScheduleOfWeightedAverageNumberOfSharesTableTextBlock_373B3C4F5736CB6BE1028095E6B3F61E_terseLabel_en-US" xlink:label="lab_us-gaap_ScheduleOfWeightedAverageNumberOfSharesTableTextBlock_373B3C4F5736CB6BE1028095E6B3F61E" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Calculation of Weighted Average Shares</link:label>
    <link:label id="lab_us-gaap_ScheduleOfWeightedAverageNumberOfSharesTableTextBlock_373B3C4F5736CB6BE1028095E6B3F61E_label_en-US" xlink:label="lab_us-gaap_ScheduleOfWeightedAverageNumberOfSharesTableTextBlock_373B3C4F5736CB6BE1028095E6B3F61E" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Schedule of Weighted Average Number of Shares [Table Text Block]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ScheduleOfWeightedAverageNumberOfSharesTableTextBlock" xlink:label="loc_us-gaap_ScheduleOfWeightedAverageNumberOfSharesTableTextBlock_373B3C4F5736CB6BE1028095E6B3F61E" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ScheduleOfWeightedAverageNumberOfSharesTableTextBlock_373B3C4F5736CB6BE1028095E6B3F61E" xlink:to="lab_us-gaap_ScheduleOfWeightedAverageNumberOfSharesTableTextBlock_373B3C4F5736CB6BE1028095E6B3F61E" xlink:type="arc" />
    <link:label id="lab_cgnx_CustomerContractsLiabilityCurrentRollForward_FD7BB952781C03E2D2B18095E69A0FD6_terseLabel_en-US" xlink:label="lab_cgnx_CustomerContractsLiabilityCurrentRollForward_FD7BB952781C03E2D2B18095E69A0FD6" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Customer Contracts Liability, Current</link:label>
    <link:label id="lab_cgnx_CustomerContractsLiabilityCurrentRollForward_FD7BB952781C03E2D2B18095E69A0FD6_label_en-US" xlink:label="lab_cgnx_CustomerContractsLiabilityCurrentRollForward_FD7BB952781C03E2D2B18095E69A0FD6" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Customer Contracts Liability Current [Roll Forward]</link:label>
    <link:label id="lab_cgnx_CustomerContractsLiabilityCurrentRollForward_FD7BB952781C03E2D2B18095E69A0FD6_documentation_en-US" xlink:label="lab_cgnx_CustomerContractsLiabilityCurrentRollForward_FD7BB952781C03E2D2B18095E69A0FD6" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Customer Contracts Liability Current [Roll Forward]</link:label>
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_CustomerContractsLiabilityCurrentRollForward" xlink:label="loc_cgnx_CustomerContractsLiabilityCurrentRollForward_FD7BB952781C03E2D2B18095E69A0FD6" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_CustomerContractsLiabilityCurrentRollForward_FD7BB952781C03E2D2B18095E69A0FD6" xlink:to="lab_cgnx_CustomerContractsLiabilityCurrentRollForward_FD7BB952781C03E2D2B18095E69A0FD6" xlink:type="arc" />
    <link:label id="lab_us-gaap_ContractWithCustomerLiabilityCurrent_7EF90231620A465876728095E69B0DB3_periodStartLabel_en-US" xlink:label="lab_us-gaap_ContractWithCustomerLiabilityCurrent_7EF90231620A465876728095E69B0DB3" xlink:role="http://www.xbrl.org/2003/role/periodStartLabel" xlink:type="resource" xml:lang="en-US">Beginning balance</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ContractWithCustomerLiabilityCurrent" xlink:label="loc_us-gaap_ContractWithCustomerLiabilityCurrent_7EF90231620A465876728095E69B0DB3" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ContractWithCustomerLiabilityCurrent_7EF90231620A465876728095E69B0DB3" xlink:to="lab_us-gaap_ContractWithCustomerLiabilityCurrent_7EF90231620A465876728095E69B0DB3" xlink:type="arc" />
    <link:label id="lab_us-gaap_IncreaseDecreaseInContractWithCustomerLiability_087967F0152A773FBA958095E69B0911_terseLabel_en-US" xlink:label="lab_us-gaap_IncreaseDecreaseInContractWithCustomerLiability_087967F0152A773FBA958095E69B0911" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Increases to deferred revenue and customer deposits</link:label>
    <link:label id="lab_us-gaap_IncreaseDecreaseInContractWithCustomerLiability_087967F0152A773FBA958095E69B0911_label_en-US" xlink:label="lab_us-gaap_IncreaseDecreaseInContractWithCustomerLiability_087967F0152A773FBA958095E69B0911" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Increase (Decrease) in Contract with Customer, Liability</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_IncreaseDecreaseInContractWithCustomerLiability" xlink:label="loc_us-gaap_IncreaseDecreaseInContractWithCustomerLiability_087967F0152A773FBA958095E69B0911" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_IncreaseDecreaseInContractWithCustomerLiability_087967F0152A773FBA958095E69B0911" xlink:to="lab_us-gaap_IncreaseDecreaseInContractWithCustomerLiability_087967F0152A773FBA958095E69B0911" xlink:type="arc" />
    <link:label id="lab_us-gaap_ContractWithCustomerLiabilityRevenueRecognized_3BD88F8E5A727C9154278095E69B0229_negatedTerseLabel_en-US" xlink:label="lab_us-gaap_ContractWithCustomerLiabilityRevenueRecognized_3BD88F8E5A727C9154278095E69B0229" xlink:role="http://www.xbrl.org/2009/role/negatedTerseLabel" xlink:type="resource" xml:lang="en-US">Recognition of revenue</link:label>
    <link:label id="lab_us-gaap_ContractWithCustomerLiabilityRevenueRecognized_3BD88F8E5A727C9154278095E69B0229_label_en-US" xlink:label="lab_us-gaap_ContractWithCustomerLiabilityRevenueRecognized_3BD88F8E5A727C9154278095E69B0229" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Contract with Customer, Liability, Revenue Recognized</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ContractWithCustomerLiabilityRevenueRecognized" xlink:label="loc_us-gaap_ContractWithCustomerLiabilityRevenueRecognized_3BD88F8E5A727C9154278095E69B0229" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ContractWithCustomerLiabilityRevenueRecognized_3BD88F8E5A727C9154278095E69B0229" xlink:to="lab_us-gaap_ContractWithCustomerLiabilityRevenueRecognized_3BD88F8E5A727C9154278095E69B0229" xlink:type="arc" />
    <link:label id="lab_cgnx_ContractLiabilityForeignExchangeRateChanges_F550F14858DFB42405528095E69BB891_terseLabel_en-US" xlink:label="lab_cgnx_ContractLiabilityForeignExchangeRateChanges_F550F14858DFB42405528095E69BB891" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Foreign exchange rate changes</link:label>
    <link:label id="lab_cgnx_ContractLiabilityForeignExchangeRateChanges_F550F14858DFB42405528095E69BB891_label_en-US" xlink:label="lab_cgnx_ContractLiabilityForeignExchangeRateChanges_F550F14858DFB42405528095E69BB891" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Contract Liability Foreign Exchange Rate Changes</link:label>
    <link:label id="lab_cgnx_ContractLiabilityForeignExchangeRateChanges_F550F14858DFB42405528095E69BB891_documentation_en-US" xlink:label="lab_cgnx_ContractLiabilityForeignExchangeRateChanges_F550F14858DFB42405528095E69BB891" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Contract Liability Foreign Exchange Rate Changes</link:label>
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_ContractLiabilityForeignExchangeRateChanges" xlink:label="loc_cgnx_ContractLiabilityForeignExchangeRateChanges_F550F14858DFB42405528095E69BB891" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_ContractLiabilityForeignExchangeRateChanges_F550F14858DFB42405528095E69BB891" xlink:to="lab_cgnx_ContractLiabilityForeignExchangeRateChanges_F550F14858DFB42405528095E69BB891" xlink:type="arc" />
    <link:label id="lab_us-gaap_ContractWithCustomerLiabilityCurrent_5354BF0DADC25092BF068095E69BB989_periodEndLabel_en-US" xlink:label="lab_us-gaap_ContractWithCustomerLiabilityCurrent_5354BF0DADC25092BF068095E69BB989" xlink:role="http://www.xbrl.org/2003/role/periodEndLabel" xlink:type="resource" xml:lang="en-US">End balance</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ContractWithCustomerLiabilityCurrent" xlink:label="loc_us-gaap_ContractWithCustomerLiabilityCurrent_5354BF0DADC25092BF068095E69BB989" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ContractWithCustomerLiabilityCurrent_5354BF0DADC25092BF068095E69BB989" xlink:to="lab_us-gaap_ContractWithCustomerLiabilityCurrent_5354BF0DADC25092BF068095E69BB989" xlink:type="arc" />
    <link:label id="lab_us-gaap_ConcentrationRiskTable_60BD8EB7AE33DF2EBFE516BAB5A585B6_terseLabel_en-US" xlink:label="lab_us-gaap_ConcentrationRiskTable_60BD8EB7AE33DF2EBFE516BAB5A585B6" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Concentration Risk [Table]</link:label>
    <link:label id="lab_us-gaap_ConcentrationRiskTable_60BD8EB7AE33DF2EBFE516BAB5A585B6_label_en-US" xlink:label="lab_us-gaap_ConcentrationRiskTable_60BD8EB7AE33DF2EBFE516BAB5A585B6" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Concentration Risk [Table]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ConcentrationRiskTable" xlink:label="loc_us-gaap_ConcentrationRiskTable_60BD8EB7AE33DF2EBFE516BAB5A585B6" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ConcentrationRiskTable_60BD8EB7AE33DF2EBFE516BAB5A585B6" xlink:to="lab_us-gaap_ConcentrationRiskTable_60BD8EB7AE33DF2EBFE516BAB5A585B6" xlink:type="arc" />
    <link:label id="lab_us-gaap_ConcentrationRiskByBenchmarkAxis_E61BCD0D253E2435CBA716BAB5A6A7C0_terseLabel_en-US" xlink:label="lab_us-gaap_ConcentrationRiskByBenchmarkAxis_E61BCD0D253E2435CBA716BAB5A6A7C0" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Concentration Risk Benchmark [Axis]</link:label>
    <link:label id="lab_us-gaap_ConcentrationRiskByBenchmarkAxis_E61BCD0D253E2435CBA716BAB5A6A7C0_label_en-US" xlink:label="lab_us-gaap_ConcentrationRiskByBenchmarkAxis_E61BCD0D253E2435CBA716BAB5A6A7C0" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Concentration Risk Benchmark [Axis]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ConcentrationRiskByBenchmarkAxis" xlink:label="loc_us-gaap_ConcentrationRiskByBenchmarkAxis_E61BCD0D253E2435CBA716BAB5A6A7C0" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ConcentrationRiskByBenchmarkAxis_E61BCD0D253E2435CBA716BAB5A6A7C0" xlink:to="lab_us-gaap_ConcentrationRiskByBenchmarkAxis_E61BCD0D253E2435CBA716BAB5A6A7C0" xlink:type="arc" />
    <link:label id="lab_us-gaap_ConcentrationRiskBenchmarkDomain_C85C37759CC117BD512E16BAB5A7CF69_terseLabel_en-US" xlink:label="lab_us-gaap_ConcentrationRiskBenchmarkDomain_C85C37759CC117BD512E16BAB5A7CF69" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Concentration Risk Benchmark [Domain]</link:label>
    <link:label id="lab_us-gaap_ConcentrationRiskBenchmarkDomain_C85C37759CC117BD512E16BAB5A7CF69_label_en-US" xlink:label="lab_us-gaap_ConcentrationRiskBenchmarkDomain_C85C37759CC117BD512E16BAB5A7CF69" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Concentration Risk Benchmark [Domain]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ConcentrationRiskBenchmarkDomain" xlink:label="loc_us-gaap_ConcentrationRiskBenchmarkDomain_C85C37759CC117BD512E16BAB5A7CF69" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ConcentrationRiskBenchmarkDomain_C85C37759CC117BD512E16BAB5A7CF69" xlink:to="lab_us-gaap_ConcentrationRiskBenchmarkDomain_C85C37759CC117BD512E16BAB5A7CF69" xlink:type="arc" />
    <link:label id="lab_us-gaap_SalesRevenueNetMember_FEDE6DA3DCC2B481DE5F16BAB5A76CEB_verboseLabel_en-US" xlink:label="lab_us-gaap_SalesRevenueNetMember_FEDE6DA3DCC2B481DE5F16BAB5A76CEB" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xml:lang="en-US">Total Revenue</link:label>
    <link:label id="lab_us-gaap_SalesRevenueNetMember_FEDE6DA3DCC2B481DE5F16BAB5A76CEB_label_en-US" xlink:label="lab_us-gaap_SalesRevenueNetMember_FEDE6DA3DCC2B481DE5F16BAB5A76CEB" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Sales Revenue, Net [Member]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_SalesRevenueNetMember" xlink:label="loc_us-gaap_SalesRevenueNetMember_FEDE6DA3DCC2B481DE5F16BAB5A76CEB" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_SalesRevenueNetMember_FEDE6DA3DCC2B481DE5F16BAB5A76CEB" xlink:to="lab_us-gaap_SalesRevenueNetMember_FEDE6DA3DCC2B481DE5F16BAB5A76CEB" xlink:type="arc" />
    <link:label id="lab_us-gaap_AccountsReceivableMember_CE46140654FD9F82035516BAB5A72853_terseLabel_en-US" xlink:label="lab_us-gaap_AccountsReceivableMember_CE46140654FD9F82035516BAB5A72853" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Accounts Receivable [Member]</link:label>
    <link:label id="lab_us-gaap_AccountsReceivableMember_CE46140654FD9F82035516BAB5A72853_label_en-US" xlink:label="lab_us-gaap_AccountsReceivableMember_CE46140654FD9F82035516BAB5A72853" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Accounts Receivable [Member]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_AccountsReceivableMember" xlink:label="loc_us-gaap_AccountsReceivableMember_CE46140654FD9F82035516BAB5A72853" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AccountsReceivableMember_CE46140654FD9F82035516BAB5A72853" xlink:to="lab_us-gaap_AccountsReceivableMember_CE46140654FD9F82035516BAB5A72853" xlink:type="arc" />
    <link:label id="lab_us-gaap_ConcentrationRiskByTypeAxis_2B12D94251E18B20C77A16BAB5A72877_terseLabel_en-US" xlink:label="lab_us-gaap_ConcentrationRiskByTypeAxis_2B12D94251E18B20C77A16BAB5A72877" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Concentration Risk Type [Axis]</link:label>
    <link:label id="lab_us-gaap_ConcentrationRiskByTypeAxis_2B12D94251E18B20C77A16BAB5A72877_label_en-US" xlink:label="lab_us-gaap_ConcentrationRiskByTypeAxis_2B12D94251E18B20C77A16BAB5A72877" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Concentration Risk Type [Axis]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ConcentrationRiskByTypeAxis" xlink:label="loc_us-gaap_ConcentrationRiskByTypeAxis_2B12D94251E18B20C77A16BAB5A72877" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ConcentrationRiskByTypeAxis_2B12D94251E18B20C77A16BAB5A72877" xlink:to="lab_us-gaap_ConcentrationRiskByTypeAxis_2B12D94251E18B20C77A16BAB5A72877" xlink:type="arc" />
    <link:label id="lab_us-gaap_ConcentrationRiskTypeDomain_73187D81A65D53D37B1416BAB5A76D72_terseLabel_en-US" xlink:label="lab_us-gaap_ConcentrationRiskTypeDomain_73187D81A65D53D37B1416BAB5A76D72" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Concentration Risk Type [Domain]</link:label>
    <link:label id="lab_us-gaap_ConcentrationRiskTypeDomain_73187D81A65D53D37B1416BAB5A76D72_label_en-US" xlink:label="lab_us-gaap_ConcentrationRiskTypeDomain_73187D81A65D53D37B1416BAB5A76D72" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Concentration Risk Type [Domain]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ConcentrationRiskTypeDomain" xlink:label="loc_us-gaap_ConcentrationRiskTypeDomain_73187D81A65D53D37B1416BAB5A76D72" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ConcentrationRiskTypeDomain_73187D81A65D53D37B1416BAB5A76D72" xlink:to="lab_us-gaap_ConcentrationRiskTypeDomain_73187D81A65D53D37B1416BAB5A76D72" xlink:type="arc" />
    <link:label id="lab_us-gaap_CustomerConcentrationRiskMember_F04A7F750F849F5E5F8616BAB5A8D719_verboseLabel_en-US" xlink:label="lab_us-gaap_CustomerConcentrationRiskMember_F04A7F750F849F5E5F8616BAB5A8D719" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xml:lang="en-US">Revenue from a single customer, percentage</link:label>
    <link:label id="lab_us-gaap_CustomerConcentrationRiskMember_F04A7F750F849F5E5F8616BAB5A8D719_label_en-US" xlink:label="lab_us-gaap_CustomerConcentrationRiskMember_F04A7F750F849F5E5F8616BAB5A8D719" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Customer Concentration Risk [Member]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_CustomerConcentrationRiskMember" xlink:label="loc_us-gaap_CustomerConcentrationRiskMember_F04A7F750F849F5E5F8616BAB5A8D719" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_CustomerConcentrationRiskMember_F04A7F750F849F5E5F8616BAB5A8D719" xlink:to="lab_us-gaap_CustomerConcentrationRiskMember_F04A7F750F849F5E5F8616BAB5A8D719" xlink:type="arc" />
    <link:label id="lab_us-gaap_ConcentrationRiskLineItems_E9F9E58F5F5966216CF316BAB5A86E47_terseLabel_en-US" xlink:label="lab_us-gaap_ConcentrationRiskLineItems_E9F9E58F5F5966216CF316BAB5A86E47" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Concentration Risk [Line Items]</link:label>
    <link:label id="lab_us-gaap_ConcentrationRiskLineItems_E9F9E58F5F5966216CF316BAB5A86E47_label_en-US" xlink:label="lab_us-gaap_ConcentrationRiskLineItems_E9F9E58F5F5966216CF316BAB5A86E47" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Concentration Risk [Line Items]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ConcentrationRiskLineItems" xlink:label="loc_us-gaap_ConcentrationRiskLineItems_E9F9E58F5F5966216CF316BAB5A86E47" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ConcentrationRiskLineItems_E9F9E58F5F5966216CF316BAB5A86E47" xlink:to="lab_us-gaap_ConcentrationRiskLineItems_E9F9E58F5F5966216CF316BAB5A86E47" xlink:type="arc" />
    <link:label id="lab_us-gaap_NumberOfReportableSegments_C70FB53792F90EA40F0016BAB5A8663F_terseLabel_en-US" xlink:label="lab_us-gaap_NumberOfReportableSegments_C70FB53792F90EA40F0016BAB5A8663F" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Number of reportable segments</link:label>
    <link:label id="lab_us-gaap_NumberOfReportableSegments_C70FB53792F90EA40F0016BAB5A8663F_label_en-US" xlink:label="lab_us-gaap_NumberOfReportableSegments_C70FB53792F90EA40F0016BAB5A8663F" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Number of Reportable Segments</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_NumberOfReportableSegments" xlink:label="loc_us-gaap_NumberOfReportableSegments_C70FB53792F90EA40F0016BAB5A8663F" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_NumberOfReportableSegments_C70FB53792F90EA40F0016BAB5A8663F" xlink:to="lab_us-gaap_NumberOfReportableSegments_C70FB53792F90EA40F0016BAB5A8663F" xlink:type="arc" />
    <link:label id="lab_us-gaap_ConcentrationRiskPercentage1_207CC0CCA235AD3C8C8416BAB5A9902F_verboseLabel_en-US" xlink:label="lab_us-gaap_ConcentrationRiskPercentage1_207CC0CCA235AD3C8C8416BAB5A9902F" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xml:lang="en-US">Maximum percentage of revenue accountability</link:label>
    <link:label id="lab_us-gaap_ConcentrationRiskPercentage1_207CC0CCA235AD3C8C8416BAB5A9902F_label_en-US" xlink:label="lab_us-gaap_ConcentrationRiskPercentage1_207CC0CCA235AD3C8C8416BAB5A9902F" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Concentration Risk, Percentage</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ConcentrationRiskPercentage1" xlink:label="loc_us-gaap_ConcentrationRiskPercentage1_207CC0CCA235AD3C8C8416BAB5A9902F" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ConcentrationRiskPercentage1_207CC0CCA235AD3C8C8416BAB5A9902F" xlink:to="lab_us-gaap_ConcentrationRiskPercentage1_207CC0CCA235AD3C8C8416BAB5A9902F" xlink:type="arc" />
    <link:label id="lab_us-gaap_DeferredTaxAssetsNetNoncurrentClassificationAbstract_418C54413F1094BA87A737125B9D00A9_terseLabel_en-US" xlink:label="lab_us-gaap_DeferredTaxAssetsNetNoncurrentClassificationAbstract_418C54413F1094BA87A737125B9D00A9" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Non-current gross deferred tax assets:</link:label>
    <link:label id="lab_us-gaap_DeferredTaxAssetsNetNoncurrentClassificationAbstract_418C54413F1094BA87A737125B9D00A9_label_en-US" xlink:label="lab_us-gaap_DeferredTaxAssetsNetNoncurrentClassificationAbstract_418C54413F1094BA87A737125B9D00A9" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Deferred Tax Assets, Net of Valuation Allowance, Noncurrent Classification [Abstract]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_DeferredTaxAssetsNetNoncurrentClassificationAbstract" xlink:label="loc_us-gaap_DeferredTaxAssetsNetNoncurrentClassificationAbstract_418C54413F1094BA87A737125B9D00A9" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DeferredTaxAssetsNetNoncurrentClassificationAbstract_418C54413F1094BA87A737125B9D00A9" xlink:to="lab_us-gaap_DeferredTaxAssetsNetNoncurrentClassificationAbstract_418C54413F1094BA87A737125B9D00A9" xlink:type="arc" />
    <link:label id="lab_cgnx_DeferredTaxAssetsIntangibleAssetChangeinTaxStructure_728CE9E391D69BAEFDA737125B9EB812_terseLabel_en-US" xlink:label="lab_cgnx_DeferredTaxAssetsIntangibleAssetChangeinTaxStructure_728CE9E391D69BAEFDA737125B9EB812" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Intangible asset in connection with change in tax structure</link:label>
    <link:label id="lab_cgnx_DeferredTaxAssetsIntangibleAssetChangeinTaxStructure_728CE9E391D69BAEFDA737125B9EB812_label_en-US" xlink:label="lab_cgnx_DeferredTaxAssetsIntangibleAssetChangeinTaxStructure_728CE9E391D69BAEFDA737125B9EB812" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Deferred Tax Assets, Intangible Asset, Change in Tax Structure</link:label>
    <link:label id="lab_cgnx_DeferredTaxAssetsIntangibleAssetChangeinTaxStructure_728CE9E391D69BAEFDA737125B9EB812_documentation_en-US" xlink:label="lab_cgnx_DeferredTaxAssetsIntangibleAssetChangeinTaxStructure_728CE9E391D69BAEFDA737125B9EB812" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Deferred Tax Assets, Intangible Asset, Change in Tax Structure</link:label>
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_DeferredTaxAssetsIntangibleAssetChangeinTaxStructure" xlink:label="loc_cgnx_DeferredTaxAssetsIntangibleAssetChangeinTaxStructure_728CE9E391D69BAEFDA737125B9EB812" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_DeferredTaxAssetsIntangibleAssetChangeinTaxStructure_728CE9E391D69BAEFDA737125B9EB812" xlink:to="lab_cgnx_DeferredTaxAssetsIntangibleAssetChangeinTaxStructure_728CE9E391D69BAEFDA737125B9EB812" xlink:type="arc" />
    <link:label id="lab_us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost_E4D1BB8AE2919FC06F3137125B9E20BB_terseLabel_en-US" xlink:label="lab_us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost_E4D1BB8AE2919FC06F3137125B9E20BB" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Stock-based compensation expense</link:label>
    <link:label id="lab_us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost_E4D1BB8AE2919FC06F3137125B9E20BB_label_en-US" xlink:label="lab_us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost_E4D1BB8AE2919FC06F3137125B9E20BB" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Deferred Tax Assets, Tax Deferred Expense, Compensation and Benefits, Share-based Compensation Cost</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost" xlink:label="loc_us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost_E4D1BB8AE2919FC06F3137125B9E20BB" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost_E4D1BB8AE2919FC06F3137125B9E20BB" xlink:to="lab_us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost_E4D1BB8AE2919FC06F3137125B9E20BB" xlink:type="arc" />
    <link:label id="lab_us-gaap_DeferredTaxAssetsOperatingLossCarryforwardsDomestic_9F9B2B9E1E1B45A9165D37125B9E4F04_terseLabel_en-US" xlink:label="lab_us-gaap_DeferredTaxAssetsOperatingLossCarryforwardsDomestic_9F9B2B9E1E1B45A9165D37125B9E4F04" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Federal and state tax credit carryforwards</link:label>
    <link:label id="lab_us-gaap_DeferredTaxAssetsOperatingLossCarryforwardsDomestic_9F9B2B9E1E1B45A9165D37125B9E4F04_label_en-US" xlink:label="lab_us-gaap_DeferredTaxAssetsOperatingLossCarryforwardsDomestic_9F9B2B9E1E1B45A9165D37125B9E4F04" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Deferred Tax Assets, Operating Loss Carryforwards, Domestic</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_DeferredTaxAssetsOperatingLossCarryforwardsDomestic" xlink:label="loc_us-gaap_DeferredTaxAssetsOperatingLossCarryforwardsDomestic_9F9B2B9E1E1B45A9165D37125B9E4F04" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DeferredTaxAssetsOperatingLossCarryforwardsDomestic_9F9B2B9E1E1B45A9165D37125B9E4F04" xlink:to="lab_us-gaap_DeferredTaxAssetsOperatingLossCarryforwardsDomestic_9F9B2B9E1E1B45A9165D37125B9E4F04" xlink:type="arc" />
    <link:label id="lab_us-gaap_DeferredTaxAssetsOperatingLossCarryforwardsForeign_C10F0FD0C179105FFA9837125B9EB9F4_terseLabel_en-US" xlink:label="lab_us-gaap_DeferredTaxAssetsOperatingLossCarryforwardsForeign_C10F0FD0C179105FFA9837125B9EB9F4" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Foreign net operating losses</link:label>
    <link:label id="lab_us-gaap_DeferredTaxAssetsOperatingLossCarryforwardsForeign_C10F0FD0C179105FFA9837125B9EB9F4_label_en-US" xlink:label="lab_us-gaap_DeferredTaxAssetsOperatingLossCarryforwardsForeign_C10F0FD0C179105FFA9837125B9EB9F4" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Deferred Tax Assets, Operating Loss Carryforwards, Foreign</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_DeferredTaxAssetsOperatingLossCarryforwardsForeign" xlink:label="loc_us-gaap_DeferredTaxAssetsOperatingLossCarryforwardsForeign_C10F0FD0C179105FFA9837125B9EB9F4" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DeferredTaxAssetsOperatingLossCarryforwardsForeign_C10F0FD0C179105FFA9837125B9EB9F4" xlink:to="lab_us-gaap_DeferredTaxAssetsOperatingLossCarryforwardsForeign_C10F0FD0C179105FFA9837125B9EB9F4" xlink:type="arc" />
    <link:label id="lab_cgnx_NoncurrentDeferredTaxAssetsDeprecation_14A72C509ABBDDBD3E5C37125B9EEEF1_terseLabel_en-US" xlink:label="lab_cgnx_NoncurrentDeferredTaxAssetsDeprecation_14A72C509ABBDDBD3E5C37125B9EEEF1" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Depreciation</link:label>
    <link:label id="lab_cgnx_NoncurrentDeferredTaxAssetsDeprecation_14A72C509ABBDDBD3E5C37125B9EEEF1_label_en-US" xlink:label="lab_cgnx_NoncurrentDeferredTaxAssetsDeprecation_14A72C509ABBDDBD3E5C37125B9EEEF1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Noncurrent Deferred Tax Assets Deprecation</link:label>
    <link:label id="lab_cgnx_NoncurrentDeferredTaxAssetsDeprecation_14A72C509ABBDDBD3E5C37125B9EEEF1_documentation_en-US" xlink:label="lab_cgnx_NoncurrentDeferredTaxAssetsDeprecation_14A72C509ABBDDBD3E5C37125B9EEEF1" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Noncurrent deferred tax assets deprecation.</link:label>
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_NoncurrentDeferredTaxAssetsDeprecation" xlink:label="loc_cgnx_NoncurrentDeferredTaxAssetsDeprecation_14A72C509ABBDDBD3E5C37125B9EEEF1" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_NoncurrentDeferredTaxAssetsDeprecation_14A72C509ABBDDBD3E5C37125B9EEEF1" xlink:to="lab_cgnx_NoncurrentDeferredTaxAssetsDeprecation_14A72C509ABBDDBD3E5C37125B9EEEF1" xlink:type="arc" />
    <link:label id="lab_us-gaap_DeferredTaxAssetsInventory_929925BDB75D52F8183337125B9FB9BF_terseLabel_en-US" xlink:label="lab_us-gaap_DeferredTaxAssetsInventory_929925BDB75D52F8183337125B9FB9BF" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Inventory and revenue related</link:label>
    <link:label id="lab_us-gaap_DeferredTaxAssetsInventory_929925BDB75D52F8183337125B9FB9BF_label_en-US" xlink:label="lab_us-gaap_DeferredTaxAssetsInventory_929925BDB75D52F8183337125B9FB9BF" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Deferred Tax Assets, Inventory</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_DeferredTaxAssetsInventory" xlink:label="loc_us-gaap_DeferredTaxAssetsInventory_929925BDB75D52F8183337125B9FB9BF" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DeferredTaxAssetsInventory_929925BDB75D52F8183337125B9FB9BF" xlink:to="lab_us-gaap_DeferredTaxAssetsInventory_929925BDB75D52F8183337125B9FB9BF" xlink:type="arc" />
    <link:label id="lab_us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsOther_EE2827F73C46CAFC4E3337125B9FCBB9_terseLabel_en-US" xlink:label="lab_us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsOther_EE2827F73C46CAFC4E3337125B9FCBB9" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Bonuses, commissions, and other compensation</link:label>
    <link:label id="lab_us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsOther_EE2827F73C46CAFC4E3337125B9FCBB9_label_en-US" xlink:label="lab_us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsOther_EE2827F73C46CAFC4E3337125B9FCBB9" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Deferred Tax Assets, Tax Deferred Expense, Compensation and Benefits, Other</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsOther" xlink:label="loc_us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsOther_EE2827F73C46CAFC4E3337125B9FCBB9" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsOther_EE2827F73C46CAFC4E3337125B9FCBB9" xlink:to="lab_us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsOther_EE2827F73C46CAFC4E3337125B9FCBB9" xlink:type="arc" />
    <link:label id="lab_cgnx_DeferredTaxAssetsOtherNoncurrent_19C12405E2DD6F65CAB937125B9FD591_terseLabel_en-US" xlink:label="lab_cgnx_DeferredTaxAssetsOtherNoncurrent_19C12405E2DD6F65CAB937125B9FD591" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Other</link:label>
    <link:label id="lab_cgnx_DeferredTaxAssetsOtherNoncurrent_19C12405E2DD6F65CAB937125B9FD591_label_en-US" xlink:label="lab_cgnx_DeferredTaxAssetsOtherNoncurrent_19C12405E2DD6F65CAB937125B9FD591" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Deferred Tax Assets Other Noncurrent</link:label>
    <link:label id="lab_cgnx_DeferredTaxAssetsOtherNoncurrent_19C12405E2DD6F65CAB937125B9FD591_documentation_en-US" xlink:label="lab_cgnx_DeferredTaxAssetsOtherNoncurrent_19C12405E2DD6F65CAB937125B9FD591" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Deferred tax assets other non current.</link:label>
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_DeferredTaxAssetsOtherNoncurrent" xlink:label="loc_cgnx_DeferredTaxAssetsOtherNoncurrent_19C12405E2DD6F65CAB937125B9FD591" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_DeferredTaxAssetsOtherNoncurrent_19C12405E2DD6F65CAB937125B9FD591" xlink:to="lab_cgnx_DeferredTaxAssetsOtherNoncurrent_19C12405E2DD6F65CAB937125B9FD591" xlink:type="arc" />
    <link:label id="lab_us-gaap_DeferredTaxAssetsGrossNoncurrent_A59FFFBF7FAAE17C71BB37125B9F249B_totalLabel_en-US" xlink:label="lab_us-gaap_DeferredTaxAssetsGrossNoncurrent_A59FFFBF7FAAE17C71BB37125B9F249B" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xml:lang="en-US">Gross non-current deferred tax assets</link:label>
    <link:label id="lab_us-gaap_DeferredTaxAssetsGrossNoncurrent_A59FFFBF7FAAE17C71BB37125B9F249B_label_en-US" xlink:label="lab_us-gaap_DeferredTaxAssetsGrossNoncurrent_A59FFFBF7FAAE17C71BB37125B9F249B" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Deferred Tax Assets, Gross, Noncurrent</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_DeferredTaxAssetsGrossNoncurrent" xlink:label="loc_us-gaap_DeferredTaxAssetsGrossNoncurrent_A59FFFBF7FAAE17C71BB37125B9F249B" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DeferredTaxAssetsGrossNoncurrent_A59FFFBF7FAAE17C71BB37125B9F249B" xlink:to="lab_us-gaap_DeferredTaxAssetsGrossNoncurrent_A59FFFBF7FAAE17C71BB37125B9F249B" xlink:type="arc" />
    <link:label id="lab_us-gaap_DeferredTaxAssetsValuationAllowanceNoncurrent_C36202508D9ECE56DE7137125B9F4559_negatedTerseLabel_en-US" xlink:label="lab_us-gaap_DeferredTaxAssetsValuationAllowanceNoncurrent_C36202508D9ECE56DE7137125B9F4559" xlink:role="http://www.xbrl.org/2009/role/negatedTerseLabel" xlink:type="resource" xml:lang="en-US">Valuation allowance</link:label>
    <link:label id="lab_us-gaap_DeferredTaxAssetsValuationAllowanceNoncurrent_C36202508D9ECE56DE7137125B9F4559_label_en-US" xlink:label="lab_us-gaap_DeferredTaxAssetsValuationAllowanceNoncurrent_C36202508D9ECE56DE7137125B9F4559" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Deferred Tax Assets, Valuation Allowance, Noncurrent</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_DeferredTaxAssetsValuationAllowanceNoncurrent" xlink:label="loc_us-gaap_DeferredTaxAssetsValuationAllowanceNoncurrent_C36202508D9ECE56DE7137125B9F4559" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DeferredTaxAssetsValuationAllowanceNoncurrent_C36202508D9ECE56DE7137125B9F4559" xlink:to="lab_us-gaap_DeferredTaxAssetsValuationAllowanceNoncurrent_C36202508D9ECE56DE7137125B9F4559" xlink:type="arc" />
    <link:label id="lab_us-gaap_DeferredTaxAssetsLiabilitiesNetNoncurrent_A42E268933F7EFC4196A37125B9F174B_totalLabel_en-US" xlink:label="lab_us-gaap_DeferredTaxAssetsLiabilitiesNetNoncurrent_A42E268933F7EFC4196A37125B9F174B" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xml:lang="en-US">Net non-current deferred tax assets</link:label>
    <link:label id="lab_us-gaap_DeferredTaxAssetsLiabilitiesNetNoncurrent_A42E268933F7EFC4196A37125B9F174B_label_en-US" xlink:label="lab_us-gaap_DeferredTaxAssetsLiabilitiesNetNoncurrent_A42E268933F7EFC4196A37125B9F174B" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Deferred Tax Assets, Net, Noncurrent</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_DeferredTaxAssetsLiabilitiesNetNoncurrent" xlink:label="loc_us-gaap_DeferredTaxAssetsLiabilitiesNetNoncurrent_A42E268933F7EFC4196A37125B9F174B" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DeferredTaxAssetsLiabilitiesNetNoncurrent_A42E268933F7EFC4196A37125B9F174B" xlink:to="lab_us-gaap_DeferredTaxAssetsLiabilitiesNetNoncurrent_A42E268933F7EFC4196A37125B9F174B" xlink:type="arc" />
    <link:label id="lab_us-gaap_DeferredTaxLiabilitiesAbstract_CEEC62EAFAC83AA6ECCB37125BA017D5_terseLabel_en-US" xlink:label="lab_us-gaap_DeferredTaxLiabilitiesAbstract_CEEC62EAFAC83AA6ECCB37125BA017D5" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Non-current gross deferred tax liabilities:</link:label>
    <link:label id="lab_us-gaap_DeferredTaxLiabilitiesAbstract_CEEC62EAFAC83AA6ECCB37125BA017D5_label_en-US" xlink:label="lab_us-gaap_DeferredTaxLiabilitiesAbstract_CEEC62EAFAC83AA6ECCB37125BA017D5" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Deferred Tax Liabilities, Gross [Abstract]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_DeferredTaxLiabilitiesAbstract" xlink:label="loc_us-gaap_DeferredTaxLiabilitiesAbstract_CEEC62EAFAC83AA6ECCB37125BA017D5" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DeferredTaxLiabilitiesAbstract_CEEC62EAFAC83AA6ECCB37125BA017D5" xlink:to="lab_us-gaap_DeferredTaxLiabilitiesAbstract_CEEC62EAFAC83AA6ECCB37125BA017D5" xlink:type="arc" />
    <link:label id="lab_cgnx_DeferredTaxLiabilitiesTaxCutsAndJobsActGlobalIntangibleLowTaxIncome_45CAE073D5A547BA514837125BA0A204_negatedTerseLabel_en-US" xlink:label="lab_cgnx_DeferredTaxLiabilitiesTaxCutsAndJobsActGlobalIntangibleLowTaxIncome_45CAE073D5A547BA514837125BA0A204" xlink:role="http://www.xbrl.org/2009/role/negatedTerseLabel" xlink:type="resource" xml:lang="en-US">GILTI tax basis differences in connection with change in tax structure</link:label>
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_DeferredTaxLiabilitiesTaxCutsAndJobsActGlobalIntangibleLowTaxIncome" xlink:label="loc_cgnx_DeferredTaxLiabilitiesTaxCutsAndJobsActGlobalIntangibleLowTaxIncome_45CAE073D5A547BA514837125BA0A204" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_DeferredTaxLiabilitiesTaxCutsAndJobsActGlobalIntangibleLowTaxIncome_45CAE073D5A547BA514837125BA0A204" xlink:to="lab_cgnx_DeferredTaxLiabilitiesTaxCutsAndJobsActGlobalIntangibleLowTaxIncome_45CAE073D5A547BA514837125BA0A204" xlink:type="arc" />
    <link:label id="lab_cgnx_DeferredTaxLiabilitiesTaxCutsAndJobsActOtherGlobalIntangibleLowTaxIncome_7BA7864AF7B603A9B1E737125BA0FFA6_terseLabel_en-US" xlink:label="lab_cgnx_DeferredTaxLiabilitiesTaxCutsAndJobsActOtherGlobalIntangibleLowTaxIncome_7BA7864AF7B603A9B1E737125BA0FFA6" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Other GILTI tax basis differences</link:label>
    <link:label id="lab_cgnx_DeferredTaxLiabilitiesTaxCutsAndJobsActOtherGlobalIntangibleLowTaxIncome_7BA7864AF7B603A9B1E737125BA0FFA6_label_en-US" xlink:label="lab_cgnx_DeferredTaxLiabilitiesTaxCutsAndJobsActOtherGlobalIntangibleLowTaxIncome_7BA7864AF7B603A9B1E737125BA0FFA6" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Deferred Tax Liabilities, Tax Cuts And Jobs Act, Other Global Intangible Low Tax Income</link:label>
    <link:label id="lab_cgnx_DeferredTaxLiabilitiesTaxCutsAndJobsActOtherGlobalIntangibleLowTaxIncome_7BA7864AF7B603A9B1E737125BA0FFA6_documentation_en-US" xlink:label="lab_cgnx_DeferredTaxLiabilitiesTaxCutsAndJobsActOtherGlobalIntangibleLowTaxIncome_7BA7864AF7B603A9B1E737125BA0FFA6" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Deferred Tax Liabilities, Tax Cuts And Jobs Act, Other Global Intangible Low Tax Income</link:label>
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_DeferredTaxLiabilitiesTaxCutsAndJobsActOtherGlobalIntangibleLowTaxIncome" xlink:label="loc_cgnx_DeferredTaxLiabilitiesTaxCutsAndJobsActOtherGlobalIntangibleLowTaxIncome_7BA7864AF7B603A9B1E737125BA0FFA6" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_DeferredTaxLiabilitiesTaxCutsAndJobsActOtherGlobalIntangibleLowTaxIncome_7BA7864AF7B603A9B1E737125BA0FFA6" xlink:to="lab_cgnx_DeferredTaxLiabilitiesTaxCutsAndJobsActOtherGlobalIntangibleLowTaxIncome_7BA7864AF7B603A9B1E737125BA0FFA6" xlink:type="arc" />
    <link:label id="lab_us-gaap_DeferredTaxLiabilitiesGoodwillAndIntangibleAssetsIntangibleAssets_2489AF220C91AB85E83F37125BA07C06_negatedTerseLabel_en-US" xlink:label="lab_us-gaap_DeferredTaxLiabilitiesGoodwillAndIntangibleAssetsIntangibleAssets_2489AF220C91AB85E83F37125BA07C06" xlink:role="http://www.xbrl.org/2009/role/negatedTerseLabel" xlink:type="resource" xml:lang="en-US">Nondeductible intangible assets</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_DeferredTaxLiabilitiesGoodwillAndIntangibleAssetsIntangibleAssets" xlink:label="loc_us-gaap_DeferredTaxLiabilitiesGoodwillAndIntangibleAssetsIntangibleAssets_2489AF220C91AB85E83F37125BA07C06" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DeferredTaxLiabilitiesGoodwillAndIntangibleAssetsIntangibleAssets_2489AF220C91AB85E83F37125BA07C06" xlink:to="lab_us-gaap_DeferredTaxLiabilitiesGoodwillAndIntangibleAssetsIntangibleAssets_2489AF220C91AB85E83F37125BA07C06" xlink:type="arc" />
    <link:label id="lab_us-gaap_DeferredTaxLiabilitiesOther_1BBD7DD838BE0E90234D37125BA08E33_negatedTerseLabel_en-US" xlink:label="lab_us-gaap_DeferredTaxLiabilitiesOther_1BBD7DD838BE0E90234D37125BA08E33" xlink:role="http://www.xbrl.org/2009/role/negatedTerseLabel" xlink:type="resource" xml:lang="en-US">Other</link:label>
    <link:label id="lab_us-gaap_DeferredTaxLiabilitiesOther_1BBD7DD838BE0E90234D37125BA08E33_label_en-US" xlink:label="lab_us-gaap_DeferredTaxLiabilitiesOther_1BBD7DD838BE0E90234D37125BA08E33" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Deferred Tax Liabilities, Other</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_DeferredTaxLiabilitiesOther" xlink:label="loc_us-gaap_DeferredTaxLiabilitiesOther_1BBD7DD838BE0E90234D37125BA08E33" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DeferredTaxLiabilitiesOther_1BBD7DD838BE0E90234D37125BA08E33" xlink:to="lab_us-gaap_DeferredTaxLiabilitiesOther_1BBD7DD838BE0E90234D37125BA08E33" xlink:type="arc" />
    <link:label id="lab_us-gaap_DeferredTaxLiabilitiesGrossCurrent_915031CF4BC2DDBED76E37125BA1F1FE_totalLabel_en-US" xlink:label="lab_us-gaap_DeferredTaxLiabilitiesGrossCurrent_915031CF4BC2DDBED76E37125BA1F1FE" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xml:lang="en-US">Net non-current deferred tax liabilities</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_DeferredTaxLiabilitiesGrossCurrent" xlink:label="loc_us-gaap_DeferredTaxLiabilitiesGrossCurrent_915031CF4BC2DDBED76E37125BA1F1FE" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DeferredTaxLiabilitiesGrossCurrent_915031CF4BC2DDBED76E37125BA1F1FE" xlink:to="lab_us-gaap_DeferredTaxLiabilitiesGrossCurrent_915031CF4BC2DDBED76E37125BA1F1FE" xlink:type="arc" />
    <link:label id="lab_us-gaap_ValuationAllowanceByDeferredTaxAssetAxis_D733B65C57B80119811537125BA1C624_terseLabel_en-US" xlink:label="lab_us-gaap_ValuationAllowanceByDeferredTaxAssetAxis_D733B65C57B80119811537125BA1C624" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Valuation Allowance by Deferred Tax Asset [Axis]</link:label>
    <link:label id="lab_us-gaap_ValuationAllowanceByDeferredTaxAssetAxis_D733B65C57B80119811537125BA1C624_label_en-US" xlink:label="lab_us-gaap_ValuationAllowanceByDeferredTaxAssetAxis_D733B65C57B80119811537125BA1C624" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Valuation Allowance by Deferred Tax Asset [Axis]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ValuationAllowanceByDeferredTaxAssetAxis" xlink:label="loc_us-gaap_ValuationAllowanceByDeferredTaxAssetAxis_D733B65C57B80119811537125BA1C624" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ValuationAllowanceByDeferredTaxAssetAxis_D733B65C57B80119811537125BA1C624" xlink:to="lab_us-gaap_ValuationAllowanceByDeferredTaxAssetAxis_D733B65C57B80119811537125BA1C624" xlink:type="arc" />
    <link:label id="lab_us-gaap_DeferredTaxAssetDomain_052F6BEA565D27E9AC4F37125BA16FCA_terseLabel_en-US" xlink:label="lab_us-gaap_DeferredTaxAssetDomain_052F6BEA565D27E9AC4F37125BA16FCA" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Deferred Tax Asset [Domain]</link:label>
    <link:label id="lab_us-gaap_DeferredTaxAssetDomain_052F6BEA565D27E9AC4F37125BA16FCA_label_en-US" xlink:label="lab_us-gaap_DeferredTaxAssetDomain_052F6BEA565D27E9AC4F37125BA16FCA" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Deferred Tax Asset [Domain]</link:label>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_DeferredTaxAssetDomain" xlink:label="loc_us-gaap_DeferredTaxAssetDomain_052F6BEA565D27E9AC4F37125BA16FCA" xlink:type="locator" />
    <link:labelArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DeferredTaxAssetDomain_052F6BEA565D27E9AC4F37125BA16FCA" xlink:to="lab_us-gaap_DeferredTaxAssetDomain_052F6BEA565D27E9AC4F37125BA16FCA" xlink:type="arc" />
  </link:labelLink>
</link:linkbase>
</XBRL>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EX-101.PRE
<SEQUENCE>15
<FILENAME>cgnx-20191231_pre.xml
<DESCRIPTION>XBRL TAXONOMY EXTENSION PRESENTATION LINKBASE DOCUMENT
<TEXT>
<XBRL>
<?xml version="1.0" encoding="US-ASCII"?>
<!--XBRL Document Created with Wdesk from Workiva-->
<!-- -->
<link:linkbase xsi:schemaLocation="http://www.xbrl.org/2003/linkbase http://www.xbrl.org/2003/xbrl-linkbase-2003-12-31.xsd" 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">
  <link:roleRef roleURI="http://cognex.com/role/AccruedExpenses" xlink:href="cgnx-20191231.xsd#AccruedExpenses" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/AccruedExpensesChangesInWarrantyObligationsDetail" xlink:href="cgnx-20191231.xsd#AccruedExpensesChangesInWarrantyObligationsDetail" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/AccruedExpensesConstituentsOfAccruedExpensesDetail" xlink:href="cgnx-20191231.xsd#AccruedExpensesConstituentsOfAccruedExpensesDetail" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/AccruedExpensesTables" xlink:href="cgnx-20191231.xsd#AccruedExpensesTables" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/Acquisitions" xlink:href="cgnx-20191231.xsd#Acquisitions" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/AcquisitionsAcquisitionsDetails" xlink:href="cgnx-20191231.xsd#AcquisitionsAcquisitionsDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/AcquisitionsAcquisitionsTables" xlink:href="cgnx-20191231.xsd#AcquisitionsAcquisitionsTables" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/AcquisitionsGviVenturesIncDetails" xlink:href="cgnx-20191231.xsd#AcquisitionsGviVenturesIncDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/AcquisitionsGviVenturesIncPurchasePriceAllocationDetails" xlink:href="cgnx-20191231.xsd#AcquisitionsGviVenturesIncPurchasePriceAllocationDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/AcquisitionsSualabCoLtdNarrativeDetails" xlink:href="cgnx-20191231.xsd#AcquisitionsSualabCoLtdNarrativeDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/AcquisitionsSualabCoLtdPurchasePriceAllocationDetails" xlink:href="cgnx-20191231.xsd#AcquisitionsSualabCoLtdPurchasePriceAllocationDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/AcquisitionsVidiSystemsSADetails" xlink:href="cgnx-20191231.xsd#AcquisitionsVidiSystemsSADetails" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/AcquisitionsVidiSystemsSAPurchasePriceAllocationDetails" xlink:href="cgnx-20191231.xsd#AcquisitionsVidiSystemsSAPurchasePriceAllocationDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/CashCashEquivalentsAndInvestments" xlink:href="cgnx-20191231.xsd#CashCashEquivalentsAndInvestments" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/CashCashEquivalentsAndInvestmentsAdditionalInformationDetail" xlink:href="cgnx-20191231.xsd#CashCashEquivalentsAndInvestmentsAdditionalInformationDetail" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/CashCashEquivalentsAndInvestmentsAmortizedCostToFairValueDetail" xlink:href="cgnx-20191231.xsd#CashCashEquivalentsAndInvestmentsAmortizedCostToFairValueDetail" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/CashCashEquivalentsAndInvestmentsComponentsOfCashCashEquivalentsAndInvestmentsDetail" xlink:href="cgnx-20191231.xsd#CashCashEquivalentsAndInvestmentsComponentsOfCashCashEquivalentsAndInvestmentsDetail" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/CashCashEquivalentsAndInvestmentsEffectiveMaturityDatesOfAvailableForSaleInvestmentsDetail" xlink:href="cgnx-20191231.xsd#CashCashEquivalentsAndInvestmentsEffectiveMaturityDatesOfAvailableForSaleInvestmentsDetail" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/CashCashEquivalentsAndInvestmentsGrossUnrealizedLossesAndFairValueForAvailableForSaleInvestmentsDetail" xlink:href="cgnx-20191231.xsd#CashCashEquivalentsAndInvestmentsGrossUnrealizedLossesAndFairValueForAvailableForSaleInvestmentsDetail" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/CashCashEquivalentsAndInvestmentsTables" xlink:href="cgnx-20191231.xsd#CashCashEquivalentsAndInvestmentsTables" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/CommitmentsAndContingencies" xlink:href="cgnx-20191231.xsd#CommitmentsAndContingencies" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/CommitmentsAndContingenciesAdditionalInformationDetail" xlink:href="cgnx-20191231.xsd#CommitmentsAndContingenciesAdditionalInformationDetail" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/ConsolidatedBalanceSheets" xlink:href="cgnx-20191231.xsd#ConsolidatedBalanceSheets" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/ConsolidatedBalanceSheetsParenthetical" xlink:href="cgnx-20191231.xsd#ConsolidatedBalanceSheetsParenthetical" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/ConsolidatedStatementsOfCashFlows" xlink:href="cgnx-20191231.xsd#ConsolidatedStatementsOfCashFlows" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/ConsolidatedStatementsOfComprehensiveIncome" xlink:href="cgnx-20191231.xsd#ConsolidatedStatementsOfComprehensiveIncome" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/ConsolidatedStatementsOfComprehensiveIncomeParenthetical" xlink:href="cgnx-20191231.xsd#ConsolidatedStatementsOfComprehensiveIncomeParenthetical" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/ConsolidatedStatementsOfOperations" xlink:href="cgnx-20191231.xsd#ConsolidatedStatementsOfOperations" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/ConsolidatedStatementsOfOperationsParenthetical" xlink:href="cgnx-20191231.xsd#ConsolidatedStatementsOfOperationsParenthetical" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/ConsolidatedStatementsOfShareholdersEquity" xlink:href="cgnx-20191231.xsd#ConsolidatedStatementsOfShareholdersEquity" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/ConsolidatedStatementsOfShareholdersEquityParenthetical" xlink:href="cgnx-20191231.xsd#ConsolidatedStatementsOfShareholdersEquityParenthetical" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/CoverPage" xlink:href="cgnx-20191231.xsd#CoverPage" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/DerivativeInstruments" xlink:href="cgnx-20191231.xsd#DerivativeInstruments" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/DerivativeInstrumentsAdditionalDetailsDetails" xlink:href="cgnx-20191231.xsd#DerivativeInstrumentsAdditionalDetailsDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/DerivativeInstrumentsAssetsAndLiabilitiesPresentedOnNetBasisDueToRightOfOffsetDetails" xlink:href="cgnx-20191231.xsd#DerivativeInstrumentsAssetsAndLiabilitiesPresentedOnNetBasisDueToRightOfOffsetDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/DerivativeInstrumentsBalanceSheetLocationDetails" xlink:href="cgnx-20191231.xsd#DerivativeInstrumentsBalanceSheetLocationDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/DerivativeInstrumentsChangesInAociDetails" xlink:href="cgnx-20191231.xsd#DerivativeInstrumentsChangesInAociDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/DerivativeInstrumentsGainLossRecognizedInOtherComprehensiveIncomeLossDetails" xlink:href="cgnx-20191231.xsd#DerivativeInstrumentsGainLossRecognizedInOtherComprehensiveIncomeLossDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/DerivativeInstrumentsOutstandingForwardContractsDetails" xlink:href="cgnx-20191231.xsd#DerivativeInstrumentsOutstandingForwardContractsDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/DerivativeInstrumentsTables" xlink:href="cgnx-20191231.xsd#DerivativeInstrumentsTables" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/EmployeeSavingsPlan" xlink:href="cgnx-20191231.xsd#EmployeeSavingsPlan" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/EmployeeSavingsPlanAdditionalInformationDetail" xlink:href="cgnx-20191231.xsd#EmployeeSavingsPlanAdditionalInformationDetail" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/FairValueMeasurements" xlink:href="cgnx-20191231.xsd#FairValueMeasurements" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/FairValueMeasurementsAssetsAndLiabilitiesMeasuredAtFairValueOnRecurringBasisDetail" xlink:href="cgnx-20191231.xsd#FairValueMeasurementsAssetsAndLiabilitiesMeasuredAtFairValueOnRecurringBasisDetail" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/FairValueMeasurementsLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationDetails" xlink:href="cgnx-20191231.xsd#FairValueMeasurementsLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/FairValueMeasurementsTables" xlink:href="cgnx-20191231.xsd#FairValueMeasurementsTables" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/Goodwill" xlink:href="cgnx-20191231.xsd#Goodwill" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/GoodwillChangesInCarryingValueOfGoodwillDetail" xlink:href="cgnx-20191231.xsd#GoodwillChangesInCarryingValueOfGoodwillDetail" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/GoodwillTables" xlink:href="cgnx-20191231.xsd#GoodwillTables" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/IndemnificationProvisions" xlink:href="cgnx-20191231.xsd#IndemnificationProvisions" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/IndemnificationProvisionsNarrativeDetails" xlink:href="cgnx-20191231.xsd#IndemnificationProvisionsNarrativeDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/IntangibleAssets" xlink:href="cgnx-20191231.xsd#IntangibleAssets" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/IntangibleAssetsAmortizedIntangibleAssetsDetail" xlink:href="cgnx-20191231.xsd#IntangibleAssetsAmortizedIntangibleAssetsDetail" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/IntangibleAssetsEstimatedAmortizationExpenseSucceedingFiscalYearsDetail" xlink:href="cgnx-20191231.xsd#IntangibleAssetsEstimatedAmortizationExpenseSucceedingFiscalYearsDetail" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/IntangibleAssetsTables" xlink:href="cgnx-20191231.xsd#IntangibleAssetsTables" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/Inventories" xlink:href="cgnx-20191231.xsd#Inventories" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/InventoriesInventoriesDetail" xlink:href="cgnx-20191231.xsd#InventoriesInventoriesDetail" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/InventoriesTables" xlink:href="cgnx-20191231.xsd#InventoriesTables" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/LeasesDetails" xlink:href="cgnx-20191231.xsd#LeasesDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/LeasesLeases" xlink:href="cgnx-20191231.xsd#LeasesLeases" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/LeasesScheduleOfPaymentsDetails" xlink:href="cgnx-20191231.xsd#LeasesScheduleOfPaymentsDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/LeasesScheduleOfRentalReceiptsDetails" xlink:href="cgnx-20191231.xsd#LeasesScheduleOfRentalReceiptsDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/LeasesTables" xlink:href="cgnx-20191231.xsd#LeasesTables" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/NewPronouncements" xlink:href="cgnx-20191231.xsd#NewPronouncements" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/NewPronouncementsDetails" xlink:href="cgnx-20191231.xsd#NewPronouncementsDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/PropertyPlantAndEquipment" xlink:href="cgnx-20191231.xsd#PropertyPlantAndEquipment" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/PropertyPlantAndEquipmentAdditionalInformationDetails" xlink:href="cgnx-20191231.xsd#PropertyPlantAndEquipmentAdditionalInformationDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/PropertyPlantAndEquipmentPropertyPlantAndEquipmentDetail" xlink:href="cgnx-20191231.xsd#PropertyPlantAndEquipmentPropertyPlantAndEquipmentDetail" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/PropertyPlantAndEquipmentTables" xlink:href="cgnx-20191231.xsd#PropertyPlantAndEquipmentTables" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/RevenueRecognition" xlink:href="cgnx-20191231.xsd#RevenueRecognition" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/RevenueRecognitionBalanceSheetImpactDetails" xlink:href="cgnx-20191231.xsd#RevenueRecognitionBalanceSheetImpactDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/RevenueRecognitionDeferredRevenueAndCustomerDepositsRollforwardDetails" xlink:href="cgnx-20191231.xsd#RevenueRecognitionDeferredRevenueAndCustomerDepositsRollforwardDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/RevenueRecognitionDisaggregationByGeographyAndTypeDetails" xlink:href="cgnx-20191231.xsd#RevenueRecognitionDisaggregationByGeographyAndTypeDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/RevenueRecognitionNarrativesDetails" xlink:href="cgnx-20191231.xsd#RevenueRecognitionNarrativesDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/RevenueRecognitionStatementOfOperationsImpactDetails" xlink:href="cgnx-20191231.xsd#RevenueRecognitionStatementOfOperationsImpactDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/RevenueRecognitionTables" xlink:href="cgnx-20191231.xsd#RevenueRecognitionTables" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/ScheduleIiValuationAndQualifyingAccounts" xlink:href="cgnx-20191231.xsd#ScheduleIiValuationAndQualifyingAccounts" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/ScheduleIiValuationAndQualifyingAccountsDetail" xlink:href="cgnx-20191231.xsd#ScheduleIiValuationAndQualifyingAccountsDetail" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/SegmentAndGeographicInformation" xlink:href="cgnx-20191231.xsd#SegmentAndGeographicInformation" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/SegmentAndGeographicInformationAdditionalInformationDetail" xlink:href="cgnx-20191231.xsd#SegmentAndGeographicInformationAdditionalInformationDetail" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/SegmentAndGeographicInformationScheduleOfRevenueFromExternalCustomersAndLongLivedAssetsByGeographicalAreasDetail" xlink:href="cgnx-20191231.xsd#SegmentAndGeographicInformationScheduleOfRevenueFromExternalCustomersAndLongLivedAssetsByGeographicalAreasDetail" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/SegmentAndGeographicInformationTables" xlink:href="cgnx-20191231.xsd#SegmentAndGeographicInformationTables" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/SelectedQuarterlyFinancialDataUnaudited" xlink:href="cgnx-20191231.xsd#SelectedQuarterlyFinancialDataUnaudited" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/SelectedQuarterlyFinancialDataUnauditedDetails" xlink:href="cgnx-20191231.xsd#SelectedQuarterlyFinancialDataUnauditedDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/SelectedQuarterlyFinancialDataUnauditedTables" xlink:href="cgnx-20191231.xsd#SelectedQuarterlyFinancialDataUnauditedTables" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/ShareholdersEquity" xlink:href="cgnx-20191231.xsd#ShareholdersEquity" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/ShareholdersEquityAdditionalInformationDetail" xlink:href="cgnx-20191231.xsd#ShareholdersEquityAdditionalInformationDetail" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/StockBasedCompensation" xlink:href="cgnx-20191231.xsd#StockBasedCompensation" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/StockBasedCompensationExpenseAdditionalInformationDetail" xlink:href="cgnx-20191231.xsd#StockBasedCompensationExpenseAdditionalInformationDetail" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/StockBasedCompensationExpenseStockBasedCompensationExpenseDetail" xlink:href="cgnx-20191231.xsd#StockBasedCompensationExpenseStockBasedCompensationExpenseDetail" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/StockBasedCompensationExpenseSummaryOfRestrictedStockOptionActivityDetail" xlink:href="cgnx-20191231.xsd#StockBasedCompensationExpenseSummaryOfRestrictedStockOptionActivityDetail" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/StockBasedCompensationExpenseSummaryOfStockOptionActivityDetail" xlink:href="cgnx-20191231.xsd#StockBasedCompensationExpenseSummaryOfStockOptionActivityDetail" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/StockBasedCompensationExpenseWeightedAverageAssumptionsUsedInEstimatingFairValuesOfStockOptionsGrantedDetail" xlink:href="cgnx-20191231.xsd#StockBasedCompensationExpenseWeightedAverageAssumptionsUsedInEstimatingFairValuesOfStockOptionsGrantedDetail" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/StockBasedCompensationTables" xlink:href="cgnx-20191231.xsd#StockBasedCompensationTables" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/SubsequentEvents" xlink:href="cgnx-20191231.xsd#SubsequentEvents" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/SubsequentEventsDetails" xlink:href="cgnx-20191231.xsd#SubsequentEventsDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/SummaryOfSignificantAccountingPolicies" xlink:href="cgnx-20191231.xsd#SummaryOfSignificantAccountingPolicies" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/SummaryOfSignificantAccountingPoliciesAdditionalInformationDetail" xlink:href="cgnx-20191231.xsd#SummaryOfSignificantAccountingPoliciesAdditionalInformationDetail" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/SummaryOfSignificantAccountingPoliciesAdvertisingCostsDetails" xlink:href="cgnx-20191231.xsd#SummaryOfSignificantAccountingPoliciesAdvertisingCostsDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/SummaryOfSignificantAccountingPoliciesComprehensiveIncomeLossDetails" xlink:href="cgnx-20191231.xsd#SummaryOfSignificantAccountingPoliciesComprehensiveIncomeLossDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/SummaryOfSignificantAccountingPoliciesIntangibleAssetsDetails" xlink:href="cgnx-20191231.xsd#SummaryOfSignificantAccountingPoliciesIntangibleAssetsDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/SummaryOfSignificantAccountingPoliciesPolicies" xlink:href="cgnx-20191231.xsd#SummaryOfSignificantAccountingPoliciesPolicies" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/SummaryOfSignificantAccountingPoliciesSummaryOfSignificantAccountingPoliciesRevenueRecognitionDetails" xlink:href="cgnx-20191231.xsd#SummaryOfSignificantAccountingPoliciesSummaryOfSignificantAccountingPoliciesRevenueRecognitionDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/SummaryOfSignificantAccountingPoliciesWarrantyDetails" xlink:href="cgnx-20191231.xsd#SummaryOfSignificantAccountingPoliciesWarrantyDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/Taxes" xlink:href="cgnx-20191231.xsd#Taxes" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/TaxesAdditionalInformationDetails" xlink:href="cgnx-20191231.xsd#TaxesAdditionalInformationDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/TaxesChangesInReserveForIncomeTaxesExcludingInterestAndPenaltiesDetails" xlink:href="cgnx-20191231.xsd#TaxesChangesInReserveForIncomeTaxesExcludingInterestAndPenaltiesDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/TaxesConstituentsOfDeferredTaxAssetsDetails" xlink:href="cgnx-20191231.xsd#TaxesConstituentsOfDeferredTaxAssetsDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/TaxesConstituentsOfProvisionForIncomeTaxesDetails" xlink:href="cgnx-20191231.xsd#TaxesConstituentsOfProvisionForIncomeTaxesDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/TaxesReconciliationOfUnitedStatesFederalStatutoryCorporateTaxRateToCompanysEffectiveTaxRateOrIncomeTaxProvisionDetails" xlink:href="cgnx-20191231.xsd#TaxesReconciliationOfUnitedStatesFederalStatutoryCorporateTaxRateToCompanysEffectiveTaxRateOrIncomeTaxProvisionDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/TaxesScheduleOfChangeInAccountingPolicyDetails" xlink:href="cgnx-20191231.xsd#TaxesScheduleOfChangeInAccountingPolicyDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/TaxesTables" xlink:href="cgnx-20191231.xsd#TaxesTables" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/WeightedAverageShares" xlink:href="cgnx-20191231.xsd#WeightedAverageShares" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/WeightedAverageSharesAdditionalInformationDetail" xlink:href="cgnx-20191231.xsd#WeightedAverageSharesAdditionalInformationDetail" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/WeightedAverageSharesCalculationOfWeightedAverageSharesDetail" xlink:href="cgnx-20191231.xsd#WeightedAverageSharesCalculationOfWeightedAverageSharesDetail" xlink:type="simple" />
  <link:roleRef roleURI="http://cognex.com/role/WeightedAverageSharesTables" xlink:href="cgnx-20191231.xsd#WeightedAverageSharesTables" xlink:type="simple" />
  <link:roleRef roleURI="http://www.xbrl.org/2009/role/negatedLabel" xlink:href="http://www.xbrl.org/lrr/role/negated-2009-12-16.xsd#negatedLabel" xlink:type="simple" />
  <link:roleRef roleURI="http://www.xbrl.org/2009/role/negatedNetLabel" xlink:href="http://www.xbrl.org/lrr/role/negated-2009-12-16.xsd#negatedNetLabel" xlink:type="simple" />
  <link:roleRef roleURI="http://www.xbrl.org/2009/role/negatedPeriodEndLabel" xlink:href="http://www.xbrl.org/lrr/role/negated-2009-12-16.xsd#negatedPeriodEndLabel" xlink:type="simple" />
  <link:roleRef roleURI="http://www.xbrl.org/2009/role/negatedPeriodStartLabel" xlink:href="http://www.xbrl.org/lrr/role/negated-2009-12-16.xsd#negatedPeriodStartLabel" xlink:type="simple" />
  <link:roleRef roleURI="http://www.xbrl.org/2009/role/negatedTerseLabel" xlink:href="http://www.xbrl.org/lrr/role/negated-2009-12-16.xsd#negatedTerseLabel" xlink:type="simple" />
  <link:roleRef roleURI="http://www.xbrl.org/2009/role/negatedTotalLabel" xlink:href="http://www.xbrl.org/lrr/role/negated-2009-12-16.xsd#negatedTotalLabel" xlink:type="simple" />
  <link:roleRef roleURI="http://www.xbrl.org/2009/role/netLabel" xlink:href="http://www.xbrl.org/lrr/role/net-2009-12-16.xsd#netLabel" xlink:type="simple" />
  <link:presentationLink xlink:role="http://cognex.com/role/AccruedExpenses" xlink:type="extended">
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_PayablesAndAccrualsAbstract" xlink:label="loc_us-gaap_PayablesAndAccrualsAbstract_7DA1419265851F696BF38095E5FB112A" xlink:type="locator" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_AccountsPayableAndAccruedLiabilitiesDisclosureTextBlock" xlink:label="loc_us-gaap_AccountsPayableAndAccruedLiabilitiesDisclosureTextBlock_0A9DCB00D4B4C2B4936A8095E5FBA8BF" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_PayablesAndAccrualsAbstract_7DA1419265851F696BF38095E5FB112A" xlink:to="loc_us-gaap_AccountsPayableAndAccruedLiabilitiesDisclosureTextBlock_0A9DCB00D4B4C2B4936A8095E5FBA8BF" xlink:type="arc" />
  </link:presentationLink>
  <link:presentationLink xlink:role="http://cognex.com/role/AccruedExpensesChangesInWarrantyObligationsDetail" xlink:type="extended">
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_PayablesAndAccrualsAbstract" xlink:label="loc_us-gaap_PayablesAndAccrualsAbstract_AB19237BAC1175055FC18095E731593C" xlink:type="locator" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_MovementInStandardProductWarrantyAccrualRollForward" xlink:label="loc_us-gaap_MovementInStandardProductWarrantyAccrualRollForward_88A6C962E233D33BE04F8095E732366B" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_PayablesAndAccrualsAbstract_AB19237BAC1175055FC18095E731593C" xlink:to="loc_us-gaap_MovementInStandardProductWarrantyAccrualRollForward_88A6C962E233D33BE04F8095E732366B" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ProductWarrantyAccrual" xlink:label="loc_us-gaap_ProductWarrantyAccrual_42950AD70BB4CEC42AEA8095E7320DC6" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/periodStartLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_MovementInStandardProductWarrantyAccrualRollForward_88A6C962E233D33BE04F8095E732366B" xlink:to="loc_us-gaap_ProductWarrantyAccrual_42950AD70BB4CEC42AEA8095E7320DC6" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ProductWarrantyAccrualWarrantiesIssued" xlink:label="loc_us-gaap_ProductWarrantyAccrualWarrantiesIssued_46D8F017413B58EC36448095E73258AF" xlink:type="locator" />
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_MovementInStandardProductWarrantyAccrualRollForward_88A6C962E233D33BE04F8095E732366B" xlink:to="loc_us-gaap_ProductWarrantyAccrualWarrantiesIssued_46D8F017413B58EC36448095E73258AF" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ProductWarrantyAccrualPayments" xlink:label="loc_us-gaap_ProductWarrantyAccrualPayments_3BA89CAD848E7FB43D758095E7320D1D" xlink:type="locator" />
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_MovementInStandardProductWarrantyAccrualRollForward_88A6C962E233D33BE04F8095E732366B" xlink:to="loc_us-gaap_ProductWarrantyAccrualPayments_3BA89CAD848E7FB43D758095E7320D1D" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_StandardAndExtendedProductWarrantyAccrualForeignCurrencyTranslationGainLoss" xlink:label="loc_us-gaap_StandardAndExtendedProductWarrantyAccrualForeignCurrencyTranslationGainLoss_7C7B8425D313415F093D8095E73243E5" xlink:type="locator" />
    <link:presentationArc order="4" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_MovementInStandardProductWarrantyAccrualRollForward_88A6C962E233D33BE04F8095E732366B" xlink:to="loc_us-gaap_StandardAndExtendedProductWarrantyAccrualForeignCurrencyTranslationGainLoss_7C7B8425D313415F093D8095E73243E5" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ProductWarrantyAccrual" xlink:label="loc_us-gaap_ProductWarrantyAccrual_1684CE63BE5689978E338095E732DF17" xlink:type="locator" />
    <link:presentationArc order="5" preferredLabel="http://www.xbrl.org/2003/role/periodEndLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_MovementInStandardProductWarrantyAccrualRollForward_88A6C962E233D33BE04F8095E732366B" xlink:to="loc_us-gaap_ProductWarrantyAccrual_1684CE63BE5689978E338095E732DF17" xlink:type="arc" />
  </link:presentationLink>
  <link:presentationLink xlink:role="http://cognex.com/role/AccruedExpensesConstituentsOfAccruedExpensesDetail" xlink:type="extended">
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_PayablesAndAccrualsAbstract" xlink:label="loc_us-gaap_PayablesAndAccrualsAbstract_7A27F0BD395D6D6A771CAB969FEEE41E" xlink:type="locator" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_AccruedLiabilitiesCurrentAbstract" xlink:label="loc_us-gaap_AccruedLiabilitiesCurrentAbstract_AD65C521129A0FF27046AB969FF7619A" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_PayablesAndAccrualsAbstract_7A27F0BD395D6D6A771CAB969FEEE41E" xlink:to="loc_us-gaap_AccruedLiabilitiesCurrentAbstract_AD65C521129A0FF27046AB969FF7619A" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_AccruedSalariesCurrent" xlink:label="loc_us-gaap_AccruedSalariesCurrent_3BBECD4A7DFA7BEA5BEFAB969FFBD91F" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AccruedLiabilitiesCurrentAbstract_AD65C521129A0FF27046AB969FF7619A" xlink:to="loc_us-gaap_AccruedSalariesCurrent_3BBECD4A7DFA7BEA5BEFAB969FFBD91F" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_AccruedBonusesCurrent" xlink:label="loc_us-gaap_AccruedBonusesCurrent_1860A18A49581A1B4A40AB96A0060C33" xlink:type="locator" />
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AccruedLiabilitiesCurrentAbstract_AD65C521129A0FF27046AB969FF7619A" xlink:to="loc_us-gaap_AccruedBonusesCurrent_1860A18A49581A1B4A40AB96A0060C33" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_AccruedVacationCurrent" xlink:label="loc_us-gaap_AccruedVacationCurrent_CA3EE0C9DF533684E216AB96A0063ECB" xlink:type="locator" />
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AccruedLiabilitiesCurrentAbstract_AD65C521129A0FF27046AB969FF7619A" xlink:to="loc_us-gaap_AccruedVacationCurrent_CA3EE0C9DF533684E216AB96A0063ECB" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_RetirementAllowance" xlink:label="loc_cgnx_RetirementAllowance_C0BA574861FEB63FE4B1AB96A0064FBC" xlink:type="locator" />
    <link:presentationArc order="4" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AccruedLiabilitiesCurrentAbstract_AD65C521129A0FF27046AB969FF7619A" xlink:to="loc_cgnx_RetirementAllowance_C0BA574861FEB63FE4B1AB96A0064FBC" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ProductWarrantyAccrualClassifiedCurrent" xlink:label="loc_us-gaap_ProductWarrantyAccrualClassifiedCurrent_5F563FE544060295A55BAB96A0068923" xlink:type="locator" />
    <link:presentationArc order="5" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AccruedLiabilitiesCurrentAbstract_AD65C521129A0FF27046AB969FF7619A" xlink:to="loc_us-gaap_ProductWarrantyAccrualClassifiedCurrent_5F563FE544060295A55BAB96A0068923" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_BusinessCombinationSeparatelyRecognizedTransactionsLiabilitiesRecognized" xlink:label="loc_us-gaap_BusinessCombinationSeparatelyRecognizedTransactionsLiabilitiesRecognized_09CD907443E14CD54E1CAB96A006CFCA" xlink:type="locator" />
    <link:presentationArc order="6" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AccruedLiabilitiesCurrentAbstract_AD65C521129A0FF27046AB969FF7619A" xlink:to="loc_us-gaap_BusinessCombinationSeparatelyRecognizedTransactionsLiabilitiesRecognized_09CD907443E14CD54E1CAB96A006CFCA" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_OtherAccruedLiabilitiesCurrent" xlink:label="loc_us-gaap_OtherAccruedLiabilitiesCurrent_FDA92FAC93EFC15D23E6AB96A006704C" xlink:type="locator" />
    <link:presentationArc order="7" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AccruedLiabilitiesCurrentAbstract_AD65C521129A0FF27046AB969FF7619A" xlink:to="loc_us-gaap_OtherAccruedLiabilitiesCurrent_FDA92FAC93EFC15D23E6AB96A006704C" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_AccruedLiabilitiesCurrent" xlink:label="loc_us-gaap_AccruedLiabilitiesCurrent_35E06754D3F9919463E5AB96A0070A6D" xlink:type="locator" />
    <link:presentationArc order="8" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AccruedLiabilitiesCurrentAbstract_AD65C521129A0FF27046AB969FF7619A" xlink:to="loc_us-gaap_AccruedLiabilitiesCurrent_35E06754D3F9919463E5AB96A0070A6D" xlink:type="arc" />
  </link:presentationLink>
  <link:presentationLink xlink:role="http://cognex.com/role/AccruedExpensesTables" xlink:type="extended">
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_PayablesAndAccrualsAbstract" xlink:label="loc_us-gaap_PayablesAndAccrualsAbstract_C478879BB59614C3F0BE8095E592930D" xlink:type="locator" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ScheduleOfAccruedLiabilitiesTableTextBlock" xlink:label="loc_us-gaap_ScheduleOfAccruedLiabilitiesTableTextBlock_09C374DDCA8F9C366E808095E5921674" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_PayablesAndAccrualsAbstract_C478879BB59614C3F0BE8095E592930D" xlink:to="loc_us-gaap_ScheduleOfAccruedLiabilitiesTableTextBlock_09C374DDCA8F9C366E808095E5921674" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ScheduleOfProductWarrantyLiabilityTableTextBlock" xlink:label="loc_us-gaap_ScheduleOfProductWarrantyLiabilityTableTextBlock_9F01C1D7E733BE3D76F28095E5925966" xlink:type="locator" />
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_PayablesAndAccrualsAbstract_C478879BB59614C3F0BE8095E592930D" xlink:to="loc_us-gaap_ScheduleOfProductWarrantyLiabilityTableTextBlock_9F01C1D7E733BE3D76F28095E5925966" xlink:type="arc" />
  </link:presentationLink>
  <link:presentationLink xlink:role="http://cognex.com/role/Acquisitions" xlink:type="extended">
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_BusinessCombinationsAbstract" xlink:label="loc_us-gaap_BusinessCombinationsAbstract_B7C3E357EDCB0ECD9ECE8095E5A3BD21" xlink:type="locator" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_BusinessCombinationDisclosureTextBlock" xlink:label="loc_us-gaap_BusinessCombinationDisclosureTextBlock_3BF47BB04E20B022529D8095E5A39975" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_BusinessCombinationsAbstract_B7C3E357EDCB0ECD9ECE8095E5A3BD21" xlink:to="loc_us-gaap_BusinessCombinationDisclosureTextBlock_3BF47BB04E20B022529D8095E5A39975" xlink:type="arc" />
  </link:presentationLink>
  <link:presentationLink xlink:role="http://cognex.com/role/AcquisitionsAcquisitionsDetails" xlink:type="extended">
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_BusinessCombinationsAbstract" xlink:label="loc_us-gaap_BusinessCombinationsAbstract_74CBCF7B4FBCE10ED26016BD433D59B3" xlink:type="locator" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_NumberOfBusinessesAcquired" xlink:label="loc_us-gaap_NumberOfBusinessesAcquired_4C25AD61941712BDE7A616BD433D5881" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_BusinessCombinationsAbstract_74CBCF7B4FBCE10ED26016BD433D59B3" xlink:to="loc_us-gaap_NumberOfBusinessesAcquired_4C25AD61941712BDE7A616BD433D5881" xlink:type="arc" />
  </link:presentationLink>
  <link:presentationLink xlink:role="http://cognex.com/role/AcquisitionsAcquisitionsTables" xlink:type="extended">
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_BusinessCombinationsAbstract" xlink:label="loc_us-gaap_BusinessCombinationsAbstract_4E1057FB1C804EFDDB34FD4E01422686" xlink:type="locator" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ScheduleOfIndefiniteLivedIntangibleAssetsAcquiredAsPartOfBusinessCombinationTextBlock" xlink:label="loc_us-gaap_ScheduleOfIndefiniteLivedIntangibleAssetsAcquiredAsPartOfBusinessCombinationTextBlock_9E3396374D502DDF4ACDFD4E0142843F" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_BusinessCombinationsAbstract_4E1057FB1C804EFDDB34FD4E01422686" xlink:to="loc_us-gaap_ScheduleOfIndefiniteLivedIntangibleAssetsAcquiredAsPartOfBusinessCombinationTextBlock_9E3396374D502DDF4ACDFD4E0142843F" xlink:type="arc" />
  </link:presentationLink>
  <link:presentationLink xlink:role="http://cognex.com/role/AcquisitionsGviVenturesIncDetails" xlink:type="extended">
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_BusinessCombinationsAbstract" xlink:label="loc_us-gaap_BusinessCombinationsAbstract_A0D94BA45ADCA2B1B9C335BC8D90BDA5" xlink:type="locator" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable" xlink:label="loc_us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable_986F6FF4A58FDDE8403B35BC8D904293" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_BusinessCombinationsAbstract_A0D94BA45ADCA2B1B9C335BC8D90BDA5" xlink:to="loc_us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable_986F6FF4A58FDDE8403B35BC8D904293" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_8301262ABBC1F3E0019B35BC8D91F6C2" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable_986F6FF4A58FDDE8403B35BC8D904293" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_8301262ABBC1F3E0019B35BC8D91F6C2" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_1A7DE1F8F4D10ACA59BC35BC8D91A0FF" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_8301262ABBC1F3E0019B35BC8D91F6C2" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_1A7DE1F8F4D10ACA59BC35BC8D91A0FF" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_TechnologyBasedIntangibleAssetsMember" xlink:label="loc_us-gaap_TechnologyBasedIntangibleAssetsMember_33A360E3BA59F538B2A235BC8D916BB1" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_1A7DE1F8F4D10ACA59BC35BC8D91A0FF" xlink:to="loc_us-gaap_TechnologyBasedIntangibleAssetsMember_33A360E3BA59F538B2A235BC8D916BB1" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_CustomerRelationshipsMember" xlink:label="loc_us-gaap_CustomerRelationshipsMember_BE431EB1FCBB4C413AC635BC8D923909" xlink:type="locator" />
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_1A7DE1F8F4D10ACA59BC35BC8D91A0FF" xlink:to="loc_us-gaap_CustomerRelationshipsMember_BE431EB1FCBB4C413AC635BC8D923909" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_BusinessAcquisitionAxis" xlink:label="loc_us-gaap_BusinessAcquisitionAxis_735D92980DF11613C0CB35BC8D92D9C7" xlink:type="locator" />
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable_986F6FF4A58FDDE8403B35BC8D904293" xlink:to="loc_us-gaap_BusinessAcquisitionAxis_735D92980DF11613C0CB35BC8D92D9C7" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_BusinessAcquisitionAcquireeDomain" xlink:label="loc_us-gaap_BusinessAcquisitionAcquireeDomain_1E02A12F0FB7955E03F335BC8D921D47" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_BusinessAcquisitionAxis_735D92980DF11613C0CB35BC8D92D9C7" xlink:to="loc_us-gaap_BusinessAcquisitionAcquireeDomain_1E02A12F0FB7955E03F335BC8D921D47" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_GViVenturesInc.Member" xlink:label="loc_cgnx_GViVenturesInc.Member_F86DEA352BC88017254435BC8D926A5B" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_BusinessAcquisitionAcquireeDomain_1E02A12F0FB7955E03F335BC8D921D47" xlink:to="loc_cgnx_GViVenturesInc.Member_F86DEA352BC88017254435BC8D926A5B" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_BusinessAcquisitionLineItems" xlink:label="loc_us-gaap_BusinessAcquisitionLineItems_FD0E4AFC43C08B2C4D9135BC8D937CEF" xlink:type="locator" />
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable_986F6FF4A58FDDE8403B35BC8D904293" xlink:to="loc_us-gaap_BusinessAcquisitionLineItems_FD0E4AFC43C08B2C4D9135BC8D937CEF" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_BusinessCombinationContingentConsiderationArrangementsChangeInTheRangeOfOutcomesContingentConsiderationLiabilityValueLow" xlink:label="loc_us-gaap_BusinessCombinationContingentConsiderationArrangementsChangeInTheRangeOfOutcomesContingentConsiderationLiabilityValueLow_31540A628AF92C7C810935BC8D93FA60" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_FD0E4AFC43C08B2C4D9135BC8D937CEF" xlink:to="loc_us-gaap_BusinessCombinationContingentConsiderationArrangementsChangeInTheRangeOfOutcomesContingentConsiderationLiabilityValueLow_31540A628AF92C7C810935BC8D93FA60" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_BusinessCombinationContingentConsiderationArrangementsChangeInTheRangeOfOutcomesContingentConsiderationLiabilityValueHigh" xlink:label="loc_us-gaap_BusinessCombinationContingentConsiderationArrangementsChangeInTheRangeOfOutcomesContingentConsiderationLiabilityValueHigh_0D815786ED3ED6AE342935BC8D93E2C8" xlink:type="locator" />
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_FD0E4AFC43C08B2C4D9135BC8D937CEF" xlink:to="loc_us-gaap_BusinessCombinationContingentConsiderationArrangementsChangeInTheRangeOfOutcomesContingentConsiderationLiabilityValueHigh_0D815786ED3ED6AE342935BC8D93E2C8" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_BusinessCombinationConsiderationTransferred1" xlink:label="loc_us-gaap_BusinessCombinationConsiderationTransferred1_E6F8E9A6118E5266AC2F35BC8D933204" xlink:type="locator" />
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_FD0E4AFC43C08B2C4D9135BC8D937CEF" xlink:to="loc_us-gaap_BusinessCombinationConsiderationTransferred1_E6F8E9A6118E5266AC2F35BC8D933204" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_PaymentsToAcquireBusinessesGross" xlink:label="loc_us-gaap_PaymentsToAcquireBusinessesGross_3966A31FDC446C1F1C6935BC8D9460AC" xlink:type="locator" />
    <link:presentationArc order="4" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_FD0E4AFC43C08B2C4D9135BC8D937CEF" xlink:to="loc_us-gaap_PaymentsToAcquireBusinessesGross_3966A31FDC446C1F1C6935BC8D9460AC" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_BusinessCombinationContingentConsiderationLiability" xlink:label="loc_us-gaap_BusinessCombinationContingentConsiderationLiability_5313C83A9CD02E68DDF435BC8D949A0A" xlink:type="locator" />
    <link:presentationArc order="5" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_FD0E4AFC43C08B2C4D9135BC8D937CEF" xlink:to="loc_us-gaap_BusinessCombinationContingentConsiderationLiability_5313C83A9CD02E68DDF435BC8D949A0A" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueLow" xlink:label="loc_us-gaap_BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueLow_B0037A2FF888396C0FE835BC8D9457FE" xlink:type="locator" />
    <link:presentationArc order="6" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_FD0E4AFC43C08B2C4D9135BC8D937CEF" xlink:to="loc_us-gaap_BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueLow_B0037A2FF888396C0FE835BC8D9457FE" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueHigh" xlink:label="loc_us-gaap_BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueHigh_BEF94DBA79763E56940635BC8D94F698" xlink:type="locator" />
    <link:presentationArc order="7" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_FD0E4AFC43C08B2C4D9135BC8D937CEF" xlink:to="loc_us-gaap_BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueHigh_BEF94DBA79763E56940635BC8D94F698" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1" xlink:label="loc_us-gaap_BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1_61A28FA16D79531D01D035BC8D943701" xlink:type="locator" />
    <link:presentationArc order="8" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_FD0E4AFC43C08B2C4D9135BC8D937CEF" xlink:to="loc_us-gaap_BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1_61A28FA16D79531D01D035BC8D943701" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_PaymentsForPreviousAcquisition" xlink:label="loc_us-gaap_PaymentsForPreviousAcquisition_95D2AEA5918A7D00E78935BC8D95C7A0" xlink:type="locator" />
    <link:presentationArc order="9" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_FD0E4AFC43C08B2C4D9135BC8D937CEF" xlink:to="loc_us-gaap_PaymentsForPreviousAcquisition_95D2AEA5918A7D00E78935BC8D95C7A0" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife" xlink:label="loc_us-gaap_AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife_167E44A37A2FA2126CEB35BC8D9533FF" xlink:type="locator" />
    <link:presentationArc order="10" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_FD0E4AFC43C08B2C4D9135BC8D937CEF" xlink:to="loc_us-gaap_AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife_167E44A37A2FA2126CEB35BC8D9533FF" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_BusinessAcquisitionPurchasePriceAllocationGoodwillExpectedTaxDeductibleAmount" xlink:label="loc_us-gaap_BusinessAcquisitionPurchasePriceAllocationGoodwillExpectedTaxDeductibleAmount_276ECD7DDABF54C3E67135BC8D951179" xlink:type="locator" />
    <link:presentationArc order="11" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_FD0E4AFC43C08B2C4D9135BC8D937CEF" xlink:to="loc_us-gaap_BusinessAcquisitionPurchasePriceAllocationGoodwillExpectedTaxDeductibleAmount_276ECD7DDABF54C3E67135BC8D951179" xlink:type="arc" />
  </link:presentationLink>
  <link:presentationLink xlink:role="http://cognex.com/role/AcquisitionsGviVenturesIncPurchasePriceAllocationDetails" xlink:type="extended">
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_BusinessCombinationsAbstract" xlink:label="loc_us-gaap_BusinessCombinationsAbstract_DA0F588DD729DEE2A869F3C8FDC51285" xlink:type="locator" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable" xlink:label="loc_us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable_F04CD89AB9B85DF1E10BF3C8FDC58941" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_BusinessCombinationsAbstract_DA0F588DD729DEE2A869F3C8FDC51285" xlink:to="loc_us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable_F04CD89AB9B85DF1E10BF3C8FDC58941" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_90F9657AEAB94373562CF3C8FDC6A226" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable_F04CD89AB9B85DF1E10BF3C8FDC58941" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_90F9657AEAB94373562CF3C8FDC6A226" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_E1B25A28326B069EA439F3C8FDC60D24" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_90F9657AEAB94373562CF3C8FDC6A226" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_E1B25A28326B069EA439F3C8FDC60D24" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_TechnologyBasedIntangibleAssetsMember" xlink:label="loc_us-gaap_TechnologyBasedIntangibleAssetsMember_4F18DF14785DEC9EEBE3F3C8FDC6B918" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_E1B25A28326B069EA439F3C8FDC60D24" xlink:to="loc_us-gaap_TechnologyBasedIntangibleAssetsMember_4F18DF14785DEC9EEBE3F3C8FDC6B918" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_CustomerRelationshipsMember" xlink:label="loc_us-gaap_CustomerRelationshipsMember_D9AEE6D7693E17DAE8AAF3C8FDC6E333" xlink:type="locator" />
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_E1B25A28326B069EA439F3C8FDC60D24" xlink:to="loc_us-gaap_CustomerRelationshipsMember_D9AEE6D7693E17DAE8AAF3C8FDC6E333" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_BusinessAcquisitionAxis" xlink:label="loc_us-gaap_BusinessAcquisitionAxis_E5BDE1420C011399F979F3C8FDC72D4A" xlink:type="locator" />
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable_F04CD89AB9B85DF1E10BF3C8FDC58941" xlink:to="loc_us-gaap_BusinessAcquisitionAxis_E5BDE1420C011399F979F3C8FDC72D4A" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_BusinessAcquisitionAcquireeDomain" xlink:label="loc_us-gaap_BusinessAcquisitionAcquireeDomain_6659BF5C3D058403B3EBF3C8FDC76FD3" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_BusinessAcquisitionAxis_E5BDE1420C011399F979F3C8FDC72D4A" xlink:to="loc_us-gaap_BusinessAcquisitionAcquireeDomain_6659BF5C3D058403B3EBF3C8FDC76FD3" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_GViVenturesInc.Member" xlink:label="loc_cgnx_GViVenturesInc.Member_96553392107013F16660F3C8FDC758C3" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_BusinessAcquisitionAcquireeDomain_6659BF5C3D058403B3EBF3C8FDC76FD3" xlink:to="loc_cgnx_GViVenturesInc.Member_96553392107013F16660F3C8FDC758C3" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_BusinessAcquisitionLineItems" xlink:label="loc_us-gaap_BusinessAcquisitionLineItems_E421A0CCCBBB0CED41CDF3C8FDC724CC" xlink:type="locator" />
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable_F04CD89AB9B85DF1E10BF3C8FDC58941" xlink:to="loc_us-gaap_BusinessAcquisitionLineItems_E421A0CCCBBB0CED41CDF3C8FDC724CC" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsReceivables" xlink:label="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsReceivables_DDA3FE3D3276A42F3B83F3C8FDC85187" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_E421A0CCCBBB0CED41CDF3C8FDC724CC" xlink:to="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsReceivables_DDA3FE3D3276A42F3B83F3C8FDC85187" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedInventory" xlink:label="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedInventory_AE2B86A1BEFBD85FD74DF3C8FDC8E031" xlink:type="locator" />
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_E421A0CCCBBB0CED41CDF3C8FDC724CC" xlink:to="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedInventory_AE2B86A1BEFBD85FD74DF3C8FDC8E031" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsPrepaidExpenseAndOtherAssets" xlink:label="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsPrepaidExpenseAndOtherAssets_D1D99365400A5D963E90F3C8FDC89CFA" xlink:type="locator" />
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_E421A0CCCBBB0CED41CDF3C8FDC724CC" xlink:to="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsPrepaidExpenseAndOtherAssets_D1D99365400A5D963E90F3C8FDC89CFA" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccountsPayable" xlink:label="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccountsPayable_E8B7563BF3CE74324B82F3C8FDC8BC02" xlink:type="locator" />
    <link:presentationArc order="4" preferredLabel="http://www.xbrl.org/2009/role/negatedTerseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_E421A0CCCBBB0CED41CDF3C8FDC724CC" xlink:to="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccountsPayable_E8B7563BF3CE74324B82F3C8FDC8BC02" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredandLiabilitiesAssumedCurrentLiabilitiesAccruedExpenses" xlink:label="loc_cgnx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredandLiabilitiesAssumedCurrentLiabilitiesAccruedExpenses_D8A6B683719155508122F3C8FDC87327" xlink:type="locator" />
    <link:presentationArc order="5" preferredLabel="http://www.xbrl.org/2009/role/negatedTerseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_E421A0CCCBBB0CED41CDF3C8FDC724CC" xlink:to="loc_cgnx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredandLiabilitiesAssumedCurrentLiabilitiesAccruedExpenses_D8A6B683719155508122F3C8FDC87327" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles" xlink:label="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles_F15277EA890E3A941B3EF3C8FDC9E12F" xlink:type="locator" />
    <link:presentationArc order="6" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_E421A0CCCBBB0CED41CDF3C8FDC724CC" xlink:to="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles_F15277EA890E3A941B3EF3C8FDC9E12F" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_Goodwill" xlink:label="loc_us-gaap_Goodwill_7F58A89EDC7489F89170F3C8FDC900E6" xlink:type="locator" />
    <link:presentationArc order="7" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_E421A0CCCBBB0CED41CDF3C8FDC724CC" xlink:to="loc_us-gaap_Goodwill_7F58A89EDC7489F89170F3C8FDC900E6" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet" xlink:label="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet_1DA8A2BDDA00A48C84C7F3C8FDC97FE8" xlink:type="locator" />
    <link:presentationArc order="8" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_E421A0CCCBBB0CED41CDF3C8FDC724CC" xlink:to="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet_1DA8A2BDDA00A48C84C7F3C8FDC97FE8" xlink:type="arc" />
  </link:presentationLink>
  <link:presentationLink xlink:role="http://cognex.com/role/AcquisitionsSualabCoLtdNarrativeDetails" xlink:type="extended">
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_BusinessCombinationsAbstract" xlink:label="loc_us-gaap_BusinessCombinationsAbstract_5C4448C141FC1DF4CA0737125B6E3F70" xlink:type="locator" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable" xlink:label="loc_us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable_2ABFF03934135A52572237125B6E52F1" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_BusinessCombinationsAbstract_5C4448C141FC1DF4CA0737125B6E3F70" xlink:to="loc_us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable_2ABFF03934135A52572237125B6E52F1" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_BusinessAcquisitionAxis" xlink:label="loc_us-gaap_BusinessAcquisitionAxis_5A7C93BAF2747A5F600637125B6F44C2" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable_2ABFF03934135A52572237125B6E52F1" xlink:to="loc_us-gaap_BusinessAcquisitionAxis_5A7C93BAF2747A5F600637125B6F44C2" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_BusinessAcquisitionAcquireeDomain" xlink:label="loc_us-gaap_BusinessAcquisitionAcquireeDomain_5982EF170F03FA776DA437125B6F94CB" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_BusinessAcquisitionAxis_5A7C93BAF2747A5F600637125B6F44C2" xlink:to="loc_us-gaap_BusinessAcquisitionAcquireeDomain_5982EF170F03FA776DA437125B6F94CB" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_SualabCo.Ltd.Member" xlink:label="loc_cgnx_SualabCo.Ltd.Member_62B8C8326652AF19EDE237125B6FF359" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_BusinessAcquisitionAcquireeDomain_5982EF170F03FA776DA437125B6F94CB" xlink:to="loc_cgnx_SualabCo.Ltd.Member_62B8C8326652AF19EDE237125B6FF359" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_830AAA883C21708B409237125B705D41" xlink:type="locator" />
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable_2ABFF03934135A52572237125B6E52F1" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_830AAA883C21708B409237125B705D41" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_B482F1816E009946E79A37125B704E44" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_830AAA883C21708B409237125B705D41" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_B482F1816E009946E79A37125B704E44" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_CompletedTechnologyMember" xlink:label="loc_cgnx_CompletedTechnologyMember_D7ED7D5D82C2D9CDA08937125B709CC3" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_B482F1816E009946E79A37125B704E44" xlink:to="loc_cgnx_CompletedTechnologyMember_D7ED7D5D82C2D9CDA08937125B709CC3" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_CustomerRelationshipsMember" xlink:label="loc_us-gaap_CustomerRelationshipsMember_95BE986831015E5A901137125B70F939" xlink:type="locator" />
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_B482F1816E009946E79A37125B704E44" xlink:to="loc_us-gaap_CustomerRelationshipsMember_95BE986831015E5A901137125B70F939" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_TrademarksMember" xlink:label="loc_us-gaap_TrademarksMember_CD1A871B5EF67093175037125B71BC6D" xlink:type="locator" />
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_B482F1816E009946E79A37125B704E44" xlink:to="loc_us-gaap_TrademarksMember_CD1A871B5EF67093175037125B71BC6D" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_NoncompeteAgreementsMember" xlink:label="loc_us-gaap_NoncompeteAgreementsMember_970544AFD2DA67DF3A3F37125B71DFE3" xlink:type="locator" />
    <link:presentationArc order="4" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_B482F1816E009946E79A37125B704E44" xlink:to="loc_us-gaap_NoncompeteAgreementsMember_970544AFD2DA67DF3A3F37125B71DFE3" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2018/elts/srt-2018-01-31.xsd#srt_RangeAxis" xlink:label="loc_srt_RangeAxis_EEBAEE32B875BC8DDC3E37125B713A52" xlink:type="locator" />
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable_2ABFF03934135A52572237125B6E52F1" xlink:to="loc_srt_RangeAxis_EEBAEE32B875BC8DDC3E37125B713A52" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2018/elts/srt-2018-01-31.xsd#srt_RangeMember" xlink:label="loc_srt_RangeMember_163B9AE7A97CAF7715D137125B717C32" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_RangeAxis_EEBAEE32B875BC8DDC3E37125B713A52" xlink:to="loc_srt_RangeMember_163B9AE7A97CAF7715D137125B717C32" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2018/elts/srt-2018-01-31.xsd#srt_MinimumMember" xlink:label="loc_srt_MinimumMember_B54AE2FC8017496DD86537125B71580E" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_RangeMember_163B9AE7A97CAF7715D137125B717C32" xlink:to="loc_srt_MinimumMember_B54AE2FC8017496DD86537125B71580E" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2018/elts/srt-2018-01-31.xsd#srt_MaximumMember" xlink:label="loc_srt_MaximumMember_261A41E1215E1D58DBA237125B729148" xlink:type="locator" />
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_RangeMember_163B9AE7A97CAF7715D137125B717C32" xlink:to="loc_srt_MaximumMember_261A41E1215E1D58DBA237125B729148" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_BusinessAcquisitionLineItems" xlink:label="loc_us-gaap_BusinessAcquisitionLineItems_4C2117681C0883FFD01B37125B7260F1" xlink:type="locator" />
    <link:presentationArc order="4" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable_2ABFF03934135A52572237125B6E52F1" xlink:to="loc_us-gaap_BusinessAcquisitionLineItems_4C2117681C0883FFD01B37125B7260F1" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife" xlink:label="loc_us-gaap_AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife_B1CFE3981CB44B1D6C6A37125B72C3A6" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_4C2117681C0883FFD01B37125B7260F1" xlink:to="loc_us-gaap_AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife_B1CFE3981CB44B1D6C6A37125B72C3A6" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_BusinessAcquisitionPurchasePriceAllocationGoodwillExpectedTaxDeductibleAmount" xlink:label="loc_us-gaap_BusinessAcquisitionPurchasePriceAllocationGoodwillExpectedTaxDeductibleAmount_277419A4BCF1721B99B637125B72F31A" xlink:type="locator" />
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_4C2117681C0883FFD01B37125B7260F1" xlink:to="loc_us-gaap_BusinessAcquisitionPurchasePriceAllocationGoodwillExpectedTaxDeductibleAmount_277419A4BCF1721B99B637125B72F31A" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_BusinessCombinationConsiderationTransferred1" xlink:label="loc_us-gaap_BusinessCombinationConsiderationTransferred1_DDAD9CE3A0CFE169B12E37125B72B8D7" xlink:type="locator" />
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_4C2117681C0883FFD01B37125B7260F1" xlink:to="loc_us-gaap_BusinessCombinationConsiderationTransferred1_DDAD9CE3A0CFE169B12E37125B72B8D7" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_PaymentsToAcquireBusinessesGross" xlink:label="loc_us-gaap_PaymentsToAcquireBusinessesGross_B010D6C362673E12568D37125B7279DD" xlink:type="locator" />
    <link:presentationArc order="4" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_4C2117681C0883FFD01B37125B7260F1" xlink:to="loc_us-gaap_PaymentsToAcquireBusinessesGross_B010D6C362673E12568D37125B7279DD" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_BusinessCombinationContingentConsiderationLiability" xlink:label="loc_us-gaap_BusinessCombinationContingentConsiderationLiability_5433D3CB3389F8E76DF137125B7361B3" xlink:type="locator" />
    <link:presentationArc order="5" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_4C2117681C0883FFD01B37125B7260F1" xlink:to="loc_us-gaap_BusinessCombinationContingentConsiderationLiability_5433D3CB3389F8E76DF137125B7361B3" xlink:type="arc" />
  </link:presentationLink>
  <link:presentationLink xlink:role="http://cognex.com/role/AcquisitionsSualabCoLtdPurchasePriceAllocationDetails" xlink:type="extended">
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_BusinessCombinationsAbstract" xlink:label="loc_us-gaap_BusinessCombinationsAbstract_D13C92155B887B774D51170C90B77960" xlink:type="locator" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable" xlink:label="loc_us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable_7733BCFCDF374138726F170C90B7C11B" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_BusinessCombinationsAbstract_D13C92155B887B774D51170C90B77960" xlink:to="loc_us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable_7733BCFCDF374138726F170C90B7C11B" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_BusinessAcquisitionAxis" xlink:label="loc_us-gaap_BusinessAcquisitionAxis_B7EDE150DEE6814FA07C170C90BCF3A3" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable_7733BCFCDF374138726F170C90B7C11B" xlink:to="loc_us-gaap_BusinessAcquisitionAxis_B7EDE150DEE6814FA07C170C90BCF3A3" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_BusinessAcquisitionAcquireeDomain" xlink:label="loc_us-gaap_BusinessAcquisitionAcquireeDomain_01934C24162EE4F39987170C90BD47AF" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_BusinessAcquisitionAxis_B7EDE150DEE6814FA07C170C90BCF3A3" xlink:to="loc_us-gaap_BusinessAcquisitionAcquireeDomain_01934C24162EE4F39987170C90BD47AF" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_SualabCo.Ltd.Member" xlink:label="loc_cgnx_SualabCo.Ltd.Member_C4A70D14907CE677C9E6170C90BD273A" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_BusinessAcquisitionAcquireeDomain_01934C24162EE4F39987170C90BD47AF" xlink:to="loc_cgnx_SualabCo.Ltd.Member_C4A70D14907CE677C9E6170C90BD273A" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_97E9456ABFDC971C62B6170C90BE9885" xlink:type="locator" />
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable_7733BCFCDF374138726F170C90B7C11B" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_97E9456ABFDC971C62B6170C90BE9885" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_CDB17CFC45888367CDD8170C90BE2525" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_97E9456ABFDC971C62B6170C90BE9885" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_CDB17CFC45888367CDD8170C90BE2525" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_CompletedTechnologyMember" xlink:label="loc_cgnx_CompletedTechnologyMember_042ECB83F6A892D9807E170C90BE6D71" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_CDB17CFC45888367CDD8170C90BE2525" xlink:to="loc_cgnx_CompletedTechnologyMember_042ECB83F6A892D9807E170C90BE6D71" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_InprocessTechnologyMember" xlink:label="loc_cgnx_InprocessTechnologyMember_6F9553E75AF438AD324D170C90BEB925" xlink:type="locator" />
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_CDB17CFC45888367CDD8170C90BE2525" xlink:to="loc_cgnx_InprocessTechnologyMember_6F9553E75AF438AD324D170C90BEB925" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_CustomerRelationshipsMember" xlink:label="loc_us-gaap_CustomerRelationshipsMember_E424C7723B5138AC1C4F170C90BFE074" xlink:type="locator" />
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_CDB17CFC45888367CDD8170C90BE2525" xlink:to="loc_us-gaap_CustomerRelationshipsMember_E424C7723B5138AC1C4F170C90BFE074" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_NoncompeteAgreementsMember" xlink:label="loc_us-gaap_NoncompeteAgreementsMember_131DB1E5614F42C05E3D170C90BF6730" xlink:type="locator" />
    <link:presentationArc order="4" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_CDB17CFC45888367CDD8170C90BE2525" xlink:to="loc_us-gaap_NoncompeteAgreementsMember_131DB1E5614F42C05E3D170C90BF6730" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_TrademarksMember" xlink:label="loc_us-gaap_TrademarksMember_C6D81AAB3054590263EE170C90BF9349" xlink:type="locator" />
    <link:presentationArc order="5" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_CDB17CFC45888367CDD8170C90BE2525" xlink:to="loc_us-gaap_TrademarksMember_C6D81AAB3054590263EE170C90BF9349" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_BusinessAcquisitionLineItems" xlink:label="loc_us-gaap_BusinessAcquisitionLineItems_9FAA825C117F28AF403C170C90C010C5" xlink:type="locator" />
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable_7733BCFCDF374138726F170C90B7C11B" xlink:to="loc_us-gaap_BusinessAcquisitionLineItems_9FAA825C117F28AF403C170C90C010C5" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCashAndEquivalents" xlink:label="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCashAndEquivalents_BFEBAEB4B6EA4D93738F170C90C0AA00" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_9FAA825C117F28AF403C170C90C010C5" xlink:to="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCashAndEquivalents_BFEBAEB4B6EA4D93738F170C90C0AA00" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsMarketableSecurities" xlink:label="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsMarketableSecurities_A1F9D788A66E7210B12B170C90C0B066" xlink:type="locator" />
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_9FAA825C117F28AF403C170C90C010C5" xlink:to="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsMarketableSecurities_A1F9D788A66E7210B12B170C90C0B066" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsReceivables" xlink:label="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsReceivables_06F01049DB5C28ABBEDD170C90C067AE" xlink:type="locator" />
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_9FAA825C117F28AF403C170C90C010C5" xlink:to="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsReceivables_06F01049DB5C28ABBEDD170C90C067AE" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedInventory" xlink:label="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedInventory_58D578A23843F283061A170C90C08998" xlink:type="locator" />
    <link:presentationArc order="4" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_9FAA825C117F28AF403C170C90C010C5" xlink:to="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedInventory_58D578A23843F283061A170C90C08998" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsPrepaidExpenseAndOtherAssets" xlink:label="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsPrepaidExpenseAndOtherAssets_C3A6065EA48009C4DAE8170C90C108F1" xlink:type="locator" />
    <link:presentationArc order="5" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_9FAA825C117F28AF403C170C90C010C5" xlink:to="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsPrepaidExpenseAndOtherAssets_C3A6065EA48009C4DAE8170C90C108F1" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment" xlink:label="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment_496B9D73F1AAD0F0805D170C90C16102" xlink:type="locator" />
    <link:presentationArc order="6" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_9FAA825C117F28AF403C170C90C010C5" xlink:to="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment_496B9D73F1AAD0F0805D170C90C16102" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredandLiabilitiesAssumedOperatingLeaseRightofUseAsset" xlink:label="loc_cgnx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredandLiabilitiesAssumedOperatingLeaseRightofUseAsset_9115019EB9D5A8F9E6F0170C90C10AF3" xlink:type="locator" />
    <link:presentationArc order="7" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_9FAA825C117F28AF403C170C90C010C5" xlink:to="loc_cgnx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredandLiabilitiesAssumedOperatingLeaseRightofUseAsset_9115019EB9D5A8F9E6F0170C90C10AF3" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxAssets" xlink:label="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxAssets_3B9427677E1660BD7363170C90C106ED" xlink:type="locator" />
    <link:presentationArc order="8" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_9FAA825C117F28AF403C170C90C010C5" xlink:to="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxAssets_3B9427677E1660BD7363170C90C106ED" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNoncurrentAssets" xlink:label="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNoncurrentAssets_A07AC6432D2B4A839BA2170C90C19454" xlink:type="locator" />
    <link:presentationArc order="9" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_9FAA825C117F28AF403C170C90C010C5" xlink:to="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNoncurrentAssets_A07AC6432D2B4A839BA2170C90C19454" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccountsPayable" xlink:label="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccountsPayable_FAB84C8696013E2646C9170C90C2AF06" xlink:type="locator" />
    <link:presentationArc order="10" preferredLabel="http://www.xbrl.org/2009/role/negatedTerseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_9FAA825C117F28AF403C170C90C010C5" xlink:to="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccountsPayable_FAB84C8696013E2646C9170C90C2AF06" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilities" xlink:label="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilities_48A095E70DAEA6B4905F170C90C2A184" xlink:type="locator" />
    <link:presentationArc order="11" preferredLabel="http://www.xbrl.org/2009/role/negatedTerseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_9FAA825C117F28AF403C170C90C010C5" xlink:to="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilities_48A095E70DAEA6B4905F170C90C2A184" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredandLiabilitiesAssumedCurrentLiabilitiesDeferredRevenueandCustomerDeposits" xlink:label="loc_cgnx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredandLiabilitiesAssumedCurrentLiabilitiesDeferredRevenueandCustomerDeposits_9159D28CDB3F927C6327170C90C28358" xlink:type="locator" />
    <link:presentationArc order="12" preferredLabel="http://www.xbrl.org/2009/role/negatedTerseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_9FAA825C117F28AF403C170C90C010C5" xlink:to="loc_cgnx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredandLiabilitiesAssumedCurrentLiabilitiesDeferredRevenueandCustomerDeposits_9159D28CDB3F927C6327170C90C28358" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredandLiabilitiesAssumedOperatingLeaseLiabilityCurrent" xlink:label="loc_cgnx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredandLiabilitiesAssumedOperatingLeaseLiabilityCurrent_0360B65C7220BCFB745A170C90C22494" xlink:type="locator" />
    <link:presentationArc order="13" preferredLabel="http://www.xbrl.org/2009/role/negatedTerseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_9FAA825C117F28AF403C170C90C010C5" xlink:to="loc_cgnx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredandLiabilitiesAssumedOperatingLeaseLiabilityCurrent_0360B65C7220BCFB745A170C90C22494" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredandLiabilitiesAssumedOperatingLeaseLiabilityNoncurrent" xlink:label="loc_cgnx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredandLiabilitiesAssumedOperatingLeaseLiabilityNoncurrent_1CD146FFBF603BFAFD03170C90C360DF" xlink:type="locator" />
    <link:presentationArc order="14" preferredLabel="http://www.xbrl.org/2009/role/negatedTerseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_9FAA825C117F28AF403C170C90C010C5" xlink:to="loc_cgnx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredandLiabilitiesAssumedOperatingLeaseLiabilityNoncurrent_1CD146FFBF603BFAFD03170C90C360DF" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesDeferredRevenue" xlink:label="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesDeferredRevenue_49D091EBFC3AEFB8D153170C90C337CA" xlink:type="locator" />
    <link:presentationArc order="15" preferredLabel="http://www.xbrl.org/2009/role/negatedTerseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_9FAA825C117F28AF403C170C90C010C5" xlink:to="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesDeferredRevenue_49D091EBFC3AEFB8D153170C90C337CA" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNoncurrentLiabilitiesOther" xlink:label="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNoncurrentLiabilitiesOther_6CD513AA624F670EBEF8170C90C3383A" xlink:type="locator" />
    <link:presentationArc order="16" preferredLabel="http://www.xbrl.org/2009/role/negatedTerseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_9FAA825C117F28AF403C170C90C010C5" xlink:to="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNoncurrentLiabilitiesOther_6CD513AA624F670EBEF8170C90C3383A" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibleAssetsOtherThanGoodwill" xlink:label="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibleAssetsOtherThanGoodwill_75A3A6760BFEF7E17B95170C90C39CCC" xlink:type="locator" />
    <link:presentationArc order="17" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_9FAA825C117F28AF403C170C90C010C5" xlink:to="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibleAssetsOtherThanGoodwill_75A3A6760BFEF7E17B95170C90C39CCC" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_Goodwill" xlink:label="loc_us-gaap_Goodwill_58CD1C4D95FA83D808E6170C90C34F16" xlink:type="locator" />
    <link:presentationArc order="18" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_9FAA825C117F28AF403C170C90C010C5" xlink:to="loc_us-gaap_Goodwill_58CD1C4D95FA83D808E6170C90C34F16" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet" xlink:label="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet_3149804EFB942C3A0DE4170C90C46CE3" xlink:type="locator" />
    <link:presentationArc order="19" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_9FAA825C117F28AF403C170C90C010C5" xlink:to="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet_3149804EFB942C3A0DE4170C90C46CE3" xlink:type="arc" />
  </link:presentationLink>
  <link:presentationLink xlink:role="http://cognex.com/role/AcquisitionsVidiSystemsSADetails" xlink:type="extended">
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_BusinessCombinationsAbstract" xlink:label="loc_us-gaap_BusinessCombinationsAbstract_108ACE0D4B90A3A000478095E8C29703" xlink:type="locator" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable" xlink:label="loc_us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable_8E35436917E8EE1B99A98095E8C272AE" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_BusinessCombinationsAbstract_108ACE0D4B90A3A000478095E8C29703" xlink:to="loc_us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable_8E35436917E8EE1B99A98095E8C272AE" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_A86104DD99153F7892E48095E8C27459" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable_8E35436917E8EE1B99A98095E8C272AE" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_A86104DD99153F7892E48095E8C27459" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_01EE5FE2A585244192968095E8C27DA1" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_A86104DD99153F7892E48095E8C27459" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_01EE5FE2A585244192968095E8C27DA1" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_NoncompeteAgreementsMember" xlink:label="loc_us-gaap_NoncompeteAgreementsMember_BEACA4D89251AB0B06EB8095E8C23FBD" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_01EE5FE2A585244192968095E8C27DA1" xlink:to="loc_us-gaap_NoncompeteAgreementsMember_BEACA4D89251AB0B06EB8095E8C23FBD" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_TechnologyBasedIntangibleAssetsMember" xlink:label="loc_us-gaap_TechnologyBasedIntangibleAssetsMember_0AEBBA10309989D6610B8095E8C2411B" xlink:type="locator" />
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_01EE5FE2A585244192968095E8C27DA1" xlink:to="loc_us-gaap_TechnologyBasedIntangibleAssetsMember_0AEBBA10309989D6610B8095E8C2411B" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_BusinessAcquisitionAxis" xlink:label="loc_us-gaap_BusinessAcquisitionAxis_00A32231221192C6CE098095E8C2578E" xlink:type="locator" />
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable_8E35436917E8EE1B99A98095E8C272AE" xlink:to="loc_us-gaap_BusinessAcquisitionAxis_00A32231221192C6CE098095E8C2578E" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_BusinessAcquisitionAcquireeDomain" xlink:label="loc_us-gaap_BusinessAcquisitionAcquireeDomain_601CBA3D08B7F489709C8095E8C2D9A9" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_BusinessAcquisitionAxis_00A32231221192C6CE098095E8C2578E" xlink:to="loc_us-gaap_BusinessAcquisitionAcquireeDomain_601CBA3D08B7F489709C8095E8C2D9A9" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_ViDiSystemsS.A.Member" xlink:label="loc_cgnx_ViDiSystemsS.A.Member_3073C8EA63F1BC4B0C058095E8C32787" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_BusinessAcquisitionAcquireeDomain_601CBA3D08B7F489709C8095E8C2D9A9" xlink:to="loc_cgnx_ViDiSystemsS.A.Member_3073C8EA63F1BC4B0C058095E8C32787" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_BusinessAcquisitionLineItems" xlink:label="loc_us-gaap_BusinessAcquisitionLineItems_F5C363D988AE567C88AA8095E8C3A6D8" xlink:type="locator" />
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable_8E35436917E8EE1B99A98095E8C272AE" xlink:to="loc_us-gaap_BusinessAcquisitionLineItems_F5C363D988AE567C88AA8095E8C3A6D8" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_BusinessCombinationConsiderationTransferred1" xlink:label="loc_us-gaap_BusinessCombinationConsiderationTransferred1_20EFE4FC46C8F2DD8CB28095E8C35341" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_F5C363D988AE567C88AA8095E8C3A6D8" xlink:to="loc_us-gaap_BusinessCombinationConsiderationTransferred1_20EFE4FC46C8F2DD8CB28095E8C35341" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_PaymentsToAcquireBusinessesGross" xlink:label="loc_us-gaap_PaymentsToAcquireBusinessesGross_BB92F261DBD2B66FC3C58095E8C3E1C4" xlink:type="locator" />
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_F5C363D988AE567C88AA8095E8C3A6D8" xlink:to="loc_us-gaap_PaymentsToAcquireBusinessesGross_BB92F261DBD2B66FC3C58095E8C3E1C4" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_BusinessCombinationConsiderationTransferredLiabilitiesIncurred" xlink:label="loc_us-gaap_BusinessCombinationConsiderationTransferredLiabilitiesIncurred_5DB90D661E6CB54964BC8095E8C32C0F" xlink:type="locator" />
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_F5C363D988AE567C88AA8095E8C3A6D8" xlink:to="loc_us-gaap_BusinessCombinationConsiderationTransferredLiabilitiesIncurred_5DB90D661E6CB54964BC8095E8C32C0F" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife" xlink:label="loc_us-gaap_AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife_4F1D2A6E239E7FA4C01D8095E8C3DBF5" xlink:type="locator" />
    <link:presentationArc order="4" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_F5C363D988AE567C88AA8095E8C3A6D8" xlink:to="loc_us-gaap_AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife_4F1D2A6E239E7FA4C01D8095E8C3DBF5" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_Taxdeductiblegoodwill" xlink:label="loc_cgnx_Taxdeductiblegoodwill_94D087E4BC4AD3E22C228095E8C30838" xlink:type="locator" />
    <link:presentationArc order="5" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_F5C363D988AE567C88AA8095E8C3A6D8" xlink:to="loc_cgnx_Taxdeductiblegoodwill_94D087E4BC4AD3E22C228095E8C30838" xlink:type="arc" />
  </link:presentationLink>
  <link:presentationLink xlink:role="http://cognex.com/role/AcquisitionsVidiSystemsSAPurchasePriceAllocationDetails" xlink:type="extended">
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_BusinessCombinationsAbstract" xlink:label="loc_us-gaap_BusinessCombinationsAbstract_43CD1184E21FA305FCF5FD820CACACBE" xlink:type="locator" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable" xlink:label="loc_us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable_20D6FEE5E512026A4971FD820CADA846" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_BusinessCombinationsAbstract_43CD1184E21FA305FCF5FD820CACACBE" xlink:to="loc_us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable_20D6FEE5E512026A4971FD820CADA846" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_77BF7BBE07CD5752FDCBFD820CAD677E" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable_20D6FEE5E512026A4971FD820CADA846" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_77BF7BBE07CD5752FDCBFD820CAD677E" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_A77CF482F882176F5235FD820CADAF47" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_77BF7BBE07CD5752FDCBFD820CAD677E" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_A77CF482F882176F5235FD820CADAF47" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_NoncompeteAgreementsMember" xlink:label="loc_us-gaap_NoncompeteAgreementsMember_B09C73EFA2FDB0FA1D70FD820CADFCC4" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_A77CF482F882176F5235FD820CADAF47" xlink:to="loc_us-gaap_NoncompeteAgreementsMember_B09C73EFA2FDB0FA1D70FD820CADFCC4" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_TechnologyBasedIntangibleAssetsMember" xlink:label="loc_us-gaap_TechnologyBasedIntangibleAssetsMember_31DAAE689F5E185B4467FD820CAEE95D" xlink:type="locator" />
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_A77CF482F882176F5235FD820CADAF47" xlink:to="loc_us-gaap_TechnologyBasedIntangibleAssetsMember_31DAAE689F5E185B4467FD820CAEE95D" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_BusinessAcquisitionAxis" xlink:label="loc_us-gaap_BusinessAcquisitionAxis_E4509545B36276306147FD820CAE9F47" xlink:type="locator" />
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable_20D6FEE5E512026A4971FD820CADA846" xlink:to="loc_us-gaap_BusinessAcquisitionAxis_E4509545B36276306147FD820CAE9F47" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_BusinessAcquisitionAcquireeDomain" xlink:label="loc_us-gaap_BusinessAcquisitionAcquireeDomain_793BA5E6581517855C7AFD820CAE4814" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_BusinessAcquisitionAxis_E4509545B36276306147FD820CAE9F47" xlink:to="loc_us-gaap_BusinessAcquisitionAcquireeDomain_793BA5E6581517855C7AFD820CAE4814" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_ViDiSystemsS.A.Member" xlink:label="loc_cgnx_ViDiSystemsS.A.Member_6B53770B891DF4C99C36FD820CAE7769" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_BusinessAcquisitionAcquireeDomain_793BA5E6581517855C7AFD820CAE4814" xlink:to="loc_cgnx_ViDiSystemsS.A.Member_6B53770B891DF4C99C36FD820CAE7769" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_BusinessAcquisitionLineItems" xlink:label="loc_us-gaap_BusinessAcquisitionLineItems_A987CF8C669427676523FD820CAEADCD" xlink:type="locator" />
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable_20D6FEE5E512026A4971FD820CADA846" xlink:to="loc_us-gaap_BusinessAcquisitionLineItems_A987CF8C669427676523FD820CAEADCD" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCashAndEquivalents" xlink:label="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCashAndEquivalents_DD39A66A13759968BFEDFD820CAF939C" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_A987CF8C669427676523FD820CAEADCD" xlink:to="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCashAndEquivalents_DD39A66A13759968BFEDFD820CAF939C" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsReceivables" xlink:label="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsReceivables_4C13CD344053D3394290FD820CAF3B20" xlink:type="locator" />
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_A987CF8C669427676523FD820CAEADCD" xlink:to="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsReceivables_4C13CD344053D3394290FD820CAF3B20" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsPrepaidExpenseAndOtherAssets" xlink:label="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsPrepaidExpenseAndOtherAssets_D1FCF77809669A8EF003FD820CAFBA61" xlink:type="locator" />
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_A987CF8C669427676523FD820CAEADCD" xlink:to="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsPrepaidExpenseAndOtherAssets_D1FCF77809669A8EF003FD820CAFBA61" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment" xlink:label="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment_0170EEB402D192BCE853FD820CAF4114" xlink:type="locator" />
    <link:presentationArc order="4" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_A987CF8C669427676523FD820CAEADCD" xlink:to="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment_0170EEB402D192BCE853FD820CAF4114" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxAssets" xlink:label="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxAssets_4A46D21FBA2AD22DF91BFD820CAF3D02" xlink:type="locator" />
    <link:presentationArc order="5" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_A987CF8C669427676523FD820CAEADCD" xlink:to="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxAssets_4A46D21FBA2AD22DF91BFD820CAF3D02" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccountsPayable" xlink:label="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccountsPayable_9AFA68ABF11EC629236EFD820CB0D02B" xlink:type="locator" />
    <link:presentationArc order="6" preferredLabel="http://www.xbrl.org/2009/role/negatedTerseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_A987CF8C669427676523FD820CAEADCD" xlink:to="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccountsPayable_9AFA68ABF11EC629236EFD820CB0D02B" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredandLiabilitiesAssumedCurrentLiabilitiesAccruedExpenses" xlink:label="loc_cgnx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredandLiabilitiesAssumedCurrentLiabilitiesAccruedExpenses_876D91A9229ACD6B244FFD820CB06427" xlink:type="locator" />
    <link:presentationArc order="7" preferredLabel="http://www.xbrl.org/2009/role/negatedTerseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_A987CF8C669427676523FD820CAEADCD" xlink:to="loc_cgnx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredandLiabilitiesAssumedCurrentLiabilitiesAccruedExpenses_876D91A9229ACD6B244FFD820CB06427" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxLiabilities" xlink:label="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxLiabilities_0F0CA5C4D8589696BEC8FD820CB01E44" xlink:type="locator" />
    <link:presentationArc order="8" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_A987CF8C669427676523FD820CAEADCD" xlink:to="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxLiabilities_0F0CA5C4D8589696BEC8FD820CB01E44" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles" xlink:label="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles_212B8319D5DE3867EAE5FD820CB05364" xlink:type="locator" />
    <link:presentationArc order="9" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_A987CF8C669427676523FD820CAEADCD" xlink:to="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles_212B8319D5DE3867EAE5FD820CB05364" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_Goodwill" xlink:label="loc_us-gaap_Goodwill_9BB4C453B582942EBD38FD820CB0F566" xlink:type="locator" />
    <link:presentationArc order="10" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_A987CF8C669427676523FD820CAEADCD" xlink:to="loc_us-gaap_Goodwill_9BB4C453B582942EBD38FD820CB0F566" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet" xlink:label="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet_06378B83ECB5632EC772FD820CB0B1DF" xlink:type="locator" />
    <link:presentationArc order="11" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_A987CF8C669427676523FD820CAEADCD" xlink:to="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet_06378B83ECB5632EC772FD820CB0B1DF" xlink:type="arc" />
  </link:presentationLink>
  <link:presentationLink xlink:role="http://cognex.com/role/CashCashEquivalentsAndInvestments" xlink:type="extended">
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_CashAndCashEquivalentsAbstract" xlink:label="loc_us-gaap_CashAndCashEquivalentsAbstract_40545A8928C24E3F6CDD8095E66B039A" xlink:type="locator" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_InvestmentsInDebtAndEquityInstrumentsCashAndCashEquivalentsUnrealizedAndRealizedGainsLossesTextBlock" xlink:label="loc_us-gaap_InvestmentsInDebtAndEquityInstrumentsCashAndCashEquivalentsUnrealizedAndRealizedGainsLossesTextBlock_C28B15C71D3CEFBEE44B8095E66B153E" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_CashAndCashEquivalentsAbstract_40545A8928C24E3F6CDD8095E66B039A" xlink:to="loc_us-gaap_InvestmentsInDebtAndEquityInstrumentsCashAndCashEquivalentsUnrealizedAndRealizedGainsLossesTextBlock_C28B15C71D3CEFBEE44B8095E66B153E" xlink:type="arc" />
  </link:presentationLink>
  <link:presentationLink xlink:role="http://cognex.com/role/CashCashEquivalentsAndInvestmentsAdditionalInformationDetail" xlink:type="extended">
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_CashAndCashEquivalentsAbstract" xlink:label="loc_us-gaap_CashAndCashEquivalentsAbstract_A42BCB687B1BCC27C3548095E8A4148C" xlink:type="locator" />
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_DueFromForeignBanks" xlink:label="loc_cgnx_DueFromForeignBanks_AFB45B2AD577E76E7EB08095E8A46D3D" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_CashAndCashEquivalentsAbstract_A42BCB687B1BCC27C3548095E8A4148C" xlink:to="loc_cgnx_DueFromForeignBanks_AFB45B2AD577E76E7EB08095E8A46D3D" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_AvailableForSaleSecuritiesGrossRealizedGains" xlink:label="loc_us-gaap_AvailableForSaleSecuritiesGrossRealizedGains_3C6AC2B70DFF34C6438E8095E8A48E05" xlink:type="locator" />
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_CashAndCashEquivalentsAbstract_A42BCB687B1BCC27C3548095E8A4148C" xlink:to="loc_us-gaap_AvailableForSaleSecuritiesGrossRealizedGains_3C6AC2B70DFF34C6438E8095E8A48E05" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_AvailableForSaleSecuritiesGrossRealizedLosses" xlink:label="loc_us-gaap_AvailableForSaleSecuritiesGrossRealizedLosses_EAF68FA1A63A76BF2E9A8095E8A4BBA7" xlink:type="locator" />
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_CashAndCashEquivalentsAbstract_A42BCB687B1BCC27C3548095E8A4148C" xlink:to="loc_us-gaap_AvailableForSaleSecuritiesGrossRealizedLosses_EAF68FA1A63A76BF2E9A8095E8A4BBA7" xlink:type="arc" />
  </link:presentationLink>
  <link:presentationLink xlink:role="http://cognex.com/role/CashCashEquivalentsAndInvestmentsAmortizedCostToFairValueDetail" xlink:type="extended">
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_CashAndCashEquivalentsAbstract" xlink:label="loc_us-gaap_CashAndCashEquivalentsAbstract_3A94853BD1CB72723880F3C90012CD68" xlink:type="locator" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ScheduleOfAvailableForSaleSecuritiesTable" xlink:label="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesTable_4A923AC9D6C810B51D02F3C90012A1DF" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_CashAndCashEquivalentsAbstract_3A94853BD1CB72723880F3C90012CD68" xlink:to="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesTable_4A923AC9D6C810B51D02F3C90012A1DF" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_FinancialInstrumentAxis" xlink:label="loc_us-gaap_FinancialInstrumentAxis_B5BDC526066C5DD04064F3C900123B17" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesTable_4A923AC9D6C810B51D02F3C90012A1DF" xlink:to="loc_us-gaap_FinancialInstrumentAxis_B5BDC526066C5DD04064F3C900123B17" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain" xlink:label="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_8E4517BDA3EFB9EAD817F3C90013FEC1" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FinancialInstrumentAxis_B5BDC526066C5DD04064F3C900123B17" xlink:to="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_8E4517BDA3EFB9EAD817F3C90013FEC1" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_USTreasurySecuritiesMember" xlink:label="loc_us-gaap_USTreasurySecuritiesMember_7A224CA72DE789C4BADAF3C9001328B4" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_8E4517BDA3EFB9EAD817F3C90013FEC1" xlink:to="loc_us-gaap_USTreasurySecuritiesMember_7A224CA72DE789C4BADAF3C9001328B4" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_AssetBackedSecuritiesMember" xlink:label="loc_us-gaap_AssetBackedSecuritiesMember_C43061B8694BD604D97FF3C90013D2B0" xlink:type="locator" />
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_8E4517BDA3EFB9EAD817F3C90013FEC1" xlink:to="loc_us-gaap_AssetBackedSecuritiesMember_C43061B8694BD604D97FF3C90013D2B0" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_CorporateBondSecuritiesMember" xlink:label="loc_us-gaap_CorporateBondSecuritiesMember_6BDD28FCB5459DDC2A8CF3C900134087" xlink:type="locator" />
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_8E4517BDA3EFB9EAD817F3C90013FEC1" xlink:to="loc_us-gaap_CorporateBondSecuritiesMember_6BDD28FCB5459DDC2A8CF3C900134087" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_SovereignDebtSecuritiesMember" xlink:label="loc_us-gaap_SovereignDebtSecuritiesMember_0472F38793164384DCDBF3C90013F87B" xlink:type="locator" />
    <link:presentationArc order="4" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_8E4517BDA3EFB9EAD817F3C90013FEC1" xlink:to="loc_us-gaap_SovereignDebtSecuritiesMember_0472F38793164384DCDBF3C90013F87B" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_MunicipalBondsMember" xlink:label="loc_us-gaap_MunicipalBondsMember_33F5D51F6C7E3D1FE591F3C900143BEE" xlink:type="locator" />
    <link:presentationArc order="5" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_8E4517BDA3EFB9EAD817F3C90013FEC1" xlink:to="loc_us-gaap_MunicipalBondsMember_33F5D51F6C7E3D1FE591F3C900143BEE" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_AgencyBondsMember" xlink:label="loc_cgnx_AgencyBondsMember_7089BCB461A9A3125177F3C900140F67" xlink:type="locator" />
    <link:presentationArc order="6" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_8E4517BDA3EFB9EAD817F3C90013FEC1" xlink:to="loc_cgnx_AgencyBondsMember_7089BCB461A9A3125177F3C900140F67" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_InvestmentTypeAxis" xlink:label="loc_us-gaap_InvestmentTypeAxis_E5E98053AD6BADD8F905F3C9001464E7" xlink:type="locator" />
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesTable_4A923AC9D6C810B51D02F3C90012A1DF" xlink:to="loc_us-gaap_InvestmentTypeAxis_E5E98053AD6BADD8F905F3C9001464E7" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_InvestmentTypeCategorizationMember" xlink:label="loc_us-gaap_InvestmentTypeCategorizationMember_13E1F20D7982A7A9AAB8F3C900147F12" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_InvestmentTypeAxis_E5E98053AD6BADD8F905F3C9001464E7" xlink:to="loc_us-gaap_InvestmentTypeCategorizationMember_13E1F20D7982A7A9AAB8F3C900147F12" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ShortTermInvestmentsMember" xlink:label="loc_us-gaap_ShortTermInvestmentsMember_DD924BF217925255DC7BF3C90014F6C7" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_InvestmentTypeCategorizationMember_13E1F20D7982A7A9AAB8F3C900147F12" xlink:to="loc_us-gaap_ShortTermInvestmentsMember_DD924BF217925255DC7BF3C90014F6C7" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_LongTermInvestmentsMember" xlink:label="loc_cgnx_LongTermInvestmentsMember_F5BE412BD7A64E9B0D55F3C90015BF9D" xlink:type="locator" />
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_InvestmentTypeCategorizationMember_13E1F20D7982A7A9AAB8F3C900147F12" xlink:to="loc_cgnx_LongTermInvestmentsMember_F5BE412BD7A64E9B0D55F3C90015BF9D" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems" xlink:label="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_85B15D9B427CDC7B8F5CF3C90015D28F" xlink:type="locator" />
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesTable_4A923AC9D6C810B51D02F3C90012A1DF" xlink:to="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_85B15D9B427CDC7B8F5CF3C90015D28F" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_AvailableForSaleDebtSecuritiesAmortizedCostBasis" xlink:label="loc_us-gaap_AvailableForSaleDebtSecuritiesAmortizedCostBasis_D7921001C7B8FEB05661F3C900157B03" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_85B15D9B427CDC7B8F5CF3C90015D28F" xlink:to="loc_us-gaap_AvailableForSaleDebtSecuritiesAmortizedCostBasis_D7921001C7B8FEB05661F3C900157B03" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_AvailableForSaleSecuritiesAccumulatedGrossUnrealizedGainBeforeTax" xlink:label="loc_us-gaap_AvailableForSaleSecuritiesAccumulatedGrossUnrealizedGainBeforeTax_1D8CB6789D895017A15CF3C900156FA2" xlink:type="locator" />
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_85B15D9B427CDC7B8F5CF3C90015D28F" xlink:to="loc_us-gaap_AvailableForSaleSecuritiesAccumulatedGrossUnrealizedGainBeforeTax_1D8CB6789D895017A15CF3C900156FA2" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_AvailableForSaleSecuritiesAccumulatedGrossUnrealizedLossBeforeTax" xlink:label="loc_us-gaap_AvailableForSaleSecuritiesAccumulatedGrossUnrealizedLossBeforeTax_599BF4D206D02B4E6C41F3C90016B282" xlink:type="locator" />
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_85B15D9B427CDC7B8F5CF3C90015D28F" xlink:to="loc_us-gaap_AvailableForSaleSecuritiesAccumulatedGrossUnrealizedLossBeforeTax_599BF4D206D02B4E6C41F3C90016B282" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_AvailableForSaleSecuritiesDebtSecurities" xlink:label="loc_us-gaap_AvailableForSaleSecuritiesDebtSecurities_E35F86407F13BEF36031F3C90016A175" xlink:type="locator" />
    <link:presentationArc order="4" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_85B15D9B427CDC7B8F5CF3C90015D28F" xlink:to="loc_us-gaap_AvailableForSaleSecuritiesDebtSecurities_E35F86407F13BEF36031F3C90016A175" xlink:type="arc" />
  </link:presentationLink>
  <link:presentationLink xlink:role="http://cognex.com/role/CashCashEquivalentsAndInvestmentsComponentsOfCashCashEquivalentsAndInvestmentsDetail" xlink:type="extended">
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_CashAndCashEquivalentsAbstract" xlink:label="loc_us-gaap_CashAndCashEquivalentsAbstract_1659920843860EF7F03FF3C9001EF413" xlink:type="locator" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ScheduleOfAvailableForSaleSecuritiesTable" xlink:label="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesTable_B0B46BFF976F959FF581F3C9001FEC1F" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_CashAndCashEquivalentsAbstract_1659920843860EF7F03FF3C9001EF413" xlink:to="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesTable_B0B46BFF976F959FF581F3C9001FEC1F" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_FinancialInstrumentAxis" xlink:label="loc_us-gaap_FinancialInstrumentAxis_9FFA611B31006AD5FDD2F3C9001F8832" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesTable_B0B46BFF976F959FF581F3C9001FEC1F" xlink:to="loc_us-gaap_FinancialInstrumentAxis_9FFA611B31006AD5FDD2F3C9001F8832" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain" xlink:label="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_27BF19A4800DBB73F086F3C9001F52F8" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FinancialInstrumentAxis_9FFA611B31006AD5FDD2F3C9001F8832" xlink:to="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_27BF19A4800DBB73F086F3C9001F52F8" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_USTreasuryBillSecuritiesMember" xlink:label="loc_us-gaap_USTreasuryBillSecuritiesMember_BB5000F9DCD455788A01F3C9001F043A" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_27BF19A4800DBB73F086F3C9001F52F8" xlink:to="loc_us-gaap_USTreasuryBillSecuritiesMember_BB5000F9DCD455788A01F3C9001F043A" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_AssetBackedSecuritiesMember" xlink:label="loc_us-gaap_AssetBackedSecuritiesMember_71FA57B2FD72710549E1F3C90020769F" xlink:type="locator" />
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_27BF19A4800DBB73F086F3C9001F52F8" xlink:to="loc_us-gaap_AssetBackedSecuritiesMember_71FA57B2FD72710549E1F3C90020769F" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_CorporateBondSecuritiesMember" xlink:label="loc_us-gaap_CorporateBondSecuritiesMember_5C4F86B1861D87B49F7EF3C9002068AD" xlink:type="locator" />
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_27BF19A4800DBB73F086F3C9001F52F8" xlink:to="loc_us-gaap_CorporateBondSecuritiesMember_5C4F86B1861D87B49F7EF3C9002068AD" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_SovereignDebtSecuritiesMember" xlink:label="loc_us-gaap_SovereignDebtSecuritiesMember_3E1DBB22DA9437CF1828F3C900204512" xlink:type="locator" />
    <link:presentationArc order="4" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_27BF19A4800DBB73F086F3C9001F52F8" xlink:to="loc_us-gaap_SovereignDebtSecuritiesMember_3E1DBB22DA9437CF1828F3C900204512" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_MunicipalBondsMember" xlink:label="loc_us-gaap_MunicipalBondsMember_D0286D0F3010BCCEA059F3C90020C0B3" xlink:type="locator" />
    <link:presentationArc order="5" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_27BF19A4800DBB73F086F3C9001F52F8" xlink:to="loc_us-gaap_MunicipalBondsMember_D0286D0F3010BCCEA059F3C90020C0B3" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_CertificatesOfDepositMember" xlink:label="loc_us-gaap_CertificatesOfDepositMember_B6407AABB2222BA1C75AF3E313262DE9" xlink:type="locator" />
    <link:presentationArc order="6" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_27BF19A4800DBB73F086F3C9001F52F8" xlink:to="loc_us-gaap_CertificatesOfDepositMember_B6407AABB2222BA1C75AF3E313262DE9" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_AgencyBondsMember" xlink:label="loc_cgnx_AgencyBondsMember_4AFCBB2A1A3A233025DFF3C900204B1B" xlink:type="locator" />
    <link:presentationArc order="7" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_27BF19A4800DBB73F086F3C9001F52F8" xlink:to="loc_cgnx_AgencyBondsMember_4AFCBB2A1A3A233025DFF3C900204B1B" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems" xlink:label="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_63D4FEE2FD0C82B3FDB0F3C900216DD1" xlink:type="locator" />
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesTable_B0B46BFF976F959FF581F3C9001FEC1F" xlink:to="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_63D4FEE2FD0C82B3FDB0F3C900216DD1" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_Cash" xlink:label="loc_us-gaap_Cash_C48BE88551B924712380F3C900217818" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_63D4FEE2FD0C82B3FDB0F3C900216DD1" xlink:to="loc_us-gaap_Cash_C48BE88551B924712380F3C900217818" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_MoneyMarketFundsAtCarryingValue" xlink:label="loc_us-gaap_MoneyMarketFundsAtCarryingValue_47EF8E6FE3AC1B201A66F3C900210682" xlink:type="locator" />
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_63D4FEE2FD0C82B3FDB0F3C900216DD1" xlink:to="loc_us-gaap_MoneyMarketFundsAtCarryingValue_47EF8E6FE3AC1B201A66F3C900210682" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_CashAndCashEquivalentsAtCarryingValue" xlink:label="loc_us-gaap_CashAndCashEquivalentsAtCarryingValue_F38C17194CD2DF211B26F3C9002148EB" xlink:type="locator" />
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_63D4FEE2FD0C82B3FDB0F3C900216DD1" xlink:to="loc_us-gaap_CashAndCashEquivalentsAtCarryingValue_F38C17194CD2DF211B26F3C9002148EB" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_AvailableForSaleSecuritiesDebtSecuritiesCurrent" xlink:label="loc_us-gaap_AvailableForSaleSecuritiesDebtSecuritiesCurrent_B502CCB18AE35A96E509F3C900216762" xlink:type="locator" />
    <link:presentationArc order="4" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_63D4FEE2FD0C82B3FDB0F3C900216DD1" xlink:to="loc_us-gaap_AvailableForSaleSecuritiesDebtSecuritiesCurrent_B502CCB18AE35A96E509F3C900216762" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_AvailableForSaleSecuritiesDebtSecuritiesNoncurrent" xlink:label="loc_us-gaap_AvailableForSaleSecuritiesDebtSecuritiesNoncurrent_78860C629250BDE0EEB9F3C90021AEC3" xlink:type="locator" />
    <link:presentationArc order="5" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_63D4FEE2FD0C82B3FDB0F3C900216DD1" xlink:to="loc_us-gaap_AvailableForSaleSecuritiesDebtSecuritiesNoncurrent_78860C629250BDE0EEB9F3C90021AEC3" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_LongTermInvestments" xlink:label="loc_us-gaap_LongTermInvestments_A7CE68D7F8006DDEB3A0F3C90022F61A" xlink:type="locator" />
    <link:presentationArc order="6" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_63D4FEE2FD0C82B3FDB0F3C900216DD1" xlink:to="loc_us-gaap_LongTermInvestments_A7CE68D7F8006DDEB3A0F3C90022F61A" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_CashCashEquivalentsShortTermAndLongTermInvestments" xlink:label="loc_cgnx_CashCashEquivalentsShortTermAndLongTermInvestments_D21E99836CE0B6413875F3C9002292C3" xlink:type="locator" />
    <link:presentationArc order="7" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_63D4FEE2FD0C82B3FDB0F3C900216DD1" xlink:to="loc_cgnx_CashCashEquivalentsShortTermAndLongTermInvestments_D21E99836CE0B6413875F3C9002292C3" xlink:type="arc" />
  </link:presentationLink>
  <link:presentationLink xlink:role="http://cognex.com/role/CashCashEquivalentsAndInvestmentsEffectiveMaturityDatesOfAvailableForSaleInvestmentsDetail" xlink:type="extended">
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_CashAndCashEquivalentsAbstract" xlink:label="loc_us-gaap_CashAndCashEquivalentsAbstract_0A75D7B204B5C04F5481F3C8FFFD91AE" xlink:type="locator" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ScheduleOfAvailableForSaleSecuritiesTable" xlink:label="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesTable_9615E77BC202ED5DD39EF3C8FFFDEFF2" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_CashAndCashEquivalentsAbstract_0A75D7B204B5C04F5481F3C8FFFD91AE" xlink:to="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesTable_9615E77BC202ED5DD39EF3C8FFFDEFF2" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_FinancialInstrumentAxis" xlink:label="loc_us-gaap_FinancialInstrumentAxis_C1C8C6D9F34637677CC6F3C8FFFD3724" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesTable_9615E77BC202ED5DD39EF3C8FFFDEFF2" xlink:to="loc_us-gaap_FinancialInstrumentAxis_C1C8C6D9F34637677CC6F3C8FFFD3724" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain" xlink:label="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_32AC84320778231DAFD1F3C8FFFD2B12" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FinancialInstrumentAxis_C1C8C6D9F34637677CC6F3C8FFFD3724" xlink:to="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_32AC84320778231DAFD1F3C8FFFD2B12" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_USTreasurySecuritiesMember" xlink:label="loc_us-gaap_USTreasurySecuritiesMember_26B8F17F6EB381A61578F3C8FFFE3021" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_32AC84320778231DAFD1F3C8FFFD2B12" xlink:to="loc_us-gaap_USTreasurySecuritiesMember_26B8F17F6EB381A61578F3C8FFFE3021" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_CorporateBondSecuritiesMember" xlink:label="loc_us-gaap_CorporateBondSecuritiesMember_C2DC526434DBFFDB3323F3C8FFFE859F" xlink:type="locator" />
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_32AC84320778231DAFD1F3C8FFFD2B12" xlink:to="loc_us-gaap_CorporateBondSecuritiesMember_C2DC526434DBFFDB3323F3C8FFFE859F" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_AssetBackedSecuritiesMember" xlink:label="loc_us-gaap_AssetBackedSecuritiesMember_849DD5284725175BAEEDF3C8FFFE745E" xlink:type="locator" />
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_32AC84320778231DAFD1F3C8FFFD2B12" xlink:to="loc_us-gaap_AssetBackedSecuritiesMember_849DD5284725175BAEEDF3C8FFFE745E" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_SovereignDebtSecuritiesMember" xlink:label="loc_us-gaap_SovereignDebtSecuritiesMember_794110867F610A930343F3C8FFFEB301" xlink:type="locator" />
    <link:presentationArc order="4" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_32AC84320778231DAFD1F3C8FFFD2B12" xlink:to="loc_us-gaap_SovereignDebtSecuritiesMember_794110867F610A930343F3C8FFFEB301" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_MunicipalBondsMember" xlink:label="loc_us-gaap_MunicipalBondsMember_33F8BC26E13487951015F3C8FFFF4970" xlink:type="locator" />
    <link:presentationArc order="5" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_32AC84320778231DAFD1F3C8FFFD2B12" xlink:to="loc_us-gaap_MunicipalBondsMember_33F8BC26E13487951015F3C8FFFF4970" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_AgencyBondsMember" xlink:label="loc_cgnx_AgencyBondsMember_29DDFCFC1A1EE8CD7BCAF3C8FFFE08C9" xlink:type="locator" />
    <link:presentationArc order="6" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_32AC84320778231DAFD1F3C8FFFD2B12" xlink:to="loc_cgnx_AgencyBondsMember_29DDFCFC1A1EE8CD7BCAF3C8FFFE08C9" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems" xlink:label="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_2EC4776CE6C216A35CC1F3C8FFFF13A5" xlink:type="locator" />
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesTable_9615E77BC202ED5DD39EF3C8FFFDEFF2" xlink:to="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_2EC4776CE6C216A35CC1F3C8FFFF13A5" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_AvailableForSaleSecuritiesDebtMaturitiesWithinOneYearFairValue" xlink:label="loc_us-gaap_AvailableForSaleSecuritiesDebtMaturitiesWithinOneYearFairValue_85301040D5566C243BC7F3C8FFFFF030" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_2EC4776CE6C216A35CC1F3C8FFFF13A5" xlink:to="loc_us-gaap_AvailableForSaleSecuritiesDebtMaturitiesWithinOneYearFairValue_85301040D5566C243BC7F3C8FFFFF030" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterOneYearBeforeTwoYearsFairValue" xlink:label="loc_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterOneYearBeforeTwoYearsFairValue_9069B0623FBFC2BFEEE5F3C8FFFFDB7C" xlink:type="locator" />
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_2EC4776CE6C216A35CC1F3C8FFFF13A5" xlink:to="loc_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterOneYearBeforeTwoYearsFairValue_9069B0623FBFC2BFEEE5F3C8FFFFDB7C" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterTwoYearsBeforeThreeYearsFairValue" xlink:label="loc_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterTwoYearsBeforeThreeYearsFairValue_16DF33ED3A30E4AF4255F3C8FFFFEE9E" xlink:type="locator" />
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_2EC4776CE6C216A35CC1F3C8FFFF13A5" xlink:to="loc_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterTwoYearsBeforeThreeYearsFairValue_16DF33ED3A30E4AF4255F3C8FFFFEE9E" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterThreeYearsBeforeFourYearsFairValue" xlink:label="loc_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterThreeYearsBeforeFourYearsFairValue_52F72B3B6AEF080A2D70F3C8FFFF0EBA" xlink:type="locator" />
    <link:presentationArc order="4" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_2EC4776CE6C216A35CC1F3C8FFFF13A5" xlink:to="loc_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterThreeYearsBeforeFourYearsFairValue_52F72B3B6AEF080A2D70F3C8FFFF0EBA" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterFourYearsBeforeFiveYearsFairValue" xlink:label="loc_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterFourYearsBeforeFiveYearsFairValue_32E87E987C989EEA606BF3C90000D3E0" xlink:type="locator" />
    <link:presentationArc order="5" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_2EC4776CE6C216A35CC1F3C8FFFF13A5" xlink:to="loc_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterFourYearsBeforeFiveYearsFairValue_32E87E987C989EEA606BF3C90000D3E0" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_AvailableForSaleSecuritiesDebtSecurities" xlink:label="loc_us-gaap_AvailableForSaleSecuritiesDebtSecurities_0ACA170D48AB715F8EB7F3C90000CFF8" xlink:type="locator" />
    <link:presentationArc order="6" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_2EC4776CE6C216A35CC1F3C8FFFF13A5" xlink:to="loc_us-gaap_AvailableForSaleSecuritiesDebtSecurities_0ACA170D48AB715F8EB7F3C90000CFF8" xlink:type="arc" />
  </link:presentationLink>
  <link:presentationLink xlink:role="http://cognex.com/role/CashCashEquivalentsAndInvestmentsGrossUnrealizedLossesAndFairValueForAvailableForSaleInvestmentsDetail" xlink:type="extended">
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_CashAndCashEquivalentsAbstract" xlink:label="loc_us-gaap_CashAndCashEquivalentsAbstract_7D4075AE2DE267E9B62EF3C90007CB75" xlink:type="locator" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ScheduleOfAvailableForSaleSecuritiesTable" xlink:label="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesTable_4071458D62E610A759E7F3C90007D751" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_CashAndCashEquivalentsAbstract_7D4075AE2DE267E9B62EF3C90007CB75" xlink:to="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesTable_4071458D62E610A759E7F3C90007D751" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_FinancialInstrumentAxis" xlink:label="loc_us-gaap_FinancialInstrumentAxis_43F954601FFD2287887EF3C900097F73" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesTable_4071458D62E610A759E7F3C90007D751" xlink:to="loc_us-gaap_FinancialInstrumentAxis_43F954601FFD2287887EF3C900097F73" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain" xlink:label="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_83A0A1CEE115185C5F85F3C90009D390" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FinancialInstrumentAxis_43F954601FFD2287887EF3C900097F73" xlink:to="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_83A0A1CEE115185C5F85F3C90009D390" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_USTreasurySecuritiesMember" xlink:label="loc_us-gaap_USTreasurySecuritiesMember_DCF8C3D98D6749641EF7F3C900093D73" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_83A0A1CEE115185C5F85F3C90009D390" xlink:to="loc_us-gaap_USTreasurySecuritiesMember_DCF8C3D98D6749641EF7F3C900093D73" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_AssetBackedSecuritiesMember" xlink:label="loc_us-gaap_AssetBackedSecuritiesMember_F544F7D2215DC60FC2DBF3C9000A44BF" xlink:type="locator" />
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_83A0A1CEE115185C5F85F3C90009D390" xlink:to="loc_us-gaap_AssetBackedSecuritiesMember_F544F7D2215DC60FC2DBF3C9000A44BF" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_SovereignDebtSecuritiesMember" xlink:label="loc_us-gaap_SovereignDebtSecuritiesMember_44E5202E5BF6326749FCF3C9000A3D88" xlink:type="locator" />
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_83A0A1CEE115185C5F85F3C90009D390" xlink:to="loc_us-gaap_SovereignDebtSecuritiesMember_44E5202E5BF6326749FCF3C9000A3D88" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_CorporateBondSecuritiesMember" xlink:label="loc_us-gaap_CorporateBondSecuritiesMember_1452F318A43467745EFFF3C900090CA3" xlink:type="locator" />
    <link:presentationArc order="4" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_83A0A1CEE115185C5F85F3C90009D390" xlink:to="loc_us-gaap_CorporateBondSecuritiesMember_1452F318A43467745EFFF3C900090CA3" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_AgencyBondsMember" xlink:label="loc_cgnx_AgencyBondsMember_85FEA093090C0B364A65F3C9000A1540" xlink:type="locator" />
    <link:presentationArc order="5" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_83A0A1CEE115185C5F85F3C90009D390" xlink:to="loc_cgnx_AgencyBondsMember_85FEA093090C0B364A65F3C9000A1540" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_MunicipalBondsMember" xlink:label="loc_us-gaap_MunicipalBondsMember_3B0D2D1AC1C559E32B25F3C9000A85C7" xlink:type="locator" />
    <link:presentationArc order="6" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_83A0A1CEE115185C5F85F3C90009D390" xlink:to="loc_us-gaap_MunicipalBondsMember_3B0D2D1AC1C559E32B25F3C9000A85C7" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems" xlink:label="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_D1072BEB1BCEEF4ED4D0F3C9000AD2C4" xlink:type="locator" />
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesTable_4071458D62E610A759E7F3C90007D751" xlink:to="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_D1072BEB1BCEEF4ED4D0F3C9000AD2C4" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionLessThanTwelveMonthsFairValue" xlink:label="loc_us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionLessThanTwelveMonthsFairValue_65BA618C0CEE7227B09DF3C9000BBEEE" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_D1072BEB1BCEEF4ED4D0F3C9000AD2C4" xlink:to="loc_us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionLessThanTwelveMonthsFairValue_65BA618C0CEE7227B09DF3C9000BBEEE" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionLessThan12MonthsAccumulatedLoss" xlink:label="loc_us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionLessThan12MonthsAccumulatedLoss_569D48D491B4664E780BF3C9000B2ACB" xlink:type="locator" />
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_D1072BEB1BCEEF4ED4D0F3C9000AD2C4" xlink:to="loc_us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionLessThan12MonthsAccumulatedLoss_569D48D491B4664E780BF3C9000B2ACB" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionTwelveMonthsOrLongerFairValue" xlink:label="loc_us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionTwelveMonthsOrLongerFairValue_55305730F58E0D71D271F3C9000BE46D" xlink:type="locator" />
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_D1072BEB1BCEEF4ED4D0F3C9000AD2C4" xlink:to="loc_us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionTwelveMonthsOrLongerFairValue_55305730F58E0D71D271F3C9000BE46D" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPosition12MonthsOrLongerAccumulatedLoss" xlink:label="loc_us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPosition12MonthsOrLongerAccumulatedLoss_4CD1F340F5710A567732F3C9000BDEAC" xlink:type="locator" />
    <link:presentationArc order="4" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_D1072BEB1BCEEF4ED4D0F3C9000AD2C4" xlink:to="loc_us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPosition12MonthsOrLongerAccumulatedLoss_4CD1F340F5710A567732F3C9000BDEAC" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionFairValue" xlink:label="loc_us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionFairValue_6BCCCA2762B5BD0AC998F3C9000B023F" xlink:type="locator" />
    <link:presentationArc order="5" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_D1072BEB1BCEEF4ED4D0F3C9000AD2C4" xlink:to="loc_us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionFairValue_6BCCCA2762B5BD0AC998F3C9000B023F" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionAccumulatedLoss" xlink:label="loc_us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionAccumulatedLoss_FF593012F2BC28C4D726F3C9000C3B24" xlink:type="locator" />
    <link:presentationArc order="6" preferredLabel="http://www.xbrl.org/2009/role/negatedTotalLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_D1072BEB1BCEEF4ED4D0F3C9000AD2C4" xlink:to="loc_us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionAccumulatedLoss_FF593012F2BC28C4D726F3C9000C3B24" xlink:type="arc" />
  </link:presentationLink>
  <link:presentationLink xlink:role="http://cognex.com/role/CashCashEquivalentsAndInvestmentsTables" xlink:type="extended">
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_CashAndCashEquivalentsAbstract" xlink:label="loc_us-gaap_CashAndCashEquivalentsAbstract_569926529650AF1FC3718095E5DC0F15" xlink:type="locator" />
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_ComponentsOfCashCashEquivalentsAndInvestmentsTableTableTextBlock" xlink:label="loc_cgnx_ComponentsOfCashCashEquivalentsAndInvestmentsTableTableTextBlock_AAD0C642C5E115B95A988095E5DCD5A0" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_CashAndCashEquivalentsAbstract_569926529650AF1FC3718095E5DC0F15" xlink:to="loc_cgnx_ComponentsOfCashCashEquivalentsAndInvestmentsTableTableTextBlock_AAD0C642C5E115B95A988095E5DCD5A0" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ScheduleOfAvailableForSaleSecuritiesReconciliationTableTextBlock" xlink:label="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesReconciliationTableTextBlock_2F35A5E5AA4CE117F3638095E5DC6DBE" xlink:type="locator" />
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_CashAndCashEquivalentsAbstract_569926529650AF1FC3718095E5DC0F15" xlink:to="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesReconciliationTableTextBlock_2F35A5E5AA4CE117F3638095E5DC6DBE" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ScheduleOfUnrealizedLossOnInvestmentsTableTextBlock" xlink:label="loc_us-gaap_ScheduleOfUnrealizedLossOnInvestmentsTableTextBlock_DFD30C2EB1BE150382F18095E5DCA9C2" xlink:type="locator" />
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_CashAndCashEquivalentsAbstract_569926529650AF1FC3718095E5DC0F15" xlink:to="loc_us-gaap_ScheduleOfUnrealizedLossOnInvestmentsTableTextBlock_DFD30C2EB1BE150382F18095E5DCA9C2" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_InvestmentsClassifiedByContractualMaturityDateTableTextBlock" xlink:label="loc_us-gaap_InvestmentsClassifiedByContractualMaturityDateTableTextBlock_9462466E918029BE01B78095E5DC0C96" xlink:type="locator" />
    <link:presentationArc order="4" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_CashAndCashEquivalentsAbstract_569926529650AF1FC3718095E5DC0F15" xlink:to="loc_us-gaap_InvestmentsClassifiedByContractualMaturityDateTableTextBlock_9462466E918029BE01B78095E5DC0C96" xlink:type="arc" />
  </link:presentationLink>
  <link:presentationLink xlink:role="http://cognex.com/role/CommitmentsAndContingencies" xlink:type="extended">
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_CommitmentsAndContingenciesDisclosureAbstract" xlink:label="loc_us-gaap_CommitmentsAndContingenciesDisclosureAbstract_4F7DCCD416330E689D848095E6BDB3D2" xlink:type="locator" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_CommitmentsAndContingenciesDisclosureTextBlock" xlink:label="loc_us-gaap_CommitmentsAndContingenciesDisclosureTextBlock_9BBF8F3563B6C3DB80D58095E6BDEF7F" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_CommitmentsAndContingenciesDisclosureAbstract_4F7DCCD416330E689D848095E6BDB3D2" xlink:to="loc_us-gaap_CommitmentsAndContingenciesDisclosureTextBlock_9BBF8F3563B6C3DB80D58095E6BDEF7F" xlink:type="arc" />
  </link:presentationLink>
  <link:presentationLink xlink:role="http://cognex.com/role/CommitmentsAndContingenciesAdditionalInformationDetail" xlink:type="extended">
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_CommitmentsAndContingenciesDisclosureAbstract" xlink:label="loc_us-gaap_CommitmentsAndContingenciesDisclosureAbstract_01AF60CD364E5162010835BF86658726" xlink:type="locator" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_PurchaseCommitmentRemainingMinimumAmountCommitted" xlink:label="loc_us-gaap_PurchaseCommitmentRemainingMinimumAmountCommitted_AC784B58F6429A50706C35BF8665E8B5" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_CommitmentsAndContingenciesDisclosureAbstract_01AF60CD364E5162010835BF86658726" xlink:to="loc_us-gaap_PurchaseCommitmentRemainingMinimumAmountCommitted_AC784B58F6429A50706C35BF8665E8B5" xlink:type="arc" />
  </link:presentationLink>
  <link:presentationLink xlink:role="http://cognex.com/role/ConsolidatedBalanceSheets" xlink:type="extended">
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_StatementOfFinancialPositionAbstract" xlink:label="loc_us-gaap_StatementOfFinancialPositionAbstract_18FD52F10C25719C261030EA0FBBF5B1" xlink:type="locator" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_AssetsAbstract" xlink:label="loc_us-gaap_AssetsAbstract_19A9541187710483DE6C30EA0FC41C35" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StatementOfFinancialPositionAbstract_18FD52F10C25719C261030EA0FBBF5B1" xlink:to="loc_us-gaap_AssetsAbstract_19A9541187710483DE6C30EA0FC41C35" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_AssetsCurrentAbstract" xlink:label="loc_us-gaap_AssetsCurrentAbstract_4CBB40E0C82817A0DF4230EA0FC6AFAE" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AssetsAbstract_19A9541187710483DE6C30EA0FC41C35" xlink:to="loc_us-gaap_AssetsCurrentAbstract_4CBB40E0C82817A0DF4230EA0FC6AFAE" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_CashAndCashEquivalentsAtCarryingValue" xlink:label="loc_us-gaap_CashAndCashEquivalentsAtCarryingValue_9F0563D0665861917C0330EA0FD058CA" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AssetsCurrentAbstract_4CBB40E0C82817A0DF4230EA0FC6AFAE" xlink:to="loc_us-gaap_CashAndCashEquivalentsAtCarryingValue_9F0563D0665861917C0330EA0FD058CA" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_AvailableForSaleSecuritiesDebtSecuritiesCurrent" xlink:label="loc_us-gaap_AvailableForSaleSecuritiesDebtSecuritiesCurrent_4975F11F7AF6096F9D5430EA0FD21FB9" xlink:type="locator" />
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AssetsCurrentAbstract_4CBB40E0C82817A0DF4230EA0FC6AFAE" xlink:to="loc_us-gaap_AvailableForSaleSecuritiesDebtSecuritiesCurrent_4975F11F7AF6096F9D5430EA0FD21FB9" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_AccountsReceivableNetCurrent" xlink:label="loc_us-gaap_AccountsReceivableNetCurrent_4D7165DD2734E82C63A830EA0FD31F10" xlink:type="locator" />
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AssetsCurrentAbstract_4CBB40E0C82817A0DF4230EA0FC6AFAE" xlink:to="loc_us-gaap_AccountsReceivableNetCurrent_4D7165DD2734E82C63A830EA0FD31F10" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_UnbilledReceivablesCurrent" xlink:label="loc_us-gaap_UnbilledReceivablesCurrent_98DB42A3330D4D3ABD1C30EA0FD89672" xlink:type="locator" />
    <link:presentationArc order="4" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AssetsCurrentAbstract_4CBB40E0C82817A0DF4230EA0FC6AFAE" xlink:to="loc_us-gaap_UnbilledReceivablesCurrent_98DB42A3330D4D3ABD1C30EA0FD89672" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_InventoryNet" xlink:label="loc_us-gaap_InventoryNet_1A26291B2DC637B4AB9D30EA0FD89CE5" xlink:type="locator" />
    <link:presentationArc order="5" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AssetsCurrentAbstract_4CBB40E0C82817A0DF4230EA0FC6AFAE" xlink:to="loc_us-gaap_InventoryNet_1A26291B2DC637B4AB9D30EA0FD89CE5" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_PrepaidExpenseAndOtherAssetsCurrent" xlink:label="loc_us-gaap_PrepaidExpenseAndOtherAssetsCurrent_F3D683F93633646F13F330EA0FD9FCE1" xlink:type="locator" />
    <link:presentationArc order="6" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AssetsCurrentAbstract_4CBB40E0C82817A0DF4230EA0FC6AFAE" xlink:to="loc_us-gaap_PrepaidExpenseAndOtherAssetsCurrent_F3D683F93633646F13F330EA0FD9FCE1" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_AssetsCurrent" xlink:label="loc_us-gaap_AssetsCurrent_44A855462DDB02DCDA1230EA0FD99C50" xlink:type="locator" />
    <link:presentationArc order="7" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AssetsCurrentAbstract_4CBB40E0C82817A0DF4230EA0FC6AFAE" xlink:to="loc_us-gaap_AssetsCurrent_44A855462DDB02DCDA1230EA0FD99C50" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_LongTermInvestments" xlink:label="loc_us-gaap_LongTermInvestments_AF87BD3622B26134D03C30EA0FD99EBA" xlink:type="locator" />
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AssetsAbstract_19A9541187710483DE6C30EA0FC41C35" xlink:to="loc_us-gaap_LongTermInvestments_AF87BD3622B26134D03C30EA0FD99EBA" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_PropertyPlantAndEquipmentNet" xlink:label="loc_us-gaap_PropertyPlantAndEquipmentNet_9C07E92ED9133188B75530EA0FD99A9A" xlink:type="locator" />
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AssetsAbstract_19A9541187710483DE6C30EA0FC41C35" xlink:to="loc_us-gaap_PropertyPlantAndEquipmentNet_9C07E92ED9133188B75530EA0FD99A9A" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_OperatingLeaseRightOfUseAsset" xlink:label="loc_us-gaap_OperatingLeaseRightOfUseAsset_151692BEF5053D197CE430EA0FD931F3" xlink:type="locator" />
    <link:presentationArc order="4" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AssetsAbstract_19A9541187710483DE6C30EA0FC41C35" xlink:to="loc_us-gaap_OperatingLeaseRightOfUseAsset_151692BEF5053D197CE430EA0FD931F3" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_Goodwill" xlink:label="loc_us-gaap_Goodwill_DFDD045416B8F142D46430EA0FD9D42D" xlink:type="locator" />
    <link:presentationArc order="5" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AssetsAbstract_19A9541187710483DE6C30EA0FC41C35" xlink:to="loc_us-gaap_Goodwill_DFDD045416B8F142D46430EA0FD9D42D" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_IntangibleAssetsNetExcludingGoodwill" xlink:label="loc_us-gaap_IntangibleAssetsNetExcludingGoodwill_6296E535267758D5ED7330EA1310A064" xlink:type="locator" />
    <link:presentationArc order="6" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AssetsAbstract_19A9541187710483DE6C30EA0FC41C35" xlink:to="loc_us-gaap_IntangibleAssetsNetExcludingGoodwill_6296E535267758D5ED7330EA1310A064" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_DeferredTaxAssetsNetNoncurrent" xlink:label="loc_us-gaap_DeferredTaxAssetsNetNoncurrent_26603E045FD3E5ED11FE30EA0FDAC01A" xlink:type="locator" />
    <link:presentationArc order="7" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AssetsAbstract_19A9541187710483DE6C30EA0FC41C35" xlink:to="loc_us-gaap_DeferredTaxAssetsNetNoncurrent_26603E045FD3E5ED11FE30EA0FDAC01A" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_OtherAssetsNoncurrent" xlink:label="loc_us-gaap_OtherAssetsNoncurrent_765D6D795185962B2BBD30EA0FDAC1C6" xlink:type="locator" />
    <link:presentationArc order="8" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AssetsAbstract_19A9541187710483DE6C30EA0FC41C35" xlink:to="loc_us-gaap_OtherAssetsNoncurrent_765D6D795185962B2BBD30EA0FDAC1C6" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_Assets" xlink:label="loc_us-gaap_Assets_A893EB27B740CB97D31630EA0FDAE19C" xlink:type="locator" />
    <link:presentationArc order="9" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AssetsAbstract_19A9541187710483DE6C30EA0FC41C35" xlink:to="loc_us-gaap_Assets_A893EB27B740CB97D31630EA0FDAE19C" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_LiabilitiesAndStockholdersEquityAbstract" xlink:label="loc_us-gaap_LiabilitiesAndStockholdersEquityAbstract_DA9B869E80FF0FC7099630EA0FDA3275" xlink:type="locator" />
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StatementOfFinancialPositionAbstract_18FD52F10C25719C261030EA0FBBF5B1" xlink:to="loc_us-gaap_LiabilitiesAndStockholdersEquityAbstract_DA9B869E80FF0FC7099630EA0FDA3275" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_LiabilitiesCurrentAbstract" xlink:label="loc_us-gaap_LiabilitiesCurrentAbstract_FB6D4F67307C8DA126D430EA0FDA8F07" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LiabilitiesAndStockholdersEquityAbstract_DA9B869E80FF0FC7099630EA0FDA3275" xlink:to="loc_us-gaap_LiabilitiesCurrentAbstract_FB6D4F67307C8DA126D430EA0FDA8F07" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_AccountsPayableCurrent" xlink:label="loc_us-gaap_AccountsPayableCurrent_B77BA950764C2F96A52130EA0FDBAAEC" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LiabilitiesCurrentAbstract_FB6D4F67307C8DA126D430EA0FDA8F07" xlink:to="loc_us-gaap_AccountsPayableCurrent_B77BA950764C2F96A52130EA0FDBAAEC" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_AccruedLiabilitiesCurrent" xlink:label="loc_us-gaap_AccruedLiabilitiesCurrent_16A9425CAC318092DEF230EA0FDBC1CD" xlink:type="locator" />
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LiabilitiesCurrentAbstract_FB6D4F67307C8DA126D430EA0FDA8F07" xlink:to="loc_us-gaap_AccruedLiabilitiesCurrent_16A9425CAC318092DEF230EA0FDBC1CD" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_AccruedIncomeTaxesCurrent" xlink:label="loc_us-gaap_AccruedIncomeTaxesCurrent_127AD0F1ED273033DC5130EA0FDB6941" xlink:type="locator" />
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LiabilitiesCurrentAbstract_FB6D4F67307C8DA126D430EA0FDA8F07" xlink:to="loc_us-gaap_AccruedIncomeTaxesCurrent_127AD0F1ED273033DC5130EA0FDB6941" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ContractWithCustomerLiabilityCurrent" xlink:label="loc_us-gaap_ContractWithCustomerLiabilityCurrent_00C2D10E2D4CAFD2909C30EA0FDB1E28" xlink:type="locator" />
    <link:presentationArc order="4" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LiabilitiesCurrentAbstract_FB6D4F67307C8DA126D430EA0FDA8F07" xlink:to="loc_us-gaap_ContractWithCustomerLiabilityCurrent_00C2D10E2D4CAFD2909C30EA0FDB1E28" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_OperatingLeaseLiabilityCurrent" xlink:label="loc_us-gaap_OperatingLeaseLiabilityCurrent_17BDDED352301993E10F30EA0FDB6065" xlink:type="locator" />
    <link:presentationArc order="5" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LiabilitiesCurrentAbstract_FB6D4F67307C8DA126D430EA0FDA8F07" xlink:to="loc_us-gaap_OperatingLeaseLiabilityCurrent_17BDDED352301993E10F30EA0FDB6065" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_LiabilitiesCurrent" xlink:label="loc_us-gaap_LiabilitiesCurrent_FD8DAD5D6C012B00D3B130EA0FDC5C5F" xlink:type="locator" />
    <link:presentationArc order="6" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LiabilitiesCurrentAbstract_FB6D4F67307C8DA126D430EA0FDA8F07" xlink:to="loc_us-gaap_LiabilitiesCurrent_FD8DAD5D6C012B00D3B130EA0FDC5C5F" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_OperatingLeaseLiabilityNoncurrent" xlink:label="loc_us-gaap_OperatingLeaseLiabilityNoncurrent_F6816FF8C7E7F731876A30EA0FDCAD44" xlink:type="locator" />
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LiabilitiesAndStockholdersEquityAbstract_DA9B869E80FF0FC7099630EA0FDA3275" xlink:to="loc_us-gaap_OperatingLeaseLiabilityNoncurrent_F6816FF8C7E7F731876A30EA0FDCAD44" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_DeferredIncomeTaxLiabilitiesNet" xlink:label="loc_us-gaap_DeferredIncomeTaxLiabilitiesNet_B1E35C285B1DF80AA26330EA0FDC8F26" xlink:type="locator" />
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LiabilitiesAndStockholdersEquityAbstract_DA9B869E80FF0FC7099630EA0FDA3275" xlink:to="loc_us-gaap_DeferredIncomeTaxLiabilitiesNet_B1E35C285B1DF80AA26330EA0FDC8F26" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_LiabilityForUncertainTaxPositionsNoncurrent" xlink:label="loc_us-gaap_LiabilityForUncertainTaxPositionsNoncurrent_BD40F0DBF651C05CD1A330EA0FDC65BD" xlink:type="locator" />
    <link:presentationArc order="4" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LiabilitiesAndStockholdersEquityAbstract_DA9B869E80FF0FC7099630EA0FDA3275" xlink:to="loc_us-gaap_LiabilityForUncertainTaxPositionsNoncurrent_BD40F0DBF651C05CD1A330EA0FDC65BD" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_AccruedIncomeTaxesNoncurrent" xlink:label="loc_us-gaap_AccruedIncomeTaxesNoncurrent_576EA47C3341B3DAA3BD30EA0FDCCD49" xlink:type="locator" />
    <link:presentationArc order="5" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LiabilitiesAndStockholdersEquityAbstract_DA9B869E80FF0FC7099630EA0FDA3275" xlink:to="loc_us-gaap_AccruedIncomeTaxesNoncurrent_576EA47C3341B3DAA3BD30EA0FDCCD49" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_OtherLiabilitiesNoncurrent" xlink:label="loc_us-gaap_OtherLiabilitiesNoncurrent_0EA34AA9A28AA26E83C830EA0FDC4149" xlink:type="locator" />
    <link:presentationArc order="6" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LiabilitiesAndStockholdersEquityAbstract_DA9B869E80FF0FC7099630EA0FDA3275" xlink:to="loc_us-gaap_OtherLiabilitiesNoncurrent_0EA34AA9A28AA26E83C830EA0FDC4149" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_Liabilities" xlink:label="loc_us-gaap_Liabilities_53C00663C69F7C04B31230EA0FDDF7AD" xlink:type="locator" />
    <link:presentationArc order="7" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LiabilitiesAndStockholdersEquityAbstract_DA9B869E80FF0FC7099630EA0FDA3275" xlink:to="loc_us-gaap_Liabilities_53C00663C69F7C04B31230EA0FDDF7AD" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_CommitmentsAndContingencies" xlink:label="loc_us-gaap_CommitmentsAndContingencies_ADA29434F2AB24A117E730EA0FDDFAFD" xlink:type="locator" />
    <link:presentationArc order="8" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LiabilitiesAndStockholdersEquityAbstract_DA9B869E80FF0FC7099630EA0FDA3275" xlink:to="loc_us-gaap_CommitmentsAndContingencies_ADA29434F2AB24A117E730EA0FDDFAFD" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_StockholdersEquityAbstract" xlink:label="loc_us-gaap_StockholdersEquityAbstract_5B6F969DE5E0CA05DE4530EA0FDD697C" xlink:type="locator" />
    <link:presentationArc order="9" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LiabilitiesAndStockholdersEquityAbstract_DA9B869E80FF0FC7099630EA0FDA3275" xlink:to="loc_us-gaap_StockholdersEquityAbstract_5B6F969DE5E0CA05DE4530EA0FDD697C" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_PreferredStockValueOutstanding" xlink:label="loc_us-gaap_PreferredStockValueOutstanding_E054E61489DDFB338D6530EA0FDDE4EA" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StockholdersEquityAbstract_5B6F969DE5E0CA05DE4530EA0FDD697C" xlink:to="loc_us-gaap_PreferredStockValueOutstanding_E054E61489DDFB338D6530EA0FDDE4EA" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_CommonStockValueOutstanding" xlink:label="loc_us-gaap_CommonStockValueOutstanding_4300F6A22C4414D445D830EA0FDD150E" xlink:type="locator" />
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StockholdersEquityAbstract_5B6F969DE5E0CA05DE4530EA0FDD697C" xlink:to="loc_us-gaap_CommonStockValueOutstanding_4300F6A22C4414D445D830EA0FDD150E" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_AdditionalPaidInCapitalCommonStock" xlink:label="loc_us-gaap_AdditionalPaidInCapitalCommonStock_4CA181B56FB2BAFB0BCF30EA0FDDE233" xlink:type="locator" />
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StockholdersEquityAbstract_5B6F969DE5E0CA05DE4530EA0FDD697C" xlink:to="loc_us-gaap_AdditionalPaidInCapitalCommonStock_4CA181B56FB2BAFB0BCF30EA0FDDE233" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_RetainedEarningsAccumulatedDeficit" xlink:label="loc_us-gaap_RetainedEarningsAccumulatedDeficit_AC5F9FB0A20150D670DF30EA0FDE4A76" xlink:type="locator" />
    <link:presentationArc order="4" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StockholdersEquityAbstract_5B6F969DE5E0CA05DE4530EA0FDD697C" xlink:to="loc_us-gaap_RetainedEarningsAccumulatedDeficit_AC5F9FB0A20150D670DF30EA0FDE4A76" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax" xlink:label="loc_us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax_0B5F6E1DCCC22E02FA5830EA0FDE1AE3" xlink:type="locator" />
    <link:presentationArc order="5" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StockholdersEquityAbstract_5B6F969DE5E0CA05DE4530EA0FDD697C" xlink:to="loc_us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax_0B5F6E1DCCC22E02FA5830EA0FDE1AE3" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_StockholdersEquity" xlink:label="loc_us-gaap_StockholdersEquity_9B7D4DF7306B205E8D2630EA0FDE4714" xlink:type="locator" />
    <link:presentationArc order="6" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StockholdersEquityAbstract_5B6F969DE5E0CA05DE4530EA0FDD697C" xlink:to="loc_us-gaap_StockholdersEquity_9B7D4DF7306B205E8D2630EA0FDE4714" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_LiabilitiesAndStockholdersEquity" xlink:label="loc_us-gaap_LiabilitiesAndStockholdersEquity_26C1C43CDFBDB69CA4E130EA0FDE7D39" xlink:type="locator" />
    <link:presentationArc order="10" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LiabilitiesAndStockholdersEquityAbstract_DA9B869E80FF0FC7099630EA0FDA3275" xlink:to="loc_us-gaap_LiabilitiesAndStockholdersEquity_26C1C43CDFBDB69CA4E130EA0FDE7D39" xlink:type="arc" />
  </link:presentationLink>
  <link:presentationLink xlink:role="http://cognex.com/role/ConsolidatedBalanceSheetsParenthetical" xlink:type="extended">
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_StatementOfFinancialPositionAbstract" xlink:label="loc_us-gaap_StatementOfFinancialPositionAbstract_29D763211F35808ECE40F3C900A0816F" xlink:type="locator" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ValuationAllowancesAndReservesBalance" xlink:label="loc_us-gaap_ValuationAllowancesAndReservesBalance_D4D86505D2F1591A2A3EF3C900A01D3E" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StatementOfFinancialPositionAbstract_29D763211F35808ECE40F3C900A0816F" xlink:to="loc_us-gaap_ValuationAllowancesAndReservesBalance_D4D86505D2F1591A2A3EF3C900A01D3E" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_PreferredStockParOrStatedValuePerShare" xlink:label="loc_us-gaap_PreferredStockParOrStatedValuePerShare_104AC5C25391847D7905F3CF59CE62CD" xlink:type="locator" />
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StatementOfFinancialPositionAbstract_29D763211F35808ECE40F3C900A0816F" xlink:to="loc_us-gaap_PreferredStockParOrStatedValuePerShare_104AC5C25391847D7905F3CF59CE62CD" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_PreferredStockSharesAuthorized" xlink:label="loc_us-gaap_PreferredStockSharesAuthorized_B5C71390E4A72BBD8C9BF3CFA6A1B8DE" xlink:type="locator" />
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StatementOfFinancialPositionAbstract_29D763211F35808ECE40F3C900A0816F" xlink:to="loc_us-gaap_PreferredStockSharesAuthorized_B5C71390E4A72BBD8C9BF3CFA6A1B8DE" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_PreferredStockSharesIssued" xlink:label="loc_us-gaap_PreferredStockSharesIssued_21648348691CEF15FA46F3CFDCDA6AEC" xlink:type="locator" />
    <link:presentationArc order="4" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StatementOfFinancialPositionAbstract_29D763211F35808ECE40F3C900A0816F" xlink:to="loc_us-gaap_PreferredStockSharesIssued_21648348691CEF15FA46F3CFDCDA6AEC" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_PreferredStockSharesOutstanding" xlink:label="loc_us-gaap_PreferredStockSharesOutstanding_D0E5B8B5E5ED935386E7F3D02865E432" xlink:type="locator" />
    <link:presentationArc order="5" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StatementOfFinancialPositionAbstract_29D763211F35808ECE40F3C900A0816F" xlink:to="loc_us-gaap_PreferredStockSharesOutstanding_D0E5B8B5E5ED935386E7F3D02865E432" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_CommonStockParOrStatedValuePerShare" xlink:label="loc_us-gaap_CommonStockParOrStatedValuePerShare_8AB1DEF12E50DB747686F3C900A04E60" xlink:type="locator" />
    <link:presentationArc order="6" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StatementOfFinancialPositionAbstract_29D763211F35808ECE40F3C900A0816F" xlink:to="loc_us-gaap_CommonStockParOrStatedValuePerShare_8AB1DEF12E50DB747686F3C900A04E60" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_CommonStockSharesAuthorized" xlink:label="loc_us-gaap_CommonStockSharesAuthorized_149E7BFFAB6EB9EF1372F3C900A0152B" xlink:type="locator" />
    <link:presentationArc order="7" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StatementOfFinancialPositionAbstract_29D763211F35808ECE40F3C900A0816F" xlink:to="loc_us-gaap_CommonStockSharesAuthorized_149E7BFFAB6EB9EF1372F3C900A0152B" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_CommonStockSharesIssued" xlink:label="loc_us-gaap_CommonStockSharesIssued_384DDF1E994F34EDB4AFF3C900A0FD69" xlink:type="locator" />
    <link:presentationArc order="8" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StatementOfFinancialPositionAbstract_29D763211F35808ECE40F3C900A0816F" xlink:to="loc_us-gaap_CommonStockSharesIssued_384DDF1E994F34EDB4AFF3C900A0FD69" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_CommonStockSharesOutstanding" xlink:label="loc_us-gaap_CommonStockSharesOutstanding_695954DE0CABF0DA3978F3C900A0C021" xlink:type="locator" />
    <link:presentationArc order="9" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StatementOfFinancialPositionAbstract_29D763211F35808ECE40F3C900A0816F" xlink:to="loc_us-gaap_CommonStockSharesOutstanding_695954DE0CABF0DA3978F3C900A0C021" xlink:type="arc" />
  </link:presentationLink>
  <link:presentationLink xlink:role="http://cognex.com/role/ConsolidatedStatementsOfCashFlows" xlink:type="extended">
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_StatementOfCashFlowsAbstract" xlink:label="loc_us-gaap_StatementOfCashFlowsAbstract_82C8735C4EEEF732F1A535BFE4689D7B" xlink:type="locator" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract" xlink:label="loc_us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract_904007F902CE7D0CB4A435BFE469B700" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StatementOfCashFlowsAbstract_82C8735C4EEEF732F1A535BFE4689D7B" xlink:to="loc_us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract_904007F902CE7D0CB4A435BFE469B700" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_NetIncomeLoss" xlink:label="loc_us-gaap_NetIncomeLoss_0D1F07F9799CCAEA55B735BFE46902C4" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract_904007F902CE7D0CB4A435BFE469B700" xlink:to="loc_us-gaap_NetIncomeLoss_0D1F07F9799CCAEA55B735BFE46902C4" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract" xlink:label="loc_us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract_9B30DF06369B880BC69935BFE469CEC0" xlink:type="locator" />
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract_904007F902CE7D0CB4A435BFE469B700" xlink:to="loc_us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract_9B30DF06369B880BC69935BFE469CEC0" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_StockOptionPlanExpense" xlink:label="loc_us-gaap_StockOptionPlanExpense_44F466DD57FE173905DA35BFE46A1450" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract_9B30DF06369B880BC69935BFE469CEC0" xlink:to="loc_us-gaap_StockOptionPlanExpense_44F466DD57FE173905DA35BFE46A1450" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_Depreciation" xlink:label="loc_us-gaap_Depreciation_5B74832FC64675CA40BF35BFE46A9681" xlink:type="locator" />
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract_9B30DF06369B880BC69935BFE469CEC0" xlink:to="loc_us-gaap_Depreciation_5B74832FC64675CA40BF35BFE46A9681" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_AmortizationOfIntangibleAssets" xlink:label="loc_us-gaap_AmortizationOfIntangibleAssets_AEA5783BE0AC5178DA9235BFE46AEDCA" xlink:type="locator" />
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract_9B30DF06369B880BC69935BFE469CEC0" xlink:to="loc_us-gaap_AmortizationOfIntangibleAssets_AEA5783BE0AC5178DA9235BFE46AEDCA" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_AssetImpairmentCharges" xlink:label="loc_us-gaap_AssetImpairmentCharges_18D6063F716B9170282635BFE46AC55F" xlink:type="locator" />
    <link:presentationArc order="4" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract_9B30DF06369B880BC69935BFE469CEC0" xlink:to="loc_us-gaap_AssetImpairmentCharges_18D6063F716B9170282635BFE46AC55F" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_AccretionAmortizationOfDiscountsAndPremiumsInvestments" xlink:label="loc_us-gaap_AccretionAmortizationOfDiscountsAndPremiumsInvestments_88DF33F47FE669BF262235BFE46AB15F" xlink:type="locator" />
    <link:presentationArc order="5" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract_9B30DF06369B880BC69935BFE469CEC0" xlink:to="loc_us-gaap_AccretionAmortizationOfDiscountsAndPremiumsInvestments_88DF33F47FE669BF262235BFE46AB15F" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_GainLossOnSaleOfInvestments" xlink:label="loc_us-gaap_GainLossOnSaleOfInvestments_682FBBBA67E4BFD4205135BFE46B7318" xlink:type="locator" />
    <link:presentationArc order="6" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract_9B30DF06369B880BC69935BFE469CEC0" xlink:to="loc_us-gaap_GainLossOnSaleOfInvestments_682FBBBA67E4BFD4205135BFE46B7318" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1" xlink:label="loc_us-gaap_BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1_E745F1898C8F6D2E30BA35BFE46B401E" xlink:type="locator" />
    <link:presentationArc order="7" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract_9B30DF06369B880BC69935BFE469CEC0" xlink:to="loc_us-gaap_BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1_E745F1898C8F6D2E30BA35BFE46B401E" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_IncreaseDecreaseInDeferredIncomeTaxes" xlink:label="loc_us-gaap_IncreaseDecreaseInDeferredIncomeTaxes_E8519B32A984277923DB35BFE46BFBB1" xlink:type="locator" />
    <link:presentationArc order="8" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract_9B30DF06369B880BC69935BFE469CEC0" xlink:to="loc_us-gaap_IncreaseDecreaseInDeferredIncomeTaxes_E8519B32A984277923DB35BFE46BFBB1" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_IncreaseDecreaseInAccountsReceivable" xlink:label="loc_us-gaap_IncreaseDecreaseInAccountsReceivable_BC83B75BB673FD228C8035BFE46BE8E0" xlink:type="locator" />
    <link:presentationArc order="9" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract_9B30DF06369B880BC69935BFE469CEC0" xlink:to="loc_us-gaap_IncreaseDecreaseInAccountsReceivable_BC83B75BB673FD228C8035BFE46BE8E0" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_IncreaseDecreaseInUnbilledReceivables" xlink:label="loc_us-gaap_IncreaseDecreaseInUnbilledReceivables_48FC4963856350E302C535BFE46B81A0" xlink:type="locator" />
    <link:presentationArc order="10" preferredLabel="http://www.xbrl.org/2009/role/negatedTerseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract_9B30DF06369B880BC69935BFE469CEC0" xlink:to="loc_us-gaap_IncreaseDecreaseInUnbilledReceivables_48FC4963856350E302C535BFE46B81A0" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_IncreaseDecreaseInInventories" xlink:label="loc_us-gaap_IncreaseDecreaseInInventories_093ED1A1DE698011172B35BFE46B920B" xlink:type="locator" />
    <link:presentationArc order="11" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract_9B30DF06369B880BC69935BFE469CEC0" xlink:to="loc_us-gaap_IncreaseDecreaseInInventories_093ED1A1DE698011172B35BFE46B920B" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets" xlink:label="loc_us-gaap_IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets_FE452F517D8FBCAA5AC935BFE46B1C99" xlink:type="locator" />
    <link:presentationArc order="12" preferredLabel="http://www.xbrl.org/2009/role/negatedTerseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract_9B30DF06369B880BC69935BFE469CEC0" xlink:to="loc_us-gaap_IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets_FE452F517D8FBCAA5AC935BFE46B1C99" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_IncreaseDecreaseInAccountsPayable" xlink:label="loc_us-gaap_IncreaseDecreaseInAccountsPayable_448FD4C756E357F2064635BFE46CFEA5" xlink:type="locator" />
    <link:presentationArc order="13" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract_9B30DF06369B880BC69935BFE469CEC0" xlink:to="loc_us-gaap_IncreaseDecreaseInAccountsPayable_448FD4C756E357F2064635BFE46CFEA5" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_IncreaseDecreaseInAccruedLiabilities" xlink:label="loc_us-gaap_IncreaseDecreaseInAccruedLiabilities_00BBAE7CC60D808032EC35BFE46C8FB1" xlink:type="locator" />
    <link:presentationArc order="14" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract_9B30DF06369B880BC69935BFE469CEC0" xlink:to="loc_us-gaap_IncreaseDecreaseInAccruedLiabilities_00BBAE7CC60D808032EC35BFE46C8FB1" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_IncreaseDecreaseInAccruedIncomeTaxesPayable" xlink:label="loc_us-gaap_IncreaseDecreaseInAccruedIncomeTaxesPayable_40CDE35B771AD1B292F235BFE46C4D77" xlink:type="locator" />
    <link:presentationArc order="15" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract_9B30DF06369B880BC69935BFE469CEC0" xlink:to="loc_us-gaap_IncreaseDecreaseInAccruedIncomeTaxesPayable_40CDE35B771AD1B292F235BFE46C4D77" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_IncreaseDecreaseInDeferredRevenueAndCustomerAdvancesAndDeposits" xlink:label="loc_us-gaap_IncreaseDecreaseInDeferredRevenueAndCustomerAdvancesAndDeposits_05F84FE404A42D85C06D35BFE46CCBFA" xlink:type="locator" />
    <link:presentationArc order="16" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract_9B30DF06369B880BC69935BFE469CEC0" xlink:to="loc_us-gaap_IncreaseDecreaseInDeferredRevenueAndCustomerAdvancesAndDeposits_05F84FE404A42D85C06D35BFE46CCBFA" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_IncreaseDecreaseInOtherOperatingCapitalNet" xlink:label="loc_us-gaap_IncreaseDecreaseInOtherOperatingCapitalNet_2F9E4143EE8F8728E53635BFE46CC0F0" xlink:type="locator" />
    <link:presentationArc order="17" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract_9B30DF06369B880BC69935BFE469CEC0" xlink:to="loc_us-gaap_IncreaseDecreaseInOtherOperatingCapitalNet_2F9E4143EE8F8728E53635BFE46CC0F0" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_NetCashProvidedByUsedInOperatingActivities" xlink:label="loc_us-gaap_NetCashProvidedByUsedInOperatingActivities_25D3307BDA663126D4DE35BFE46D8375" xlink:type="locator" />
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract_904007F902CE7D0CB4A435BFE469B700" xlink:to="loc_us-gaap_NetCashProvidedByUsedInOperatingActivities_25D3307BDA663126D4DE35BFE46D8375" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract" xlink:label="loc_us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract_5BE2101299BA8BD9B10835BFE46D83B5" xlink:type="locator" />
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StatementOfCashFlowsAbstract_82C8735C4EEEF732F1A535BFE4689D7B" xlink:to="loc_us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract_5BE2101299BA8BD9B10835BFE46D83B5" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_PaymentsToAcquireInvestments" xlink:label="loc_us-gaap_PaymentsToAcquireInvestments_AE609CB91AD497652A8735BFE46DE31E" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract_5BE2101299BA8BD9B10835BFE46D83B5" xlink:to="loc_us-gaap_PaymentsToAcquireInvestments_AE609CB91AD497652A8735BFE46DE31E" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ProceedsFromSaleMaturityAndCollectionsOfInvestments" xlink:label="loc_us-gaap_ProceedsFromSaleMaturityAndCollectionsOfInvestments_4EDC5CBC6DE38B52CC4D35BFE46DF5D4" xlink:type="locator" />
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract_5BE2101299BA8BD9B10835BFE46D83B5" xlink:to="loc_us-gaap_ProceedsFromSaleMaturityAndCollectionsOfInvestments_4EDC5CBC6DE38B52CC4D35BFE46DF5D4" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_PaymentsToAcquirePropertyPlantAndEquipment" xlink:label="loc_us-gaap_PaymentsToAcquirePropertyPlantAndEquipment_0FACB4ADB5ED549319DF35BFE46D4FA2" xlink:type="locator" />
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract_5BE2101299BA8BD9B10835BFE46D83B5" xlink:to="loc_us-gaap_PaymentsToAcquirePropertyPlantAndEquipment_0FACB4ADB5ED549319DF35BFE46D4FA2" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired" xlink:label="loc_us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired_4874B9BCA05DADD4E50035BFE46E4402" xlink:type="locator" />
    <link:presentationArc order="4" preferredLabel="http://www.xbrl.org/2009/role/negatedTerseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract_5BE2101299BA8BD9B10835BFE46D83B5" xlink:to="loc_us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired_4874B9BCA05DADD4E50035BFE46E4402" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_PaymentsForProceedsFromBusinessesAndInterestInAffiliates" xlink:label="loc_us-gaap_PaymentsForProceedsFromBusinessesAndInterestInAffiliates_6FBAD81595D4491358DE35BFE46ED186" xlink:type="locator" />
    <link:presentationArc order="5" preferredLabel="http://www.xbrl.org/2009/role/negatedTerseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract_5BE2101299BA8BD9B10835BFE46D83B5" xlink:to="loc_us-gaap_PaymentsForProceedsFromBusinessesAndInterestInAffiliates_6FBAD81595D4491358DE35BFE46ED186" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_NetCashProvidedByUsedInInvestingActivities" xlink:label="loc_us-gaap_NetCashProvidedByUsedInInvestingActivities_68E2E823FCE7DBD8199A35BFE46E4730" xlink:type="locator" />
    <link:presentationArc order="6" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract_5BE2101299BA8BD9B10835BFE46D83B5" xlink:to="loc_us-gaap_NetCashProvidedByUsedInInvestingActivities_68E2E823FCE7DBD8199A35BFE46E4730" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract" xlink:label="loc_us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract_F1988A3A6D8DE70EB0B435BFE46E0610" xlink:type="locator" />
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StatementOfCashFlowsAbstract_82C8735C4EEEF732F1A535BFE4689D7B" xlink:to="loc_us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract_F1988A3A6D8DE70EB0B435BFE46E0610" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ProceedsFromIssuanceOfSharesUnderIncentiveAndShareBasedCompensationPlansIncludingStockOptions" xlink:label="loc_us-gaap_ProceedsFromIssuanceOfSharesUnderIncentiveAndShareBasedCompensationPlansIncludingStockOptions_C79A06E98D96908420AC35BFE46ED6FE" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract_F1988A3A6D8DE70EB0B435BFE46E0610" xlink:to="loc_us-gaap_ProceedsFromIssuanceOfSharesUnderIncentiveAndShareBasedCompensationPlansIncludingStockOptions_C79A06E98D96908420AC35BFE46ED6FE" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_PaymentsForRepurchaseOfCommonStock" xlink:label="loc_us-gaap_PaymentsForRepurchaseOfCommonStock_4F120F4AA17AD0C6DC0635BFE46F61D7" xlink:type="locator" />
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract_F1988A3A6D8DE70EB0B435BFE46E0610" xlink:to="loc_us-gaap_PaymentsForRepurchaseOfCommonStock_4F120F4AA17AD0C6DC0635BFE46F61D7" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_PaymentsOfDividendsCommonStock" xlink:label="loc_us-gaap_PaymentsOfDividendsCommonStock_0584BBF4CEB425C37AEE35BFE46F99BC" xlink:type="locator" />
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract_F1988A3A6D8DE70EB0B435BFE46E0610" xlink:to="loc_us-gaap_PaymentsOfDividendsCommonStock_0584BBF4CEB425C37AEE35BFE46F99BC" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_PaymentsForPreviousAcquisition" xlink:label="loc_us-gaap_PaymentsForPreviousAcquisition_7E36D0FC8FDC90EBA32F35BFE46F0B8B" xlink:type="locator" />
    <link:presentationArc order="4" preferredLabel="http://www.xbrl.org/2009/role/negatedTerseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract_F1988A3A6D8DE70EB0B435BFE46E0610" xlink:to="loc_us-gaap_PaymentsForPreviousAcquisition_7E36D0FC8FDC90EBA32F35BFE46F0B8B" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_NetCashProvidedByUsedInFinancingActivities" xlink:label="loc_us-gaap_NetCashProvidedByUsedInFinancingActivities_ED46AAD406FC9911B1A035BFE46FC24D" xlink:type="locator" />
    <link:presentationArc order="5" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract_F1988A3A6D8DE70EB0B435BFE46E0610" xlink:to="loc_us-gaap_NetCashProvidedByUsedInFinancingActivities_ED46AAD406FC9911B1A035BFE46FC24D" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_EffectOfExchangeRateOnCashAndCashEquivalents" xlink:label="loc_us-gaap_EffectOfExchangeRateOnCashAndCashEquivalents_E95BA6239B29A6BF8AF335BFE46FF157" xlink:type="locator" />
    <link:presentationArc order="4" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StatementOfCashFlowsAbstract_82C8735C4EEEF732F1A535BFE4689D7B" xlink:to="loc_us-gaap_EffectOfExchangeRateOnCashAndCashEquivalents_E95BA6239B29A6BF8AF335BFE46FF157" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_CashAndCashEquivalentsPeriodIncreaseDecrease" xlink:label="loc_us-gaap_CashAndCashEquivalentsPeriodIncreaseDecrease_11BBDA543D35AA1056B735BFE46F44BF" xlink:type="locator" />
    <link:presentationArc order="5" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StatementOfCashFlowsAbstract_82C8735C4EEEF732F1A535BFE4689D7B" xlink:to="loc_us-gaap_CashAndCashEquivalentsPeriodIncreaseDecrease_11BBDA543D35AA1056B735BFE46F44BF" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_CashAndCashEquivalentsAtCarryingValue" xlink:label="loc_us-gaap_CashAndCashEquivalentsAtCarryingValue_C2208881DDD2B4ED922435BFE4702AE5" xlink:type="locator" />
    <link:presentationArc order="6" preferredLabel="http://www.xbrl.org/2003/role/periodStartLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StatementOfCashFlowsAbstract_82C8735C4EEEF732F1A535BFE4689D7B" xlink:to="loc_us-gaap_CashAndCashEquivalentsAtCarryingValue_C2208881DDD2B4ED922435BFE4702AE5" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_CashAndCashEquivalentsAtCarryingValue" xlink:label="loc_us-gaap_CashAndCashEquivalentsAtCarryingValue_A1B2DD636E856ADEB84435BFE470F1A7" xlink:type="locator" />
    <link:presentationArc order="7" preferredLabel="http://www.xbrl.org/2003/role/periodEndLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StatementOfCashFlowsAbstract_82C8735C4EEEF732F1A535BFE4689D7B" xlink:to="loc_us-gaap_CashAndCashEquivalentsAtCarryingValue_A1B2DD636E856ADEB84435BFE470F1A7" xlink:type="arc" />
  </link:presentationLink>
  <link:presentationLink xlink:role="http://cognex.com/role/ConsolidatedStatementsOfComprehensiveIncome" xlink:type="extended">
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_StatementOfIncomeAndComprehensiveIncomeAbstract" xlink:label="loc_us-gaap_StatementOfIncomeAndComprehensiveIncomeAbstract_65866706C10D761FA25D170C96A55B1F" xlink:type="locator" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_NetIncomeLoss" xlink:label="loc_us-gaap_NetIncomeLoss_FA5EAD2CABF89B5E8F18170C96A5C029" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StatementOfIncomeAndComprehensiveIncomeAbstract_65866706C10D761FA25D170C96A55B1F" xlink:to="loc_us-gaap_NetIncomeLoss_FA5EAD2CABF89B5E8F18170C96A5C029" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_CashflowshedgesAbstract" xlink:label="loc_cgnx_CashflowshedgesAbstract_F7D4DF4AF9947FCBE4E8170C96A5825F" xlink:type="locator" />
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StatementOfIncomeAndComprehensiveIncomeAbstract_65866706C10D761FA25D170C96A55B1F" xlink:to="loc_cgnx_CashflowshedgesAbstract_F7D4DF4AF9947FCBE4E8170C96A5825F" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_OtherComprehensiveIncomeUnrealizedGainLossOnDerivativesArisingDuringPeriodNetOfTax" xlink:label="loc_us-gaap_OtherComprehensiveIncomeUnrealizedGainLossOnDerivativesArisingDuringPeriodNetOfTax_EF235A80673EE4860D3C170C96A5B7B0" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_cgnx_CashflowshedgesAbstract_F7D4DF4AF9947FCBE4E8170C96A5825F" xlink:to="loc_us-gaap_OtherComprehensiveIncomeUnrealizedGainLossOnDerivativesArisingDuringPeriodNetOfTax_EF235A80673EE4860D3C170C96A5B7B0" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIOnDerivativesNetOfTax" xlink:label="loc_us-gaap_OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIOnDerivativesNetOfTax_A46465053FEFAD31D9A8170C96A6A8DB" xlink:type="locator" />
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2009/role/negatedTerseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_cgnx_CashflowshedgesAbstract_F7D4DF4AF9947FCBE4E8170C96A5825F" xlink:to="loc_us-gaap_OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIOnDerivativesNetOfTax_A46465053FEFAD31D9A8170C96A6A8DB" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_OtherComprehensiveIncomeLossDerivativesQualifyingAsHedgesNetOfTax" xlink:label="loc_us-gaap_OtherComprehensiveIncomeLossDerivativesQualifyingAsHedgesNetOfTax_9A8E32DCDFE030FEAB6C170C96A6A785" xlink:type="locator" />
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_cgnx_CashflowshedgesAbstract_F7D4DF4AF9947FCBE4E8170C96A5825F" xlink:to="loc_us-gaap_OtherComprehensiveIncomeLossDerivativesQualifyingAsHedgesNetOfTax_9A8E32DCDFE030FEAB6C170C96A6A785" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_OtherComprehensiveIncomeAvailableforsaleSecuritiesAdjustmentNetOfTaxPortionAttributableToParentAbstract" xlink:label="loc_us-gaap_OtherComprehensiveIncomeAvailableforsaleSecuritiesAdjustmentNetOfTaxPortionAttributableToParentAbstract_72E0F86E96C09FE41237170C96A626BC" xlink:type="locator" />
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StatementOfIncomeAndComprehensiveIncomeAbstract_65866706C10D761FA25D170C96A55B1F" xlink:to="loc_us-gaap_OtherComprehensiveIncomeAvailableforsaleSecuritiesAdjustmentNetOfTaxPortionAttributableToParentAbstract_72E0F86E96C09FE41237170C96A626BC" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_OtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax" xlink:label="loc_us-gaap_OtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax_D3BC90E456A345CE603C170C96A7ED1B" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_OtherComprehensiveIncomeAvailableforsaleSecuritiesAdjustmentNetOfTaxPortionAttributableToParentAbstract_72E0F86E96C09FE41237170C96A626BC" xlink:to="loc_us-gaap_OtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax_D3BC90E456A345CE603C170C96A7ED1B" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax" xlink:label="loc_us-gaap_OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax_1FA1ECA11D5953BB64E3170C96A77BFA" xlink:type="locator" />
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_OtherComprehensiveIncomeAvailableforsaleSecuritiesAdjustmentNetOfTaxPortionAttributableToParentAbstract_72E0F86E96C09FE41237170C96A626BC" xlink:to="loc_us-gaap_OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax_1FA1ECA11D5953BB64E3170C96A77BFA" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_OtherComprehensiveIncomeAvailableforsaleSecuritiesAdjustmentNetOfTaxPortionAttributableToParent" xlink:label="loc_us-gaap_OtherComprehensiveIncomeAvailableforsaleSecuritiesAdjustmentNetOfTaxPortionAttributableToParent_7CB747E88561E6311924170C96A7F14D" xlink:type="locator" />
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_OtherComprehensiveIncomeAvailableforsaleSecuritiesAdjustmentNetOfTaxPortionAttributableToParentAbstract_72E0F86E96C09FE41237170C96A626BC" xlink:to="loc_us-gaap_OtherComprehensiveIncomeAvailableforsaleSecuritiesAdjustmentNetOfTaxPortionAttributableToParent_7CB747E88561E6311924170C96A7F14D" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_CurrencytranslationadjustmentAbstract" xlink:label="loc_cgnx_CurrencytranslationadjustmentAbstract_6092AF9E05D5FCDD9AAE170C96A73BF2" xlink:type="locator" />
    <link:presentationArc order="4" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StatementOfIncomeAndComprehensiveIncomeAbstract_65866706C10D761FA25D170C96A55B1F" xlink:to="loc_cgnx_CurrencytranslationadjustmentAbstract_6092AF9E05D5FCDD9AAE170C96A73BF2" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax" xlink:label="loc_us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax_12BAA17918C2F0271A23170C96A7301C" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_cgnx_CurrencytranslationadjustmentAbstract_6092AF9E05D5FCDD9AAE170C96A73BF2" xlink:to="loc_us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax_12BAA17918C2F0271A23170C96A7301C" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent" xlink:label="loc_us-gaap_OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent_967D4F6F3E2CDC4EA89C170C96A89961" xlink:type="locator" />
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_cgnx_CurrencytranslationadjustmentAbstract_6092AF9E05D5FCDD9AAE170C96A73BF2" xlink:to="loc_us-gaap_OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent_967D4F6F3E2CDC4EA89C170C96A89961" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent" xlink:label="loc_us-gaap_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent_479B7BB0C1EE2D2857A9170C96A8DE46" xlink:type="locator" />
    <link:presentationArc order="5" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StatementOfIncomeAndComprehensiveIncomeAbstract_65866706C10D761FA25D170C96A55B1F" xlink:to="loc_us-gaap_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent_479B7BB0C1EE2D2857A9170C96A8DE46" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ComprehensiveIncomeNetOfTax" xlink:label="loc_us-gaap_ComprehensiveIncomeNetOfTax_4700D0EDE0C2D1B5624F170C96A82F80" xlink:type="locator" />
    <link:presentationArc order="6" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StatementOfIncomeAndComprehensiveIncomeAbstract_65866706C10D761FA25D170C96A55B1F" xlink:to="loc_us-gaap_ComprehensiveIncomeNetOfTax_4700D0EDE0C2D1B5624F170C96A82F80" xlink:type="arc" />
  </link:presentationLink>
  <link:presentationLink xlink:role="http://cognex.com/role/ConsolidatedStatementsOfComprehensiveIncomeParenthetical" xlink:type="extended">
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_StatementOfIncomeAndComprehensiveIncomeAbstract" xlink:label="loc_us-gaap_StatementOfIncomeAndComprehensiveIncomeAbstract_8421A06D8859104DD6EB8095E606ABB0" xlink:type="locator" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_OtherComprehensiveIncomeLossDerivativesQualifyingAsHedgesTax" xlink:label="loc_us-gaap_OtherComprehensiveIncomeLossDerivativesQualifyingAsHedgesTax_727F9AB2380C2E9A33B68095E606E456" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StatementOfIncomeAndComprehensiveIncomeAbstract_8421A06D8859104DD6EB8095E606ABB0" xlink:to="loc_us-gaap_OtherComprehensiveIncomeLossDerivativesQualifyingAsHedgesTax_727F9AB2380C2E9A33B68095E606E456" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodTax" xlink:label="loc_us-gaap_OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodTax_4FF4BE3289B807DF7BAF8095E606882A" xlink:type="locator" />
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StatementOfIncomeAndComprehensiveIncomeAbstract_8421A06D8859104DD6EB8095E606ABB0" xlink:to="loc_us-gaap_OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodTax_4FF4BE3289B807DF7BAF8095E606882A" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_OtherComprehensiveIncomeForeignCurrencyTranslationGainLossArisingDuringPeriodTax" xlink:label="loc_us-gaap_OtherComprehensiveIncomeForeignCurrencyTranslationGainLossArisingDuringPeriodTax_89A8E0A2DF8720DEDEE68095E60655C1" xlink:type="locator" />
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StatementOfIncomeAndComprehensiveIncomeAbstract_8421A06D8859104DD6EB8095E606ABB0" xlink:to="loc_us-gaap_OtherComprehensiveIncomeForeignCurrencyTranslationGainLossArisingDuringPeriodTax_89A8E0A2DF8720DEDEE68095E60655C1" xlink:type="arc" />
  </link:presentationLink>
  <link:presentationLink xlink:role="http://cognex.com/role/ConsolidatedStatementsOfOperations" xlink:type="extended">
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_IncomeStatementAbstract" xlink:label="loc_us-gaap_IncomeStatementAbstract_5FECFC201F959A11C3AC30EEF1ABEE72" xlink:type="locator" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax" xlink:label="loc_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax_5393FE1F7855AC164B9E30EEF1AB2C28" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeStatementAbstract_5FECFC201F959A11C3AC30EEF1ABEE72" xlink:to="loc_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax_5393FE1F7855AC164B9E30EEF1AB2C28" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_CostOfGoodsAndServicesSold" xlink:label="loc_us-gaap_CostOfGoodsAndServicesSold_E6BD28FC2DF41282BF2230EEF1ABE5E7" xlink:type="locator" />
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeStatementAbstract_5FECFC201F959A11C3AC30EEF1ABEE72" xlink:to="loc_us-gaap_CostOfGoodsAndServicesSold_E6BD28FC2DF41282BF2230EEF1ABE5E7" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_GrossProfit" xlink:label="loc_us-gaap_GrossProfit_90723D194202843A079130EEF1AC9A33" xlink:type="locator" />
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeStatementAbstract_5FECFC201F959A11C3AC30EEF1ABEE72" xlink:to="loc_us-gaap_GrossProfit_90723D194202843A079130EEF1AC9A33" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ResearchAndDevelopmentExpense" xlink:label="loc_us-gaap_ResearchAndDevelopmentExpense_A6A7C740F03F9EEE240F30EEF1ACCF56" xlink:type="locator" />
    <link:presentationArc order="4" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeStatementAbstract_5FECFC201F959A11C3AC30EEF1ABEE72" xlink:to="loc_us-gaap_ResearchAndDevelopmentExpense_A6A7C740F03F9EEE240F30EEF1ACCF56" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_SellingGeneralAndAdministrativeExpense" xlink:label="loc_us-gaap_SellingGeneralAndAdministrativeExpense_82677656ADBA9B83C0AF30EEF1AC6D22" xlink:type="locator" />
    <link:presentationArc order="5" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeStatementAbstract_5FECFC201F959A11C3AC30EEF1ABEE72" xlink:to="loc_us-gaap_SellingGeneralAndAdministrativeExpense_82677656ADBA9B83C0AF30EEF1AC6D22" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_OperatingIncomeLoss" xlink:label="loc_us-gaap_OperatingIncomeLoss_A6562B3E8B80F01B9FFA30EEF1ACD6C3" xlink:type="locator" />
    <link:presentationArc order="6" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeStatementAbstract_5FECFC201F959A11C3AC30EEF1ABEE72" xlink:to="loc_us-gaap_OperatingIncomeLoss_A6562B3E8B80F01B9FFA30EEF1ACD6C3" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ForeignCurrencyTransactionGainLossBeforeTax" xlink:label="loc_us-gaap_ForeignCurrencyTransactionGainLossBeforeTax_842551F7DEA287422E0630EEF1AC9094" xlink:type="locator" />
    <link:presentationArc order="7" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeStatementAbstract_5FECFC201F959A11C3AC30EEF1ABEE72" xlink:to="loc_us-gaap_ForeignCurrencyTransactionGainLossBeforeTax_842551F7DEA287422E0630EEF1AC9094" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_InvestmentIncomeNonoperating" xlink:label="loc_us-gaap_InvestmentIncomeNonoperating_35183889DC1EE9877C0130EEF1ADF397" xlink:type="locator" />
    <link:presentationArc order="8" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeStatementAbstract_5FECFC201F959A11C3AC30EEF1ABEE72" xlink:to="loc_us-gaap_InvestmentIncomeNonoperating_35183889DC1EE9877C0130EEF1ADF397" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_OtherNonoperatingIncomeExpense" xlink:label="loc_us-gaap_OtherNonoperatingIncomeExpense_82A7D42CF34AD7A4341430EEF1AD443B" xlink:type="locator" />
    <link:presentationArc order="9" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeStatementAbstract_5FECFC201F959A11C3AC30EEF1ABEE72" xlink:to="loc_us-gaap_OtherNonoperatingIncomeExpense_82A7D42CF34AD7A4341430EEF1AD443B" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments" xlink:label="loc_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments_3E8A12E0EB68B3BDEA6D30EEF1AD7708" xlink:type="locator" />
    <link:presentationArc order="10" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeStatementAbstract_5FECFC201F959A11C3AC30EEF1ABEE72" xlink:to="loc_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments_3E8A12E0EB68B3BDEA6D30EEF1AD7708" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_IncomeTaxExpenseBenefit" xlink:label="loc_us-gaap_IncomeTaxExpenseBenefit_7761F440E54E4D5EEAE530EEF1AD5606" xlink:type="locator" />
    <link:presentationArc order="11" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeStatementAbstract_5FECFC201F959A11C3AC30EEF1ABEE72" xlink:to="loc_us-gaap_IncomeTaxExpenseBenefit_7761F440E54E4D5EEAE530EEF1AD5606" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_NetIncomeLoss" xlink:label="loc_us-gaap_NetIncomeLoss_BE2FA825937EB6ED6A5530EEF1AE8749" xlink:type="locator" />
    <link:presentationArc order="12" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeStatementAbstract_5FECFC201F959A11C3AC30EEF1ABEE72" xlink:to="loc_us-gaap_NetIncomeLoss_BE2FA825937EB6ED6A5530EEF1AE8749" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_EarningsPerShareBasicAbstract" xlink:label="loc_us-gaap_EarningsPerShareBasicAbstract_06CB2C74F9146DC3DBE130EEF1AE0557" xlink:type="locator" />
    <link:presentationArc order="13" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeStatementAbstract_5FECFC201F959A11C3AC30EEF1ABEE72" xlink:to="loc_us-gaap_EarningsPerShareBasicAbstract_06CB2C74F9146DC3DBE130EEF1AE0557" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_EarningsPerShareBasic" xlink:label="loc_us-gaap_EarningsPerShareBasic_EA72F3E104ED502F422A30EEF1AF1717" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_EarningsPerShareBasicAbstract_06CB2C74F9146DC3DBE130EEF1AE0557" xlink:to="loc_us-gaap_EarningsPerShareBasic_EA72F3E104ED502F422A30EEF1AF1717" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_EarningsPerShareDilutedAbstract" xlink:label="loc_us-gaap_EarningsPerShareDilutedAbstract_191891E9B0BA8E1A732730EEF1AF94FC" xlink:type="locator" />
    <link:presentationArc order="14" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeStatementAbstract_5FECFC201F959A11C3AC30EEF1ABEE72" xlink:to="loc_us-gaap_EarningsPerShareDilutedAbstract_191891E9B0BA8E1A732730EEF1AF94FC" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_EarningsPerShareDiluted" xlink:label="loc_us-gaap_EarningsPerShareDiluted_0230672ACA360720E3D930EEF1B0AB37" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_EarningsPerShareDilutedAbstract_191891E9B0BA8E1A732730EEF1AF94FC" xlink:to="loc_us-gaap_EarningsPerShareDiluted_0230672ACA360720E3D930EEF1B0AB37" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_WeightedAverageNumberOfSharesOutstandingAbstract" xlink:label="loc_us-gaap_WeightedAverageNumberOfSharesOutstandingAbstract_43BA35D69E9B11FC34CE30EEF1B0A0B6" xlink:type="locator" />
    <link:presentationArc order="15" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeStatementAbstract_5FECFC201F959A11C3AC30EEF1ABEE72" xlink:to="loc_us-gaap_WeightedAverageNumberOfSharesOutstandingAbstract_43BA35D69E9B11FC34CE30EEF1B0A0B6" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_WeightedAverageNumberOfSharesOutstandingBasic" xlink:label="loc_us-gaap_WeightedAverageNumberOfSharesOutstandingBasic_66B47C9B32DA08E93D8230EEF1B077F7" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_WeightedAverageNumberOfSharesOutstandingAbstract_43BA35D69E9B11FC34CE30EEF1B0A0B6" xlink:to="loc_us-gaap_WeightedAverageNumberOfSharesOutstandingBasic_66B47C9B32DA08E93D8230EEF1B077F7" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding" xlink:label="loc_us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding_440A8E7D7596EA67D6DD30EEF1B19B12" xlink:type="locator" />
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_WeightedAverageNumberOfSharesOutstandingAbstract_43BA35D69E9B11FC34CE30EEF1B0A0B6" xlink:to="loc_us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding_440A8E7D7596EA67D6DD30EEF1B19B12" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_CommonStockDividendsPerShareCashPaid" xlink:label="loc_us-gaap_CommonStockDividendsPerShareCashPaid_2D37FD49475FEE74A45C30EEF1B1D7EF" xlink:type="locator" />
    <link:presentationArc order="16" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeStatementAbstract_5FECFC201F959A11C3AC30EEF1ABEE72" xlink:to="loc_us-gaap_CommonStockDividendsPerShareCashPaid_2D37FD49475FEE74A45C30EEF1B1D7EF" xlink:type="arc" />
  </link:presentationLink>
  <link:presentationLink xlink:role="http://cognex.com/role/ConsolidatedStatementsOfOperationsParenthetical" xlink:type="extended">
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_IncomeStatementAbstract" xlink:label="loc_us-gaap_IncomeStatementAbstract_E85B8BC356742E4F8F628095E8CF741B" xlink:type="locator" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_StockholdersEquityNoteStockSplitConversionRatio1" xlink:label="loc_us-gaap_StockholdersEquityNoteStockSplitConversionRatio1_F43BE1B945E61AF8A8778095E8CFF900" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeStatementAbstract_E85B8BC356742E4F8F628095E8CF741B" xlink:to="loc_us-gaap_StockholdersEquityNoteStockSplitConversionRatio1_F43BE1B945E61AF8A8778095E8CFF900" xlink:type="arc" />
  </link:presentationLink>
  <link:presentationLink xlink:role="http://cognex.com/role/ConsolidatedStatementsOfShareholdersEquity" xlink:type="extended">
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_StatementOfStockholdersEquityAbstract" xlink:label="loc_us-gaap_StatementOfStockholdersEquityAbstract_780961505E8F67EAF97B170C964052EC" xlink:type="locator" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_StatementTable" xlink:label="loc_us-gaap_StatementTable_4CC0097DD62AB75821B4170C964077D0" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StatementOfStockholdersEquityAbstract_780961505E8F67EAF97B170C964052EC" xlink:to="loc_us-gaap_StatementTable_4CC0097DD62AB75821B4170C964077D0" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_StatementEquityComponentsAxis" xlink:label="loc_us-gaap_StatementEquityComponentsAxis_79B9BFDE1E9BAEE4A88A170C9641A811" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StatementTable_4CC0097DD62AB75821B4170C964077D0" xlink:to="loc_us-gaap_StatementEquityComponentsAxis_79B9BFDE1E9BAEE4A88A170C9641A811" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_EquityComponentDomain" xlink:label="loc_us-gaap_EquityComponentDomain_9D418DFEAE9CE4E58E6B170C9641FF45" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StatementEquityComponentsAxis_79B9BFDE1E9BAEE4A88A170C9641A811" xlink:to="loc_us-gaap_EquityComponentDomain_9D418DFEAE9CE4E58E6B170C9641FF45" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_CommonStockMember" xlink:label="loc_us-gaap_CommonStockMember_4EB14B57EAA96C3CD3E0170C9642C903" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_EquityComponentDomain_9D418DFEAE9CE4E58E6B170C9641FF45" xlink:to="loc_us-gaap_CommonStockMember_4EB14B57EAA96C3CD3E0170C9642C903" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_AdditionalPaidInCapitalMember" xlink:label="loc_us-gaap_AdditionalPaidInCapitalMember_4E0A7027878BC958F302170C9642CF85" xlink:type="locator" />
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_EquityComponentDomain_9D418DFEAE9CE4E58E6B170C9641FF45" xlink:to="loc_us-gaap_AdditionalPaidInCapitalMember_4E0A7027878BC958F302170C9642CF85" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_RetainedEarningsMember" xlink:label="loc_us-gaap_RetainedEarningsMember_5680CD6B2C8E61E31C95170C9642FB36" xlink:type="locator" />
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_EquityComponentDomain_9D418DFEAE9CE4E58E6B170C9641FF45" xlink:to="loc_us-gaap_RetainedEarningsMember_5680CD6B2C8E61E31C95170C9642FB36" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_AccumulatedOtherComprehensiveIncomeMember" xlink:label="loc_us-gaap_AccumulatedOtherComprehensiveIncomeMember_02842A68B654B2A0BD59170C96420656" xlink:type="locator" />
    <link:presentationArc order="4" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_EquityComponentDomain_9D418DFEAE9CE4E58E6B170C9641FF45" xlink:to="loc_us-gaap_AccumulatedOtherComprehensiveIncomeMember_02842A68B654B2A0BD59170C96420656" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_StatementLineItems" xlink:label="loc_us-gaap_StatementLineItems_556514CCA9BC33646401170C9643654B" xlink:type="locator" />
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StatementTable_4CC0097DD62AB75821B4170C964077D0" xlink:to="loc_us-gaap_StatementLineItems_556514CCA9BC33646401170C9643654B" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_IncreaseDecreaseInStockholdersEquityRollForward" xlink:label="loc_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward_362F713FBD359FC16D48170C9643E2C2" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StatementLineItems_556514CCA9BC33646401170C9643654B" xlink:to="loc_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward_362F713FBD359FC16D48170C9643E2C2" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_StockholdersEquity" xlink:label="loc_us-gaap_StockholdersEquity_CB50070A62A6CC3733A8170C9643E026" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/periodStartLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward_362F713FBD359FC16D48170C9643E2C2" xlink:to="loc_us-gaap_StockholdersEquity_CB50070A62A6CC3733A8170C9643E026" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_CommonStockSharesIssued" xlink:label="loc_us-gaap_CommonStockSharesIssued_46CEFB82D515785EF0DE170C96445F3B" xlink:type="locator" />
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/periodStartLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward_362F713FBD359FC16D48170C9643E2C2" xlink:to="loc_us-gaap_CommonStockSharesIssued_46CEFB82D515785EF0DE170C96445F3B" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised" xlink:label="loc_us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised_6DF07E7D346E1FE4BA63170C9644ED1B" xlink:type="locator" />
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward_362F713FBD359FC16D48170C9643E2C2" xlink:to="loc_us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised_6DF07E7D346E1FE4BA63170C9644ED1B" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised" xlink:label="loc_us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised_C3F8EEB34C037647686F170C9644FD38" xlink:type="locator" />
    <link:presentationArc order="4" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward_362F713FBD359FC16D48170C9643E2C2" xlink:to="loc_us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised_C3F8EEB34C037647686F170C9644FD38" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_StockRepurchasedDuringPeriodValue" xlink:label="loc_us-gaap_StockRepurchasedDuringPeriodValue_3D568F611AA37F9E0DAC170C96441879" xlink:type="locator" />
    <link:presentationArc order="5" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward_362F713FBD359FC16D48170C9643E2C2" xlink:to="loc_us-gaap_StockRepurchasedDuringPeriodValue_3D568F611AA37F9E0DAC170C96441879" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_StockRepurchasedDuringPeriodShares" xlink:label="loc_us-gaap_StockRepurchasedDuringPeriodShares_F42CBF940C76AEAA31C9170C964451F2" xlink:type="locator" />
    <link:presentationArc order="6" preferredLabel="http://www.xbrl.org/2009/role/negatedTerseLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward_362F713FBD359FC16D48170C9643E2C2" xlink:to="loc_us-gaap_StockRepurchasedDuringPeriodShares_F42CBF940C76AEAA31C9170C964451F2" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue" xlink:label="loc_us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue_229640086C29D930DE09170C96451EF5" xlink:type="locator" />
    <link:presentationArc order="7" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward_362F713FBD359FC16D48170C9643E2C2" xlink:to="loc_us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue_229640086C29D930DE09170C96451EF5" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_DividendsCommonStockCash" xlink:label="loc_us-gaap_DividendsCommonStockCash_D8C3A547A4FD04E43588170C964598D0" xlink:type="locator" />
    <link:presentationArc order="8" preferredLabel="http://www.xbrl.org/2009/role/negatedTerseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward_362F713FBD359FC16D48170C9643E2C2" xlink:to="loc_us-gaap_DividendsCommonStockCash_D8C3A547A4FD04E43588170C964598D0" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_CumulativeEffectOfNewAccountingPrincipleInPeriodOfAdoption" xlink:label="loc_us-gaap_CumulativeEffectOfNewAccountingPrincipleInPeriodOfAdoption_9EAFC273976AC21046C6170C96456A45" xlink:type="locator" />
    <link:presentationArc order="9" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward_362F713FBD359FC16D48170C9643E2C2" xlink:to="loc_us-gaap_CumulativeEffectOfNewAccountingPrincipleInPeriodOfAdoption_9EAFC273976AC21046C6170C96456A45" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_NetIncomeLoss" xlink:label="loc_us-gaap_NetIncomeLoss_9B04A5202E6C5CF8C710170C9645DB1A" xlink:type="locator" />
    <link:presentationArc order="10" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward_362F713FBD359FC16D48170C9643E2C2" xlink:to="loc_us-gaap_NetIncomeLoss_9B04A5202E6C5CF8C710170C9645DB1A" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_OtherComprehensiveIncomeUnrealizedGainLossOnDerivativesArisingDuringPeriodNetOfTax" xlink:label="loc_us-gaap_OtherComprehensiveIncomeUnrealizedGainLossOnDerivativesArisingDuringPeriodNetOfTax_A0C77D4E5B3D54FA9C14170C96466B25" xlink:type="locator" />
    <link:presentationArc order="11" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward_362F713FBD359FC16D48170C9643E2C2" xlink:to="loc_us-gaap_OtherComprehensiveIncomeUnrealizedGainLossOnDerivativesArisingDuringPeriodNetOfTax_A0C77D4E5B3D54FA9C14170C96466B25" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIOnDerivativesNetOfTax" xlink:label="loc_us-gaap_OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIOnDerivativesNetOfTax_0986FCF9393B44BFECC1170C964657D8" xlink:type="locator" />
    <link:presentationArc order="12" preferredLabel="http://www.xbrl.org/2009/role/negatedTerseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward_362F713FBD359FC16D48170C9643E2C2" xlink:to="loc_us-gaap_OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIOnDerivativesNetOfTax_0986FCF9393B44BFECC1170C964657D8" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_OtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax" xlink:label="loc_us-gaap_OtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax_4E2706E62BD7F3443710170C964691AE" xlink:type="locator" />
    <link:presentationArc order="13" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward_362F713FBD359FC16D48170C9643E2C2" xlink:to="loc_us-gaap_OtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax_4E2706E62BD7F3443710170C964691AE" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax" xlink:label="loc_us-gaap_OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax_75F4B0619BE1F2F65BEC170C9646DDC5" xlink:type="locator" />
    <link:presentationArc order="14" preferredLabel="http://www.xbrl.org/2009/role/negatedTerseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward_362F713FBD359FC16D48170C9643E2C2" xlink:to="loc_us-gaap_OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax_75F4B0619BE1F2F65BEC170C9646DDC5" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax" xlink:label="loc_us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax_D27F3FC032DAA7425FBA170C96463D40" xlink:type="locator" />
    <link:presentationArc order="15" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward_362F713FBD359FC16D48170C9643E2C2" xlink:to="loc_us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax_D27F3FC032DAA7425FBA170C96463D40" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_StockholdersEquity" xlink:label="loc_us-gaap_StockholdersEquity_0A65B9D63AEE5AEEDF3E170C9646D841" xlink:type="locator" />
    <link:presentationArc order="16" preferredLabel="http://www.xbrl.org/2003/role/periodEndLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward_362F713FBD359FC16D48170C9643E2C2" xlink:to="loc_us-gaap_StockholdersEquity_0A65B9D63AEE5AEEDF3E170C9646D841" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_CommonStockSharesIssued" xlink:label="loc_us-gaap_CommonStockSharesIssued_8549C8997C40C284A188170C9647E2A4" xlink:type="locator" />
    <link:presentationArc order="17" preferredLabel="http://www.xbrl.org/2003/role/periodEndLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward_362F713FBD359FC16D48170C9643E2C2" xlink:to="loc_us-gaap_CommonStockSharesIssued_8549C8997C40C284A188170C9647E2A4" xlink:type="arc" />
  </link:presentationLink>
  <link:presentationLink xlink:role="http://cognex.com/role/ConsolidatedStatementsOfShareholdersEquityParenthetical" xlink:type="extended">
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_StatementOfStockholdersEquityAbstract" xlink:label="loc_us-gaap_StatementOfStockholdersEquityAbstract_CC28C56408BBF13ECF208095E8986259" xlink:type="locator" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_StockholdersEquityNoteStockSplitConversionRatio1" xlink:label="loc_us-gaap_StockholdersEquityNoteStockSplitConversionRatio1_819E570429ABCE2C06008095E898B67F" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StatementOfStockholdersEquityAbstract_CC28C56408BBF13ECF208095E8986259" xlink:to="loc_us-gaap_StockholdersEquityNoteStockSplitConversionRatio1_819E570429ABCE2C06008095E898B67F" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_OtherComprehensiveIncomeLossDerivativesQualifyingAsHedgesTax" xlink:label="loc_us-gaap_OtherComprehensiveIncomeLossDerivativesQualifyingAsHedgesTax_4CB6D746B2E36D3727A88095E898E144" xlink:type="locator" />
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StatementOfStockholdersEquityAbstract_CC28C56408BBF13ECF208095E8986259" xlink:to="loc_us-gaap_OtherComprehensiveIncomeLossDerivativesQualifyingAsHedgesTax_4CB6D746B2E36D3727A88095E898E144" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodTax" xlink:label="loc_us-gaap_OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodTax_0A9C37E54C3225C2E7438095E898E9D6" xlink:type="locator" />
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StatementOfStockholdersEquityAbstract_CC28C56408BBF13ECF208095E8986259" xlink:to="loc_us-gaap_OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodTax_0A9C37E54C3225C2E7438095E898E9D6" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTranslationAdjustmentTax" xlink:label="loc_us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTranslationAdjustmentTax_36F167458CD920D722F68095E898C3BC" xlink:type="locator" />
    <link:presentationArc order="4" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StatementOfStockholdersEquityAbstract_CC28C56408BBF13ECF208095E8986259" xlink:to="loc_us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTranslationAdjustmentTax_36F167458CD920D722F68095E898C3BC" xlink:type="arc" />
  </link:presentationLink>
  <link:presentationLink xlink:role="http://cognex.com/role/CoverPage" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_CoverAbstract" xlink:label="loc_dei_CoverAbstract_0CF2C3E93E6C5C112CE43F216981529F" xlink:type="locator" />
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_DocumentType" xlink:label="loc_dei_DocumentType_08192580F834B22219023F21698E8179" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_dei_CoverAbstract_0CF2C3E93E6C5C112CE43F216981529F" xlink:to="loc_dei_DocumentType_08192580F834B22219023F21698E8179" xlink:type="arc" />
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_DocumentQuarterlyReport" xlink:label="loc_dei_DocumentQuarterlyReport_B021011343BCC272BC083F21699127EB" xlink:type="locator" />
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_dei_CoverAbstract_0CF2C3E93E6C5C112CE43F216981529F" xlink:to="loc_dei_DocumentQuarterlyReport_B021011343BCC272BC083F21699127EB" xlink:type="arc" />
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_DocumentPeriodEndDate" xlink:label="loc_dei_DocumentPeriodEndDate_A9FC403E2A7C5729A5883F2169913215" xlink:type="locator" />
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_dei_CoverAbstract_0CF2C3E93E6C5C112CE43F216981529F" xlink:to="loc_dei_DocumentPeriodEndDate_A9FC403E2A7C5729A5883F2169913215" xlink:type="arc" />
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_DocumentTransitionReport" xlink:label="loc_dei_DocumentTransitionReport_A7D099E81B0A953DD6BE3F2169916D9A" xlink:type="locator" />
    <link:presentationArc order="4" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_dei_CoverAbstract_0CF2C3E93E6C5C112CE43F216981529F" xlink:to="loc_dei_DocumentTransitionReport_A7D099E81B0A953DD6BE3F2169916D9A" xlink:type="arc" />
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityFileNumber" xlink:label="loc_dei_EntityFileNumber_7C57EB36FEAAA464FCE43F216991F8FD" xlink:type="locator" />
    <link:presentationArc order="5" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_dei_CoverAbstract_0CF2C3E93E6C5C112CE43F216981529F" xlink:to="loc_dei_EntityFileNumber_7C57EB36FEAAA464FCE43F216991F8FD" xlink:type="arc" />
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityRegistrantName" xlink:label="loc_dei_EntityRegistrantName_BC20282BBBC0523101D13F216991546B" xlink:type="locator" />
    <link:presentationArc order="6" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_dei_CoverAbstract_0CF2C3E93E6C5C112CE43F216981529F" xlink:to="loc_dei_EntityRegistrantName_BC20282BBBC0523101D13F216991546B" xlink:type="arc" />
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityIncorporationStateCountryCode" xlink:label="loc_dei_EntityIncorporationStateCountryCode_B3CF70769800D761EFC23F216991ADBF" xlink:type="locator" />
    <link:presentationArc order="7" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_dei_CoverAbstract_0CF2C3E93E6C5C112CE43F216981529F" xlink:to="loc_dei_EntityIncorporationStateCountryCode_B3CF70769800D761EFC23F216991ADBF" xlink:type="arc" />
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityTaxIdentificationNumber" xlink:label="loc_dei_EntityTaxIdentificationNumber_A188A492DC26CC587CA03F216991CB7E" xlink:type="locator" />
    <link:presentationArc order="8" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_dei_CoverAbstract_0CF2C3E93E6C5C112CE43F216981529F" xlink:to="loc_dei_EntityTaxIdentificationNumber_A188A492DC26CC587CA03F216991CB7E" xlink:type="arc" />
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityAddressAddressLine1" xlink:label="loc_dei_EntityAddressAddressLine1_1E35A4235776594E2B3C3F2169923540" xlink:type="locator" />
    <link:presentationArc order="9" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_dei_CoverAbstract_0CF2C3E93E6C5C112CE43F216981529F" xlink:to="loc_dei_EntityAddressAddressLine1_1E35A4235776594E2B3C3F2169923540" xlink:type="arc" />
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityAddressCityOrTown" xlink:label="loc_dei_EntityAddressCityOrTown_717058EAEFF9847E394C3F2169925981" xlink:type="locator" />
    <link:presentationArc order="10" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_dei_CoverAbstract_0CF2C3E93E6C5C112CE43F216981529F" xlink:to="loc_dei_EntityAddressCityOrTown_717058EAEFF9847E394C3F2169925981" xlink:type="arc" />
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityAddressStateOrProvince" xlink:label="loc_dei_EntityAddressStateOrProvince_1284EF4F96A57E6F91353F2169922663" xlink:type="locator" />
    <link:presentationArc order="11" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_dei_CoverAbstract_0CF2C3E93E6C5C112CE43F216981529F" xlink:to="loc_dei_EntityAddressStateOrProvince_1284EF4F96A57E6F91353F2169922663" xlink:type="arc" />
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityAddressPostalZipCode" xlink:label="loc_dei_EntityAddressPostalZipCode_144B70BF7CCDD172C39E3F216992A474" xlink:type="locator" />
    <link:presentationArc order="12" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_dei_CoverAbstract_0CF2C3E93E6C5C112CE43F216981529F" xlink:to="loc_dei_EntityAddressPostalZipCode_144B70BF7CCDD172C39E3F216992A474" xlink:type="arc" />
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_CityAreaCode" xlink:label="loc_dei_CityAreaCode_0CCA7F40413CBDFA33983F216992EA9A" xlink:type="locator" />
    <link:presentationArc order="13" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_dei_CoverAbstract_0CF2C3E93E6C5C112CE43F216981529F" xlink:to="loc_dei_CityAreaCode_0CCA7F40413CBDFA33983F216992EA9A" xlink:type="arc" />
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LocalPhoneNumber" xlink:label="loc_dei_LocalPhoneNumber_C4B3AC14D0AC7D476E043F2169928E3E" xlink:type="locator" />
    <link:presentationArc order="14" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_dei_CoverAbstract_0CF2C3E93E6C5C112CE43F216981529F" xlink:to="loc_dei_LocalPhoneNumber_C4B3AC14D0AC7D476E043F2169928E3E" xlink:type="arc" />
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_Security12bTitle" xlink:label="loc_dei_Security12bTitle_EF2EF93AAF357ABD0A003F2169936436" xlink:type="locator" />
    <link:presentationArc order="15" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_dei_CoverAbstract_0CF2C3E93E6C5C112CE43F216981529F" xlink:to="loc_dei_Security12bTitle_EF2EF93AAF357ABD0A003F2169936436" xlink:type="arc" />
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_TradingSymbol" xlink:label="loc_dei_TradingSymbol_F13FB1C346B9E88AA4283F21699393DA" xlink:type="locator" />
    <link:presentationArc order="16" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_dei_CoverAbstract_0CF2C3E93E6C5C112CE43F216981529F" xlink:to="loc_dei_TradingSymbol_F13FB1C346B9E88AA4283F21699393DA" xlink:type="arc" />
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_SecurityExchangeName" xlink:label="loc_dei_SecurityExchangeName_874E8DF7512AC4185AE83F2169937087" xlink:type="locator" />
    <link:presentationArc order="17" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_dei_CoverAbstract_0CF2C3E93E6C5C112CE43F216981529F" xlink:to="loc_dei_SecurityExchangeName_874E8DF7512AC4185AE83F2169937087" xlink:type="arc" />
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityWellKnownSeasonedIssuer" xlink:label="loc_dei_EntityWellKnownSeasonedIssuer_12A36A661F937C646FE23F21699394D4" xlink:type="locator" />
    <link:presentationArc order="18" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_dei_CoverAbstract_0CF2C3E93E6C5C112CE43F216981529F" xlink:to="loc_dei_EntityWellKnownSeasonedIssuer_12A36A661F937C646FE23F21699394D4" xlink:type="arc" />
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityVoluntaryFilers" xlink:label="loc_dei_EntityVoluntaryFilers_4E75F276995316F0FA543F216993D256" xlink:type="locator" />
    <link:presentationArc order="19" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_dei_CoverAbstract_0CF2C3E93E6C5C112CE43F216981529F" xlink:to="loc_dei_EntityVoluntaryFilers_4E75F276995316F0FA543F216993D256" xlink:type="arc" />
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityCurrentReportingStatus" xlink:label="loc_dei_EntityCurrentReportingStatus_DD03E56F853FCEB10B303F2169936F2F" xlink:type="locator" />
    <link:presentationArc order="20" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_dei_CoverAbstract_0CF2C3E93E6C5C112CE43F216981529F" xlink:to="loc_dei_EntityCurrentReportingStatus_DD03E56F853FCEB10B303F2169936F2F" xlink:type="arc" />
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityInteractiveDataCurrent" xlink:label="loc_dei_EntityInteractiveDataCurrent_0812EAD275B61279589D3F21699477F5" xlink:type="locator" />
    <link:presentationArc order="21" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_dei_CoverAbstract_0CF2C3E93E6C5C112CE43F216981529F" xlink:to="loc_dei_EntityInteractiveDataCurrent_0812EAD275B61279589D3F21699477F5" xlink:type="arc" />
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityFilerCategory" xlink:label="loc_dei_EntityFilerCategory_CD24C83F58C3D3FFCEC73F2169941999" xlink:type="locator" />
    <link:presentationArc order="22" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_dei_CoverAbstract_0CF2C3E93E6C5C112CE43F216981529F" xlink:to="loc_dei_EntityFilerCategory_CD24C83F58C3D3FFCEC73F2169941999" xlink:type="arc" />
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntitySmallBusiness" xlink:label="loc_dei_EntitySmallBusiness_2EC347BC5A92B058CEC63F21D06D2610" xlink:type="locator" />
    <link:presentationArc order="23" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_dei_CoverAbstract_0CF2C3E93E6C5C112CE43F216981529F" xlink:to="loc_dei_EntitySmallBusiness_2EC347BC5A92B058CEC63F21D06D2610" xlink:type="arc" />
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityEmergingGrowthCompany" xlink:label="loc_dei_EntityEmergingGrowthCompany_46004E4EA0361674FB9B3F216CB4A8A8" xlink:type="locator" />
    <link:presentationArc order="24" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_dei_CoverAbstract_0CF2C3E93E6C5C112CE43F216981529F" xlink:to="loc_dei_EntityEmergingGrowthCompany_46004E4EA0361674FB9B3F216CB4A8A8" xlink:type="arc" />
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityShellCompany" xlink:label="loc_dei_EntityShellCompany_5F3656201D27BB63EB803F21699404D9" xlink:type="locator" />
    <link:presentationArc order="25" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_dei_CoverAbstract_0CF2C3E93E6C5C112CE43F216981529F" xlink:to="loc_dei_EntityShellCompany_5F3656201D27BB63EB803F21699404D9" xlink:type="arc" />
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityPublicFloat" xlink:label="loc_dei_EntityPublicFloat_3F000E057D78C0B6ABAB3F216994E204" xlink:type="locator" />
    <link:presentationArc order="26" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_dei_CoverAbstract_0CF2C3E93E6C5C112CE43F216981529F" xlink:to="loc_dei_EntityPublicFloat_3F000E057D78C0B6ABAB3F216994E204" xlink:type="arc" />
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityCommonStockSharesOutstanding" xlink:label="loc_dei_EntityCommonStockSharesOutstanding_036CE1E402E63EAEFDD73F2169948432" xlink:type="locator" />
    <link:presentationArc order="27" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_dei_CoverAbstract_0CF2C3E93E6C5C112CE43F216981529F" xlink:to="loc_dei_EntityCommonStockSharesOutstanding_036CE1E402E63EAEFDD73F2169948432" xlink:type="arc" />
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityCentralIndexKey" xlink:label="loc_dei_EntityCentralIndexKey_2FB2F7A053674BD676DB3F2169944ADA" xlink:type="locator" />
    <link:presentationArc order="28" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_dei_CoverAbstract_0CF2C3E93E6C5C112CE43F216981529F" xlink:to="loc_dei_EntityCentralIndexKey_2FB2F7A053674BD676DB3F2169944ADA" xlink:type="arc" />
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_CurrentFiscalYearEndDate" xlink:label="loc_dei_CurrentFiscalYearEndDate_986DAD9A5F3A70FA53B03F216995D7E5" xlink:type="locator" />
    <link:presentationArc order="29" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_dei_CoverAbstract_0CF2C3E93E6C5C112CE43F216981529F" xlink:to="loc_dei_CurrentFiscalYearEndDate_986DAD9A5F3A70FA53B03F216995D7E5" xlink:type="arc" />
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_DocumentFiscalYearFocus" xlink:label="loc_dei_DocumentFiscalYearFocus_2BA5D8A5754CA61755063F21699512EE" xlink:type="locator" />
    <link:presentationArc order="30" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_dei_CoverAbstract_0CF2C3E93E6C5C112CE43F216981529F" xlink:to="loc_dei_DocumentFiscalYearFocus_2BA5D8A5754CA61755063F21699512EE" xlink:type="arc" />
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_DocumentFiscalPeriodFocus" xlink:label="loc_dei_DocumentFiscalPeriodFocus_3B8C997D72AD5E51A0863F21699589D4" xlink:type="locator" />
    <link:presentationArc order="31" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_dei_CoverAbstract_0CF2C3E93E6C5C112CE43F216981529F" xlink:to="loc_dei_DocumentFiscalPeriodFocus_3B8C997D72AD5E51A0863F21699589D4" xlink:type="arc" />
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_AmendmentFlag" xlink:label="loc_dei_AmendmentFlag_504F43AEB994B8B268FA3F216995B7D1" xlink:type="locator" />
    <link:presentationArc order="32" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_dei_CoverAbstract_0CF2C3E93E6C5C112CE43F216981529F" xlink:to="loc_dei_AmendmentFlag_504F43AEB994B8B268FA3F216995B7D1" xlink:type="arc" />
  </link:presentationLink>
  <link:presentationLink xlink:role="http://cognex.com/role/DerivativeInstruments" xlink:type="extended">
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosureAbstract" xlink:label="loc_us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosureAbstract_3AA127DEADD330C6DC7E8095E6ACC7A7" xlink:type="locator" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosureTextBlock" xlink:label="loc_us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosureTextBlock_76B5653EE59C74F8B17A8095E6ACD49E" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosureAbstract_3AA127DEADD330C6DC7E8095E6ACC7A7" xlink:to="loc_us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosureTextBlock_76B5653EE59C74F8B17A8095E6ACD49E" xlink:type="arc" />
  </link:presentationLink>
  <link:presentationLink xlink:role="http://cognex.com/role/DerivativeInstrumentsAdditionalDetailsDetails" xlink:type="extended">
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosureAbstract" xlink:label="loc_us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosureAbstract_CA03A4B6DA30A432D1468095E89AEC8D" xlink:type="locator" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_DerivativeTable" xlink:label="loc_us-gaap_DerivativeTable_6B2962033CAC20628A4B8095E89BE5AC" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosureAbstract_CA03A4B6DA30A432D1468095E89AEC8D" xlink:to="loc_us-gaap_DerivativeTable_6B2962033CAC20628A4B8095E89BE5AC" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_HedgingDesignationAxis" xlink:label="loc_us-gaap_HedgingDesignationAxis_737F5D76FE1988E7AD748095E89BE1A0" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DerivativeTable_6B2962033CAC20628A4B8095E89BE5AC" xlink:to="loc_us-gaap_HedgingDesignationAxis_737F5D76FE1988E7AD748095E89BE1A0" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_HedgingDesignationDomain" xlink:label="loc_us-gaap_HedgingDesignationDomain_CB38C9E44FDC266B10448095E89BF9DC" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_HedgingDesignationAxis_737F5D76FE1988E7AD748095E89BE1A0" xlink:to="loc_us-gaap_HedgingDesignationDomain_CB38C9E44FDC266B10448095E89BF9DC" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_NondesignatedMember" xlink:label="loc_us-gaap_NondesignatedMember_D0EC90F27621A8B20FDD8095E89BAA15" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_HedgingDesignationDomain_CB38C9E44FDC266B10448095E89BF9DC" xlink:to="loc_us-gaap_NondesignatedMember_D0EC90F27621A8B20FDD8095E89BAA15" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_DesignatedAsHedgingInstrumentMember" xlink:label="loc_us-gaap_DesignatedAsHedgingInstrumentMember_5E4DDBA4A8AA28F9D0DD8095E89B9E34" xlink:type="locator" />
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_HedgingDesignationDomain_CB38C9E44FDC266B10448095E89BF9DC" xlink:to="loc_us-gaap_DesignatedAsHedgingInstrumentMember_5E4DDBA4A8AA28F9D0DD8095E89B9E34" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_DerivativeLineItems" xlink:label="loc_us-gaap_DerivativeLineItems_3B205E576DA00F8735C68095E89BDDAD" xlink:type="locator" />
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DerivativeTable_6B2962033CAC20628A4B8095E89BE5AC" xlink:to="loc_us-gaap_DerivativeLineItems_3B205E576DA00F8735C68095E89BDDAD" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_MaximumRemainingMaturityOfForeignCurrencyDerivatives1" xlink:label="loc_us-gaap_MaximumRemainingMaturityOfForeignCurrencyDerivatives1_F814C04CE9588AB06C078095E89B0950" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DerivativeLineItems_3B205E576DA00F8735C68095E89BDDAD" xlink:to="loc_us-gaap_MaximumRemainingMaturityOfForeignCurrencyDerivatives1_F814C04CE9588AB06C078095E89B0950" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_MaximumLengthOfTimeHedgedInCashFlowHedge1" xlink:label="loc_us-gaap_MaximumLengthOfTimeHedgedInCashFlowHedge1_AA258CB4B531151A11998095E89BAD2C" xlink:type="locator" />
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DerivativeLineItems_3B205E576DA00F8735C68095E89BDDAD" xlink:to="loc_us-gaap_MaximumLengthOfTimeHedgedInCashFlowHedge1_AA258CB4B531151A11998095E89BAD2C" xlink:type="arc" />
  </link:presentationLink>
  <link:presentationLink xlink:role="http://cognex.com/role/DerivativeInstrumentsAssetsAndLiabilitiesPresentedOnNetBasisDueToRightOfOffsetDetails" xlink:type="extended">
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosureAbstract" xlink:label="loc_us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosureAbstract_0FF44E923C87EBA149828095E5909E86" xlink:type="locator" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_DerivativeFairValueOfDerivativeAsset" xlink:label="loc_us-gaap_DerivativeFairValueOfDerivativeAsset_F16BF397D837C9B096F78095E590ED07" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosureAbstract_0FF44E923C87EBA149828095E5909E86" xlink:to="loc_us-gaap_DerivativeFairValueOfDerivativeAsset_F16BF397D837C9B096F78095E590ED07" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_DerivativeAssetCollateralObligationToReturnCashOffset" xlink:label="loc_us-gaap_DerivativeAssetCollateralObligationToReturnCashOffset_115FABD713989C882DFC8095E590A720" xlink:type="locator" />
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2009/role/negatedTerseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosureAbstract_0FF44E923C87EBA149828095E5909E86" xlink:to="loc_us-gaap_DerivativeAssetCollateralObligationToReturnCashOffset_115FABD713989C882DFC8095E590A720" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_DerivativeAssets" xlink:label="loc_us-gaap_DerivativeAssets_804EC6F63C32AD5B733E8095E59002E5" xlink:type="locator" />
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosureAbstract_0FF44E923C87EBA149828095E5909E86" xlink:to="loc_us-gaap_DerivativeAssets_804EC6F63C32AD5B733E8095E59002E5" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_DerivativeFairValueOfDerivativeLiability" xlink:label="loc_us-gaap_DerivativeFairValueOfDerivativeLiability_873657C6FF33B92BF08B8095E59087C3" xlink:type="locator" />
    <link:presentationArc order="4" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosureAbstract_0FF44E923C87EBA149828095E5909E86" xlink:to="loc_us-gaap_DerivativeFairValueOfDerivativeLiability_873657C6FF33B92BF08B8095E59087C3" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_DerivativeLiabilityCollateralRightToReclaimCashOffset" xlink:label="loc_us-gaap_DerivativeLiabilityCollateralRightToReclaimCashOffset_AD29264C14A2E9C07DB38095E59005C7" xlink:type="locator" />
    <link:presentationArc order="5" preferredLabel="http://www.xbrl.org/2009/role/negatedTerseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosureAbstract_0FF44E923C87EBA149828095E5909E86" xlink:to="loc_us-gaap_DerivativeLiabilityCollateralRightToReclaimCashOffset_AD29264C14A2E9C07DB38095E59005C7" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_DerivativeLiabilities" xlink:label="loc_us-gaap_DerivativeLiabilities_992FA476E669CF3713508095E590E4E0" xlink:type="locator" />
    <link:presentationArc order="6" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosureAbstract_0FF44E923C87EBA149828095E5909E86" xlink:to="loc_us-gaap_DerivativeLiabilities_992FA476E669CF3713508095E590E4E0" xlink:type="arc" />
  </link:presentationLink>
  <link:presentationLink xlink:role="http://cognex.com/role/DerivativeInstrumentsBalanceSheetLocationDetails" xlink:type="extended">
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosureAbstract" xlink:label="loc_us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosureAbstract_CF16F253FD76B18CF5D58095E75AAAFD" xlink:type="locator" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_FairValuesDerivativesBalanceSheetLocationByDerivativeContractTypeByHedgingDesignationTable" xlink:label="loc_us-gaap_FairValuesDerivativesBalanceSheetLocationByDerivativeContractTypeByHedgingDesignationTable_F0850B8C8CF61CC95E618095E75B89BB" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosureAbstract_CF16F253FD76B18CF5D58095E75AAAFD" xlink:to="loc_us-gaap_FairValuesDerivativesBalanceSheetLocationByDerivativeContractTypeByHedgingDesignationTable_F0850B8C8CF61CC95E618095E75B89BB" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_HedgingDesignationAxis" xlink:label="loc_us-gaap_HedgingDesignationAxis_4655EE876900806EA3AB8095E75B98EC" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FairValuesDerivativesBalanceSheetLocationByDerivativeContractTypeByHedgingDesignationTable_F0850B8C8CF61CC95E618095E75B89BB" xlink:to="loc_us-gaap_HedgingDesignationAxis_4655EE876900806EA3AB8095E75B98EC" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_HedgingDesignationDomain" xlink:label="loc_us-gaap_HedgingDesignationDomain_41B8F1A3A6F14AF36E288095E75B6790" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_HedgingDesignationAxis_4655EE876900806EA3AB8095E75B98EC" xlink:to="loc_us-gaap_HedgingDesignationDomain_41B8F1A3A6F14AF36E288095E75B6790" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_NondesignatedMember" xlink:label="loc_us-gaap_NondesignatedMember_63CAF65164D91DEEA2958095E75BD41E" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_HedgingDesignationDomain_41B8F1A3A6F14AF36E288095E75B6790" xlink:to="loc_us-gaap_NondesignatedMember_63CAF65164D91DEEA2958095E75BD41E" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_BalanceSheetLocationAxis" xlink:label="loc_us-gaap_BalanceSheetLocationAxis_43D37E242A2DAB13DAD98095E75BBA62" xlink:type="locator" />
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FairValuesDerivativesBalanceSheetLocationByDerivativeContractTypeByHedgingDesignationTable_F0850B8C8CF61CC95E618095E75B89BB" xlink:to="loc_us-gaap_BalanceSheetLocationAxis_43D37E242A2DAB13DAD98095E75BBA62" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_BalanceSheetLocationDomain" xlink:label="loc_us-gaap_BalanceSheetLocationDomain_0CD56C55A1C92C3789B28095E75B8F1E" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_BalanceSheetLocationAxis_43D37E242A2DAB13DAD98095E75BBA62" xlink:to="loc_us-gaap_BalanceSheetLocationDomain_0CD56C55A1C92C3789B28095E75B8F1E" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_PrepaidExpensesAndOtherCurrentAssetsMember" xlink:label="loc_us-gaap_PrepaidExpensesAndOtherCurrentAssetsMember_EA43E22D470BCAD371DC8095E75B64DE" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_BalanceSheetLocationDomain_0CD56C55A1C92C3789B28095E75B8F1E" xlink:to="loc_us-gaap_PrepaidExpensesAndOtherCurrentAssetsMember_EA43E22D470BCAD371DC8095E75B64DE" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_AccruedExpensesMember" xlink:label="loc_cgnx_AccruedExpensesMember_E306A91B53258FB793C18095E75B5683" xlink:type="locator" />
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_BalanceSheetLocationDomain_0CD56C55A1C92C3789B28095E75B8F1E" xlink:to="loc_cgnx_AccruedExpensesMember_E306A91B53258FB793C18095E75B5683" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_DerivativesFairValueLineItems" xlink:label="loc_us-gaap_DerivativesFairValueLineItems_C44F517377CC67CAB4DA8095E75B686B" xlink:type="locator" />
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FairValuesDerivativesBalanceSheetLocationByDerivativeContractTypeByHedgingDesignationTable_F0850B8C8CF61CC95E618095E75B89BB" xlink:to="loc_us-gaap_DerivativesFairValueLineItems_C44F517377CC67CAB4DA8095E75B686B" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_DerivativeAssets" xlink:label="loc_us-gaap_DerivativeAssets_74C879BFA1D22EDE7B8F8095E75B73EE" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DerivativesFairValueLineItems_C44F517377CC67CAB4DA8095E75B686B" xlink:to="loc_us-gaap_DerivativeAssets_74C879BFA1D22EDE7B8F8095E75B73EE" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_DerivativeLiabilities" xlink:label="loc_us-gaap_DerivativeLiabilities_A3E9E2C997ADC9A7DD618095E75BED83" xlink:type="locator" />
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DerivativesFairValueLineItems_C44F517377CC67CAB4DA8095E75B686B" xlink:to="loc_us-gaap_DerivativeLiabilities_A3E9E2C997ADC9A7DD618095E75BED83" xlink:type="arc" />
  </link:presentationLink>
  <link:presentationLink xlink:role="http://cognex.com/role/DerivativeInstrumentsChangesInAociDetails" xlink:type="extended">
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosureAbstract" xlink:label="loc_us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosureAbstract_81FDF02674D700CEF37C35BF4AA2C489" xlink:type="locator" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_AccumulatedOtherComprehensiveIncomeLossTable" xlink:label="loc_us-gaap_AccumulatedOtherComprehensiveIncomeLossTable_1764074BFA5217EECA6035BF4AA28D6A" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosureAbstract_81FDF02674D700CEF37C35BF4AA2C489" xlink:to="loc_us-gaap_AccumulatedOtherComprehensiveIncomeLossTable_1764074BFA5217EECA6035BF4AA28D6A" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_StatementEquityComponentsAxis" xlink:label="loc_us-gaap_StatementEquityComponentsAxis_D545945FF53C465484A935BF4AA3F56B" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AccumulatedOtherComprehensiveIncomeLossTable_1764074BFA5217EECA6035BF4AA28D6A" xlink:to="loc_us-gaap_StatementEquityComponentsAxis_D545945FF53C465484A935BF4AA3F56B" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_EquityComponentDomain" xlink:label="loc_us-gaap_EquityComponentDomain_960F7B0936E13AFC2DCB35BF4AA329B2" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StatementEquityComponentsAxis_D545945FF53C465484A935BF4AA3F56B" xlink:to="loc_us-gaap_EquityComponentDomain_960F7B0936E13AFC2DCB35BF4AA329B2" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_AccumulatedOtherComprehensiveIncomeLossLineItems" xlink:label="loc_us-gaap_AccumulatedOtherComprehensiveIncomeLossLineItems_D3D822DA32B44DCDBAA635BF4AA3F2FC" xlink:type="locator" />
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AccumulatedOtherComprehensiveIncomeLossTable_1764074BFA5217EECA6035BF4AA28D6A" xlink:to="loc_us-gaap_AccumulatedOtherComprehensiveIncomeLossLineItems_D3D822DA32B44DCDBAA635BF4AA3F2FC" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_AOCIAttributableToParentNetOfTaxRollForward" xlink:label="loc_us-gaap_AOCIAttributableToParentNetOfTaxRollForward_21E365232ED45223F22035BF4AA3F69D" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AccumulatedOtherComprehensiveIncomeLossLineItems_D3D822DA32B44DCDBAA635BF4AA3F2FC" xlink:to="loc_us-gaap_AOCIAttributableToParentNetOfTaxRollForward_21E365232ED45223F22035BF4AA3F69D" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax" xlink:label="loc_us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax_B988C09C618B4DC3DF7935BF4AA42F90" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/periodStartLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AOCIAttributableToParentNetOfTaxRollForward_21E365232ED45223F22035BF4AA3F69D" xlink:to="loc_us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax_B988C09C618B4DC3DF7935BF4AA42F90" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax" xlink:label="loc_us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax_B696192C41C86A9A064635BF4AA489AE" xlink:type="locator" />
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/periodEndLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AOCIAttributableToParentNetOfTaxRollForward_21E365232ED45223F22035BF4AA3F69D" xlink:to="loc_us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax_B696192C41C86A9A064635BF4AA489AE" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax" xlink:label="loc_us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax_5DFAF42C8EC2258F7DFF35BF4AA4CE79" xlink:type="locator" />
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AOCIAttributableToParentNetOfTaxRollForward_21E365232ED45223F22035BF4AA3F69D" xlink:to="loc_us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax_5DFAF42C8EC2258F7DFF35BF4AA4CE79" xlink:type="arc" />
  </link:presentationLink>
  <link:presentationLink xlink:role="http://cognex.com/role/DerivativeInstrumentsGainLossRecognizedInOtherComprehensiveIncomeLossDetails" xlink:type="extended">
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosureAbstract" xlink:label="loc_us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosureAbstract_710A8BEA2FA340863E6435C0E695A333" xlink:type="locator" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_DerivativeInstrumentsGainLossByHedgingRelationshipByIncomeStatementLocationByDerivativeInstrumentRiskTable" xlink:label="loc_us-gaap_DerivativeInstrumentsGainLossByHedgingRelationshipByIncomeStatementLocationByDerivativeInstrumentRiskTable_B575C3892635EA767E5235C0E695EB58" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosureAbstract_710A8BEA2FA340863E6435C0E695A333" xlink:to="loc_us-gaap_DerivativeInstrumentsGainLossByHedgingRelationshipByIncomeStatementLocationByDerivativeInstrumentRiskTable_B575C3892635EA767E5235C0E695EB58" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_IncomeStatementLocationAxis" xlink:label="loc_us-gaap_IncomeStatementLocationAxis_55CAE3FD8454800D846A35C0E6950719" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DerivativeInstrumentsGainLossByHedgingRelationshipByIncomeStatementLocationByDerivativeInstrumentRiskTable_B575C3892635EA767E5235C0E695EB58" xlink:to="loc_us-gaap_IncomeStatementLocationAxis_55CAE3FD8454800D846A35C0E6950719" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_IncomeStatementLocationDomain" xlink:label="loc_us-gaap_IncomeStatementLocationDomain_58063E15C084D5C9CA5535C0E696A5ED" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeStatementLocationAxis_55CAE3FD8454800D846A35C0E6950719" xlink:to="loc_us-gaap_IncomeStatementLocationDomain_58063E15C084D5C9CA5535C0E696A5ED" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_CashFlowHedgingMember" xlink:label="loc_us-gaap_CashFlowHedgingMember_1A90D2E05CAA7F6B495335C0E69663F5" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeStatementLocationDomain_58063E15C084D5C9CA5535C0E696A5ED" xlink:to="loc_us-gaap_CashFlowHedgingMember_1A90D2E05CAA7F6B495335C0E69663F5" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_SalesRevenueGoodsNetMember" xlink:label="loc_us-gaap_SalesRevenueGoodsNetMember_66858E7E231683B933CC35C0E696CC3C" xlink:type="locator" />
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeStatementLocationDomain_58063E15C084D5C9CA5535C0E696A5ED" xlink:to="loc_us-gaap_SalesRevenueGoodsNetMember_66858E7E231683B933CC35C0E696CC3C" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ResearchAndDevelopmentExpenseMember" xlink:label="loc_us-gaap_ResearchAndDevelopmentExpenseMember_23EB09CE6633BDA0A2B335C0E696874F" xlink:type="locator" />
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeStatementLocationDomain_58063E15C084D5C9CA5535C0E696A5ED" xlink:to="loc_us-gaap_ResearchAndDevelopmentExpenseMember_23EB09CE6633BDA0A2B335C0E696874F" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_GeneralAndAdministrativeExpenseMember" xlink:label="loc_us-gaap_GeneralAndAdministrativeExpenseMember_A606CB55F5AC9FE97A9835C0E69638CE" xlink:type="locator" />
    <link:presentationArc order="4" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeStatementLocationDomain_58063E15C084D5C9CA5535C0E696A5ED" xlink:to="loc_us-gaap_GeneralAndAdministrativeExpenseMember_A606CB55F5AC9FE97A9835C0E69638CE" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ForeignCurrencyGainLossMember" xlink:label="loc_us-gaap_ForeignCurrencyGainLossMember_D4DC0A363886C5A067AD35C0E6978315" xlink:type="locator" />
    <link:presentationArc order="5" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeStatementLocationDomain_58063E15C084D5C9CA5535C0E696A5ED" xlink:to="loc_us-gaap_ForeignCurrencyGainLossMember_D4DC0A363886C5A067AD35C0E6978315" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_HedgingDesignationAxis" xlink:label="loc_us-gaap_HedgingDesignationAxis_A23153EA5CE2518C225935C0E69794D0" xlink:type="locator" />
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DerivativeInstrumentsGainLossByHedgingRelationshipByIncomeStatementLocationByDerivativeInstrumentRiskTable_B575C3892635EA767E5235C0E695EB58" xlink:to="loc_us-gaap_HedgingDesignationAxis_A23153EA5CE2518C225935C0E69794D0" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_HedgingDesignationDomain" xlink:label="loc_us-gaap_HedgingDesignationDomain_D54FE03F6386F7FAFDFE35C0E697A8F3" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_HedgingDesignationAxis_A23153EA5CE2518C225935C0E69794D0" xlink:to="loc_us-gaap_HedgingDesignationDomain_D54FE03F6386F7FAFDFE35C0E697A8F3" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_DesignatedAsHedgingInstrumentMember" xlink:label="loc_us-gaap_DesignatedAsHedgingInstrumentMember_2E0E2C12A2705BD032C635C0E6972342" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_HedgingDesignationDomain_D54FE03F6386F7FAFDFE35C0E697A8F3" xlink:to="loc_us-gaap_DesignatedAsHedgingInstrumentMember_2E0E2C12A2705BD032C635C0E6972342" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_NondesignatedMember" xlink:label="loc_us-gaap_NondesignatedMember_D5470DF027EB1AB4256335C0E6986A20" xlink:type="locator" />
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_HedgingDesignationDomain_D54FE03F6386F7FAFDFE35C0E697A8F3" xlink:to="loc_us-gaap_NondesignatedMember_D5470DF027EB1AB4256335C0E6986A20" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_DerivativeInstrumentsGainLossLineItems" xlink:label="loc_us-gaap_DerivativeInstrumentsGainLossLineItems_80E7155190768B04A3AD35C0E69D91C2" xlink:type="locator" />
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DerivativeInstrumentsGainLossByHedgingRelationshipByIncomeStatementLocationByDerivativeInstrumentRiskTable_B575C3892635EA767E5235C0E695EB58" xlink:to="loc_us-gaap_DerivativeInstrumentsGainLossLineItems_80E7155190768B04A3AD35C0E69D91C2" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_DerivativeInstrumentsGainLossReclassifiedFromAccumulatedOCIIntoIncomeEffectivePortionNet" xlink:label="loc_us-gaap_DerivativeInstrumentsGainLossReclassifiedFromAccumulatedOCIIntoIncomeEffectivePortionNet_153F001CC1AB5BA2623D35C0E69DA308" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DerivativeInstrumentsGainLossLineItems_80E7155190768B04A3AD35C0E69D91C2" xlink:to="loc_us-gaap_DerivativeInstrumentsGainLossReclassifiedFromAccumulatedOCIIntoIncomeEffectivePortionNet_153F001CC1AB5BA2623D35C0E69DA308" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIOnDerivativesNetOfTax" xlink:label="loc_us-gaap_OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIOnDerivativesNetOfTax_A256EBE55BFCDD845C1F35C0E69EDE73" xlink:type="locator" />
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DerivativeInstrumentsGainLossLineItems_80E7155190768B04A3AD35C0E69D91C2" xlink:to="loc_us-gaap_OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIOnDerivativesNetOfTax_A256EBE55BFCDD845C1F35C0E69EDE73" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_DerivativeGainLossOnDerivativeNetAbstract" xlink:label="loc_us-gaap_DerivativeGainLossOnDerivativeNetAbstract_0A684B0540B9C044B7D735C0E69E0B43" xlink:type="locator" />
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DerivativeInstrumentsGainLossLineItems_80E7155190768B04A3AD35C0E69D91C2" xlink:to="loc_us-gaap_DerivativeGainLossOnDerivativeNetAbstract_0A684B0540B9C044B7D735C0E69E0B43" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_DerivativeGainLossOnDerivativeNet" xlink:label="loc_us-gaap_DerivativeGainLossOnDerivativeNet_304D118D370A4B1849D835C0E69E154E" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DerivativeGainLossOnDerivativeNetAbstract_0A684B0540B9C044B7D735C0E69E0B43" xlink:to="loc_us-gaap_DerivativeGainLossOnDerivativeNet_304D118D370A4B1849D835C0E69E154E" xlink:type="arc" />
  </link:presentationLink>
  <link:presentationLink xlink:role="http://cognex.com/role/DerivativeInstrumentsOutstandingForwardContractsDetails" xlink:type="extended">
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosureAbstract" xlink:label="loc_us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosureAbstract_8CED8C5A653CD05D415530F90F2EFA0A" xlink:type="locator" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_DerivativeTable" xlink:label="loc_us-gaap_DerivativeTable_1030CB7D72D2B1EFAF8730F90F2EF159" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosureAbstract_8CED8C5A653CD05D415530F90F2EFA0A" xlink:to="loc_us-gaap_DerivativeTable_1030CB7D72D2B1EFAF8730F90F2EF159" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_HedgingDesignationAxis" xlink:label="loc_us-gaap_HedgingDesignationAxis_E9AD6E08C5296034E17630F90F2EA3E5" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DerivativeTable_1030CB7D72D2B1EFAF8730F90F2EF159" xlink:to="loc_us-gaap_HedgingDesignationAxis_E9AD6E08C5296034E17630F90F2EA3E5" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_HedgingDesignationDomain" xlink:label="loc_us-gaap_HedgingDesignationDomain_A0B99C94FA83B85B67E330F90F334049" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_HedgingDesignationAxis_E9AD6E08C5296034E17630F90F2EA3E5" xlink:to="loc_us-gaap_HedgingDesignationDomain_A0B99C94FA83B85B67E330F90F334049" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_NondesignatedMember" xlink:label="loc_us-gaap_NondesignatedMember_48E8B91410517948DDDB30F90F3405CB" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_HedgingDesignationDomain_A0B99C94FA83B85B67E330F90F334049" xlink:to="loc_us-gaap_NondesignatedMember_48E8B91410517948DDDB30F90F3405CB" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2018/elts/srt-2018-01-31.xsd#srt_CurrencyAxis" xlink:label="loc_srt_CurrencyAxis_0B2C204A07078114E70830F90F349F48" xlink:type="locator" />
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DerivativeTable_1030CB7D72D2B1EFAF8730F90F2EF159" xlink:to="loc_srt_CurrencyAxis_0B2C204A07078114E70830F90F349F48" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.sec.gov/currency/2017/currency-2017-01-31.xsd#currency_AllCurrenciesDomain" xlink:label="loc_currency_AllCurrenciesDomain_2923F30B1916FBDAA82E30F90F3417F9" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_CurrencyAxis_0B2C204A07078114E70830F90F349F48" xlink:to="loc_currency_AllCurrenciesDomain_2923F30B1916FBDAA82E30F90F3417F9" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.sec.gov/currency/2017/currency-2017-01-31.xsd#currency_KRW" xlink:label="loc_currency_KRW_AF2C26702AA946496BB330F90F35010F" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_currency_AllCurrenciesDomain_2923F30B1916FBDAA82E30F90F3417F9" xlink:to="loc_currency_KRW_AF2C26702AA946496BB330F90F35010F" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.sec.gov/currency/2017/currency-2017-01-31.xsd#currency_EUR" xlink:label="loc_currency_EUR_023DCB8820A1C400CDB130F90F35E55B" xlink:type="locator" />
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_currency_AllCurrenciesDomain_2923F30B1916FBDAA82E30F90F3417F9" xlink:to="loc_currency_EUR_023DCB8820A1C400CDB130F90F35E55B" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.sec.gov/currency/2017/currency-2017-01-31.xsd#currency_JPY" xlink:label="loc_currency_JPY_02DBFD1482065484886B30F90F351F1B" xlink:type="locator" />
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_currency_AllCurrenciesDomain_2923F30B1916FBDAA82E30F90F3417F9" xlink:to="loc_currency_JPY_02DBFD1482065484886B30F90F351F1B" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.sec.gov/currency/2017/currency-2017-01-31.xsd#currency_MXN" xlink:label="loc_currency_MXN_B44052A0666C51C413A530F90F356030" xlink:type="locator" />
    <link:presentationArc order="4" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_currency_AllCurrenciesDomain_2923F30B1916FBDAA82E30F90F3417F9" xlink:to="loc_currency_MXN_B44052A0666C51C413A530F90F356030" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.sec.gov/currency/2017/currency-2017-01-31.xsd#currency_GBP" xlink:label="loc_currency_GBP_6BBA5BD7DDE021DEEA6830F90F353F19" xlink:type="locator" />
    <link:presentationArc order="5" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_currency_AllCurrenciesDomain_2923F30B1916FBDAA82E30F90F3417F9" xlink:to="loc_currency_GBP_6BBA5BD7DDE021DEEA6830F90F353F19" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.sec.gov/currency/2017/currency-2017-01-31.xsd#currency_HUF" xlink:label="loc_currency_HUF_CB6AC627E4007A2B005B30F90F360E3B" xlink:type="locator" />
    <link:presentationArc order="6" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_currency_AllCurrenciesDomain_2923F30B1916FBDAA82E30F90F3417F9" xlink:to="loc_currency_HUF_CB6AC627E4007A2B005B30F90F360E3B" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.sec.gov/currency/2017/currency-2017-01-31.xsd#currency_TWD" xlink:label="loc_currency_TWD_E9498BE22828B1EAE59F30F90F36F8A3" xlink:type="locator" />
    <link:presentationArc order="7" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_currency_AllCurrenciesDomain_2923F30B1916FBDAA82E30F90F3417F9" xlink:to="loc_currency_TWD_E9498BE22828B1EAE59F30F90F36F8A3" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.sec.gov/currency/2017/currency-2017-01-31.xsd#currency_CAD" xlink:label="loc_currency_CAD_BC20211A8F8FD6371E8930F90F361A44" xlink:type="locator" />
    <link:presentationArc order="8" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_currency_AllCurrenciesDomain_2923F30B1916FBDAA82E30F90F3417F9" xlink:to="loc_currency_CAD_BC20211A8F8FD6371E8930F90F361A44" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.sec.gov/currency/2017/currency-2017-01-31.xsd#currency_SGD" xlink:label="loc_currency_SGD_ACE2642FAA600CC7377A30F90F367FBE" xlink:type="locator" />
    <link:presentationArc order="9" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_currency_AllCurrenciesDomain_2923F30B1916FBDAA82E30F90F3417F9" xlink:to="loc_currency_SGD_ACE2642FAA600CC7377A30F90F367FBE" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_DerivativeLineItems" xlink:label="loc_us-gaap_DerivativeLineItems_F920D744F88EF591F57C30F90F36FDC9" xlink:type="locator" />
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DerivativeTable_1030CB7D72D2B1EFAF8730F90F2EF159" xlink:to="loc_us-gaap_DerivativeLineItems_F920D744F88EF591F57C30F90F36FDC9" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_DerivativeAssetNotionalAmount" xlink:label="loc_us-gaap_DerivativeAssetNotionalAmount_88D3145E544E878F2C5D30F90F37A8EA" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DerivativeLineItems_F920D744F88EF591F57C30F90F36FDC9" xlink:to="loc_us-gaap_DerivativeAssetNotionalAmount_88D3145E544E878F2C5D30F90F37A8EA" xlink:type="arc" />
  </link:presentationLink>
  <link:presentationLink xlink:role="http://cognex.com/role/DerivativeInstrumentsTables" xlink:type="extended">
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosureAbstract" xlink:label="loc_us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosureAbstract_271F02BB5216BD95E7328095E5DF4FFE" xlink:type="locator" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ScheduleOfNotionalAmountsOfOutstandingDerivativePositionsTableTextBlock" xlink:label="loc_us-gaap_ScheduleOfNotionalAmountsOfOutstandingDerivativePositionsTableTextBlock_B29D6E9206B71E4ECA118095E5DFDBBE" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosureAbstract_271F02BB5216BD95E7328095E5DF4FFE" xlink:to="loc_us-gaap_ScheduleOfNotionalAmountsOfOutstandingDerivativePositionsTableTextBlock_B29D6E9206B71E4ECA118095E5DFDBBE" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ScheduleOfDerivativeInstrumentsInStatementOfFinancialPositionFairValueTextBlock" xlink:label="loc_us-gaap_ScheduleOfDerivativeInstrumentsInStatementOfFinancialPositionFairValueTextBlock_9ADF9A9B1406D98DF4388095E5DFB07F" xlink:type="locator" />
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosureAbstract_271F02BB5216BD95E7328095E5DF4FFE" xlink:to="loc_us-gaap_ScheduleOfDerivativeInstrumentsInStatementOfFinancialPositionFairValueTextBlock_9ADF9A9B1406D98DF4388095E5DFB07F" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_OffsettingAssetsTableTextBlock" xlink:label="loc_us-gaap_OffsettingAssetsTableTextBlock_EEE12106E0226611DDD48095E5DFE275" xlink:type="locator" />
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosureAbstract_271F02BB5216BD95E7328095E5DF4FFE" xlink:to="loc_us-gaap_OffsettingAssetsTableTextBlock_EEE12106E0226611DDD48095E5DFE275" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ScheduleOfDerivativeInstrumentsGainLossInStatementOfFinancialPerformanceTextBlock" xlink:label="loc_us-gaap_ScheduleOfDerivativeInstrumentsGainLossInStatementOfFinancialPerformanceTextBlock_8D18D1CCA5CA59ED47EC8095E5E00D0D" xlink:type="locator" />
    <link:presentationArc order="4" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosureAbstract_271F02BB5216BD95E7328095E5DF4FFE" xlink:to="loc_us-gaap_ScheduleOfDerivativeInstrumentsGainLossInStatementOfFinancialPerformanceTextBlock_8D18D1CCA5CA59ED47EC8095E5E00D0D" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ScheduleOfDerivativeInstrumentsEffectOnOtherComprehensiveIncomeLossTableTextBlock" xlink:label="loc_us-gaap_ScheduleOfDerivativeInstrumentsEffectOnOtherComprehensiveIncomeLossTableTextBlock_C18E397D9525985961758095E5E0BA15" xlink:type="locator" />
    <link:presentationArc order="5" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosureAbstract_271F02BB5216BD95E7328095E5DF4FFE" xlink:to="loc_us-gaap_ScheduleOfDerivativeInstrumentsEffectOnOtherComprehensiveIncomeLossTableTextBlock_C18E397D9525985961758095E5E0BA15" xlink:type="arc" />
  </link:presentationLink>
  <link:presentationLink xlink:role="http://cognex.com/role/EmployeeSavingsPlan" xlink:type="extended">
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_CompensationAndRetirementDisclosureAbstract" xlink:label="loc_us-gaap_CompensationAndRetirementDisclosureAbstract_FA11C2A3F2495E310B328095E70C1C17" xlink:type="locator" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_PensionAndOtherPostretirementBenefitsDisclosureTextBlock" xlink:label="loc_us-gaap_PensionAndOtherPostretirementBenefitsDisclosureTextBlock_EC0CEA8C9E86F7F45F838095E70C0F6B" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_CompensationAndRetirementDisclosureAbstract_FA11C2A3F2495E310B328095E70C1C17" xlink:to="loc_us-gaap_PensionAndOtherPostretirementBenefitsDisclosureTextBlock_EC0CEA8C9E86F7F45F838095E70C0F6B" xlink:type="arc" />
  </link:presentationLink>
  <link:presentationLink xlink:role="http://cognex.com/role/EmployeeSavingsPlanAdditionalInformationDetail" xlink:type="extended">
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_CompensationAndRetirementDisclosureAbstract" xlink:label="loc_us-gaap_CompensationAndRetirementDisclosureAbstract_3F11A3E1154C0711209F30FF5BD6254B" xlink:type="locator" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_DefinedContributionPlanTable" xlink:label="loc_us-gaap_DefinedContributionPlanTable_54B0ACD9A02EEADAC79230FF5BD742AF" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_CompensationAndRetirementDisclosureAbstract_3F11A3E1154C0711209F30FF5BD6254B" xlink:to="loc_us-gaap_DefinedContributionPlanTable_54B0ACD9A02EEADAC79230FF5BD742AF" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_TitleOfIndividualAxis" xlink:label="loc_us-gaap_TitleOfIndividualAxis_093A2AD15A3D76FE98A130FF5BD7BFAC" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DefinedContributionPlanTable_54B0ACD9A02EEADAC79230FF5BD742AF" xlink:to="loc_us-gaap_TitleOfIndividualAxis_093A2AD15A3D76FE98A130FF5BD7BFAC" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_TitleOfIndividualWithRelationshipToEntityDomain" xlink:label="loc_us-gaap_TitleOfIndividualWithRelationshipToEntityDomain_C846D12A4F0C1D9966F230FF5BD7C128" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_TitleOfIndividualAxis_093A2AD15A3D76FE98A130FF5BD7BFAC" xlink:to="loc_us-gaap_TitleOfIndividualWithRelationshipToEntityDomain_C846D12A4F0C1D9966F230FF5BD7C128" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_DefinedContributionPlanDisclosureLineItems" xlink:label="loc_us-gaap_DefinedContributionPlanDisclosureLineItems_1EF929BC0443B94A55B730FF5BD82D6C" xlink:type="locator" />
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DefinedContributionPlanTable_54B0ACD9A02EEADAC79230FF5BD742AF" xlink:to="loc_us-gaap_DefinedContributionPlanDisclosureLineItems_1EF929BC0443B94A55B730FF5BD82D6C" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_MinimumAgeToBeEligibleToDefinedContributionPlan" xlink:label="loc_cgnx_MinimumAgeToBeEligibleToDefinedContributionPlan_3683BAF6864F11B9F26730FF5BD80D81" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DefinedContributionPlanDisclosureLineItems_1EF929BC0443B94A55B730FF5BD82D6C" xlink:to="loc_cgnx_MinimumAgeToBeEligibleToDefinedContributionPlan_3683BAF6864F11B9F26730FF5BD80D81" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_DefinedContributionPlanMaximumAnnualContributionsPerEmployeePercent" xlink:label="loc_us-gaap_DefinedContributionPlanMaximumAnnualContributionsPerEmployeePercent_12FF79A12F20B960E92930FF5BD87282" xlink:type="locator" />
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DefinedContributionPlanDisclosureLineItems_1EF929BC0443B94A55B730FF5BD82D6C" xlink:to="loc_us-gaap_DefinedContributionPlanMaximumAnnualContributionsPerEmployeePercent_12FF79A12F20B960E92930FF5BD87282" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_DefinedContributionPlanEmployerMatchingContributionPercentOfMatch" xlink:label="loc_us-gaap_DefinedContributionPlanEmployerMatchingContributionPercentOfMatch_447E41C4E3A86385391230FF5BD80138" xlink:type="locator" />
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DefinedContributionPlanDisclosureLineItems_1EF929BC0443B94A55B730FF5BD82D6C" xlink:to="loc_us-gaap_DefinedContributionPlanEmployerMatchingContributionPercentOfMatch_447E41C4E3A86385391230FF5BD80138" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_DefinedContributionPlanEmployerMatchingContributionPercent" xlink:label="loc_us-gaap_DefinedContributionPlanEmployerMatchingContributionPercent_18AACB096975C85137AB30FF5BD9F518" xlink:type="locator" />
    <link:presentationArc order="4" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DefinedContributionPlanDisclosureLineItems_1EF929BC0443B94A55B730FF5BD82D6C" xlink:to="loc_us-gaap_DefinedContributionPlanEmployerMatchingContributionPercent_18AACB096975C85137AB30FF5BD9F518" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_CompanyContributionsVestAtEndOfTwoYear" xlink:label="loc_cgnx_CompanyContributionsVestAtEndOfTwoYear_4349296B18DB41CF72B630FF5BD9607F" xlink:type="locator" />
    <link:presentationArc order="5" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DefinedContributionPlanDisclosureLineItems_1EF929BC0443B94A55B730FF5BD82D6C" xlink:to="loc_cgnx_CompanyContributionsVestAtEndOfTwoYear_4349296B18DB41CF72B630FF5BD9607F" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_CompanyContributionsVestAtEndOfThreeYears" xlink:label="loc_cgnx_CompanyContributionsVestAtEndOfThreeYears_055B845AABE7996D915530FF5BD993D1" xlink:type="locator" />
    <link:presentationArc order="6" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DefinedContributionPlanDisclosureLineItems_1EF929BC0443B94A55B730FF5BD82D6C" xlink:to="loc_cgnx_CompanyContributionsVestAtEndOfThreeYears_055B845AABE7996D915530FF5BD993D1" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_CompanyContributionsVestAtEndOfFourYears" xlink:label="loc_cgnx_CompanyContributionsVestAtEndOfFourYears_11F578D17477B88F9F6430FF5BD913C7" xlink:type="locator" />
    <link:presentationArc order="7" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DefinedContributionPlanDisclosureLineItems_1EF929BC0443B94A55B730FF5BD82D6C" xlink:to="loc_cgnx_CompanyContributionsVestAtEndOfFourYears_11F578D17477B88F9F6430FF5BD913C7" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_CompanyContributionsVestAtEndOfFiveYears" xlink:label="loc_cgnx_CompanyContributionsVestAtEndOfFiveYears_97AC939970AF17A5426730FF5BD95A19" xlink:type="locator" />
    <link:presentationArc order="8" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DefinedContributionPlanDisclosureLineItems_1EF929BC0443B94A55B730FF5BD82D6C" xlink:to="loc_cgnx_CompanyContributionsVestAtEndOfFiveYears_97AC939970AF17A5426730FF5BD95A19" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_DefinedContributionPlanCostRecognized" xlink:label="loc_us-gaap_DefinedContributionPlanCostRecognized_44FD1F0AC8A39605B5EE30FF5BD96EEA" xlink:type="locator" />
    <link:presentationArc order="9" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DefinedContributionPlanDisclosureLineItems_1EF929BC0443B94A55B730FF5BD82D6C" xlink:to="loc_us-gaap_DefinedContributionPlanCostRecognized_44FD1F0AC8A39605B5EE30FF5BD96EEA" xlink:type="arc" />
  </link:presentationLink>
  <link:presentationLink xlink:role="http://cognex.com/role/FairValueMeasurements" xlink:type="extended">
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_FairValueDisclosuresAbstract" xlink:label="loc_us-gaap_FairValueDisclosuresAbstract_2BB73F5355ED7BB3FDFF8095E761FEEF" xlink:type="locator" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_FairValueDisclosuresTextBlock" xlink:label="loc_us-gaap_FairValueDisclosuresTextBlock_B52E450ADDC101BBC6518095E761015F" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FairValueDisclosuresAbstract_2BB73F5355ED7BB3FDFF8095E761FEEF" xlink:to="loc_us-gaap_FairValueDisclosuresTextBlock_B52E450ADDC101BBC6518095E761015F" xlink:type="arc" />
  </link:presentationLink>
  <link:presentationLink xlink:role="http://cognex.com/role/FairValueMeasurementsAssetsAndLiabilitiesMeasuredAtFairValueOnRecurringBasisDetail" xlink:type="extended">
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_FairValueDisclosuresAbstract" xlink:label="loc_us-gaap_FairValueDisclosuresAbstract_5EE1B2A19F15FB630431F3C900342452" xlink:type="locator" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisTable" xlink:label="loc_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisTable_8E6A7C40F4F31B776D76F3C9003471D3" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FairValueDisclosuresAbstract_5EE1B2A19F15FB630431F3C900342452" xlink:to="loc_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisTable_8E6A7C40F4F31B776D76F3C9003471D3" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_FairValueByFairValueHierarchyLevelAxis" xlink:label="loc_us-gaap_FairValueByFairValueHierarchyLevelAxis_72F69AD3B2633AD13DB1F3C90035607D" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisTable_8E6A7C40F4F31B776D76F3C9003471D3" xlink:to="loc_us-gaap_FairValueByFairValueHierarchyLevelAxis_72F69AD3B2633AD13DB1F3C90035607D" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_FairValueMeasurementsFairValueHierarchyDomain" xlink:label="loc_us-gaap_FairValueMeasurementsFairValueHierarchyDomain_20F729C55C38CF342375F3C90035CD53" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FairValueByFairValueHierarchyLevelAxis_72F69AD3B2633AD13DB1F3C90035607D" xlink:to="loc_us-gaap_FairValueMeasurementsFairValueHierarchyDomain_20F729C55C38CF342375F3C90035CD53" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_FairValueInputsLevel1Member" xlink:label="loc_us-gaap_FairValueInputsLevel1Member_5E8E89A51A7199A033D1F3C90035725C" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FairValueMeasurementsFairValueHierarchyDomain_20F729C55C38CF342375F3C90035CD53" xlink:to="loc_us-gaap_FairValueInputsLevel1Member_5E8E89A51A7199A033D1F3C90035725C" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_FairValueInputsLevel2Member" xlink:label="loc_us-gaap_FairValueInputsLevel2Member_C9F2ABF2C16D4BEA6623F3C90036E376" xlink:type="locator" />
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FairValueMeasurementsFairValueHierarchyDomain_20F729C55C38CF342375F3C90035CD53" xlink:to="loc_us-gaap_FairValueInputsLevel2Member_C9F2ABF2C16D4BEA6623F3C90036E376" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_FairValueInputsLevel3Member" xlink:label="loc_us-gaap_FairValueInputsLevel3Member_3A7BE9FE52C9B92FC50AF3C90036550E" xlink:type="locator" />
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FairValueMeasurementsFairValueHierarchyDomain_20F729C55C38CF342375F3C90035CD53" xlink:to="loc_us-gaap_FairValueInputsLevel3Member_3A7BE9FE52C9B92FC50AF3C90036550E" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_FairValueByMeasurementFrequencyAxis" xlink:label="loc_us-gaap_FairValueByMeasurementFrequencyAxis_8BE98BA05A7A35AA64CBF3C900366396" xlink:type="locator" />
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisTable_8E6A7C40F4F31B776D76F3C9003471D3" xlink:to="loc_us-gaap_FairValueByMeasurementFrequencyAxis_8BE98BA05A7A35AA64CBF3C900366396" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_FairValueMeasurementFrequencyDomain" xlink:label="loc_us-gaap_FairValueMeasurementFrequencyDomain_5C45205616BBEF045A36F3C90036BF7C" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FairValueByMeasurementFrequencyAxis_8BE98BA05A7A35AA64CBF3C900366396" xlink:to="loc_us-gaap_FairValueMeasurementFrequencyDomain_5C45205616BBEF045A36F3C90036BF7C" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_FairValueMeasurementsRecurringMember" xlink:label="loc_us-gaap_FairValueMeasurementsRecurringMember_0B17EB267FAE7BBBA593F3C900368501" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FairValueMeasurementFrequencyDomain_5C45205616BBEF045A36F3C90036BF7C" xlink:to="loc_us-gaap_FairValueMeasurementsRecurringMember_0B17EB267FAE7BBBA593F3C900368501" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems" xlink:label="loc_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems_AECFBEC4AD4CFA4443BFF3C900375C2F" xlink:type="locator" />
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisTable_8E6A7C40F4F31B776D76F3C9003471D3" xlink:to="loc_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems_AECFBEC4AD4CFA4443BFF3C900375C2F" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_AssetsFairValueDisclosureAbstract" xlink:label="loc_us-gaap_AssetsFairValueDisclosureAbstract_FC05C4386DDA7DFDF1F5F3C90037A59D" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems_AECFBEC4AD4CFA4443BFF3C900375C2F" xlink:to="loc_us-gaap_AssetsFairValueDisclosureAbstract_FC05C4386DDA7DFDF1F5F3C90037A59D" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_MoneyMarketInstrumentsFairValueDisclosure" xlink:label="loc_cgnx_MoneyMarketInstrumentsFairValueDisclosure_54C03A6A32D64234A519F3C90037144B" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AssetsFairValueDisclosureAbstract_FC05C4386DDA7DFDF1F5F3C90037A59D" xlink:to="loc_cgnx_MoneyMarketInstrumentsFairValueDisclosure_54C03A6A32D64234A519F3C90037144B" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_TreasuryBillsFairValueDisclosure" xlink:label="loc_cgnx_TreasuryBillsFairValueDisclosure_172950622E1E06DE5B36F3C90038C0F9" xlink:type="locator" />
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AssetsFairValueDisclosureAbstract_FC05C4386DDA7DFDF1F5F3C90037A59D" xlink:to="loc_cgnx_TreasuryBillsFairValueDisclosure_172950622E1E06DE5B36F3C90038C0F9" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_CorporateBondsFairValueDisclosure" xlink:label="loc_cgnx_CorporateBondsFairValueDisclosure_B9E527EB9721B8DE7481F3C900387FCC" xlink:type="locator" />
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AssetsFairValueDisclosureAbstract_FC05C4386DDA7DFDF1F5F3C90037A59D" xlink:to="loc_cgnx_CorporateBondsFairValueDisclosure_B9E527EB9721B8DE7481F3C900387FCC" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_AssetBackedSecuritiesFairValueDisclosure" xlink:label="loc_cgnx_AssetBackedSecuritiesFairValueDisclosure_94EA398A981D960EB0B2F3C900383DDF" xlink:type="locator" />
    <link:presentationArc order="4" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AssetsFairValueDisclosureAbstract_FC05C4386DDA7DFDF1F5F3C90037A59D" xlink:to="loc_cgnx_AssetBackedSecuritiesFairValueDisclosure_94EA398A981D960EB0B2F3C900383DDF" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_SovereignBondsFairValueDisclosure" xlink:label="loc_cgnx_SovereignBondsFairValueDisclosure_0EDDCC5B05518E8B3BD3F3C90038C0A1" xlink:type="locator" />
    <link:presentationArc order="5" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AssetsFairValueDisclosureAbstract_FC05C4386DDA7DFDF1F5F3C90037A59D" xlink:to="loc_cgnx_SovereignBondsFairValueDisclosure_0EDDCC5B05518E8B3BD3F3C90038C0A1" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_MunicipalBondsFairValueDisclosure" xlink:label="loc_cgnx_MunicipalBondsFairValueDisclosure_AD570EE7AB3C3FF2C976F3C90038EFFA" xlink:type="locator" />
    <link:presentationArc order="6" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AssetsFairValueDisclosureAbstract_FC05C4386DDA7DFDF1F5F3C90037A59D" xlink:to="loc_cgnx_MunicipalBondsFairValueDisclosure_AD570EE7AB3C3FF2C976F3C90038EFFA" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_AgencyBondsFairValueDisclosure" xlink:label="loc_cgnx_AgencyBondsFairValueDisclosure_205EBBA4ABD2D259CA88F3C90038FEF2" xlink:type="locator" />
    <link:presentationArc order="7" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AssetsFairValueDisclosureAbstract_FC05C4386DDA7DFDF1F5F3C90037A59D" xlink:to="loc_cgnx_AgencyBondsFairValueDisclosure_205EBBA4ABD2D259CA88F3C90038FEF2" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_CertificateOfDepositFairValueDisclosure" xlink:label="loc_cgnx_CertificateOfDepositFairValueDisclosure_BD625731E66E80D8E98CF3D47F3F495A" xlink:type="locator" />
    <link:presentationArc order="8" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AssetsFairValueDisclosureAbstract_FC05C4386DDA7DFDF1F5F3C90037A59D" xlink:to="loc_cgnx_CertificateOfDepositFairValueDisclosure_BD625731E66E80D8E98CF3D47F3F495A" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ForeignCurrencyContractAssetFairValueDisclosure" xlink:label="loc_us-gaap_ForeignCurrencyContractAssetFairValueDisclosure_B5AB3F66A52EDA148500F3C900396555" xlink:type="locator" />
    <link:presentationArc order="9" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AssetsFairValueDisclosureAbstract_FC05C4386DDA7DFDF1F5F3C90037A59D" xlink:to="loc_us-gaap_ForeignCurrencyContractAssetFairValueDisclosure_B5AB3F66A52EDA148500F3C900396555" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_LiabilitiesFairValueDisclosureAbstract" xlink:label="loc_us-gaap_LiabilitiesFairValueDisclosureAbstract_431B2C039571A700DDE1F3C900393857" xlink:type="locator" />
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems_AECFBEC4AD4CFA4443BFF3C900375C2F" xlink:to="loc_us-gaap_LiabilitiesFairValueDisclosureAbstract_431B2C039571A700DDE1F3C900393857" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ForeignCurrencyContractsLiabilityFairValueDisclosure" xlink:label="loc_us-gaap_ForeignCurrencyContractsLiabilityFairValueDisclosure_5E1CF9DD6B0473FAF7BFF3C90039B2CC" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LiabilitiesFairValueDisclosureAbstract_431B2C039571A700DDE1F3C900393857" xlink:to="loc_us-gaap_ForeignCurrencyContractsLiabilityFairValueDisclosure_5E1CF9DD6B0473FAF7BFF3C90039B2CC" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_BusinessCombinationContingentConsiderationLiability" xlink:label="loc_us-gaap_BusinessCombinationContingentConsiderationLiability_72FCA4C55D53481E201FF3C90039AD93" xlink:type="locator" />
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LiabilitiesFairValueDisclosureAbstract_431B2C039571A700DDE1F3C900393857" xlink:to="loc_us-gaap_BusinessCombinationContingentConsiderationLiability_72FCA4C55D53481E201FF3C90039AD93" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_OtherThanTemporaryImpairmentLossesInvestmentsPortionRecognizedInEarningsNet" xlink:label="loc_us-gaap_OtherThanTemporaryImpairmentLossesInvestmentsPortionRecognizedInEarningsNet_1B8FB2F5F5D780AEDD22F3C900390570" xlink:type="locator" />
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems_AECFBEC4AD4CFA4443BFF3C900375C2F" xlink:to="loc_us-gaap_OtherThanTemporaryImpairmentLossesInvestmentsPortionRecognizedInEarningsNet_1B8FB2F5F5D780AEDD22F3C900390570" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_OtherThanTemporaryImpairmentLossesInvestmentsPortionRecognizedInEarningsNetnoncurrent" xlink:label="loc_cgnx_OtherThanTemporaryImpairmentLossesInvestmentsPortionRecognizedInEarningsNetnoncurrent_020ECCEE1408FC954E28F3C9003909AA" xlink:type="locator" />
    <link:presentationArc order="4" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems_AECFBEC4AD4CFA4443BFF3C900375C2F" xlink:to="loc_cgnx_OtherThanTemporaryImpairmentLossesInvestmentsPortionRecognizedInEarningsNetnoncurrent_020ECCEE1408FC954E28F3C9003909AA" xlink:type="arc" />
  </link:presentationLink>
  <link:presentationLink xlink:role="http://cognex.com/role/FairValueMeasurementsLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationDetails" xlink:type="extended">
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_FairValueDisclosuresAbstract" xlink:label="loc_us-gaap_FairValueDisclosuresAbstract_990C616C9A80812F5037F3C9002C3AA5" xlink:type="locator" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationTable" xlink:label="loc_us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationTable_23F6596F03A00E8BCD97F3C9002C3ACA" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FairValueDisclosuresAbstract_990C616C9A80812F5037F3C9002C3AA5" xlink:to="loc_us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationTable_23F6596F03A00E8BCD97F3C9002C3ACA" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_BusinessAcquisitionAxis" xlink:label="loc_us-gaap_BusinessAcquisitionAxis_ACDCA2FE8FAF5C335869F3C9002DD89C" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationTable_23F6596F03A00E8BCD97F3C9002C3ACA" xlink:to="loc_us-gaap_BusinessAcquisitionAxis_ACDCA2FE8FAF5C335869F3C9002DD89C" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_BusinessAcquisitionAcquireeDomain" xlink:label="loc_us-gaap_BusinessAcquisitionAcquireeDomain_7199D047DCE1188769C8F3C9002D65B8" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_BusinessAcquisitionAxis_ACDCA2FE8FAF5C335869F3C9002DD89C" xlink:to="loc_us-gaap_BusinessAcquisitionAcquireeDomain_7199D047DCE1188769C8F3C9002D65B8" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_GViVenturesInc.Member" xlink:label="loc_cgnx_GViVenturesInc.Member_7DCE48B9C1B69C7CA063F3C9002E210A" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_BusinessAcquisitionAcquireeDomain_7199D047DCE1188769C8F3C9002D65B8" xlink:to="loc_cgnx_GViVenturesInc.Member_7DCE48B9C1B69C7CA063F3C9002E210A" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_ManateeWorksInc.Member" xlink:label="loc_cgnx_ManateeWorksInc.Member_4DC562BA84E155663EA9F3C9002DDC3B" xlink:type="locator" />
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_BusinessAcquisitionAcquireeDomain_7199D047DCE1188769C8F3C9002D65B8" xlink:to="loc_cgnx_ManateeWorksInc.Member_4DC562BA84E155663EA9F3C9002DDC3B" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_ChiaroTechnologiesLLCMember" xlink:label="loc_cgnx_ChiaroTechnologiesLLCMember_F48063CCE5F9E127612FF3C9002EAF06" xlink:type="locator" />
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_BusinessAcquisitionAcquireeDomain_7199D047DCE1188769C8F3C9002D65B8" xlink:to="loc_cgnx_ChiaroTechnologiesLLCMember_F48063CCE5F9E127612FF3C9002EAF06" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationLineItems" xlink:label="loc_us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationLineItems_AD350B7099C2E10E9B4FF3C9002E9208" xlink:type="locator" />
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationTable_23F6596F03A00E8BCD97F3C9002C3ACA" xlink:to="loc_us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationLineItems_AD350B7099C2E10E9B4FF3C9002E9208" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationCalculationRollForward" xlink:label="loc_us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationCalculationRollForward_6A54ADB6FA2A89617602F3C9002E20C0" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationLineItems_AD350B7099C2E10E9B4FF3C9002E9208" xlink:to="loc_us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationCalculationRollForward_6A54ADB6FA2A89617602F3C9002E20C0" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue" xlink:label="loc_us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue_28278CF7AD150AFC4BBDF3C9002E1856" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/periodStartLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationCalculationRollForward_6A54ADB6FA2A89617602F3C9002E20C0" xlink:to="loc_us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue_28278CF7AD150AFC4BBDF3C9002E1856" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilitySettlements" xlink:label="loc_us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilitySettlements_47C47440973C4BBD2374F3C9002FB1FB" xlink:type="locator" />
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2009/role/negatedTerseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationCalculationRollForward_6A54ADB6FA2A89617602F3C9002E20C0" xlink:to="loc_us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilitySettlements_47C47440973C4BBD2374F3C9002FB1FB" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_LiabilitiesFairValueAdjustment" xlink:label="loc_us-gaap_LiabilitiesFairValueAdjustment_2F303076E3E392CFA9EDF3C9002FA397" xlink:type="locator" />
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationCalculationRollForward_6A54ADB6FA2A89617602F3C9002E20C0" xlink:to="loc_us-gaap_LiabilitiesFairValueAdjustment_2F303076E3E392CFA9EDF3C9002FA397" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue" xlink:label="loc_us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue_E21F73927695D9B9730DF3C9002FF98A" xlink:type="locator" />
    <link:presentationArc order="4" preferredLabel="http://www.xbrl.org/2003/role/periodEndLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationCalculationRollForward_6A54ADB6FA2A89617602F3C9002E20C0" xlink:to="loc_us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue_E21F73927695D9B9730DF3C9002FF98A" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueLow" xlink:label="loc_us-gaap_BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueLow_B5C98C4EC60F8F9B7A64F3D7C87C4E13" xlink:type="locator" />
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationLineItems_AD350B7099C2E10E9B4FF3C9002E9208" xlink:to="loc_us-gaap_BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueLow_B5C98C4EC60F8F9B7A64F3D7C87C4E13" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueHigh" xlink:label="loc_us-gaap_BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueHigh_AF7F388CDCFB98741C45F3D7C893FA0D" xlink:type="locator" />
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationLineItems_AD350B7099C2E10E9B4FF3C9002E9208" xlink:to="loc_us-gaap_BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueHigh_AF7F388CDCFB98741C45F3D7C893FA0D" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_GoodwillAndIntangibleAssetImpairment" xlink:label="loc_us-gaap_GoodwillAndIntangibleAssetImpairment_C6B3F6721A900706E851F3D8002508CC" xlink:type="locator" />
    <link:presentationArc order="4" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationLineItems_AD350B7099C2E10E9B4FF3C9002E9208" xlink:to="loc_us-gaap_GoodwillAndIntangibleAssetImpairment_C6B3F6721A900706E851F3D8002508CC" xlink:type="arc" />
  </link:presentationLink>
  <link:presentationLink xlink:role="http://cognex.com/role/FairValueMeasurementsTables" xlink:type="extended">
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_FairValueDisclosuresAbstract" xlink:label="loc_us-gaap_FairValueDisclosuresAbstract_65A47EB2AFCAD663E5148095E88BD15F" xlink:type="locator" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ScheduleOfFairValueAssetsAndLiabilitiesMeasuredOnRecurringBasisTableTextBlock" xlink:label="loc_us-gaap_ScheduleOfFairValueAssetsAndLiabilitiesMeasuredOnRecurringBasisTableTextBlock_5A24DB5F5E5F2D4F68538095E88BE060" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FairValueDisclosuresAbstract_65A47EB2AFCAD663E5148095E88BD15F" xlink:to="loc_us-gaap_ScheduleOfFairValueAssetsAndLiabilitiesMeasuredOnRecurringBasisTableTextBlock_5A24DB5F5E5F2D4F68538095E88BE060" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationTextBlock" xlink:label="loc_us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationTextBlock_2EA2181AEA9270CE9E368095E88B2095" xlink:type="locator" />
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FairValueDisclosuresAbstract_65A47EB2AFCAD663E5148095E88BD15F" xlink:to="loc_us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationTextBlock_2EA2181AEA9270CE9E368095E88B2095" xlink:type="arc" />
  </link:presentationLink>
  <link:presentationLink xlink:role="http://cognex.com/role/Goodwill" xlink:type="extended">
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract" xlink:label="loc_us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract_4651AC24C5DE06E7A8E38095E8D99F42" xlink:type="locator" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_GoodwillDisclosureTextBlock" xlink:label="loc_us-gaap_GoodwillDisclosureTextBlock_3A238C27CEA4970584F08095E8D906A2" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract_4651AC24C5DE06E7A8E38095E8D99F42" xlink:to="loc_us-gaap_GoodwillDisclosureTextBlock_3A238C27CEA4970584F08095E8D906A2" xlink:type="arc" />
  </link:presentationLink>
  <link:presentationLink xlink:role="http://cognex.com/role/GoodwillChangesInCarryingValueOfGoodwillDetail" xlink:type="extended">
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract" xlink:label="loc_us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract_D86D201F7D1EBCACFFF6F3C8FFD46225" xlink:type="locator" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ScheduleOfGoodwillTable" xlink:label="loc_us-gaap_ScheduleOfGoodwillTable_C2688F67A075E88C3BD9F3C8FFD4AF6F" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract_D86D201F7D1EBCACFFF6F3C8FFD46225" xlink:to="loc_us-gaap_ScheduleOfGoodwillTable_C2688F67A075E88C3BD9F3C8FFD4AF6F" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_BusinessAcquisitionAxis" xlink:label="loc_us-gaap_BusinessAcquisitionAxis_28E48C6666637AA7A530F3C8FFD49890" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfGoodwillTable_C2688F67A075E88C3BD9F3C8FFD4AF6F" xlink:to="loc_us-gaap_BusinessAcquisitionAxis_28E48C6666637AA7A530F3C8FFD49890" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_BusinessAcquisitionAcquireeDomain" xlink:label="loc_us-gaap_BusinessAcquisitionAcquireeDomain_C820A8C83F455F39BC67F3C8FFD5F544" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_BusinessAcquisitionAxis_28E48C6666637AA7A530F3C8FFD49890" xlink:to="loc_us-gaap_BusinessAcquisitionAcquireeDomain_C820A8C83F455F39BC67F3C8FFD5F544" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_SualabCo.Ltd.Member" xlink:label="loc_cgnx_SualabCo.Ltd.Member_2359434C2E10A6F96FDCF40F39844370" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_BusinessAcquisitionAcquireeDomain_C820A8C83F455F39BC67F3C8FFD5F544" xlink:to="loc_cgnx_SualabCo.Ltd.Member_2359434C2E10A6F96FDCF40F39844370" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_GoodwillLineItems" xlink:label="loc_us-gaap_GoodwillLineItems_7EBC56DB0EC5896455CEF3C8FFD5FDC2" xlink:type="locator" />
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfGoodwillTable_C2688F67A075E88C3BD9F3C8FFD4AF6F" xlink:to="loc_us-gaap_GoodwillLineItems_7EBC56DB0EC5896455CEF3C8FFD5FDC2" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_GoodwillRollForward" xlink:label="loc_us-gaap_GoodwillRollForward_BDAC0DA61DAA7E9C90DAF3C8FFD6E617" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_GoodwillLineItems_7EBC56DB0EC5896455CEF3C8FFD5FDC2" xlink:to="loc_us-gaap_GoodwillRollForward_BDAC0DA61DAA7E9C90DAF3C8FFD6E617" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_Goodwill" xlink:label="loc_us-gaap_Goodwill_0744871A2227B08574A6F3C8FFD6AE0F" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/periodStartLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_GoodwillRollForward_BDAC0DA61DAA7E9C90DAF3C8FFD6E617" xlink:to="loc_us-gaap_Goodwill_0744871A2227B08574A6F3C8FFD6AE0F" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_GoodwillAcquiredDuringPeriod" xlink:label="loc_us-gaap_GoodwillAcquiredDuringPeriod_DA8C795C2322F8BB0542F3C8FFD6B0B4" xlink:type="locator" />
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_GoodwillRollForward_BDAC0DA61DAA7E9C90DAF3C8FFD6E617" xlink:to="loc_us-gaap_GoodwillAcquiredDuringPeriod_DA8C795C2322F8BB0542F3C8FFD6B0B4" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_GoodwillForeignCurrencyTranslationGainLoss" xlink:label="loc_us-gaap_GoodwillForeignCurrencyTranslationGainLoss_670E2D39A11B71EAD142F41255C800F9" xlink:type="locator" />
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_GoodwillRollForward_BDAC0DA61DAA7E9C90DAF3C8FFD6E617" xlink:to="loc_us-gaap_GoodwillForeignCurrencyTranslationGainLoss_670E2D39A11B71EAD142F41255C800F9" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_Goodwill" xlink:label="loc_us-gaap_Goodwill_C4F669C50B297773D150F3C8FFD66F63" xlink:type="locator" />
    <link:presentationArc order="4" preferredLabel="http://www.xbrl.org/2003/role/periodEndLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_GoodwillRollForward_BDAC0DA61DAA7E9C90DAF3C8FFD6E617" xlink:to="loc_us-gaap_Goodwill_C4F669C50B297773D150F3C8FFD66F63" xlink:type="arc" />
  </link:presentationLink>
  <link:presentationLink xlink:role="http://cognex.com/role/GoodwillTables" xlink:type="extended">
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract" xlink:label="loc_us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract_C727578FC5BBDFD9378F8095E88C5B6C" xlink:type="locator" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ScheduleOfGoodwillTextBlock" xlink:label="loc_us-gaap_ScheduleOfGoodwillTextBlock_A5C0F0F8D1435A2DF4A58095E88C4C2F" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract_C727578FC5BBDFD9378F8095E88C5B6C" xlink:to="loc_us-gaap_ScheduleOfGoodwillTextBlock_A5C0F0F8D1435A2DF4A58095E88C4C2F" xlink:type="arc" />
  </link:presentationLink>
  <link:presentationLink xlink:role="http://cognex.com/role/IndemnificationProvisions" xlink:type="extended">
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_GuaranteesAbstract" xlink:label="loc_us-gaap_GuaranteesAbstract_8E9D64D577BEBDCEAA0D8095E8A36EA6" xlink:type="locator" />
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_IndemnificationProvisionsTextBlock" xlink:label="loc_cgnx_IndemnificationProvisionsTextBlock_BF4D8D82583CAF5927198095E8A30731" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_GuaranteesAbstract_8E9D64D577BEBDCEAA0D8095E8A36EA6" xlink:to="loc_cgnx_IndemnificationProvisionsTextBlock_BF4D8D82583CAF5927198095E8A30731" xlink:type="arc" />
  </link:presentationLink>
  <link:presentationLink xlink:role="http://cognex.com/role/IndemnificationProvisionsNarrativeDetails" xlink:type="extended">
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_GuaranteesAbstract" xlink:label="loc_us-gaap_GuaranteesAbstract_334F558F11C5BF93201035BFC901C089" xlink:type="locator" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_LossContingenciesTable" xlink:label="loc_us-gaap_LossContingenciesTable_AB0279D1DDE1ACD94E5F35BFC901600B" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_GuaranteesAbstract_334F558F11C5BF93201035BFC901C089" xlink:to="loc_us-gaap_LossContingenciesTable_AB0279D1DDE1ACD94E5F35BFC901600B" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_DisposalGroupClassificationAxis" xlink:label="loc_us-gaap_DisposalGroupClassificationAxis_00BDDD4C5667C7A5820335BFC90117BB" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LossContingenciesTable_AB0279D1DDE1ACD94E5F35BFC901600B" xlink:to="loc_us-gaap_DisposalGroupClassificationAxis_00BDDD4C5667C7A5820335BFC90117BB" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_DisposalGroupClassificationDomain" xlink:label="loc_us-gaap_DisposalGroupClassificationDomain_83E9F3B100FC3412E97435BFC90271CA" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DisposalGroupClassificationAxis_00BDDD4C5667C7A5820335BFC90117BB" xlink:to="loc_us-gaap_DisposalGroupClassificationDomain_83E9F3B100FC3412E97435BFC90271CA" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2018/elts/srt-2018-01-31.xsd#srt_LitigationCaseAxis" xlink:label="loc_srt_LitigationCaseAxis_6E731AA46229A1E9BFC435BFC902666D" xlink:type="locator" />
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LossContingenciesTable_AB0279D1DDE1ACD94E5F35BFC901600B" xlink:to="loc_srt_LitigationCaseAxis_6E731AA46229A1E9BFC435BFC902666D" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2018/elts/srt-2018-01-31.xsd#srt_LitigationCaseTypeDomain" xlink:label="loc_srt_LitigationCaseTypeDomain_0273003BE49B29493CA835BFC902626A" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_LitigationCaseAxis_6E731AA46229A1E9BFC435BFC902666D" xlink:to="loc_srt_LitigationCaseTypeDomain_0273003BE49B29493CA835BFC902626A" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_LitigationStatusAxis" xlink:label="loc_us-gaap_LitigationStatusAxis_800EDB91A740909D813635BFC9035F35" xlink:type="locator" />
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LossContingenciesTable_AB0279D1DDE1ACD94E5F35BFC901600B" xlink:to="loc_us-gaap_LitigationStatusAxis_800EDB91A740909D813635BFC9035F35" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_LitigationStatusDomain" xlink:label="loc_us-gaap_LitigationStatusDomain_9C9793E209286BF89AE835BFC903C9BA" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LitigationStatusAxis_800EDB91A740909D813635BFC9035F35" xlink:to="loc_us-gaap_LitigationStatusDomain_9C9793E209286BF89AE835BFC903C9BA" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_LossContingenciesByNatureOfContingencyAxis" xlink:label="loc_us-gaap_LossContingenciesByNatureOfContingencyAxis_65CFE90675C84200C6C735BFC9047089" xlink:type="locator" />
    <link:presentationArc order="4" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LossContingenciesTable_AB0279D1DDE1ACD94E5F35BFC901600B" xlink:to="loc_us-gaap_LossContingenciesByNatureOfContingencyAxis_65CFE90675C84200C6C735BFC9047089" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_LossContingencyNatureDomain" xlink:label="loc_us-gaap_LossContingencyNatureDomain_E208D362A51E9188B22735BFC904404F" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LossContingenciesByNatureOfContingencyAxis_65CFE90675C84200C6C735BFC9047089" xlink:to="loc_us-gaap_LossContingencyNatureDomain_E208D362A51E9188B22735BFC904404F" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_GuaranteeObligationsMember" xlink:label="loc_us-gaap_GuaranteeObligationsMember_36CA1DECB65F9A4D606535BFC9043117" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LossContingencyNatureDomain_E208D362A51E9188B22735BFC904404F" xlink:to="loc_us-gaap_GuaranteeObligationsMember_36CA1DECB65F9A4D606535BFC9043117" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_LossContingenciesLineItems" xlink:label="loc_us-gaap_LossContingenciesLineItems_4435AE4CC1E2CFD58C3835BFC90557EB" xlink:type="locator" />
    <link:presentationArc order="5" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LossContingenciesTable_AB0279D1DDE1ACD94E5F35BFC901600B" xlink:to="loc_us-gaap_LossContingenciesLineItems_4435AE4CC1E2CFD58C3835BFC90557EB" xlink:type="arc" />
  </link:presentationLink>
  <link:presentationLink xlink:role="http://cognex.com/role/IntangibleAssets" xlink:type="extended">
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract" xlink:label="loc_us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract_F617BB2937A5CB897BDE8095E5D42087" xlink:type="locator" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_IntangibleAssetsDisclosureTextBlock" xlink:label="loc_us-gaap_IntangibleAssetsDisclosureTextBlock_6E2AA5D1ED0218D4BE0F8095E5D57123" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract_F617BB2937A5CB897BDE8095E5D42087" xlink:to="loc_us-gaap_IntangibleAssetsDisclosureTextBlock_6E2AA5D1ED0218D4BE0F8095E5D57123" xlink:type="arc" />
  </link:presentationLink>
  <link:presentationLink xlink:role="http://cognex.com/role/IntangibleAssetsAmortizedIntangibleAssetsDetail" xlink:type="extended">
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract" xlink:label="loc_us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract_C820C734DD220F22B56430EAB79080CA" xlink:type="locator" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable" xlink:label="loc_us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable_8789136AA478A805CD4030EAB7916726" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract_C820C734DD220F22B56430EAB79080CA" xlink:to="loc_us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable_8789136AA478A805CD4030EAB7916726" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_C9D18B4724E1DD1B44F630EAB7919448" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable_8789136AA478A805CD4030EAB7916726" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_C9D18B4724E1DD1B44F630EAB7919448" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_753339B7EB5A3F8D485630EAB7918175" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_C9D18B4724E1DD1B44F630EAB7919448" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_753339B7EB5A3F8D485630EAB7918175" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_DistributionRightsMember" xlink:label="loc_us-gaap_DistributionRightsMember_86DC26C9427B7A1D506B30EAB791C222" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_753339B7EB5A3F8D485630EAB7918175" xlink:to="loc_us-gaap_DistributionRightsMember_86DC26C9427B7A1D506B30EAB791C222" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_DevelopedTechnologyRightsMember" xlink:label="loc_us-gaap_DevelopedTechnologyRightsMember_DFE4E36EA122880CF81030EAB792AAF8" xlink:type="locator" />
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_753339B7EB5A3F8D485630EAB7918175" xlink:to="loc_us-gaap_DevelopedTechnologyRightsMember_DFE4E36EA122880CF81030EAB792AAF8" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_CustomerContractsAndRelationshipsMember" xlink:label="loc_cgnx_CustomerContractsAndRelationshipsMember_D6F917A015685B619AE630EAB792A350" xlink:type="locator" />
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_753339B7EB5A3F8D485630EAB7918175" xlink:to="loc_cgnx_CustomerContractsAndRelationshipsMember_D6F917A015685B619AE630EAB792A350" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_InProcessResearchAndDevelopmentMember" xlink:label="loc_us-gaap_InProcessResearchAndDevelopmentMember_130747FF35BC14A973B630EAB792DCA8" xlink:type="locator" />
    <link:presentationArc order="4" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_753339B7EB5A3F8D485630EAB7918175" xlink:to="loc_us-gaap_InProcessResearchAndDevelopmentMember_130747FF35BC14A973B630EAB792DCA8" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_NoncompeteAgreementsMember" xlink:label="loc_us-gaap_NoncompeteAgreementsMember_E7524B4541979F07C7BF30EAB79241D6" xlink:type="locator" />
    <link:presentationArc order="5" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_753339B7EB5A3F8D485630EAB7918175" xlink:to="loc_us-gaap_NoncompeteAgreementsMember_E7524B4541979F07C7BF30EAB79241D6" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_TrademarksMember" xlink:label="loc_us-gaap_TrademarksMember_9E00504A4B85E31B18F130EAB793743F" xlink:type="locator" />
    <link:presentationArc order="6" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_753339B7EB5A3F8D485630EAB7918175" xlink:to="loc_us-gaap_TrademarksMember_9E00504A4B85E31B18F130EAB793743F" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_OtherIntangibleAssetsMember" xlink:label="loc_us-gaap_OtherIntangibleAssetsMember_52BE84243227E6BB1E0830EAB7933589" xlink:type="locator" />
    <link:presentationArc order="7" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_753339B7EB5A3F8D485630EAB7918175" xlink:to="loc_us-gaap_OtherIntangibleAssetsMember_52BE84243227E6BB1E0830EAB7933589" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsLineItems" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsLineItems_677F78B3DAEEA3C52CBE30EAB793BB3A" xlink:type="locator" />
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable_8789136AA478A805CD4030EAB7916726" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsLineItems_677F78B3DAEEA3C52CBE30EAB793BB3A" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsGross" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsGross_A2D239A5708A62A0549130EAB793D9BF" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsLineItems_677F78B3DAEEA3C52CBE30EAB793BB3A" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsGross_A2D239A5708A62A0549130EAB793D9BF" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization_12BB2EF3CF749AADAA8330EAB79395E2" xlink:type="locator" />
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsLineItems_677F78B3DAEEA3C52CBE30EAB793BB3A" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization_12BB2EF3CF749AADAA8330EAB79395E2" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_IntangibleAssetsNetIncludingGoodwill" xlink:label="loc_us-gaap_IntangibleAssetsNetIncludingGoodwill_109F1B8B8ECAB110495F30EABAF40E7A" xlink:type="locator" />
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsLineItems_677F78B3DAEEA3C52CBE30EAB793BB3A" xlink:to="loc_us-gaap_IntangibleAssetsNetIncludingGoodwill_109F1B8B8ECAB110495F30EABAF40E7A" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsNet" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsNet_0BB43CFA93571E4C618A30EAB7933A2E" xlink:type="locator" />
    <link:presentationArc order="4" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsLineItems_677F78B3DAEEA3C52CBE30EAB793BB3A" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsNet_0BB43CFA93571E4C618A30EAB7933A2E" xlink:type="arc" />
  </link:presentationLink>
  <link:presentationLink xlink:role="http://cognex.com/role/IntangibleAssetsEstimatedAmortizationExpenseSucceedingFiscalYearsDetail" xlink:type="extended">
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract" xlink:label="loc_us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract_89BF2398EAE823D793828095E63A94FC" xlink:type="locator" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths_ACA36C291E6C56AAF4D48095E63AFEAE" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract_89BF2398EAE823D793828095E63A94FC" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths_ACA36C291E6C56AAF4D48095E63AFEAE" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo_2A46B5BF213E98F92D808095E63ABEAA" xlink:type="locator" />
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract_89BF2398EAE823D793828095E63A94FC" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo_2A46B5BF213E98F92D808095E63ABEAA" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearThree" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearThree_6B590E6B4D0D38E4F50A8095E63A9046" xlink:type="locator" />
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract_89BF2398EAE823D793828095E63A94FC" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearThree_6B590E6B4D0D38E4F50A8095E63A9046" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFour" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFour_B83987ADC477C0B906208095E63BF2B8" xlink:type="locator" />
    <link:presentationArc order="4" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract_89BF2398EAE823D793828095E63A94FC" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFour_B83987ADC477C0B906208095E63BF2B8" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFive" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFive_A1398196F1CB409ABCE38095E63B5B32" xlink:type="locator" />
    <link:presentationArc order="5" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract_89BF2398EAE823D793828095E63A94FC" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFive_A1398196F1CB409ABCE38095E63B5B32" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive_EADCA1170BA4E6E3B1198095E63B3031" xlink:type="locator" />
    <link:presentationArc order="6" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract_89BF2398EAE823D793828095E63A94FC" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive_EADCA1170BA4E6E3B1198095E63B3031" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsNet" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsNet_DCFAE2D42D9FF5169E878095E63B1E29" xlink:type="locator" />
    <link:presentationArc order="7" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract_89BF2398EAE823D793828095E63A94FC" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsNet_DCFAE2D42D9FF5169E878095E63B1E29" xlink:type="arc" />
  </link:presentationLink>
  <link:presentationLink xlink:role="http://cognex.com/role/IntangibleAssetsTables" xlink:type="extended">
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract" xlink:label="loc_us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract_2D694170B0CE76E692D78095E8270680" xlink:type="locator" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock" xlink:label="loc_us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock_D0B98266D579156981748095E82796BC" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract_2D694170B0CE76E692D78095E8270680" xlink:to="loc_us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock_D0B98266D579156981748095E82796BC" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock" xlink:label="loc_us-gaap_ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock_23860B971F277EF3BA9D8095E8276600" xlink:type="locator" />
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract_2D694170B0CE76E692D78095E8270680" xlink:to="loc_us-gaap_ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock_23860B971F277EF3BA9D8095E8276600" xlink:type="arc" />
  </link:presentationLink>
  <link:presentationLink xlink:role="http://cognex.com/role/Inventories" xlink:type="extended">
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_InventoryDisclosureAbstract" xlink:label="loc_us-gaap_InventoryDisclosureAbstract_520E98C4B6383D58728E8095E8BEA5C4" xlink:type="locator" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_InventoryDisclosureTextBlock" xlink:label="loc_us-gaap_InventoryDisclosureTextBlock_A88A2868A0DCFDFF62438095E8BF6684" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_InventoryDisclosureAbstract_520E98C4B6383D58728E8095E8BEA5C4" xlink:to="loc_us-gaap_InventoryDisclosureTextBlock_A88A2868A0DCFDFF62438095E8BF6684" xlink:type="arc" />
  </link:presentationLink>
  <link:presentationLink xlink:role="http://cognex.com/role/InventoriesInventoriesDetail" xlink:type="extended">
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_InventoryDisclosureAbstract" xlink:label="loc_us-gaap_InventoryDisclosureAbstract_2433393BE8BD2FF647688095E5FA5379" xlink:type="locator" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_InventoryRawMaterialsNetOfReserves" xlink:label="loc_us-gaap_InventoryRawMaterialsNetOfReserves_730E3BB60E49603068398095E5FA7AE5" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_InventoryDisclosureAbstract_2433393BE8BD2FF647688095E5FA5379" xlink:to="loc_us-gaap_InventoryRawMaterialsNetOfReserves_730E3BB60E49603068398095E5FA7AE5" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_InventoryWorkInProcessNetOfReserves" xlink:label="loc_us-gaap_InventoryWorkInProcessNetOfReserves_4F65B24A2C003F2BC34D8095E5FA4D7D" xlink:type="locator" />
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_InventoryDisclosureAbstract_2433393BE8BD2FF647688095E5FA5379" xlink:to="loc_us-gaap_InventoryWorkInProcessNetOfReserves_4F65B24A2C003F2BC34D8095E5FA4D7D" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_InventoryFinishedGoodsNetOfReserves" xlink:label="loc_us-gaap_InventoryFinishedGoodsNetOfReserves_0B9CA83D4951956106468095E5FA7218" xlink:type="locator" />
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_InventoryDisclosureAbstract_2433393BE8BD2FF647688095E5FA5379" xlink:to="loc_us-gaap_InventoryFinishedGoodsNetOfReserves_0B9CA83D4951956106468095E5FA7218" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_InventoryNet" xlink:label="loc_us-gaap_InventoryNet_AFDC5F996F9953FB3EA98095E5FAE72E" xlink:type="locator" />
    <link:presentationArc order="4" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_InventoryDisclosureAbstract_2433393BE8BD2FF647688095E5FA5379" xlink:to="loc_us-gaap_InventoryNet_AFDC5F996F9953FB3EA98095E5FAE72E" xlink:type="arc" />
  </link:presentationLink>
  <link:presentationLink xlink:role="http://cognex.com/role/InventoriesTables" xlink:type="extended">
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_InventoryDisclosureAbstract" xlink:label="loc_us-gaap_InventoryDisclosureAbstract_81098B19EBC15BB54BE78095E896A9C4" xlink:type="locator" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ScheduleOfInventoryCurrentTableTextBlock" xlink:label="loc_us-gaap_ScheduleOfInventoryCurrentTableTextBlock_494303C701110FA250CE8095E8963C95" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_InventoryDisclosureAbstract_81098B19EBC15BB54BE78095E896A9C4" xlink:to="loc_us-gaap_ScheduleOfInventoryCurrentTableTextBlock_494303C701110FA250CE8095E8963C95" xlink:type="arc" />
  </link:presentationLink>
  <link:presentationLink xlink:role="http://cognex.com/role/LeasesDetails" xlink:type="extended">
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_LeasesAbstract" xlink:label="loc_us-gaap_LeasesAbstract_C6803FE7E195D818485FF3F5AF5624DA" xlink:type="locator" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_NewAccountingPronouncementsOrChangeInAccountingPrincipleTable" xlink:label="loc_us-gaap_NewAccountingPronouncementsOrChangeInAccountingPrincipleTable_E0C01722285E3035F133F3FA10DE842F" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LeasesAbstract_C6803FE7E195D818485FF3F5AF5624DA" xlink:to="loc_us-gaap_NewAccountingPronouncementsOrChangeInAccountingPrincipleTable_E0C01722285E3035F133F3FA10DE842F" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_AdjustmentsForNewAccountingPronouncementsAxis" xlink:label="loc_us-gaap_AdjustmentsForNewAccountingPronouncementsAxis_A38C9F752AA004DB9FCFF3FA32B08D8B" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_NewAccountingPronouncementsOrChangeInAccountingPrincipleTable_E0C01722285E3035F133F3FA10DE842F" xlink:to="loc_us-gaap_AdjustmentsForNewAccountingPronouncementsAxis_A38C9F752AA004DB9FCFF3FA32B08D8B" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_TypeOfAdoptionMember" xlink:label="loc_us-gaap_TypeOfAdoptionMember_61D8B3EC2D46DBD82B3BF3FA32B4694E" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AdjustmentsForNewAccountingPronouncementsAxis_A38C9F752AA004DB9FCFF3FA32B08D8B" xlink:to="loc_us-gaap_TypeOfAdoptionMember_61D8B3EC2D46DBD82B3BF3FA32B4694E" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_AccountingStandardsUpdate201602Member" xlink:label="loc_us-gaap_AccountingStandardsUpdate201602Member_E55315330D880C19DC52F3FA4FC0A5F9" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_TypeOfAdoptionMember_61D8B3EC2D46DBD82B3BF3FA32B4694E" xlink:to="loc_us-gaap_AccountingStandardsUpdate201602Member_E55315330D880C19DC52F3FA4FC0A5F9" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_NewAccountingPronouncementsOrChangeInAccountingPrincipleLineItems" xlink:label="loc_us-gaap_NewAccountingPronouncementsOrChangeInAccountingPrincipleLineItems_06AC62503233BA7E7897F3FA10DF8074" xlink:type="locator" />
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_NewAccountingPronouncementsOrChangeInAccountingPrincipleTable_E0C01722285E3035F133F3FA10DE842F" xlink:to="loc_us-gaap_NewAccountingPronouncementsOrChangeInAccountingPrincipleLineItems_06AC62503233BA7E7897F3FA10DF8074" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_OperatingLeaseRightOfUseAsset" xlink:label="loc_us-gaap_OperatingLeaseRightOfUseAsset_D60FB0D9DF7C8BDBE123F3F97C644CE5" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_NewAccountingPronouncementsOrChangeInAccountingPrincipleLineItems_06AC62503233BA7E7897F3FA10DF8074" xlink:to="loc_us-gaap_OperatingLeaseRightOfUseAsset_D60FB0D9DF7C8BDBE123F3F97C644CE5" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_OperatingLeaseLiabilityCurrent" xlink:label="loc_us-gaap_OperatingLeaseLiabilityCurrent_6019DCEDB53E48BC269FF3FB5E6C8807" xlink:type="locator" />
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_NewAccountingPronouncementsOrChangeInAccountingPrincipleLineItems_06AC62503233BA7E7897F3FA10DF8074" xlink:to="loc_us-gaap_OperatingLeaseLiabilityCurrent_6019DCEDB53E48BC269FF3FB5E6C8807" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_OperatingLeaseLiabilityNoncurrent" xlink:label="loc_us-gaap_OperatingLeaseLiabilityNoncurrent_C5FC9A022EEC38CF70A8F3F90CEE4D7A" xlink:type="locator" />
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_NewAccountingPronouncementsOrChangeInAccountingPrincipleLineItems_06AC62503233BA7E7897F3FA10DF8074" xlink:to="loc_us-gaap_OperatingLeaseLiabilityNoncurrent_C5FC9A022EEC38CF70A8F3F90CEE4D7A" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_OperatingLeaseExpense" xlink:label="loc_us-gaap_OperatingLeaseExpense_E9B6D2C27EBC440204B6F3FD0EE9510E" xlink:type="locator" />
    <link:presentationArc order="4" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_NewAccountingPronouncementsOrChangeInAccountingPrincipleLineItems_06AC62503233BA7E7897F3FA10DF8074" xlink:to="loc_us-gaap_OperatingLeaseExpense_E9B6D2C27EBC440204B6F3FD0EE9510E" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_OperatingLeasePayments" xlink:label="loc_us-gaap_OperatingLeasePayments_C0D2A231D57B0C3A37B4F3FDAA0D88B8" xlink:type="locator" />
    <link:presentationArc order="5" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_NewAccountingPronouncementsOrChangeInAccountingPrincipleLineItems_06AC62503233BA7E7897F3FA10DF8074" xlink:to="loc_us-gaap_OperatingLeasePayments_C0D2A231D57B0C3A37B4F3FDAA0D88B8" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_OperatingLeaseExpenseNoLiabilityOrAssetRecognized" xlink:label="loc_cgnx_OperatingLeaseExpenseNoLiabilityOrAssetRecognized_AE2BF7D5391C5C6EA8FFF3FFA888D701" xlink:type="locator" />
    <link:presentationArc order="6" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_NewAccountingPronouncementsOrChangeInAccountingPrincipleLineItems_06AC62503233BA7E7897F3FA10DF8074" xlink:to="loc_cgnx_OperatingLeaseExpenseNoLiabilityOrAssetRecognized_AE2BF7D5391C5C6EA8FFF3FFA888D701" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_LeaseAndRentalExpense" xlink:label="loc_us-gaap_LeaseAndRentalExpense_9E60831B7BDB419298C2F3FE8082801C" xlink:type="locator" />
    <link:presentationArc order="7" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_NewAccountingPronouncementsOrChangeInAccountingPrincipleLineItems_06AC62503233BA7E7897F3FA10DF8074" xlink:to="loc_us-gaap_LeaseAndRentalExpense_9E60831B7BDB419298C2F3FE8082801C" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_OperatingLeaseLiability" xlink:label="loc_us-gaap_OperatingLeaseLiability_BF64CCEFB3DC463FCD83F402F3C739A5" xlink:type="locator" />
    <link:presentationArc order="8" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_NewAccountingPronouncementsOrChangeInAccountingPrincipleLineItems_06AC62503233BA7E7897F3FA10DF8074" xlink:to="loc_us-gaap_OperatingLeaseLiability_BF64CCEFB3DC463FCD83F402F3C739A5" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_OperatingLeaseWeightedAverageDiscountRatePercent" xlink:label="loc_us-gaap_OperatingLeaseWeightedAverageDiscountRatePercent_D51C54562CC5D6B0AEDFF4044DEEAC03" xlink:type="locator" />
    <link:presentationArc order="9" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_NewAccountingPronouncementsOrChangeInAccountingPrincipleLineItems_06AC62503233BA7E7897F3FA10DF8074" xlink:to="loc_us-gaap_OperatingLeaseWeightedAverageDiscountRatePercent_D51C54562CC5D6B0AEDFF4044DEEAC03" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_OperatingLeaseWeightedAverageRemainingLeaseTerm1" xlink:label="loc_us-gaap_OperatingLeaseWeightedAverageRemainingLeaseTerm1_88224D8961D9ACCD7C00F4056057ED40" xlink:type="locator" />
    <link:presentationArc order="10" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_NewAccountingPronouncementsOrChangeInAccountingPrincipleLineItems_06AC62503233BA7E7897F3FA10DF8074" xlink:to="loc_us-gaap_OperatingLeaseWeightedAverageRemainingLeaseTerm1_88224D8961D9ACCD7C00F4056057ED40" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_OperatingLeaseLeaseIncome" xlink:label="loc_us-gaap_OperatingLeaseLeaseIncome_67FD589BD10ED0184008F406DD4489F4" xlink:type="locator" />
    <link:presentationArc order="11" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_NewAccountingPronouncementsOrChangeInAccountingPrincipleLineItems_06AC62503233BA7E7897F3FA10DF8074" xlink:to="loc_us-gaap_OperatingLeaseLeaseIncome_67FD589BD10ED0184008F406DD4489F4" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_RentalIncomeNonoperating" xlink:label="loc_us-gaap_RentalIncomeNonoperating_6ABF3F6FEEC6CF42C8CBF408ECB0B99B" xlink:type="locator" />
    <link:presentationArc order="12" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_NewAccountingPronouncementsOrChangeInAccountingPrincipleLineItems_06AC62503233BA7E7897F3FA10DF8074" xlink:to="loc_us-gaap_RentalIncomeNonoperating_6ABF3F6FEEC6CF42C8CBF408ECB0B99B" xlink:type="arc" />
  </link:presentationLink>
  <link:presentationLink xlink:role="http://cognex.com/role/LeasesLeases" xlink:type="extended">
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_LeasesAbstract" xlink:label="loc_us-gaap_LeasesAbstract_616D19B66604CAEFB915F3F5AF48A37B" xlink:type="locator" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_OperatingLeasesOfLessorDisclosureTextBlock" xlink:label="loc_us-gaap_OperatingLeasesOfLessorDisclosureTextBlock_E2C6577F93ED5BA3B99FF3F7D60F6CFE" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LeasesAbstract_616D19B66604CAEFB915F3F5AF48A37B" xlink:to="loc_us-gaap_OperatingLeasesOfLessorDisclosureTextBlock_E2C6577F93ED5BA3B99FF3F7D60F6CFE" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_LesseeOperatingLeasesTextBlock" xlink:label="loc_us-gaap_LesseeOperatingLeasesTextBlock_DC0A99EBC5C479007123F3F5D2DD639C" xlink:type="locator" />
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LeasesAbstract_616D19B66604CAEFB915F3F5AF48A37B" xlink:to="loc_us-gaap_LesseeOperatingLeasesTextBlock_DC0A99EBC5C479007123F3F5D2DD639C" xlink:type="arc" />
  </link:presentationLink>
  <link:presentationLink xlink:role="http://cognex.com/role/LeasesScheduleOfPaymentsDetails" xlink:type="extended">
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_LeasesAbstract" xlink:label="loc_us-gaap_LeasesAbstract_3B403A5B44C77A9BA3EAF400AABDF851" xlink:type="locator" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths" xlink:label="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths_624D9F0FCD010B7084C2F4010F332286" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LeasesAbstract_3B403A5B44C77A9BA3EAF400AABDF851" xlink:to="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths_624D9F0FCD010B7084C2F4010F332286" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo" xlink:label="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo_1250C887A372DBA9DCDFF401BDF0D3FC" xlink:type="locator" />
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LeasesAbstract_3B403A5B44C77A9BA3EAF400AABDF851" xlink:to="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo_1250C887A372DBA9DCDFF401BDF0D3FC" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree" xlink:label="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree_C1D65E9A9C8109CEE942F401BDFA2EEE" xlink:type="locator" />
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LeasesAbstract_3B403A5B44C77A9BA3EAF400AABDF851" xlink:to="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree_C1D65E9A9C8109CEE942F401BDFA2EEE" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour" xlink:label="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour_D1DF09E1B0351DF04F88F401BE002AC6" xlink:type="locator" />
    <link:presentationArc order="4" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LeasesAbstract_3B403A5B44C77A9BA3EAF400AABDF851" xlink:to="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour_D1DF09E1B0351DF04F88F401BE002AC6" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFive" xlink:label="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFive_D80603886E1B8A395E51F401BE0675E0" xlink:type="locator" />
    <link:presentationArc order="5" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LeasesAbstract_3B403A5B44C77A9BA3EAF400AABDF851" xlink:to="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFive_D80603886E1B8A395E51F401BE0675E0" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive" xlink:label="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive_CD161DCDE8140D889FDCF401BE0D9798" xlink:type="locator" />
    <link:presentationArc order="6" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LeasesAbstract_3B403A5B44C77A9BA3EAF400AABDF851" xlink:to="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive_CD161DCDE8140D889FDCF401BE0D9798" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue" xlink:label="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue_1F00AC948EB83C2820C5F401BE1422E0" xlink:type="locator" />
    <link:presentationArc order="7" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LeasesAbstract_3B403A5B44C77A9BA3EAF400AABDF851" xlink:to="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue_1F00AC948EB83C2820C5F401BE1422E0" xlink:type="arc" />
  </link:presentationLink>
  <link:presentationLink xlink:role="http://cognex.com/role/LeasesScheduleOfRentalReceiptsDetails" xlink:type="extended">
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_LeasesAbstract" xlink:label="loc_us-gaap_LeasesAbstract_9080DE1A4B97690D50D7F409EBA4E556" xlink:type="locator" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_LessorOperatingLeasePaymentsToBeReceivedNextTwelveMonths" xlink:label="loc_us-gaap_LessorOperatingLeasePaymentsToBeReceivedNextTwelveMonths_6394700A5A40B7A4F772F40B0044FF14" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LeasesAbstract_9080DE1A4B97690D50D7F409EBA4E556" xlink:to="loc_us-gaap_LessorOperatingLeasePaymentsToBeReceivedNextTwelveMonths_6394700A5A40B7A4F772F40B0044FF14" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_LessorOperatingLeasePaymentsToBeReceivedTwoYears" xlink:label="loc_us-gaap_LessorOperatingLeasePaymentsToBeReceivedTwoYears_41DAB1F21C465BB3DBC9F40B00561ACB" xlink:type="locator" />
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LeasesAbstract_9080DE1A4B97690D50D7F409EBA4E556" xlink:to="loc_us-gaap_LessorOperatingLeasePaymentsToBeReceivedTwoYears_41DAB1F21C465BB3DBC9F40B00561ACB" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_LessorOperatingLeasePaymentsToBeReceivedThreeYears" xlink:label="loc_us-gaap_LessorOperatingLeasePaymentsToBeReceivedThreeYears_FF669BED89C66E36BA92F40B00631113" xlink:type="locator" />
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LeasesAbstract_9080DE1A4B97690D50D7F409EBA4E556" xlink:to="loc_us-gaap_LessorOperatingLeasePaymentsToBeReceivedThreeYears_FF669BED89C66E36BA92F40B00631113" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_LessorOperatingLeasePaymentsToBeReceived" xlink:label="loc_us-gaap_LessorOperatingLeasePaymentsToBeReceived_87D1C2293BC29F4721C6F40B007478BD" xlink:type="locator" />
    <link:presentationArc order="4" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LeasesAbstract_9080DE1A4B97690D50D7F409EBA4E556" xlink:to="loc_us-gaap_LessorOperatingLeasePaymentsToBeReceived_87D1C2293BC29F4721C6F40B007478BD" xlink:type="arc" />
  </link:presentationLink>
  <link:presentationLink xlink:role="http://cognex.com/role/LeasesTables" xlink:type="extended">
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_LeasesAbstract" xlink:label="loc_us-gaap_LeasesAbstract_3DBAF6C7465A51DBCBD5F3F5AF501DEC" xlink:type="locator" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_LesseeOperatingLeaseLiabilityMaturityTableTextBlock" xlink:label="loc_us-gaap_LesseeOperatingLeaseLiabilityMaturityTableTextBlock_1F1B9FF443F1747A3699F3F6B5104F2C" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LeasesAbstract_3DBAF6C7465A51DBCBD5F3F5AF501DEC" xlink:to="loc_us-gaap_LesseeOperatingLeaseLiabilityMaturityTableTextBlock_1F1B9FF443F1747A3699F3F6B5104F2C" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_LessorOperatingLeasePaymentsToBeReceivedMaturityTableTextBlock" xlink:label="loc_us-gaap_LessorOperatingLeasePaymentsToBeReceivedMaturityTableTextBlock_C3BFEE3B8F70E0A5850AF3F8727FD63C" xlink:type="locator" />
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LeasesAbstract_3DBAF6C7465A51DBCBD5F3F5AF501DEC" xlink:to="loc_us-gaap_LessorOperatingLeasePaymentsToBeReceivedMaturityTableTextBlock_C3BFEE3B8F70E0A5850AF3F8727FD63C" xlink:type="arc" />
  </link:presentationLink>
  <link:presentationLink xlink:role="http://cognex.com/role/NewPronouncements" xlink:type="extended">
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_AccountingChangesAndErrorCorrectionsAbstract" xlink:label="loc_us-gaap_AccountingChangesAndErrorCorrectionsAbstract_3D13F0B91464EF63BCD78095E8D1D6F0" xlink:type="locator" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_NewAccountingPronouncementsAndChangesInAccountingPrinciplesTextBlock" xlink:label="loc_us-gaap_NewAccountingPronouncementsAndChangesInAccountingPrinciplesTextBlock_2F0FD66314A73AC0A2188095E8D13832" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AccountingChangesAndErrorCorrectionsAbstract_3D13F0B91464EF63BCD78095E8D1D6F0" xlink:to="loc_us-gaap_NewAccountingPronouncementsAndChangesInAccountingPrinciplesTextBlock_2F0FD66314A73AC0A2188095E8D13832" xlink:type="arc" />
  </link:presentationLink>
  <link:presentationLink xlink:role="http://cognex.com/role/NewPronouncementsDetails" xlink:type="extended">
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_AccountingChangesAndErrorCorrectionsAbstract" xlink:label="loc_us-gaap_AccountingChangesAndErrorCorrectionsAbstract_6DC3CCFFE7069557817F30EDE0B3BF9A" xlink:type="locator" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_NewAccountingPronouncementsOrChangeInAccountingPrincipleTable" xlink:label="loc_us-gaap_NewAccountingPronouncementsOrChangeInAccountingPrincipleTable_46E9E48377B65C81900630EDE0B49C18" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AccountingChangesAndErrorCorrectionsAbstract_6DC3CCFFE7069557817F30EDE0B3BF9A" xlink:to="loc_us-gaap_NewAccountingPronouncementsOrChangeInAccountingPrincipleTable_46E9E48377B65C81900630EDE0B49C18" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_AdjustmentsForNewAccountingPronouncementsAxis" xlink:label="loc_us-gaap_AdjustmentsForNewAccountingPronouncementsAxis_01EDEB748EADD450E2A330EDE0B4B676" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_NewAccountingPronouncementsOrChangeInAccountingPrincipleTable_46E9E48377B65C81900630EDE0B49C18" xlink:to="loc_us-gaap_AdjustmentsForNewAccountingPronouncementsAxis_01EDEB748EADD450E2A330EDE0B4B676" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_TypeOfAdoptionMember" xlink:label="loc_us-gaap_TypeOfAdoptionMember_9D9DBD880353B5EFD5E330EDE0B49C9D" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AdjustmentsForNewAccountingPronouncementsAxis_01EDEB748EADD450E2A330EDE0B4B676" xlink:to="loc_us-gaap_TypeOfAdoptionMember_9D9DBD880353B5EFD5E330EDE0B49C9D" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_AccountingStandardsUpdate201602Member" xlink:label="loc_us-gaap_AccountingStandardsUpdate201602Member_CD77C168680B139B67EC30EDE0B5C4AB" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_TypeOfAdoptionMember_9D9DBD880353B5EFD5E330EDE0B49C9D" xlink:to="loc_us-gaap_AccountingStandardsUpdate201602Member_CD77C168680B139B67EC30EDE0B5C4AB" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_StatementScenarioAxis" xlink:label="loc_us-gaap_StatementScenarioAxis_4ECA7CFBAC4627FF938930EDE0B5811F" xlink:type="locator" />
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_NewAccountingPronouncementsOrChangeInAccountingPrincipleTable_46E9E48377B65C81900630EDE0B49C18" xlink:to="loc_us-gaap_StatementScenarioAxis_4ECA7CFBAC4627FF938930EDE0B5811F" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ScenarioUnspecifiedDomain" xlink:label="loc_us-gaap_ScenarioUnspecifiedDomain_CF283C5ABC653C3E6E8630EDE0B5B7E1" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StatementScenarioAxis_4ECA7CFBAC4627FF938930EDE0B5811F" xlink:to="loc_us-gaap_ScenarioUnspecifiedDomain_CF283C5ABC653C3E6E8630EDE0B5B7E1" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_NewAccountingPronouncementsOrChangeInAccountingPrincipleLineItems" xlink:label="loc_us-gaap_NewAccountingPronouncementsOrChangeInAccountingPrincipleLineItems_C7CD83291B3AAA2BF3B730EDE0B63751" xlink:type="locator" />
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_NewAccountingPronouncementsOrChangeInAccountingPrincipleTable_46E9E48377B65C81900630EDE0B49C18" xlink:to="loc_us-gaap_NewAccountingPronouncementsOrChangeInAccountingPrincipleLineItems_C7CD83291B3AAA2BF3B730EDE0B63751" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_OperatingLeaseRightOfUseAsset" xlink:label="loc_us-gaap_OperatingLeaseRightOfUseAsset_7FCE55CCFD75D062559830EDE0B66D55" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_NewAccountingPronouncementsOrChangeInAccountingPrincipleLineItems_C7CD83291B3AAA2BF3B730EDE0B63751" xlink:to="loc_us-gaap_OperatingLeaseRightOfUseAsset_7FCE55CCFD75D062559830EDE0B66D55" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_OperatingLeaseLiability" xlink:label="loc_us-gaap_OperatingLeaseLiability_C8E122AA1519E0B7F3C930EDE0B68B05" xlink:type="locator" />
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_NewAccountingPronouncementsOrChangeInAccountingPrincipleLineItems_C7CD83291B3AAA2BF3B730EDE0B63751" xlink:to="loc_us-gaap_OperatingLeaseLiability_C8E122AA1519E0B7F3C930EDE0B68B05" xlink:type="arc" />
  </link:presentationLink>
  <link:presentationLink xlink:role="http://cognex.com/role/PropertyPlantAndEquipment" xlink:type="extended">
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_PropertyPlantAndEquipmentAbstract" xlink:label="loc_us-gaap_PropertyPlantAndEquipmentAbstract_ADCB7D65D45077D8D48B8095E7F70B26" xlink:type="locator" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_PropertyPlantAndEquipmentDisclosureTextBlock" xlink:label="loc_us-gaap_PropertyPlantAndEquipmentDisclosureTextBlock_7AECD14A9599B2F040138095E7F721FE" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentAbstract_ADCB7D65D45077D8D48B8095E7F70B26" xlink:to="loc_us-gaap_PropertyPlantAndEquipmentDisclosureTextBlock_7AECD14A9599B2F040138095E7F721FE" xlink:type="arc" />
  </link:presentationLink>
  <link:presentationLink xlink:role="http://cognex.com/role/PropertyPlantAndEquipmentAdditionalInformationDetails" xlink:type="extended">
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_PropertyPlantAndEquipmentAbstract" xlink:label="loc_us-gaap_PropertyPlantAndEquipmentAbstract_4E6CBE935E7B609614ECF3C8FFDF8688" xlink:type="locator" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_PropertyPlantAndEquipmentDisposals" xlink:label="loc_us-gaap_PropertyPlantAndEquipmentDisposals_CB2F36DA3370143BB4E1F3C8FFDFF6B5" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentAbstract_4E6CBE935E7B609614ECF3C8FFDF8688" xlink:to="loc_us-gaap_PropertyPlantAndEquipmentDisposals_CB2F36DA3370143BB4E1F3C8FFDFF6B5" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_AccumulatedDepreciationDepletionAndAmortizationSaleOfPropertyPlantAndEquipment1" xlink:label="loc_us-gaap_AccumulatedDepreciationDepletionAndAmortizationSaleOfPropertyPlantAndEquipment1_D75C724BD3290F85E141F3F3591A8D9B" xlink:type="locator" />
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentAbstract_4E6CBE935E7B609614ECF3C8FFDF8688" xlink:to="loc_us-gaap_AccumulatedDepreciationDepletionAndAmortizationSaleOfPropertyPlantAndEquipment1_D75C724BD3290F85E141F3F3591A8D9B" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_PropertySubjectToOrAvailableForOperatingLeaseGross" xlink:label="loc_us-gaap_PropertySubjectToOrAvailableForOperatingLeaseGross_6F7CC061F30C158DA514F3C8FFDF42CF" xlink:type="locator" />
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentAbstract_4E6CBE935E7B609614ECF3C8FFDF8688" xlink:to="loc_us-gaap_PropertySubjectToOrAvailableForOperatingLeaseGross_6F7CC061F30C158DA514F3C8FFDF42CF" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_PropertySubjectToOrAvailableForOperatingLeaseAccumulatedDepreciation" xlink:label="loc_us-gaap_PropertySubjectToOrAvailableForOperatingLeaseAccumulatedDepreciation_B6EEE54DDE3A620D9CB1F3C8FFE01499" xlink:type="locator" />
    <link:presentationArc order="4" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentAbstract_4E6CBE935E7B609614ECF3C8FFDF8688" xlink:to="loc_us-gaap_PropertySubjectToOrAvailableForOperatingLeaseAccumulatedDepreciation_B6EEE54DDE3A620D9CB1F3C8FFE01499" xlink:type="arc" />
  </link:presentationLink>
  <link:presentationLink xlink:role="http://cognex.com/role/PropertyPlantAndEquipmentPropertyPlantAndEquipmentDetail" xlink:type="extended">
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_PropertyPlantAndEquipmentAbstract" xlink:label="loc_us-gaap_PropertyPlantAndEquipmentAbstract_B3C25F32589ED6547F38F3C8FFE45B37" xlink:type="locator" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ScheduleOfPropertyPlantAndEquipmentTable" xlink:label="loc_us-gaap_ScheduleOfPropertyPlantAndEquipmentTable_00ED899AAD2C98482696F3C8FFE40297" xlink:type="locator" />
    <link:presentationArc order="1" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentAbstract_B3C25F32589ED6547F38F3C8FFE45B37" xlink:to="loc_us-gaap_ScheduleOfPropertyPlantAndEquipmentTable_00ED899AAD2C98482696F3C8FFE40297" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_PropertyPlantAndEquipmentByTypeAxis" xlink:label="loc_us-gaap_PropertyPlantAndEquipmentByTypeAxis_E60E213B1349F33A6D18F3C8FFE440CD" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfPropertyPlantAndEquipmentTable_00ED899AAD2C98482696F3C8FFE40297" xlink:to="loc_us-gaap_PropertyPlantAndEquipmentByTypeAxis_E60E213B1349F33A6D18F3C8FFE440CD" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_PropertyPlantAndEquipmentTypeDomain" xlink:label="loc_us-gaap_PropertyPlantAndEquipmentTypeDomain_F8F01BEBFBDE19802B7DF3C8FFE55D31" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentByTypeAxis_E60E213B1349F33A6D18F3C8FFE440CD" xlink:to="loc_us-gaap_PropertyPlantAndEquipmentTypeDomain_F8F01BEBFBDE19802B7DF3C8FFE55D31" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_LandMember" xlink:label="loc_us-gaap_LandMember_16A22946F242E2B52DBAF3C8FFE51DD2" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentTypeDomain_F8F01BEBFBDE19802B7DF3C8FFE55D31" xlink:to="loc_us-gaap_LandMember_16A22946F242E2B52DBAF3C8FFE51DD2" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_BuildingMember" xlink:label="loc_us-gaap_BuildingMember_F548CBB799446B98CA49F3C8FFE5657C" xlink:type="locator" />
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentTypeDomain_F8F01BEBFBDE19802B7DF3C8FFE55D31" xlink:to="loc_us-gaap_BuildingMember_F548CBB799446B98CA49F3C8FFE5657C" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_BuildingImprovementsMember" xlink:label="loc_us-gaap_BuildingImprovementsMember_D7A0AE5CD824733D05EBF3C8FFE5B932" xlink:type="locator" />
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentTypeDomain_F8F01BEBFBDE19802B7DF3C8FFE55D31" xlink:to="loc_us-gaap_BuildingImprovementsMember_D7A0AE5CD824733D05EBF3C8FFE5B932" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_LeaseholdImprovementsMember" xlink:label="loc_us-gaap_LeaseholdImprovementsMember_A20526049B615C49F86AF3C8FFE67387" xlink:type="locator" />
    <link:presentationArc order="4" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentTypeDomain_F8F01BEBFBDE19802B7DF3C8FFE55D31" xlink:to="loc_us-gaap_LeaseholdImprovementsMember_A20526049B615C49F86AF3C8FFE67387" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_HardwareAndSoftwareMember" xlink:label="loc_cgnx_HardwareAndSoftwareMember_A110795A7683F75ABC9BF3C8FFE600C0" xlink:type="locator" />
    <link:presentationArc order="5" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentTypeDomain_F8F01BEBFBDE19802B7DF3C8FFE55D31" xlink:to="loc_cgnx_HardwareAndSoftwareMember_A110795A7683F75ABC9BF3C8FFE600C0" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_EquipmentMember" xlink:label="loc_us-gaap_EquipmentMember_06023722A9F584C644E3F3C8FFE64CFF" xlink:type="locator" />
    <link:presentationArc order="6" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentTypeDomain_F8F01BEBFBDE19802B7DF3C8FFE55D31" xlink:to="loc_us-gaap_EquipmentMember_06023722A9F584C644E3F3C8FFE64CFF" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_FurnitureAndFixturesMember" xlink:label="loc_us-gaap_FurnitureAndFixturesMember_51675EBEF6C4F9BBE361F3C8FFE65F7D" xlink:type="locator" />
    <link:presentationArc order="7" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentTypeDomain_F8F01BEBFBDE19802B7DF3C8FFE55D31" xlink:to="loc_us-gaap_FurnitureAndFixturesMember_51675EBEF6C4F9BBE361F3C8FFE65F7D" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_PropertyPlantAndEquipmentLineItems" xlink:label="loc_us-gaap_PropertyPlantAndEquipmentLineItems_A1CB0E2471AC68AE62BAF3C8FFE64C9A" xlink:type="locator" />
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfPropertyPlantAndEquipmentTable_00ED899AAD2C98482696F3C8FFE40297" xlink:to="loc_us-gaap_PropertyPlantAndEquipmentLineItems_A1CB0E2471AC68AE62BAF3C8FFE64C9A" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_PropertyPlantAndEquipmentGross" xlink:label="loc_us-gaap_PropertyPlantAndEquipmentGross_6C1D70A4ED67A4EA2777F3C8FFE6047F" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentLineItems_A1CB0E2471AC68AE62BAF3C8FFE64C9A" xlink:to="loc_us-gaap_PropertyPlantAndEquipmentGross_6C1D70A4ED67A4EA2777F3C8FFE6047F" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment" xlink:label="loc_us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment_82CDFF486782EBF3545DF3C8FFE7F821" xlink:type="locator" />
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentLineItems_A1CB0E2471AC68AE62BAF3C8FFE64C9A" xlink:to="loc_us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment_82CDFF486782EBF3545DF3C8FFE7F821" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_PropertyPlantAndEquipmentNet" xlink:label="loc_us-gaap_PropertyPlantAndEquipmentNet_27FEE7A4128862D569EDF3C8FFE77FC2" xlink:type="locator" />
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentLineItems_A1CB0E2471AC68AE62BAF3C8FFE64C9A" xlink:to="loc_us-gaap_PropertyPlantAndEquipmentNet_27FEE7A4128862D569EDF3C8FFE77FC2" xlink:type="arc" />
  </link:presentationLink>
  <link:presentationLink xlink:role="http://cognex.com/role/PropertyPlantAndEquipmentTables" xlink:type="extended">
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_PropertyPlantAndEquipmentAbstract" xlink:label="loc_us-gaap_PropertyPlantAndEquipmentAbstract_C915F5748F6CCE93FAB98095E56BA2E4" xlink:type="locator" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_PropertyPlantAndEquipmentTextBlock" xlink:label="loc_us-gaap_PropertyPlantAndEquipmentTextBlock_8926FC40B3F622AE22268095E56B31CC" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentAbstract_C915F5748F6CCE93FAB98095E56BA2E4" xlink:to="loc_us-gaap_PropertyPlantAndEquipmentTextBlock_8926FC40B3F622AE22268095E56B31CC" xlink:type="arc" />
  </link:presentationLink>
  <link:presentationLink xlink:role="http://cognex.com/role/RevenueRecognition" xlink:type="extended">
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_RevenueFromContractWithCustomerAbstract" xlink:label="loc_us-gaap_RevenueFromContractWithCustomerAbstract_C4864C6E06E8DD6F1B708095E69851F2" xlink:type="locator" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_RevenueFromContractWithCustomerTextBlock" xlink:label="loc_us-gaap_RevenueFromContractWithCustomerTextBlock_46EFEDDFB30A5257B1528095E6987ED7" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_RevenueFromContractWithCustomerAbstract_C4864C6E06E8DD6F1B708095E69851F2" xlink:to="loc_us-gaap_RevenueFromContractWithCustomerTextBlock_46EFEDDFB30A5257B1528095E6987ED7" xlink:type="arc" />
  </link:presentationLink>
  <link:presentationLink xlink:role="http://cognex.com/role/RevenueRecognitionBalanceSheetImpactDetails" xlink:type="extended">
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_RevenueFromContractWithCustomerAbstract" xlink:label="loc_us-gaap_RevenueFromContractWithCustomerAbstract_02470477EDE8B22018CC30EEB15D36EC" xlink:type="locator" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_RevenueInitialApplicationPeriodCumulativeEffectTransitionTable" xlink:label="loc_us-gaap_RevenueInitialApplicationPeriodCumulativeEffectTransitionTable_47F8E18C6638D2D03C1030EEB15E4F15" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_RevenueFromContractWithCustomerAbstract_02470477EDE8B22018CC30EEB15D36EC" xlink:to="loc_us-gaap_RevenueInitialApplicationPeriodCumulativeEffectTransitionTable_47F8E18C6638D2D03C1030EEB15E4F15" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2018/elts/srt-2018-01-31.xsd#srt_RestatementAxis" xlink:label="loc_srt_RestatementAxis_24AA50CD2B35A6D8E08730EEB15E4CCE" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_RevenueInitialApplicationPeriodCumulativeEffectTransitionTable_47F8E18C6638D2D03C1030EEB15E4F15" xlink:to="loc_srt_RestatementAxis_24AA50CD2B35A6D8E08730EEB15E4CCE" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2018/elts/srt-2018-01-31.xsd#srt_RestatementDomain" xlink:label="loc_srt_RestatementDomain_A353C9EC11AD196D821230EEB15E4D19" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_RestatementAxis_24AA50CD2B35A6D8E08730EEB15E4CCE" xlink:to="loc_srt_RestatementDomain_A353C9EC11AD196D821230EEB15E4D19" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2018/elts/srt-2018-01-31.xsd#srt_ScenarioPreviouslyReportedMember" xlink:label="loc_srt_ScenarioPreviouslyReportedMember_0A780E4498475F0C8DF430EEB15F88BB" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_RestatementDomain_A353C9EC11AD196D821230EEB15E4D19" xlink:to="loc_srt_ScenarioPreviouslyReportedMember_0A780E4498475F0C8DF430EEB15F88BB" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2018/elts/srt-2018-01-31.xsd#srt_RestatementAdjustmentMember" xlink:label="loc_srt_RestatementAdjustmentMember_081D74C7C44A9820448530EEB15F76AA" xlink:type="locator" />
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_RestatementDomain_A353C9EC11AD196D821230EEB15E4D19" xlink:to="loc_srt_RestatementAdjustmentMember_081D74C7C44A9820448530EEB15F76AA" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_AdjustmentsForNewAccountingPronouncementsAxis" xlink:label="loc_us-gaap_AdjustmentsForNewAccountingPronouncementsAxis_9531D7B6F656B9AB0D4A30EEB15F6AF1" xlink:type="locator" />
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_RevenueInitialApplicationPeriodCumulativeEffectTransitionTable_47F8E18C6638D2D03C1030EEB15E4F15" xlink:to="loc_us-gaap_AdjustmentsForNewAccountingPronouncementsAxis_9531D7B6F656B9AB0D4A30EEB15F6AF1" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_TypeOfAdoptionMember" xlink:label="loc_us-gaap_TypeOfAdoptionMember_66DA580998F1796699C030EEB15F4B53" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AdjustmentsForNewAccountingPronouncementsAxis_9531D7B6F656B9AB0D4A30EEB15F6AF1" xlink:to="loc_us-gaap_TypeOfAdoptionMember_66DA580998F1796699C030EEB15F4B53" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_RevenueInitialApplicationPeriodCumulativeEffectTransitionLineItems" xlink:label="loc_us-gaap_RevenueInitialApplicationPeriodCumulativeEffectTransitionLineItems_61885D4EB7F467ABCBC930EEB160AACA" xlink:type="locator" />
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_RevenueInitialApplicationPeriodCumulativeEffectTransitionTable_47F8E18C6638D2D03C1030EEB15E4F15" xlink:to="loc_us-gaap_RevenueInitialApplicationPeriodCumulativeEffectTransitionLineItems_61885D4EB7F467ABCBC930EEB160AACA" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_PrepaidExpenseAndOtherAssetsCurrent" xlink:label="loc_us-gaap_PrepaidExpenseAndOtherAssetsCurrent_C85D4940B53179C0D08330EEB16034C5" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_RevenueInitialApplicationPeriodCumulativeEffectTransitionLineItems_61885D4EB7F467ABCBC930EEB160AACA" xlink:to="loc_us-gaap_PrepaidExpenseAndOtherAssetsCurrent_C85D4940B53179C0D08330EEB16034C5" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_AccruedIncomeTaxesCurrent" xlink:label="loc_us-gaap_AccruedIncomeTaxesCurrent_47156A69C681A350E4E530EEB160D629" xlink:type="locator" />
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_RevenueInitialApplicationPeriodCumulativeEffectTransitionLineItems_61885D4EB7F467ABCBC930EEB160AACA" xlink:to="loc_us-gaap_AccruedIncomeTaxesCurrent_47156A69C681A350E4E530EEB160D629" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ContractWithCustomerLiabilityCurrent" xlink:label="loc_us-gaap_ContractWithCustomerLiabilityCurrent_ECB3095A8DB7AEC056B430EEB160D84D" xlink:type="locator" />
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_RevenueInitialApplicationPeriodCumulativeEffectTransitionLineItems_61885D4EB7F467ABCBC930EEB160AACA" xlink:to="loc_us-gaap_ContractWithCustomerLiabilityCurrent_ECB3095A8DB7AEC056B430EEB160D84D" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_RetainedEarningsAccumulatedDeficit" xlink:label="loc_us-gaap_RetainedEarningsAccumulatedDeficit_96062CD99023A2DD01CF30EEB160B191" xlink:type="locator" />
    <link:presentationArc order="4" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_RevenueInitialApplicationPeriodCumulativeEffectTransitionLineItems_61885D4EB7F467ABCBC930EEB160AACA" xlink:to="loc_us-gaap_RetainedEarningsAccumulatedDeficit_96062CD99023A2DD01CF30EEB160B191" xlink:type="arc" />
  </link:presentationLink>
  <link:presentationLink xlink:role="http://cognex.com/role/RevenueRecognitionDeferredRevenueAndCustomerDepositsRollforwardDetails" xlink:type="extended">
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_RevenueFromContractWithCustomerAbstract" xlink:label="loc_us-gaap_RevenueFromContractWithCustomerAbstract_813B8D13233B9A12467B8095E69A81CF" xlink:type="locator" />
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_CustomerContractsLiabilityCurrentRollForward" xlink:label="loc_cgnx_CustomerContractsLiabilityCurrentRollForward_FD7BB952781C03E2D2B18095E69A0FD6" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_RevenueFromContractWithCustomerAbstract_813B8D13233B9A12467B8095E69A81CF" xlink:to="loc_cgnx_CustomerContractsLiabilityCurrentRollForward_FD7BB952781C03E2D2B18095E69A0FD6" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ContractWithCustomerLiabilityCurrent" xlink:label="loc_us-gaap_ContractWithCustomerLiabilityCurrent_7EF90231620A465876728095E69B0DB3" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/periodStartLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_cgnx_CustomerContractsLiabilityCurrentRollForward_FD7BB952781C03E2D2B18095E69A0FD6" xlink:to="loc_us-gaap_ContractWithCustomerLiabilityCurrent_7EF90231620A465876728095E69B0DB3" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_IncreaseDecreaseInContractWithCustomerLiability" xlink:label="loc_us-gaap_IncreaseDecreaseInContractWithCustomerLiability_087967F0152A773FBA958095E69B0911" xlink:type="locator" />
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_cgnx_CustomerContractsLiabilityCurrentRollForward_FD7BB952781C03E2D2B18095E69A0FD6" xlink:to="loc_us-gaap_IncreaseDecreaseInContractWithCustomerLiability_087967F0152A773FBA958095E69B0911" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ContractWithCustomerLiabilityRevenueRecognized" xlink:label="loc_us-gaap_ContractWithCustomerLiabilityRevenueRecognized_3BD88F8E5A727C9154278095E69B0229" xlink:type="locator" />
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2009/role/negatedTerseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_cgnx_CustomerContractsLiabilityCurrentRollForward_FD7BB952781C03E2D2B18095E69A0FD6" xlink:to="loc_us-gaap_ContractWithCustomerLiabilityRevenueRecognized_3BD88F8E5A727C9154278095E69B0229" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_ContractLiabilityForeignExchangeRateChanges" xlink:label="loc_cgnx_ContractLiabilityForeignExchangeRateChanges_F550F14858DFB42405528095E69BB891" xlink:type="locator" />
    <link:presentationArc order="4" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_cgnx_CustomerContractsLiabilityCurrentRollForward_FD7BB952781C03E2D2B18095E69A0FD6" xlink:to="loc_cgnx_ContractLiabilityForeignExchangeRateChanges_F550F14858DFB42405528095E69BB891" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ContractWithCustomerLiabilityCurrent" xlink:label="loc_us-gaap_ContractWithCustomerLiabilityCurrent_5354BF0DADC25092BF068095E69BB989" xlink:type="locator" />
    <link:presentationArc order="5" preferredLabel="http://www.xbrl.org/2003/role/periodEndLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_cgnx_CustomerContractsLiabilityCurrentRollForward_FD7BB952781C03E2D2B18095E69A0FD6" xlink:to="loc_us-gaap_ContractWithCustomerLiabilityCurrent_5354BF0DADC25092BF068095E69BB989" xlink:type="arc" />
  </link:presentationLink>
  <link:presentationLink xlink:role="http://cognex.com/role/RevenueRecognitionDisaggregationByGeographyAndTypeDetails" xlink:type="extended">
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_RevenueFromContractWithCustomerAbstract" xlink:label="loc_us-gaap_RevenueFromContractWithCustomerAbstract_318195D859251863CC0B8095E7C96F62" xlink:type="locator" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_DisaggregationOfRevenueTable" xlink:label="loc_us-gaap_DisaggregationOfRevenueTable_1F42CBFA650F66BD821D8095E7C93D2F" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_RevenueFromContractWithCustomerAbstract_318195D859251863CC0B8095E7C96F62" xlink:to="loc_us-gaap_DisaggregationOfRevenueTable_1F42CBFA650F66BD821D8095E7C93D2F" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2018/elts/srt-2018-01-31.xsd#srt_StatementGeographicalAxis" xlink:label="loc_srt_StatementGeographicalAxis_A0DC6B252882BD69C5698095E7CA02B6" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DisaggregationOfRevenueTable_1F42CBFA650F66BD821D8095E7C93D2F" xlink:to="loc_srt_StatementGeographicalAxis_A0DC6B252882BD69C5698095E7CA02B6" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2018/elts/srt-2018-01-31.xsd#srt_SegmentGeographicalDomain" xlink:label="loc_srt_SegmentGeographicalDomain_9C6AF6EF4867D79EEE338095E7CA2140" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_StatementGeographicalAxis_A0DC6B252882BD69C5698095E7CA02B6" xlink:to="loc_srt_SegmentGeographicalDomain_9C6AF6EF4867D79EEE338095E7CA2140" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2018/elts/srt-2018-01-31.xsd#srt_AmericasMember" xlink:label="loc_srt_AmericasMember_AF2AAEE74332B67BFAFA8095E7CB699C" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_SegmentGeographicalDomain_9C6AF6EF4867D79EEE338095E7CA2140" xlink:to="loc_srt_AmericasMember_AF2AAEE74332B67BFAFA8095E7CB699C" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2018/elts/srt-2018-01-31.xsd#srt_EuropeMember" xlink:label="loc_srt_EuropeMember_9BDE3FE1A6E226BAEDA78095E7CB0DAF" xlink:type="locator" />
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_SegmentGeographicalDomain_9C6AF6EF4867D79EEE338095E7CA2140" xlink:to="loc_srt_EuropeMember_9BDE3FE1A6E226BAEDA78095E7CB0DAF" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_GreaterChinaMember" xlink:label="loc_cgnx_GreaterChinaMember_A61C195EF7BEF06687608095E7CB0D1D" xlink:type="locator" />
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_SegmentGeographicalDomain_9C6AF6EF4867D79EEE338095E7CA2140" xlink:to="loc_cgnx_GreaterChinaMember_A61C195EF7BEF06687608095E7CB0D1D" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_OtherAsiaMember" xlink:label="loc_cgnx_OtherAsiaMember_5F5F61EF62B4A2D330678095E7CBA5E3" xlink:type="locator" />
    <link:presentationArc order="4" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_SegmentGeographicalDomain_9C6AF6EF4867D79EEE338095E7CA2140" xlink:to="loc_cgnx_OtherAsiaMember_5F5F61EF62B4A2D330678095E7CBA5E3" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2018/elts/srt-2018-01-31.xsd#srt_ProductOrServiceAxis" xlink:label="loc_srt_ProductOrServiceAxis_2A469A5BC03427C2B1C58095E7CBCB38" xlink:type="locator" />
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DisaggregationOfRevenueTable_1F42CBFA650F66BD821D8095E7C93D2F" xlink:to="loc_srt_ProductOrServiceAxis_2A469A5BC03427C2B1C58095E7CBCB38" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2018/elts/srt-2018-01-31.xsd#srt_ProductsAndServicesDomain" xlink:label="loc_srt_ProductsAndServicesDomain_BD41715CC781B9C21BBB8095E7CB3030" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_ProductOrServiceAxis_2A469A5BC03427C2B1C58095E7CBCB38" xlink:to="loc_srt_ProductsAndServicesDomain_BD41715CC781B9C21BBB8095E7CB3030" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_StandardProductandServicesMember" xlink:label="loc_cgnx_StandardProductandServicesMember_F384FFCF6D1656B360118095E7CB1C2B" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_ProductsAndServicesDomain_BD41715CC781B9C21BBB8095E7CB3030" xlink:to="loc_cgnx_StandardProductandServicesMember_F384FFCF6D1656B360118095E7CB1C2B" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_ApplicationofCustomerSpecificSolutionsMember" xlink:label="loc_cgnx_ApplicationofCustomerSpecificSolutionsMember_B8CADF21BE7166734B7E8095E7CC9FF7" xlink:type="locator" />
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_ProductsAndServicesDomain_BD41715CC781B9C21BBB8095E7CB3030" xlink:to="loc_cgnx_ApplicationofCustomerSpecificSolutionsMember_B8CADF21BE7166734B7E8095E7CC9FF7" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_DisaggregationOfRevenueLineItems" xlink:label="loc_us-gaap_DisaggregationOfRevenueLineItems_079986992CEB7DED66128095E7CC7D7D" xlink:type="locator" />
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DisaggregationOfRevenueTable_1F42CBFA650F66BD821D8095E7C93D2F" xlink:to="loc_us-gaap_DisaggregationOfRevenueLineItems_079986992CEB7DED66128095E7CC7D7D" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax" xlink:label="loc_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax_144FE17F7CD85C6C17708095E7CC93BC" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DisaggregationOfRevenueLineItems_079986992CEB7DED66128095E7CC7D7D" xlink:to="loc_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax_144FE17F7CD85C6C17708095E7CC93BC" xlink:type="arc" />
  </link:presentationLink>
  <link:presentationLink xlink:role="http://cognex.com/role/RevenueRecognitionNarrativesDetails" xlink:type="extended">
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_RevenueFromContractWithCustomerAbstract" xlink:label="loc_us-gaap_RevenueFromContractWithCustomerAbstract_53F319CC52F73B9BFF1D8095E566B46F" xlink:type="locator" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_CapitalizedContractCostGross" xlink:label="loc_us-gaap_CapitalizedContractCostGross_D178EE728DA28D924AC58095E5665994" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_RevenueFromContractWithCustomerAbstract_53F319CC52F73B9BFF1D8095E566B46F" xlink:to="loc_us-gaap_CapitalizedContractCostGross_D178EE728DA28D924AC58095E5665994" xlink:type="arc" />
  </link:presentationLink>
  <link:presentationLink xlink:role="http://cognex.com/role/RevenueRecognitionStatementOfOperationsImpactDetails" xlink:type="extended">
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_RevenueFromContractWithCustomerAbstract" xlink:label="loc_us-gaap_RevenueFromContractWithCustomerAbstract_FFC33A0D6087ADDCA01A30EED0F41C4B" xlink:type="locator" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_RevenueInitialApplicationPeriodCumulativeEffectTransitionTable" xlink:label="loc_us-gaap_RevenueInitialApplicationPeriodCumulativeEffectTransitionTable_55CFF700393DA30590A630EED0F4B4BE" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_RevenueFromContractWithCustomerAbstract_FFC33A0D6087ADDCA01A30EED0F41C4B" xlink:to="loc_us-gaap_RevenueInitialApplicationPeriodCumulativeEffectTransitionTable_55CFF700393DA30590A630EED0F4B4BE" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2018/elts/srt-2018-01-31.xsd#srt_RestatementAxis" xlink:label="loc_srt_RestatementAxis_28590BC860DC1CE8EABF30EED0F43FCE" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_RevenueInitialApplicationPeriodCumulativeEffectTransitionTable_55CFF700393DA30590A630EED0F4B4BE" xlink:to="loc_srt_RestatementAxis_28590BC860DC1CE8EABF30EED0F43FCE" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2018/elts/srt-2018-01-31.xsd#srt_RestatementDomain" xlink:label="loc_srt_RestatementDomain_ED16010EB5272092538D30EED0F55EB8" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_RestatementAxis_28590BC860DC1CE8EABF30EED0F43FCE" xlink:to="loc_srt_RestatementDomain_ED16010EB5272092538D30EED0F55EB8" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2018/elts/srt-2018-01-31.xsd#srt_ScenarioPreviouslyReportedMember" xlink:label="loc_srt_ScenarioPreviouslyReportedMember_5389702A27F963272C0E30EED0F53822" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_RestatementDomain_ED16010EB5272092538D30EED0F55EB8" xlink:to="loc_srt_ScenarioPreviouslyReportedMember_5389702A27F963272C0E30EED0F53822" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2018/elts/srt-2018-01-31.xsd#srt_RestatementAdjustmentMember" xlink:label="loc_srt_RestatementAdjustmentMember_9F17C98A9C19A205A19930EED0F5817E" xlink:type="locator" />
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_RestatementDomain_ED16010EB5272092538D30EED0F55EB8" xlink:to="loc_srt_RestatementAdjustmentMember_9F17C98A9C19A205A19930EED0F5817E" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_AdjustmentsForNewAccountingPronouncementsAxis" xlink:label="loc_us-gaap_AdjustmentsForNewAccountingPronouncementsAxis_7E4D3DE609F3FD7C4EC830EED0F56C50" xlink:type="locator" />
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_RevenueInitialApplicationPeriodCumulativeEffectTransitionTable_55CFF700393DA30590A630EED0F4B4BE" xlink:to="loc_us-gaap_AdjustmentsForNewAccountingPronouncementsAxis_7E4D3DE609F3FD7C4EC830EED0F56C50" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_TypeOfAdoptionMember" xlink:label="loc_us-gaap_TypeOfAdoptionMember_A5F6BB71974DD35A564730EED0F53A2E" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AdjustmentsForNewAccountingPronouncementsAxis_7E4D3DE609F3FD7C4EC830EED0F56C50" xlink:to="loc_us-gaap_TypeOfAdoptionMember_A5F6BB71974DD35A564730EED0F53A2E" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_RevenueInitialApplicationPeriodCumulativeEffectTransitionLineItems" xlink:label="loc_us-gaap_RevenueInitialApplicationPeriodCumulativeEffectTransitionLineItems_FA874236EBB67B0A498830EED0F6EB30" xlink:type="locator" />
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_RevenueInitialApplicationPeriodCumulativeEffectTransitionTable_55CFF700393DA30590A630EED0F4B4BE" xlink:to="loc_us-gaap_RevenueInitialApplicationPeriodCumulativeEffectTransitionLineItems_FA874236EBB67B0A498830EED0F6EB30" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax" xlink:label="loc_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax_0535C0E446F15F97F9FE30EED0F65C62" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_RevenueInitialApplicationPeriodCumulativeEffectTransitionLineItems_FA874236EBB67B0A498830EED0F6EB30" xlink:to="loc_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax_0535C0E446F15F97F9FE30EED0F65C62" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_CostOfGoodsAndServicesSold" xlink:label="loc_us-gaap_CostOfGoodsAndServicesSold_9931058BB19FFC61CAF530EED0F7B936" xlink:type="locator" />
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_RevenueInitialApplicationPeriodCumulativeEffectTransitionLineItems_FA874236EBB67B0A498830EED0F6EB30" xlink:to="loc_us-gaap_CostOfGoodsAndServicesSold_9931058BB19FFC61CAF530EED0F7B936" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_GrossProfit" xlink:label="loc_us-gaap_GrossProfit_E092F6E5DD51FD85CB9830EED0F7391A" xlink:type="locator" />
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_RevenueInitialApplicationPeriodCumulativeEffectTransitionLineItems_FA874236EBB67B0A498830EED0F6EB30" xlink:to="loc_us-gaap_GrossProfit_E092F6E5DD51FD85CB9830EED0F7391A" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_OperatingIncomeLoss" xlink:label="loc_us-gaap_OperatingIncomeLoss_16EE3D9564C8B4FC995B30EED0F7984C" xlink:type="locator" />
    <link:presentationArc order="4" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_RevenueInitialApplicationPeriodCumulativeEffectTransitionLineItems_FA874236EBB67B0A498830EED0F6EB30" xlink:to="loc_us-gaap_OperatingIncomeLoss_16EE3D9564C8B4FC995B30EED0F7984C" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments" xlink:label="loc_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments_D48DB1F363648358F1F230EED0F70F24" xlink:type="locator" />
    <link:presentationArc order="5" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_RevenueInitialApplicationPeriodCumulativeEffectTransitionLineItems_FA874236EBB67B0A498830EED0F6EB30" xlink:to="loc_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments_D48DB1F363648358F1F230EED0F70F24" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_IncomeTaxExpenseBenefit" xlink:label="loc_us-gaap_IncomeTaxExpenseBenefit_FE93CD6D4B33F77A50BC30EED0F75459" xlink:type="locator" />
    <link:presentationArc order="6" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_RevenueInitialApplicationPeriodCumulativeEffectTransitionLineItems_FA874236EBB67B0A498830EED0F6EB30" xlink:to="loc_us-gaap_IncomeTaxExpenseBenefit_FE93CD6D4B33F77A50BC30EED0F75459" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_NetIncomeLoss" xlink:label="loc_us-gaap_NetIncomeLoss_166927454C28F4B156D030EED0F7660A" xlink:type="locator" />
    <link:presentationArc order="7" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_RevenueInitialApplicationPeriodCumulativeEffectTransitionLineItems_FA874236EBB67B0A498830EED0F6EB30" xlink:to="loc_us-gaap_NetIncomeLoss_166927454C28F4B156D030EED0F7660A" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_EarningsPerShareBasicAndDilutedAbstract" xlink:label="loc_us-gaap_EarningsPerShareBasicAndDilutedAbstract_B6CA1F099A9D685A679D30EED0F825F0" xlink:type="locator" />
    <link:presentationArc order="8" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_RevenueInitialApplicationPeriodCumulativeEffectTransitionLineItems_FA874236EBB67B0A498830EED0F6EB30" xlink:to="loc_us-gaap_EarningsPerShareBasicAndDilutedAbstract_B6CA1F099A9D685A679D30EED0F825F0" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_EarningsPerShareBasic" xlink:label="loc_us-gaap_EarningsPerShareBasic_34AB119A07F1BB03E3CE30EED0F8A046" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_EarningsPerShareBasicAndDilutedAbstract_B6CA1F099A9D685A679D30EED0F825F0" xlink:to="loc_us-gaap_EarningsPerShareBasic_34AB119A07F1BB03E3CE30EED0F8A046" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_EarningsPerShareDiluted" xlink:label="loc_us-gaap_EarningsPerShareDiluted_BBFE7CA904CA54456B1530EED0F86F53" xlink:type="locator" />
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_EarningsPerShareBasicAndDilutedAbstract_B6CA1F099A9D685A679D30EED0F825F0" xlink:to="loc_us-gaap_EarningsPerShareDiluted_BBFE7CA904CA54456B1530EED0F86F53" xlink:type="arc" />
  </link:presentationLink>
  <link:presentationLink xlink:role="http://cognex.com/role/RevenueRecognitionTables" xlink:type="extended">
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_RevenueFromContractWithCustomerAbstract" xlink:label="loc_us-gaap_RevenueFromContractWithCustomerAbstract_7D1EF52A53F3750F36CB8095E690783C" xlink:type="locator" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ScheduleOfNewAccountingPronouncementsAndChangesInAccountingPrinciplesTextBlock" xlink:label="loc_us-gaap_ScheduleOfNewAccountingPronouncementsAndChangesInAccountingPrinciplesTextBlock_FC165F18FC7A80FD19968095E690C215" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_RevenueFromContractWithCustomerAbstract_7D1EF52A53F3750F36CB8095E690783C" xlink:to="loc_us-gaap_ScheduleOfNewAccountingPronouncementsAndChangesInAccountingPrinciplesTextBlock_FC165F18FC7A80FD19968095E690C215" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_DisaggregationOfRevenueTableTextBlock" xlink:label="loc_us-gaap_DisaggregationOfRevenueTableTextBlock_AB32865E5356E7E46B188095E690EB6F" xlink:type="locator" />
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_RevenueFromContractWithCustomerAbstract_7D1EF52A53F3750F36CB8095E690783C" xlink:to="loc_us-gaap_DisaggregationOfRevenueTableTextBlock_AB32865E5356E7E46B188095E690EB6F" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ContractWithCustomerAssetAndLiabilityTableTextBlock" xlink:label="loc_us-gaap_ContractWithCustomerAssetAndLiabilityTableTextBlock_7FC416A15FEE9FB81EEC8095E690B116" xlink:type="locator" />
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_RevenueFromContractWithCustomerAbstract_7D1EF52A53F3750F36CB8095E690783C" xlink:to="loc_us-gaap_ContractWithCustomerAssetAndLiabilityTableTextBlock_7FC416A15FEE9FB81EEC8095E690B116" xlink:type="arc" />
  </link:presentationLink>
  <link:presentationLink xlink:role="http://cognex.com/role/ScheduleIiValuationAndQualifyingAccounts" xlink:type="extended">
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2018/elts/srt-2018-01-31.xsd#srt_ValuationAndQualifyingAccountsAbstract" xlink:label="loc_srt_ValuationAndQualifyingAccountsAbstract_A2907190D61C811FE49F8095E7E35067" xlink:type="locator" />
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2018/elts/srt-2018-01-31.xsd#srt_ScheduleOfValuationAndQualifyingAccountsDisclosureTextBlock" xlink:label="loc_srt_ScheduleOfValuationAndQualifyingAccountsDisclosureTextBlock_C19C5A3E785E7FC312968095E7E3AA15" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_ValuationAndQualifyingAccountsAbstract_A2907190D61C811FE49F8095E7E35067" xlink:to="loc_srt_ScheduleOfValuationAndQualifyingAccountsDisclosureTextBlock_C19C5A3E785E7FC312968095E7E3AA15" xlink:type="arc" />
  </link:presentationLink>
  <link:presentationLink xlink:role="http://cognex.com/role/ScheduleIiValuationAndQualifyingAccountsDetail" xlink:type="extended">
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2018/elts/srt-2018-01-31.xsd#srt_ValuationAndQualifyingAccountsAbstract" xlink:label="loc_srt_ValuationAndQualifyingAccountsAbstract_0F7EF194DDF502742D468095E877EA5F" xlink:type="locator" />
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2018/elts/srt-2018-01-31.xsd#srt_ValuationAndQualifyingAccountsDisclosureTable" xlink:label="loc_srt_ValuationAndQualifyingAccountsDisclosureTable_361AA9D85C10F31FD68F8095E877198B" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_ValuationAndQualifyingAccountsAbstract_0F7EF194DDF502742D468095E877EA5F" xlink:to="loc_srt_ValuationAndQualifyingAccountsDisclosureTable_361AA9D85C10F31FD68F8095E877198B" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ValuationAllowancesAndReservesTypeAxis" xlink:label="loc_us-gaap_ValuationAllowancesAndReservesTypeAxis_5CF0CA9E4F5AEB738C678095E877F450" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_ValuationAndQualifyingAccountsDisclosureTable_361AA9D85C10F31FD68F8095E877198B" xlink:to="loc_us-gaap_ValuationAllowancesAndReservesTypeAxis_5CF0CA9E4F5AEB738C678095E877F450" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ValuationAllowancesAndReservesDomain" xlink:label="loc_us-gaap_ValuationAllowancesAndReservesDomain_B36AC245A1D79E9C7F9B8095E87749BC" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ValuationAllowancesAndReservesTypeAxis_5CF0CA9E4F5AEB738C678095E877F450" xlink:to="loc_us-gaap_ValuationAllowancesAndReservesDomain_B36AC245A1D79E9C7F9B8095E87749BC" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_UncollectibleReceivablesMember" xlink:label="loc_us-gaap_UncollectibleReceivablesMember_C89948BE08C1DBCA46C68095E877C11C" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ValuationAllowancesAndReservesDomain_B36AC245A1D79E9C7F9B8095E87749BC" xlink:to="loc_us-gaap_UncollectibleReceivablesMember_C89948BE08C1DBCA46C68095E877C11C" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ValuationAllowanceOfDeferredTaxAssetsMember" xlink:label="loc_us-gaap_ValuationAllowanceOfDeferredTaxAssetsMember_49DD1419C84FA2538DD68095E877B31C" xlink:type="locator" />
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ValuationAllowancesAndReservesDomain_B36AC245A1D79E9C7F9B8095E87749BC" xlink:to="loc_us-gaap_ValuationAllowanceOfDeferredTaxAssetsMember_49DD1419C84FA2538DD68095E877B31C" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2018/elts/srt-2018-01-31.xsd#srt_ValuationAndQualifyingAccountsDisclosureLineItems" xlink:label="loc_srt_ValuationAndQualifyingAccountsDisclosureLineItems_5BD289F8AA002493A34E8095E8772809" xlink:type="locator" />
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_ValuationAndQualifyingAccountsDisclosureTable_361AA9D85C10F31FD68F8095E877198B" xlink:to="loc_srt_ValuationAndQualifyingAccountsDisclosureLineItems_5BD289F8AA002493A34E8095E8772809" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_MovementInValuationAllowancesAndReservesRollForward" xlink:label="loc_us-gaap_MovementInValuationAllowancesAndReservesRollForward_6306F1F8EB240F06FF738095E877AED5" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_ValuationAndQualifyingAccountsDisclosureLineItems_5BD289F8AA002493A34E8095E8772809" xlink:to="loc_us-gaap_MovementInValuationAllowancesAndReservesRollForward_6306F1F8EB240F06FF738095E877AED5" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ValuationAllowancesAndReservesBalance" xlink:label="loc_us-gaap_ValuationAllowancesAndReservesBalance_EDB1AE52CFC38C5419008095E877C35B" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/periodStartLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_MovementInValuationAllowancesAndReservesRollForward_6306F1F8EB240F06FF738095E877AED5" xlink:to="loc_us-gaap_ValuationAllowancesAndReservesBalance_EDB1AE52CFC38C5419008095E877C35B" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ValuationAllowancesAndReservesChargedToCostAndExpense" xlink:label="loc_us-gaap_ValuationAllowancesAndReservesChargedToCostAndExpense_93003A7F45CA2A7C39DF8095E8782847" xlink:type="locator" />
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_MovementInValuationAllowancesAndReservesRollForward_6306F1F8EB240F06FF738095E877AED5" xlink:to="loc_us-gaap_ValuationAllowancesAndReservesChargedToCostAndExpense_93003A7F45CA2A7C39DF8095E8782847" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ValuationAllowancesAndReservesDeductions" xlink:label="loc_us-gaap_ValuationAllowancesAndReservesDeductions_A206F212D31BC0FF669D8095E87852F7" xlink:type="locator" />
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_MovementInValuationAllowancesAndReservesRollForward_6306F1F8EB240F06FF738095E877AED5" xlink:to="loc_us-gaap_ValuationAllowancesAndReservesDeductions_A206F212D31BC0FF669D8095E87852F7" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ValuationAllowancesAndReservesAdjustments" xlink:label="loc_us-gaap_ValuationAllowancesAndReservesAdjustments_524952FCAEA24F1CC5058095E8786F7C" xlink:type="locator" />
    <link:presentationArc order="4" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_MovementInValuationAllowancesAndReservesRollForward_6306F1F8EB240F06FF738095E877AED5" xlink:to="loc_us-gaap_ValuationAllowancesAndReservesAdjustments_524952FCAEA24F1CC5058095E8786F7C" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ValuationAllowancesAndReservesBalance" xlink:label="loc_us-gaap_ValuationAllowancesAndReservesBalance_D4A9DE69704BC38AFE588095E8788F08" xlink:type="locator" />
    <link:presentationArc order="5" preferredLabel="http://www.xbrl.org/2003/role/periodEndLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_MovementInValuationAllowancesAndReservesRollForward_6306F1F8EB240F06FF738095E877AED5" xlink:to="loc_us-gaap_ValuationAllowancesAndReservesBalance_D4A9DE69704BC38AFE588095E8788F08" xlink:type="arc" />
  </link:presentationLink>
  <link:presentationLink xlink:role="http://cognex.com/role/SegmentAndGeographicInformation" xlink:type="extended">
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_SegmentReportingAbstract" xlink:label="loc_us-gaap_SegmentReportingAbstract_20A6840856E03BD331488095E8D20CF9" xlink:type="locator" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_SegmentReportingDisclosureTextBlock" xlink:label="loc_us-gaap_SegmentReportingDisclosureTextBlock_7226FB01C4AB24B9E4A08095E8D2FF0A" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_SegmentReportingAbstract_20A6840856E03BD331488095E8D20CF9" xlink:to="loc_us-gaap_SegmentReportingDisclosureTextBlock_7226FB01C4AB24B9E4A08095E8D2FF0A" xlink:type="arc" />
  </link:presentationLink>
  <link:presentationLink xlink:role="http://cognex.com/role/SegmentAndGeographicInformationAdditionalInformationDetail" xlink:type="extended">
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_SegmentReportingAbstract" xlink:label="loc_us-gaap_SegmentReportingAbstract_CD95D20E87D82023549416BAB5A50A01" xlink:type="locator" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ConcentrationRiskTable" xlink:label="loc_us-gaap_ConcentrationRiskTable_60BD8EB7AE33DF2EBFE516BAB5A585B6" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_SegmentReportingAbstract_CD95D20E87D82023549416BAB5A50A01" xlink:to="loc_us-gaap_ConcentrationRiskTable_60BD8EB7AE33DF2EBFE516BAB5A585B6" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2018/elts/srt-2018-01-31.xsd#srt_StatementGeographicalAxis" xlink:label="loc_srt_StatementGeographicalAxis_9D80C554394DA16070BA16BAB5A622D4" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ConcentrationRiskTable_60BD8EB7AE33DF2EBFE516BAB5A585B6" xlink:to="loc_srt_StatementGeographicalAxis_9D80C554394DA16070BA16BAB5A622D4" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2018/elts/srt-2018-01-31.xsd#srt_SegmentGeographicalDomain" xlink:label="loc_srt_SegmentGeographicalDomain_F45EA61D43E961CD4E2A16BAB5A65C2A" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_StatementGeographicalAxis_9D80C554394DA16070BA16BAB5A622D4" xlink:to="loc_srt_SegmentGeographicalDomain_F45EA61D43E961CD4E2A16BAB5A65C2A" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2018/elts/srt-2018-01-31.xsd#srt_EuropeMember" xlink:label="loc_srt_EuropeMember_39A1805647AF8462A99E16BAB5A66A64" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_SegmentGeographicalDomain_F45EA61D43E961CD4E2A16BAB5A65C2A" xlink:to="loc_srt_EuropeMember_39A1805647AF8462A99E16BAB5A66A64" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ConcentrationRiskByBenchmarkAxis" xlink:label="loc_us-gaap_ConcentrationRiskByBenchmarkAxis_E61BCD0D253E2435CBA716BAB5A6A7C0" xlink:type="locator" />
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ConcentrationRiskTable_60BD8EB7AE33DF2EBFE516BAB5A585B6" xlink:to="loc_us-gaap_ConcentrationRiskByBenchmarkAxis_E61BCD0D253E2435CBA716BAB5A6A7C0" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ConcentrationRiskBenchmarkDomain" xlink:label="loc_us-gaap_ConcentrationRiskBenchmarkDomain_C85C37759CC117BD512E16BAB5A7CF69" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ConcentrationRiskByBenchmarkAxis_E61BCD0D253E2435CBA716BAB5A6A7C0" xlink:to="loc_us-gaap_ConcentrationRiskBenchmarkDomain_C85C37759CC117BD512E16BAB5A7CF69" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_SalesRevenueNetMember" xlink:label="loc_us-gaap_SalesRevenueNetMember_FEDE6DA3DCC2B481DE5F16BAB5A76CEB" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ConcentrationRiskBenchmarkDomain_C85C37759CC117BD512E16BAB5A7CF69" xlink:to="loc_us-gaap_SalesRevenueNetMember_FEDE6DA3DCC2B481DE5F16BAB5A76CEB" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_AccountsReceivableMember" xlink:label="loc_us-gaap_AccountsReceivableMember_CE46140654FD9F82035516BAB5A72853" xlink:type="locator" />
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ConcentrationRiskBenchmarkDomain_C85C37759CC117BD512E16BAB5A7CF69" xlink:to="loc_us-gaap_AccountsReceivableMember_CE46140654FD9F82035516BAB5A72853" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ConcentrationRiskByTypeAxis" xlink:label="loc_us-gaap_ConcentrationRiskByTypeAxis_2B12D94251E18B20C77A16BAB5A72877" xlink:type="locator" />
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ConcentrationRiskTable_60BD8EB7AE33DF2EBFE516BAB5A585B6" xlink:to="loc_us-gaap_ConcentrationRiskByTypeAxis_2B12D94251E18B20C77A16BAB5A72877" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ConcentrationRiskTypeDomain" xlink:label="loc_us-gaap_ConcentrationRiskTypeDomain_73187D81A65D53D37B1416BAB5A76D72" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ConcentrationRiskByTypeAxis_2B12D94251E18B20C77A16BAB5A72877" xlink:to="loc_us-gaap_ConcentrationRiskTypeDomain_73187D81A65D53D37B1416BAB5A76D72" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_CustomerConcentrationRiskMember" xlink:label="loc_us-gaap_CustomerConcentrationRiskMember_F04A7F750F849F5E5F8616BAB5A8D719" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ConcentrationRiskTypeDomain_73187D81A65D53D37B1416BAB5A76D72" xlink:to="loc_us-gaap_CustomerConcentrationRiskMember_F04A7F750F849F5E5F8616BAB5A8D719" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ConcentrationRiskLineItems" xlink:label="loc_us-gaap_ConcentrationRiskLineItems_E9F9E58F5F5966216CF316BAB5A86E47" xlink:type="locator" />
    <link:presentationArc order="4" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ConcentrationRiskTable_60BD8EB7AE33DF2EBFE516BAB5A585B6" xlink:to="loc_us-gaap_ConcentrationRiskLineItems_E9F9E58F5F5966216CF316BAB5A86E47" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_NumberOfReportableSegments" xlink:label="loc_us-gaap_NumberOfReportableSegments_C70FB53792F90EA40F0016BAB5A8663F" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ConcentrationRiskLineItems_E9F9E58F5F5966216CF316BAB5A86E47" xlink:to="loc_us-gaap_NumberOfReportableSegments_C70FB53792F90EA40F0016BAB5A8663F" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ConcentrationRiskPercentage1" xlink:label="loc_us-gaap_ConcentrationRiskPercentage1_207CC0CCA235AD3C8C8416BAB5A9902F" xlink:type="locator" />
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ConcentrationRiskLineItems_E9F9E58F5F5966216CF316BAB5A86E47" xlink:to="loc_us-gaap_ConcentrationRiskPercentage1_207CC0CCA235AD3C8C8416BAB5A9902F" xlink:type="arc" />
  </link:presentationLink>
  <link:presentationLink xlink:role="http://cognex.com/role/SegmentAndGeographicInformationScheduleOfRevenueFromExternalCustomersAndLongLivedAssetsByGeographicalAreasDetail" xlink:type="extended">
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_SegmentReportingAbstract" xlink:label="loc_us-gaap_SegmentReportingAbstract_4BF1D3A13B2B563EAD268095E74CD33A" xlink:type="locator" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsTable" xlink:label="loc_us-gaap_ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsTable_B364DCB34451C3B174A88095E74C80AB" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_SegmentReportingAbstract_4BF1D3A13B2B563EAD268095E74CD33A" xlink:to="loc_us-gaap_ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsTable_B364DCB34451C3B174A88095E74C80AB" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2018/elts/srt-2018-01-31.xsd#srt_StatementGeographicalAxis" xlink:label="loc_srt_StatementGeographicalAxis_C83B103247BA8B357E428095E74CAA71" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsTable_B364DCB34451C3B174A88095E74C80AB" xlink:to="loc_srt_StatementGeographicalAxis_C83B103247BA8B357E428095E74CAA71" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2018/elts/srt-2018-01-31.xsd#srt_SegmentGeographicalDomain" xlink:label="loc_srt_SegmentGeographicalDomain_D39BF05069B2B1855EA28095E74C279E" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_StatementGeographicalAxis_C83B103247BA8B357E428095E74CAA71" xlink:to="loc_srt_SegmentGeographicalDomain_D39BF05069B2B1855EA28095E74C279E" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.sec.gov/country/2017/country-2017-01-31.xsd#country_US" xlink:label="loc_country_US_314E2FE1760152F960F88095E74C9981" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_SegmentGeographicalDomain_D39BF05069B2B1855EA28095E74C279E" xlink:to="loc_country_US_314E2FE1760152F960F88095E74C9981" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2018/elts/srt-2018-01-31.xsd#srt_EuropeMember" xlink:label="loc_srt_EuropeMember_692AD9B57C373842C6488095E74C875F" xlink:type="locator" />
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_SegmentGeographicalDomain_D39BF05069B2B1855EA28095E74C279E" xlink:to="loc_srt_EuropeMember_692AD9B57C373842C6488095E74C875F" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_GreaterChinaMember" xlink:label="loc_cgnx_GreaterChinaMember_ED497E6A5DBD8159EA1A8095E74D6AEE" xlink:type="locator" />
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_SegmentGeographicalDomain_D39BF05069B2B1855EA28095E74C279E" xlink:to="loc_cgnx_GreaterChinaMember_ED497E6A5DBD8159EA1A8095E74D6AEE" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_OtherGeographicAreaMember" xlink:label="loc_cgnx_OtherGeographicAreaMember_52CA8A980196ED6B7A068095E74D90A1" xlink:type="locator" />
    <link:presentationArc order="4" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_SegmentGeographicalDomain_D39BF05069B2B1855EA28095E74C279E" xlink:to="loc_cgnx_OtherGeographicAreaMember_52CA8A980196ED6B7A068095E74D90A1" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_RevenuesFromExternalCustomersAndLongLivedAssetsLineItems" xlink:label="loc_us-gaap_RevenuesFromExternalCustomersAndLongLivedAssetsLineItems_F97AED55B3C4B0BF9DF18095E74D792B" xlink:type="locator" />
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsTable_B364DCB34451C3B174A88095E74C80AB" xlink:to="loc_us-gaap_RevenuesFromExternalCustomersAndLongLivedAssetsLineItems_F97AED55B3C4B0BF9DF18095E74D792B" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax" xlink:label="loc_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax_09295F363311928C88BF8095E74D00D6" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_RevenuesFromExternalCustomersAndLongLivedAssetsLineItems_F97AED55B3C4B0BF9DF18095E74D792B" xlink:to="loc_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax_09295F363311928C88BF8095E74D00D6" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_NoncurrentAssets" xlink:label="loc_us-gaap_NoncurrentAssets_AA7ABAEDEE353AB02C4D8095E74DD51C" xlink:type="locator" />
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_RevenuesFromExternalCustomersAndLongLivedAssetsLineItems_F97AED55B3C4B0BF9DF18095E74D792B" xlink:to="loc_us-gaap_NoncurrentAssets_AA7ABAEDEE353AB02C4D8095E74DD51C" xlink:type="arc" />
  </link:presentationLink>
  <link:presentationLink xlink:role="http://cognex.com/role/SegmentAndGeographicInformationTables" xlink:type="extended">
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_SegmentReportingAbstract" xlink:label="loc_us-gaap_SegmentReportingAbstract_8DE03CECEF4C2D85820B8095E6552D4C" xlink:type="locator" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsByGeographicalAreasTableTextBlock" xlink:label="loc_us-gaap_ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsByGeographicalAreasTableTextBlock_4132054F6EF773BED73E8095E655406C" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_SegmentReportingAbstract_8DE03CECEF4C2D85820B8095E6552D4C" xlink:to="loc_us-gaap_ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsByGeographicalAreasTableTextBlock_4132054F6EF773BED73E8095E655406C" xlink:type="arc" />
  </link:presentationLink>
  <link:presentationLink xlink:role="http://cognex.com/role/SelectedQuarterlyFinancialDataUnaudited" xlink:type="extended">
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_QuarterlyFinancialInformationDisclosureAbstract" xlink:label="loc_us-gaap_QuarterlyFinancialInformationDisclosureAbstract_1E73A7F6910B4C82FC0A8095E8954840" xlink:type="locator" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_QuarterlyFinancialInformationTextBlock" xlink:label="loc_us-gaap_QuarterlyFinancialInformationTextBlock_D25248E464786003F8398095E895201E" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_QuarterlyFinancialInformationDisclosureAbstract_1E73A7F6910B4C82FC0A8095E8954840" xlink:to="loc_us-gaap_QuarterlyFinancialInformationTextBlock_D25248E464786003F8398095E895201E" xlink:type="arc" />
  </link:presentationLink>
  <link:presentationLink xlink:role="http://cognex.com/role/SelectedQuarterlyFinancialDataUnauditedDetails" xlink:type="extended">
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_QuarterlyFinancialInformationDisclosureAbstract" xlink:label="loc_us-gaap_QuarterlyFinancialInformationDisclosureAbstract_D4D89376DFA7956D08C7170C8FD4D9D3" xlink:type="locator" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax" xlink:label="loc_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax_411E2C0081CBE73D8508170C8FD5794E" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_QuarterlyFinancialInformationDisclosureAbstract_D4D89376DFA7956D08C7170C8FD4D9D3" xlink:to="loc_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax_411E2C0081CBE73D8508170C8FD5794E" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_GrossProfit" xlink:label="loc_us-gaap_GrossProfit_BC6D0844A025F6965A7E170C8FD53C8B" xlink:type="locator" />
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_QuarterlyFinancialInformationDisclosureAbstract_D4D89376DFA7956D08C7170C8FD4D9D3" xlink:to="loc_us-gaap_GrossProfit_BC6D0844A025F6965A7E170C8FD53C8B" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_OperatingIncomeLoss" xlink:label="loc_us-gaap_OperatingIncomeLoss_7D5DEBAB049B9179DE28170C8FD52455" xlink:type="locator" />
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_QuarterlyFinancialInformationDisclosureAbstract_D4D89376DFA7956D08C7170C8FD4D9D3" xlink:to="loc_us-gaap_OperatingIncomeLoss_7D5DEBAB049B9179DE28170C8FD52455" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_NetIncomeLoss" xlink:label="loc_us-gaap_NetIncomeLoss_0335BBBCE2DB2ECEF9A3170C8FD6BF93" xlink:type="locator" />
    <link:presentationArc order="4" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_QuarterlyFinancialInformationDisclosureAbstract_D4D89376DFA7956D08C7170C8FD4D9D3" xlink:to="loc_us-gaap_NetIncomeLoss_0335BBBCE2DB2ECEF9A3170C8FD6BF93" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_EarningsPerShareBasic" xlink:label="loc_us-gaap_EarningsPerShareBasic_64210D1527E0175B6934170C8FD6CE05" xlink:type="locator" />
    <link:presentationArc order="5" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_QuarterlyFinancialInformationDisclosureAbstract_D4D89376DFA7956D08C7170C8FD4D9D3" xlink:to="loc_us-gaap_EarningsPerShareBasic_64210D1527E0175B6934170C8FD6CE05" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_EarningsPerShareDiluted" xlink:label="loc_us-gaap_EarningsPerShareDiluted_06FA21EA6895DEE6BE12170C8FD6C362" xlink:type="locator" />
    <link:presentationArc order="6" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_QuarterlyFinancialInformationDisclosureAbstract_D4D89376DFA7956D08C7170C8FD4D9D3" xlink:to="loc_us-gaap_EarningsPerShareDiluted_06FA21EA6895DEE6BE12170C8FD6C362" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_StockholdersEquityNoteStockSplitConversionRatio1" xlink:label="loc_us-gaap_StockholdersEquityNoteStockSplitConversionRatio1_E34C6D1F8FF4DECBE3E3170C8FD6660A" xlink:type="locator" />
    <link:presentationArc order="7" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_QuarterlyFinancialInformationDisclosureAbstract_D4D89376DFA7956D08C7170C8FD4D9D3" xlink:to="loc_us-gaap_StockholdersEquityNoteStockSplitConversionRatio1_E34C6D1F8FF4DECBE3E3170C8FD6660A" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount" xlink:label="loc_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount_21800E74B6E671F958EA170C8FD6C1B8" xlink:type="locator" />
    <link:presentationArc order="8" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_QuarterlyFinancialInformationDisclosureAbstract_D4D89376DFA7956D08C7170C8FD4D9D3" xlink:to="loc_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount_21800E74B6E671F958EA170C8FD6C1B8" xlink:type="arc" />
  </link:presentationLink>
  <link:presentationLink xlink:role="http://cognex.com/role/SelectedQuarterlyFinancialDataUnauditedTables" xlink:type="extended">
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_QuarterlyFinancialInformationDisclosureAbstract" xlink:label="loc_us-gaap_QuarterlyFinancialInformationDisclosureAbstract_6C9B713C8378D912EA298095E812525A" xlink:type="locator" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ScheduleOfQuarterlyFinancialInformationTableTextBlock" xlink:label="loc_us-gaap_ScheduleOfQuarterlyFinancialInformationTableTextBlock_3BD7FD8172A8EB511F778095E8137FBC" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_QuarterlyFinancialInformationDisclosureAbstract_6C9B713C8378D912EA298095E812525A" xlink:to="loc_us-gaap_ScheduleOfQuarterlyFinancialInformationTableTextBlock_3BD7FD8172A8EB511F778095E8137FBC" xlink:type="arc" />
  </link:presentationLink>
  <link:presentationLink xlink:role="http://cognex.com/role/ShareholdersEquity" xlink:type="extended">
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_EquityAbstract" xlink:label="loc_us-gaap_EquityAbstract_FAECD665E52C8A2FFAD18095E6215A62" xlink:type="locator" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_StockholdersEquityNoteDisclosureTextBlock" xlink:label="loc_us-gaap_StockholdersEquityNoteDisclosureTextBlock_8963CCF799EC9FC06B4C8095E621FA9C" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_EquityAbstract_FAECD665E52C8A2FFAD18095E6215A62" xlink:to="loc_us-gaap_StockholdersEquityNoteDisclosureTextBlock_8963CCF799EC9FC06B4C8095E621FA9C" xlink:type="arc" />
  </link:presentationLink>
  <link:presentationLink xlink:role="http://cognex.com/role/ShareholdersEquityAdditionalInformationDetail" xlink:type="extended">
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_EquityAbstract" xlink:label="loc_us-gaap_EquityAbstract_742EF91205AAF250C2771683E0CF4274" xlink:type="locator" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ScheduleOfStockByClassTable" xlink:label="loc_us-gaap_ScheduleOfStockByClassTable_8485FE5FECA11D7C75591683E0D5BB9D" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_EquityAbstract_742EF91205AAF250C2771683E0CF4274" xlink:to="loc_us-gaap_ScheduleOfStockByClassTable_8485FE5FECA11D7C75591683E0D5BB9D" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_StatementClassOfStockAxis" xlink:label="loc_us-gaap_StatementClassOfStockAxis_04BBF4AD407759E3C1561683E0D501E3" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfStockByClassTable_8485FE5FECA11D7C75591683E0D5BB9D" xlink:to="loc_us-gaap_StatementClassOfStockAxis_04BBF4AD407759E3C1561683E0D501E3" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ClassOfStockDomain" xlink:label="loc_us-gaap_ClassOfStockDomain_EFED2F5A258FCFBFA4A81683E0D5E2D8" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StatementClassOfStockAxis_04BBF4AD407759E3C1561683E0D501E3" xlink:to="loc_us-gaap_ClassOfStockDomain_EFED2F5A258FCFBFA4A81683E0D5E2D8" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_CommonStockMember" xlink:label="loc_us-gaap_CommonStockMember_E2A5F7C6B328838F23E31683E0D6115C" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ClassOfStockDomain_EFED2F5A258FCFBFA4A81683E0D5E2D8" xlink:to="loc_us-gaap_CommonStockMember_E2A5F7C6B328838F23E31683E0D6115C" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ShareRepurchaseProgramAxis" xlink:label="loc_us-gaap_ShareRepurchaseProgramAxis_0E9C9791F275078E7FDE1683E0D64932" xlink:type="locator" />
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfStockByClassTable_8485FE5FECA11D7C75591683E0D5BB9D" xlink:to="loc_us-gaap_ShareRepurchaseProgramAxis_0E9C9791F275078E7FDE1683E0D64932" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ShareRepurchaseProgramDomain" xlink:label="loc_us-gaap_ShareRepurchaseProgramDomain_95B8DFC1E6749D16894E1683E0D67159" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareRepurchaseProgramAxis_0E9C9791F275078E7FDE1683E0D64932" xlink:to="loc_us-gaap_ShareRepurchaseProgramDomain_95B8DFC1E6749D16894E1683E0D67159" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_RepurchaseProgram2014Member" xlink:label="loc_cgnx_RepurchaseProgram2014Member_64E3999B3D0253961F151683E0D6C7C5" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareRepurchaseProgramDomain_95B8DFC1E6749D16894E1683E0D67159" xlink:to="loc_cgnx_RepurchaseProgram2014Member_64E3999B3D0253961F151683E0D6C7C5" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_RepurchaseProgramTwentyFifteenMember" xlink:label="loc_cgnx_RepurchaseProgramTwentyFifteenMember_3D43861C315B21DDECA01683E0D7FB4A" xlink:type="locator" />
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareRepurchaseProgramDomain_95B8DFC1E6749D16894E1683E0D67159" xlink:to="loc_cgnx_RepurchaseProgramTwentyFifteenMember_3D43861C315B21DDECA01683E0D7FB4A" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_RepurchaseProgramNovember2015Member" xlink:label="loc_cgnx_RepurchaseProgramNovember2015Member_4F75117F1FBE5F1CCA341683E0D7AF78" xlink:type="locator" />
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareRepurchaseProgramDomain_95B8DFC1E6749D16894E1683E0D67159" xlink:to="loc_cgnx_RepurchaseProgramNovember2015Member_4F75117F1FBE5F1CCA341683E0D7AF78" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_RepurchaseProgramOctober2018Member" xlink:label="loc_cgnx_RepurchaseProgramOctober2018Member_67D7C908F671C56479E0168415AE02CC" xlink:type="locator" />
    <link:presentationArc order="4" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareRepurchaseProgramDomain_95B8DFC1E6749D16894E1683E0D67159" xlink:to="loc_cgnx_RepurchaseProgramOctober2018Member_67D7C908F671C56479E0168415AE02CC" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ClassOfStockLineItems" xlink:label="loc_us-gaap_ClassOfStockLineItems_788E0A9542B769DA6D281683E0D76525" xlink:type="locator" />
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfStockByClassTable_8485FE5FECA11D7C75591683E0D5BB9D" xlink:to="loc_us-gaap_ClassOfStockLineItems_788E0A9542B769DA6D281683E0D76525" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_PreferredStockSharesAuthorized" xlink:label="loc_us-gaap_PreferredStockSharesAuthorized_B3590CBB5431D51492CE1683E0D7A384" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ClassOfStockLineItems_788E0A9542B769DA6D281683E0D76525" xlink:to="loc_us-gaap_PreferredStockSharesAuthorized_B3590CBB5431D51492CE1683E0D7A384" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_PreferredStockParOrStatedValuePerShare" xlink:label="loc_us-gaap_PreferredStockParOrStatedValuePerShare_7872FC36068920C3ED8E1683E0D7C79D" xlink:type="locator" />
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ClassOfStockLineItems_788E0A9542B769DA6D281683E0D76525" xlink:to="loc_us-gaap_PreferredStockParOrStatedValuePerShare_7872FC36068920C3ED8E1683E0D7C79D" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_CommonStockSharesAuthorized" xlink:label="loc_us-gaap_CommonStockSharesAuthorized_B4400136546249C92A7B1683E0D86E92" xlink:type="locator" />
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ClassOfStockLineItems_788E0A9542B769DA6D281683E0D76525" xlink:to="loc_us-gaap_CommonStockSharesAuthorized_B4400136546249C92A7B1683E0D86E92" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_StockholdersEquityNoteStockSplitConversionRatio1" xlink:label="loc_us-gaap_StockholdersEquityNoteStockSplitConversionRatio1_4E4C66ACC80CEF4776891683E0D8D726" xlink:type="locator" />
    <link:presentationArc order="4" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ClassOfStockLineItems_788E0A9542B769DA6D281683E0D76525" xlink:to="loc_us-gaap_StockholdersEquityNoteStockSplitConversionRatio1_4E4C66ACC80CEF4776891683E0D8D726" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_CommonStockParOrStatedValuePerShare" xlink:label="loc_us-gaap_CommonStockParOrStatedValuePerShare_D5D7D6B0B7E5A4D8E60F1683E0D8F37E" xlink:type="locator" />
    <link:presentationArc order="5" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ClassOfStockLineItems_788E0A9542B769DA6D281683E0D76525" xlink:to="loc_us-gaap_CommonStockParOrStatedValuePerShare_D5D7D6B0B7E5A4D8E60F1683E0D8F37E" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_VoteEntitledForEachCommonShareOutstanding" xlink:label="loc_cgnx_VoteEntitledForEachCommonShareOutstanding_C05521A443E09D70B87A1683E0D8CFEF" xlink:type="locator" />
    <link:presentationArc order="6" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ClassOfStockLineItems_788E0A9542B769DA6D281683E0D76525" xlink:to="loc_cgnx_VoteEntitledForEachCommonShareOutstanding_C05521A443E09D70B87A1683E0D8CFEF" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_StockRepurchaseProgramAuthorizedAmount1" xlink:label="loc_us-gaap_StockRepurchaseProgramAuthorizedAmount1_9A1849A2548D204794B61683E0D86650" xlink:type="locator" />
    <link:presentationArc order="7" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ClassOfStockLineItems_788E0A9542B769DA6D281683E0D76525" xlink:to="loc_us-gaap_StockRepurchaseProgramAuthorizedAmount1_9A1849A2548D204794B61683E0D86650" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_Totalsharesrepurchased" xlink:label="loc_cgnx_Totalsharesrepurchased_C6655A9476211707C9141683E0D8B2E0" xlink:type="locator" />
    <link:presentationArc order="8" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ClassOfStockLineItems_788E0A9542B769DA6D281683E0D76525" xlink:to="loc_cgnx_Totalsharesrepurchased_C6655A9476211707C9141683E0D8B2E0" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_Repurchasedsharestotalcost" xlink:label="loc_cgnx_Repurchasedsharestotalcost_B1EAB83F78C10D24550C1683E0D97BA2" xlink:type="locator" />
    <link:presentationArc order="9" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ClassOfStockLineItems_788E0A9542B769DA6D281683E0D76525" xlink:to="loc_cgnx_Repurchasedsharestotalcost_B1EAB83F78C10D24550C1683E0D97BA2" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_StockRepurchasedDuringPeriodShares" xlink:label="loc_us-gaap_StockRepurchasedDuringPeriodShares_2C3ADB313D1C4940D5C41683E0D966AE" xlink:type="locator" />
    <link:presentationArc order="10" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ClassOfStockLineItems_788E0A9542B769DA6D281683E0D76525" xlink:to="loc_us-gaap_StockRepurchasedDuringPeriodShares_2C3ADB313D1C4940D5C41683E0D966AE" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_StockRepurchasedDuringPeriodValue" xlink:label="loc_us-gaap_StockRepurchasedDuringPeriodValue_E8470760FC1B63900F421683E0D948AC" xlink:type="locator" />
    <link:presentationArc order="11" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ClassOfStockLineItems_788E0A9542B769DA6D281683E0D76525" xlink:to="loc_us-gaap_StockRepurchasedDuringPeriodValue_E8470760FC1B63900F421683E0D948AC" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_CommonStockDividendsPerShareDeclared" xlink:label="loc_us-gaap_CommonStockDividendsPerShareDeclared_6544775379AFC2FAD3531683E0D9E5A1" xlink:type="locator" />
    <link:presentationArc order="12" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ClassOfStockLineItems_788E0A9542B769DA6D281683E0D76525" xlink:to="loc_us-gaap_CommonStockDividendsPerShareDeclared_6544775379AFC2FAD3531683E0D9E5A1" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_PaymentsOfDividends" xlink:label="loc_us-gaap_PaymentsOfDividends_856B635D9E122CC222961683E0D98B5B" xlink:type="locator" />
    <link:presentationArc order="13" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ClassOfStockLineItems_788E0A9542B769DA6D281683E0D76525" xlink:to="loc_us-gaap_PaymentsOfDividends_856B635D9E122CC222961683E0D98B5B" xlink:type="arc" />
  </link:presentationLink>
  <link:presentationLink xlink:role="http://cognex.com/role/StockBasedCompensation" xlink:type="extended">
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:label="loc_us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract_DAA58EA06B04097DDDD68095E6CE1933" xlink:type="locator" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock" xlink:label="loc_us-gaap_DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock_897802AC877D5A329F868095E6CF71E7" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract_DAA58EA06B04097DDDD68095E6CE1933" xlink:to="loc_us-gaap_DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock_897802AC877D5A329F868095E6CF71E7" xlink:type="arc" />
  </link:presentationLink>
  <link:presentationLink xlink:role="http://cognex.com/role/StockBasedCompensationExpenseAdditionalInformationDetail" xlink:type="extended">
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:label="loc_us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract_1CD9E04C041C848A2CD117AC5C48D8FF" xlink:type="locator" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" xlink:label="loc_us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable_A5B975641CB20EE73F4D17AC5C4C2EB3" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract_1CD9E04C041C848A2CD117AC5C48D8FF" xlink:to="loc_us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable_A5B975641CB20EE73F4D17AC5C4C2EB3" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2018/elts/srt-2018-01-31.xsd#srt_RangeAxis" xlink:label="loc_srt_RangeAxis_A0E33CC0BA888AC76BC617AC5C4F63E2" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable_A5B975641CB20EE73F4D17AC5C4C2EB3" xlink:to="loc_srt_RangeAxis_A0E33CC0BA888AC76BC617AC5C4F63E2" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2018/elts/srt-2018-01-31.xsd#srt_RangeMember" xlink:label="loc_srt_RangeMember_9389EC1C5298C697053517AC5C4F10D5" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_RangeAxis_A0E33CC0BA888AC76BC617AC5C4F63E2" xlink:to="loc_srt_RangeMember_9389EC1C5298C697053517AC5C4F10D5" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2018/elts/srt-2018-01-31.xsd#srt_MinimumMember" xlink:label="loc_srt_MinimumMember_570014F8279EEE3C977D17AC5C4FCF43" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_RangeMember_9389EC1C5298C697053517AC5C4F10D5" xlink:to="loc_srt_MinimumMember_570014F8279EEE3C977D17AC5C4FCF43" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2018/elts/srt-2018-01-31.xsd#srt_MaximumMember" xlink:label="loc_srt_MaximumMember_CC6996109058AC92A08217AC5C50A359" xlink:type="locator" />
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_RangeMember_9389EC1C5298C697053517AC5C4F10D5" xlink:to="loc_srt_MaximumMember_CC6996109058AC92A08217AC5C50A359" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_AwardTypeAxis" xlink:label="loc_us-gaap_AwardTypeAxis_40FD6127F313E990BCFC17AC5C50B2B7" xlink:type="locator" />
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable_A5B975641CB20EE73F4D17AC5C4C2EB3" xlink:to="loc_us-gaap_AwardTypeAxis_40FD6127F313E990BCFC17AC5C50B2B7" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_5D2039E5C7B421F9293D17AC5C51475F" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AwardTypeAxis_40FD6127F313E990BCFC17AC5C50B2B7" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_5D2039E5C7B421F9293D17AC5C51475F" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_EmployeeStockOptionMember" xlink:label="loc_us-gaap_EmployeeStockOptionMember_554D4DD9EAB5E3F0619017AC5C51ED34" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_5D2039E5C7B421F9293D17AC5C51475F" xlink:to="loc_us-gaap_EmployeeStockOptionMember_554D4DD9EAB5E3F0619017AC5C51ED34" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_PerformanceSharesMember" xlink:label="loc_us-gaap_PerformanceSharesMember_14C5BA94EB76EC2886CB17AC5C52831C" xlink:type="locator" />
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_5D2039E5C7B421F9293D17AC5C51475F" xlink:to="loc_us-gaap_PerformanceSharesMember_14C5BA94EB76EC2886CB17AC5C52831C" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_0818D02CED54A2670FA617AC5C52CFC5" xlink:type="locator" />
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable_A5B975641CB20EE73F4D17AC5C4C2EB3" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_0818D02CED54A2670FA617AC5C52CFC5" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant_05CBF995855DED3D98D017AC5C52D2D9" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_0818D02CED54A2670FA617AC5C52CFC5" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant_05CBF995855DED3D98D017AC5C52D2D9" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1_3D8052326D91A1388B6C17AC5C52DA7A" xlink:type="locator" />
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_0818D02CED54A2670FA617AC5C52CFC5" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1_3D8052326D91A1388B6C17AC5C52DA7A" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_ExpirationPeriodOfStockOptionPlan" xlink:label="loc_cgnx_ExpirationPeriodOfStockOptionPlan_6447A92B6DBF45C5037017AC5C53A373" xlink:type="locator" />
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_0818D02CED54A2670FA617AC5C52CFC5" xlink:to="loc_cgnx_ExpirationPeriodOfStockOptionPlan_6447A92B6DBF45C5037017AC5C53A373" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_NumberOfGroupsWithinEmployeePopulation" xlink:label="loc_cgnx_NumberOfGroupsWithinEmployeePopulation_C445A9E0D14C600FA2E217AC5C5371F9" xlink:type="locator" />
    <link:presentationArc order="4" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_0818D02CED54A2670FA617AC5C52CFC5" xlink:to="loc_cgnx_NumberOfGroupsWithinEmployeePopulation_C445A9E0D14C600FA2E217AC5C5371F9" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_EstimatedForfeitureRateForUnvestedOptionsForSeniorManagement" xlink:label="loc_cgnx_EstimatedForfeitureRateForUnvestedOptionsForSeniorManagement_463F7071B42DEC2E288B17AC5C536BC5" xlink:type="locator" />
    <link:presentationArc order="5" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_0818D02CED54A2670FA617AC5C52CFC5" xlink:to="loc_cgnx_EstimatedForfeitureRateForUnvestedOptionsForSeniorManagement_463F7071B42DEC2E288B17AC5C536BC5" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_EstimatedForfeitureRateForUnvestedOptionsForAllNonSeniorManagement" xlink:label="loc_cgnx_EstimatedForfeitureRateForUnvestedOptionsForAllNonSeniorManagement_535E20E82D692617DC8217AC5C53A0C1" xlink:type="locator" />
    <link:presentationArc order="6" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_0818D02CED54A2670FA617AC5C52CFC5" xlink:to="loc_cgnx_EstimatedForfeitureRateForUnvestedOptionsForAllNonSeniorManagement_535E20E82D692617DC8217AC5C53A0C1" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_IncreaseInCompensationExpenseDueToRevisedEstimatedForfeitureRates" xlink:label="loc_cgnx_IncreaseInCompensationExpenseDueToRevisedEstimatedForfeitureRates_3A57EEFFC2A9EBFF833617AC5C53B07B" xlink:type="locator" />
    <link:presentationArc order="7" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_0818D02CED54A2670FA617AC5C52CFC5" xlink:to="loc_cgnx_IncreaseInCompensationExpenseDueToRevisedEstimatedForfeitureRates_3A57EEFFC2A9EBFF833617AC5C53B07B" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue_3428ACAFD856F06B122E17AC5C54BCF6" xlink:type="locator" />
    <link:presentationArc order="8" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_0818D02CED54A2670FA617AC5C52CFC5" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue_3428ACAFD856F06B122E17AC5C54BCF6" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_SharesBasedCompensationArrangementBySharesBasedPaymentAwardOptionsExercisableIntrinsicValue" xlink:label="loc_cgnx_SharesBasedCompensationArrangementBySharesBasedPaymentAwardOptionsExercisableIntrinsicValue_DADF042A04D38D9D563317AC5C540665" xlink:type="locator" />
    <link:presentationArc order="9" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_0818D02CED54A2670FA617AC5C52CFC5" xlink:to="loc_cgnx_SharesBasedCompensationArrangementBySharesBasedPaymentAwardOptionsExercisableIntrinsicValue_DADF042A04D38D9D563317AC5C540665" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedFairValue" xlink:label="loc_cgnx_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedFairValue_B98C6476590167FA9E5217AC5C54111D" xlink:type="locator" />
    <link:presentationArc order="10" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_0818D02CED54A2670FA617AC5C52CFC5" xlink:to="loc_cgnx_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedFairValue_B98C6476590167FA9E5217AC5C54111D" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedStockOptions" xlink:label="loc_us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedStockOptions_7FD38DEB1F15E3F768CC17AC5C54AD4B" xlink:type="locator" />
    <link:presentationArc order="11" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_0818D02CED54A2670FA617AC5C52CFC5" xlink:to="loc_us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedStockOptions_7FD38DEB1F15E3F768CC17AC5C54AD4B" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1" xlink:label="loc_us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1_F9C6856FE8027769EEAA17AC5C543A24" xlink:type="locator" />
    <link:presentationArc order="12" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_0818D02CED54A2670FA617AC5C52CFC5" xlink:to="loc_us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1_F9C6856FE8027769EEAA17AC5C543A24" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_AllocatedShareBasedCompensationExpense" xlink:label="loc_us-gaap_AllocatedShareBasedCompensationExpense_A9F744DAD089BF7788C617AC5C543AD7" xlink:type="locator" />
    <link:presentationArc order="13" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_0818D02CED54A2670FA617AC5C52CFC5" xlink:to="loc_us-gaap_AllocatedShareBasedCompensationExpense_A9F744DAD089BF7788C617AC5C543AD7" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense" xlink:label="loc_us-gaap_EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense_11573156AE4A08439B6417AC5C553218" xlink:type="locator" />
    <link:presentationArc order="14" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_0818D02CED54A2670FA617AC5C52CFC5" xlink:to="loc_us-gaap_EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense_11573156AE4A08439B6417AC5C553218" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_EmployeeServiceShareBasedCompensationRecognizedPeriodCostsCapitalizedAmount" xlink:label="loc_cgnx_EmployeeServiceShareBasedCompensationRecognizedPeriodCostsCapitalizedAmount_F34A183452FCB3007DC017AC5C55888F" xlink:type="locator" />
    <link:presentationArc order="15" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_0818D02CED54A2670FA617AC5C52CFC5" xlink:to="loc_cgnx_EmployeeServiceShareBasedCompensationRecognizedPeriodCostsCapitalizedAmount_F34A183452FCB3007DC017AC5C55888F" xlink:type="arc" />
  </link:presentationLink>
  <link:presentationLink xlink:role="http://cognex.com/role/StockBasedCompensationExpenseStockBasedCompensationExpenseDetail" xlink:type="extended">
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:label="loc_us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract_9FB05C48C0432B6DB6778095E8DCD6C2" xlink:type="locator" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1" xlink:label="loc_us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1_0FFE90012136520DD7468095E8DCE8FB" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract_9FB05C48C0432B6DB6778095E8DCD6C2" xlink:to="loc_us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1_0FFE90012136520DD7468095E8DCE8FB" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTable" xlink:label="loc_us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTable_FAD249FE8886729019128095E8DCA644" xlink:type="locator" />
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract_9FB05C48C0432B6DB6778095E8DCD6C2" xlink:to="loc_us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTable_FAD249FE8886729019128095E8DCA644" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_IncomeStatementLocationAxis" xlink:label="loc_us-gaap_IncomeStatementLocationAxis_3F0E4C860E662027221F8095E8DC2281" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTable_FAD249FE8886729019128095E8DCA644" xlink:to="loc_us-gaap_IncomeStatementLocationAxis_3F0E4C860E662027221F8095E8DC2281" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_IncomeStatementLocationDomain" xlink:label="loc_us-gaap_IncomeStatementLocationDomain_F10EB111342E4A2BCFF28095E8DC9848" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeStatementLocationAxis_3F0E4C860E662027221F8095E8DC2281" xlink:to="loc_us-gaap_IncomeStatementLocationDomain_F10EB111342E4A2BCFF28095E8DC9848" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_ProductCostOfRevenueMember" xlink:label="loc_cgnx_ProductCostOfRevenueMember_E193B76D303CE253D2128095E8DC9C34" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeStatementLocationDomain_F10EB111342E4A2BCFF28095E8DC9848" xlink:to="loc_cgnx_ProductCostOfRevenueMember_E193B76D303CE253D2128095E8DC9C34" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ResearchAndDevelopmentExpenseMember" xlink:label="loc_us-gaap_ResearchAndDevelopmentExpenseMember_FE72FDDB1EA526F539C78095E8DCB3C7" xlink:type="locator" />
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeStatementLocationDomain_F10EB111342E4A2BCFF28095E8DC9848" xlink:to="loc_us-gaap_ResearchAndDevelopmentExpenseMember_FE72FDDB1EA526F539C78095E8DCB3C7" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_SellingGeneralAndAdministrativeMember" xlink:label="loc_cgnx_SellingGeneralAndAdministrativeMember_0E894832395BF3FFD9868095E8DDFD73" xlink:type="locator" />
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeStatementLocationDomain_F10EB111342E4A2BCFF28095E8DC9848" xlink:to="loc_cgnx_SellingGeneralAndAdministrativeMember_0E894832395BF3FFD9868095E8DDFD73" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_EmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsLineItems" xlink:label="loc_us-gaap_EmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsLineItems_B33E79D0955697D8F1E28095E8DD0CE6" xlink:type="locator" />
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTable_FAD249FE8886729019128095E8DCA644" xlink:to="loc_us-gaap_EmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsLineItems_B33E79D0955697D8F1E28095E8DD0CE6" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_AllocatedShareBasedCompensationExpense" xlink:label="loc_us-gaap_AllocatedShareBasedCompensationExpense_738C67324F2E4B8EBD308095E8DDECC4" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_EmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsLineItems_B33E79D0955697D8F1E28095E8DD0CE6" xlink:to="loc_us-gaap_AllocatedShareBasedCompensationExpense_738C67324F2E4B8EBD308095E8DDECC4" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense" xlink:label="loc_us-gaap_EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense_F6A9CE9DC07C371311C48095E8DDC7A2" xlink:type="locator" />
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_EmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsLineItems_B33E79D0955697D8F1E28095E8DD0CE6" xlink:to="loc_us-gaap_EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense_F6A9CE9DC07C371311C48095E8DDC7A2" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_EmployeeServiceShareBasedCompensationRecognizedPeriodCostsCapitalizedAmount" xlink:label="loc_cgnx_EmployeeServiceShareBasedCompensationRecognizedPeriodCostsCapitalizedAmount_3754A7CD01B45902EE648095E8DD582F" xlink:type="locator" />
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_EmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsLineItems_B33E79D0955697D8F1E28095E8DD0CE6" xlink:to="loc_cgnx_EmployeeServiceShareBasedCompensationRecognizedPeriodCostsCapitalizedAmount_3754A7CD01B45902EE648095E8DD582F" xlink:type="arc" />
  </link:presentationLink>
  <link:presentationLink xlink:role="http://cognex.com/role/StockBasedCompensationExpenseSummaryOfRestrictedStockOptionActivityDetail" xlink:type="extended">
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:label="loc_us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract_01A1EEC70D9D9793B448371234188CD0" xlink:type="locator" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ScheduleOfShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeTable" xlink:label="loc_us-gaap_ScheduleOfShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeTable_F809E55C72934C02B9EC3712341A99A0" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract_01A1EEC70D9D9793B448371234188CD0" xlink:to="loc_us-gaap_ScheduleOfShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeTable_F809E55C72934C02B9EC3712341A99A0" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_AwardTypeAxis" xlink:label="loc_us-gaap_AwardTypeAxis_02FB78F580839315FA09371775A5807C" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeTable_F809E55C72934C02B9EC3712341A99A0" xlink:to="loc_us-gaap_AwardTypeAxis_02FB78F580839315FA09371775A5807C" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_0F49F1520D3F2C0A653F371775A8F285" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AwardTypeAxis_02FB78F580839315FA09371775A5807C" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_0F49F1520D3F2C0A653F371775A8F285" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_RestrictedStockMember" xlink:label="loc_us-gaap_RestrictedStockMember_12618A091512345FE65137185A23CAB5" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_0F49F1520D3F2C0A653F371775A8F285" xlink:to="loc_us-gaap_RestrictedStockMember_12618A091512345FE65137185A23CAB5" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeLineItems" xlink:label="loc_us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeLineItems_1562C5C2EC8D5DCC75DB3712341D3B46" xlink:type="locator" />
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeTable_F809E55C72934C02B9EC3712341A99A0" xlink:to="loc_us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeLineItems_1562C5C2EC8D5DCC75DB3712341D3B46" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedRollForward" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedRollForward_B536933CB6AAEB2983E13712341D4DE4" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeLineItems_1562C5C2EC8D5DCC75DB3712341D3B46" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedRollForward_B536933CB6AAEB2983E13712341D4DE4" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber_209B79B4285525D596613712341D3A80" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/periodStartLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedRollForward_B536933CB6AAEB2983E13712341D4DE4" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber_209B79B4285525D596613712341D3A80" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod_0056361E629AB358ABF73712341D9D1F" xlink:type="locator" />
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedRollForward_B536933CB6AAEB2983E13712341D4DE4" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod_0056361E629AB358ABF73712341D9D1F" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod_BFE93955FC76566D329A3712341EDE4C" xlink:type="locator" />
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2009/role/negatedTerseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedRollForward_B536933CB6AAEB2983E13712341D4DE4" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod_BFE93955FC76566D329A3712341EDE4C" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod_0817A401BD922B4D5DCC3712341E6F0F" xlink:type="locator" />
    <link:presentationArc order="4" preferredLabel="http://www.xbrl.org/2009/role/negatedTerseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedRollForward_B536933CB6AAEB2983E13712341D4DE4" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod_0817A401BD922B4D5DCC3712341E6F0F" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber_CDCC06DBF34360E6B8EA3712341E2998" xlink:type="locator" />
    <link:presentationArc order="5" preferredLabel="http://www.xbrl.org/2003/role/periodEndLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedRollForward_B536933CB6AAEB2983E13712341D4DE4" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber_CDCC06DBF34360E6B8EA3712341E2998" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward_08E8B2E6315BE9CDB9553712341EB966" xlink:type="locator" />
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeLineItems_1562C5C2EC8D5DCC75DB3712341D3B46" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward_08E8B2E6315BE9CDB9553712341EB966" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue_04E9B2A353739EE3D19B37123420F399" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/periodStartLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward_08E8B2E6315BE9CDB9553712341EB966" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue_04E9B2A353739EE3D19B37123420F399" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue_86782418FD019F84AC2837123420D20B" xlink:type="locator" />
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward_08E8B2E6315BE9CDB9553712341EB966" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue_86782418FD019F84AC2837123420D20B" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue_A98667079C52FABEB0FF371234200E5F" xlink:type="locator" />
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward_08E8B2E6315BE9CDB9553712341EB966" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue_A98667079C52FABEB0FF371234200E5F" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue_D42932F1CBCF4FF7595F37123420FD03" xlink:type="locator" />
    <link:presentationArc order="4" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward_08E8B2E6315BE9CDB9553712341EB966" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue_D42932F1CBCF4FF7595F37123420FD03" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue_E5D348E33C685F5DEC3A3712342004F5" xlink:type="locator" />
    <link:presentationArc order="5" preferredLabel="http://www.xbrl.org/2003/role/periodEndLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward_08E8B2E6315BE9CDB9553712341EB966" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue_E5D348E33C685F5DEC3A3712342004F5" xlink:type="arc" />
  </link:presentationLink>
  <link:presentationLink xlink:role="http://cognex.com/role/StockBasedCompensationExpenseSummaryOfStockOptionActivityDetail" xlink:type="extended">
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:label="loc_us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract_1755A049EB88477BE28C8095E8E5AA77" xlink:type="locator" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward_ABB98CFEAAACD605030D8095E8E52A3D" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract_1755A049EB88477BE28C8095E8E5AA77" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward_ABB98CFEAAACD605030D8095E8E52A3D" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber_04321E7D795881C403448095E8E5B308" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/periodStartLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward_ABB98CFEAAACD605030D8095E8E52A3D" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber_04321E7D795881C403448095E8E5B308" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriod" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriod_840AEAE17B85D55337458095E8E59A60" xlink:type="locator" />
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward_ABB98CFEAAACD605030D8095E8E52A3D" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriod_840AEAE17B85D55337458095E8E59A60" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised" xlink:label="loc_us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised_9C06FD33231381E0BF3A8095E8E56FD0" xlink:type="locator" />
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward_ABB98CFEAAACD605030D8095E8E52A3D" xlink:to="loc_us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised_9C06FD33231381E0BF3A8095E8E56FD0" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriod" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriod_6BB1CC826060CA150A818095E8E639F2" xlink:type="locator" />
    <link:presentationArc order="4" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward_ABB98CFEAAACD605030D8095E8E52A3D" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriod_6BB1CC826060CA150A818095E8E639F2" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber_E6E4CDA1A2E3C42DE8318095E8E65F7B" xlink:type="locator" />
    <link:presentationArc order="5" preferredLabel="http://www.xbrl.org/2003/role/periodEndLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward_ABB98CFEAAACD605030D8095E8E52A3D" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber_E6E4CDA1A2E3C42DE8318095E8E65F7B" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward_5CC63CF0D5980903A9958095E8E67424" xlink:type="locator" />
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract_1755A049EB88477BE28C8095E8E5AA77" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward_5CC63CF0D5980903A9958095E8E67424" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice_2B6815B15418FC9B80E38095E8E6CD4E" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/periodStartLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward_5CC63CF0D5980903A9958095E8E67424" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice_2B6815B15418FC9B80E38095E8E6CD4E" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice_A51270727C4203A18E968095E8E6C05B" xlink:type="locator" />
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward_5CC63CF0D5980903A9958095E8E67424" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice_A51270727C4203A18E968095E8E6C05B" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice_C8CDAAD2F9F8395E0C048095E8E6F68D" xlink:type="locator" />
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward_5CC63CF0D5980903A9958095E8E67424" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice_C8CDAAD2F9F8395E0C048095E8E6F68D" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriodWeightedAverageExercisePrice" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriodWeightedAverageExercisePrice_C9B4228AE4CB011F38868095E8E67F32" xlink:type="locator" />
    <link:presentationArc order="4" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward_5CC63CF0D5980903A9958095E8E67424" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriodWeightedAverageExercisePrice_C9B4228AE4CB011F38868095E8E67F32" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice_4CEC155A77A5C0D826C98095E8E6BAAE" xlink:type="locator" />
    <link:presentationArc order="5" preferredLabel="http://www.xbrl.org/2003/role/periodEndLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward_5CC63CF0D5980903A9958095E8E67424" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice_4CEC155A77A5C0D826C98095E8E6BAAE" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber_E8930168B58F84BC33AA8095E8E64958" xlink:type="locator" />
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract_1755A049EB88477BE28C8095E8E5AA77" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber_E8930168B58F84BC33AA8095E8E64958" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableNumber" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableNumber_E2E6BDD0DCB5B9DE7E918095E8E6CE8A" xlink:type="locator" />
    <link:presentationArc order="4" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract_1755A049EB88477BE28C8095E8E5AA77" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableNumber_E2E6BDD0DCB5B9DE7E918095E8E6CE8A" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice_1BEF36D56E97267ECF128095E8E6F41F" xlink:type="locator" />
    <link:presentationArc order="5" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract_1755A049EB88477BE28C8095E8E5AA77" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice_1BEF36D56E97267ECF128095E8E6F41F" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice_5DD3FD90E82A03C796348095E8E64876" xlink:type="locator" />
    <link:presentationArc order="6" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract_1755A049EB88477BE28C8095E8E5AA77" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice_5DD3FD90E82A03C796348095E8E64876" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2" xlink:label="loc_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2_40BE540814DE93D62E2C8095E8E6C17F" xlink:type="locator" />
    <link:presentationArc order="7" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract_1755A049EB88477BE28C8095E8E5AA77" xlink:to="loc_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2_40BE540814DE93D62E2C8095E8E6C17F" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1" xlink:label="loc_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1_DBA3A0BE286CD32D7B408095E8E634C3" xlink:type="locator" />
    <link:presentationArc order="8" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract_1755A049EB88477BE28C8095E8E5AA77" xlink:to="loc_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1_DBA3A0BE286CD32D7B408095E8E634C3" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1" xlink:label="loc_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1_8DDCDB4F3D4FA4CDB8368095E8E6EF4D" xlink:type="locator" />
    <link:presentationArc order="9" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract_1755A049EB88477BE28C8095E8E5AA77" xlink:to="loc_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1_8DDCDB4F3D4FA4CDB8368095E8E6EF4D" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue_AE15B84F784C6658C4A98095E8E61A6B" xlink:type="locator" />
    <link:presentationArc order="10" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract_1755A049EB88477BE28C8095E8E5AA77" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue_AE15B84F784C6658C4A98095E8E61A6B" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableAggregateIntrinsicValue" xlink:label="loc_cgnx_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableAggregateIntrinsicValue_34156DE649A0631AE5018095E8E71562" xlink:type="locator" />
    <link:presentationArc order="11" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract_1755A049EB88477BE28C8095E8E5AA77" xlink:to="loc_cgnx_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableAggregateIntrinsicValue_34156DE649A0631AE5018095E8E71562" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue_6105A9888F45217161238095E8E77E7A" xlink:type="locator" />
    <link:presentationArc order="12" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract_1755A049EB88477BE28C8095E8E5AA77" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue_6105A9888F45217161238095E8E77E7A" xlink:type="arc" />
  </link:presentationLink>
  <link:presentationLink xlink:role="http://cognex.com/role/StockBasedCompensationExpenseWeightedAverageAssumptionsUsedInEstimatingFairValuesOfStockOptionsGrantedDetail" xlink:type="extended">
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:label="loc_us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract_E9ECEAB2627D1E7D7F3937123EB5A32A" xlink:type="locator" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" xlink:label="loc_us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable_1827D3AFFED3B26426AF37123EB50664" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract_E9ECEAB2627D1E7D7F3937123EB5A32A" xlink:to="loc_us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable_1827D3AFFED3B26426AF37123EB50664" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_AwardTypeAxis" xlink:label="loc_us-gaap_AwardTypeAxis_A24FD76EEA0B1C01A94837123EB58663" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable_1827D3AFFED3B26426AF37123EB50664" xlink:to="loc_us-gaap_AwardTypeAxis_A24FD76EEA0B1C01A94837123EB58663" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_30C3FDCBFE4B02C9CF3437123EB6F7C1" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AwardTypeAxis_A24FD76EEA0B1C01A94837123EB58663" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_30C3FDCBFE4B02C9CF3437123EB6F7C1" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_RestrictedStockMember" xlink:label="loc_us-gaap_RestrictedStockMember_B3BE8C13F4FCB3F46FD537123EB639BA" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_30C3FDCBFE4B02C9CF3437123EB6F7C1" xlink:to="loc_us-gaap_RestrictedStockMember_B3BE8C13F4FCB3F46FD537123EB639BA" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_EmployeeStockOptionMember" xlink:label="loc_us-gaap_EmployeeStockOptionMember_5BE5E90B934592912B5537123EB62644" xlink:type="locator" />
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_30C3FDCBFE4B02C9CF3437123EB6F7C1" xlink:to="loc_us-gaap_EmployeeStockOptionMember_5BE5E90B934592912B5537123EB62644" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_B27CE03E3D51C3C0722637123EB7818B" xlink:type="locator" />
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable_1827D3AFFED3B26426AF37123EB50664" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_B27CE03E3D51C3C0722637123EB7818B" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber_87D1F86F27C5EC5E522C37123EB74741" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_B27CE03E3D51C3C0722637123EB7818B" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber_87D1F86F27C5EC5E522C37123EB74741" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue_D67F68018354B72BE12A37123EB72DCA" xlink:type="locator" />
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_B27CE03E3D51C3C0722637123EB7818B" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue_D67F68018354B72BE12A37123EB72DCA" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod_B977ED01396286E3EB7737123EB705B6" xlink:type="locator" />
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_B27CE03E3D51C3C0722637123EB7818B" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod_B977ED01396286E3EB7737123EB705B6" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod_7AFA58E2A0F7D3D9BC4837123EB72F47" xlink:type="locator" />
    <link:presentationArc order="4" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_B27CE03E3D51C3C0722637123EB7818B" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod_7AFA58E2A0F7D3D9BC4837123EB72F47" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue_A1EB5E0B5EB718AEB58737123EB8D46B" xlink:type="locator" />
    <link:presentationArc order="5" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_B27CE03E3D51C3C0722637123EB7818B" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue_A1EB5E0B5EB718AEB58737123EB8D46B" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate_4D31E46635BF03B56F5237123EB80559" xlink:type="locator" />
    <link:presentationArc order="6" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_B27CE03E3D51C3C0722637123EB7818B" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate_4D31E46635BF03B56F5237123EB80559" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate_40ADAA90DF82D690510637123EB8A87C" xlink:type="locator" />
    <link:presentationArc order="7" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_B27CE03E3D51C3C0722637123EB7818B" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate_40ADAA90DF82D690510637123EB8A87C" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate_1B1E2AFBD42D269BE05137123EB86ADE" xlink:type="locator" />
    <link:presentationArc order="8" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_B27CE03E3D51C3C0722637123EB7818B" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate_1B1E2AFBD42D269BE05137123EB86ADE" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1" xlink:label="loc_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1_2CB25ADF34725DA66C3D37123EB87315" xlink:type="locator" />
    <link:presentationArc order="9" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_B27CE03E3D51C3C0722637123EB7818B" xlink:to="loc_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1_2CB25ADF34725DA66C3D37123EB87315" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod_53F4C5A2E029043F06BC37123EB8AEF6" xlink:type="locator" />
    <link:presentationArc order="10" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_B27CE03E3D51C3C0722637123EB7818B" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod_53F4C5A2E029043F06BC37123EB8AEF6" xlink:type="arc" />
  </link:presentationLink>
  <link:presentationLink xlink:role="http://cognex.com/role/StockBasedCompensationTables" xlink:type="extended">
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:label="loc_us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract_A6CAA455FF80746694F38095E8CA9CE0" xlink:type="locator" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock" xlink:label="loc_us-gaap_ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock_E097B2D981D4E9C6B8B08095E8CAA9AF" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract_A6CAA455FF80746694F38095E8CA9CE0" xlink:to="loc_us-gaap_ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock_E097B2D981D4E9C6B8B08095E8CAA9AF" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock" xlink:label="loc_us-gaap_ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock_919A928370D468B5919D8095E8CA2884" xlink:type="locator" />
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract_A6CAA455FF80746694F38095E8CA9CE0" xlink:to="loc_us-gaap_ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock_919A928370D468B5919D8095E8CA2884" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_NonvestedRestrictedStockSharesActivityTableTextBlock" xlink:label="loc_us-gaap_NonvestedRestrictedStockSharesActivityTableTextBlock_CB80E16BFFD09E67F8B38095E8CB4EB9" xlink:type="locator" />
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract_A6CAA455FF80746694F38095E8CA9CE0" xlink:to="loc_us-gaap_NonvestedRestrictedStockSharesActivityTableTextBlock_CB80E16BFFD09E67F8B38095E8CB4EB9" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock" xlink:label="loc_us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock_5A6C8C6EE339DD2A1B9E8095E8CB773D" xlink:type="locator" />
    <link:presentationArc order="4" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract_A6CAA455FF80746694F38095E8CA9CE0" xlink:to="loc_us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock_5A6C8C6EE339DD2A1B9E8095E8CB773D" xlink:type="arc" />
  </link:presentationLink>
  <link:presentationLink xlink:role="http://cognex.com/role/SubsequentEvents" xlink:type="extended">
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_SubsequentEventsAbstract" xlink:label="loc_us-gaap_SubsequentEventsAbstract_114C677810E2DAF47D408095E8D084D2" xlink:type="locator" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_SubsequentEventsTextBlock" xlink:label="loc_us-gaap_SubsequentEventsTextBlock_DF62DF1EB3100848B6BE8095E8D04877" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_SubsequentEventsAbstract_114C677810E2DAF47D408095E8D084D2" xlink:to="loc_us-gaap_SubsequentEventsTextBlock_DF62DF1EB3100848B6BE8095E8D04877" xlink:type="arc" />
  </link:presentationLink>
  <link:presentationLink xlink:role="http://cognex.com/role/SubsequentEventsDetails" xlink:type="extended">
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_SubsequentEventsAbstract" xlink:label="loc_us-gaap_SubsequentEventsAbstract_F8B242365E3E9E502A0B8095E64FCF8D" xlink:type="locator" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_SubsequentEventTable" xlink:label="loc_us-gaap_SubsequentEventTable_31911A55B8BB0F3C0CA78095E64FDAE9" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_SubsequentEventsAbstract_F8B242365E3E9E502A0B8095E64FCF8D" xlink:to="loc_us-gaap_SubsequentEventTable_31911A55B8BB0F3C0CA78095E64FDAE9" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_SubsequentEventTypeAxis" xlink:label="loc_us-gaap_SubsequentEventTypeAxis_2616C9DB402BEEDB0E648095E64FA090" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_SubsequentEventTable_31911A55B8BB0F3C0CA78095E64FDAE9" xlink:to="loc_us-gaap_SubsequentEventTypeAxis_2616C9DB402BEEDB0E648095E64FA090" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_SubsequentEventTypeDomain" xlink:label="loc_us-gaap_SubsequentEventTypeDomain_EB2C0136D44A3BC1B1C08095E64F152B" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_SubsequentEventTypeAxis_2616C9DB402BEEDB0E648095E64FA090" xlink:to="loc_us-gaap_SubsequentEventTypeDomain_EB2C0136D44A3BC1B1C08095E64F152B" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_SubsequentEventMember" xlink:label="loc_us-gaap_SubsequentEventMember_90E69BD2CD5B901A98058095E64F4A02" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_SubsequentEventTypeDomain_EB2C0136D44A3BC1B1C08095E64F152B" xlink:to="loc_us-gaap_SubsequentEventMember_90E69BD2CD5B901A98058095E64F4A02" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_SubsequentEventLineItems" xlink:label="loc_us-gaap_SubsequentEventLineItems_5408A831191F359D168A8095E64F70AC" xlink:type="locator" />
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_SubsequentEventTable_31911A55B8BB0F3C0CA78095E64FDAE9" xlink:to="loc_us-gaap_SubsequentEventLineItems_5408A831191F359D168A8095E64F70AC" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_DividendsPayableAmountPerShare" xlink:label="loc_us-gaap_DividendsPayableAmountPerShare_717D10A735048D17D5A58095E64F2747" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_SubsequentEventLineItems_5408A831191F359D168A8095E64F70AC" xlink:to="loc_us-gaap_DividendsPayableAmountPerShare_717D10A735048D17D5A58095E64F2747" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_DividendsPayableDateDeclaredDayMonthAndYear" xlink:label="loc_us-gaap_DividendsPayableDateDeclaredDayMonthAndYear_E633E271D39930726C0E8095E64F8A46" xlink:type="locator" />
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_SubsequentEventLineItems_5408A831191F359D168A8095E64F70AC" xlink:to="loc_us-gaap_DividendsPayableDateDeclaredDayMonthAndYear_E633E271D39930726C0E8095E64F8A46" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_DividendsPayableDateOfRecordDayMonthAndYear" xlink:label="loc_us-gaap_DividendsPayableDateOfRecordDayMonthAndYear_9D40564AAFCF11F0E26C8095E64FB897" xlink:type="locator" />
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_SubsequentEventLineItems_5408A831191F359D168A8095E64F70AC" xlink:to="loc_us-gaap_DividendsPayableDateOfRecordDayMonthAndYear_9D40564AAFCF11F0E26C8095E64FB897" xlink:type="arc" />
  </link:presentationLink>
  <link:presentationLink xlink:role="http://cognex.com/role/SummaryOfSignificantAccountingPolicies" xlink:type="extended">
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_AccountingPoliciesAbstract" xlink:label="loc_us-gaap_AccountingPoliciesAbstract_5CE07789BEED0F9A9B828095E67E70BC" xlink:type="locator" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_SignificantAccountingPoliciesTextBlock" xlink:label="loc_us-gaap_SignificantAccountingPoliciesTextBlock_002A3068CAAE948A4A7C8095E67E74ED" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AccountingPoliciesAbstract_5CE07789BEED0F9A9B828095E67E70BC" xlink:to="loc_us-gaap_SignificantAccountingPoliciesTextBlock_002A3068CAAE948A4A7C8095E67E74ED" xlink:type="arc" />
  </link:presentationLink>
  <link:presentationLink xlink:role="http://cognex.com/role/SummaryOfSignificantAccountingPoliciesAdditionalInformationDetail" xlink:type="extended">
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_AccountingPoliciesAbstract" xlink:label="loc_us-gaap_AccountingPoliciesAbstract_0DCC9021A9E86315CFA01600E19F8ECF" xlink:type="locator" />
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_AvailableforsaleSecuritiesDebtMaturitiesEffectiveTermMaximum" xlink:label="loc_cgnx_AvailableforsaleSecuritiesDebtMaturitiesEffectiveTermMaximum_382421CB990C0E01A5DE1600E19F288A" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AccountingPoliciesAbstract_0DCC9021A9E86315CFA01600E19F8ECF" xlink:to="loc_cgnx_AvailableforsaleSecuritiesDebtMaturitiesEffectiveTermMaximum_382421CB990C0E01A5DE1600E19F288A" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_MaximumInvestmentOfCompanyInPartnership" xlink:label="loc_cgnx_MaximumInvestmentOfCompanyInPartnership_BC7891510630D88BC85D1600E1A0B77F" xlink:type="locator" />
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AccountingPoliciesAbstract_0DCC9021A9E86315CFA01600E19F8ECF" xlink:to="loc_cgnx_MaximumInvestmentOfCompanyInPartnership_BC7891510630D88BC85D1600E1A0B77F" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ScheduleOfPropertyPlantAndEquipmentTable" xlink:label="loc_us-gaap_ScheduleOfPropertyPlantAndEquipmentTable_FF453A375C4B0E6726901600E1A016A6" xlink:type="locator" />
    <link:presentationArc order="3" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AccountingPoliciesAbstract_0DCC9021A9E86315CFA01600E19F8ECF" xlink:to="loc_us-gaap_ScheduleOfPropertyPlantAndEquipmentTable_FF453A375C4B0E6726901600E1A016A6" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_PropertyPlantAndEquipmentByTypeAxis" xlink:label="loc_us-gaap_PropertyPlantAndEquipmentByTypeAxis_0EB68C89F307CBC4B5F81600E1A0B14F" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfPropertyPlantAndEquipmentTable_FF453A375C4B0E6726901600E1A016A6" xlink:to="loc_us-gaap_PropertyPlantAndEquipmentByTypeAxis_0EB68C89F307CBC4B5F81600E1A0B14F" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_PropertyPlantAndEquipmentTypeDomain" xlink:label="loc_us-gaap_PropertyPlantAndEquipmentTypeDomain_3F8533E132F6D678F39C1600E1A09DE2" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentByTypeAxis_0EB68C89F307CBC4B5F81600E1A0B14F" xlink:to="loc_us-gaap_PropertyPlantAndEquipmentTypeDomain_3F8533E132F6D678F39C1600E1A09DE2" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_BuildingMember" xlink:label="loc_us-gaap_BuildingMember_527E1E185F0CAE5893AD1600E1A10F92" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentTypeDomain_3F8533E132F6D678F39C1600E1A09DE2" xlink:to="loc_us-gaap_BuildingMember_527E1E185F0CAE5893AD1600E1A10F92" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_BuildingImprovementsMember" xlink:label="loc_us-gaap_BuildingImprovementsMember_79F4FB2791899CBB25681600E1A1CE67" xlink:type="locator" />
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentTypeDomain_3F8533E132F6D678F39C1600E1A09DE2" xlink:to="loc_us-gaap_BuildingImprovementsMember_79F4FB2791899CBB25681600E1A1CE67" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_ComputerHardwareAndSoftwareMember" xlink:label="loc_cgnx_ComputerHardwareAndSoftwareMember_E6CF624414F7188ED4971600E1A1E5A7" xlink:type="locator" />
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentTypeDomain_3F8533E132F6D678F39C1600E1A09DE2" xlink:to="loc_cgnx_ComputerHardwareAndSoftwareMember_E6CF624414F7188ED4971600E1A1E5A7" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_EquipmentMember" xlink:label="loc_us-gaap_EquipmentMember_1C08E2453968EEBA30231600E1A177CA" xlink:type="locator" />
    <link:presentationArc order="4" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentTypeDomain_3F8533E132F6D678F39C1600E1A09DE2" xlink:to="loc_us-gaap_EquipmentMember_1C08E2453968EEBA30231600E1A177CA" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_FurnitureAndFixturesMember" xlink:label="loc_us-gaap_FurnitureAndFixturesMember_D19A2165E3C3191654B71600E1A17AB6" xlink:type="locator" />
    <link:presentationArc order="5" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentTypeDomain_3F8533E132F6D678F39C1600E1A09DE2" xlink:to="loc_us-gaap_FurnitureAndFixturesMember_D19A2165E3C3191654B71600E1A17AB6" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2018/elts/srt-2018-01-31.xsd#srt_RangeAxis" xlink:label="loc_srt_RangeAxis_DE161B84D2A71BCF8AAB1600E1A232CC" xlink:type="locator" />
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfPropertyPlantAndEquipmentTable_FF453A375C4B0E6726901600E1A016A6" xlink:to="loc_srt_RangeAxis_DE161B84D2A71BCF8AAB1600E1A232CC" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2018/elts/srt-2018-01-31.xsd#srt_RangeMember" xlink:label="loc_srt_RangeMember_32BA60BCD4F0508251581600E1A2A009" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_RangeAxis_DE161B84D2A71BCF8AAB1600E1A232CC" xlink:to="loc_srt_RangeMember_32BA60BCD4F0508251581600E1A2A009" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2018/elts/srt-2018-01-31.xsd#srt_MinimumMember" xlink:label="loc_srt_MinimumMember_2C8D525530DEE6980AAA1600E1A2433B" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_RangeMember_32BA60BCD4F0508251581600E1A2A009" xlink:to="loc_srt_MinimumMember_2C8D525530DEE6980AAA1600E1A2433B" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2018/elts/srt-2018-01-31.xsd#srt_MaximumMember" xlink:label="loc_srt_MaximumMember_C0A45BBE7C35FA0A5F741600E1A20A70" xlink:type="locator" />
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_RangeMember_32BA60BCD4F0508251581600E1A2A009" xlink:to="loc_srt_MaximumMember_C0A45BBE7C35FA0A5F741600E1A20A70" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_PropertyPlantAndEquipmentLineItems" xlink:label="loc_us-gaap_PropertyPlantAndEquipmentLineItems_204A6F23BC210D454ADB1600E1A33E68" xlink:type="locator" />
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfPropertyPlantAndEquipmentTable_FF453A375C4B0E6726901600E1A016A6" xlink:to="loc_us-gaap_PropertyPlantAndEquipmentLineItems_204A6F23BC210D454ADB1600E1A33E68" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_PropertyPlantAndEquipmentUsefulLife" xlink:label="loc_us-gaap_PropertyPlantAndEquipmentUsefulLife_901925CE1856ED49CE7F1600E1A3B753" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentLineItems_204A6F23BC210D454ADB1600E1A33E68" xlink:to="loc_us-gaap_PropertyPlantAndEquipmentUsefulLife_901925CE1856ED49CE7F1600E1A3B753" xlink:type="arc" />
  </link:presentationLink>
  <link:presentationLink xlink:role="http://cognex.com/role/SummaryOfSignificantAccountingPoliciesAdvertisingCostsDetails" xlink:type="extended">
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_AccountingPoliciesAbstract" xlink:label="loc_us-gaap_AccountingPoliciesAbstract_72E4669FC6EA1B9C29AF8095E5513816" xlink:type="locator" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_AdvertisingExpense" xlink:label="loc_us-gaap_AdvertisingExpense_67709F0792734C6EAA368095E552E0A7" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AccountingPoliciesAbstract_72E4669FC6EA1B9C29AF8095E5513816" xlink:to="loc_us-gaap_AdvertisingExpense_67709F0792734C6EAA368095E552E0A7" xlink:type="arc" />
  </link:presentationLink>
  <link:presentationLink xlink:role="http://cognex.com/role/SummaryOfSignificantAccountingPoliciesComprehensiveIncomeLossDetails" xlink:type="extended">
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_AccountingPoliciesAbstract" xlink:label="loc_us-gaap_AccountingPoliciesAbstract_537E7F2C261B98D7CD938095E8EAAD6C" xlink:type="locator" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_AccumulatedOtherComprehensiveIncomeLossTable" xlink:label="loc_us-gaap_AccumulatedOtherComprehensiveIncomeLossTable_B5736A0C6B05224EA2688095E8EA4017" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AccountingPoliciesAbstract_537E7F2C261B98D7CD938095E8EAAD6C" xlink:to="loc_us-gaap_AccumulatedOtherComprehensiveIncomeLossTable_B5736A0C6B05224EA2688095E8EA4017" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_StatementEquityComponentsAxis" xlink:label="loc_us-gaap_StatementEquityComponentsAxis_BE755B4FAFFC102967DE8095E8EAF562" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AccumulatedOtherComprehensiveIncomeLossTable_B5736A0C6B05224EA2688095E8EA4017" xlink:to="loc_us-gaap_StatementEquityComponentsAxis_BE755B4FAFFC102967DE8095E8EAF562" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_EquityComponentDomain" xlink:label="loc_us-gaap_EquityComponentDomain_ACB32C4006DBA06201258095E8EAE12E" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StatementEquityComponentsAxis_BE755B4FAFFC102967DE8095E8EAF562" xlink:to="loc_us-gaap_EquityComponentDomain_ACB32C4006DBA06201258095E8EAE12E" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_AccumulatedOtherComprehensiveIncomeMember" xlink:label="loc_us-gaap_AccumulatedOtherComprehensiveIncomeMember_3F4D942DFC9CC8B198788095E8EADAC2" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_EquityComponentDomain_ACB32C4006DBA06201258095E8EAE12E" xlink:to="loc_us-gaap_AccumulatedOtherComprehensiveIncomeMember_3F4D942DFC9CC8B198788095E8EADAC2" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_AccumulatedOtherComprehensiveIncomeLossLineItems" xlink:label="loc_us-gaap_AccumulatedOtherComprehensiveIncomeLossLineItems_AC83F9A6123902C531A98095E8EAC6FA" xlink:type="locator" />
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AccumulatedOtherComprehensiveIncomeLossTable_B5736A0C6B05224EA2688095E8EA4017" xlink:to="loc_us-gaap_AccumulatedOtherComprehensiveIncomeLossLineItems_AC83F9A6123902C531A98095E8EAC6FA" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_AccumulatedOtherComprehensiveIncomeLossForeignCurrencyTranslationAdjustmentNetOfTax" xlink:label="loc_us-gaap_AccumulatedOtherComprehensiveIncomeLossForeignCurrencyTranslationAdjustmentNetOfTax_4168ED638885A436063B8095E8EA6222" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AccumulatedOtherComprehensiveIncomeLossLineItems_AC83F9A6123902C531A98095E8EAC6FA" xlink:to="loc_us-gaap_AccumulatedOtherComprehensiveIncomeLossForeignCurrencyTranslationAdjustmentNetOfTax_4168ED638885A436063B8095E8EA6222" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_AccumulatedOtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax" xlink:label="loc_us-gaap_AccumulatedOtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax_ED73FD7E74905153841C8095E8EA8025" xlink:type="locator" />
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AccumulatedOtherComprehensiveIncomeLossLineItems_AC83F9A6123902C531A98095E8EAC6FA" xlink:to="loc_us-gaap_AccumulatedOtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax_ED73FD7E74905153841C8095E8EA8025" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_AdjustmentForLongTermIntercompanyTransactionsNetOfTax" xlink:label="loc_us-gaap_AdjustmentForLongTermIntercompanyTransactionsNetOfTax_08F4A1E4BE2A92549BD18095E8EAB7EA" xlink:type="locator" />
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AccumulatedOtherComprehensiveIncomeLossLineItems_AC83F9A6123902C531A98095E8EAC6FA" xlink:to="loc_us-gaap_AdjustmentForLongTermIntercompanyTransactionsNetOfTax_08F4A1E4BE2A92549BD18095E8EAB7EA" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax" xlink:label="loc_us-gaap_OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax_8C800DA5C7856D3E71E38095E8EACFDD" xlink:type="locator" />
    <link:presentationArc order="4" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AccumulatedOtherComprehensiveIncomeLossLineItems_AC83F9A6123902C531A98095E8EAC6FA" xlink:to="loc_us-gaap_OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax_8C800DA5C7856D3E71E38095E8EACFDD" xlink:type="arc" />
  </link:presentationLink>
  <link:presentationLink xlink:role="http://cognex.com/role/SummaryOfSignificantAccountingPoliciesIntangibleAssetsDetails" xlink:type="extended">
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_AccountingPoliciesAbstract" xlink:label="loc_us-gaap_AccountingPoliciesAbstract_B04551E6CFB12AC124AD17B868A41A56" xlink:type="locator" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable" xlink:label="loc_us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable_12D9DEC62976099AEA8317B868A44893" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AccountingPoliciesAbstract_B04551E6CFB12AC124AD17B868A41A56" xlink:to="loc_us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable_12D9DEC62976099AEA8317B868A44893" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_D555169920AF7DA30EEB17B868A5F192" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable_12D9DEC62976099AEA8317B868A44893" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_D555169920AF7DA30EEB17B868A5F192" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_F3021EA6615599E1887117B868A5FAFB" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_D555169920AF7DA30EEB17B868A5F192" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_F3021EA6615599E1887117B868A5FAFB" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_DistributionRightsMember" xlink:label="loc_us-gaap_DistributionRightsMember_185353C1D3CE6CF0A5EB17B868A5E102" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_F3021EA6615599E1887117B868A5FAFB" xlink:to="loc_us-gaap_DistributionRightsMember_185353C1D3CE6CF0A5EB17B868A5E102" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_CompletedTechnologiesAndOtherIntangibleAssetsMember" xlink:label="loc_cgnx_CompletedTechnologiesAndOtherIntangibleAssetsMember_C74B1378E2A931A93A7017B868A68215" xlink:type="locator" />
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_F3021EA6615599E1887117B868A5FAFB" xlink:to="loc_cgnx_CompletedTechnologiesAndOtherIntangibleAssetsMember_C74B1378E2A931A93A7017B868A68215" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_CustomerContractsAndRelationshipsMember" xlink:label="loc_cgnx_CustomerContractsAndRelationshipsMember_DE4F049267619D6081E817B868A68152" xlink:type="locator" />
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_F3021EA6615599E1887117B868A5FAFB" xlink:to="loc_cgnx_CustomerContractsAndRelationshipsMember_DE4F049267619D6081E817B868A68152" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_NoncompeteAgreementsMember" xlink:label="loc_us-gaap_NoncompeteAgreementsMember_421EE7999B914599B3A717B868AB5683" xlink:type="locator" />
    <link:presentationArc order="4" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_F3021EA6615599E1887117B868A5FAFB" xlink:to="loc_us-gaap_NoncompeteAgreementsMember_421EE7999B914599B3A717B868AB5683" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_TrademarksMember" xlink:label="loc_us-gaap_TrademarksMember_C0AF0815DC9027D32EFB17B868AB3C8A" xlink:type="locator" />
    <link:presentationArc order="5" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_F3021EA6615599E1887117B868A5FAFB" xlink:to="loc_us-gaap_TrademarksMember_C0AF0815DC9027D32EFB17B868AB3C8A" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2018/elts/srt-2018-01-31.xsd#srt_RangeAxis" xlink:label="loc_srt_RangeAxis_697B1B8AFC2EB059AE9017B868AC375C" xlink:type="locator" />
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable_12D9DEC62976099AEA8317B868A44893" xlink:to="loc_srt_RangeAxis_697B1B8AFC2EB059AE9017B868AC375C" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2018/elts/srt-2018-01-31.xsd#srt_RangeMember" xlink:label="loc_srt_RangeMember_40A61D327FAFFCC2A50A17B868AC2377" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_RangeAxis_697B1B8AFC2EB059AE9017B868AC375C" xlink:to="loc_srt_RangeMember_40A61D327FAFFCC2A50A17B868AC2377" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2018/elts/srt-2018-01-31.xsd#srt_MinimumMember" xlink:label="loc_srt_MinimumMember_89574EFA17834718E61D17B868AC9C2B" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_RangeMember_40A61D327FAFFCC2A50A17B868AC2377" xlink:to="loc_srt_MinimumMember_89574EFA17834718E61D17B868AC9C2B" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2018/elts/srt-2018-01-31.xsd#srt_MaximumMember" xlink:label="loc_srt_MaximumMember_4D23D7D953F20D108ADA17B868AD2E09" xlink:type="locator" />
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_RangeMember_40A61D327FAFFCC2A50A17B868AC2377" xlink:to="loc_srt_MaximumMember_4D23D7D953F20D108ADA17B868AD2E09" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsLineItems" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsLineItems_991594A360834DBB4EBC17B868ADB4D9" xlink:type="locator" />
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable_12D9DEC62976099AEA8317B868A44893" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsLineItems_991594A360834DBB4EBC17B868ADB4D9" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetUsefulLife" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetUsefulLife_E01D1E587A385D2B5E9417B868AD4B17" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsLineItems_991594A360834DBB4EBC17B868ADB4D9" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetUsefulLife_E01D1E587A385D2B5E9417B868AD4B17" xlink:type="arc" />
  </link:presentationLink>
  <link:presentationLink xlink:role="http://cognex.com/role/SummaryOfSignificantAccountingPoliciesPolicies" xlink:type="extended">
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_AccountingPoliciesAbstract" xlink:label="loc_us-gaap_AccountingPoliciesAbstract_17C5ED651754FDC260488095E7DCAA73" xlink:type="locator" />
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_NatureOfOperationsPolicyTextBlock" xlink:label="loc_cgnx_NatureOfOperationsPolicyTextBlock_96AD6CCE4ADCDAD725018095E7DCB0F2" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AccountingPoliciesAbstract_17C5ED651754FDC260488095E7DCAA73" xlink:to="loc_cgnx_NatureOfOperationsPolicyTextBlock_96AD6CCE4ADCDAD725018095E7DCB0F2" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_UseOfEstimates" xlink:label="loc_us-gaap_UseOfEstimates_3AE84BF076E817D5F8C98095E7DC0DFC" xlink:type="locator" />
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AccountingPoliciesAbstract_17C5ED651754FDC260488095E7DCAA73" xlink:to="loc_us-gaap_UseOfEstimates_3AE84BF076E817D5F8C98095E7DC0DFC" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ConsolidationPolicyTextBlock" xlink:label="loc_us-gaap_ConsolidationPolicyTextBlock_6A381C60AAB8CB5F14488095E7DC1433" xlink:type="locator" />
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AccountingPoliciesAbstract_17C5ED651754FDC260488095E7DCAA73" xlink:to="loc_us-gaap_ConsolidationPolicyTextBlock_6A381C60AAB8CB5F14488095E7DC1433" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ForeignCurrencyTransactionsAndTranslationsPolicyTextBlock" xlink:label="loc_us-gaap_ForeignCurrencyTransactionsAndTranslationsPolicyTextBlock_44C1801BCF31BAAA451C8095E7DCBB19" xlink:type="locator" />
    <link:presentationArc order="4" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AccountingPoliciesAbstract_17C5ED651754FDC260488095E7DCAA73" xlink:to="loc_us-gaap_ForeignCurrencyTransactionsAndTranslationsPolicyTextBlock_44C1801BCF31BAAA451C8095E7DCBB19" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_FairValueOfFinancialInstrumentsPolicy" xlink:label="loc_us-gaap_FairValueOfFinancialInstrumentsPolicy_1DD2B059EBC28E7C54318095E7DC8F17" xlink:type="locator" />
    <link:presentationArc order="5" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AccountingPoliciesAbstract_17C5ED651754FDC260488095E7DCAA73" xlink:to="loc_us-gaap_FairValueOfFinancialInstrumentsPolicy_1DD2B059EBC28E7C54318095E7DC8F17" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_CashAndCashEquivalentsPolicyTextBlock" xlink:label="loc_us-gaap_CashAndCashEquivalentsPolicyTextBlock_A3880C5A27C7D997A3C68095E7DCA5CA" xlink:type="locator" />
    <link:presentationArc order="6" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AccountingPoliciesAbstract_17C5ED651754FDC260488095E7DCAA73" xlink:to="loc_us-gaap_CashAndCashEquivalentsPolicyTextBlock_A3880C5A27C7D997A3C68095E7DCA5CA" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ReceivablesPolicyTextBlock" xlink:label="loc_us-gaap_ReceivablesPolicyTextBlock_D246CEFE8EE122FC17A08095E7DC7CB2" xlink:type="locator" />
    <link:presentationArc order="7" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AccountingPoliciesAbstract_17C5ED651754FDC260488095E7DCAA73" xlink:to="loc_us-gaap_ReceivablesPolicyTextBlock_D246CEFE8EE122FC17A08095E7DC7CB2" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_InventoryPolicyTextBlock" xlink:label="loc_us-gaap_InventoryPolicyTextBlock_E5DAE89BA60CF6711C818095E7DCA035" xlink:type="locator" />
    <link:presentationArc order="8" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AccountingPoliciesAbstract_17C5ED651754FDC260488095E7DCAA73" xlink:to="loc_us-gaap_InventoryPolicyTextBlock_E5DAE89BA60CF6711C818095E7DCA035" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_PropertyPlantAndEquipmentPolicyTextBlock" xlink:label="loc_us-gaap_PropertyPlantAndEquipmentPolicyTextBlock_99D234D57091B25A9A488095E7DC9331" xlink:type="locator" />
    <link:presentationArc order="9" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AccountingPoliciesAbstract_17C5ED651754FDC260488095E7DCAA73" xlink:to="loc_us-gaap_PropertyPlantAndEquipmentPolicyTextBlock_99D234D57091B25A9A488095E7DC9331" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_GoodwillAndIntangibleAssetsGoodwillPolicy" xlink:label="loc_us-gaap_GoodwillAndIntangibleAssetsGoodwillPolicy_1369256D1A2FE63D63A28095E7DCA03B" xlink:type="locator" />
    <link:presentationArc order="10" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AccountingPoliciesAbstract_17C5ED651754FDC260488095E7DCAA73" xlink:to="loc_us-gaap_GoodwillAndIntangibleAssetsGoodwillPolicy_1369256D1A2FE63D63A28095E7DCA03B" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_IntangibleAssetsFiniteLivedPolicy" xlink:label="loc_us-gaap_IntangibleAssetsFiniteLivedPolicy_3A0C9CECD33C79B1FB6D8095E7DC5F8B" xlink:type="locator" />
    <link:presentationArc order="11" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AccountingPoliciesAbstract_17C5ED651754FDC260488095E7DCAA73" xlink:to="loc_us-gaap_IntangibleAssetsFiniteLivedPolicy_3A0C9CECD33C79B1FB6D8095E7DC5F8B" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_StandardProductWarrantyPolicy" xlink:label="loc_us-gaap_StandardProductWarrantyPolicy_58368D5DD35863D9B3C18095E7DC0362" xlink:type="locator" />
    <link:presentationArc order="12" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AccountingPoliciesAbstract_17C5ED651754FDC260488095E7DCAA73" xlink:to="loc_us-gaap_StandardProductWarrantyPolicy_58368D5DD35863D9B3C18095E7DC0362" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_CommitmentsAndContingenciesPolicyTextBlock" xlink:label="loc_us-gaap_CommitmentsAndContingenciesPolicyTextBlock_3A3A2CD63377A00704D98095E7DCA82F" xlink:type="locator" />
    <link:presentationArc order="13" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AccountingPoliciesAbstract_17C5ED651754FDC260488095E7DCAA73" xlink:to="loc_us-gaap_CommitmentsAndContingenciesPolicyTextBlock_3A3A2CD63377A00704D98095E7DCA82F" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_RevenueRecognitionPolicyTextBlock" xlink:label="loc_us-gaap_RevenueRecognitionPolicyTextBlock_44A12A0ED980077CDF9E8095E7DC3B07" xlink:type="locator" />
    <link:presentationArc order="14" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AccountingPoliciesAbstract_17C5ED651754FDC260488095E7DCAA73" xlink:to="loc_us-gaap_RevenueRecognitionPolicyTextBlock_44A12A0ED980077CDF9E8095E7DC3B07" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ResearchDevelopmentAndComputerSoftwarePolicyTextBlock" xlink:label="loc_us-gaap_ResearchDevelopmentAndComputerSoftwarePolicyTextBlock_047F4F5E786B3AE30FC98095E7DC9B3E" xlink:type="locator" />
    <link:presentationArc order="15" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AccountingPoliciesAbstract_17C5ED651754FDC260488095E7DCAA73" xlink:to="loc_us-gaap_ResearchDevelopmentAndComputerSoftwarePolicyTextBlock_047F4F5E786B3AE30FC98095E7DC9B3E" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_AdvertisingCostsPolicyTextBlock" xlink:label="loc_us-gaap_AdvertisingCostsPolicyTextBlock_CEC1170E58C1E0C2100A8095E7DCB3DB" xlink:type="locator" />
    <link:presentationArc order="16" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AccountingPoliciesAbstract_17C5ED651754FDC260488095E7DCAA73" xlink:to="loc_us-gaap_AdvertisingCostsPolicyTextBlock_CEC1170E58C1E0C2100A8095E7DCB3DB" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ShareBasedCompensationOptionAndIncentivePlansPolicy" xlink:label="loc_us-gaap_ShareBasedCompensationOptionAndIncentivePlansPolicy_DD9BBD2D50D36730D5948095E7DC9175" xlink:type="locator" />
    <link:presentationArc order="17" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AccountingPoliciesAbstract_17C5ED651754FDC260488095E7DCAA73" xlink:to="loc_us-gaap_ShareBasedCompensationOptionAndIncentivePlansPolicy_DD9BBD2D50D36730D5948095E7DC9175" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_IncomeTaxPolicyTextBlock" xlink:label="loc_us-gaap_IncomeTaxPolicyTextBlock_A1442190E28A1D7481138095E7DDF427" xlink:type="locator" />
    <link:presentationArc order="18" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AccountingPoliciesAbstract_17C5ED651754FDC260488095E7DCAA73" xlink:to="loc_us-gaap_IncomeTaxPolicyTextBlock_A1442190E28A1D7481138095E7DDF427" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_EarningsPerSharePolicyTextBlock" xlink:label="loc_us-gaap_EarningsPerSharePolicyTextBlock_BA5C8EAB9B2FF30F7CB58095E7DD98AD" xlink:type="locator" />
    <link:presentationArc order="19" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AccountingPoliciesAbstract_17C5ED651754FDC260488095E7DCAA73" xlink:to="loc_us-gaap_EarningsPerSharePolicyTextBlock_BA5C8EAB9B2FF30F7CB58095E7DD98AD" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ComprehensiveIncomePolicyPolicyTextBlock" xlink:label="loc_us-gaap_ComprehensiveIncomePolicyPolicyTextBlock_4A1317F7DD44B052CDB98095E7DD966D" xlink:type="locator" />
    <link:presentationArc order="20" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AccountingPoliciesAbstract_17C5ED651754FDC260488095E7DCAA73" xlink:to="loc_us-gaap_ComprehensiveIncomePolicyPolicyTextBlock_4A1317F7DD44B052CDB98095E7DD966D" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_ConcentrationsOfRiskPolicyPolicyTextBlock" xlink:label="loc_cgnx_ConcentrationsOfRiskPolicyPolicyTextBlock_BFB8B1BB20F7812BFAB28095E7DDE989" xlink:type="locator" />
    <link:presentationArc order="21" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AccountingPoliciesAbstract_17C5ED651754FDC260488095E7DCAA73" xlink:to="loc_cgnx_ConcentrationsOfRiskPolicyPolicyTextBlock_BFB8B1BB20F7812BFAB28095E7DDE989" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_DerivativesPolicyTextBlock" xlink:label="loc_us-gaap_DerivativesPolicyTextBlock_EF0D25C8F0C60CAD71498095E7DDC6C3" xlink:type="locator" />
    <link:presentationArc order="22" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AccountingPoliciesAbstract_17C5ED651754FDC260488095E7DCAA73" xlink:to="loc_us-gaap_DerivativesPolicyTextBlock_EF0D25C8F0C60CAD71498095E7DDC6C3" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_BusinessCombinationsPolicy" xlink:label="loc_us-gaap_BusinessCombinationsPolicy_DD0169290D5A7AE379DF8095E7DD7BC5" xlink:type="locator" />
    <link:presentationArc order="23" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AccountingPoliciesAbstract_17C5ED651754FDC260488095E7DCAA73" xlink:to="loc_us-gaap_BusinessCombinationsPolicy_DD0169290D5A7AE379DF8095E7DD7BC5" xlink:type="arc" />
  </link:presentationLink>
  <link:presentationLink xlink:role="http://cognex.com/role/SummaryOfSignificantAccountingPoliciesSummaryOfSignificantAccountingPoliciesRevenueRecognitionDetails" xlink:type="extended">
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_AccountingPoliciesAbstract" xlink:label="loc_us-gaap_AccountingPoliciesAbstract_C73BB0EEFC68E66F7FE1166A9FC4FDE5" xlink:type="locator" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_DisaggregationOfRevenueTable" xlink:label="loc_us-gaap_DisaggregationOfRevenueTable_EB318C094357124C1321166A9FC409FD" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AccountingPoliciesAbstract_C73BB0EEFC68E66F7FE1166A9FC4FDE5" xlink:to="loc_us-gaap_DisaggregationOfRevenueTable_EB318C094357124C1321166A9FC409FD" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2018/elts/srt-2018-01-31.xsd#srt_RangeAxis" xlink:label="loc_srt_RangeAxis_79A36F259A4D5228FE91166A9FC56F77" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DisaggregationOfRevenueTable_EB318C094357124C1321166A9FC409FD" xlink:to="loc_srt_RangeAxis_79A36F259A4D5228FE91166A9FC56F77" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2018/elts/srt-2018-01-31.xsd#srt_RangeMember" xlink:label="loc_srt_RangeMember_466CAD09EE5F93E5E3C1166A9FC6A1A5" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_RangeAxis_79A36F259A4D5228FE91166A9FC56F77" xlink:to="loc_srt_RangeMember_466CAD09EE5F93E5E3C1166A9FC6A1A5" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2018/elts/srt-2018-01-31.xsd#srt_MinimumMember" xlink:label="loc_srt_MinimumMember_2D669C4C480DE91A1C9B166A9FC71C66" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_RangeMember_466CAD09EE5F93E5E3C1166A9FC6A1A5" xlink:to="loc_srt_MinimumMember_2D669C4C480DE91A1C9B166A9FC71C66" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2018/elts/srt-2018-01-31.xsd#srt_MaximumMember" xlink:label="loc_srt_MaximumMember_D29CD578134519C734C0166A9FC72F96" xlink:type="locator" />
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_RangeMember_466CAD09EE5F93E5E3C1166A9FC6A1A5" xlink:to="loc_srt_MaximumMember_D29CD578134519C734C0166A9FC72F96" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_DisaggregationOfRevenueLineItems" xlink:label="loc_us-gaap_DisaggregationOfRevenueLineItems_59472D663F89FE183743166A9FC76017" xlink:type="locator" />
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DisaggregationOfRevenueTable_EB318C094357124C1321166A9FC409FD" xlink:to="loc_us-gaap_DisaggregationOfRevenueLineItems_59472D663F89FE183743166A9FC76017" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_RevenuePaymentTerms" xlink:label="loc_cgnx_RevenuePaymentTerms_D5AC754BA3BC9158A6D6166A9FC877F2" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DisaggregationOfRevenueLineItems_59472D663F89FE183743166A9FC76017" xlink:to="loc_cgnx_RevenuePaymentTerms_D5AC754BA3BC9158A6D6166A9FC877F2" xlink:type="arc" />
  </link:presentationLink>
  <link:presentationLink xlink:role="http://cognex.com/role/SummaryOfSignificantAccountingPoliciesWarrantyDetails" xlink:type="extended">
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_AccountingPoliciesAbstract" xlink:label="loc_us-gaap_AccountingPoliciesAbstract_E392F4F21939B99B947D166AA13F217C" xlink:type="locator" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ProductLiabilityContingencyTable" xlink:label="loc_us-gaap_ProductLiabilityContingencyTable_B41EDFDD84BB556588F3166AA140D0B7" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AccountingPoliciesAbstract_E392F4F21939B99B947D166AA13F217C" xlink:to="loc_us-gaap_ProductLiabilityContingencyTable_B41EDFDD84BB556588F3166AA140D0B7" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2018/elts/srt-2018-01-31.xsd#srt_RangeAxis" xlink:label="loc_srt_RangeAxis_2EF4C4A9ECD501C11848166AA140E0DB" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ProductLiabilityContingencyTable_B41EDFDD84BB556588F3166AA140D0B7" xlink:to="loc_srt_RangeAxis_2EF4C4A9ECD501C11848166AA140E0DB" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2018/elts/srt-2018-01-31.xsd#srt_RangeMember" xlink:label="loc_srt_RangeMember_5D9B029B2DB826660DA6166AA140A407" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_RangeAxis_2EF4C4A9ECD501C11848166AA140E0DB" xlink:to="loc_srt_RangeMember_5D9B029B2DB826660DA6166AA140A407" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2018/elts/srt-2018-01-31.xsd#srt_MinimumMember" xlink:label="loc_srt_MinimumMember_3737140538EF8A1B8533166AA141FAAC" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_RangeMember_5D9B029B2DB826660DA6166AA140A407" xlink:to="loc_srt_MinimumMember_3737140538EF8A1B8533166AA141FAAC" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2018/elts/srt-2018-01-31.xsd#srt_MaximumMember" xlink:label="loc_srt_MaximumMember_6FDBF4A10CBA3C3A8EFF166AA1413163" xlink:type="locator" />
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_RangeMember_5D9B029B2DB826660DA6166AA140A407" xlink:to="loc_srt_MaximumMember_6FDBF4A10CBA3C3A8EFF166AA1413163" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ProductLiabilityContingencyLineItems" xlink:label="loc_us-gaap_ProductLiabilityContingencyLineItems_07025B67EDCF266583DF166AA1419BB2" xlink:type="locator" />
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ProductLiabilityContingencyTable_B41EDFDD84BB556588F3166AA140D0B7" xlink:to="loc_us-gaap_ProductLiabilityContingencyLineItems_07025B67EDCF266583DF166AA1419BB2" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_ProductWarrantyPeriod" xlink:label="loc_cgnx_ProductWarrantyPeriod_B1280CE7DCF9E555480C166AA1411D2C" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ProductLiabilityContingencyLineItems_07025B67EDCF266583DF166AA1419BB2" xlink:to="loc_cgnx_ProductWarrantyPeriod_B1280CE7DCF9E555480C166AA1411D2C" xlink:type="arc" />
  </link:presentationLink>
  <link:presentationLink xlink:role="http://cognex.com/role/Taxes" xlink:type="extended">
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_IncomeTaxDisclosureAbstract" xlink:label="loc_us-gaap_IncomeTaxDisclosureAbstract_085BCC9CB7C82048EE178095E70B94E5" xlink:type="locator" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_IncomeTaxDisclosureTextBlock" xlink:label="loc_us-gaap_IncomeTaxDisclosureTextBlock_D0B108B3DAD641F229E78095E70B04C5" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeTaxDisclosureAbstract_085BCC9CB7C82048EE178095E70B94E5" xlink:to="loc_us-gaap_IncomeTaxDisclosureTextBlock_D0B108B3DAD641F229E78095E70B04C5" xlink:type="arc" />
  </link:presentationLink>
  <link:presentationLink xlink:role="http://cognex.com/role/TaxesAdditionalInformationDetails" xlink:type="extended">
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_IncomeTaxDisclosureAbstract" xlink:label="loc_us-gaap_IncomeTaxDisclosureAbstract_18208E6FCB73FE1FF48B35C1100AE1A9" xlink:type="locator" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_TaxCreditCarryforwardTable" xlink:label="loc_us-gaap_TaxCreditCarryforwardTable_A10F6BA9FF4BD7DBEAB835C1100B6F50" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeTaxDisclosureAbstract_18208E6FCB73FE1FF48B35C1100AE1A9" xlink:to="loc_us-gaap_TaxCreditCarryforwardTable_A10F6BA9FF4BD7DBEAB835C1100B6F50" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_BusinessAcquisitionAxis" xlink:label="loc_us-gaap_BusinessAcquisitionAxis_0B0635C7DD16E6FFD1DF35C1100BB7A9" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_TaxCreditCarryforwardTable_A10F6BA9FF4BD7DBEAB835C1100B6F50" xlink:to="loc_us-gaap_BusinessAcquisitionAxis_0B0635C7DD16E6FFD1DF35C1100BB7A9" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_BusinessAcquisitionAcquireeDomain" xlink:label="loc_us-gaap_BusinessAcquisitionAcquireeDomain_16A09ECB494DD25D449935C1100BC6FB" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_BusinessAcquisitionAxis_0B0635C7DD16E6FFD1DF35C1100BB7A9" xlink:to="loc_us-gaap_BusinessAcquisitionAcquireeDomain_16A09ECB494DD25D449935C1100BC6FB" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_SualabCo.Ltd.Member" xlink:label="loc_cgnx_SualabCo.Ltd.Member_DC66AEA9E69EAE052B9435C1100B4267" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_BusinessAcquisitionAcquireeDomain_16A09ECB494DD25D449935C1100BC6FB" xlink:to="loc_cgnx_SualabCo.Ltd.Member_DC66AEA9E69EAE052B9435C1100B4267" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_IncomeTaxAuthorityAxis" xlink:label="loc_us-gaap_IncomeTaxAuthorityAxis_094CC3B5905E9C367EEC35C1100C9921" xlink:type="locator" />
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_TaxCreditCarryforwardTable_A10F6BA9FF4BD7DBEAB835C1100B6F50" xlink:to="loc_us-gaap_IncomeTaxAuthorityAxis_094CC3B5905E9C367EEC35C1100C9921" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_IncomeTaxAuthorityDomain" xlink:label="loc_us-gaap_IncomeTaxAuthorityDomain_0368EE5BFE3D72A54C8F35C1100CC847" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeTaxAuthorityAxis_094CC3B5905E9C367EEC35C1100C9921" xlink:to="loc_us-gaap_IncomeTaxAuthorityDomain_0368EE5BFE3D72A54C8F35C1100CC847" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ForeignCountryMember" xlink:label="loc_us-gaap_ForeignCountryMember_E7C41ECA4BCFC03F69CE35C1100C2581" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeTaxAuthorityDomain_0368EE5BFE3D72A54C8F35C1100CC847" xlink:to="loc_us-gaap_ForeignCountryMember_E7C41ECA4BCFC03F69CE35C1100C2581" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_DomesticCountryMember" xlink:label="loc_us-gaap_DomesticCountryMember_AA9B871603BCC423918D35C1100C877B" xlink:type="locator" />
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeTaxAuthorityDomain_0368EE5BFE3D72A54C8F35C1100CC847" xlink:to="loc_us-gaap_DomesticCountryMember_AA9B871603BCC423918D35C1100C877B" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_IncomeTaxAuthorityNameAxis" xlink:label="loc_us-gaap_IncomeTaxAuthorityNameAxis_C86D178898DDB5E44E4835C1100D64EF" xlink:type="locator" />
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_TaxCreditCarryforwardTable_A10F6BA9FF4BD7DBEAB835C1100B6F50" xlink:to="loc_us-gaap_IncomeTaxAuthorityNameAxis_C86D178898DDB5E44E4835C1100D64EF" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_IncomeTaxAuthorityNameDomain" xlink:label="loc_us-gaap_IncomeTaxAuthorityNameDomain_A85385954781BDCAFCF535C1100D0642" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeTaxAuthorityNameAxis_C86D178898DDB5E44E4835C1100D64EF" xlink:to="loc_us-gaap_IncomeTaxAuthorityNameDomain_A85385954781BDCAFCF535C1100D0642" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_RevenueCommissionersIrelandMember" xlink:label="loc_us-gaap_RevenueCommissionersIrelandMember_F9E022295D1899A7DC6435C1100D3365" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeTaxAuthorityNameDomain_A85385954781BDCAFCF535C1100D0642" xlink:to="loc_us-gaap_RevenueCommissionersIrelandMember_F9E022295D1899A7DC6435C1100D3365" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_StateAdministrationOfTaxationChinaMember" xlink:label="loc_us-gaap_StateAdministrationOfTaxationChinaMember_F562C05BB80D1567546E35C1100EF368" xlink:type="locator" />
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeTaxAuthorityNameDomain_A85385954781BDCAFCF535C1100D0642" xlink:to="loc_us-gaap_StateAdministrationOfTaxationChinaMember_F562C05BB80D1567546E35C1100EF368" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_AdjustmentsForNewAccountingPronouncementsAxis" xlink:label="loc_us-gaap_AdjustmentsForNewAccountingPronouncementsAxis_B97DFCC146083AA0113435C1100E7D7B" xlink:type="locator" />
    <link:presentationArc order="4" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_TaxCreditCarryforwardTable_A10F6BA9FF4BD7DBEAB835C1100B6F50" xlink:to="loc_us-gaap_AdjustmentsForNewAccountingPronouncementsAxis_B97DFCC146083AA0113435C1100E7D7B" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_TypeOfAdoptionMember" xlink:label="loc_us-gaap_TypeOfAdoptionMember_D3CDA98240EA60E1E9D835C1100EB9B2" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AdjustmentsForNewAccountingPronouncementsAxis_B97DFCC146083AA0113435C1100E7D7B" xlink:to="loc_us-gaap_TypeOfAdoptionMember_D3CDA98240EA60E1E9D835C1100EB9B2" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_AccountingStandardsUpdate201616Member" xlink:label="loc_us-gaap_AccountingStandardsUpdate201616Member_74D6CB3E57206F8B0C5535C1100E8961" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_TypeOfAdoptionMember_D3CDA98240EA60E1E9D835C1100EB9B2" xlink:to="loc_us-gaap_AccountingStandardsUpdate201616Member_74D6CB3E57206F8B0C5535C1100E8961" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_AccountingStandardsUpdate201609StatutoryTaxWithholdingComponentMember" xlink:label="loc_cgnx_AccountingStandardsUpdate201609StatutoryTaxWithholdingComponentMember_92E66746D55843731F3A35C1100E9376" xlink:type="locator" />
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_TypeOfAdoptionMember_D3CDA98240EA60E1E9D835C1100EB9B2" xlink:to="loc_cgnx_AccountingStandardsUpdate201609StatutoryTaxWithholdingComponentMember_92E66746D55843731F3A35C1100E9376" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2018/elts/srt-2018-01-31.xsd#srt_StatementGeographicalAxis" xlink:label="loc_srt_StatementGeographicalAxis_92BE507EED3FC57E7C7735C1100E8476" xlink:type="locator" />
    <link:presentationArc order="5" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_TaxCreditCarryforwardTable_A10F6BA9FF4BD7DBEAB835C1100B6F50" xlink:to="loc_srt_StatementGeographicalAxis_92BE507EED3FC57E7C7735C1100E8476" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2018/elts/srt-2018-01-31.xsd#srt_SegmentGeographicalDomain" xlink:label="loc_srt_SegmentGeographicalDomain_088B302042A385F1218635C1100F5E13" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_StatementGeographicalAxis_92BE507EED3FC57E7C7735C1100E8476" xlink:to="loc_srt_SegmentGeographicalDomain_088B302042A385F1218635C1100F5E13" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_OtherThantheU.SMember" xlink:label="loc_cgnx_OtherThantheU.SMember_DAD4684EDCB87F6B419D35C1100F4569" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_SegmentGeographicalDomain_088B302042A385F1218635C1100F5E13" xlink:to="loc_cgnx_OtherThantheU.SMember_DAD4684EDCB87F6B419D35C1100F4569" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_TaxCreditCarryforwardAxis" xlink:label="loc_us-gaap_TaxCreditCarryforwardAxis_B4B9414F8DCB6B008A6E35C1100F19E5" xlink:type="locator" />
    <link:presentationArc order="6" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_TaxCreditCarryforwardTable_A10F6BA9FF4BD7DBEAB835C1100B6F50" xlink:to="loc_us-gaap_TaxCreditCarryforwardAxis_B4B9414F8DCB6B008A6E35C1100F19E5" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_TaxCreditCarryforwardNameDomain" xlink:label="loc_us-gaap_TaxCreditCarryforwardNameDomain_7A53AE9BF81DCAF4064035C1100FAF62" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_TaxCreditCarryforwardAxis_B4B9414F8DCB6B008A6E35C1100F19E5" xlink:to="loc_us-gaap_TaxCreditCarryforwardNameDomain_7A53AE9BF81DCAF4064035C1100FAF62" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ResearchMember" xlink:label="loc_us-gaap_ResearchMember_A697083286E846F25B3A35C11010807C" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_TaxCreditCarryforwardNameDomain_7A53AE9BF81DCAF4064035C1100FAF62" xlink:to="loc_us-gaap_ResearchMember_A697083286E846F25B3A35C11010807C" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_StateResearchAndExperimentationMember" xlink:label="loc_cgnx_StateResearchAndExperimentationMember_E4C576609B4EB07294A735C1101052DF" xlink:type="locator" />
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_TaxCreditCarryforwardNameDomain_7A53AE9BF81DCAF4064035C1100FAF62" xlink:to="loc_cgnx_StateResearchAndExperimentationMember_E4C576609B4EB07294A735C1101052DF" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_TaxCreditCarryforwardLineItems" xlink:label="loc_us-gaap_TaxCreditCarryforwardLineItems_E178ED6906E3027DF4C335C11010EA3F" xlink:type="locator" />
    <link:presentationArc order="7" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_TaxCreditCarryforwardTable_A10F6BA9FF4BD7DBEAB835C1100B6F50" xlink:to="loc_us-gaap_TaxCreditCarryforwardLineItems_E178ED6906E3027DF4C335C11010EA3F" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_EffectiveIncomeTaxRateReconciliationMigrationofAcquiredIntellectualProperty" xlink:label="loc_cgnx_EffectiveIncomeTaxRateReconciliationMigrationofAcquiredIntellectualProperty_1C1DFAB219C74EDE9C9935C1101026F5" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_TaxCreditCarryforwardLineItems_E178ED6906E3027DF4C335C11010EA3F" xlink:to="loc_cgnx_EffectiveIncomeTaxRateReconciliationMigrationofAcquiredIntellectualProperty_1C1DFAB219C74EDE9C9935C1101026F5" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_UnrecognizedTaxBenefits" xlink:label="loc_us-gaap_UnrecognizedTaxBenefits_0E1CF283A731F37694E435C11011E6DD" xlink:type="locator" />
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_TaxCreditCarryforwardLineItems_E178ED6906E3027DF4C335C11010EA3F" xlink:to="loc_us-gaap_UnrecognizedTaxBenefits_0E1CF283A731F37694E435C11011E6DD" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_IncomeTaxReconciliationForeignIncomeTaxRateDifferential" xlink:label="loc_us-gaap_IncomeTaxReconciliationForeignIncomeTaxRateDifferential_524870F8D09DF1AA123835C11011D0F9" xlink:type="locator" />
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_TaxCreditCarryforwardLineItems_E178ED6906E3027DF4C335C11010EA3F" xlink:to="loc_us-gaap_IncomeTaxReconciliationForeignIncomeTaxRateDifferential_524870F8D09DF1AA123835C11011D0F9" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_DeferredTaxAssetsForeignTaxStructureChange" xlink:label="loc_cgnx_DeferredTaxAssetsForeignTaxStructureChange_49A1FC930417E785216135C11011FFF8" xlink:type="locator" />
    <link:presentationArc order="4" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_TaxCreditCarryforwardLineItems_E178ED6906E3027DF4C335C11010EA3F" xlink:to="loc_cgnx_DeferredTaxAssetsForeignTaxStructureChange_49A1FC930417E785216135C11011FFF8" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_DeferredTaxLiabilitiesTaxCutsAndJobsActGlobalIntangibleLowTaxIncome" xlink:label="loc_cgnx_DeferredTaxLiabilitiesTaxCutsAndJobsActGlobalIntangibleLowTaxIncome_C989389242780F3DF74D35C11011848F" xlink:type="locator" />
    <link:presentationArc order="5" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_TaxCreditCarryforwardLineItems_E178ED6906E3027DF4C335C11010EA3F" xlink:to="loc_cgnx_DeferredTaxLiabilitiesTaxCutsAndJobsActGlobalIntangibleLowTaxIncome_C989389242780F3DF74D35C11011848F" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesDomestic" xlink:label="loc_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesDomestic_FBE9927AF2F4DB0C938D35C11011E0B5" xlink:type="locator" />
    <link:presentationArc order="6" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_TaxCreditCarryforwardLineItems_E178ED6906E3027DF4C335C11010EA3F" xlink:to="loc_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesDomestic_FBE9927AF2F4DB0C938D35C11011E0B5" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign" xlink:label="loc_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign_C613346B917F61514D2835C11011FB87" xlink:type="locator" />
    <link:presentationArc order="7" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_TaxCreditCarryforwardLineItems_E178ED6906E3027DF4C335C11010EA3F" xlink:to="loc_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign_C613346B917F61514D2835C11011FB87" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_TaxCutsAndJobsActOf2017IncompleteAccountingChangeInTaxRateDeferredTaxAssetProvisionalIncomeTaxExpense" xlink:label="loc_cgnx_TaxCutsAndJobsActOf2017IncompleteAccountingChangeInTaxRateDeferredTaxAssetProvisionalIncomeTaxExpense_E1DF2E9A8E27B23248B935C11012AEA4" xlink:type="locator" />
    <link:presentationArc order="8" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_TaxCreditCarryforwardLineItems_E178ED6906E3027DF4C335C11010EA3F" xlink:to="loc_cgnx_TaxCutsAndJobsActOf2017IncompleteAccountingChangeInTaxRateDeferredTaxAssetProvisionalIncomeTaxExpense_E1DF2E9A8E27B23248B935C11012AEA4" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_TaxCutsAndJobsActOf2017IncompleteAccountingTransitionTaxForAccumulatedForeignEarningsProvisionalIncomeTaxExpense" xlink:label="loc_cgnx_TaxCutsAndJobsActOf2017IncompleteAccountingTransitionTaxForAccumulatedForeignEarningsProvisionalIncomeTaxExpense_E32EAD24457B8936461C35C11012B974" xlink:type="locator" />
    <link:presentationArc order="9" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_TaxCreditCarryforwardLineItems_E178ED6906E3027DF4C335C11010EA3F" xlink:to="loc_cgnx_TaxCutsAndJobsActOf2017IncompleteAccountingTransitionTaxForAccumulatedForeignEarningsProvisionalIncomeTaxExpense_E32EAD24457B8936461C35C11012B974" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_TaxCutsAndJobsActOf2017TransitionTaxForAccumulatedForeignEarningsLiability" xlink:label="loc_cgnx_TaxCutsAndJobsActOf2017TransitionTaxForAccumulatedForeignEarningsLiability_129EEE4E7887DFDC52BE35C11012558B" xlink:type="locator" />
    <link:presentationArc order="10" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_TaxCreditCarryforwardLineItems_E178ED6906E3027DF4C335C11010EA3F" xlink:to="loc_cgnx_TaxCutsAndJobsActOf2017TransitionTaxForAccumulatedForeignEarningsLiability_129EEE4E7887DFDC52BE35C11012558B" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate" xlink:label="loc_us-gaap_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate_B4D312BBA830D52078DC35C11012A638" xlink:type="locator" />
    <link:presentationArc order="11" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_TaxCreditCarryforwardLineItems_E178ED6906E3027DF4C335C11010EA3F" xlink:to="loc_us-gaap_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate_B4D312BBA830D52078DC35C11012A638" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_Cash" xlink:label="loc_us-gaap_Cash_8EDB669CE324C3BBC4C635C11012100B" xlink:type="locator" />
    <link:presentationArc order="12" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_TaxCreditCarryforwardLineItems_E178ED6906E3027DF4C335C11010EA3F" xlink:to="loc_us-gaap_Cash_8EDB669CE324C3BBC4C635C11012100B" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_EffectiveIncomeTaxRateReconciliationForeignIncomeTaxRateDifferential" xlink:label="loc_us-gaap_EffectiveIncomeTaxRateReconciliationForeignIncomeTaxRateDifferential_A6FB1FD093CE79FBD67035C11013B8D2" xlink:type="locator" />
    <link:presentationArc order="13" preferredLabel="http://www.xbrl.org/2009/role/negatedTerseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_TaxCreditCarryforwardLineItems_E178ED6906E3027DF4C335C11010EA3F" xlink:to="loc_us-gaap_EffectiveIncomeTaxRateReconciliationForeignIncomeTaxRateDifferential_A6FB1FD093CE79FBD67035C11013B8D2" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitAmount" xlink:label="loc_us-gaap_EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitAmount_296CF8ED8433ED9549A335C110137DFA" xlink:type="locator" />
    <link:presentationArc order="14" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_TaxCreditCarryforwardLineItems_E178ED6906E3027DF4C335C11010EA3F" xlink:to="loc_us-gaap_EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitAmount_296CF8ED8433ED9549A335C110137DFA" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitPercent" xlink:label="loc_us-gaap_EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitPercent_F04F5925C615FCC21BB435C1101395E9" xlink:type="locator" />
    <link:presentationArc order="15" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_TaxCreditCarryforwardLineItems_E178ED6906E3027DF4C335C11010EA3F" xlink:to="loc_us-gaap_EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitPercent_F04F5925C615FCC21BB435C1101395E9" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_NetCashProvidedByUsedInOperatingActivities" xlink:label="loc_us-gaap_NetCashProvidedByUsedInOperatingActivities_91B0E09DC5FA4C34507C35C1101378D5" xlink:type="locator" />
    <link:presentationArc order="16" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_TaxCreditCarryforwardLineItems_E178ED6906E3027DF4C335C11010EA3F" xlink:to="loc_us-gaap_NetCashProvidedByUsedInOperatingActivities_91B0E09DC5FA4C34507C35C1101378D5" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_NetCashProvidedByUsedInFinancingActivities" xlink:label="loc_us-gaap_NetCashProvidedByUsedInFinancingActivities_123DCD613AF8FF5E966B35C11013855C" xlink:type="locator" />
    <link:presentationArc order="17" preferredLabel="http://www.xbrl.org/2009/role/negatedTerseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_TaxCreditCarryforwardLineItems_E178ED6906E3027DF4C335C11010EA3F" xlink:to="loc_us-gaap_NetCashProvidedByUsedInFinancingActivities_123DCD613AF8FF5E966B35C11013855C" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestExpense" xlink:label="loc_us-gaap_UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestExpense_9E0E61E019F5448EC4FA35C11013D579" xlink:type="locator" />
    <link:presentationArc order="18" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_TaxCreditCarryforwardLineItems_E178ED6906E3027DF4C335C11010EA3F" xlink:to="loc_us-gaap_UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestExpense_9E0E61E019F5448EC4FA35C11013D579" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_DeferredTaxLiabilitiesGrossNoncurrent" xlink:label="loc_us-gaap_DeferredTaxLiabilitiesGrossNoncurrent_F716B81D0002A900829E35C110149C25" xlink:type="locator" />
    <link:presentationArc order="19" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_TaxCreditCarryforwardLineItems_E178ED6906E3027DF4C335C11010EA3F" xlink:to="loc_us-gaap_DeferredTaxLiabilitiesGrossNoncurrent_F716B81D0002A900829E35C110149C25" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_LiabilityForUncertainTaxPositionsNoncurrent" xlink:label="loc_us-gaap_LiabilityForUncertainTaxPositionsNoncurrent_657D924CAE7140DC801135C11014AC13" xlink:type="locator" />
    <link:presentationArc order="20" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_TaxCreditCarryforwardLineItems_E178ED6906E3027DF4C335C11010EA3F" xlink:to="loc_us-gaap_LiabilityForUncertainTaxPositionsNoncurrent_657D924CAE7140DC801135C11014AC13" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_Unrecognizedtaxbenefitshownasareductiontononcurrentdeferredtaxassets" xlink:label="loc_cgnx_Unrecognizedtaxbenefitshownasareductiontononcurrentdeferredtaxassets_98191BDF1C36DFB4BC3335C11014CE82" xlink:type="locator" />
    <link:presentationArc order="21" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_TaxCreditCarryforwardLineItems_E178ED6906E3027DF4C335C11010EA3F" xlink:to="loc_cgnx_Unrecognizedtaxbenefitshownasareductiontononcurrentdeferredtaxassets_98191BDF1C36DFB4BC3335C11014CE82" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestAccrued" xlink:label="loc_us-gaap_UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestAccrued_5D0D4292BA79CD1786C835C11014F740" xlink:type="locator" />
    <link:presentationArc order="22" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_TaxCreditCarryforwardLineItems_E178ED6906E3027DF4C335C11010EA3F" xlink:to="loc_us-gaap_UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestAccrued_5D0D4292BA79CD1786C835C11014F740" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_MinimumDecreaseInIncomeTaxExpenseDueToReleaseInReserves" xlink:label="loc_cgnx_MinimumDecreaseInIncomeTaxExpenseDueToReleaseInReserves_7727CEE7064BE4FF154035C11014A7DB" xlink:type="locator" />
    <link:presentationArc order="23" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_TaxCreditCarryforwardLineItems_E178ED6906E3027DF4C335C11010EA3F" xlink:to="loc_cgnx_MinimumDecreaseInIncomeTaxExpenseDueToReleaseInReserves_7727CEE7064BE4FF154035C11014A7DB" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_MaximumDecreaseInIncomeTaxExpenseDueToReleaseInReserves" xlink:label="loc_cgnx_MaximumDecreaseInIncomeTaxExpenseDueToReleaseInReserves_8B7F4EEB6C979194329C35C11014C96C" xlink:type="locator" />
    <link:presentationArc order="24" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_TaxCreditCarryforwardLineItems_E178ED6906E3027DF4C335C11010EA3F" xlink:to="loc_cgnx_MaximumDecreaseInIncomeTaxExpenseDueToReleaseInReserves_8B7F4EEB6C979194329C35C11014C96C" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_DeferredTaxLiabilitiesGrossCurrent" xlink:label="loc_us-gaap_DeferredTaxLiabilitiesGrossCurrent_ACDCB55140F945D72B5B35C1101401CB" xlink:type="locator" />
    <link:presentationArc order="25" preferredLabel="http://www.xbrl.org/2009/role/negatedTerseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_TaxCreditCarryforwardLineItems_E178ED6906E3027DF4C335C11010EA3F" xlink:to="loc_us-gaap_DeferredTaxLiabilitiesGrossCurrent_ACDCB55140F945D72B5B35C1101401CB" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_DeferredTaxLiabilitiesGoodwillAndIntangibleAssetsIntangibleAssets" xlink:label="loc_us-gaap_DeferredTaxLiabilitiesGoodwillAndIntangibleAssetsIntangibleAssets_0BB05DB38241ECA75F5D35C11015A19D" xlink:type="locator" />
    <link:presentationArc order="26" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_TaxCreditCarryforwardLineItems_E178ED6906E3027DF4C335C11010EA3F" xlink:to="loc_us-gaap_DeferredTaxLiabilitiesGoodwillAndIntangibleAssetsIntangibleAssets_0BB05DB38241ECA75F5D35C11015A19D" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_DeferredTaxAssetsValuationAllowance" xlink:label="loc_us-gaap_DeferredTaxAssetsValuationAllowance_DBF97E6CCEECC8EAF6A635C11015F6A9" xlink:type="locator" />
    <link:presentationArc order="27" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_TaxCreditCarryforwardLineItems_E178ED6906E3027DF4C335C11010EA3F" xlink:to="loc_us-gaap_DeferredTaxAssetsValuationAllowance_DBF97E6CCEECC8EAF6A635C11015F6A9" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_DeferredTaxAssetsTaxCreditCarryforwardsResearch" xlink:label="loc_us-gaap_DeferredTaxAssetsTaxCreditCarryforwardsResearch_E96AEA5CF4D3DA900E1835C110154B09" xlink:type="locator" />
    <link:presentationArc order="28" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_TaxCreditCarryforwardLineItems_E178ED6906E3027DF4C335C11010EA3F" xlink:to="loc_us-gaap_DeferredTaxAssetsTaxCreditCarryforwardsResearch_E96AEA5CF4D3DA900E1835C110154B09" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_IncomeTaxesPaidNet" xlink:label="loc_us-gaap_IncomeTaxesPaidNet_2BB9A7196119FF120D9A35C110150B00" xlink:type="locator" />
    <link:presentationArc order="29" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_TaxCreditCarryforwardLineItems_E178ED6906E3027DF4C335C11010EA3F" xlink:to="loc_us-gaap_IncomeTaxesPaidNet_2BB9A7196119FF120D9A35C110150B00" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_OpenTaxYearStateAuthorities" xlink:label="loc_cgnx_OpenTaxYearStateAuthorities_EEBC39D6F20E62DE056335C11015ECA1" xlink:type="locator" />
    <link:presentationArc order="30" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_TaxCreditCarryforwardLineItems_E178ED6906E3027DF4C335C11010EA3F" xlink:to="loc_cgnx_OpenTaxYearStateAuthorities_EEBC39D6F20E62DE056335C11015ECA1" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_OpentaxyearUnitedStatesInternalRevenueService" xlink:label="loc_cgnx_OpentaxyearUnitedStatesInternalRevenueService_3A2589C9EFBC8D9533B835C1101541F4" xlink:type="locator" />
    <link:presentationArc order="31" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_TaxCreditCarryforwardLineItems_E178ED6906E3027DF4C335C11010EA3F" xlink:to="loc_cgnx_OpentaxyearUnitedStatesInternalRevenueService_3A2589C9EFBC8D9533B835C1101541F4" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_Opentaxyearvarioustaxingauthorities" xlink:label="loc_cgnx_Opentaxyearvarioustaxingauthorities_6143A3AA12438369C2AF35C110168CCF" xlink:type="locator" />
    <link:presentationArc order="32" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_TaxCreditCarryforwardLineItems_E178ED6906E3027DF4C335C11010EA3F" xlink:to="loc_cgnx_Opentaxyearvarioustaxingauthorities_6143A3AA12438369C2AF35C110168CCF" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_TaxYearsCoveredThroughAdvancedPricingAgreement" xlink:label="loc_cgnx_TaxYearsCoveredThroughAdvancedPricingAgreement_E417A7B2F88FC9C091CE35C11016026D" xlink:type="locator" />
    <link:presentationArc order="33" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_TaxCreditCarryforwardLineItems_E178ED6906E3027DF4C335C11010EA3F" xlink:to="loc_cgnx_TaxYearsCoveredThroughAdvancedPricingAgreement_E417A7B2F88FC9C091CE35C11016026D" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_TaxyearsforAPAagreement" xlink:label="loc_cgnx_TaxyearsforAPAagreement_A139F53BD3FB3962235B35C11016E3BB" xlink:type="locator" />
    <link:presentationArc order="34" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_TaxCreditCarryforwardLineItems_E178ED6906E3027DF4C335C11010EA3F" xlink:to="loc_cgnx_TaxyearsforAPAagreement_A139F53BD3FB3962235B35C11016E3BB" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_Stateresearchandexperimentationtaxcarryforwards" xlink:label="loc_cgnx_Stateresearchandexperimentationtaxcarryforwards_23E6846FFB5B75B992EB35C11016618E" xlink:type="locator" />
    <link:presentationArc order="35" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_TaxCreditCarryforwardLineItems_E178ED6906E3027DF4C335C11010EA3F" xlink:to="loc_cgnx_Stateresearchandexperimentationtaxcarryforwards_23E6846FFB5B75B992EB35C11016618E" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_CumulativeEffectOnRetainedEarningsNetOfTax1" xlink:label="loc_us-gaap_CumulativeEffectOnRetainedEarningsNetOfTax1_AE4A057507F7FCCC7A2235C1101657E1" xlink:type="locator" />
    <link:presentationArc order="36" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_TaxCreditCarryforwardLineItems_E178ED6906E3027DF4C335C11010EA3F" xlink:to="loc_us-gaap_CumulativeEffectOnRetainedEarningsNetOfTax1_AE4A057507F7FCCC7A2235C1101657E1" xlink:type="arc" />
  </link:presentationLink>
  <link:presentationLink xlink:role="http://cognex.com/role/TaxesChangesInReserveForIncomeTaxesExcludingInterestAndPenaltiesDetails" xlink:type="extended">
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_IncomeTaxDisclosureAbstract" xlink:label="loc_us-gaap_IncomeTaxDisclosureAbstract_F11BE0A033582ADF263530F2E70C2D17" xlink:type="locator" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ReconciliationOfUnrecognizedTaxBenefitsExcludingAmountsPertainingToExaminedTaxReturnsRollForward" xlink:label="loc_us-gaap_ReconciliationOfUnrecognizedTaxBenefitsExcludingAmountsPertainingToExaminedTaxReturnsRollForward_037B2F766620F48A05DD30F2E70D6761" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeTaxDisclosureAbstract_F11BE0A033582ADF263530F2E70C2D17" xlink:to="loc_us-gaap_ReconciliationOfUnrecognizedTaxBenefitsExcludingAmountsPertainingToExaminedTaxReturnsRollForward_037B2F766620F48A05DD30F2E70D6761" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_UnrecognizedTaxBenefits" xlink:label="loc_us-gaap_UnrecognizedTaxBenefits_B39DA9B1FF35A1A1BB6C30F2E70DBCB6" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/periodStartLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ReconciliationOfUnrecognizedTaxBenefitsExcludingAmountsPertainingToExaminedTaxReturnsRollForward_037B2F766620F48A05DD30F2E70D6761" xlink:to="loc_us-gaap_UnrecognizedTaxBenefits_B39DA9B1FF35A1A1BB6C30F2E70DBCB6" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_UnrecognizedTaxBenefitsIncreasesResultingFromPriorPeriodTaxPositions" xlink:label="loc_us-gaap_UnrecognizedTaxBenefitsIncreasesResultingFromPriorPeriodTaxPositions_96195C6D36794E221B1D30F2E70DDE34" xlink:type="locator" />
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ReconciliationOfUnrecognizedTaxBenefitsExcludingAmountsPertainingToExaminedTaxReturnsRollForward_037B2F766620F48A05DD30F2E70D6761" xlink:to="loc_us-gaap_UnrecognizedTaxBenefitsIncreasesResultingFromPriorPeriodTaxPositions_96195C6D36794E221B1D30F2E70DDE34" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_UnrecognizedTaxBenefitsPeriodIncreaseDecrease" xlink:label="loc_us-gaap_UnrecognizedTaxBenefitsPeriodIncreaseDecrease_35FEB8F6F66AD75E27FC30F2E70DDDD2" xlink:type="locator" />
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ReconciliationOfUnrecognizedTaxBenefitsExcludingAmountsPertainingToExaminedTaxReturnsRollForward_037B2F766620F48A05DD30F2E70D6761" xlink:to="loc_us-gaap_UnrecognizedTaxBenefitsPeriodIncreaseDecrease_35FEB8F6F66AD75E27FC30F2E70DDDD2" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_UnrecognizedTaxBenefitsIncreasesResultingFromCurrentPeriodTaxPositions" xlink:label="loc_us-gaap_UnrecognizedTaxBenefitsIncreasesResultingFromCurrentPeriodTaxPositions_B574CD54689548CCD1C330F2E70E56A3" xlink:type="locator" />
    <link:presentationArc order="4" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ReconciliationOfUnrecognizedTaxBenefitsExcludingAmountsPertainingToExaminedTaxReturnsRollForward_037B2F766620F48A05DD30F2E70D6761" xlink:to="loc_us-gaap_UnrecognizedTaxBenefitsIncreasesResultingFromCurrentPeriodTaxPositions_B574CD54689548CCD1C330F2E70E56A3" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_UnrecognizedTaxBenefitsReductionsResultingFromLapseOfApplicableStatuteOfLimitations" xlink:label="loc_us-gaap_UnrecognizedTaxBenefitsReductionsResultingFromLapseOfApplicableStatuteOfLimitations_1264C37386F07E9BD2B230F2E70ED2EA" xlink:type="locator" />
    <link:presentationArc order="5" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ReconciliationOfUnrecognizedTaxBenefitsExcludingAmountsPertainingToExaminedTaxReturnsRollForward_037B2F766620F48A05DD30F2E70D6761" xlink:to="loc_us-gaap_UnrecognizedTaxBenefitsReductionsResultingFromLapseOfApplicableStatuteOfLimitations_1264C37386F07E9BD2B230F2E70ED2EA" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_UnrecognizedTaxBenefits" xlink:label="loc_us-gaap_UnrecognizedTaxBenefits_444A008F0F53604537DD30F2E70E0564" xlink:type="locator" />
    <link:presentationArc order="6" preferredLabel="http://www.xbrl.org/2003/role/periodEndLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ReconciliationOfUnrecognizedTaxBenefitsExcludingAmountsPertainingToExaminedTaxReturnsRollForward_037B2F766620F48A05DD30F2E70D6761" xlink:to="loc_us-gaap_UnrecognizedTaxBenefits_444A008F0F53604537DD30F2E70E0564" xlink:type="arc" />
  </link:presentationLink>
  <link:presentationLink xlink:role="http://cognex.com/role/TaxesConstituentsOfDeferredTaxAssetsDetails" xlink:type="extended">
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_IncomeTaxDisclosureAbstract" xlink:label="loc_us-gaap_IncomeTaxDisclosureAbstract_7B4E9FE5679C0F512AD137125B9D5D1A" xlink:type="locator" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_DeferredTaxAssetsNetNoncurrentClassificationAbstract" xlink:label="loc_us-gaap_DeferredTaxAssetsNetNoncurrentClassificationAbstract_418C54413F1094BA87A737125B9D00A9" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeTaxDisclosureAbstract_7B4E9FE5679C0F512AD137125B9D5D1A" xlink:to="loc_us-gaap_DeferredTaxAssetsNetNoncurrentClassificationAbstract_418C54413F1094BA87A737125B9D00A9" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_DeferredTaxAssetsIntangibleAssetChangeinTaxStructure" xlink:label="loc_cgnx_DeferredTaxAssetsIntangibleAssetChangeinTaxStructure_728CE9E391D69BAEFDA737125B9EB812" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DeferredTaxAssetsNetNoncurrentClassificationAbstract_418C54413F1094BA87A737125B9D00A9" xlink:to="loc_cgnx_DeferredTaxAssetsIntangibleAssetChangeinTaxStructure_728CE9E391D69BAEFDA737125B9EB812" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost" xlink:label="loc_us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost_E4D1BB8AE2919FC06F3137125B9E20BB" xlink:type="locator" />
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DeferredTaxAssetsNetNoncurrentClassificationAbstract_418C54413F1094BA87A737125B9D00A9" xlink:to="loc_us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost_E4D1BB8AE2919FC06F3137125B9E20BB" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_DeferredTaxAssetsOperatingLossCarryforwardsDomestic" xlink:label="loc_us-gaap_DeferredTaxAssetsOperatingLossCarryforwardsDomestic_9F9B2B9E1E1B45A9165D37125B9E4F04" xlink:type="locator" />
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DeferredTaxAssetsNetNoncurrentClassificationAbstract_418C54413F1094BA87A737125B9D00A9" xlink:to="loc_us-gaap_DeferredTaxAssetsOperatingLossCarryforwardsDomestic_9F9B2B9E1E1B45A9165D37125B9E4F04" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_DeferredTaxAssetsOperatingLossCarryforwardsForeign" xlink:label="loc_us-gaap_DeferredTaxAssetsOperatingLossCarryforwardsForeign_C10F0FD0C179105FFA9837125B9EB9F4" xlink:type="locator" />
    <link:presentationArc order="4" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DeferredTaxAssetsNetNoncurrentClassificationAbstract_418C54413F1094BA87A737125B9D00A9" xlink:to="loc_us-gaap_DeferredTaxAssetsOperatingLossCarryforwardsForeign_C10F0FD0C179105FFA9837125B9EB9F4" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_NoncurrentDeferredTaxAssetsDeprecation" xlink:label="loc_cgnx_NoncurrentDeferredTaxAssetsDeprecation_14A72C509ABBDDBD3E5C37125B9EEEF1" xlink:type="locator" />
    <link:presentationArc order="5" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DeferredTaxAssetsNetNoncurrentClassificationAbstract_418C54413F1094BA87A737125B9D00A9" xlink:to="loc_cgnx_NoncurrentDeferredTaxAssetsDeprecation_14A72C509ABBDDBD3E5C37125B9EEEF1" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_DeferredTaxAssetsInventory" xlink:label="loc_us-gaap_DeferredTaxAssetsInventory_929925BDB75D52F8183337125B9FB9BF" xlink:type="locator" />
    <link:presentationArc order="6" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DeferredTaxAssetsNetNoncurrentClassificationAbstract_418C54413F1094BA87A737125B9D00A9" xlink:to="loc_us-gaap_DeferredTaxAssetsInventory_929925BDB75D52F8183337125B9FB9BF" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsOther" xlink:label="loc_us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsOther_EE2827F73C46CAFC4E3337125B9FCBB9" xlink:type="locator" />
    <link:presentationArc order="7" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DeferredTaxAssetsNetNoncurrentClassificationAbstract_418C54413F1094BA87A737125B9D00A9" xlink:to="loc_us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsOther_EE2827F73C46CAFC4E3337125B9FCBB9" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_DeferredTaxAssetsOtherNoncurrent" xlink:label="loc_cgnx_DeferredTaxAssetsOtherNoncurrent_19C12405E2DD6F65CAB937125B9FD591" xlink:type="locator" />
    <link:presentationArc order="8" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DeferredTaxAssetsNetNoncurrentClassificationAbstract_418C54413F1094BA87A737125B9D00A9" xlink:to="loc_cgnx_DeferredTaxAssetsOtherNoncurrent_19C12405E2DD6F65CAB937125B9FD591" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_DeferredTaxAssetsGrossNoncurrent" xlink:label="loc_us-gaap_DeferredTaxAssetsGrossNoncurrent_A59FFFBF7FAAE17C71BB37125B9F249B" xlink:type="locator" />
    <link:presentationArc order="9" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DeferredTaxAssetsNetNoncurrentClassificationAbstract_418C54413F1094BA87A737125B9D00A9" xlink:to="loc_us-gaap_DeferredTaxAssetsGrossNoncurrent_A59FFFBF7FAAE17C71BB37125B9F249B" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_DeferredTaxAssetsValuationAllowanceNoncurrent" xlink:label="loc_us-gaap_DeferredTaxAssetsValuationAllowanceNoncurrent_C36202508D9ECE56DE7137125B9F4559" xlink:type="locator" />
    <link:presentationArc order="10" preferredLabel="http://www.xbrl.org/2009/role/negatedTerseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DeferredTaxAssetsNetNoncurrentClassificationAbstract_418C54413F1094BA87A737125B9D00A9" xlink:to="loc_us-gaap_DeferredTaxAssetsValuationAllowanceNoncurrent_C36202508D9ECE56DE7137125B9F4559" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_DeferredTaxAssetsLiabilitiesNetNoncurrent" xlink:label="loc_us-gaap_DeferredTaxAssetsLiabilitiesNetNoncurrent_A42E268933F7EFC4196A37125B9F174B" xlink:type="locator" />
    <link:presentationArc order="11" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DeferredTaxAssetsNetNoncurrentClassificationAbstract_418C54413F1094BA87A737125B9D00A9" xlink:to="loc_us-gaap_DeferredTaxAssetsLiabilitiesNetNoncurrent_A42E268933F7EFC4196A37125B9F174B" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_DeferredTaxLiabilitiesAbstract" xlink:label="loc_us-gaap_DeferredTaxLiabilitiesAbstract_CEEC62EAFAC83AA6ECCB37125BA017D5" xlink:type="locator" />
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeTaxDisclosureAbstract_7B4E9FE5679C0F512AD137125B9D5D1A" xlink:to="loc_us-gaap_DeferredTaxLiabilitiesAbstract_CEEC62EAFAC83AA6ECCB37125BA017D5" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_DeferredTaxLiabilitiesTaxCutsAndJobsActGlobalIntangibleLowTaxIncome" xlink:label="loc_cgnx_DeferredTaxLiabilitiesTaxCutsAndJobsActGlobalIntangibleLowTaxIncome_45CAE073D5A547BA514837125BA0A204" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2009/role/negatedTerseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DeferredTaxLiabilitiesAbstract_CEEC62EAFAC83AA6ECCB37125BA017D5" xlink:to="loc_cgnx_DeferredTaxLiabilitiesTaxCutsAndJobsActGlobalIntangibleLowTaxIncome_45CAE073D5A547BA514837125BA0A204" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_DeferredTaxLiabilitiesTaxCutsAndJobsActOtherGlobalIntangibleLowTaxIncome" xlink:label="loc_cgnx_DeferredTaxLiabilitiesTaxCutsAndJobsActOtherGlobalIntangibleLowTaxIncome_7BA7864AF7B603A9B1E737125BA0FFA6" xlink:type="locator" />
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DeferredTaxLiabilitiesAbstract_CEEC62EAFAC83AA6ECCB37125BA017D5" xlink:to="loc_cgnx_DeferredTaxLiabilitiesTaxCutsAndJobsActOtherGlobalIntangibleLowTaxIncome_7BA7864AF7B603A9B1E737125BA0FFA6" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_DeferredTaxLiabilitiesGoodwillAndIntangibleAssetsIntangibleAssets" xlink:label="loc_us-gaap_DeferredTaxLiabilitiesGoodwillAndIntangibleAssetsIntangibleAssets_2489AF220C91AB85E83F37125BA07C06" xlink:type="locator" />
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2009/role/negatedTerseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DeferredTaxLiabilitiesAbstract_CEEC62EAFAC83AA6ECCB37125BA017D5" xlink:to="loc_us-gaap_DeferredTaxLiabilitiesGoodwillAndIntangibleAssetsIntangibleAssets_2489AF220C91AB85E83F37125BA07C06" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_DeferredTaxLiabilitiesOther" xlink:label="loc_us-gaap_DeferredTaxLiabilitiesOther_1BBD7DD838BE0E90234D37125BA08E33" xlink:type="locator" />
    <link:presentationArc order="4" preferredLabel="http://www.xbrl.org/2009/role/negatedTerseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DeferredTaxLiabilitiesAbstract_CEEC62EAFAC83AA6ECCB37125BA017D5" xlink:to="loc_us-gaap_DeferredTaxLiabilitiesOther_1BBD7DD838BE0E90234D37125BA08E33" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_DeferredTaxLiabilitiesGrossCurrent" xlink:label="loc_us-gaap_DeferredTaxLiabilitiesGrossCurrent_915031CF4BC2DDBED76E37125BA1F1FE" xlink:type="locator" />
    <link:presentationArc order="5" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DeferredTaxLiabilitiesAbstract_CEEC62EAFAC83AA6ECCB37125BA017D5" xlink:to="loc_us-gaap_DeferredTaxLiabilitiesGrossCurrent_915031CF4BC2DDBED76E37125BA1F1FE" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_TaxCreditCarryforwardTable" xlink:label="loc_us-gaap_TaxCreditCarryforwardTable_CE763EBFA2898DA09F2C37125BA1CDBB" xlink:type="locator" />
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeTaxDisclosureAbstract_7B4E9FE5679C0F512AD137125B9D5D1A" xlink:to="loc_us-gaap_TaxCreditCarryforwardTable_CE763EBFA2898DA09F2C37125BA1CDBB" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ValuationAllowanceByDeferredTaxAssetAxis" xlink:label="loc_us-gaap_ValuationAllowanceByDeferredTaxAssetAxis_D733B65C57B80119811537125BA1C624" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_TaxCreditCarryforwardTable_CE763EBFA2898DA09F2C37125BA1CDBB" xlink:to="loc_us-gaap_ValuationAllowanceByDeferredTaxAssetAxis_D733B65C57B80119811537125BA1C624" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_DeferredTaxAssetDomain" xlink:label="loc_us-gaap_DeferredTaxAssetDomain_052F6BEA565D27E9AC4F37125BA16FCA" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ValuationAllowanceByDeferredTaxAssetAxis_D733B65C57B80119811537125BA1C624" xlink:to="loc_us-gaap_DeferredTaxAssetDomain_052F6BEA565D27E9AC4F37125BA16FCA" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ValuationAllowanceOfDeferredTaxAssetsMember" xlink:label="loc_us-gaap_ValuationAllowanceOfDeferredTaxAssetsMember_051DA0C0D1E21F9AA59137125BA12276" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DeferredTaxAssetDomain_052F6BEA565D27E9AC4F37125BA16FCA" xlink:to="loc_us-gaap_ValuationAllowanceOfDeferredTaxAssetsMember_051DA0C0D1E21F9AA59137125BA12276" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_TaxCreditCarryforwardLineItems" xlink:label="loc_us-gaap_TaxCreditCarryforwardLineItems_A9CF265E8F565BFAE12237125BA2283E" xlink:type="locator" />
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_TaxCreditCarryforwardTable_CE763EBFA2898DA09F2C37125BA1CDBB" xlink:to="loc_us-gaap_TaxCreditCarryforwardLineItems_A9CF265E8F565BFAE12237125BA2283E" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_DeferredTaxAssetsValuationAllowance" xlink:label="loc_us-gaap_DeferredTaxAssetsValuationAllowance_BE9BA1DEC683CCF3B02537125BA29807" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_TaxCreditCarryforwardLineItems_A9CF265E8F565BFAE12237125BA2283E" xlink:to="loc_us-gaap_DeferredTaxAssetsValuationAllowance_BE9BA1DEC683CCF3B02537125BA29807" xlink:type="arc" />
  </link:presentationLink>
  <link:presentationLink xlink:role="http://cognex.com/role/TaxesConstituentsOfProvisionForIncomeTaxesDetails" xlink:type="extended">
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_IncomeTaxDisclosureAbstract" xlink:label="loc_us-gaap_IncomeTaxDisclosureAbstract_9E800167208DF9BFEEBF8095E8D67607" xlink:type="locator" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_CurrentIncomeTaxExpenseBenefitContinuingOperationsAbstract" xlink:label="loc_us-gaap_CurrentIncomeTaxExpenseBenefitContinuingOperationsAbstract_22CE62DD30B268E0F3428095E8D68D6B" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeTaxDisclosureAbstract_9E800167208DF9BFEEBF8095E8D67607" xlink:to="loc_us-gaap_CurrentIncomeTaxExpenseBenefitContinuingOperationsAbstract_22CE62DD30B268E0F3428095E8D68D6B" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_CurrentFederalTaxExpenseBenefit" xlink:label="loc_us-gaap_CurrentFederalTaxExpenseBenefit_8ECF5A1642B1495422638095E8D64CA7" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_CurrentIncomeTaxExpenseBenefitContinuingOperationsAbstract_22CE62DD30B268E0F3428095E8D68D6B" xlink:to="loc_us-gaap_CurrentFederalTaxExpenseBenefit_8ECF5A1642B1495422638095E8D64CA7" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_CurrentStateAndLocalTaxExpenseBenefit" xlink:label="loc_us-gaap_CurrentStateAndLocalTaxExpenseBenefit_923CB10240E872207E768095E8D66A26" xlink:type="locator" />
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_CurrentIncomeTaxExpenseBenefitContinuingOperationsAbstract_22CE62DD30B268E0F3428095E8D68D6B" xlink:to="loc_us-gaap_CurrentStateAndLocalTaxExpenseBenefit_923CB10240E872207E768095E8D66A26" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_CurrentForeignTaxExpenseBenefit" xlink:label="loc_us-gaap_CurrentForeignTaxExpenseBenefit_0E02DE2AB2E55534A3BF8095E8D6B67C" xlink:type="locator" />
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_CurrentIncomeTaxExpenseBenefitContinuingOperationsAbstract_22CE62DD30B268E0F3428095E8D68D6B" xlink:to="loc_us-gaap_CurrentForeignTaxExpenseBenefit_0E02DE2AB2E55534A3BF8095E8D6B67C" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_CurrentIncomeTaxExpenseBenefit" xlink:label="loc_us-gaap_CurrentIncomeTaxExpenseBenefit_0485FB2DBDAEC6F18FD08095E8D65F66" xlink:type="locator" />
    <link:presentationArc order="4" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_CurrentIncomeTaxExpenseBenefitContinuingOperationsAbstract_22CE62DD30B268E0F3428095E8D68D6B" xlink:to="loc_us-gaap_CurrentIncomeTaxExpenseBenefit_0485FB2DBDAEC6F18FD08095E8D65F66" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_DeferredIncomeTaxExpenseBenefitContinuingOperationsAbstract" xlink:label="loc_us-gaap_DeferredIncomeTaxExpenseBenefitContinuingOperationsAbstract_3264B725093B252BBD868095E8D73DFF" xlink:type="locator" />
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeTaxDisclosureAbstract_9E800167208DF9BFEEBF8095E8D67607" xlink:to="loc_us-gaap_DeferredIncomeTaxExpenseBenefitContinuingOperationsAbstract_3264B725093B252BBD868095E8D73DFF" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_DeferredFederalIncomeTaxExpenseBenefit" xlink:label="loc_us-gaap_DeferredFederalIncomeTaxExpenseBenefit_9ACC637517CDBD07D05E8095E8D71A70" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DeferredIncomeTaxExpenseBenefitContinuingOperationsAbstract_3264B725093B252BBD868095E8D73DFF" xlink:to="loc_us-gaap_DeferredFederalIncomeTaxExpenseBenefit_9ACC637517CDBD07D05E8095E8D71A70" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_DeferredStateAndLocalIncomeTaxExpenseBenefit" xlink:label="loc_us-gaap_DeferredStateAndLocalIncomeTaxExpenseBenefit_0D33517EEDA50F8E2A318095E8D76986" xlink:type="locator" />
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DeferredIncomeTaxExpenseBenefitContinuingOperationsAbstract_3264B725093B252BBD868095E8D73DFF" xlink:to="loc_us-gaap_DeferredStateAndLocalIncomeTaxExpenseBenefit_0D33517EEDA50F8E2A318095E8D76986" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_DeferredForeignIncomeTaxExpenseBenefit" xlink:label="loc_us-gaap_DeferredForeignIncomeTaxExpenseBenefit_98DB17CEEE53FBAD502D8095E8D7CD7F" xlink:type="locator" />
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DeferredIncomeTaxExpenseBenefitContinuingOperationsAbstract_3264B725093B252BBD868095E8D73DFF" xlink:to="loc_us-gaap_DeferredForeignIncomeTaxExpenseBenefit_98DB17CEEE53FBAD502D8095E8D7CD7F" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_DeferredIncomeTaxExpenseBenefit" xlink:label="loc_us-gaap_DeferredIncomeTaxExpenseBenefit_5503AA4FC1EB184F5EED8095E8D75FFC" xlink:type="locator" />
    <link:presentationArc order="4" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DeferredIncomeTaxExpenseBenefitContinuingOperationsAbstract_3264B725093B252BBD868095E8D73DFF" xlink:to="loc_us-gaap_DeferredIncomeTaxExpenseBenefit_5503AA4FC1EB184F5EED8095E8D75FFC" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_IncomeTaxExpenseBenefit" xlink:label="loc_us-gaap_IncomeTaxExpenseBenefit_B136A56C607EB16A437C8095E8D79F19" xlink:type="locator" />
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeTaxDisclosureAbstract_9E800167208DF9BFEEBF8095E8D67607" xlink:to="loc_us-gaap_IncomeTaxExpenseBenefit_B136A56C607EB16A437C8095E8D79F19" xlink:type="arc" />
  </link:presentationLink>
  <link:presentationLink xlink:role="http://cognex.com/role/TaxesReconciliationOfUnitedStatesFederalStatutoryCorporateTaxRateToCompanysEffectiveTaxRateOrIncomeTaxProvisionDetails" xlink:type="extended">
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_IncomeTaxDisclosureAbstract" xlink:label="loc_us-gaap_IncomeTaxDisclosureAbstract_C3BDF7AA660175B25FE137125BB78530" xlink:type="locator" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_OtherTaxExpenseBenefit" xlink:label="loc_us-gaap_OtherTaxExpenseBenefit_61F0B30022447B1E503F37125BB7BB11" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeTaxDisclosureAbstract_C3BDF7AA660175B25FE137125BB78530" xlink:to="loc_us-gaap_OtherTaxExpenseBenefit_61F0B30022447B1E503F37125BB7BB11" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate" xlink:label="loc_us-gaap_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate_9ED201DBEEB9B940D54137125BB8CC3C" xlink:type="locator" />
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeTaxDisclosureAbstract_C3BDF7AA660175B25FE137125BB78530" xlink:to="loc_us-gaap_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate_9ED201DBEEB9B940D54137125BB8CC3C" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_EffectiveIncomeTaxRateReconciliationStateAndLocalIncomeTaxes" xlink:label="loc_us-gaap_EffectiveIncomeTaxRateReconciliationStateAndLocalIncomeTaxes_65FD4F31C686E2BEAA4A37125BB85F8E" xlink:type="locator" />
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeTaxDisclosureAbstract_C3BDF7AA660175B25FE137125BB78530" xlink:to="loc_us-gaap_EffectiveIncomeTaxRateReconciliationStateAndLocalIncomeTaxes_65FD4F31C686E2BEAA4A37125BB85F8E" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_EffectiveIncomeTaxRateReconciliationForeignIncomeTaxRateDifferential" xlink:label="loc_us-gaap_EffectiveIncomeTaxRateReconciliationForeignIncomeTaxRateDifferential_7DD082614918A410D9C837125BB858A2" xlink:type="locator" />
    <link:presentationArc order="4" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeTaxDisclosureAbstract_C3BDF7AA660175B25FE137125BB78530" xlink:to="loc_us-gaap_EffectiveIncomeTaxRateReconciliationForeignIncomeTaxRateDifferential_7DD082614918A410D9C837125BB858A2" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_EffectiveIncomeTaxRateReconciliationTaxCredits" xlink:label="loc_us-gaap_EffectiveIncomeTaxRateReconciliationTaxCredits_980C9948BFA6B6C276A137125BB8B7F7" xlink:type="locator" />
    <link:presentationArc order="5" preferredLabel="http://www.xbrl.org/2009/role/negatedTerseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeTaxDisclosureAbstract_C3BDF7AA660175B25FE137125BB78530" xlink:to="loc_us-gaap_EffectiveIncomeTaxRateReconciliationTaxCredits_980C9948BFA6B6C276A137125BB8B7F7" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitPercent" xlink:label="loc_us-gaap_EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitPercent_7BF06C2D778F5B97941037125BB857FC" xlink:type="locator" />
    <link:presentationArc order="6" preferredLabel="http://www.xbrl.org/2009/role/negatedTerseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeTaxDisclosureAbstract_C3BDF7AA660175B25FE137125BB78530" xlink:to="loc_us-gaap_EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitPercent_7BF06C2D778F5B97941037125BB857FC" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_EffectiveIncomeTaxRateReconciliationDiscreteTaxExpenseTaxAndJobsActPercent" xlink:label="loc_cgnx_EffectiveIncomeTaxRateReconciliationDiscreteTaxExpenseTaxAndJobsActPercent_C5D1BE88F98C01618F1537125BB8478A" xlink:type="locator" />
    <link:presentationArc order="7" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeTaxDisclosureAbstract_C3BDF7AA660175B25FE137125BB78530" xlink:to="loc_cgnx_EffectiveIncomeTaxRateReconciliationDiscreteTaxExpenseTaxAndJobsActPercent_C5D1BE88F98C01618F1537125BB8478A" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_EffectiveIncomeTaxRateReconciliationChangeInDeferredTaxAssetsValuationAllowance" xlink:label="loc_us-gaap_EffectiveIncomeTaxRateReconciliationChangeInDeferredTaxAssetsValuationAllowance_3EF85D8B1CC54AB026C337125BB907E5" xlink:type="locator" />
    <link:presentationArc order="8" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeTaxDisclosureAbstract_C3BDF7AA660175B25FE137125BB78530" xlink:to="loc_us-gaap_EffectiveIncomeTaxRateReconciliationChangeInDeferredTaxAssetsValuationAllowance_3EF85D8B1CC54AB026C337125BB907E5" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_EffectiveIncomeTaxRateReconciliationMigrationofAcquiredIntellectualProperty" xlink:label="loc_cgnx_EffectiveIncomeTaxRateReconciliationMigrationofAcquiredIntellectualProperty_08351E2623D6FC996CC937125BB95A26" xlink:type="locator" />
    <link:presentationArc order="9" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeTaxDisclosureAbstract_C3BDF7AA660175B25FE137125BB78530" xlink:to="loc_cgnx_EffectiveIncomeTaxRateReconciliationMigrationofAcquiredIntellectualProperty_08351E2623D6FC996CC937125BB95A26" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_EffectiveIncomeTaxRateReconciliationChangeInEnactedTaxRate" xlink:label="loc_us-gaap_EffectiveIncomeTaxRateReconciliationChangeInEnactedTaxRate_0E4D6C0127DB98C84C3637125BB92EE3" xlink:type="locator" />
    <link:presentationArc order="10" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeTaxDisclosureAbstract_C3BDF7AA660175B25FE137125BB78530" xlink:to="loc_us-gaap_EffectiveIncomeTaxRateReconciliationChangeInEnactedTaxRate_0E4D6C0127DB98C84C3637125BB92EE3" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_EffectiveIncomeTaxRateReconciliationTaxCutsandJobsActGlobalIntangibleLowTaxIncomePercent" xlink:label="loc_cgnx_EffectiveIncomeTaxRateReconciliationTaxCutsandJobsActGlobalIntangibleLowTaxIncomePercent_96840AC80B9A052959E437125BB9C1F6" xlink:type="locator" />
    <link:presentationArc order="11" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeTaxDisclosureAbstract_C3BDF7AA660175B25FE137125BB78530" xlink:to="loc_cgnx_EffectiveIncomeTaxRateReconciliationTaxCutsandJobsActGlobalIntangibleLowTaxIncomePercent_96840AC80B9A052959E437125BB9C1F6" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_EffectiveIncomeTaxRateReconciliationOtherReconcilingItemsPercent" xlink:label="loc_us-gaap_EffectiveIncomeTaxRateReconciliationOtherReconcilingItemsPercent_1D2F38410A20B89B68BF37125BB92119" xlink:type="locator" />
    <link:presentationArc order="12" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeTaxDisclosureAbstract_C3BDF7AA660175B25FE137125BB78530" xlink:to="loc_us-gaap_EffectiveIncomeTaxRateReconciliationOtherReconcilingItemsPercent_1D2F38410A20B89B68BF37125BB92119" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_EffectiveIncomeTaxRateReconciliationOtherAdjustments" xlink:label="loc_us-gaap_EffectiveIncomeTaxRateReconciliationOtherAdjustments_3F3F3C60CB927AA0357937125BB9AE55" xlink:type="locator" />
    <link:presentationArc order="13" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeTaxDisclosureAbstract_C3BDF7AA660175B25FE137125BB78530" xlink:to="loc_us-gaap_EffectiveIncomeTaxRateReconciliationOtherAdjustments_3F3F3C60CB927AA0357937125BB9AE55" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_EffectiveIncomeTaxRateContinuingOperations" xlink:label="loc_us-gaap_EffectiveIncomeTaxRateContinuingOperations_B8151CB93A38B0090A5A37125BB937F5" xlink:type="locator" />
    <link:presentationArc order="14" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeTaxDisclosureAbstract_C3BDF7AA660175B25FE137125BB78530" xlink:to="loc_us-gaap_EffectiveIncomeTaxRateContinuingOperations_B8151CB93A38B0090A5A37125BB937F5" xlink:type="arc" />
  </link:presentationLink>
  <link:presentationLink xlink:role="http://cognex.com/role/TaxesScheduleOfChangeInAccountingPolicyDetails" xlink:type="extended">
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_IncomeTaxDisclosureAbstract" xlink:label="loc_us-gaap_IncomeTaxDisclosureAbstract_EA2A5A1CC4DC0AF7F52437125BAD1735" xlink:type="locator" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ScheduleOfChangeInAccountingEstimateTable" xlink:label="loc_us-gaap_ScheduleOfChangeInAccountingEstimateTable_90142EF4F76E606AFC8837125BADF98B" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeTaxDisclosureAbstract_EA2A5A1CC4DC0AF7F52437125BAD1735" xlink:to="loc_us-gaap_ScheduleOfChangeInAccountingEstimateTable_90142EF4F76E606AFC8837125BADF98B" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2018/elts/srt-2018-01-31.xsd#srt_RestatementAxis" xlink:label="loc_srt_RestatementAxis_98C681E8869A04D8C75B37125BAD110B" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfChangeInAccountingEstimateTable_90142EF4F76E606AFC8837125BADF98B" xlink:to="loc_srt_RestatementAxis_98C681E8869A04D8C75B37125BAD110B" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2018/elts/srt-2018-01-31.xsd#srt_RestatementDomain" xlink:label="loc_srt_RestatementDomain_63B10954B1D0204C383437125BAD7A88" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_RestatementAxis_98C681E8869A04D8C75B37125BAD110B" xlink:to="loc_srt_RestatementDomain_63B10954B1D0204C383437125BAD7A88" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2018/elts/srt-2018-01-31.xsd#srt_ScenarioPreviouslyReportedMember" xlink:label="loc_srt_ScenarioPreviouslyReportedMember_99A9C87B0979D112C37137125BAE0580" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_RestatementDomain_63B10954B1D0204C383437125BAD7A88" xlink:to="loc_srt_ScenarioPreviouslyReportedMember_99A9C87B0979D112C37137125BAE0580" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2018/elts/srt-2018-01-31.xsd#srt_RestatementAdjustmentMember" xlink:label="loc_srt_RestatementAdjustmentMember_7CCC65CA90D43277AD2B37125BAE66DD" xlink:type="locator" />
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_RestatementDomain_63B10954B1D0204C383437125BAD7A88" xlink:to="loc_srt_RestatementAdjustmentMember_7CCC65CA90D43277AD2B37125BAE66DD" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ChangeInAccountingEstimateByTypeAxis" xlink:label="loc_us-gaap_ChangeInAccountingEstimateByTypeAxis_26C10C107B5F853F907737125BAE7C72" xlink:type="locator" />
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfChangeInAccountingEstimateTable_90142EF4F76E606AFC8837125BADF98B" xlink:to="loc_us-gaap_ChangeInAccountingEstimateByTypeAxis_26C10C107B5F853F907737125BAE7C72" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ChangeInAccountingEstimateTypeDomain" xlink:label="loc_us-gaap_ChangeInAccountingEstimateTypeDomain_75376F69C6CA423EA0B137125BAE1ADA" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ChangeInAccountingEstimateByTypeAxis_26C10C107B5F853F907737125BAE7C72" xlink:to="loc_us-gaap_ChangeInAccountingEstimateTypeDomain_75376F69C6CA423EA0B137125BAE1ADA" xlink:type="arc" />
    <link:loc xlink:href="cgnx-20191231.xsd#cgnx_ChangeinGlobalIntangibleLowTaxedIncomeMember" xlink:label="loc_cgnx_ChangeinGlobalIntangibleLowTaxedIncomeMember_ECFECF05DC04B2758F7937125BAF09C8" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ChangeInAccountingEstimateTypeDomain_75376F69C6CA423EA0B137125BAE1ADA" xlink:to="loc_cgnx_ChangeinGlobalIntangibleLowTaxedIncomeMember_ECFECF05DC04B2758F7937125BAF09C8" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ChangeInAccountingEstimateLineItems" xlink:label="loc_us-gaap_ChangeInAccountingEstimateLineItems_E456BD4EF24472DA9ADC37125BAFAF41" xlink:type="locator" />
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfChangeInAccountingEstimateTable_90142EF4F76E606AFC8837125BADF98B" xlink:to="loc_us-gaap_ChangeInAccountingEstimateLineItems_E456BD4EF24472DA9ADC37125BAFAF41" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments" xlink:label="loc_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments_34B2BFAF19A195C5EB0237125BAF8C1C" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ChangeInAccountingEstimateLineItems_E456BD4EF24472DA9ADC37125BAFAF41" xlink:to="loc_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments_34B2BFAF19A195C5EB0237125BAF8C1C" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_IncomeTaxExpenseBenefit" xlink:label="loc_us-gaap_IncomeTaxExpenseBenefit_EFF49BFF676ADBCAA87037125BB0BAE9" xlink:type="locator" />
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ChangeInAccountingEstimateLineItems_E456BD4EF24472DA9ADC37125BAFAF41" xlink:to="loc_us-gaap_IncomeTaxExpenseBenefit_EFF49BFF676ADBCAA87037125BB0BAE9" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_NetIncomeLoss" xlink:label="loc_us-gaap_NetIncomeLoss_17ED044DBEB4A7DCFBEA37125BB02D38" xlink:type="locator" />
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ChangeInAccountingEstimateLineItems_E456BD4EF24472DA9ADC37125BAFAF41" xlink:to="loc_us-gaap_NetIncomeLoss_17ED044DBEB4A7DCFBEA37125BB02D38" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_EarningsPerShareBasic" xlink:label="loc_us-gaap_EarningsPerShareBasic_F2118810101F5F7B4E4537125BB073F2" xlink:type="locator" />
    <link:presentationArc order="4" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ChangeInAccountingEstimateLineItems_E456BD4EF24472DA9ADC37125BAFAF41" xlink:to="loc_us-gaap_EarningsPerShareBasic_F2118810101F5F7B4E4537125BB073F2" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_EarningsPerShareDiluted" xlink:label="loc_us-gaap_EarningsPerShareDiluted_B1603429C3DEC2757AB037125BB02D8A" xlink:type="locator" />
    <link:presentationArc order="5" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ChangeInAccountingEstimateLineItems_E456BD4EF24472DA9ADC37125BAFAF41" xlink:to="loc_us-gaap_EarningsPerShareDiluted_B1603429C3DEC2757AB037125BB02D8A" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_DeferredTaxAssetsNetNoncurrent" xlink:label="loc_us-gaap_DeferredTaxAssetsNetNoncurrent_E76902B2FBFB8D0C732737125BB07959" xlink:type="locator" />
    <link:presentationArc order="6" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ChangeInAccountingEstimateLineItems_E456BD4EF24472DA9ADC37125BAFAF41" xlink:to="loc_us-gaap_DeferredTaxAssetsNetNoncurrent_E76902B2FBFB8D0C732737125BB07959" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_DeferredIncomeTaxLiabilities" xlink:label="loc_us-gaap_DeferredIncomeTaxLiabilities_57B30DADDD7FC47A6AB737125BB0BA84" xlink:type="locator" />
    <link:presentationArc order="7" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ChangeInAccountingEstimateLineItems_E456BD4EF24472DA9ADC37125BAFAF41" xlink:to="loc_us-gaap_DeferredIncomeTaxLiabilities_57B30DADDD7FC47A6AB737125BB0BA84" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_RetainedEarningsAccumulatedDeficit" xlink:label="loc_us-gaap_RetainedEarningsAccumulatedDeficit_49DEDAB501C688EB2A6E37125BB0DA3E" xlink:type="locator" />
    <link:presentationArc order="8" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ChangeInAccountingEstimateLineItems_E456BD4EF24472DA9ADC37125BAFAF41" xlink:to="loc_us-gaap_RetainedEarningsAccumulatedDeficit_49DEDAB501C688EB2A6E37125BB0DA3E" xlink:type="arc" />
  </link:presentationLink>
  <link:presentationLink xlink:role="http://cognex.com/role/TaxesTables" xlink:type="extended">
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_IncomeTaxDisclosureAbstract" xlink:label="loc_us-gaap_IncomeTaxDisclosureAbstract_515E9651CBB14D2A9884FD820D611BE5" xlink:type="locator" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock" xlink:label="loc_us-gaap_ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock_5C560C4063C843CF9951FD820D61CBDB" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeTaxDisclosureAbstract_515E9651CBB14D2A9884FD820D611BE5" xlink:to="loc_us-gaap_ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock_5C560C4063C843CF9951FD820D61CBDB" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock" xlink:label="loc_us-gaap_ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock_4697DF6F5BEA7528FC1EFD820D62009B" xlink:type="locator" />
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeTaxDisclosureAbstract_515E9651CBB14D2A9884FD820D611BE5" xlink:to="loc_us-gaap_ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock_4697DF6F5BEA7528FC1EFD820D62009B" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ScheduleOfChangeInAccountingEstimateTextBlock" xlink:label="loc_us-gaap_ScheduleOfChangeInAccountingEstimateTextBlock_64367D95ABBF9CD30031FDD8A2F15669" xlink:type="locator" />
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeTaxDisclosureAbstract_515E9651CBB14D2A9884FD820D611BE5" xlink:to="loc_us-gaap_ScheduleOfChangeInAccountingEstimateTextBlock_64367D95ABBF9CD30031FDD8A2F15669" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_SummaryOfIncomeTaxContingenciesTextBlock" xlink:label="loc_us-gaap_SummaryOfIncomeTaxContingenciesTextBlock_4AFA07CEE088F95F0761FD820D62537F" xlink:type="locator" />
    <link:presentationArc order="4" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeTaxDisclosureAbstract_515E9651CBB14D2A9884FD820D611BE5" xlink:to="loc_us-gaap_SummaryOfIncomeTaxContingenciesTextBlock_4AFA07CEE088F95F0761FD820D62537F" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock" xlink:label="loc_us-gaap_ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock_84A812AF864CF7286303FD820D62B716" xlink:type="locator" />
    <link:presentationArc order="5" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeTaxDisclosureAbstract_515E9651CBB14D2A9884FD820D611BE5" xlink:to="loc_us-gaap_ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock_84A812AF864CF7286303FD820D62B716" xlink:type="arc" />
  </link:presentationLink>
  <link:presentationLink xlink:role="http://cognex.com/role/WeightedAverageShares" xlink:type="extended">
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_EarningsPerShareAbstract" xlink:label="loc_us-gaap_EarningsPerShareAbstract_AD93A7CA101D9165ADD38095E61F4545" xlink:type="locator" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_EarningsPerShareTextBlock" xlink:label="loc_us-gaap_EarningsPerShareTextBlock_3D40DDDA8706DC8C5C028095E61F7569" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_EarningsPerShareAbstract_AD93A7CA101D9165ADD38095E61F4545" xlink:to="loc_us-gaap_EarningsPerShareTextBlock_3D40DDDA8706DC8C5C028095E61F7569" xlink:type="arc" />
  </link:presentationLink>
  <link:presentationLink xlink:role="http://cognex.com/role/WeightedAverageSharesAdditionalInformationDetail" xlink:type="extended">
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_EarningsPerShareAbstract" xlink:label="loc_us-gaap_EarningsPerShareAbstract_C6D7C395B2CBBCB5EE9C170C917855E3" xlink:type="locator" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTable" xlink:label="loc_us-gaap_ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTable_664379F72286BC59B94C173A46C78C2C" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_EarningsPerShareAbstract_C6D7C395B2CBBCB5EE9C170C917855E3" xlink:to="loc_us-gaap_ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTable_664379F72286BC59B94C173A46C78C2C" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis" xlink:label="loc_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis_A0274ED55393A031719C173A7ED34A49" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTable_664379F72286BC59B94C173A46C78C2C" xlink:to="loc_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis_A0274ED55393A031719C173A7ED34A49" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_AntidilutiveSecuritiesNameDomain" xlink:label="loc_us-gaap_AntidilutiveSecuritiesNameDomain_76DC137AC38B8B4AE686173A7EE5057D" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis_A0274ED55393A031719C173A7ED34A49" xlink:to="loc_us-gaap_AntidilutiveSecuritiesNameDomain_76DC137AC38B8B4AE686173A7EE5057D" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_EmployeeStockOptionMember" xlink:label="loc_us-gaap_EmployeeStockOptionMember_F1D9B9C1C486C42AF61F173C6153EF38" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AntidilutiveSecuritiesNameDomain_76DC137AC38B8B4AE686173A7EE5057D" xlink:to="loc_us-gaap_EmployeeStockOptionMember_F1D9B9C1C486C42AF61F173C6153EF38" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_RestrictedStockMember" xlink:label="loc_us-gaap_RestrictedStockMember_3A51C80659270E42206E173C0050B744" xlink:type="locator" />
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AntidilutiveSecuritiesNameDomain_76DC137AC38B8B4AE686173A7EE5057D" xlink:to="loc_us-gaap_RestrictedStockMember_3A51C80659270E42206E173C0050B744" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareLineItems" xlink:label="loc_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareLineItems_2365C2B5474C435CBB1B173A46C9394F" xlink:type="locator" />
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTable_664379F72286BC59B94C173A46C78C2C" xlink:to="loc_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareLineItems_2365C2B5474C435CBB1B173A46C9394F" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount" xlink:label="loc_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount_85794EAB81C3B5A00104170C9178DABA" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareLineItems_2365C2B5474C435CBB1B173A46C9394F" xlink:to="loc_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount_85794EAB81C3B5A00104170C9178DABA" xlink:type="arc" />
  </link:presentationLink>
  <link:presentationLink xlink:role="http://cognex.com/role/WeightedAverageSharesCalculationOfWeightedAverageSharesDetail" xlink:type="extended">
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_EarningsPerShareAbstract" xlink:label="loc_us-gaap_EarningsPerShareAbstract_C5F486E9EF6EBBD2CC568095E841C9CB" xlink:type="locator" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_WeightedAverageNumberOfSharesOutstandingBasic" xlink:label="loc_us-gaap_WeightedAverageNumberOfSharesOutstandingBasic_C54BEB2E996F651AA2898095E84143D5" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_EarningsPerShareAbstract_C5F486E9EF6EBBD2CC568095E841C9CB" xlink:to="loc_us-gaap_WeightedAverageNumberOfSharesOutstandingBasic_C54BEB2E996F651AA2898095E84143D5" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_WeightedAverageNumberDilutedSharesOutstandingAdjustment" xlink:label="loc_us-gaap_WeightedAverageNumberDilutedSharesOutstandingAdjustment_5BA4A35CE376CA8B87C28095E841089B" xlink:type="locator" />
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_EarningsPerShareAbstract_C5F486E9EF6EBBD2CC568095E841C9CB" xlink:to="loc_us-gaap_WeightedAverageNumberDilutedSharesOutstandingAdjustment_5BA4A35CE376CA8B87C28095E841089B" xlink:type="arc" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding" xlink:label="loc_us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding_47B6BBB230F41ED1F6FB8095E841538C" xlink:type="locator" />
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_EarningsPerShareAbstract_C5F486E9EF6EBBD2CC568095E841C9CB" xlink:to="loc_us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding_47B6BBB230F41ED1F6FB8095E841538C" xlink:type="arc" />
  </link:presentationLink>
  <link:presentationLink xlink:role="http://cognex.com/role/WeightedAverageSharesTables" xlink:type="extended">
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_EarningsPerShareAbstract" xlink:label="loc_us-gaap_EarningsPerShareAbstract_A9F7D4EAB31CDC0218798095E6B310B7" xlink:type="locator" />
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd#us-gaap_ScheduleOfWeightedAverageNumberOfSharesTableTextBlock" xlink:label="loc_us-gaap_ScheduleOfWeightedAverageNumberOfSharesTableTextBlock_373B3C4F5736CB6BE1028095E6B3F61E" xlink:type="locator" />
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_EarningsPerShareAbstract_A9F7D4EAB31CDC0218798095E6B310B7" xlink:to="loc_us-gaap_ScheduleOfWeightedAverageNumberOfSharesTableTextBlock_373B3C4F5736CB6BE1028095E6B3F61E" xlink:type="arc" />
  </link:presentationLink>
</link:linkbase>
</XBRL>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>GRAPHIC
<SEQUENCE>16
<FILENAME>cgnxexhibit4bdescription001.jpg
<TEXT>
begin 644 cgnxexhibit4bdescription001.jpg
M_]C_X  02D9)1@ ! @   0 !  #_VP!#  H'!P@'!@H(" @+"@H+#A@0#@T-
M#AT5%A$8(Q\E)"(?(B$F*S<O)BDT*2$B,$$Q-#D[/CX^)2Y$24,\2#<]/CO_
MVP!# 0H+"PX-#AP0$!P[*"(H.SL[.SL[.SL[.SL[.SL[.SL[.SL[.SL[.SL[
M.SL[.SL[.SL[.SL[.SL[.SL[.SL[.SO_P  1" 55!!\# 2(  A$! Q$!_\0
M'P   04! 0$! 0$           $" P0%!@<("0H+_\0 M1   @$# P($ P4%
M! 0   %] 0(#  01!1(A,4$&$U%A!R)Q%#*!D:$((T*QP152T? D,V)R@@D*
M%A<8&1HE)B<H*2HT-38W.#DZ0T1%1D=(24I35%565UA96F-D969G:&EJ<W1U
M=G=X>7J#A(6&AXB)BI*3E)66EYB9FJ*CI*6FIZBIJK*SM+6VM[BYNL+#Q,7&
MQ\C)RM+3U-76U]C9VN'BX^3EYN?HZ>KQ\O/T]?;W^/GZ_\0 'P$  P$! 0$!
M 0$! 0        $" P0%!@<("0H+_\0 M1$  @$"! 0#! <%! 0  0)W  $"
M Q$$!2$Q!A)!40=A<1,B,H$(%$*1H;'!"2,S4O 58G+1"A8D-.$E\1<8&1HF
M)R@I*C4V-S@Y.D-$149'2$E*4U155E=865IC9&5F9VAI:G-T=79W>'EZ@H.$
MA8:'B(F*DI.4E9:7F)F:HJ.DI::GJ*FJLK.TM;:WN+FZPL/$Q<;'R,G*TM/4
MU=;7V-G:XN/DY>;GZ.GJ\O/T]?;W^/GZ_]H # ,!  (1 Q$ /P#V: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*** "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@ K$\9:A=Z3X4U#4K&41
MW%I"94W(&5L=B#VK;KG/B KR>!=6@BBDEEFMVCCCB0NS,>@ % &1H.K^(=;\
M-Z9?Q:K!]ONHOM#VIMEVM&KA6 .<@X/!]:Z6?Q-HUMJ3Z;-?*EY'&9&A*-N"
M 9+8QTP#S7!^#FL?#/A:RU7^R[_^V$L7MI;5+&7?,V_<N?EP,8Z^A]JD^)UE
M/>7-GJ>E64L^IZ,%>4)$^VXC9@#$,#Y_XB1GA2?[U &MXM\8W&CZOX8:SN8D
MT[5+@I<--'@",%?F!.".&//TK4OO%5C>>%]1U'1-6M0]L&C\^96*0R=MXQD#
M\*Y?QC-)K>M^!M0M["\,27GG3JUL^;<$Q_?XXP0?RK(BM+S^R/B.GV"\!O;I
MVM5-L^9@7;E1CGJ.E '0ZGXQU+2M1\'+)J%G+:ZM$?MDL<?R.5"G<A/(!W?R
MXK>U'Q3977A74-1T75K17@!C$\RL4AD_Z:+C*_B*X>2TO$/PWN38W7E:= WV
MPB!_W&!$IW#&1S_(FF7&CZ@^E_$#58[2X^SZLZI91"%M\Y4G+A<9P<\''/-
M'73^/+/2QX?LKVXBNKS4XD>2:W1O*"[,EQQG!/0=><UURNK('!^4C(/M7E+6
ME[!=?#C4&L+QH+&T\FYV6[LT3^6JX90,CD'MVKT3Q%I][JV@SV5A=):3S!1O
MD3>NW<"RD \@C(_&@#G]*\876L_$>ZT2%?*TV'33/$^T;I6+H!(#_=PQQZCG
MN*PK+QAXCNF\9[M3M81X<D80&2V&V4 R##<CD^6!QW/2FZ!I'B>S^,$]WJ5P
MDL::;B:ZCLRD4J?+B-3T# X/T4UD:7I=E-JGCN36M"O)UO+AI-/;^SY6=SNE
MP8R%X/S)Z=J /3/!6O77B;PI9:M>6GV6>=3N0 A3@D;ESS@XS_C6]7)_#6#Q
M#;>#X(_$C2F[$C>6)FS(L7&T,?7KUYQBNLH **** "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@ HHK(UCQ1H^@SP0:G=-!)<MMA'D2-Y
MAXX!52">1Q[T :]%9UAK^E:G=2VEK=J;J$9DMY%:.5!ZE& ;'OBM&@ HHHH
M***SX-<TVYUJYT6&Z5[^TC62:':<HK8P<XP>HZ'N* -"BBFF1!((BZ[V!8+G
MD@8R<?B/SH =16?H^N:;X@M'N]*NEN84E:)G52,,.HY ]16A0 4444 %%%8T
M/B[0;G6%TF'4%DNWDDB551MK.@!=0^-I(!&1GO0!LT4QI$1D1G56<X0$X+'&
M>/7@&J.G:_I>K7M[965SYMQ8,$N8S&RF,G.,Y _NGI0!HT444 %%8(\::"U_
M<6"74[W5J-T\*6<S-&/4@)P.1S[UI:7JVGZW9+>Z9>175NQ(WQMD CL?0^QH
M N4444 %%9^DZYINN)</IMTMPMM,T$I"D;7'4<@9Z]1Q5Z21(8VEE=41 69F
M. H'4DT .HHHH **** "BJ=_JMAIEA<W]Y<I';V@S,_WMG3@@<YY''N*?IVH
M6FK:?#?V,ZSVTZ[XY%SAA^/(H LT45CS>*M&MQ</)=/Y5JQ2>=8)&BC8=09
MNT$=^>#Q0!L44U'62-74Y5@"#[4Z@ HHHH **BNKF&RM)KNYD$<$$;22.>BJ
M!DG\A5>PU?3]3TN#4[.Z22SN #'*<J&R<#K@@YXQZT 7:*S_ .W--_MW^P_M
M2_VCY'G^1M.=F<9SC'X9S6A0 445EZYXCTGPW;I<:O=&UAD;:LAB=EW>F5!P
M>#^5 &I163;^)]'N-2331=F*\E7='!<1/"[CU4.!GOTK6H ***S[_7--TR_L
M;&\NEAN=0<I;(5)\QAC(R!@=1U]: -"BBF"2-I&C5U+H 64'D ],C\#0 ^BB
MB@ HHK-UOQ#I?AVV2YU:Y-M#(VQ9#$[+N]"5!Q^- &E139'$<;.P8A1D[5+'
M\ .37/0_$#PM/$TRZJ%A63RGFD@D2-'_ +I=E !]B: .CHIJLKH'1@RL,@@Y
M!%.H **** "BBB@ HHIDDD<2AI'5%+!06.!DG 'U)('XT /HHID<D<JEHW5U
M#%25.1D'!'U!!'X4 /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@ KS+XO?\A7PA_V$A_Z$E>FUSWB3P;8^*+FRGOKN\C:QD\R
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
M393R7%M%,4*Q.Y)."%#8&> 3@<>@IEMX'T>VFU=E^T/!K#,UU;-)^Z+-G<0
M,@G)[\=L4 9&@ZEXHNTMKF9IY=/O=)$[W;K"IAN"-WR =5(/ 8'H/>J'@C6_
M%.M>&[;Q-J.L1FTM?M!N+5+5-URJ@X.X8VD'L!VYSFNFT3P9:Z#8-96^I:E-
M"$9(5N)E<6X;KL&T#\\X_$U9\-^&+'PQHW]D6<D\UIN8A;@JV-W4< <?6@#D
M_#/B;Q/JMGI.NF*6YL;K[0;] L2QP*"0GE\[SC;@YSGGVKD/$^KZMXF^%7]O
MW]^2MQJ85+-8T$<2 D  @;L\'DDYSTKU#0/ VG>')7%C=WYM&D,B64L^Z"-C
MW QG\R?7KS6=-\*]#ETZ72_MFI)ISW/VE;1)E$<3]]ORYQ[$GVH [6O$/"6A
MZIXG\)>)=#L1:1176J_O;B>1LQA2K?*@4Y/RCJ1UKVH1,ML(1-)D*%\PX+?7
MD8S^%8OACP?8^$Q=+875W(EU)YLBSLC#?_>&%!_I0!SR76I>'O'7AKPA;:C(
MVFMIC*ZM&FXM&C@,#C(^Z#C.*Q;;QKXCF^$6K>(&U+_B8V5\(HY1!'@IOC7!
M7;C^,GIGI7>ZSX2L=9UFQUA[B[M;VQ5DCEMI I9&!!4Y!XY/3!YZUG1?#;1X
M?"UUX:2ZOA87<XGD'F(6W @X!V],JI_#ZT 9]]<^-K/PC<ZY!?)?3SVT$D5G
M#:J&M\X,A4\[S@]QU[=JR[_QU>2_#34?$.BZU,\\%W&%$\$7F0 [%,;C;M/)
M8A@.X]#7?R:(CZ/;::M[=1BV\LQSHRB0;",?PX[8/'(K,D\!:-/HFIZ5/Y\B
MZK-Y]S-E5D9\@@C:H48('&/KG)H R]/\1:O+\38=&DO-]C+I*W1B,:#$AQR"
M!G'X]ZQAXSU^VUOP]'<7\5PU]J,EI>Q0(K6P^<!1&^T$LH;GYCSU]*ZS3_ >
MG:?K<>L"^U"XNTM?LK-/*K!X\8P0%&.W3'3ZYI6WPKT"TAL8HKG4L:?=?:;<
MFZSL;.2 ,8 R!T&?>@#"UGQ)XE7Q#XRLK76FM[?1K-;JW MHF8$HK;<E>G)'
M.3TY]:GB+5]3UK3/A]<R7\L#:C>P&=80H4N'3#X(/()R <CVKM+CP%IMSJ&L
M7SWE\)=:A\BZ"NF-G  7Y>.!C_Z_-+-X!TF;1]*TTSWBC1Y5ELYU=1)&0<CG
M;@CIV[4 :FL"XMO#%[Y5[,MQ#:.5N<+OW*I.[&-N3CTQ7F.C^)-2\+?!&WUJ
M"ZDN;JZE>.%9U5DA<S2;FZ L3@GYB><=N*];>UBDLVM)09(FC\M@[$EEQ@Y/
M4\=ZYZW\ :+!X6E\-2&ZN-.D)*I-+DQ?,6^0@#&&).>OKD4 4]+U[4;3XC7'
MA2\NGOH#8K=13R(JNC<!@=H (/)Z<5V=8VF>&;/3M7GU=I[B\U">)86N+@KN
M$:XPH"J !QD\<FMF@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ****
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
M[2QSQ6VI^6?FVC[Q)[;OD_[ZQ6AXFTOPY_P@OB>_T.YCN4OX8KDV\;*T4!&
M&50/D)&<YYX]J /1M-OH=4TRUU"W#"&[A2:/<,':RAAGWP:G+*&"E@">@SR:
MY[P##8Q>"-)^PQVZ%K.!I_)51F4Q+N+8_BZ9SS7FNK27$NB^/K_4,C5;34H5
MMI#Q)"@E'E[#U P>,=: /1_$/BV72M<L]"T_3?M^HW<$LZ1M,(EVHI(&<'EB
MI [>IK;6[G72TNI;&43F(.]K&RLZL1RH.0I(/&<XKS66U6X^+GA.34;.'[9/
MI/G70:)<M,$;D\=05&#VP/2O5"<#)H Y?P[XZLM>\+7OB.2WDL[.S>0,'8,Q
M5%#$X'?GIS]:KZ=\0$N+[18K[3_LD&O1,]C*)MYR#]UQM&"01T)Y./>L#X1Z
M?;ZS\+]0TVX)\FZN9XG*GD!D49'OSFJ=GX8OYO&'AW0DU&/4;+PNSS2W4<!C
M\K)!2)CN(9OE' Q@&@#JM8\=WNB:Y86UWX<N$TR_N1;17IF7<7)P#Y8&0._)
M!QV[5K>+O%%IX1T";5+E3*R_+%"IP9'/09[#U/;]*Y'QZ)=7M=+\4>%]<^US
M65XD=O:QLKQ2.S;> !G=SSG/&>E9OQ3E\0'1-<:\\/K]A9HXH=0^VH?*B$B$
M 18SEF R<^G910!ZK97'VNQM[G;L\Z)9-N<XR,XJ:N:T3Q/8P6VAZ1J;I9:K
M>VBO%:%B^0!@'>!CD#/Z55^)E[8V7AZU>_N+B)6OHO+CA9569ADA)"P("<9.
M0>G0]* .N5E==RL&![@TJLK#*L"/8UXQHR+J4'C_ $>+5;:Q2XGA\AH7Q I=
MR#MQ_ QVJ2.QKK?AI=W4DFL6&IZ5%8:I8R11W1MU"Q3':=K #@' YQQR#QF@
M#N694&68*,XY.*=7E/Q%O=-;7M7LVN/-NQH<F8KME$,/\0\H$9,IXZ8P.><8
MK*UB1=0\#_#^2>7S96O8HGDW_/C."-PY';]* /:?,3:6WK@'!.>E*S!5+,0
M.I->)7.E:>NI?$:T%M&MM:6HFMX!Q'')L)W!>@;/?KS[U:;59Q%\/(]1N8UT
MV6V8R/=J7A:4)M3>,C.,C&3QG- 'L= 8-G!!P<'%>.^+M)CTSPKX;L3JB:BD
M6N+''<1J4V1G),:G<3@'C(/& .U/M6N-'U?XD6VAJ8!!;))#'#P$;8<LH'0\
MDT =YXB\7'0-<T73_L*W$>K7(MQ*L^TQ-D Y7:<CYAWKHRRA@I(!/09ZUX9L
MTB"#X:SVAMUN)+I'NG4@,S;TR7/?YMW)]ZU&5]>\3^+M/U'6+?2K^&[B>TN)
MXMTL44;90Q?,,<8R!UW^] 'J>KWSZ;I5U>1Q),\$32B)Y-F\*,D9P>P/:JGA
M/Q /%/AJTUI;8VPN@_[HOOV[79>N!G[N>E>=7C07OC/QJ/$!B>2UTL?8?/&
MB;,[HP>A+;3D<Y-=5\(V5OAGI(5@2OF@X/0^:] '9T444 %%%% !1110 444
M4 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110
M 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !
M1110 4444 %%%% !1110 4444 %%%% !1110 4444 1S00W,1BGB26,D$JZA
MAD'(.#Z$ _A4%KI.FV,IEM-/M;>1A@O%"J$CTR!5NB@"I_96G?VA_:/]GVOV
MW&/M/DKYF.GWL9HETK3IKY+^6PM9+N/A+AH5,B_1L9%6Z* *\FGV4UR+J6S@
M><(4$K1@OM/49QG')XJ.'2-,MK>6W@TZUBAFXDC2%55_J ,'\:N44 5(M)TV
M"TDLX=/M8[:3[\*0J$;ZJ!@U$- T8",#2+$"(YC_ -&3Y#G/'''-:%% #)(X
MYHVCE171A@JPR#^%58-&TJU61;;3+.%95*2".!5#J>H.!R/:KM% &?!H.C6L
MRSV^D6,,J'*O';(K*?8@<5>=%D1D=0RL,%2,@CTIU% %.VTG3;.&2&UT^U@B
MEXD2*%55^W( YI]GI]CIZ,EE9V]JKG+"&)4!/O@59HH @ELK2>XBN9K6&2>'
M_52O&"R?0GD?A5;_ (1_1=KK_9%AMD(+C[,F&([GCGJ:T** *5QHVE7=M%;7
M.F6D\$/^JBD@5E3Z C _"KBJJ*%50JJ,  8 %+10!0&A:.)$D&E66],;&^SI
ME<=,''&*EOM+T_4U1=0L+:[$9W()X5DVGU&1Q5JB@"K>:9I^HPK#?6-M=1(<
MJD\2NJGU (IM]H^F:G:QVM_I]M=01$,D4T2LJD<# (XXJY10!GQZ!HL0N!'I
M%B@NCF<+;(/-YS\W'S<\\U,NF6"61L4L;9;5NL B41G_ (#C%6J* *7]CZ7]
MD%G_ &;:?9E;>(?(78&]=N,9]Z=_9>G"]^V_8+;[4/\ EOY*[^F/O8STJW10
M!4M]*TZTNI;JVT^U@N)O];+'"JN_U(&3^-%II.FZ?(TEEI]K;.XVLT,*H2/0
MD"K=% %6\TO3]0*F^L+:Z*_=\Z%7Q],BHK?0M'M)UGMM)L894^[)';HK+]"!
M5^B@#,F\-Z#<1M'/HFG2HTAE*O:HP+G@M@CK[U-/H^EW1@-SIMI,;8 0F2!6
M\K'3;D<?A5VB@"I-I.FW%U]JFT^UEN,8\UX5+XQC&2,]*8NB:2ELUJNEV2P.
MP=HA;IL+#H2,8S5ZB@"HVE:<[3,]A;,TZA)285)D4= W'('H:B&@Z,OEXTBQ
M'E',>+9/D.<\<<<UH44 >>:C\+K/4]2U.\O].LKV>]G>2*Y-U+ T2D< QH-K
M$>N?F[UUEIX;T]-&T_3M0@AU/[#$L:2W<*N20 -PSG!XK7HH :T:/&8V161A
MM*D9!'IBJ\.FV%O:M:P6-O%;O]Z)(E5&^H Q5JB@"E!HVE6L<L=OIMI"DR[9
M%C@50X]" .13[73-/LK1K2TL;:WMWSNABB5$.>N5 QS5JB@"*VM;>S@6"U@B
M@A7[L<2!5'T J&;2M.N+M+R>PM9;E,;)GA5G7'3#$9%6Z* *DFE:=->+>2V%
MM)<KC;,T*EQCIAL9J>:&*XB:&>))8V&&1U# _4&I** *=MI&F6:.EKIUK L@
MPZQ0JH8>^!S5B"WAM81#;PQPQKT2-0JC\!4E% %&UT72;&Y>ZM-+L[>=\EY8
MH%1V^I R:LW-K;WD#6]U!'/"V-T<J!E.#D9!XZU+10!FW>AV=[J%C=RQ1?Z
MVZ$"(;@<$ ;NRC.<#N!Z8JY=6=K?1>3=VT5Q&"&V2H'&1T.#4U% %1M*TYVF
M9["U9IPHE)A4F0#INXYQ@8S3[2QL]/B,5E:06T9;<4AC" GUP.]6** *\FGV
M4US]IELX'GV&/S6C!;:>JYQG'M4+Z'I$D,4+Z59-%!GRD:W0K'GKM&./PJ]1
M0!0;0M'9Y7;2K(M-_K2;=,OSGGCGD9YITFBZ5-8K8RZ99O:*=PMV@4Q@^NW&
M*NT4 4YM(TRYBBBGTZTEC@&(D>!6$8]%!''0=*=!I>GVUR]S;V%M#/)G?+'"
MJLV>N2!DU:HH SH_#^B1$&/1[!"'+@K;(,,>IZ=>.M33:5IUQ>QWTVGVLMW%
M_JYWA4R)]&(R*MT4 4[K2=-O;A+B[T^UN)D4JLDL*NR@]0"1D#FIK:TMK*$0
MVMO%!$.B1(%4?@*FHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB
M@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ****
M"BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH *
M*** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HH
MHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB
M@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ****
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
M32I&I8*"[  D]!SWH DKAXM.O;;Q,M[H\=]:"?47_M"RGC+6TD>6S.A(PK'
M/RG))Z=:[1)HI))(TE1GCP'4,"5SR,CM3F94QN8+DX&3U- 'G-QI^HR>"O$%
MHNF79N+O6GN(8O).7C,ZN&]/NJ3_ )%.\76VLZS:>([%-(O7$T,;6)@4)'*N
MT$F0Y!9\Y&TYQ@8'4UZ(&5BP# E3@@'H>M.H Y:P%S)\0;J^?3[J&WGTR&)9
M)(^ ZN[%21D=&'M[UD:1I\]J\N@ZGX4>\E2[DD@OV56MW1I"ZNQ)R&&>@!.1
M7>3316\1EGE2*->KNP4#\30LT33-"LJ&5 &9 PW 'H2* )*Y?X>6[V'AEM*F
MXGT^\N(9,^IE9P?Q5U/T-=14 M(5O&NT7;*ZA7(.-X'3([X]: &ZC91ZEIEU
M83$B.ZA>%R.N&!!_G7-^%;J^T#1;?0=6TZ[\^Q7R(I[>!I8KA!PK KG;QC(;
M%=;32RA@I8 MT!/6@#EM1AU*#Q7I/B![.22V6WFMKB&$>8]N'*LK[1G=]T!M
MN<=LCFL75]$OWTW7+N&RN&;5=5M9X;98R66.-H]SL/X2=K'!YZ=^*]#5E<95
M@PR1D'/(X-.H YA%F7XB3Z@;2Y^R'2$A$WD-@N)'<KTSG##^76N=T/3]1M[+
MP;%/IMW&^G75PUT#"?W099 I/KG>O3/Z5Z34<LT4 4RRI&'8(N]@,L>@'O0!
MPMU97LFE>.84L+HOJ+/]D'DM^^S J#'_  ('K]:M:=#>Z3XEBU2>SNI;*]TN
M&W8I"SO;2QD_*R ;L'<>0.OYUUPNK<R&,7$1</L*AQD-C.,>N.<5-0!YY'HF
MH:?#I#-93L6\02ZE+%&F_P"S1.)  <=QN7('J?2M[P_#/'XL\2SRVL\4-U/"
M\$CQE5D"PJC8/^\#_.NEJ*WN8+N!9[::.>)L[9(V#*<'!Y'N"* *FL7EW916
M\EK927@:<+-%$ 6\L@Y(R0..#[].]<SI.@PVWCM-4T"RN-.L)+:0:@CPM#%-
M)D;-L; ?,/F)(&/S-=M10!YO9Z3K4/A71%&F7 GT'4_.GMSMS.FZ0$Q\_,0K
M@CIGMS5GQ)X>U'Q'>:KJ>FQ/#NTR*V@2=#$;B1)O-(*M@@8 7)Q]X]N:[^B@
M#ESJEYK6C7LK>'KVQD^Q21L+B,>8\A& B $DKG/)P.GOC*\&0:KX<>RL[BSN
MY[.^LX6DD:(E[*=$5&C8]2AQ\N,X^G-=PUS MRELTT8GD4LD18;F48R0.I R
M/SJ6@ KDYTD;XD3ZC%#)-'IVBE'6(99Y'DW*@]\)G'N/6NLJO#9P6\4D<:D>
M:Q:1]QW.Q&"2>N<8'L  ,8% $6D:DNK:9#?+;S6_F9#0S##QLI*LI^A!K$N8
M+O3/'IUA[>:XT^[L%MF>&,R-!(CEAE1D[6#'D \CFNEBBCAB6*)%1$&%51@
M>@I] 'G=_H6HV_@G48$LIY+C4M9^W);1KN,49G1\'' .U<X]3BO0D<2('4,
MPR-RE3^1Y%1P75M=&06]Q%-Y3[)/+<-L; .TXZ'!''O4U '(/8WGASQQ?ZW#
M9S7FG:S%$+G[.N^2WEC!53LZLI4]LG/:KNOP7?B?PUJ>GV,,EN+FU=(Y+A#$
M7<]!M/('4$D#KQFNBHH XZ2WO/$,WAMFL+BRETVX%Q=F:,J(RL;+L4]'W,1R
MN1@<]A6%#)###+:7>EZS_9,&K27L9@M!,GRR%@?,5B2FX;L;<]LGJ?2)+JVB
MGBMY9XDFGR(HV<!I,#)P.IP 3QZ5CV?@_3K%!!!<7XLA]VR-VYA _NXSG;_L
MYQ[4 9!CN&UGQ=.ME<M#?64*VLBPL5F*QN"!^+#_ /56;;V=_I?]@ZA<Z!=Z
MA:C1X;"YMXDS-;2ISNVDC(.2"1Z _7T;I1TY- '':CH<>L:';^'4TEM)AG+7
M >*(8LR&W)@KP)">3@X^\,\C.QX4O;Z[T.%-3L'LKNW'E2)Y>Q'QP&3_ &2!
MG';I6E!J%E='%M>03'=M_=RJW/7'!Z\&K% ',>,-&O;JZTC7-,A%Q>:-<-(+
M?<%,T;C:ZJ3P&QC&>.*U+;6&O@BVVGWD;DC?]J@:(1CODG[Q]ESSZ#FM.FR2
M)%&TDCJB("S,QP !U)- '"1Z=J5IX>\2>')K">XGOIKEK.8(3',LV2"S]%*E
MCG=CIQFKNDZ=<Z=XWMP\-Q+;PZ'#9?:C&=C2(Y)Y^F#GIVZUUL4L<\*30R+)
M'(H9'0Y5@>001U%.H \[M-][HWC72(;*:>XO-3NHH<1DQEG15!+]%P>3G'MF
MM+2-/O/"WB.[:XAN+RSO;*UCCG@C,A22%"A5@,D;L[@>G)YKH=(T.WT5KPV\
MT\GVVX:YE\U@?WC8R1@#'0<=.*TJ //--T*_T9_"4<MG,_V6[NKBX$2%UMEE
M63:N1QP7 .,]">E2^+K;6-1?Q%IZZ7=R1S6(%B]KM5)CL.[S&R"2"<!3QCMS
M7>)(DJ[HW5UR1E3D9!P1^8J."\M;IG6WN8IFC.'$;ABI]#CI0!RUG%?P>,+'
M4)-+NA;S:.MLS84^4ZR;B'P>.#GOZ=:QX=(U?^P8+B*PN/.T_P 0R:@UJR[6
MFA+O]W/!.U\@>V.M>CT4 <3JVGW.I:GJ^MVUK<")M">PBC:%EDGD9BWW",@#
M@9('WCV&:2"WNQ>^"7-A= 6-O)'=$PM^Y)A" '_@0[?7I773ZC8VL\5O<WMO
M#-,0(XY)55G)[ $Y-6: ,[1M7&L0W#FRN;.2WG:!XKE0K9 !!X)X(8'\:S?$
M4FH)K6EK#87$]BPE$\MHJ^:K87:NXD%%/.2".@Y Z[4,EE!.;&&6%9]IE,(<
M;R,\L1U/)Z^]6: .:\ VMY8>%HK&]LYK6:"><%92#N!E=@003D8(Y-=+110
M4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1
M110 4444 %%%% !6)XPM8+WPK?6]Q&)(Y$ (/^\/UK;K/UNQN-2TJ6SMIHX7
MEQ\\B%@ "#T!&>GK0!S'AC69]'T#4-$N\SZCH,HM8E8X-PC\6Y_X$"J_A53P
M5'<:*GB]H8'U*]@OR2H8*UQ)Y:D\GIEB3[9KI9O"]O<>*K3Q%(^VX@MS$\:?
M<D;/R,?]W+X^H]*RSX+OY+#Q':MJD<9UR4S!XHB#"< ;3\WS @8/3J: +$/B
MV5;O5K62&&\?3[ 7J-9,2)1\P,?.?FRF,CKGH.E$/BYGT"]UN$VNH6<%LLL;
MVC-G=SN1EY(VC:3WP3P,8HC\-:RNJ7&I_P!K6L5Q/I@LPL-H52-U+%&7+G@%
MLX[X[4L7A:Z@U&^U:TFM+"_NX8XV%O$?*=E?<7=<C)(^7V&>3G@ FAU^]N-,
MFOK%+/4X<Q"WGMI=J,&.'+Y)V[!R1SQZ=JL7C98[;66N(XIWTR:**-[9_DN3
M*%\O&<XY;!ZCOS4%SX$DE34)K2XMK">\GMYS!%$3;LT3$_.N1NWD\].@Z\DO
MN?!%SJ/]N"_U5"-76%LP6Y0PRQ ;67+'@%0<=?>@"?7IM5DT/7K34K" VPTR
M62*ZB;*EMC90J><C .>ASVJMX?US4;5?#NEW%G;I;ZCIW^C2+*6=6CB4_.,
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
MEQ;QE'N]P 'F<]L9QSSSQTH H>'_ !1?GPIHD][LGO=6)\HJKMCY6=F8 $\
M=!Z@<#D/NO&.KV6E3W$^B$2P7\5KE]\23H[ +(@9<]\$'H>YIL7@?48/#NFV
M,&M1Q7VC2[["Z2WP N"I5U+'=N5B#C';\;NI^'-8U?15MKS5;=KLW,,[2+;L
M(D$;!@JINSR1R2<\_0  <^OZK#=#3)[6VCU$QO.?)$L\:Q[MJ9VJ&RW/H!@]
M>E-LO%-Y?IIEH=,>QU2^65Y(+D,! D9PSXP"P)*[1QG/;%2:UX?U.YU>TUO1
M]2AL]0AA-O,LT)DAGC)S@C((P>00:COO#.HR7NFZM:ZJG]JV0D61YH28IT?&
MY-H.5 P-N"<8YSUH @\ K*DOB59HHHI!K4FY8ON_ZN/D?7K^-:VH:Q/9>)-)
MTP0QO#J/G ODAHRB;OH<U'X<T.\T>?5);N\AN/[0NS=;8H2FPE54CECD?*/\
M32Z]HMYJ%_I>HZ==0P7>G2NRB>,NCJZ%6! (.>A'/:@#)NO&=_;:-J-[_9\$
MLEAJHL&42D!@610XXZ_/TR/K5D^+9]-O]7M]=MH(%T^R6^5[:0R!HB6&TY ^
M;*X]\U4F\$ZE+I6I6)U:!C?ZFM_O:V/R$,C;>&YR4'TR>M6]2\(R:QJVH7-[
M<Q?9K_318211H0RX9F#AB<9RW3'84 9]^]_<>-/!UU>VUM&)GN&'EL2\6;=S
ML)/WOJ,=.G>KL7BZ]NFL;NRTN6ZT^[N/*/EPR[XXR2!,6V[2O&2.P/4TV#PS
MKS7>ASWVKV<IT9WVLEJP:93&8\M\_!P>W?UZ4_1?#&L:+*;"#6D.B)*9(8#!
M^_C4MN\L2;L;<]\9QQQ0!+I>O:UJFLWMJFFV<=M87QMYY#<L6*[ P*C;R?F&
M0<?CUJ[XLTR\UGPQ?:?82I%<S1X0O]UL$$J?9@"I]C3=#T6ZTK4=6N9KF*6/
M4;G[0$2,J8SM5<9R<\*.PJYK%G=7^FM;V=V+2X\R-TF*;PNUU;E<C.<8QGO0
M!RFB:UINJ>([&TU;1VT/Q%9*XCA=!MF0J0PC<<,O?'MQGFKT?BZ]N397EEI<
MMU875SY)$<,ID2/<5$V[;M*\9([ ]>U7)M"O-3UC3;_5);7&F.TD2VZ,#(Y7
M;DDGY1@YVC.3CGBJFC>&-8T69K&WUM#H@F,L4!@_?QJ6W>6)-V-N2><9P<#'
M6@"Q;Z_J>HPQ:AIFGQW-@]X;<KYFV4QJY1I1GC ()V]2.<CI6;9ZSK+/XLEN
M8K2[BTZ5DCMRS*"HB5MN<'J"<\<D]A5O2O#&K:/=36EIK$:Z))<-.L!@/G1;
MFW-&K[L!22><$\\8/-2'PS>QW'B#R+^$0:P"P1H"6BD,8C)+;N5P,XP#GO0
M67B)KB'0["QMH(KK4-/%V4.1';Q!5Z =>6  XZ'GC!I7/CB[M].NF.FQ&^L-
M1BLKJ'SB%^=E"NAQR"&!P<8_G9B\)W5I_8=W:WD0O])M?L;EHSY=S%@ @C.5
M.5!!YY]:9?>#9[JPNTCO8DO+Z_BO;B9HB5_=E2J*,YP @&<^I[X !?TG6[ZX
M\0W^C:E:V\,UO#'<1-;REU:-RPP<@<@J?K6U)&DT;1RHKHPPRL,@CT(K'MM%
MNXO%MQK<ES"8[BTCMC"L9R-A9L[L^K'C%;+[MAV8W8XSTS0!R7P^M(IOAW!9
M_-'$TEU'B,[2%^T2# /;BEC\/6%IX]L+C1+.&R6TM)5O_LZ!$<-M$2,!P3D,
MWJ !GJ*OZ#H>H:%X8;2HKVW>X1I6AG,)V@N[/RN[G!;U[5%H^C^)+&>%;O6K
M&6V#EYQ#9,DLS$=2Y=NIQGCH,#% &UJ>H0:3IEUJ-T2(+6)I9,#)PHR<>]8C
M>);VRFT>34K2%+36)%A1HG):WE9=R*V>&!P1D8P>QZUMZGI\&K:7=:== F"Z
MB:*3!P<,,<>]8EMX9O)(-(M=5O8KF'1Y5EB:.,J\SHI5"^20, Y..IP>.E %
M#P_;SZIK_B6/58;2YA6_C#(P+;2L493:#V!Y^N:TO'.H:AIGAMKC3I(XY#<0
MQNS9R%>14.,=#\W6I]$T:\TS5-6NY[F&5-2N!.$2,J8R$5<9R<\*/2I?$VC/
MK^A3:?%<"WE9XY$D9-P#(ZN,C(R,KCK0!@7(U&/XCJUG;VCWTFAG<7<K&#YP
MY) )-6;#QFVI:7I3Q6OEWFHQRNR;7E6(1,$<X09/S$ =.O7CF['HFHKXI37)
M+VWD(T\VAB$)7+%]^X'<<#/&.>.]8]OX&U.PTS2_L&L0PZGI4DWE3FW)CECE
M;<R.F[/7'(/:@#HO#VJ7FJZ>\M_ITMC<13/"R.K!9-IX=-P!*D<C(]1VK5JI
MIMO=V]KB_NQ=7+MND=$V(#@#"KDX QZGN>]6Z "BBB@ HHHH **** "BBB@
MHHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH *JZCJ%M
MI5C)>WDFR&/&2 2220  !R220 /4U:K*\2Z79ZUH<VG7L[V\<[(J2QMADDWC
M80?7=B@!;?7HYM1BT^:QO+2XF1I(UGC&UE7&3N4D=QQG//2M2N(TO4]?T7Q%
M8Z#XG2'4%N1)]@U2!=K.54DK(G9MH/(X^O)":+<Z[KFGZ-XAMM0@A2>97NDD
MN6:-XV)!B";,*P. #G.1R3F@#N**Y#19[WQ#I4.NIK$EE*E])YL6-T2PI(RF
M$ID#)4 [NN3D<<5GWNJ:C#X:\:2QW\ZRZ9=/]D??EH@(D8#/<98]<T =_5:&
M]\V:ZC>WF@6V8+YLJA4D&T'<ISR!G!)QR#7*W0U/4O&W]E+KE[:6TFCK<XM]
M@*R>;C()4^G.<_@*SM;N+V?0/'MM<:A<2K9\0'<%**8%?;\H'&2?J.N: .ZE
MO0EQ:1);S3)=%OWT:@I& N<L<\ ]!UYJU7(22W=AKWA&TAO[@VUTLPFA=@0^
MV L"3C/![9QQ5:.ZUW7K2[U+3K^&TFL]0EC_ 'MRPB2.*0J4DC"$<J,YSD%N
M"!Q0!W%,FD,43.L;RE1G8F,GZ9(%<:^KW=IXH6TUAKRU6XO]MC=POOM9T/ A
M8#[CYSU&21UQQ7:T <]:>,;2^T8:Q:Z?J,UD59Q*L(.0I(/R[L]0>U= "" 1
MT->?_#Z#6I/A_HYLKRT2#S\O&UNV\QBX.\;]^,E=W\/M[U;\8ZC>Z+>6FJ6>
MI.UA=1M%<1;BRP*P %RNT9VID9YQR.AYH [:LW4];M]*O=/M9XIF;4)_(B=%
M!56P3\Q)XX!]:R[V\>+7-#\/K>S>1=P32O<>9^\G*!<*&'3.XL=N/NC&!65K
MUG>6[^'+*;5WNIDUS"W&Q1)&ABD*J>H+!2.2.>"10!W=%<)#J5Y9V_B/3IM;
MG066H016]S,@EFVR+&QC7 Y8[F5?3/M4-UJFK0:=XTACN[JU.FVZ3VGF.LDL
M.Z(L5+'=D97U.,\&@#T&HQ!"LAD6) YZL%&?SKD[.?4;+Q7HT4FIW%U%JFGR
MR313;=B.GED% !Q]\CO^)YK/L+S7]2M]#>.\O8M2DO)$U9$4%(XUWYX92J@$
M*%(Y;/4\F@#T"BN'^U:[KUMJ-]IM_#9SV.HRPJ9;EA%&D3X*R1A"#N49R3D;
MA@@#%=O0!3O]7L=,GLH+N81O?3^1 #_$^"<?ICZD>M7:X+Q58W7B9-3:TT^Z
MFDLP(M-N8FB"QSQL&=AN<'EU5#Q_ :N3^+VO?"&BZG;2"W;5;J"UEDQ_Q[EF
MQ)U[@J5&>Y!H Z^21(HVDD8(B LS,<  =2:7J,UPWC;3[FS\'>)5;6)YK=[8
M206[.=\.!A@7SN96/8^XZ5VEK"(+9(Q)))@?>D;<Q_&@":J6H:I#I[V\3(\U
MQ=.4@@CQND(4L<;B , $Y)'ZBN:CO+W7D\2RQZA/93:7<O;VBQM@1[(U8.PZ
M/N8G@Y&!QCDUG">7Q!J?@?4[B2>WEOK>:1TB<J%/DY)7TS_*@#N--OEU.PCO
M!;7%MOR#%<Q[)$()!!'U';@]14-CKEEJ.J7^FVYE\_3_ "_/#Q,@&\$KC(&>
M%/(XK1KE]$_Y*%XI_P"N-C_Z!)0!?N/%&GVQE>02_98)Q;SW84&**3(&"<YX
M) ) (!ZD8-&M^*++059[F"\ECB4-/);V[2+ OJY'3U[G'.*XW7K+5M \':WH
MC6L-Y%J5U(MA*LV'<SOD(4QDL"2<],#/&*ZKQ%INK3^#I-/T^>V,_P!F\N47
M",5F7;AER&!7<,C//7MUH W%N8&M1="5/(*>9YF?EVXSG/IBJNB:S9Z_I<>I
M6!<V\CNJEUVD[6*DX^JFN:?Q!]NTK12^BZC]@NK..ZECM+5I5Z#;%Q_#W/J
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
MPY!JEK8S6VK7L5W-%<.(W1]S+$<%%<X&6 /7'(P>]:] !1110 4444 %%%%
M!1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %
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
M744:/#)@OO3)1@"P93QC(Q[4D5CHUEXI\)V<<>((K&Z6-;S'F;<IY>[//0'
M/(_"N\L[.&PLXK2!<1Q*%4&IZ /*+;4(M.L8KI)Y(])L?$5YY[6JJ_V>-BXB
M?;@C9ENN.^1SBK.NP^'SX;FOK*=[F"]U>UF>XG "2-YB>8R# XVCYB!C@^AK
MTZB@#C=4N-(TWQ3IUI%;V]A]HM)FCNTCRK[F3='&@^5G; .2"<#H<USNBWL
M\*^ 8Y)@KPZAMD#\%<1RJ>OH2!]3BO5** ,_7XO.\/:C&$\PM:R +C.3M..*
MX&'5[6QT+P7J/VMXM*@M##=W-LBN()S%&%+Y5@.CJ3CC=BO3J0* ,  #TH \
MSU*V\/P6VB2VKF6UN?$2W!FN< 2!HVWLHP,1EL=@N?J*U_L>C6WQ06!;:RBC
M716R@C55#>;GITS@D_3-=M10!Y+:#3+?X>Z-.GV:.:+75.\8#*HNV[]0!'C_
M (#[5LW=T]EXAEFTZ\M]2M;K5(A=:7,/W\,N542Q$<D *K8/& >1SCT&DQSF
M@#'\7SPVWA'5);BR>^A6V?S+=&*F12,$9'('J1VS7(07]A<>*KV62\ANK>Y\
M/KB1(2L+;7<X7U !'))Y.,]AZ110!Y=I3:=;:;\/9HC;Q3!]LKJ5##,#*P8_
M[V <]\"JM]J=H/ASK.E:HZ+KL5\TES!(/WKL;@,LBCJ5V;0".,#%>MTF!Z4
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
M, \YW'L:ZKQ'I,FO:!>:5%=+:_:XS$TIB\S:IZX&1S^-7+.&2WM(H99%DD1
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
M "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH
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
MP#NP%;=P3GH>O:'3_$VJ2:YI5C<O:2?VC#.91!&Q2WDC .%DSB0<D''<=NE
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
MP*X+?,IVY# ]^]9NIZIXGNO MIJ\M]90)?+8L$@@;</,= X+%NAW \#ID>]
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
M!8&X.HS&&)EE"[7P3\V1TP.HS0!';^'M22P>.Z\175U>'8([IHD3R@K!L!%
M!S@9)SFH;KP7;7]IK*7-QMN-86-9Y;>(1A3']PA23SDY)).:N6OB))-=_L2]
MLY;.]:$SQ!F5TF0'!*L#U!Z@@&MF@#G+CPG+<:E]O;6KD2367V.ZQ''^^7<S
M9''R<L1QV]^:9:^#?LB:'Y>K7/F:-"T"2>6G[R)@H*D8X^XN#UZUTK$A20,D
M#@>M9?AW6CKVF->-:FV9;B6 QE]^"CE"<X'7% &=:>#I+#4;AK36[N+2[F9I
MY-."H4WL<L Y&Y5)ZJ/4U%=>"#(NLV]GJ\UI8ZSO>XMA$KA9'&&92>1GN/R(
MKJZ* *(L)X]%&GP7TB2K"(EN612XXQNP,#/^>:B_L=#X:_L1G0QFU^S%O+X*
M[=OW<^GO6G10!R\'@Z:&RT6U.L22#19=\#O""S@*5"MSR I(XP>E:-QH1E\2
MPZY#>RP2);?9I(@JE9$W;AUY'/IU'I6O5'6-5AT;3S=S*6S(D2(.KN[!5'YD
M<]A0!AOX&BET)]-?49A(M\U_;W4:!7@F+%LCJ",L>/0U/>^%)]3\.7FE:AK,
M]S-?*J371B12%!R J+@#OZGD^V-73;J_N#<)?Z<+-HI-J,DPE25< [@< CT(
M('3O4[W<*W/V0.&N3$95BSR5! S[<D#_ /50!B:EX6N+K5X=8L-:GTV_$(@N
M)(8E9)T!R,HV0""3@]LU-=>'99X9+9-1+6TUK]GFBN8A,'Y8F3J,.=Q]O;I4
M_AK6SXAT2/4C;&V+R2QF(OOQLD9.N!UVYK5H S7T&PE\-CP_*C/8BU%KM9OF
MV!=HY]>.OK52T\..DFGMJ%^U]_98/V7=$%.2NW<YS\S!21D8').,]-VLF]UY
M(M731[*W-Y?M%YSH&V)"F<!G;G&3P  2?3'- ":'H;Z+-J#F\\\7]TUTZF/;
ML=@ 0.>F%'7GWI;[0DGU>+6;2<VFH11&$R!=R2QYSL=>,@'D8((]:?:ZI</J
MO]FW>GO;R^09A*KAXG 8#"MP21D9R!VZYK3H R;?0\:J=7O;@75^L1AA;R]L
M<"GDA$R3R<9)))QC(%94NE3^%_ ^I6EM/=WC$2M&;:+$R&5B6*XSG:6+=,X'
M>NKHH X'P_;SF6.UTW6_M]G(/+N8_P"R!;;8]I&?,4+AAV!!)].I&G8>"9+%
MM&8ZY<RG1E>.W!AC ,;*%VG YX YZ\=CS75T4 <J?!3'09=(.J/Y<M]]M,GD
MC<'\SS<=<8W#\JN2^'+A]6O]2BU1X)[VT6UW1PC]T%R0RY/7+'K[5O44 <[9
M^$S::-%HR7Y2P2)XV2&+8\F]&4EF).3EBV?45%I_@Z6RN](N9-:N9WTJ![>-
M?*C56C(4!3@?[ R>I]JZ>B@#E6\#@^&[G05U6<6DMQYT8,:DQ#S?-V@]_F[G
M/''%7Y/#\B:X^LV%Z+6ZN(%AN@8M\<P7[K;<@AAD@')X/(-;=% '.+X/@MY-
M%-G=/"FD222(&0,9GD!#ECQUW,>,<G\*NZ-HC:1=ZE/]J\[^T;DW+J8]NQMH
M7 YZ84=:UJ* .>;PIY<^J"ROWMK75R7NX!&&(=AM9XVS\I8=<AN>>*EE\-*-
M5TF\M;D6\6D0O#;VXCRI1E52"<YZ*,?UK<HH S-?T5==T]+4W#VTD4\=Q%,@
M!*.C!E.#P1D=*KQ>'YX=?FUD:BSSRV:VF)(00 I+!N".=S$^GL*VZ* ./C\
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
M3[3=910W<5NL3E3NVX R%/8$C.!BG0^%] MRIAT6Q0K+YRE8%&'Y^8<<'DT
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
MJ2>]34 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%%
M!1110 4444 %%%% !1110 5G:]>0V.BW,\VJ)I:A"!=N%/E$]#AN"?;O6C7.
M^/XY)O NKP0PR32RVS)''%&79F/0 #F@"]<^(M'T^86UWJ<"3B'SBC-\Q3@;
ML#U)''?M4T>M:;+IL.I17D<EK/CRI$.?,)X 4#DG/&!S7.>8&^(&E71M[CR5
MT>1#*;=]JN70A2<<'"MP:Y_36OM+TW1=4.FWLMKINJ7IN;=;9Q(B2L^R0(0"
M0 W;LQH ]"BUS2YK![Z.]B-O'(8G8G!1P<;"#R&R0-N,Y(J/_A(M'6TN;J2_
MBBBM#BX\W*-$>H#*V"">V1S7-:T'NK?3=:TS2)X[.WU9+NZB%L4EN%V%3,8\
M;B02.",G;GTJIXDLYM0N/$FK6,$[6L^@FR4+"^;F<ER-JXR< @9Q_%CL: .I
M'C#PXS%/[9M PD$9!D .XC('/M^56-.\1:/JUM/<V&HP316Q(F8-CR\#/S9Z
M#'>N5\1R0)X?\(2- XB35+0-&8&##".,;,9XQTQ53Q)H=_K-QXDU'18&V3V5
MM$%*E/MDD<F]\9Z_)A,]#DCUH [>VUW3+J62**\021Q^<RR H?+_ +XW 97_
M &AQ5:#Q?X=N0QAUBU<+"9B0_&P-M)S_ +V!^(]:RKAAKGBG0-7LHKB.'3XK
MB2Z>6!XRJN@41D$<MNYQSC;[C.1I+3V/PH55T:2>XAN&\RWGLW+*#<%M_ED
MOM4AACT'I0!UUSXHTJVTR_OS.S)IRDW$8C82)QD H1D9'J,=^E/M_$%C+I=M
M?22%!<(&6,(S,3C) 4#)QZ@5QK6]U=2^-4@M=1G.I:0@MI;BV9#.PBE4C[H
M.6 VX!]N]/GO)+:[T+6+C3]6DTS^SC9R_9XYDEMY,H=S(N&VG;CIU ]L@':+
MK>F/I\-_'>1R6UP0(7C._P TGLH')/!X'/!]*R?".LW&KWFNB6[^TPVM_P"5
M ?+";5\M25(P#D$D<\UB20)HFJ>']5M-(O(-%B>Z$L02222%I0-LK)RPR0WN
M W."2*U?!SL^L^)9#;7,,=Q?B6)IK=XPZ^4@R-P'<'CK0 7/B,Z3XVO;74]1
M6/34TZ.XC1D VNSNIQ@;CPF?SK>?5[!+.&\^TJ\-PH:%HP7,H(S\H7);CGCM
M7/%@OQ*O[F2WG\D:/'")OL[E2PD=F4-C!.".!7,Z1]KTG1O"M_>Z=JDEG;64
MUG=1VZ2I-;.S(0Q5<,5^3'IT]J .^;Q5H*V]M<-JUJ([K<86\P?/M!+?E@Y]
M,4K^)M&2QCOOMZ-;2Q^:LB!F C_OG ^5?<X%<I<VMG;W?AR2QT>\M[4ZM)=.
M'AED<!HF'F.#DIER.#]>.<3:JRZ;XPO_ .U=/U.YT_4[>)();$3,JE0P:)UC
M/?=D9&.30!TCZG:2:W:11:U"-]L\OV1=K><AP1)NZ@ 9]CGVIL7B[P]--!%%
MJ]L[W,IBBVOD.X)&,].H('KCBL&.V2Q\7>&T@TZ>UM;;3KB/8$>18-Q0HC/R
M,X4]^U8HCE'@6:$6%X)_[?\ /\O[))O*?:@^[&W.-G.: .X\6W=WI_A/5+ZQ
MG\BXMK62:-]@;!52>AX[5'H_BG2-05+1-3AGOH[=9)HD.6Z?,0!UP>N.E/\
M%EO-?^#-7M[2)I9I[&58HU'S,2AP /6L.*V&L:EX5FLK>6/^RE9[B5X&B\M3
M%L\OY@.2Q''8+SVR ='#XATFXTHZI#>+)9!MOGJI*YSCT]>/K5B_U*RTJQ>^
MO[F.VMT&6DE.T#_Z_M7*VFEW5IXONM%C0'1Y95U8$'_5ODYCQV!E"R#MPPK2
M\?QR3>!=7@AAEFEFMV2..*,NS,>@  S0!H1>(M(GCF>"_BE$$ODN(\L=^,[0
M!R3CL,UF>(/&%G8^%+G5].G2X96\J,A20LFX*0PZ@C.2#CI5'Q*\D*Z!K$%C
M>W&G6K.+F&T5TFC5TVJX48;Y<8(]":H>(+:T;P)JKZ3I-_']ONH90KQ2O-<,
M)(RSE#EAPO?&=OTR =);:@NF":YO];DO+6<;[=)+7$L:KP^0B@E<X.2HQW)R
M*GN/%?A^TCBDFU>U59H3/&1(#NC'\0QVK URY-AXPAU2ZM-3N-+O+%8%EL1-
MNAE5V;#*F&PP8<XZBH(K&VL?$WA*.STBYM+.VAO0(S$[B#S"NS<W.TM\QP3Q
MDB@#JKCQ'H]K$DT]_&L3HC^9R456^ZS,!A0>Q.,TR\\4:%I\TT-UJEO');H'
ME3=EE!Z9 ^A/T&:Y6Y6&T\0:WIFN:3JMY;ZI,);9[02M%,AC1#&P0@*1M_BP
M,=2!5RRC6T\=W;O9310)HD,"L(7= RLY9 ^/FP"/K0!U$FK6$=I!=?:5>*Y
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
M\P>8!VP*ZNTOX[R>ZA2*=#:R^6QEB*AS@'*D_>'/44 6J*** "BBB@ HHHH
M**** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ H
MHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BB
MB@ HHHH RM;T)=;>P9[R:W^PW2W48C"G<Z@@9R#QR:U*6B@ HHHH **** "B
MBB@ HHHH **** "BBB@ IKKN1EW%<C&1U%.HH S=&T9-(A<&\NKZ>3'F7-VX
M:1@.@R   ,G@#N3U-:5%% !1110 4444 %%%% !1110!7N[**]$:SY:-'#F/
M^%B#D9]<$9Q3VMHGN4N&4M)&"$))PN>I Z9]^M2T4 %%%% !1110 4444 %%
M%% !65HNA#19M0D6\FN/M]RUU() HVN0 <8 XPHX]JU:* ,F#0A!XEN=<^V3
M-)<PK T)"[ JDE<<9SECW[UK444 %%%% !1110 4444 9,NA++XGAUW[9,LD
M-NUNL("["C$,>V<Y []JUJ** "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 **** "BBD9@J
MEF(  R2>U "T5AP>,=#NA*]M<37$$)*R7,-K+)"I'7]X%*\=SG K4L;VVU*S
MBO+.436\PW1R+T8>HH L4444 %%%% !1110 4456O]0M-+LY+R]G6&"/&YV]
MS@  <DDD  <F@"S16;;:]I]S?)8J\T=U(AD2&>WDB9E&,D;@,CD?G5])8Y&=
M4=6:-MK@'.TX!P?3@@_B* 'T44E "T5FZ1K^EZ[]I_LVY\XVDIBG!C9"CCJ"
M& K2H **** "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 *XGXO7-W;?#J_:T++O:..5EZB,L ?P/ _&NVJ&ZM;>^M9;6ZA2
M:"92DD;C(8'J#0!D^"HK>'P3HJ6H41?88F&WN2H)/U))S[UB:GJEQ9^.M$\&
M:8YL+.6VDN9GA52VT;]J+N! &5YXZ8Z5K:;X/AT>V^Q:=K&J6]@"=MH)494!
MZA6*%U'T:K%[X6T^[NM/O(FEL[O3E*6UQ 1N5",%3N#!ACU!H \ZO/B!X@?X
M976JPW@AU'3]3^QO.L*$3*,<E2" <$=,=*U7U7Q(OCS4?#O]OR>3_9?VQ91;
M1;HG&.$XP!D_Q;CCOGFM^Y^'>AW/A=/#N;F*R$WG.8Y!OE?^\S$')_+H*G;P
M79-KLNMF^OOMLMI]D=]R8,>,=-G7C.?7VXH XR;QMX@;X*P>)([[RM32;RWF
M6)")!YA7E2".F.F.15U=5\2'QZWAXZ_(8;K2A=^9]FB#0O\ ['& ./XMW'OS
M6Z?ASHY\)#PO]IOO[.$WFX\Q=^<YQG;TSS5G_A"[+^W5UH7U\+U;3[('W)CR
M\8Z;.O?/K[<4 <18?$'7+GP/X>9YP-0U74_L4EV(URJ!\%@,;=V"!TQUXK2F
M\6ZO;-XUTD7CM-HEO]HL[LQH7 *;MK#;M.#QTSC-;UK\.]$M/#\6BH]TT%O<
MBZMY&=?,@E!R&4[?Y@]:L?\ "%:8;+5K=YKEY=9_X_;HLOFR#&-O"[0,9& .
M] ''Z-XJ\1#7?!WVW53=0Z[:NUQ"8(T52%R"N!G/3//KP.@Z[QUH)\2>'_[,
MBOA97;S*]I(2<>:N6 ..>@/TQGM44'P_TNWN=&N$N[XOHJ%+0%TP%)Y!^7GC
MCZ"MG5]&M]:@@BN)9XO(G6>-X)-C!U!P<_C0!POAKQ-X@C\4VOAGQGIPCU%X
MY/L.HP@?/\I+?[)R!^8&16;X-UN_T;P%XH\227MQ>307TX$4VTH\F(P'8A=V
M>1QG&.PKT>+P_ -6AU2[N;B^N[:-H[=Y]@$(;&[:$51DX&2<FJ>G>"=&TRVU
M*TB6:2SU)W>:UDDS&"^ VT=N@]2,<8H Y>S\7ZMI>J>&$O[N2_@US33<SJT:
M Q2;-^4V@<=L'/K5SP=J?B7Q19Z5XBCU. 6LT\XOK%T&U$#$((R%SD8R23SG
M\*W-,\%Z9IM]9WAEN;N2PMOLUG]H92+>/IA<*,G'&3DXJ/1/ FE^'KZ:?3KF
M_BMY9/-^Q?:/]'5_4+C/YDC@>@H \[\,>(8]+U37-+%]-IT^I^(7C2\6%62(
M!CD$L"N6^Z!VSGH*]GC4I&JM(TA P7;&6]S@ ?D*Y%_AEH<NFZC82S7DD6I7
M(NIBSIN$H).Y3M^7.2/I746-K]ALH;7[1-<>4H42SD%V Z9( R?>@"Q1110
M4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1
M110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%
M% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110
M4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1
M110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%
M% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110
M4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1
M110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%
M% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
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
M110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%
M% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110
M4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1
M110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%
M% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110
M4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !5
M#6M6AT+2+C4[B*66"V0O((@I8*.IP2*OUROQ-E$?P^U0%MHE$<6?]^15_K0!
MK7&N"WL[*X_LZ\D>]=4C@0(9 2">06QC )//%:8.0"01['M6)+<C3]-O?$=[
M"X%M:N\4&,-%"HW8]F; )].!VR<6>_U:VLO#MW+=N^JZK>PB2W0_NEB8;I$"
M>B)GYNN1UYQ0!VAD02",NN\@L%SR0,9./Q'YU#97L-_ 9H!(%$C1GS(V0Y5B
MIX(!QD=:XH7*P-XO\4/<W&VV+VULOG$X$2\A1T&92P'TJS<3:S#<^%-&COYG
MOI(VFOY,@@JB ,6]O,9>.^,4 =I17 0ZIK0\,SWD%_<307&M&,73*KRPV8?R
MV90!R25... W3BMK1(=4E\1ZA.;J^CT>((MK#<#_ %K[3YC?.OF;0=N.0,YZ
MB@#9U;4HM'TFYU*>.22&UC:601XW;0,DC) Z>]4;#Q1:7E]:V,MK=64][ ;B
MV6Y51YR  G!5B,@$9!P?:J'CXM=Z3::%$P$FLWD=L>,XC!WR''<;4(_&JV@1
M_P!I>(M2U'6IE_M#1)9+2*.-=D4,+ ,)%4DG+*1DDGI@4 =5!>PW-S<V\8DW
MVKA)-T;*,E0PP2,-P>U3DX!(!..P[UPD&IZU_P (1I^HK=3G^T=05YYB-\EO
M:.YV[1CKMV#H<;B:?=7^JZ3%XBUDW-\FF6D(73K>< F:4K@GYU\S&\J!R._!
M&* .GT+64UW3C?16\L$?G21*)"I+;&*D\$C&0>]: ="[('4NH!90>1GI7$>'
MH+[2M;TC1VO)(X++2#+=VY(V DJJ9_VB5D8G/8XXJ#2(]2/@F]U?2YIIM2U2
M=KU(9)R7> 2#"*3T)A"@'L6'3B@#T"BLCPU<17VD)J%M=SW%M>GSH1.<O$I4
M#8<^A!_^OUK7H R=;\0PZ'-9136=U.;Z<6\)A"8,A!(4[F&. >>E36VJ23WX
MLYM-O+1VB:17F\LJP4J",H[<_,.M<_\ $ 2--X86)U20ZY#M9EW '9)VR,UM
M06U\E[<KJ6HK-#=1I';I$IA*L-Y;&&)R1@Y![>U &M17">%I[G_A(Y-&U'5+
MJ<67FRV$S3./M\9?!+<X8QD;<=#G/2K&G2S>(;/4=0?6+BPN;'4Y8SY<AV0Q
MQ/C8T>=K;E&22"?F]@* .SHK@EFU?Q!;:E>VFI)87-AJ,L?F-=2!(4B?&UX0
M-K H,DGGYLYX HELK_5M6\66W_"0:E;+821-:^3/L$;&!7YQU7)/'3KG/& #
MNFFC69(6=1(X+*N>2!C)_#(_.GUYWH4DNM>*/#6IW[3K=7.@O-)MF= 6#Q<[
M00 #G)'0]\XKK/%%RMMI"@WTMHTUQ#$I@7=)*6<?NUY&"W*YR,9SVH V**X.
MWN-<?_A*M-LYRD]K/;&TCN;IGV^8B,T?FGD%N0.>"W![UL>$=3COSJ$317]K
M=P2K]HLKZ0R-;DJ,;6).Y#@D'/K0!TE%<C?17-Y\13IK:G?16<NCM*88)S&
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
MSI.DJY9@IX4J?F&T#@$=*M^'+&&/QWXH=7N"8Y;; :XD8',(SD%L'VSG';%
M'1:KJUGHUD;N]D*(6"(JJ6:1R<*JJ.2Q/0"JDNOM:B!KS2;^V2XFCA5V$; ,
M[!5W;'.WD]3Q^/%8?C8M%XM\'7$YQ8)?2+*3]T2LF(L_CNQ783F$1YGV;-R_
M?Z;LC;^.<8]Z )**\_?4+W4_"7B'7EU"YM;_ $ZXNO)5)6"0B'.U&3[K9 YW
M GYOIB>S^VZ[XGN+:ZU'4+6&XT:VN3!!.8_)D<N#M(Y&,#\N<T =S17FNE7V
MIOH'@[79=6O9+J]NXK:X1I?W4D;!P<IT)^4'=USWJ2__ +0DTWQK/_;6I(^E
M3/+:;+@KL*P+(!QU7)(V]/;/- 'HU%<.UU?:9XDT6X6]O+L:II]Q)<6\DNY&
M=$1U*+T0\D<"J9U34!X$TGQ;;W]Q+?RS0--%YK&*822!&B$>=HQNP"!D;>O7
M(!Z)17GVI)?3WGC4?VSJ,2Z=#'-:K%<%!&WDE^W;/;H>^>,=GHEU+>Z%I]W,
M099[6.1R!C+,H)_G0!FW'B^WAL+O4H=-O[JPM#('N8%0J=A(;:"P8@$$9QCC
MTYK=,T:SK 742NI=4SR0" 3^&X?G7GM_I^J>%[.\U[PS=1ZCH<HDN;O2;KHJ
MG)D,3=N_RGWZ]*NHT%_\0[35(Q=$3:!]J2,3NN?WB$#:#CIU'0GJ#0!W%%><
MMJVH-\/+'QA;WUQ)J+2QR21"5C%*'F"-#Y>=H S@$#.1USFM2WDF\1G7RVL7
M&FW.G7[0PM%(56WC0*0S)D*X;YB=V>#[4 ;]GKD=YK^H:.+::.6PCB=G?;M<
M/NQMP3_=[XK3KS?5]5.G^.=85VEM[.\@L8;B_C.#:*WFX;U&3@;NBYR<]#Z'
M;PI;P)$C.RJ, R2%V/U)))H D8E5)"EB!T'4UG:#K46OZ;]NA@E@7S9(C'+C
M<"CE3G!(ZCUKFM.U*\M?$MM::U]LC>XNIC9WL-PTEI>(0Y6,KG",%Q@8YV=>
M:Q;/[38>&;75K;4+N.1/$#Q>2DI$3(]VRLK*.&R">3DCMB@#U&LI-=23Q!=Z
M,MG/Y]K;+<;B5Q(K$@!>?53UQ7*>)=2NH8=6U'3]1NI7L=0MX]ZRF.&W^:)6
MAV XE/SDDD8^;KE<5L6W_)4]0_[ \'_HV2@#6T#68?$.BP:K!#)#'/NVI+C<
M-K%><$CM6E7+_#;_ )$/3OK-_P"C7KJ* "BBB@ HHHH **** "BBB@ HHHH
M**** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ***P?&FJWVB>
M&+G4=/:)9H6C_P!:A8$,ZJ<<C!Y]_I0!O455MM2L+V:>&UO;>>6V;;,D4JLT
M1]& /'3O3(-8TNY\WR-2M)?)7?)LG5MB^IP>![T 7:*IKJ^F-9B\74;4VS-M
M$PF786Z8W9QFEFU33K>[2TGO[:*XD("0O,H=B>@ )R: +=%(3@9/2JMMJNG7
MK2+:W]M.T0W.(IE8J/4X/ H MU!=6=O>HB7,2RI'(LBJW0,IRI_ X/X5!%KF
MD3300Q:I9R2W&[R46X4M)M)#;1GG!!!QZ&GS:IIUM=1VD]_;17$A 2)YE5V)
MZ  G)H L2Q1SPO#,BR1R*5=&&0P/!!'I5.ST73[&6.6" ^9%'Y4;R2-(8T_N
MJ6)VC@<#T'I5FYNK>R@:>[N(K>%?O22N%4?4FF?VC8XMS]LM\77$!\U?WO\
MN\_-^% %(^%]%.FW.G?8O]&NI/,E3S'RS;]_!SD#<2< @9)]:MQ:990W@O([
M=5G6 0!QGB,'.W'3KS0-4TXWOV(7]L;K)'D"9=^1U^7.:JZ?XCTS4]3O=/M;
MJ*2:R8)( XR3C)P.X&1D^M &3J'A>WCAM-*M]+>;1(U9F@MY]DJS @H^]F!P
M!GHV1QU'30\.:;?Z<;L7%U=R6CLIMH;R832Q8'S9?G()Q@9.,=><#0M-4T^_
MDDBL[^VN7BP76&57*YZ9 /%,OKAHKZQB34+:W\R4AH90"\XVGY4Y'(.#T/ H
M ;=Z)I]]J5KJ-Q"[W5H28)!,X\O(P< ''(X/'-$FA:;+>W5XUN?/O(?)N&61
ME$J8( 8 X. 3@]12R:[H\3!9-5LD8R^2 UP@)DX^3K][D<=>15UW2-&>1@B*
M,EF. !0!S&J>&XV2STQ--DGT6"/Y8;:?9+',I&Q][,I("Y PV<]<\8GTGP_+
MY%Q;ZI+=75D9XY;6"]F\V2(I@_,X/(W $ ENG7G U8=:TJXW^1J=I+Y<?FOL
MG4[4_O'!X'OTIT&JZ==6\MS;W]M+#"2))$F5E0CKD@X'XT ,;1=.>_N+]K8-
M<7,(AE<L?F09P,9P/O'D<\U!!X;TJUCM8[>"2$6D9BA,=Q(K*I"@@D-D\(HY
MS]T5876-+:%IEU*T,2N(V<3KM#G&%)SUY''O3[/4]/U!YDLKZVNF@;;*L,JN
M8SZ-@\'ZT 1Q:-I\$EF\-L(S8QM';A6("*V,C&<'H.M7JJ6VJ:=>SO;VM_;3
MS1C+QQ3*S*/4@'BD35],DEEB34;5I(5+RHLRDHHZDC/ % $6J:#INLRV\M_
M\KVK^9"RS.GEM_>&TCGWIJ^'].69IBMS)*8FBWRW<KLJMC(4LQVYP.1@TNA:
M]I_B&P^V:?.DL>]EP&!( 8J"1U&=N1GM5B[U33[!U2\O[:V9_NB:54)YQQD^
MM %5_#FE2-I[-;-NTP;;1A,X,0P!P0>> !SVJ)_"6@R:T=9;3D^VL0S.&8*[
M#HQ3.TD=B1FH/$?B6#2+W3=.^V6]O-?S%6DE=?W,81F+X)[E=HSQD]\8K3TS
M[=%IP_M2XMYIE+$S0J41DR=I()X.W&><9H IR^$= GUHZQ)IL9O6(+2!F <C
MH64':Q'J0:RM/\/277B?Q%=:IIUQ%;:A)%Y1%UA946)4(94?G)!X8="?7%='
M:ZKIUZLK6E_;7 A_UIBF5MG&><'CBEL]2L-0,@LKVWN3'C?Y,JOMSR,X/&:
M(KG0],N[NTNYK1#-9 B!@2NP''& <$<#@\<4_5-)L=:LC9ZC;B> L&V[BI#
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
M%$BY:WLPHSU*B3=CZ;AGTS46O+:-\1_#1E6(LL%WN+ <$B/9G\0V/QQ77T4
M>3WJ6 \!>+3 D E_M>0P[%&['FJ5V]\?>(Q[U=\8:A:W:^*[.!/)EDTZ-U>.
M-I&OUV$JRGD!%R02!G.3D5Z710!Q=E>PCQ_9SL9!'>:''' YC;]XPE)(Z>A!
M^G/2L&WO9++P9IQV76S2=:F?4HX8B7BC,LQ#8(YP61L<]C7J5% 'F/B1="NO
M!VNZGICS7(OY;5GN)00LSK(H^12!R%') _4&MWQ';VD-WIEQHVJVFCWOES2V
MTC1K]EN%/E[U?&.N$P0<X4XZ5V-% &3X7N)+OPSI\\UB+%WA&;=<X3L,9[=Q
M[&L#3-/N++Q-?>'! W]EO<+JD4F/E56)+1>W[U0V/[I-=K10!P,<\%NWC'3-
M> ^T7D\DL"R#FY@:)5C6/^\1@C Y!/O3=)2[TCQ'X676#()SH;VS.5+9FW1'
M82,\X!_(FO0** /-?#<VG:A:Z9HVKM?MKNEW8D>TV%=LH8YEW!<%""6))P<X
MY)%9]_J,*_#S7=&U+(UN.]DDFA9"7E)G#+(HQRNW: 1QP*]:HH HZFIO=!O%
M@4N9K9P@Q@ME3C@UP&E:I97(^'T43-(UG&T%P!$Q\IQ:E"C<==W&*]-I#G!P
M0#VS0!Y/]CTJ^\%>(M/BA@?5I-5N5M8U $WF><?+*]\#U' &[WKHK&>'3O$G
MB*T\22(!>1PM!),/EN(1'M9%]2&W94<_-G'-;_AS0Y=!M;F"2\6Z\^ZDN=PB
MV8+L68=3QD\5L4 >9:-9M8WW@2UUE4^UPV=T'$P!9,[/*5L]" ,#W!Q71> 9
M(#;:U# R;$UBY*(G0(7RI ]#SCM75T4 <!,FCIXC\8Q:Q!"SW0A\B.6,%[A/
MLZJ1&",M\PQ\O>DFT[4?#WA;PYKLD+S:CHL"17D2<O) X"NGN5^4CW4^M>@5
ME7FD7-]JT4\NIRC3XPC&P6)-KR*VX,7QNQG'R]/E'N* )M&LY++3(TN,?:92
M9K@CIYCG<V/8$X'L!5^BB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH
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
M+/;JX62*8#!9=Q (8=02"".,T 9[:K<^&_&<^C1"6[LKG3FO;:!Y,M%(A(9
MS'A2.>3P>GI6?>:S=:KX?\(:U=6\\4TVI0,4B?(E#(YP%!P1D#&>>*Z"'0+B
M^\076O:B$AF>S-G:0*V[R8R269CT+$GMP .IS61!H.OQ>'?#.G26,)DT>\BD
ME,=P#NCC5ER,@<G=D#VY- &Y;^+K1K?4I+VUGL)=,E2.>"8H6RX!CP58J=VX
M <]:JR^/;"W.I1S6DYGT^U^V/'#)')YD/0LI#8X(P0>?3-4-1\+ZMJ5YXE>-
M4M6OI+6>QF=PP$D 7 <#H"5]^/?BK-[:^)=:\+ZG:7>E6=E<7%G);)%#<"3>
M[#&\M@;5'IR>?:@#>T?5GU:-Y3IUU:1@*T3SA0)E89RN"2/H<&J/BG7;S13I
M:6EF9S?7\=NS!E&T')( )ZD*1Z#\JU-*2:+2;6*XB\J:.)4=-P;! QU'7I69
MXLTN^U*#3)=/CCEEL-1BNC'))L#JH8$ X.#\V?PH PH]4FTCQGXFN$T^]O=M
MG:3-#'(#Y8Q(6Y9@!] >>PZUT)\2Q30V3V%G<7AOK0WD84! (\*>6)P"=PP/
MY5FKI>K+KOB&]>R4IJ-E###LF7ET5P<YQ@$OQ[#IVJG8:'XAMK;0K2>SM[FS
ML].%M/;27&$69< 2D '>,# !Z9S0!J+XVLYET=K6PO;@:S$\EL45!]U=Q4Y;
M@_I[UHZ#K<>NV<TRV\UM+;SO;SP38W1R+U&02#U!R#WKE=$\.:[IR^$XKBSA
M*Z,LZ7#1S@Y#KM4C('/<CTQR3P-WPMI]_I\NLF]MA$MYJ,EU"1(&RC!0 <=#
M\OZ]: )?%][8Z?X>FGU*SN+JT\R,2) ^U@2Z[23N!QNV]*9>^)S;:U/H\&D7
MMW=Q6HN56/RPLB%BO!+ #D'K@^@-)XVTR]UGPO<:=I\2R3S/$1N<*H"R*QR3
M[+4:V>I+XXEUC["3:/IB6P_>IOWAV?IGI\V,YZ^W- &KHVJVVN:/:ZI:;O(N
MHPZAQAAZ@^X/%-U#5397=M9PV<UU<7*NR*F H" 9+,>!U 'KGZU1\%:;>Z/X
M4LM-U")8[BV#*P1PRGYB<@_C3->LM7N=9T^2V@AO--1)%N+66;RU+G&QVX.X
M#!X]\X.. #2T35[?7M'M]3M5=8KA20L@PRD$@@^X((J_6!X+TN_T7PU!INH1
MPI) \@4Q/N#*79@>@QUZ5OT %%%% !1110 4444 %%%% !1110 4444 %%%%
M !1110 4444 %%%% !1110 4444 %%%% !1110 445D^(=7?2+.W,*H9[R[B
MM(3)]U6D;&XXZ@#)QWQCC- &M17,:MK&L>&M/U*\OC;7<*M"EBX!1F=V"$2
M<8#$'([>].FU75-,\36&D74\-Q'JL,OD3"$J89HU#$$!N5(/'.>.IH Z6BN"
MTSQ1X@ETOP[J]W)9-!J=X+2>WCA8$;BX#ARW&"HXQT[T^UUJ_P!)/B[4KNY%
MVMG>B.*(IM&3'$$&<\+EL?F<T =U17*RZAXMLI;UAI?VRW6Q>6!B(T87"](]
MJR,64]N_;)K+O_$LVI^"O$%[IFM(QMK/(!@\NXMY,-O5U/3H #CUZXS0!WU%
M<JNJ:DL]IHEJQ>X&GBYDFCB3(!.U %9P.H.3D]!TSD-L]>UN>?2=&U"UBT_5
M;J*::Z((D5(XR%!0!B,L6!Y)QSUH Z'3]5L=4%P;&Y6<6TQ@E*YPK@ D>_##
MI5NN3\"+.DGB1;F1))1K<H9T7:&_=1<XR<5K>(=6DTFSMS!&)+B[NH[:('&
MS'KR1G !XR,G R* +FHZE9Z38RWU_<+;V\0R\C=!5B-UEC61#E7 (/J#7#^(
MI]>;PEXJM]5M,6B6+-:7)V*SY4[E959N0>AXR#6@^KZC/<'2-)0B6UL(9GD"
M(^6?<%&&=>/D.<9ZCIW .JHKE[+6M9U"]L]'N8(M+U(Z>;N\'$NP[]BA,'&"
M03U.!@=3D4K^;Q"=;\)07MW;VUQ-+<?:([="\3.L+X;D@XP>G8GO@4 =;!?V
MMS=W-K#*&FM&59DP1L++N'UX/:K%<=>>+[S2%\537J0S)H[PK;+&I3=YB*5#
M$D_Q. 3[=*N7.JZKI'B#2]/O)H+F'55DC6182I@F5=PXW<H0#QU&.M '2T5P
M5EXH\0OHVD:S<RV+0W.I_89X(X&!8&=H@X8MQC XP>G7GCO: "BN%OO$/B1+
M'Q/<PW-@G]A3,44VS'SD$2R;3\_!P3SS^&*T(=<U6#Q%ID-]);/9:M:2SI''
M$5:V,81L;B3O!#^@Y'X4 =517(Z;K?B34TTC5+2P$MA?LK3Q-Y:^3"PRKJWF
M9)'&1CGG %-MM>\1:I#9ZII5@)[.:Z*/"WEJ/(WE2X<OG>,9QC';'<@'5W-Q
M%:6LMS.^R&%#)(V,[5 R3Q[4L$\=S;QW$+;XI4#HV,9!&0:XC2]0UFWTCQAJ
M(OHIY[*]N?+$T!VYCC0@<,,# QC\>:N2:[K<M_X:M;:6T0:O922RO)"S%'6-
M&R,,,CY^G'3K0!U]%<3#XMU.+0]UT('NHM:_LJ:Z5"L:KYFWS2N>.,#&<9([
M5K:'J6IW7B#6;"YEAEM-.=(XI5A*O(60/@MNVY7." HZ@\=* .@J*&XBN%9H
M7#JK%2PZ9'7![^GUR.U87CW4KC2O!M]<6DACG<)!'(.J&1U3</<;L_A5C4Y9
M=(M].M+%X+6UW^2S,"SJH0[5C0?>8D 8YXR<4 ;5%<1'XPU!?"\>I7,+;8M1
MEM+VX@MV8PQ(SKYOE\D<JH/7&2<=JZ70+[^TM'BN_MMO?+(SE)[<81UWG;QD
MX.W (]<T :55++5;'49KF*SN5F>TD\N8+GY&QG&?H>U4-8U>6WUC2]&M2B7&
MHF5C*Z[O+CC4%B!W8DJ!VY)YQ@\OIVJ7>B7_ (F9RES>3ZQ;6T3!-JEGCC52
M1D= <XR,D=L\ 'H58\OBS0X+Z&REOPLUQ)Y<(,;[96W;<*V,-AN#@\=ZK64W
MB5KG4;>\A$5L(E>TO'6/=N_B1D5SG'8\5S&@:CJ>D^ O"=Q%-;2+=75M;,)(
M#N6.1]K8;=U]\4 >D45QM[K'B)]3\26EG=6,*:5!%/"SVS,6#([;3\_^SC=^
ME31>);_5C86UA"8I[G2X]0D9%1RGF<* &91C(;/X=,YH ZRJ>GZK8ZJ+AK"Y
M6<6TQ@E*YPK@ D>_##I6!9Z]K=Q<:5HU_:Q:=JMS!+/=D$2+&B,%!3!(RQ8'
MDG SUIO@)9T;Q*MS(DDHUR8,Z+M#?NXN<9.* .EOK^UTVU-S>2B*$,JEB">6
M8*.GN0*L5A>,=5OM$T$W]BT(=;B&-Q*A;*O(J'&",'YL]ZI7>I:_/XLO]%L;
MJRMXXK".YBE>W9V4LS+@C<,_=Z\?0T =5163X6U>37O"^G:K-&L<MU KNJ]
MW?'MFH=1U><^);/0+-UAEGMI+J69EW%44A0%'3)+=3T /'/ !N45PT_B_5K>
MVNH)!;_;=.U:"RF81G9-%*R[7 S\K;6Z9/(J]?Z]JEMJ^OV<+VQ6PTU+RW,D
M1.&._*MAAD?)[=: .KJIJ.J6.DVWVG4;J.U@!P9)3M4'W/:L_P ,3ZQ?:;!J
M&IW%J\=W;0RQ10PE3&2N6R23NSD=ACFLOXJ_\DVU;Z1?^C4H Z&WUO2[NZ%K
M!?P/<,NX0[P'(]0IY(J]7 ^,[J[.J^')-6LET^PM]2CE-]%+YI63D+&1@%5;
MH6Y'%:S>(+S3?$.K6&JRQ"".S^V6#1Q$-(@R'4\G+*=HP.NX4 =152VU2QO+
MZZLK:Y66XLRHN$7/[LMG&?R-9A\2V>CQ6=GX@OX8M3EA5Y%CB;:221QC/&01
MU[5FVTT]MXL\93VJQ-/':VK1B9]B%A')C<>P]30!V%%<A8Z[JUYK-UI,%U!,
M[:8MW;W+6S(HDW%2,9&]#P01^9JG;>,[YX_#%S-+"D6H.8-1C\D[H90=G!S\
MH\SY><]: .[J)[F&.>.!Y LDH.Q3QNQU ]3WQ7+ZEXCO]-T^/4K@G^SIKUT:
MY@MB[6UN P5R 3D%@/FQC:1QFDUV[EO/AO=ZI'?6]S/;Q/=VUW;#"DQL60CD
MXX4 C/J* .NHJOI]U]NTZVO NW[1"DFWTW ''ZTZ[6X>TE6TD2.X*GRVD7<H
M;MD9&10!-5._U6QTQK9;VY6%KJ98(0<DN['  Q]:X^#QIJ!MO#=S<20(MY.U
MMJ<?DG,,@;9D'/RCS"J\YX(-.\47%[=V&FW!DB=&\16PM!L*@(LFT%CDYR03
MD=L4 =U17&MXHU/26\0P:BUO>2:9]F-O)%$8@_GG:JL"QQAN^>E3S:AXJLVU
M%WM8S:1V#3PW,Z(-DR\F,HDA)4CD'C'?- '5T5QVF:_K;7_AIKZ6TEM]<M2S
M1QPE6A<1"3=NW'=GD8P,<5V- !17'6_B74UUS2+:XEMI5O[B>">.",F.$JKL
MNV7HQPN&'/.>G2NQH **XB]\4:M)X1D\46$UO' ;@)#;R0EMT9F$6XMD?-_%
MZ#@8/6M'^VM2.M>([ 20A=.M89[9O*.07#DAN>1\@]* .FHKD=+\37NLOHFG
MQO%;W5]I"ZE<RA,A0=H"H">[,>N< >^12N/%VM1V$T2K:"^L=9BT^<M&VR9'
M9=KK\WR$AAD?-CF@#NZ*YA-1URP\3:5I%_=VERM]%=2.\5N8]OEE=N,L>S\_
M2LMO%>N?8(I$:S,@\1'2WW0L T8EV CYN#QSUZ]J .[HKC!J?B=]3US25O[
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
M+:5"\*((QB17"AMWOA1TK<JO;2W<D]RMQ;+#''(! ZR[C*N =Q&/EYR,<]*
M,+1_!W]BS"*#6;UM+CD\V'3GV;(FSD#=C=M!Y"YQZYHL/!HTV^E^RZQ>IIDL
MQG.F_(8PY.X@-C<%)YV@@'OP<5TM% '/?\(FB1:W!%J-PD&LF1I(BJD1-(H5
MV4XSD@<9.!Z4Y/"Y2\T6Y_M"0MHT#01#RQB16"J=WOA1TQWK?HH X37-%;1=
M,>W%[J!@U'5#=W%S;VHE^S$Y8[D"MN0L%&"#CJ3V.GX4^WK.R+J<FH:;Y1P\
MNG"T*/D8"X5=P(W9XX('/6KFD:_=ZRUK=VVFJVE7:NR70G&]-I(4LA X;'&"
M<=ZW* ,OQ+HR^(?#UYI32>6;B/Y'_N."&5OP8 U3NM)EU]M+U%KBXTS4-.9L
MA%5@"R[77# @CT:N@IKE@C%%#,!P"<9/UH Y^Q\*2Z7&5LM8N5/VV2[ E174
ME]VY"  2,MGKG('2M'1=&M]$M)+>WY\Z>2XD(4*"[G)P!T'8#V[]:I:)K]YK
MF@66J6^FHK7%PT<L37'^J19&0L#M^8_+G''7K6]0!C:[X>369[&\BNY;*_T^
M1GMKF(!BNX892IX*D=1[5GOX$MKF#5HKW4KN<ZI+',[C8ABD0*%="HX(VCV_
MKU-% &-IVB7EG:RK=:W<ZA=/'Y:7$\:#RU]E4 9]2<DX'IBJ*>"UCT#2]&74
MI?)TNXCGAD\M=[&-MRANQ&?0"N@M[N"Z:=8)1(8)#%)C^%@ 2/U%3T 8+>&6
M-_K%X-0<-J\*0RKY8Q&%4J"OOACUSS5.3P/LATI['6;NROM+MA:1W<2(3)",
M81U(*MT!Z=>:ZJB@#G;SPBD\NGW=MJ5S;ZC8%]MX0KM*'^^'4C!!/.!C';%6
M]!T :&]^XOY[IK^Y-S)YJH '( .-H'911=ZW):^*-/T8V@*7T,LJS^9ROE[<
MC;C_ &ASFM>@#+\0Z(OB#2CI[W+VZ-)'(7106RC!QU]U%0C0)%\07&M+?L)I
M[1;4IY0V!5)(([YRQ/6G^*-;D\.Z%-JB6@NA"R!HS)LX9@N<X/0D4HUJ3_A+
MO[":U 0V)NUN/,SG#A=NW''7KF@!_A[1D\/:';:3'<//%;+LC=P VWWQ3-5T
M%-0U*RU2"X>UO[+<L<JJ&#(WWD=3U4X!Z@@C@TGBC6Y/#OA^YU6.T%U]G +1
MF39P2!G.#ZUKT <]=^$+6[TB\LVN95N;RY6[DNU WB92I5@.F!M4 >@]>:C/
M@]WNK^[FUFZEGU"R%G,S1H!CYOF  X/S' ''KFNEHH IZ18'2M)M=/\ /:=;
M6)8ED90"548&<<9P*J>)] 3Q-H<VD37+V\$Y7S&C4%CA@PQG@<@=JNZG=O8:
M9<WD<(F:")I!&7V[L#.,X.*CT74#J^A6&IF+RC>6T<_E[L[-ZAL9[XS0!G7_
M (6_MB2U_M?4I[NWM9EF6V")&CNOW2^!DX],@55OHK+Q/XDL8OL=R&T2Z:66
M>2%HTSMP$4G[X+;6XR,)[C/4U!=7EO9K&UQ*(Q+*L29_B=C@ 4 3USE[X/@U
M";7&N+V;R];A2&9%4#RP@(4J?7DYSG-='45Q))%;R211B1U4E4+;0Q],]J ,
M:P\,26NMPZO/K%W=7*6GV5]Z1JLB[MPX51C!]/\ ZU1S^"=,GLM:MMTJ#6)?
M-=E/,3#!!3TP^7^K&K_AS5_[?\/66K>1Y'VN(2>7NW;<]LX&:N)=V\EY-9I*
M&G@1'D0=5#;MN?KM- %6XTR3;9BPNC9BS&U4V;T=<8VL,CC@="#Q6/?>&TA\
M+3>&M.W#^T'?SI=N%C61]TK8' X)"J/;L":ZFFNZQHSNP55&69C@ >M &5%8
M7L'B*.2"ZE73([3RC:LJ^6K C:5/WLXSGMT_#7K#N_$BPWVA16]N)[;66(2?
MS-NP>69 =N.<@>HK<H YVX\%Z9/:ZY 3(HUI]\A!_P!4V!@KZ'<"_P!35C5?
M#D6HV>FVD5P]K%IMQ%/$$4-DQ_<!SV]>_O6U6+XE\0/X=MK:X%E]I2XN8[8
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
MX]N*GH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ****
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
MW%N7,,T"/&7&&VE01GWQ3+C1=+NI%DN-/MY'6/R@S1C.S^Y_N^W2KH 5<*
M!P!0!Y?<:3!<^&_%U_)>WBW6F:A=/9R_:Y,PLBJR@<\Y.!SGC%:FFZ:-7\97
M4>K&X+C3+*X>$7$BA9MSDD $8P1T''M6KX>\,M:W6J7&KV%D\EUJ+W<+HWF$
M*<;0V5'(QGO@GBMU-*TZ/46U%+&W6\<;6N!$!(1Z%NN* //FGDO_ (=ZIKTD
MCQ:_:74Y\U2?,AE24A(A_L[=J[>AW=,FK\.CV^N^+]>L]6DN=AL;.1H5NG58
MW(DR1@\8/0=/:NP.C:8U\;XV%N;EB&,OEC<2.A)[D=CUK%B\-R3^,=5U/4K*
MSFL[N"&*'+;G 3=G<"N,-NZ9[#- '+:)J=W>6WAS3]=O(!%=:?,T;WT9=+IU
ME"IGYERWEX89)^\3UP:LMI,<>I>%=,?6;C4;<W5Y"TBRN@9!"YV<,<A3\N<Y
M[9XKNM0T?3-5M5M=0T^VNH$(*QS1!E4CI@'I39-#TF4VQDTRT8V@ M\P*?)
M_N\?+^% '.Q:?:V_Q%@TY(R;:/P\T01W+G;YRC!)))X]:HZ/ T=S)X'N$>0V
M=Y]J\Y\DR6F=Z$L>K;L1GV!KLI],M#=/J,-C:G41&4CN'C&[V!8#.W-5M%LM
M02274-8^R_VA.B1LMKN,<:+DA06Y/+,2?<#MF@";7[FZLO#NI75BNZZ@M)7A
M7&<N%)7COS7/:,=!:TTK7+;4Y!*UDWF&*7<;GY-S-*.2S*0>3T)QWQ78U0L=
M"TC3)YI[#3+2UEN/]:\,*J7^I H X?1;B.'Q%X4FM92D&H6=P7>2;=-=+M5E
M>;'&[.?7'(SV%CPZ'@U6STS6K**Z:\LY1;:I;ONCU",[68RJ>0^,')R.3BNM
MM_#FAV9B-MH]C"89#+&8[=%V.>K# X/O4MEH^F:<P-E86]N54HOE1A=JGD@8
MZ#(' H P/AC%;Q> =*:%4622W#2;>I.2,G\C^5=95:RTZQTV-X[&S@M4D<NZ
MPQA S'J3CO5F@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB
M@ HHHH **** "BBB@ HHHH **** "LOQ#>:A8Z>DVG64UX_G()(X-OF;">2N
M[C/3KV)/:M2B@#!?6KVSN]9:]T^Y6ULT5[>5$#)*NW) VY;=NSGC &/J<_P]
MJLDVF:?X@O\ 5[D)>6R++9R6Q"O,X##RAMW' R,+N!'/8FN@UHG^P[X+')(S
M6[JJ1H69B5(  ')KC;>SU&VT;P3J LKIUT9!%>VODL)%W0^67"8RVTD],Y!.
M,T =3)XIT6+3KJ_EO1'!9MLN-\;J\3>C(1N'KTYJK)J4VLZA9OH&IGR;2Y*7
MT1MLI*I /WV Q@<@KG)([ USGB+2KR]M_%VI6MG=%-2L8;6WA$#B2=U#98IC
M( W!02!T/;&>]LI%ELH75'0%!A70HPXZ$'D4 4="BU6%+Q=4O/M8^U,;:0PK
M&WE8& 0/0[@#U( -7+O4+:Q:-)W;?+G8D<;2,V!DX503@>ON*LUS/BVPCO[C
M3QNU&TN(O,>WU"PC:0V[?*-K*H.58=B,';0!J0^(-+N)[.".X8R7T;26P,3K
MYBJ,MC([>G6B+Q!I<UI+=)=9BBG-N^8V#"4'&S:1DMD@8 KE/^)S#/X2UC5=
M/FEEMA<QW8L[<LRF081RB\C.W)]">U4%MM:MXI-4CT6]?[#XCFO7M"@WS0NK
M)N09^8C=D8Z]C0!O>*/$P_X1>[O]$U!HI[*[AAF5HMK*6E165E=<KPV<X%;V
MGZ[I>JW%Q;V-Y'/+;8\U5SD ]#SU!P<$<5RWBR635_!M[):Z%>Q-=7-L1&;1
MO/EVRHS,R*"0 JX^;G@^V="'S&^)TMPMK="WDT>.(3-;.L9<2LVW<1C.".]
M'0:AJ%II5C+?7TPAMX5+2.03M'X<U3L?$NCZE?BQM+P27#1><JF-U#IQRI(
M;&1G!..]1^+XY)_!VL6\,,D\T]E-%''$A9F9D(  'N16!)!<SZWX4:*VO(T@
MT^XAFE^S2 0.Z1JN[CCE3^5 '2#Q)I)N8H/M>#-*88I#&XB>09!028VEL@C
M/4$=JK7/C3P]:"Y,VH8%G)Y=P5AD;RCQ]["G Y'/3WKEHM+U"]^'MGX3EL+F
M#4[:>&)I3$WE((Y0QE63&T@J">#G)QBK%U;W4EIX^1;"[+7Z,MJ/LS_OB;<1
MC;QS\PQ^O2@#JK;Q+H]WJ1TZ"]5KCRS*HV,%=1U*N1M;&><$XJI;>(])L]+D
MOKG7DNK9[QXEG*#"$M@1C:.0,@9_,UD^7.-:\&R_8KO9:VDR3M]F?$):-5 ;
MCCE3^7I60]M>/X-U.W73;\RR>(6N$C-G(&:+[2LFX KTV@F@#NK'Q#I.I2W<
M5M=@O9@&<2(T>Q2"0WS 94@'YAQ[T6OB#3+R^-E%<,+CRO.$<L3QET_O+N W
M#W&:Y37]-OM8U[78;*WN$^VZ"MO#,\#I&T@:1BA8C X8#GUI]M!_PDEC,J>'
M;_3=2%E- ;F_W 0,Z%<1L22P)(Y Q@>N!0!T]MXBTJZOHK**Y/GSH9(0\3HL
MRCJ48@!QW^4GCGI5?39K[3+2_FUS4//A%T?L\K0"-O+.T*NU>OS$@=SQZUB>
M%PM[)IR7GAB_M-1TY=LD]WN\J([=I,3%B&W<#Y>QYZ<[_BFVM[SP_<6]U:W-
MS#(T89+7=YJ_O%^==O.5^]Q_=H NV6HVVH&86[2%H'\N19(GC96P&QA@#T(/
MXT^[O+>QB62X<J&8*H52S.WH%&23P> .QK#\(QZM +^WU"XFO+:.51:7=S!Y
M4TJ[1D., G:>-Q'-0^-8+U9-)U2VL;B_AL+EFN;6V8B5D9"NY ""2N>G?)H
M9XF\2>9X/O=3T'4&CFM)TB?,6&1O,561D=<J<-W /2MS4=;T_2@YNYG7RX_,
MD\N%Y/+3^\VT':.#R>.#Z&N0U^V2?P1JDNFZ!?6[WLT!$30.]Q.5D4EF09(
M [\\?2IM2$MCXMO+F\T74M2TW5;>(1/9JY,3*"&21 1@'.<GCD^^ #J;C7=-
MMX8IFN?,6:(S1^1&TQ:,8.\! 3MY'/3D50;Q?I[ZMIEC:B6Y3487GCGBA=T*
M#'0@<\L,^G?'%8H6[\,>)+>]70;J33+G38[40V,?G-9NCLP4J/X2'ZCC(JU<
M0W4'B?PY?)H\T5NEM<PM%;Q@BW+E"@;'"\*<GH#WH U]/U>Q-KJ5ZVMQW=M!
M<N'D(55ML*N8\@<XSUY/S8J:'Q!IDTD\0N&CEMXQ+)%-"\3A/[VU@"1VR!UX
MKB9M-U.]T;Q"+.QN?.3Q M_'!+"T7VJ-#$<*6 !SL./<#UK;N8GU7Q39:Y;V
MMW%;6-A.DIEMGC>5I-NV,(0"<8)Z8SB@#3LO%^@ZA<VEO:WXD>]4M;GRW"R8
M&2 Q&-V.=N<^U;5><6%K=P^&/!%N^G7JS6%XC7*?99,Q 1R*2>.F6%>CT 9D
MGB+2H;R*UDNBKS3>1&YB?RVD_N"3&W=D$8SG((ZU&GBG1Y//"7,A:VG6WE3[
M/)N61ONKMVYR:Y/0K.2)%T#5O#=_<W=K=,\=T^XVD@\PLLN[=@$ YQC.?KQ/
MJ45W%XBB\7V.EW,@2<6<]F+9_-FB (\\#'WEW'!_NDC.3@ '5:CX@TS2C)]L
MN"GE())2L3N(E/1G*@[1P>3CH?2EOM>TW3HS)<7#%!%YS&&)Y=L?]\[ <+P>
M3QP?0US27-WI'B?64NM#O]1LM9,<UO)!;[Q_JPC12!L;.G\6!R<U%>Q7&E^*
M+F74-#OKZQU*UA1#IP9U@=%*M&R@CY3G()X_7 !U5QKVFVUO'<-<&6.6+SD-
MO$\Q:/CY\("=O(YZ<T[^V]--E;7<=VLL5V,VYB!D:7C/RJH)/')P.*X^XM)M
M!UZVNFT"^ETNXT^.V$.G%G:S='=@I5",J0_7D9%/6%_#OB/1K\:-/;Z1]AFM
M1!;1-,;-WE#@LJ9(W  '&0#WQ0!K^"=6N=8L]3FN+PW:PZG-##(4"_NUQM&
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
MNK86MS$+?9^]ECVQR[AGY#WQT/3!JW0!SWCN_O=)\':AJ6G736US:Q[T8(K
M\C@A@>*G_P"$AT[3$M+/4=19[R6#S0&C)>0 #. BXSR. ,U4^(<$]WX&U.SM
M;>:XN+B+9''#&SECD>@XJK,99?%WAJZ6RO/)@LKA)9#:R 1LXCVAN./NM_DT
M =)IFJ66LV$=]I\XGMY,A6 *G(.""" 001T(HOM4L].:%+F5A).2(HXXVD=\
M#)PJ@DX'M6)X(CFAM-56:VGMR^JW4R":%H]T;R%E(R.XI_B2:[BUG2!'87$M
MHQE$US:P^9-$<#:H/5%;G+#T'(ZT ;6GZA::I8Q7MC,)K>4$HX!&<'!X/(((
M((/3%6:YGP!;W-GX9%G=V5Q:RPW5QE9QR0TSL"#DYX(YZ'U-=-0 4444 %%%
M% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M %%%% !115#6-5CTBS29T,DDLR00Q X,DCL%49[#)Y/8 T 7Z*Y^Y\2SZ7;Z
MC-J^EO;I9"/RI(9/,2Y+G"JA(7YMV 01W!S3O^$AN;;6[?2-0T^.&>]A>2T:
M*X\Q)6099"2H*D @]""/RH WJ*X_3O'-U>6FC7\VB^18ZK<?9A)]J#/'(2P7
MY=O*G;C.01Z>JV/BB^@N?$MSJL4(L]+N/+012DL/D0JH!4 EBW4D<G'3F@#K
MZ*Y23QLUI->)>:<6CM[%[Q9K20RHP7[R$E5VMW'4$4:IXFU$>$]5U:P@LG6W
ML_/MKF*Z,L<G#;OX!RNT<=\CD4 =717-MXDGM8[2SDBM3J$EKY[+)=,(PO !
M+;,Y)SQM['GIE+'Q?_:5OIJ6^G21W^H"1OLMPQ3R5C.'9FP>,D 8'.X=.< '
M1K(CE@CJQ0X8 YVGK@_F*=7'_#]61_$JO;1VS#6I,Q1ME5/EQ]#@9'?H.M;6
ML:['IES;6:B)KFZ5W02R%$"IC<20">K*,8[T :CR)& 9'5 2 "QQR> *=7G^
MNZJOB#0](O)M/:UN+;Q#;0LKC=AA* 2C$#<I!&#@9K9U;QE]A-\;.R6]&GR"
M.:,3%97. 6$:A3N(##J1D@B@#IZ*P)_$EQ*UZNCZ;]O:PB1YD>4Q,S,N\(HV
MG+;2#SCJ!ZXK0ZWJ\_CHZ=]EB2T73$NA&\I60;W(^8;2-PVXQG'OSB@#IDD2
M0$HZL 2"5.>1P13JY+2_$]I#H?VB'24M)KC5)+**TC<8DG\P@L6 XSAF)P>
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
MNMMKEE-++9O:2V\[P2(265BO\2,0-RD$8.!6M0 4444 %%%% !1110 4444
M%%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !6-XIT.
M77M(%O;7(M;N":.YM9BNX)*ARN1W';\:V:* .7O_  ]K'B/P[=6.NWMK#<2J
MGDFQ5C'"ZL&#_-RQW <<<#'?-6!I&HWVK:?JNJ+:+/ID4HAC@D8K)(X"EB2H
M*C ( P?O'DXK6U/4(-)TVXU"Y$AAMHS))Y:%FV@9/ I]G=1WUE!=Q!A'/&LB
M;A@X89&?SH X^U\):S;>&=#TO?8M+I5^MTS^:X6159FP/DX)W$=\8[YXM7/@
M^ZNSXCM);N)++67$R.BGS8I B@>V 4!]_:NMIK.J %V"Y( R<9)Z"@#GK.T\
M7M82IJ-_IOVF.(K T$;[9'[/)G_T$#N?:J'_  @Y:#7D@6VTQ=8LO(-M;,SQ
M"7#9E((7!.X# ';WKLJBN9TM;:2>0.5C4L0BEB0/0#K0!RL_A_Q)%>:?K&GW
MFG+J,-K]DNH95?R)8\Y&"/F# Y.<=_SFO_#^M-J6F:Y:WEK+J=HLD<\<P9(9
MHW()4$9*[2!@\YQS6[I6IV^L:3;:G:A_(N8Q)'O7#8/J*CTC6;76X)YK1956
M"X>W<2IM(=#AN/K0!1\,Z-J&DW&K37TUL_\ :%Z;I5@#?)E57!)_W:9XCT34
M[O4-/U?0[JW@U"Q#ILN5)BFC?&Y6V\CE001Z5T-% ',:OH>M:KIEE'+<6;W<
M.H0WDO+)&HC8$(G!/;J>Y)QV#!H?B+3M=OI]'OK%;#4I!--'=1NSV\NT*S)C
M 8' .#BNJHH Y5M U[3?$5UJ&B7UF;?45C^U1WR.S)(BA!(NW&20!D''3K5K
M^P]0@\6Q:Q!<PRQ'3TLYA,#O)5V8,,<<[B#Z=>>E;Y. 2<\>@S5'1M9M=<LW
MNK02B-)GA(E3:VY&VGCZB@#F4\%ZB=%$#W-M%?6VK-J=I(A9DW%V;8XP#C#%
M>/K[5=OO#E]J4VHZC/\ 98KZYTQM/@C61FCC5B2S%MH)))'&T?=]^.HHH Y.
M'PYJL=QX6D8V>-$B:*;$K?O,Q^7E?E]!GGZ>];VM6D]_HE]96WEB6YMWB4R$
MA064C)P#TS3==UJU\/:1/JEZLI@@&7\I"[?E_C5AKP+J$=GY$Y+Q-)YPC)C7
M! VENS'/ ]C0!SL7AW5(Y?"S$VA&B1LDW[UOWF8O+ROR_CS]/>JDW@[5+FWU
M;_2[>UN;C4TU*RFC9G\J10H 8%1D87G_ 'NG'/9JZN"48, 2"0<\C@BG4 <K
M?:!K^NZ')#JNH6EM?H\<MJUDC&.&1&#!SNY;) &.PJ632/$&L>'M1L-;O+&.
M:[M)+9!9H_EJ6&-[;N2>G QCGKGCI:CN+B*UMI;FXD6.&%"\CL<!5 R2?PH
MYMM#UF6\\.74SV);22YF",X#;HC'A<@] <\X]/>J-UX0U>Y\/>)-+WV2MK-X
M]Q')YKXC#!1@C;R1L'USVQSTFG:W%J-T]NMI=P,L2S(TT6%D1NA4@D?@<$>E
M2ZIJUKI&FW6H7!=HK1"\HB7>R@#)X'MS0!QFLO=:AXLN5MYM&2>UL8X+F&ZN
M986^?+D!DP73!7J, ],'-;%CJ6L/;Z,MK::;% 97AN(869U:-<!7A8  (!S\
MP] .HSM&STW6(;>]GL+>XW(KQM/"K,H(R.N<5=  & , 4 +7&7'@-GL-7@AO
M CSW/VC3"1Q9MN$O'IF7)..P%=G10!SFL^'KNYL-&M-.>#;IMY#<.9W(,@C[
M< \DG)/\\U2O_"%[JEYXB,UQ#;Q:LEOY$D3LSPR0\HQ! !YP>O;'?-=A35=7
MSM8-M.#@YP?2@#FQIOBF^T2]M=6NM-:>:TDMXA;!U1BPQYCDY.1Z 8Y//3$,
M/AS58[CPM(QL\:)$T4V)6_>9C\O*_)Z#//T]ZZRB@"CK=E<ZCHE[96=VUI<3
MPLD<Z]8V(X/%8>D>'=6L]?L]3G?3HHHM/-G);VR/A?G# J3UR1W'Y]:ZJB@#
M'\4:))K^AR6<%P+:Y61)K>8C(21&#*2/3(Q^-85G_:9^(]BNL-9_:3HL^4M-
MVP?O8^[<G//;\Z[6JS:?9/>"]:S@:Z48$YB4N!_O8S0!QUIX/U^WTO0]--WI
M_DZ)?+-&X5RTL85P,CC#8?H..^>U7$\*ZC:Z?K.BVL]N=-U625UD=F$ML)?]
M8H7&'ZDCD=><UUU% '.V7A^ZL/%<=_ +<:?'ID=@B&1O, 1BP;[N.^,9]_:L
MK5/!^MW-CXATNTNK%;/5YS<I)('\Q&8(&4@#&/ER#SZ8[CI]2UFUTNZL;>X6
M7??SB"$HA*[R">3T' /Y5H4 <];Z1JL/BJ[UI_L;B>QCMU02,OS(6;)^4X!+
M8ZGI65;^$M7M_#?AW2P]DTFC7<<[OYK@2A-V /EX)W?ACOFNVHH 0YP< $]L
MUQG_  AE_=Z#J^FWEQ;PR7FH/?VT\#,_DN7#J""!G!'/KGM7:44 8 TC4+W6
M++6-12T6XTZWE2WAAE8HTDFT,Q8J"!A< 8/4\FI/!^D7>@>&+/2;UH7DM%*!
MX6)#C.0>0,'GI6RKJY8*P8J<-@]#Z4Z@#"\0Z3J.HWFEW-C-;E+*9I);:YW>
M7+E< G'=3R,]ZQ/^$.UI-,^R"YL)2NMC4U8[TRHE\S:>&P2>/;WKMBZ*ZH6
M9ON@GDTZ@#"T_2;^V\6ZGJTWV?[/?00QJJ2,74Q[N3\H'.\]^,4[Q1HEWK-G
M;/IUVEKJ%A<K<VTDB[DW %2K <[2&(.*VZ* .5U?1/$.N>%+[3[VYL%O;Q40
M+%O$,0!R3D@LQ/X=O3EU]HOB"'Q"=:T2YL8WNX$AO;6[WM&2F=KHR@'(W$8(
M -=#>7<=C937<P<QPH78(I9L#T ZTS3;^'5=+M=1MPPANX4FCWC!VL 1D>N#
M0!SUUX?UZUUV'6M(O[26YEMA;7T=XC+'+ABP==N2""Q 'IW[U9O=!U.;5M$U
M.*\@DGT]9TG,R, XE"Y*@'C!7@$]._>NBHH XV[\%WFI1^(8KFXA@&J7,5S;
M2Q,6:%XPH7(( /* ]>Y'O6D-(U&]U>QU?4DM%N--@E6"*"5BCR2 !F+%00,+
M@#!ZGDUT%% '$6OA'6;;PUX?TO?8M)H]ZERS^:X655W<#Y."=Y^F.^>.V;.T
M[0"<< G%([I&I9V"J.I8X%0M>!=12R\B<EXC)YPC/E#! VENS'.0/0&@#G--
M\/:M8:!_9TB:=<[[V6::*5F,4T4C.Q0Y7@@L.QZ5H>%M _X1W3Y[1658I;EY
MHH$<LENK8^12><<$]!RQK;HH X_47N5^*5C]C2&20:--N260H"OFIW /.?;L
M:27PCJ")926TEHUPNLMJUT7=E5G*LNQ<*> K 9/]WISQU#:=8M>"]:SMS= 8
M$YB7>/\ @6,U9H YG4]$UR'Q*=;\/W5FIN8$@O+>]5MCA"2KJ5YW#<1CI3=;
M\.7NLVC65]%8:E ]OC?/NC>*?+$R)A6('( &<_*.?72@\1V-SJM[I<27#7=B
M@>>/R2, _=P>ASVQ2Z5XCL-:TJ34['SI+:,LI)B*L2OW@%//% &*GAKQ#H^I
M1WNBZG:S^=:0V]\NH*Y\QHUVB52O.XCJ#^?I<_L35$\5V>KF:WN([>P>UD+N
MR.[,RL6 "D 97&,]#[5;MO$]A=7NGVD:7(?48&GMS)"4!10"2<_[PX]ZV* .
M)A\(:O'H5C:^=9"ZL-7;4(SN<I(&9V*G@$']X?7I7:(&"*'(+X^8J, GV%.H
MH X>S\(:_ NE"6^T^233K][EIRCE[D,KJ6<_WL/TZ<=1C%;FBZ->Z5K6KSM-
M ]GJ%S]I0 'S%8HJD'MCY?U[5N44 8?B72=0U1M.DL9K?%I<^;+;7.[RIUVD
M ''<$AAVR!Z5AR^#];.E:A9K=6$AN]774%8AT PZN5/7NN/;U-=Q10!SAM9]
M-\47GB/49[&VL'LH[=V><CRRK,<DE0,$OCKZ?2H?!VE6]M<ZGJ%G.9K&>Y<6
M(X*1QD[I-G^RTA;V(5:Z6:"&YA:&>))8G&&1U#*P]P:<B+&BHBA548"@8 %
M%36;6:^T6]L[;RQ+<0/$ID)"@L",G /3-8,?AS5$E\+.3:'^PXRDW[UOWF8C
M%E?E]#GGZ>]=710!Q<_@_5+J#5_]+M[6XN-234;*:,L_E2(% # @9&%_\>/'
M'-J]T#7]>T.6#5M0M+:^5HY+5K%&,<4B,'#G=RV2 ,=AZUU5% ',7.B^(-;\
M-ZAI^MWEC'/=6K01BS1_+!(^^V[D]N!C'/7/"SZ)K%S?^';N9K+=I;N\P1G
M;=&8\+D'H#G)QGVK3U/7;?3)'B\BXNIHX3.\-L@=UC!QNP2,\]ADG!P#BM"&
M59X4F3.V10RY!!P>>AZ4 <;=>$M8N?#_ (DTS?9*VLW;SQOYKXC#!1@C;R0$
M'Y^W-?79+J]\6B.VGTB*[M+!4N(KFXEA/[PDD*Z89UPHX(P"?4G'>U4O;#3;
MLI)?VEK.4("-/&K;23@ 9]30!S^FZCK'V?28;2STN*W2=K>>*W=W1XE  >%L
M !1SG<.HP.HST.IV$6J:7=Z=,2(KN!X7*]0K*5./SJ"UUFTN-9NM'B259[.)
M)'W1[5VMD#:>_P!T^U:- '%1^&?$KVV@VMU=::RZ+=(ZS+YFZ=%1D&5QA6P1
MQD@]<CH7W?A35KG3?%%H'LU.N2EXV,C?N@45.?EYX7/XUV5% ',ZSH6L7D>D
MZCIUS:VVKZ9N 63<\$JNH#H2 #@X!SCC'XU'JOA[7=2L[*]&H6L6MV-U]HA(
M1OLX!78T?][:03D]<GM7544 <QJNA:WK.A".ZN[-=02ZAN(TC5A OEN&"Y/S
M'.#D^XXXJ2/1-4L/$=SK5D]I,VHV\:7D$K-&OF1@A70@-Q@X((]\UT=5[N\%
MHUN#!/-Y\PBS#&6V9!.YO1>.ON* .7A\(7FGOH'V.6WE&FW,US</*S(9GE#!
MMH .!\Y(R>P'O4WB/PM=>()Y5E2S79+&]E?*S+<6F-N[&%YY#$?,!SS6[J^J
M6^BZ5<:E=B0P6R%W\I"S8'7@59@E6X@CF3.V10PSUP1F@"2N3L_"]XNO66MS
MQ64%_;Q2)<S6KLOV[*X42#: .<-GYCD"NLHH XBV\(ZS;^%]'TK?8O-IVHK>
M._FN%D D:3:/ER"=V/;'>DOO!^NW0U!!>6#B?4X[Z*:57,A575A$Q[*H&!C/
MT&<UVP=2Y0,"Z@$KGD YP?T/Y5#87@O[**Z$$]N)!GRKB,I(O/=3TH Q[32-
M4MO$FK:JQM)$OK:&*-0[*0T8;DC:< ESW.,=ZL>$])N="\,6.E7;1/+:1^7O
MB)*L!T/(&*V** ,*^TG4%\50Z[8?9I=MFUI)!/(T?!<.&#!6],8Q^-9,_@S4
M;1+34-(OX%UB"[GNI6N$/DSF<CS$('('RK@\GY179TC,J*68A549))X H J:
M9%J$=L6U.:&2YD;<P@4B.,8 VKGD],Y/4D].E7*RM.\06VI74<,-O=*D]O\
M:+>X>+]U-'D<JP)QU!PV#@YQ6K0 4444 %%%% !1110 4444 %%%% !1110
M4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !6+XIU6;2M-@:W94EN
MKN&U61B (][ $\@CIG&01DC@]*VJIZMI5EK>F3:=J, FMIQAT)([Y!!'0@C.
M: .8U.WUNTT3Q,FH744UC+ILKVJ-+OFC81L'&=BY7D'N13;/4+RX.BZ%:R&(
M-HJ73%91&[_=4 ':W3DGCN.V0=FW\)Z?;Z3=:<9[V=+N+R9I;BY:64QX(V!F
MS@8)X&.OK3+[P;I5_::?#(]U')IJ[;6YAG,<T:XQC>N., #\* ,RTO\ 6X]0
MT?PYJ]_$+N:.XDGN;4C,HC*[%&5&&(?+8'\/'6JVMVFI0W?AJUN];EN)!J[1
MF2(*AV&-V3>,8+ 8YQ[XYS6]?^#])U"QM+5UN(FLG,EO<13LL\;G[S>9G))[
MYSFI)_"VF7%C:VC_ &@"TG%Q',+A_-\SD%B^=Q)!(.3W^E &+-=:_KKZPFC7
MJ6UQIUW]G@WR@*"JJ29%V'<&R>_3&,$$F6'4+S7]2UNR^W-:+ID,2*+8@AI'
MCWER2/F7D #H<$G.1B_=^"]'N]6;4_\ 2H)I45+A;>Y>-+E5& ) #\W''N.M
M2W7A73KG56U-6N;6XDB$,QMIFC$R#H& ZX['@^] %?X?_P#(@:'_ ->4?\JY
M-1JUEX>\2ZWINL26KZ=JU[.MMY:&*4+(2P?(W'(X&",5Z#H^DVNAZ7!IMD)!
M;P+M022%R!]3_+I5+_A%--\RY&9S;74YN)[0RDQ22$Y+$'GD\E<[3Z4 9,VN
MW6C^(X;G4[N8:3J5@TL$3*O[B=%WLF0 3E,D9/4$5T6C17D.DVXU"9IKMDW2
MEL?*QY*\ # Z?A69J4$NO:Q#IUSH\BV5A<QW7VN8J4D*C*A #G.X\Y&, ^HK
MH: .%N]:U&#4+.XM]1DNHY=<%G(R(HMQ$S%?+&>2RX&6'&01GM71>+;FZLO"
M6JWEE<-;W%M:2S1R*JMAE4D<,".U5#X%T4@K_IBQ_:_MD<:W<@6*7=N)0 _+
MDD_F<8JSXN@FN/!^K6EK!)//<6<L,4<8R69E*C^= &#%=:YIFL^'+B;5Y;^V
MUD>5<6TD2!8V\HNK1X&0!M.<D_X9UG?7FF^$Y+FRN7@<^)9(FVA2&1[K:P.0
M>Q[5UFAZ+%'9Z==7#73W%M;".%;@\V^5 8 8Z\8R<G'?!Y!X/TO^Q;K26-PU
MM<S&X;,IWK*6W[U;J#NYH R]2U/4X=<\26D.H2QQVNDI=6^$0^5(?,SC*\CY
M!P<U':3:G%X:TO4;KQ%,TFIK:9C:%"Q)7+)$ ,[G]3G&">.VNO@[3!-=3F6\
M:>\M1:SRO<LS.G/7/?DC/;MBGS>%-.GT>QTMWN1%I[H]K(LQ62(J"%PPYX!(
MY[4 <=K6HWM[\._&5O>O*_V&Y>"+SMID5,1L Q7@D;CS7475Y?+\0;33UO9!
M9W&FS2F$*N%=70!@<9Z,>N13Y?!.C2V>HVA%T(=38/=+]I<[R !GDG!.T9/4
MXZU>_L*W.LV^K/-</=6\)@1BXP4)!((Q@Y(!S[4 <;HUOK7_  K:XNM)U2[-
M_%<W,J*VQ_-VW$FY>5)RPSSZXKIM%U4>(+Y+^PNY&TY+1,I\N'E<;L'C(*KM
MR,_Q^U'V*/PI:R/I&EWM_P#:;DL;>*<$1;R6)4.P"KN)SCU]N+GA[2$T71X[
M58HXG9WFE6+[HD=BS >P)P/8"@"EK6J3KXFT?0HI6MTOEGEEE3&XB-1\BD],
MELD]<#WKFM<O+^?P_P"-M%N[R65=*@WPW&%#21R0EA&_&#CD9&"1BNUU31;3
M5C;R3ATGM)/,MYXFVR1-C!P?0C@@Y![BH)_#6GW.EWFGRF8IJ!)NY-_[R?(
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
MF@FYD3"_ZT-$-X.,Y^8^WM3_ !+X3LFM-9U*SBO/ME[:.CVUO,PCN)-A5"R
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
M*=/, FM%FOD^R+>'[.H)$)SM;!()SM;@9/!XJ(^)9/\ A+CHHL)S$EB+II@
M<Y; ( .<###IDGMZ@&O]@L_,CD^R0;X@1&WEC* ]<'MFF_V7I^Z-OL%MF( 1
MGR5R@'3''%9&CZ[I4?ABWU"">\EMIYWBA^TEGGED,K+M //W@0 >@'. *DF\
M7:;:P:B]W'<V\NFQB6YMVBW2*A&0PVD@KP>0<#'.* -:VLK2SW?9;6&#?][R
MHPN[ZXHDLK6:<3RVT+RA"GF-&"VT]1GT]JS;#Q187^J1Z>D5U%+/!]H@::$H
MDR#&=I/7&1^>1D5>O]2AT_R%D5GEN9?*AB3&Z1MI; R0/NJQY(Z4 +_9FGEU
MD^PVV]%VJWE+E1C&!QP,5);6=K9JRVMM# K')$2!03^%<EXCUDF;PYJ$+WUM
M&^JM;S0?,"X5905**3N^9..N>,=:UHO%^F2:=>7DBW%O]AG%O/#-%B19&*A1
MM[[MRX/3F@#9DMX)9$DDAC=XSE&902I]CVI#;P&;SC#&9/[^T;OSKGM:UJ._
M\-^(H;=KJROM-M9"Z[MDD3>671@RD@@]>#]:HM<W(U;P*1=W %S%()T\UMLN
M+9F!89P3GG)H [!+>".5Y4AC623[[JH!;ZGO3$L;.*Z>[CM84N)!AYEC =A[
MGJ:2^O;;3K*6\NY1%!"NYW/8?U/M7+'59G^(]E'(+VS@.F32R0W#XC.&3#X#
M%00,YSR.^* .L>V@DW;X(VWD%LH#N(Z9J.?3[*Z@6"XLX)HD.5CDB5E!]0"*
MH0>)[&;4;2Q>*X@:_1I+.25 $N HR=O.0<<X8 XIJ^*M/:XM4VS^1>RM#;76
MS,4KC/R@@Y_A."1@XX)H T9M/LKE(TGLX)5C&$5XE8+],CBG16-G!.]Q#:PQ
MS/\ >D2,!F^IZFL72]=TF/2[^_CN+PPI?R1.+G>7\XL!Y:*>0-Q "X_"L^UU
M9Q\1;\7+W=I:P:.LTD-U)\B'S&RX 8KC:!R/0^] '5W-I;7L)ANK>*>(G)25
M R_D:/LEMY"0?9XO*3[L>P;5^@[5G6_B.SGU6'39(;FUGN8C-;>>@43H,9*X
M)P1D$J<'GI4?B+7Y=$ETR**REN#?WBV^Y-N%X+$<D<D*<=OZ@&S'&D2!(T5%
M'15& *CDL[660RR6T3N5VEF0$X],^E<?'X@_L;Q5XF>Z&HW-O#%:S+!&&E\A
M2CER!G"CN>?IG%=%+K]J(HGM(I[YIK<7*1VR@L8CT;D@<]AU/. <&@"\]I;2
M.7>WB9F&"60$D8Q_*BWL[6T0QVUM% C')6- H)_"HM*U2SUK3(-2L)1+;7"[
MHWQC/;IV(.1^%9NI>+M/TRUNKR2&ZFM+-S'/<0QAD1QP5ZY/) ) (!X)&#@
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
M9\&18% !/U &?RIXM+8>;BWB_??ZWY!\_P!?7\:BT_4(]1BDEBCD18Y7BS(
M-S(Q5L8)XR"/PKF[/54TOQ1XNGO[V;[#916LN)'9UB!1RVT<XR>PH Z>*PLH
M86@BM((XF.XHD8"D^N*S[W2;V[OXHQ>01:.JJTEHD'SNZMN^_G 4\9&.<$=Z
M:/$]KNOHI+2[BN+&!;B2W9%+F,YPRX)!^Z>,YXZ41>*K&>728TBN"-8C\RT?
M:-K +N.3G@[><?\ UZ -JBJME?I?>?Y<4J""9HBS@ ,5X.,'D5:H **** "B
MBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ***
M* "BBB@ K \9:9J&I:-$VEJDE[97<-W#$[;5E,;9V$]LC/XXK?HH Y;4+WQ1
MJ/AR[FLM(;3[O""*WEEC:5_F&\@Y*CY<[<GKU XSFP:3J,>IZY<-X;DFL]2L
MK=!!<7,;/)M+AT<ES\Y#=<D>_:N[HH \^E\+:N?#?B'1[ W1T^YM%73[:^E5
MI(Y.=R*V3A/N@;CUSVY/<:?+--80R7%J]K(5&87969?J5)'Y$TL5_9SWDMG#
M=0R7$ !EB1P6C!Z;AVS@]:L4 ><7>C:^OA_4M$AT669CK'VR.<31A)8C<+(,
M9;.X#J" .#ST!TM/O)X/'?BDQZ;/<L\%F0B%.&\ML*<L ,^O3@^V>UK/M-$L
M;+5;S4X$D6ZO=OGNTSL'VC"_*3@8'H* .2T3POJ7A.^T6ZCB:_BATPV%VD+#
M=&QD\P.H8C<NXE?7&#BF7/AO5HUCNX=/DFEN?$::G+ DL8,,2C'.6 +$ $X)
MY/M7H%% '.:/97\'C77[V>QDBM;Q+<03,\9#F-6#<!B1UXR*-6LM0'C32-5M
MK)KFWBMY[>4K(J^47*$,=Q&1\IZ9/M71U7NK^RL=OVN[@M]_"^;($W?3)H X
M2XT37)?!_B&Q71YOM-]JSW,$9FA^:,RJX.=^!PIX-7)M/U.Q\3ZA<'PQ'K%E
MJQCE5G>(/;2"-49'W'E?E!RN<<]:ZV?4["V:))[VWC:>01Q*T@!D<XPH'<\C
MCWJU0!GW.GO<^'I=-S' \MH8,PKA$)3;\H[ =JX:>75X]+\):;JFCM926.K6
ML#2^<C)*51U!3:2<$#/(&.G/;TFJ&IZ+8ZP]JUZDCFSF$\.R9TVR#HWRD9ZG
MKZT <7J^C:Y_9OB[2+72)+C^UIVN+:X$L:QD,B*5.3D,"I[8]Q5NYT_5++Q)
M+J/_  C2:O::E;Q*\;/%YEK(@*X.XX*D$<@]1^?<44 </KWA^ZNVC>VTR:RU
M&ULA]COM,E5%20EB86!(R@^7JN#D].E7H['6+;QI;ZG-9_:DETA+6>:%T54E
M5RS<,0<'/& >>N.M=510!Y[:>'=<A\):-_H#)?Z1JLEX;1Y8_P!^C22$A6#%
M0VV3C)'(-6?$&A:EK,NM:I;Z?*DEQHK:;;6[NBO(S,S%C\V !D 9.?O>V>YH
MH Y%;#5'\1^&;LZ7.D-E930W+&2+]VSK&!P'R?N'IGM6CXJTV+5;*VM;C3);
MZ SAG:"0)+;$*=LB'(.0<#CG!/!K=HH X/\ LCQ']G\/QW4-QJ!L-6>=II)(
MO-6W =4WY8;GPP)QG\Z==67B6WNO$MSI^FRJU[>6TD)\V+=+$JHD@3YCM;"G
M!;'YUW5% ' C1=74^+C#HDR)JU@B6JM<QLY<1,A5B6^]E@222/<U=;3=5-[X
M-F_LN;;IJ.+O][%^Z)@,8_CYY.>,\5V-% &#XTTF\UKPO<6FGE?M8>.:)7.%
M=D=7VGZ[<5AZA8ZOXDUN">31KK3X)=)NK*5Y98B8GDVX.%8Y'!YZ^PKNJ* .
M-\-6>I-%;6>I>%K6PGM$\N6_5HF$F%V[HMOS G@\XP,T[PBGB+2M/M?#UYI
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
MN+K3%59$^RRN+B4H'**5XCX(P23R>>F2R7Q%X@N==32M/TZS@DETQ+X"]D<&
M,EPI1@HX(Y''U]C--X6U2+7)=4TK7S9M>(BWT;VJR+*RC:'4$C8V!CN.G6K4
M/AZ>#Q3'K*WZM%'8"R\AX2SLH;=N,F[KG_9_QH W:*JVD-Y%/=-=7BSQR2[H
M$$03R4P!M)S\W.3GWJU0 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 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110
M 4444 %%%% !1110 4444 %%%% !1110 5B^+]5FT/PK?ZE;.%G@C_<@KN#.
M2 JD>Y(%;5<?XSN8[G6-!TEQ)]G^VBZNY%C9D18E+*K$# W-M_*@";6=7UGP
MMHT6L:A-;WEM"8Q?1K"4= Q"ED(8@X)Z$<CN*UY]6BCU,1+?:<MO!"TEV))P
M)8^FUL= O7)..U8OB6"7QE9IH5G#,MA-,C7UU+$T:^6K!MB;@"S,0.1P!G)[
M5-X?!O/%/B*\FMY%_>QV<7F1D+Y4:YX)Z@L[GCL!GM0!O#4;%DMW%Y;E;H;K
M<B5<2C;NRO/S<<\=J@T[4/MBW=Q]IL9K1)2(9;:7> H W;ST#!L].V*YGPO;
M7-EX/LY[VRD"Z)'.]O$R9DD9?,52!UQL.!Z[O89SX%EM/#OA2RO(+HV-U.TV
MI,MN[&20J9 K* 3M:5NXYV^AH Z-M:>^\8Z?8Z7J$<MJMM+/>+'L=<?*L8SC
M()+$]>BUKKJ^F,\B+J%J6B4O(!,ORJ#@D\\ 'BO/M2EU6YM_%&IQV5U!+-=0
M6;[(6+QVB%=Y7'WB0\A.W./7H:V-05%T&_U32TGN[TV7V*R9;=HHX@Y"A8TQ
MG&=I)Y^[UXP #J8M7TRXF@AAU&UDDN4,D*),I,JCJR@'D>XK/\4:];Z/HE_*
MM[''>0V[/%&&4NSX^4!3G.3QT]:Y^'2VTCQ#IUE:VDDYT;1WDCD$1VS3L-@R
MWLL9 &?XA6?;/)?:-X9L/LEW+]LO4NM4GDMG#/,@,C*<C^^%7/W0 !G . #T
M/3TNDTZV2]D$MTL2B9P  SX&XX' YS7)7OB#68[CQ1<P7]I'9:*J^49K?(>3
MR][(Q##IE1QSSW[]A=W45E:R7,Q(CC4L=JDD^P ZGVKS.UTTQ^'M'\3S6+S7
M1U5KK4H#"6.V9F!RF,DIE"..-O% ';VNN2WMGHS*;.UO;](YIK.YEQ((RFYP
MB]2P..HQC.:O3ZSI=K,8;C4K6&12 4DF52"1D @GKBL19?M_Q$24Q2M;V&F_
MN9/+.PO*V6;=TX6-1Z_-]:YG35TO4X9/"\VK6\2-JSW+&<%+B] EW@ ,,')
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
M<_+U^;..:S]'L[[3;GP%:ZDLOVBVMKE9R5)\K<@"*QZ _P //<4 ;?CCQ/\
MV1H5T^G:C#%?PR1I@J'Y++E>> VTYP><<XK=O]9TW3#B^O8;?@$[VP%!. 3Z
M#/&3Q7FUW<31?#G5/#][:7;:S%>,\BBV=_/W7(<2*0"""#USVQZ5K7DUG#XD
MUFTU^QU26SU@1O:/;I<%)D,2HT3+'T;(/!'\7.* .QN->T>TE:*YU6SA==NY
M7G52-WW<@GC/:I5U73WNQ9I?6[7!+*(A(-Q*_> 'MCGTKD=+M=/3X@M:M:1H
MJ:';PI%)^\V,KN2FXYW,!M[YXS46B23V>OV,&GW:ZEI=Q<3.;6=,7&FN0Y8[
MAU0DE?F_O#!.: .\DD2*-I)'5$0%F9C@ #J2:JV^K:==I,UM?6\P@&9?+D#;
M!C.3CIQ6-X^AO)?##-:0O<"&YAFG@C&6EB216=0._ Z=\56WPZIX[T_6-+F6
M2U@T^9;RX0_*P)4QH3Z@[FQU'?&: 'Z!K%[XDG^WVFIQQ0PWDT4ED8E8/"K,
MBG=]X,2 <YQSC%:E]XDL+'7;31I) +FZC>09Z*!CK[DD<5F?#U_^)#/&RND@
MO[ERDB%3M:5F4X/8@BC7"UKX]T&]>&9H/LUS"7CB9PKL8RH.!QG!Y/'!H ;X
M>\5Q'[5:ZWJMLMW_ &I/:6ZMMC+JK[5 'OC\36]?:UIFF-MOKV&W. 3O; 4$
MX!8_P@GC)KSNZ ?P-XB$=O+Y\VO--&HA;>Z_:48,!C)&T$Y]!6A=RV,7B'6[
M'7[+4[BUU<I):26PG:.XC,2H8B(SP05/7USD4 >@@@C(Y%<UHFKWWBL7-_9W
M(LM,CG>&V9(P\EQM."Y+9 4G(  SQU[5O6$*VVGVT"0F%8HE01%RY0  8W'K
MCIGO7'>"IE\':8WAC6%DMVLYY/LMPT;&*YB9BP(8#&[D@KUH Z6QN;VU@O9-
M<GMD2&?$4ZCRT:+:N"<DX.XL.O45,-;THV<M[_:5K]FA8K)*9E"H?1CG@^QK
MGO%5S<R'1=3%M-_9MGJ:R7(*'=Y>TJ)2N,A58Y_#.*Q?$\*W<GBS4[(K)I]S
MHJP%T^9;BYR^-N/O$*5&1ZX[4 =Q_P )#HGF7$?]KV6^V3S)U^T+F)?5N>!R
M.OK3TUO2GM+>[74K0V]RP2"43+ME8G "G/)SQ@5RDG]GMXP\(O&L&U+&X!8
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
M0K$57_@1H [&BJ&C:S::[8_;+/S0@<HRRQ-&ZD=BIY'8_C5^@ HHHH ****
M"BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH *
M*** "BBL+QEK%WH/AFYU"R@669"J LP 3<P7=[XSTH W:*XF^N+BW^(]C<QZ
M?++<RZ/./LR2CJ)8\<D[0,=_YFM2W\9V%QHUC?[##)?2/"D$\BH5="P<,Q.
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
M;N.ZSY6_<T9W*.HXSUKG3XF^Q^'H;K0])> 7&M_99HYI!N5FGVR'J1ECD<'
MSGM1+=W-A\1;Z:VTR>ZGDT6&1K=)5X;S'S\S' Z <=?2@#N!G R03WP*6N>7
MQEITVFZ;=P%=^IP&>&.>58@JC&[<QX&"P'&>3Z9(IP_$"UN;>PDMM,NYGO;F
M2T\M#'^[F0$E2=V#G'!'&#DD4 =;67H^BG2S++/J%UJ-S+A3/<E=P0$D* H
M &3[G\L2F]D?0FO;K3IXW\DO):;D,@XY7.=N?QK"L/%%E9:1X<BL-(NOL^J1
M;;6-&4^6!&6"DELYP.O3U- '645E:#K@UN*[#VDMG<65PUO/!(P8JP (P1P0
M0P-07WB;[/\ ;FL].N-0CTYU2Z-O@L&(!*HO5R%8$CCKW.10!-XET1_$.CMI
MJW?V57D1V<1[S\CAP.H[J*U$#!%#D%L<D# )^E8&K^+8](2\GDT^X:TL#%]H
MF/R??Q]P'[^ 1GIUQR:GN_$(AU"[L;6U-U/91)+-&L@5]K9QM4_>QCGIVQD\
M4 ;5%<(NHRZ-XU\67%OIUQ?;+:TE=(W V@+*6.6/Y =:[/3[V'4]-MK^WR8;
MJ%)H]PP=K $9_ T 6**S=3UF+3KNRL]JM<WS,L*O($4[1D\\\^@ )/YFLBZ\
M2ZF-=T.RBTMHDOUG>59)%#@QC&WT[@Y[XXH ZFBN>N_%T-M:7FH1V4UQIUA,
MT5S<1L,J5.'95ZLJGJ>.AP#4]UXD4/<IIMG)J3VMNMQ,(6 ^5@2JK_>8@$@?
M3D9&0#:HKB9]0MHOB#9ZHXDACFT&239*"K9,L6U=O4-R!@#.>*ZVPN+BZM$F
MN;1K1W&?)=PS+]<<9^A- %FBN<N?&-O;V$NK"TEDTF&<PR7:,#C#;&<+U*!L
M@GKP2 1S3O\ A*GEUZ[TFTT:\N'M&@\V57C"[),X<9;H ,XZGGCB@#H:*S]3
MU:+3I;2V$;375[(8[>%2 6(4LQ)/10 23_,D"N?UWQI-:>'M>DM;,Q:KI" 2
MPRN"$##*2 _Q+W'?(P0* .PJ&&VB@>61 =\S;G8G)/I^ ]*Y#5Y[B'Q[H-T+
M"5[F2RNP;=) <D&/')(4<$G/OW-:=OXSLIM'@O9(FMYIKE[3[/-(JE9D+!@6
MSC VDY]/<@4 =%17(_\ "PK(6<TOV&>26WOH[.9(720*SD!6# _,ISQ@9SP0
M*O1>)[@:K8Z=>:+<64M]YWDF66,C,8S@E2>2.1^/I0!T%%<]9>+!?Z;-=Q:?
M)YL-^;%K8RKO$@8*?; SGZ<U /$.E:=?>)+N2PFMI; P_:Y&8'SB5^0CYB ,
M$<G'7G% &_J-K+>V$UM#>36<DBX6>'&]/<9!%-TW3X]-LQ;I+)*Q)>2:4@O(
MYY+$XQGZ# X X%49O$265I/<ZA;^0D1C6-TE5TG,APNQC@=3CG&.O3FJMCKU
MEXDO+[1)%\JYMXUD#P3JZE6Z.CKT(/J 0<=: -VVMHK6,I$",L68DY+,>I)[
MU-6+X2UB76M!2>YQ]J@DDMKG:, R1L5) [9QG'O6U0 4444 %%%% !1110 4
M444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !6-
MXNTFYUSPQ>:=9M&MQ*$,?F$A25=6P2.F=N*V:* .:&G:Q+XQL]:FMK98HM/D
MMY$2<L0[.K<949 V@9XZ]*Q[?POXBL-,T^XLQ9C4]-OKF=(GE)BGBF9BREL9
M5L,,''45WM% %'2SJ;V[2ZJD$,SG(@@<NL0]-Q +'WP!T';)Y:[\,ZS<:5XM
MM1%;!]:E+6Y\XX4%%3YOEX/RYXSUKMZ* .6M='U72O$4FL6\$4Z7]G%#=V_G
M8:.2,$*RL1@K@D'H>_/2J8\(ZA:6>BQ6_D326NK-J5XQD*@EM^53CG&_ SC[
MOO7:T4 <-<^&]?MK'Q-I%E#:W-GK37$\$TDY1H7E7#*R[3D9Z'/UJ9-'\3:/
MJ=OJ6F0V%T9[*&UOK66X9 'CSM='V],,<@K79U2O-7LK"^L[*XD99[YRD $;
M$,P!)&X# X!ZF@#'_LK6#XMTW59A;RQP6<L$[*Y4[G96^5<<J-N.3FJFH>&;
MN_UZ'4X[6*ROX+Q6748)MIEM@V2DB@?,2ORX.1T.>U=A10!A>*M%NM6AL+BP
M>-;S3;Q+N%920DN 0R$@'&03SCKBF6^EWC^(Y_$<]ND<_P!A6S@MO,SQO+L6
M;&!DX QG@9[X'051CUBREUF72$D;[9#")G0QL $)P""1@\YZ>E %#P7I5[H?
MA2QTJ_6,3VD>PM$^Y6Y)R.!ZU3M-&U/PYKFHW6E017FG:I-]IEMVE\N2&8C#
M,I(PP; )!((KJ:1F"J6.< 9X&: .=\0:+J?B'17C\V&TNXYHKBT3)=$>-MPW
MMC)ST..GOWCN='U#5=5BU>ZMH[>6TLIH((!-NW228#$L!PH"X'<Y/ QSM:5J
MUEK5E]LL)&DA\QX]S(R'<I*G@@'J#5V@#B[;PWK$&C^$[,PVY?19D>X(F.&"
MQLGR\<_>SSCI46K>&-:OHO%T<45L/[<$0MRTY^7;&J'=\O'W<\9KN:* .=DT
MS4I/%FF:KY$0@M;*6"4>;\VYRAX&.0-GMUK%M_".LVZ6]\BVPOK'5[B^BC\X
ME)8IBVY"=ORMAN#@C(]ZZ_3]7LM4DNX[21G:SF\B8-&R%7P#CY@.Q'-3W5U!
M96LEU<RK%#$NYW;H!0!R>L^%]1U:'7[Q8X8[S5+%;*"%I.(T&XEF8#J2QX&>
M .>>+O\ 96J/XGT;4F@@6&SLI8)AYV6#/LY7CD#9[=:U]/UBSU.:Y@MVD$UJ
MP6:.6)HV7(R#A@.".AJ]0!F:C_:\>I6D^GQ0SVJQRK<Q22E&))385X()&&ZX
M'/6N>_X0^XN!XHN$A@T]]<L_LZ6Z-E0VQAYCX&,DMVSP.I)KM** .131-:BO
M]%UM8;;[79VK6=U:+,2'B.WE7('S!ES@@ @XSQDU;_P?JDCSZW92V\>LMJ:7
M\<3L3%M2/RQ$Q [J220.IQ[UW%5[V]@L+*:[G+>5 I9]B%V '^R 2: .:U[3
M/$/B+PG=V<]O9P75R\6RW6<M'&J.K$E]N23CH!@<>YJSX<TG4]!O;FP1(FT-
MCYEHIE)DMB>6CQC!3.<<Y'O71JP90PS@C(R,4M '+^+/#\FOR-$^G13JD&;.
MZ2;RIK:?+?,& SM^X>,].AHLM&U>U\5PZG<&*ZCBT=+)Y?,P\LH;<6VXP 3[
MUU%% '":=X;\1V.E:%9O#97$-D\XN[1KEA'+O;*/G8<[<GY2.O/IA+?PKKMO
MX>L--\NR9[/6A>[EF8!HQ,TG]W@G. .>G6N[R,XSR*6@#!M=,OX_&U[JTD<0
MM+BSBMT(DRX9&=B2,=#O]>U-U73-0_X2O3];LX8[B.WMI;>6(R;'^<J0PR,'
M&WID=:Z"JUW?P62P-,7(GE6%-D;/\S=,X!P/<\"@#DKCPEJ\$*ZKITUM_;*Z
MG)J!BD)\E@Z>68LXS]S'S8ZC.!GCI]*;5986FU:*"WE?&VW@D,BQ@>KD#)/T
MP./<F_10!R5MIGB?1]7U&'3EL9]-U"Y:Y2:>1EDM7?[XV@'>,\@9'N:)-#U<
MWWBF410,FK6R16S&;!W+&4RXV\9)SQGI76TUW$<;.V2%&3M4D_@!R: .3L]!
MUFTO/#=TL5JS:?I[6-TK3'"Y$?SJ=OS?<Z''7K5:;PKJUSX<\3Z>1;QS:I?/
M=6Q\PE<'9A6XX/R=L]:ZO2M5L];TV+4;"4RVTQ;8Y4KG#%3P>>H-7* .<FT[
M5[OQ1HNK36]M'':6\\<ZI.6(,FS&WY1G&SD\=:J>&]+\3Z'%'H;"Q?3+63]Q
M?>8WFF'=D(8\8W8^7.< <\UUU0W-S%:6\L\S$)$N]]JEB!ZX&2: .#N?"OB.
M+PMJWA>TBLYK6XF>2TNGN"C*KR;RK+M.2"3SGI^5=9X@TVYUOPKJ&FJ8XKF[
MM7B'S$HK%<=<9QGOC\*NZ=?VVJZ=;W]FY>WN8Q)&Q4C*GH<'D59H Y-=&UF'
M6-*U](+<W,%FUE=VBS$@QDA@4<@98,N<$ 8.,\<Z?A_1I--EU*]N2OVG4[HW
M#HARL8VA57/?A<D^I-;!. 2<\>@S6,GB[1)%N&6YE*6KF.X?[++MA8=0QVX4
MCWH JZ9HEZM_XC^W1QI:ZM+NC:.7+!?*6,@C'!^7/4U!H&G^*+>PBT/518FR
MMH_)^V0R,9)XP,*-A7"G&,G)[X'.1T]O<0W=O'<6TR30R*&22-@RL#W!'6I*
M .4\+:?XGTBTMM$O!9-8V.$CO8Y"9)HE^ZOEE<*<8!.?H.],T'2_$^B$Z*@L
M9-*CF9H+TR-YR1,Q;88\8+#) .0.AP>E==10!@:/I-[:^)-?OKJ*+[/J4D31
M!7W'"1A"&&.^,]ZK:#X2?3M)U'3+NX\R"426UKMZQ6I+%5^HWD?0+Z5M6^L6
M5UJMUID,C&ZLU1ID,;+M#9VX)&#G!Z9J]0!S'AJV\56<%MIFJK8?9K)1&+R&
M1F>X11A1L*X4],G)Z' YR+/B;1QK0M[6YTN#4+':YE5I-DL;_+L9#V_BSR.H
M^E;U9<?B+3)-1AL$F<RSM(D3>4WER,F=ZA\;21@\9['T- & GA[7K'_A&KM9
M(M3N]*CGAN!/.4+K*!@[]ISMV@<C)ZU4'A+Q"EA-/$]DFHV^N2ZG:CS&,<JN
M6#(W'RY#'IG\*Z[5=<T[1(XY-1G:%)7$:-Y3L"QZ+\H/)["FV_B'2KF]2R6[
M$=U(,I!.C12./]E7 )_"@#$U[3/$7B#PK<6DUO9P7=Q)"4MUG+)$J2*Y)?;D
MD[<8Q@<>YJ['IFH'QV=9:&);1M-6U/[W+APY?.,8QSCK6P+Z!M1>P&_STB$Q
M_=MMVDD#YL8SD'C.:L4 <SJ.E:M;>,8O$&EQ072368L[FWEE,9 #EE=6P?4@
MBLE/"^O?V'#9O#9^;'KO]HG;<''E^<9,?=Z\X']*[RB@#G?$/AR;5M4TV^MI
M5A:(O!> _P#+6V<?.GURJX],DU)K&EWUWXGT'4+>.(V^G/,TVZ3:Q#QE!M&.
M<9SVK=!!&0<@TM 'GUSX5\1Q>%M6\+VL5G/:W$SR6EU)<%&57DWE67:<D$GG
M/3\JU!IWB?2_$-[>Z9!I]S::J4DFBFN&0VTRH$+ A?G4A1Q@'CM76T4 <Y%I
M>JP^,CJSI#/!_9:VA?S-KO('+EMN, '..O%86F>$]?T>R\/74$=K+>Z0L\$U
MN9R$GBD.<J^WA@<=17H%% '&V^A:R/[:^VZ9IUU!J=\LSVSSE@T?EJK Y3&1
MM!!]1VZUJ>$]#FT&SNK8NZVCW!>TMGE,AMH]H&S<?<$XYQGJ:W20.IQ2T <C
MHFC".U\2^&[IB@N[F>6-A_%#..H^A++^'O5GPY#XKMH;>PU=+ 0V:[/M,$K,
M]T ,+\A7Y.Q)R>G YR.B:*-Y$D9%+IG:Q'*YZXJ"^U&VT]8_/9R\I*QQQH7=
MR 20%')X!- '(+X6UE?#3VHCM?M<>M?VE$AF.QU\_P S:6V\'''0UJ1:9JR^
M,+G69;>W,4NFQVJJDQSO5F8]5Z?-C/MTK;T[4;75K"*^LI?-MYAE&VE3UP<@
M\@@@C!JU0!P&G^%_$NAZ9H-S8+92ZAI=O):7%M),1'<1,P;*OM^4@J#R/_KZ
MVH:9KU_=Z'>2Q6ADL[QKF>-9B%C4QL@13MRQ&[.2!D^E=310!7ODDEL+B.%0
MTCQLJ@G )(QR:Y*R\-ZS:V7A&$PVS-HA/VG]\<,/*:/Y?EY^]GG%=K2 @]#F
M@#"\/:9?Z?JFMSW<<2Q7]Y]HA*2;B!L5,,,#!^7/?K5"'2_$FC:]J9TI+&XT
M[5)_M.^XE97M92H5SM .\':"!D?4=:ZVB@#A/$7A?Q!JZZY:D6=U'>1(+*YN
M)B&@ 4;D"!< E@26!'7GH!5CQ%X;U#7W>1[&WM]0C"&QU*WN"LEJV!N#' +*
M#G'KD\+UKKKBXAM+:6YN)5BAB0O)(YP%4#))-5;#6K+4KJXM8&E6>V"F2.:%
MXV"MG:V& R#@]/0T 8G]BZJNM>)+ORH'CU.TA@MSYN#N174EAC@$OVSTIVC'
M6-#MO#FB2VEL\:VOV>YD2<ED9$X91CE3MY)Z;@/KTLDJQ(SMG"@L0JECCV Y
M/X56TK4[/6M.AU*PD\VVG!,<A4KN )'0\]0: ,_Q+I(UF."TN=+@U&Q.[SHW
M?9(C<;60]B/F[CKU[5DVWAO7;(^&YOM$5[/I8N(YS<3-G9)]W#;3N*@ <@9Q
MVKLJ* .,C\-:M::-K?AZ 026>I23-!=-)@P)-G>&7')7+$8//&<4Z/0=<\.Z
M])<Z!%:7EC>6\,,L5U.T30O$NQ7!"G(VXR,9R*Z.YUFPM+K[+),7N-NXPPQM
M*X7U*J"0/<U)8ZE9:E'(]E<QW"Q/Y<AC;.U\ E3Z$ CB@#E->\'WVNZ[;W5P
MZ%(-.:%+J-]DL=QO5UE5<< %?7OBNET1M6.EPKK<=NM\J@2M;N61S_>&0,9]
M*T** .(B\*:K!X6OO"*^2UC/)((+PR?-'#(Y9@RXY<98#L>.E:NCZ/>Z?XLU
M:]:&(6-W!;Q0D2DNOE!AR,=]WKVKHJ* ,#Q%HUY=ZGI&L:<8VNM*E<^3(VU9
M8Y%VN,X.&Q@CMQ69JWA&]UBR\23L8H+S6+:.WAC+96-4!QN('4DG.,X&.M=E
M10!S,FG:S=>*-'U>>UMHTM+:>.9(YRQ#2;<8RHR!M]NM9$?A7Q!;6*W-H;2/
M4K/5Y[^W1Y2T<L<I;=&QP"#M;KSR*[VB@#DM9T[Q)K>C0B:WLHKE;VWG^SK.
M2D:QN'/S[<EFQZ8''U.CXGT>[UC3+=K&1+?4;2YCN;>1^51@<,#Z@J6'OFK]
MEJ]EJ%[>6=M(S3V+*DZM&R["PR.H&>.<CCFKM ',:9X3.E^*)+V"7_B7M#&X
MA/+?:54QF3\8SSZDYIAT?5H]5\1W:VEG/%J1M_)BFDRLBHH5U<;3C(SCK754
M4 <&/ ][%IVHPZ5*-.0W%O=:;:2RF2.WFC.YL]<*QP,#.,9]JZ33+K61;R7G
MB"*SL$BC.8X)C(..2[,0,#C@#WR3V=_PDVD_9]2N#/((M+8K=GR'S&0NX\8R
M1@YR!BKT,EOJ-G!<*HDAE598]R]B,J<'\* ,;P1ILVG^'R]S&T4]]<S7CQL,
M%/,<L ?<+C/OFNAHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB
M@ HHHH **** "BBB@ HHHH **** "BBB@ K,\075Q9Z4TUM<P6K^9&IEGR0J
MEP&V@ [GP3M&.3BM.LW7=$M]>L4M9YIX#%,D\4T# /'(ARK#((_,&@#G8?$&
MMF'Q);VT4][<:9+";</$JS/&ZJS?*, L 6*C SP",UK>%=9AUJ"ZG@U)[R-)
M0HCFB$4UN<#*2* .<Y[?RIB>#[>.>_N$U345GOS"\LOFID/&5*L!MQD[0",8
MQD "M'3M'AT^[O+P2/-=7I0SRN%!;:,*,* .!G\Z ,WQ;J6I::VC_P!GSQ1"
M[U**VE\R+?E6S[C'3_ZXK)-[XD:Z\1Z<NM1AM+CCN(;C[(I=@Z,VPC[N 5/.
M,\]:Z76M#AULV1FNKB#[%<K=1^24Y=<XSN4\<FJY\,0_;M5O!J%X)-5B6*8#
MR\*%! V_)QPQZYZT 9/]O:EJ&EZ9=17B6K7FDBZ\FVC$DS3$*>C J(ADY)QR
M0,U$/$FJ?V-X8\0S3K%87@B34HTC&$,@PK@GE5WD ^Q'UK1M_ ]G:R6;PZEJ
M*&ULA8'$B#SH <JC87MGJN#[U5O=,BTWPY'X,M;+4=0CNK9H([B5 T40^Z"[
MC 7:.0 ,G;QS0!NZ1<7%Y)>W+S%[8W#1VRE0,*GRL<@<Y<-CV K%\9K.^K^&
M%MI4BF.HL%=TW!?W$G.,C/YUTMG:0V%E!9VZ[8H(UC0>@ P*J:QHL.KFTD:X
MFMY[*;SX)H2N5;!7HP((()'(H Y4^*-9T:XU72=0FCO[FWGM$M;I8ECW+<-M
M&Y<A<K@]P#QTK?T=M>75[J*_61].:-7MY;CRA,KYPRD1G!7H0< ]J6X\):;?
M:=?VE[YMRVHE6N)W8"1BN-A!  7;@8 'YY.9]%T(:0I,FI7VHS;=@FO90[*O
MH, #ZG&3@9/ H B\3:Q+I%K9I;[1<:A>Q6<3N,K&7/+$=\ ' ]<5R^I7]QX;
M\9ZUJ,UPU\UMX?CDB\U54_ZYP VT 8W9YP.#[5V&NZ':>(=--C>&1 '62.6%
MMLD3J<JZGL16>O@VUEO9[O4;^\U&2YL?L,ZSF,+)'ECR$48/S=L?G0!4N-4U
M_17NM1NHI;G2H+"2>03^2CK*@+ )Y9.5(!'.2/4UH:8-;EET^]DU&">TN;??
M<PL@78Y *^40,XZ@AB>,4S2O"%KIMNUM/J%_J<'E-#'%?3!UBC(P5  &>.,G
M)QP,9-+H?A*#0@B1:GJ-S# "MK#<S!TM@1CY>!G .!NS@<>M &#X=N[BT\+1
M^1=Q6PEUJY25F4M(R>=(=L2X.YR0.,'C)[4V;Q/KJ>$]1NXYT6ZL-8%D'FA7
M=)&944;@ORAL2<D#MT%;">!;.*SMH(M3U".2TO'O(+A6C\Q'?=O'W,$'<>"#
M1+X$L9+&]LQJ.HI%>W:W<F)48B0%3D%E/=%//IZ<4 1RWVL6^L)H+WTUU.\$
MEVUQ:P0QNJ;PJ*!(VW ).3R>GN:CM=9UW[3H^A:GY=KJ5V)WGGB"M^[CQ@J.
M5#-N7/4##>U:>M>%K?6I;.Z-]>V=]9 B*\M75)"#C<&X*D''3%,O/"%G=16+
M)>7EO>Z?(TD-\D@:;<WW]Q8$,&[@C'  P* *7@J.:+4O$\<\YGD75>9"H4L/
M)CQD#C.,=/TH^):2-X,G:.X>(+/; A0OS9GC'.0>GM6MHWA^+1;F^N([RZN)
M+^42S&=E(WA0N0%48X ]O3%/\0:'#XBTQM/N+FX@A9T=C 5#$JP9>64]P#0!
MAWUQX@?Q>N@V>LI!&^EM<B>2T5W5Q*JY(X!Z^PQ[\TTZWJVI:5KVJ:?>+ VD
MW$T,-N8E*2F$?-OS\WS'.,$8&.M;0\/I_P )#%KAO[MKB.V-ML/E[&0D,<C9
MG.0#P1TJ"3PG:-/J)AN[JVM]4):\MHF4)*Q&&894E2PX)4C/L>: ,JUUS5]<
MUVR@L[U+*TU#1%OT'D!WB8LHZDX/WO3'MWJC:>(O$3>'=*UR:_@8'45LKBW6
MW $R^>82^<Y#<9XP/:NJ7PY;QZY'JT-S<0R16?V..%-GE)'D'@%<YR!W[51'
M@BT70X='74M0$$-U]K1LQ;]_F>9UV8QN.>GZ4 =(>1UQ[UYS;ZAJ^F>#/%6J
MP:I)+=6FH781KB-''R/M!X YP /0>E>C 84 DD@=3WKG9O!5C-8:M8?;KY+;
M5I7EFC5TPC.<OMRIQD^N<=L4 0W=_K,OBZSTJWOX[>WNM,DG)^SAG5U9!G).
M#]X]L>QK%C\0^(T\,QZU+J,#FSU+['/"ML +E?M'E%B<_*<$'CCCOGCJQX<C
M&LVNJG4+PSVUJ;90?+VLA())&SKE0?PJDW@BT;0Y='_M+4/L\MW]K9@8M^_S
M/,Z[,8W<]* *EYJVOZG)JRZ$LBS:==?9X4Q"8I&559O,W'<,[B/EQ@8//2NL
MA=W@C>1 CLH+*#D*<<C/>L&X\&6LNL2ZG!J>I6;W*J+N.VF")<[1@%AC@XXR
MN*Z!$6-%1%"JH 50, "@#@%UJZT ^-=8GNI[P6%PHCAD"[23$FT<#( +8X[<
M\GFMFYU'5-$US18+F\%];:H[02YC53%+L+!DV@?*<$8.2..:NOX4T^6[U2:5
MYY(=64"ZM6<>4QVA-PP,@X [X[]:=8^&X;26RDGO;J^.GJ5M?M!7]UD;<_*H
MW-MXR<\9]2: +>MF4:'?-!.]O*MN[)+'C<I )R,@C]*Y&TU'5-+\%^#98+XN
M+V6QAG\V-6;RY$7*@C&.AY()YZUW$\*7$$D$HS'(I1AZ@C!K '@NU&DZ;IG]
MIZ@8M,GCGMV+QE@8^$4_)C:![<]\T 95[JGB)[GQ9'!JD-NNCJDMN5M5;(,7
MF;3DGCL3U],=#-9:WK/]L>&Y;F[BDMM>MW9K980H@81>8"K9R?0Y_2M5O"MN
MTVLRG4+W.M($N!F/"@+L&SY./EXYS^=(OA.W2319!J%[G14*6_,?S KL.[Y.
M?EXXQ^?- &5I^L^(M9M].UC38G:VGN/WT$ODB$6^X@E6SOW@ 'G@G/ KLZYR
MP\%66FZA)-;7^H)9O,9_[.\X?9UDSG(&,@9YQG&>U='0!Y;HU_KF@^ -/URV
MOH7L;>Y99K P#,D;7+(2'SG=ELCM['OTLFNWVE:[K&GZE<M*OV47.F;453(,
M[2G3EPY4#V8<5=L_!]G:6T5C]KNIM/AG\^*SE*%%?=O&2%#, QW $GGUJ&>&
M+Q'XDM&ETFZA31+B1Q<7,6Q9&QM41\_,I/S9]47UH W[&.YBL84O)A/<*@\V
M0*%#-W( Z#-<E:"Z?QCXM$E_/)%#;6X2)@NT*T<AV],@ D]^_.:[2L:;PS;R
M:M?:E'>WEO)?P+#.D3KL;:"JM@J3D!B.N/;(H Y3PM?:KIFD^"P;R.2RU&(6
M[VWD@;,0LZL&ZYRO/;GI6C;:SXAUBVM]6TF)VA-XRO!)Y(A,"R,A^;.\/@9]
M,\8K1B\&VL-KHULFHWP31F#6W,>3A2N&^3GY21VZTEMX*LK/4Y[JWO\ 4(K6
MXF,\FGK,/L[2$Y)VXS@GDC.#Z8XH Z.N \-2ZS'/XO\ [)L;.Y?^V9MOVBY:
M/+;$XP$.1T[C\.M=\1D$ D9[CM7/V7A(:<]^UIKFIQ'4+AKB;'D'YV !(S'D
M< ?E0!R_A'6H[#PGH.C:;-(MQ=W\MI/)-& ;=UW22@+DC/9>HY!.>E:]SKVJ
MZ=J.LZ-)>VQDM[2.[M;V[ 151F*,)-HP2"#C &>!6C_PA.CQZ+;Z9;K-;BUG
M%S#<(^9EFSGS-QSDG)SD$$'&*=?>#['4K2]BO;BYEGO?*\RZ#*LB^6VY N!@
M -D].I.<T 9'_"0:L@\4P1W#M_9ME'=VDMW;A7^9)"0RC;QE.,@'GG-.36-:
MM;#2'N=1BFGUZ2WCA MPHM<QEY#G/SD@<9 Y/3'%:+>#+9Y+^635-2>74;06
MMRYD3+@!ANQLP#AB.!CGIGFIKOPE9WN@6>D375V?L#(]K=!E6:)DX5@0H&0.
M.G- &;H,,\'Q&\0)/=-<G[%:%7=55L9DX.T 'G/8=JU/$^LRZ1;6*6^U9]1O
MHK*.1AD1ER<MCO@ X'KBG:9X;33M8N-6?4KR[NKF%(I3,4"L$S@X50 >3TJS
MK6C6FO:>;*\#A0ZR1R1MM>)U.5=3V(- &5#J&HV_B^3P[<7CSQ7%B;NVNMB"
M6(JX5E.!M(Y!!QZ@YJ#X9QRKX)LY)+F24.TI"L%PG[U\XP >??-;-MHB07<E
M]+>3W%])"(!<N$#(@.<* H4<G)XYX[  'A_0H?#NE1Z;;75Q/!$6*&X*EERQ
M8\JH[DT 8GQ'_P"0/IG_ &&+3_T94/Q82-? L]X#LO+2:&6SD7[Z2^8H&WWP
M36[X@\/0^(K>W@N+RZMTMYTN$^SE 2ZG*D[E/0]J:_AJVNKVWNM2NKK46M'\
MR!+@H(XW[-M15!8=B<X[4 5+;4M6D\97.E33Q+$-+BN8U$7^KD9V4YYRWW?4
M5A:7XCU]O#&EZU=W\<[:G(EHEO';*NR1I2-X8L 3M! 4\9(]\]9_8,?_  D$
MVMK>W2W$UL+8H-FQ4!+# *YR"Q/)[U2B\$Z:OA/_ (1J6>[GLU.Z)W=1+$=V
MX%651@@\@X_2@#/O-:\0:%;:A->Q^9;O)!'82W7EB17D<(WF",X*J6!!&../
M>G^*(M=L?#FOR'6"ULNG/)!($59TD53N'"A=I&.?O#)YZ&KX\'64VC76FZG>
M7NJ+=((WFNY07"@Y7;@ #!YSC)(&<XIUOX3MTTJZT^^U'4-26ZMVMFENY0SK
M&PP0N  /KC)P,G@4 4;?4;H:CH_AR*]D1IM/:[EN2B%]J[55%&W;U;DD'@>^
M1EWOBG7;;3M0MEG@^VZ9JT%HT[0Y$\4K)M)&<*V&YQZ<8KHCX3M]NG2+?WHO
M=-!6&\+(9"I&"K#;M*D <8[9Z\TV\\'V5YILEFUW=QF:[6[FGC*>9+*I!4G*
MD<;5X  P * ,[6=5U7PV;<:MJ%P]A()3+J5K9*?(;(\L2+\V$ W?,!R<=._3
MZ9*T^E6DSW$=RSPHS31?<D)499?8]:KW>D/<W"SKJ-U"WD&&0((RL@]6!4C/
M7ICJ>*L:;I]MI.FV^GVB%+>VC6.-2<D # YH PDU'4M<U'7+;3KW[$=+=8(1
MY:MYDFP,2^X'Y<D# P>"<\C%'1/%E[K5_P"&Y0?)@U:PGEFAV@[)(RHRIQG&
M2>N>U;DWAJ%M5NM1M+VZL9;Z-4NA 4VR[1A6^93A@.,C'%1W/A.RD_LLV4]Q
MIK:4C1V[6I7B-@ R'<&!!VCGKD9S0!RU]J>J:GHML9=1EC>'Q2ED6B1%\R-;
M@*N[CJ, \<$]>.*]$C5DC56<R,H +L!ECZG''Y5SB^![!-+FT];V^59+_P"W
MI+YBEX9M^\%25.>?[V:Z**/RHDCWL^U0-SG)/N?>@#DVUK5=5L/$&H:==K;'
M2+F:W@@,2LDIB4%O,)&?F.0-I&!@\U1FNY=<\3>#-2BN9[5;ZRN)Q&H0^7F.
M,D#*G/7'/X8KH)?"EJUSJ$D%W=6T.J<WEO$R[)21M+#*DJ2."5(S]>:DG\-6
MTVJZ;J$=U<VYTR-HK:&'8(U5@ 005)Z*._&* -FN*L_$&J#7-$AEO$NX]1FN
M(;CR8Q]G4JKNOE/@,V-N">1UZ&NT(#*0>0>#7,6?@.QLETY(]2U)DTN5I+16
MF7$:L"I3A1E<,>3\WH10!7TOQ'=7'B$:7J%S+8Z@LTV;">%5CN(ANV-"^/FX
MVD\Y^]P,56TOQC,([N34[B:&_P!/T^6>]TJXA6-MZX.Z)@/F3AAG+=5K=3PM
M;[K3[1>W5TED[R6RS;/W992O4*"0 Q !_7 PL'A:U62V>\N;C4#:VSVT1N=A
M(1P V2JC<2% Y_GS0!GV%QXFN[K3Y@TGV&\MR;EW$ \EBN4:':22,\8?/&*R
M-#U35=/^'6DZD'O;Y9IBUX\,:2311DN6=1CYOFVYSDX)KHM#\(6V@N@AU+4;
MFW@S]FMKF<-';Y&/EX!. 2!DG HL?"4.F6-O:66J:A%':SF6#+HVP$,/+P5P
M5^<]>>G/ H M^&]0CU318[R+4DU&.1WV7"*%RNX[01@88# / Y%5;O5+BZ\7
M#P];7#6@CL/MDLR*K.V7V*J[@0!P2>#VZ<UHZ5I-OI%O+#;[F,TSSRNV,N[G
M+'@ #\!4&H:!!>ZK;ZK%<36E];QM$)H=OSQDY*,&!!&>?8T <9XAU:_U?X:>
M(X[R79=:7<R6<SPJ MP%9<-@YQD,,@'KGM7H=O$\,(22=YV'61PH)_[Y 'Z5
MC7OA&PO?#USHAGN8H;N1I;B6-E\R5V;<Q)*D<GT ]!@5MPQM%$J/*\S*,%W
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
M !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M%%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4
M444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !11
M10 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%%
M !1110 4444 %%%% !1110 5#=V=K?VSVUY;17,#_>BF0.K?4'@U-10!6M]/
MLK21I;:S@@=D5&:.)5)5>%&0.@[#M4L<,40<1Q(@D8L^U0-Q/4GU-244 48-
M#TBU\O[/I5E#Y3EX_+MT78QX+# X)[FF_P!@Z-]GDM_[(L?)F??)']F3:[>I
M&,$^]:%% %)]'TN69)Y--M'ECC,2.T"EE3IM!QP.3QTI)=%TJ>"&";3+22*W
M_P!2C0*5C_W1CC\*O44 5+C2M.NH8H+FPM9HH,&*.2%66/'3:"./PI+G1],O
M+F&ZNM.M9Y[?_4RR0JS1_P"Z2,C\*N44 -DC26-HY$5T8896&01[BJL.D:9;
M6DEG!IUI%;2C#PI JHWU4#!JY10!3CTC3(K22SCT^U2VEXDA6%0C_48P:FM;
M2VL;=;>SMXK>%?NQQ($4?0#BIJ* *?\ 9.F_;#>?V?:_:2P8S>2N\D=#G&<^
M]-GT72;JYDNKC3+2:>6/RGED@5F9/[I)&2/:KU% %&ZT72KY($N],L[A;?F%
M98%81_[N1Q^%22:7I\UVMW+86TERB[5F:%2ZCT#8SBK5% %:STZQTY'2QL[>
MU5VW,L$2H&/J<#DU#=:%H]]<FZN]*LKB=D,9EEMU9BI&",D9QCM5^B@"F-)T
MU;B*X73K430+MBD$*[HQZ*<9 ^E6?)B\_P _RU\W;LWX^;;G.,^F:?10!6CT
MVPANY+R*RMTN91B298E#N/=L9-5K?P[HEI*);;1["&0/Y@:.V12&_O9 Z^]:
M5% %-=(TQ-1;4DTZU6]88:Y$*B0C_>QFHSH&BF.:,Z18E)VW2K]F3$A]6&.3
M]:T** *$VA:1<O;O/I5E*UJ,0%[=28AZ+QQ^%)_8&C%(X_[(L=D2[(U^SIA%
M[@<<#VK0HH K_8+/[9'>?9HOM$49B278-RH2"5!].!Q5BBB@ 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 ***1F51EB /4F@!:*1
M65AE6!'J#2T %%%% !1140N8#<FV$\9G"[C%O&X#UQUQR/SH EHHHH ****
M"BBFM(BG#.H/H30 ZBBB@ HJ*>Y@M8_,N)XX4SC=(X4?F:EH **** "BBD)
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
MYD4+\N<XP!WZ^U5(_!UY#H=]X:CN8?[(NI79'.1-#&[;GC Q@\EL-D8ST.*
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
M **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@
MILDB11M)(ZHB LS,<  =2:=7+?$E&;P1>%998RKQ?ZM]N<R*"#ZC!Z4 ;!UJ
MV'B)=#,<PN6MFN0^W]V4#*I&<]<L.U:-<;?V,DWQ#L+2.^N8?^)-.&F0@R$>
M='T)!Q]<?XU1TKQ#JEUI6@V$ESYMQ>W5W!).\GE-*L+.%&X*<,0!R!G@],T
M>@5G0ZU;3Z_<:*L<RW%O L[,RX0JQ(&#G)Y![57\.V^KVD5U;:M>0W)6<M;E
M9"[I$>BN2JY(.><<BL6]LIK_ .(VH0Q7]Q99T6',EO@/_K9<<D' _P _4 [.
ML[7=;MO#VE2:E=QS20QLJL(5#$;B .I'<BN3T+Q)?ZW'X6L+JX>,ZAI\ES<S
M1_(TS)A0H(Z9R6.,'@=!5'Q#?WK^%_%NCWDS7*Z9=6RPW#@;F1VC<*Q'4KG&
M>_% 'I,C^7&S[6;:,[5&2?I5+1-7M]>TBWU2T618+@$H)5 ;@D<C)]*R5O9M
M9\7ZKI!NIK6'3;>$J(6VM(\@8[\]PH4 #IDG.>*YOPKJ%VOA_P +:) ZK]LM
M[J5V,QA,AC?[H8*2/O%CC!^7KUH ])J*XMK>[C\JY@CF3.=LB!AGZ&N'NSXE
MT]-'L[O7?WDVLFV9K<J[&!HW=0Y*#YP .<8/!(-.UZ[U'P\3%?7>IS:6MH$7
M5(&#26LV6R\R*!N7!3G! V],G- '<111PQK%%&L:*,*JC  ]A3ZJWEZMMI4]
M_&OG+% TRA3]\!<C'UKC'U;4[;POH'B:._EGGO9;;[7;D@QR+,0"BK_"5+#!
M'/'.: .FU+Q%;Z?-/"EI=WLEJB27"VD8=H5<D*2,@G[I.%!.!TZ5JO(D:AG8
M*"0 6..2< ?B2!7(Z#:[?B)XF?[1.=BVAVE^&RC\'Z=JE\=Q-+_8&)YH@VL6
MZ$1OM!!SU]<8&* -JRUNVOM9U#2HXYDGTX1&4NH"L)-VW:<\_=/:M&O/[BTN
M9/%'B_[-J5S9M!86CAX2NYF"2E<D@\<<CO5FSUO4M=?1[ 2!)+K1(K^4K.8&
MD=\ X(5C\IYP,?>&?2@#MZS;K7+:#4/[.ACFO+T()&@MU!**>A8DA5SVR1GM
M2>'DU.'1H8=9NH+N^B+))- >&P3C/ YQC/'6N>\!,QUSQ>+K_C]&L-NW?>\G
M:/*_#;G% '2V&L6^H7=S:)'/%<6JH9HYHRI7=NQST;[IY!(]ZOUSOC#5CH>D
M27=J4CNYY(+<S$ F)7DVAR#Z;F(SQFJ=_/J&D^*;32X+^Y>UU.RN&!<AWMY8
M@IW@L#P=V,'(STQ0!UU5VL;-KD7+6D!G'24QC</QZUY_8WVMOH?A#53KMV9M
M4F2VN$94*%7C=MP&W[P* @G//;'%+JVJ:OI>C>,[6#6+IGTGRI+6XDV-(HDC
M#%2=N",YQQD>M 'H]%<9/-JN@^+]-CEUF6[L]5@N#.MRJA+=XTWAUP!A>V"3
M[DGFH-*U+4?[=T"+[?=7%OJEE.TL\H 6=U",LL:'E!\QP"!D$<=Z .ZHKS6V
MU+6H_#ECK<FMW<LT>M?96B8($EB-R8R& 7KCIC&,# K7NM5O-!\0ZI87=U-<
M)?VPFTD.V/WF=C0@CON9"#UPWM0!T=]K5KIVHV-C<)/OOF9(Y%B+1JP[,PX7
M.>/6M"J=MIXCMK1;J5[J:U7_ %TAY9\8+$#C/7Z9XKEWUB[M/%"VFKM>6J3W
MP6QNXFWVLZ=!"P'W'SGJ,DCKCB@#M**Y_P =W=YI_@K5+VPNI+6XMX"Z21A2
M>.W(/^-9DW]L:7XQTJU_MJZNK;6HIUE5T3_1W1-X>/Y>!VP<^^30!V=)TY->
M<Z7JVKV_@/3O$5SK-Q/<Z@(;9A-L6&'?,%,GW200">3D>V!BM^+3]:@GU**\
MOU^P3VV^"$7+231.OWB&* [3D<'.#]: -'3_ !%;ZE=0QV]I=F"YB:6"[\L&
M&50<<$$D>HW 9'2M>O.] O+FR\+^#]-MIFSJD'S&2<I@)%NV*P4[<GT&>#C'
M6IM6;Q+H^E11SZT!(VL6\<)B82.()' V2%D!..<$8R.N: .^HKB;RRU6'Q1I
MVB)XEU+[/=V=U(\A$7F JR;2"$[;L<@\#C'6FF77]<_M:+2]06"YTV[^S022
MW!7;L526DC$9#;LD_3IC'(!V5U<+:6LMPZ.ZQ(6*HN6('H*ATG4X-9TFUU.V
M5UANHEE02 !@",C.":YI;^Y\0WGB"U>]>W73(8XXUM7P"[Q;S(?[PYP >,#I
MS6CX"_Y$+0_^O&+_ -!% '04U)$DW;'5MIVM@YP?2N,L]7NX_$T6GZT][9SS
M74WV:=&WVE[$0^Q%QPCJ"IP<$E>IS63I6HW.B^$VD@NY_-O=?>R,\K;_ "5:
MX93)SWQGD]\4 >ETR:3R87E*L^P$[4&2?H*XCQ!KVH^$=5NXX));VU?29KN.
M.=MYAEC(&=W78=PR#W'&*W;&SNH[BUOAKDEQ;7%KB2&4!A/(1N#H>-O&[Y0,
M8[<4 7]%U:WUW1[;5+19%@NDWH)  V/< FKU><?#743J.EZ7I<D\]D;"Q618
M =OVQ6/W\_W%/&!SGKCH?1Z *\MV8KZWM?LT[B=7/G(F8X]N.&.>"<\?0U0N
MO$=O;WCV\=I=W8AF2"XDMHPZP.X!&X9W=&4G .,C-5-3N[R#QUH5M'=R"UNX
M+HRV^%VED";3G&?XCWQTJGX,M/*UGQ*_VB=]FJ%<.^0W[F+D^] '745A:]._
M]IZ=9I>3+YPE9K2V^66? &#OR-BKG).1DD#V/+P:SK5UX9\*W!U2:*>[U9K.
MX950^8@:8 GY>O[L>WJ#0!Z+17"JFNW*>*M$L-8NFNM/EB>QN)"I?+Q!]C'&
M"N<CIQGVK5T#6!XEN+.^LYI8[6&S!GB+9S,QQL;W3:V?]Y: .EJO#=F:\N;;
M[-/&+?;^]=,)+N&?D.><=#5BN(N=0U1+KQO$FJ3C[!:Q2VC;4_<DQ.Y &W!&
M1W&??O0!V]-DD2*-I)'"(HRS,< #U-<7IUWJ=MK7A=I=5N+J/5[)_M$,NW8&
M6-7#* ,@Y)!R3G-7?B0C-X,N&6:6,K/;_P"K?;G,R*0?48)XH V/[;MO^$C&
M@^7,+DVIN@Y4>64#*IYSURP[5HUQ=[823_$FUM([ZY@_XD<H:9"/,(\^/^(@
MX[<XJGI'B#5;[3O#VGRW(DGOC>K+,TODM+Y$A0#<JG!(^8X /RGGK0!W'V&S
M^U?:OLL/VC_GKY8W^G7K5BL?PW!JUK9W%OJ]Y#=RQW#")XWWLL1P55SM7+ '
MKCD8-8UY<:UKVIZ[8:7=K:3:<\<5NWV@IL8QJX=E"-O!+$8)QA> #S0!V-%<
M?<ZI>:)X@TJ]U34-^G7]FT<HC;,,5RJA]RG&2K*' 'M2/=ZHNI:9HCS.);RV
MGO)?-N#$V0RXB5PI/RASTY.T'/7(!V--DD2&-I9'5$0%F9C@*!U)-<+=OXDT
M]-!LKS7 9Y=6-M*]OM<M$8W==Y*#YP .V#P2#6;XCFO1X2\::9/J5U<)IT\8
MAE=P)"CHC%&( R,L?PH ].HJ."+R(5C\QY-O\4ARQ^IK@GUS4[SP'>^+H+Z6
M&\MIII$MR1Y2QQR%?*9>^57)/7)X('% '7ZEK4.GS"V6WN+RZ:%YQ;VP4N8U
M(!;YB!U8#&<G/ /-7+2Y2\M(;F-9$29%=5D0JP!&<$'D'VKD8X3<_%&WG,MQ
M$9-$\[R]_P!W]\OR_3U%;WB>UU&Z\/7B:1=26U^L9>W>/'+CD*<\8/3\: -:
MBN/C\2_;M%D\1V#2O;6&E-.\&[(DFV[MC=\H%.?]\>E02ZCJ.GZ?X9UB+4)K
MLZG<6\-W$Y!203#[RC^':<$8[=<]: .FTG6K;6&OEMXYHS8W)MI1*NW+A5;(
MYZ885HUYO>WEUIWASQQ?6-P]O<V^K%XY$/(/EPCZ'@FNCGN;P_$)=,CO9HK:
M?1Y)MB[2$D$J*&&0><$^WM0!TM-61'9U5PQ0[6 /W3@'!_ @_C7G>CZGK/\
M8O@_6I]8N9Y-2NEMKF%POE.KK(<X SN!4'.?7MQ4VE,]AH_BJZ&LS6CKJTL2
MW$V9MO\ JP,+W8_='U'% 'H%%>?W.JZK;Q^,+>*ZO+46&FI>6GG,DDD3%)"1
MD[N"4'&3CL15G4;76[/PHFN6VM7]U/&L-W-;DH%>, &6-<+D97)').1UY- '
M;T5BZ/>C6=0N-3M;IY-.\N..!0?D=L;F<?@RK]5:J^J:C--XQT_0!-);P36D
MMS(\;;6E*E5"!NHZECCG@=LY .BHKSF_UK7+?3M5LDU.59=+UBVMXKK8I,L4
MK1G:_')4/@D8)XSWKN]-LI;"V:&6_N;UC(SB2XV[@"?N_* ,#Z4 /M[LW%Q<
MP_9IXOL[A-\B867*@Y0YY'./J#5BN!U'5-6@TKQPR:K<"337#6LFU,QCR5?:
M/EQC)/;/OGFKMM+J%MXLTVSEU6ZN8=4TV625'V@1NFS#)@ KPY'?MU- '7>3
M$9A/Y2>:%VA]HW8],^E/KBM%OM0GCF\.7=_<-JMIJ)2:XW .UN/WBR8 P R%
M4X[G--_M'4-8TCQ)J4&H36EQI5U<0VJ(1L3R0#\ZG[VX\G/8C&* .F;6[9?$
M2:&8YOM,ELURK[1Y956"D9SURP[5HUQ&GWSZOXST&_EC,+WGAV25D!(VEGB)
M _.JJZQJG_"%6]]_:$QN4UK[,9.,O']J\O:>,'Y>* /0::9$$BQEU#L"57/)
M QD_J/SK@-2N-8DD\:E-=O(AHZ+-:",1C!^SB3:?EY7/&/3J35FV:34/B!H]
MW+<S(9M!:<HDF$!,D1( ]#W]<#TH [BBN"LM8OQK/AYX]1GO(-2GN(I[@@+#
M. CLIC3DJ%*@ \9 [YS5G0+75=9;59+CQ%?I]DU*ZMHEC$8&T8"EOEY*G!&,
M#CIR<@':50UK5X-"TBXU.ZCEDAMD+N(5W-@>V17->'M5OM4M]/TFXNI5U.PN
M)%U1@W+"/C\G+QD>V<=*TOB!_P B!KG_ %Y2?RH US?C[1:1+;7#K=*S>:J
MI%@ _.<\9SQUZ5;KEKJ\O+?Q7X8M8KN1;6[MY_-@PNUBD:E3G&?XO7'2L6XU
MG4;WP':>*8=2N(;FZNHOW<;#RTC><)Y>W'93R>N<\XXH ]#JO-=F&\MK?[-/
M(+@M^]1,I%@9^<YXST'O7*RZA?B_\:6XO9@EC;12VO(S"QB9C@_4#@YIMIJF
MI27W@EGOY2FHV;M=187;*X@#;CQG.3ZX]J .CUS6[;P_IK:A=QS/"KHA\E0Q
M!9@HZD<9(K1KS'6KR?Q%\,YM?ENYE::]3%NK8C2-;I4"%?7@$GKGOCBM+Q?J
M]_90:Y>6&HSR2Z<(6C2$!8K7@$K)D_O"V<XP< CIU(!W1D02"(NN]@6"YY(&
M,G'XC\ZAL;LWMN9C;3VV'9-DZ;6^5B,XR>#C(]B*Y@6[O\5KD"[N%']C12!1
M)P"97' /&. <>M9NG^(M3_X1_2()[Z1Y]1UJ:RDNV"[E19).!@8!(0*..,G%
M 'H-%<)K&I:KI-[XATJWU"<Q1:*VI6LS8=[=QN4IE@<@E<\\]>?2;3KO4K77
M_#7FZI<74>L6$C7$4NW8K(B,&4  @\D').: .UHHHH **** "BBB@ HHHH *
M*** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ JI
MJFF6FLZ;-I]]%YEO.N'4,5/7(P1R"" :MTC,J*68A5 R23@ 4 94?AO3XM2A
MU%&N?M4,!MTD:X=CL)R0<DY)/.3SFJLG@C0I=&_LF2WE:V6<W$9,[[XI222R
MMG*G))X]33+3Q$UYXTDTR"ZL[BP73_M(>$Y97WA2"P8CIST'6M*QOQ%I$-SJ
M.HV,C'(:XA8)"QR>F2?3'7L: )=,TNUTFT^S6HD*EMSO+(TCNW3+,Q))P .?
M05 = LCJ\^J@SK=W$(@=UF8#8,D #.!@DGCUJ.Z\4:-9W=C:R:C;[[\MY1$J
MXVJ"2V<],C'U-7CJ5@)Q ;VW\TN8Q'YJ[MP&2N,]<<XH S(O!^CP:?8V<,<T
M:Z<Y:SD69O,@)X(5LYP1P0<@U)=>%]*O-)GTR>*1H+F433D2L'E?(.68')Y
M_(#H,5G7^N:EI]MH3_:]/NA?:D+2XEAC.PJ=YRAW'! 3!SGG/2MU-7TR2U-V
MFHVC6ZML,PG4H&],YQF@"I=^&-.O-2AU)S<QWD47DF:"X>-I(^NURI&X9YJH
M_@30'T6VTG[/,L%I(9;=UN'$D+DY)5\Y&<]!Q[5M/?V<<K1/=P+(B&1E:0 J
MG]XCT]ZRH?$=IK.B_;M'U.RC'G!/,N""NT2%3D @@L%.W/J* 'R>$]*DALXB
MMP!93>?$PN7W^;@C>S9RQP2.2:GO= LK^>XDF:<"ZB$-Q&DS!)4&?E(_$\C!
MYZU;NM0LK$*;R\@MMYPOG2!-WTR:=->6MNR+-<Q1%P2H=P"P R2,]< 9H D5
M$2,1JH5%& H' 'I639^%M*L3$L$4@@@E,T%LTK&*%SGE5/3J2!T&>,5IVUU;
MWMNMQ:SQ3PO]V2)PRM]".*EH SK30[.RU>[U2$S"YO=HG+2L5?:,+\IX& >U
M/U;1[/6K5+>]1V6.59HVCD:-D=3D,&4@@UDW7B0_\)?I&E65W97%M=B<7"H=
MTD;(F1R&P,YZ$=JU+*\VVD\][?V4B).X$L1VHB[OE5B2?F P#[T 5U\+Z:EQ
M?3H+A7U")8;@B=_F100HZ\8!(R.>35>Y\$:)=65A:M%<)_9J[;2:*Y=)8EQC
M:'!SC QC-:XU*P-K]J%[;FW!V^;YJ[,^F<XH.HV(LQ>&\M_LQZ3>:NSKC[V<
M=>* '6=G!86D=K;)LBC&%&23ZDDGDDG))/))JC>^';"]U%=2'G6U\$\LW%M*
M8V=?[K8X8?4'%5/%>NS:;X-O=;T>:UF:"+S(V8>9&XS@XVD?SK7%_:;GC:Z@
M$D2;Y4\P90>I'84 5Y="TZXTZXL+J W,-TN)_.<NTGU8G/';'3MBF0>'[.'<
MQ>XFE:'R!-+,S2+'_=!/3MD]3@9)P*;?>)]&T]K)9]0MQ]OD*0$2KAL DMG/
M08QGUP*LVL\LNIWD9O+66%%C,<,7^LBR#DOST...!T/6@"BGA'28[+3K-%N%
M@TR02VBB=_W; $ YSS@$CG/6LGQAX9#>'M?DTJVN+G4=7B5'02DAR,!3ACA<
M >U=1;ZC8W<KPVUY;SR1_?2.56*_4 \4T:KIS2QQ"_M3),Q2-1,N78=0!GDB
M@"I:Z)9,JSSQSS.UN8 +IRQCC;&Y!GUP,GJ<#).*K6G@K1;)[&2%+K?IX86S
M/=RL8U( VC+?=&!@=.*WJKVVHV-Z76TO+>X,?WQ%*K;?K@\4 90\&:.-,&FA
M;D6JW'VD)]I?B3=NW9SG[W./6F"VN=8UZ"2^TDVUOI$SO;SRR*[3N5*JR@$X
M7!).<'.WT-;$&HV-S*(K>]MYI"I<)'*K$J#M)P#T!X^M#:E8)+)"][;K)$NZ
M1#*H*#U(SP.: +-90\.6 G\QO.=!<F[$+REHUFR6W 'IR<XZ9YQFK:ZG8-''
M(M];%)FV1L)5P[>@.>3[5!:WPCBNYK[4;)HH[AE5XV"K$O&$<DGYAGGIU'%
M%#QU:7>H>"]3L;&V>YN;F$QQQIC))]SP!5NST:U'EW3?:3.(/)C::0EX4.,J
MOH>!D]3@<G%7H+VTNI9HK>ZAFD@;;*D<@8QGT8#H?K6%J_B0VVOZ/86-W93+
M=W9@NH@=TB81FSPW'*XY% %R#PMH\'AUO#WV8RZ:RE?(ED9\ \X!)R.>1SP:
M33O"VFZ78S6EN;HK.GEM)+<O)($[*&8DJ.3P,59@O?*-_+>:A9&"&;"E#M\A
M=HXD).-V<GMP15F&^M+B>6""ZAEFAQYD:2!F3/3('3\: ,B;P9HEQH,&B2P2
MM9VS!K?,S;X2.A5\Y&/K3I/".DRZ;%8.MRT4<ZW&\W,AD>5<8=GSN)&!C)[#
MTK374;%IS M[;F9>L8E7<.<=,^M33316\32SR)%&HRSNP 'U)H H3:%9SZO;
M:K(9C=6J&.)A,P 4XR" <'.!G/I52]\&Z+?ZPVJRP2K<2J%G\J=XTN .@D52
M P[<_0UJB_LV>&,7<!>==T2B09D'JOJ/I3&U735ECB;4+422.8T0S+EF'50,
M\GVH HWGA72[W4WU%EGAN)8O)F:WG>(3(.@<*1G%7=*TNTT738=.L5=+>!=L
M:O(SD#ZL2:N56M]0L;N5XK:\MYY(_OI'*K%?J >* *<'AVP@FB?]](L$S3PQ
MRRETCD;=E@#_ +S8'09X J+_ (1+13:7UHUJSV]_(99HGE<J&)W$J,_(=W/R
MXY^@K/MO$=UKFJW<&B7NF[;&[2)HI3N-PFU6D92IXQNP.",KSUXUKOQ#IEIK
M,&CRWD*7EQ&TBHS@;0, 9Y[D\#O@^E #H-"L8C*TJR7<DT/D227+F1FC_N<]
MN>?7OFJND^$-)T1'2Q%RJE#'&'N9'$*'JL>XG8/I4'AGQ(=0M95U6ZLXKO[?
M<6L2(?+\T1N5&U222>/>MJXU&QLY8XKJ\MX))3B-)954N?8$\T 9,/@O1K>/
M34ACGC_LO=]D9;APT8;J,YR1QT.15K2-'_LR]U*X$DFR]G\WRVF:0*><D9^[
MG/0<  5?O+N"PLI[RYD$<%O&TDCG^%0,D_D*QM(U#6]<TR+585M+*WN5\RWM
MYHFDD,9Y4LP8!2PP< '&>] %^YT6SN]7M-5E$INK(,L)$A"J&QN^7H<X'7TI
M--T.STFYN[BU,P>]D\V??*SAWP!NP>G  XI++4V31XKO6O(T^8DK*K2816!(
MP&.,].O>K?VZT$,4WVJ'RYB%B?S!MD)Z!3W)[8H IZEH%AJMY:WERLRW%IN$
M4D,[Q-M;&Y25(R#@<>U4T\%:)%;VUO%%/'%:7)NH%6X<".0DG(YX'S-QTY/'
M-:1UK2A;R7!U.S$,3^6\AG7:C?W2<X!]JFFO;2W"F:ZABW*67?(!D 9)&>P'
M- &5<6"Z%->ZQIFFW6H7M\Z>?$EP!OQA0V'(48''%2Z/HZV&D3PO D<UY)+<
M7"0MM'F2$D@,,= 0,^V:OIJ%E)9?;4O(&M2,^>LJE,=/O9Q35U*P>S^V+?6[
M6W3SA*I3T^]G% $&@:6=%T:#3S*\@B+;2\A<J"Q(7<>3@$#)].W2H)?"^FRR
MZI*XGW:M&([O$[#>H&T <_+P2.,=:O?VIIY^T?Z?;?Z,0)_WR_NB>S<_+^-+
M_:-CY,<WVRW\J9ML;^:NUSZ YY- %!/#&FI-ILP^T;]*0I:DSN=BD8(//S<
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
MDDC_ &@:Y[2K-+:?P%;:PD?G#[6 MR!O$15O)5L^Q4 'OQUKU,@'&0#CD4M
M'#>%-:T?1K?Q$]S?6UK:QZY*J?, JA@F, = 3N]N#Z5M^.%U!O!6K+I8<W9M
MFV"/[Q'\6/?;G%:M_8Q:E9O:3Y,,G$B@#YE[CGIGU'/IBK% 'GTFLZ!J7B[P
M?/I<]L\*PW,>U,?N@8EVHP_A/;!JKIOV&7PQ<0PZLFENGB*X-I<*%:.-][L@
M93QL(&/Q%>EA0.@ H(R,&@#SP75QJ&E6[W-[:Z+JMOJTHM[N$;[2ZE$9!;#'
M[K!F'7.X'O4=EJEQ_:?AW4-5M8+*P2:]AEDB8FV%R6^64$]%?Y]I/]X^M>C[
M05VX&.F*" 1@C(]* /+]=C$/AGQY<0.HTN[D0V>#\DDFQ?-*>N7].I!K=GU*
MRL/B1!>75S''!>:*([>3.1,XF)*KC[S88<#DYKLZ" 2"1TZ4 >5:+=VT'A3P
M1=3.J06^I2K*[# C)68 'TR2/S%7;]9IM3\?P:(56^FL;8QI%P[-L??@==V#
MCUR17I &!@4M '"336.L7OA*XT-HBUNQ\]8\?N+;RB'20?PC<%7![_2N?SI,
M7@6XN(OLJ3Q>(=T<B[0R 7>1@]0-F3],UZT !G  SUI: .<\>+>W'@;4AI:M
M-,T2D+$<F2/<"X&.N4W#\:S;F:PUCQ7X=O\ 1I8);>*WG%XT9&Q;8H-J2>GS
M8PI]&]#7:T@ '0 9YH XSX86NF'PI;7-O#;&Z22X1Y452Z@S,0I/4 @*<>F*
MF\3QW&E>)=.UJRM?M#7D;Z9/'MR&+?-$6_V0X()]&KKJ2@#B?!]A=6ET_AZ[
M1GM_#T[M!,Z@"59!F(C_ '5>0$?[M<WJ#:=_P@/BZ-3;[5UYC$JXXS)'@J/H
M#T]#7K5+0!YYJS1P^+=2A\/M!'=S^&G^SK;E1OD#$IC'5L'(]O:JJZQH=XG@
M8V4T/F6MR(Y8Q_K+<^2P97'53N'?KC/->FTFT Y 'K0!Y7JQT_\ X1;X@0Q_
M9\?;2T:#'WC'&,@>NX-T[YK;4Z9%\0=,6QEMX5N=%F0M;E06RZ%>G4_>(_&N
MZJ"\M_M=E/;":2'SHVC\V(X=,C&5/8CJ* /,O#=WH>J)X7L9]7TL2:2[[$>3
M$UP2I55*,!M)R"1D\@8SUKM9;7Q)(E\EY=:=-:20RK'%!;.LN2#M!8N0??BF
MVGAW4!;PV6IZK;WEG $"HEB(G8+C:&;<1V'11^%=#0!Y;IFJZ?/9?#^".X21
M[5_)N% )\IQ;LI1O0Y['FH)+#1;KPGXJLU@MFU/^U;I+2- /.$GF?N@G<#/I
MQ][WKU?: #M !]<5D>'=#FT2.]6>\CNVNKR6ZW+!Y>PR-DK]XY&: (/%4&JR
M> M0@LF9]1-D5!C^\S8^;;[D9Q6-)-9ZQJOA*Z\/O&7MRWG"(C]S;>60R.!]
MWY@H /<>U=S2  9P ,]: .2\%7-M+J_BA8IHG8ZJS *P)*^7&,_3((_"EUF>
M"R^)&BSW3"..6PN8D9APS[HR%'O@'BNMHH \DE?31X&U2]5K;[2OB(R1RY&\
M#[6""#UQMR?IDUJ7M[I3ZUX@T7Q)?7$":E(CVRI&&6[@,:!1&=A)(8'@'J<C
MG->CTF 2#CD4 8FN:1+JW@F[TB NDT]D8H_.;+;MO 8_7J:I>%?$VF?\(]96
M=[=0V-_9P)!<VEPXCDC=0%/RGD@XX(ZUU--*J6#%1N'0XY% '(W^H?9O'VE7
M^HAK?3)K"6*WDG&U8[@NI^;/W2R#C.#U'7(KF;RUMH;57F$(TZ;Q9%)8A\;?
M*++YC)Z(6W=.,<]#7JI (P0"/0TM ' 1V^B_\)IXI26*R\H:? =K!=H.V0,<
M>N-N?PK)TUM+G'P\DOS;.GV&>*1IL$;EC3"L3Z'L>]>JUBZCH4]_XDTO5EO(
MXX].65?(: MYGF  _-N&.!QQ0!Q0-CHD>H72V\0T>X\00M8RL2+>W<("TV%(
MR@<$ 9 )QTZU1U.XLV\+^-(9IUE;^U(IHR\>W.X0X91CC/.,=0">>M>N8XQ2
MT <5$FD'XE?9+<6GD76AE6BCV[9?WG P.#\I/X>U)X7M+R._'AV[B<VWAV5F
MAF;I,C#]Q]2JLX/H54UU][%<3V4T5I<_99W0B.?RP_EMV.T\''I5?2=.?3K9
MQ<737=U,_F3W#($\QL <*.    ![=^M #]/U:PU99VL+N.X%O,T,NPYV.O53
M7*QW=K8^.?%274BPM/96TD6_C>JI(&8>P/!/J1ZUUMI8PV;SR)S)<2>9(Q &
M3@#MVP/\DDU9H \KTDZ=::'\/IXS;17'V@+*X*AL&%U8$]>NT<^PJQIUQIE^
MDF@ZY=WJZQ;:F\XLT0!Y)/-+1R(VS.W!'.< =<"O3*3 SG'/K0!ROQ-DCC^'
MVJ"1PN]45<GJ=Z\"L76E1/%M_;>'V@BNI_#,JVZVY5=\F_*8Q_%C)%>BT4 >
M?"6UU:R\&?V(R"]L[F+S8X^'MX1&1,KCJHX"D'OBL^^N9&T7QB;,F=5UI)+B
M.$[F>W B\S '48# ^P->H  $D 9/6EH \XU34K/5?%XG\.W<$]Q/X=NHK>6W
M8',NY2BY'0CKCJ*G\.7?AS7)-(G6ZN9+[38&BDM9(UC%HI3;(LH"#Y>,<GKC
M'>N_"@= !]*  ,X'7K0!YIX>L]"E^%JS/-#92;VB>^A13) 3<_)N)_ASL)!X
MVBNE\'WM]<7&J0:@MI//!)&#J%GQ'=Y3@D=G  ! /<5T](  ,  #T% '&PW5
MK:>-/$=OX@>***[AA-JUP0$EMPA#HI/7#%LC_:S6+;>;IN@>!+;5Y?+N4U#<
M5G;#K%LE";L],*R#GOQ7IA .,@''2EH Q?&$;3^"=;CB0R,^GSA549)/EG&*
MY4WFE:EKW@<"6WGA^RW'#8*EO+0#KP?F!'U![BO1** /*8[Z.RTJZN()&&G6
M/BF62Z%JJN8H"&VOMP1M#D-T[9'2NS\*KH\]UJ6IZ/=3WB7S1O-<-@1R. 1\
MH  SC&2!Z=P:Z.D  & , 4 <1!)'X6^(VLW>J.(+'78X'M[N3B-9(U*F-FZ*
M3G(SU^M:?B>^EU3PIJT'AZ7[3<FT?9+;L& /]T,/XB,X Y'MD9Z0@,"" 0>H
M-  4    = * .$FFL-8O/"5QH;1%K=CYZIC]Q:^40Z2#^$9"K@]_I7/&/21\
M.!(BVHD37?D8;0RK]KR,'J!L)_"O7  ,X &>M+0!Y_?'2(/&.MVZ?9([>7P^
MA>-=H1V#R=1T)"E?PQ6=;0Z3_9?P\+):;FVK,2%R?]'(8-_P+ .>^*]1HH \
MKU"18V\31:>JR6D&M6EQ=VT SNMPL?FX4=1D'/T.:V]1-IJ'BQ]2L)H)[#^Q
MI5OY48-$_(,0)Z%OO$=\?6NYI  !@  >U 'ENDMIMMI/P^N(FMHI_-"RR*5#
M<P.K!CUZX!SWQ7>^([K3;;3!'J\*36-U*L$PD7*@-G!(],@<]NO:M:DH X#P
M[9KH7C&#3/#FJM?Z%<V\DD]J9?.6Q(QL*OS@,20%)[$\]LJUNO(\*6*<M#IW
MB%WU6(*28HO/D(+CT!*-] #7JBJJYVJ!DYX%+0!YQXCAO+_5/$-[X;?SHI=#
M"3-;-E99]YP 1U?RMPXY&Y?45K6>L^%]:A;5-+"&>#3GA>0 H+:+&?+?H <@
M8'7@XXKL  !@  >@H  Z#% 'F7@#5H].71[;6986%YIZ#3+G.!%M51) 1GY6
MS@Y_BX'8"NL\9)&]II^-6&E72WJM:7#J&C\T1O\ *X/&TKN'U(KHJ0@$8(R#
M0!YG>7Z7^F>'8]4M;.WD_P"$C(F$39@N,"4-*N?X&9N_<T7U]I>GW'C2-K>*
M>U%W9L8$<JBY6,-(VWG:K#+8ZXP>M>F4M 'FB:A;F]\<NU\DXN-+AE254V)(
M/*D4LOJN=H!R<\#)JW]LMMOP]/VB/'^\/^?9E_\ 0B!]:] HH Y?XBH'\&7&
MY2R+<6S2<9P@G0L3[  DUSVN:<+G5-0N_!T<(']AS13O98"2.2/+0%>"^ V,
M<@8]17I-( %&  !Z"@#B_#EYX>U[5['4].N[JYO;:V:%H_+6,6T9'*2!44<$
M  >O(X!-2>+=271O$^D7VH7,UII9@FA-S&@989F*%2V5.,J& ..Y[$UV  '0
M8S00",$9% 'FFHV>@6MOX;6T.^SEUTRJ]U@!T9'+%00,1EB., 'MP15?6C;+
M:>/[:T\ORXY[6810XP $B\Q@![@Y/J#7JE% '%ZE=Z=<_$'PK=6TL#":WO )
M%Q\ZE4V\]P><>O.*P)[FW3X7>*K%I%6YBNKM9(SPREIF*@_4'(]:]3HH \_U
M'5K"T\4SIK6H/:Z=J6G0QVEPJ*\,@&_S(]Q5L$[@?<8]J;IUU8>'?%EE!?22
M6FEG2%ATR6_;: 0Y+*2W1BNS@X. !UXKT$@'J,T$ ]0#0!R7PT> ^%&B@P%C
MO;D! ,;1YSD#';C%==2 8Z4M !1110 4444 %%%% !1110 4444 %%%% !11
M10 4444 %%%% !1110 4444 %%%% !1110 4444 %8OBW6YO#WAVXU&WM6N)
M$*J "H"EF"ACDC(!(X'_ -<;58?C/3+O5_"=[8V,:R7+A&C1F"[BKJV,G@9Q
M0!8FUQ(KB.T6RNI;UX3,;6/RRZ(#C+$MM&3P/FYY]#B?2=6L];T]+ZR<M$Q*
MD,NUD8'#*P/0@C&*PA9ZM:^+E\0)ISS0WMBMO<6R2IYD#JQ93EB%((8@@'@^
MHJ_X6T>;2+*\:XPLU_?37KQJ<B/S&R%SWP,9]\T -_X2RT;6I])AL=0FN+::
M**8QV^5C\SHY.?N^I_G@XD/BG3ENK2)Q,D-]*8;6Z9/W4TG/R@YSS@X) !QP
M3572K&_B\7>(+J>RDBM;X0>1/YB'.Q"IX#9')XX_*L?PMI>I:?#::+?^%K4R
M:>ZJNJGRC'(BGY7 ^^'QQTX/)/:@#H'\4V22PX@N7MIKO[&EVB Q>;DKCKNQ
MN!7=C&>].N_%.G63J9A,+8W'V4W83,2RYV[2<Y^]QG& >"<UC^&;7Q)H<1\/
MOIL<EI#.YAU/[0NTQ,Y;E/O;QDCICW]:FEZ3J6G7%SHUSX7MKZ,W4DMOJDGE
M,FQW+YD!^;<NX\ <X'0<T ;4>M6$&J>()(8-1EN+!(FNH^2I&UB/*5FQT!)Q
MC/'4U>MM?M[NSTNZ@@G>/5,&' 7*@J6RWS<# [9].O%4=(L+Z#QEK]]/9M':
MWJVX@E+H0_EJP;@'(Z\9%0^&?#=UI,M];7#C[%!))'I@4\I#(0[?DQ"C_<]Z
M +X\4Z=]KLX6$R17\ABM;ID_=3.,_*#G/.#@D ''!-7=4U.WTBP>]NM_EH57
M"+EF9F"J /4D@?C7)>%=,U*P@L]&U#PM:B73F51JG[HQR(GW74??WD#'3@\D
M]JZ'Q0FKOHCKHBEKKS(]R*X1WCW#>JL>%8KG![4 9^M:U'J/AOQ);Q"[LKW3
M;60NI?8\9,9=&#(Q!!QV/;!JDTTXU;P(PN9P)XI!,OFMMDQ:L067."<\Y/-5
MQH6KI_PEABT;RH]7L42V07*,V\1LA#$GKELDY/?DU=;2]4-YX/F_LZ3;I:.+
MO]Y'^[)@,?\ >YY.>.WY4 =/J%_;:782WMY)Y<$(RS8)/H  .222 !W)JC%X
MAA?43ILUG=6UZ8#/#!,$!G4==A#%<@XR"01GTYJ+QCHUSKOAN>SLI%2Z5XYH
M=Y^4NCAP#['&*K-8WNK^(])UFYT^6Q72X)_W4DD;/))(%7:-K$8 !Y)&210!
M2\*F?Q"[ZM>C4+>XM]0N CK< 1LBNR"(H&((  SP.1D'UU+C7KA/&<&@KI\S
MPR63W#3*Z#^-%!'S @#<<]^1@&H_!=E?Z=I,]OJ%D]M(UY/,H+HP*O(SC[I/
M.#1?6.HQ^.;+5[:T^T6WV"2TE(E53$3(CAB#U&%(X[^G6@#$\,^)H])L+B*_
M74)XSK,]K]K8&1(LS%8P[L<XZ#C..^*Z;5/$MCI27,DT=Q)#9X^URPQ[EM\@
M'YN<G@@G ) ()ZURDF@ZX_@Z^T_^RI/M4^LF\5/.BQY9N!+UW8S@8^M66T[4
MM/\ $.IB3PO%K%GJDHN(9W:(&!BBJR2;OX1MSD9^AH [0W$?V7[2F98RF]?+
M&XL,9&,=:P],\::=JED+Z*VOHK-H1(EQ+;X1R7V!%()RY) P.N:VXU:VLD41
M*S1Q@>7" H) Z*"< >G-<1;>&]9_X5=9:0;-(]4TYXI5@F=&CF:.0/M)!(PP
M&.>_6@#<NO&FFV,6HF[@NX9M-B$T]N8@9/+/1UP2".#SGCOBC_A,;/\ M!+$
MZ?J(FF@,]L#;_P#'R!C(3G@C(SNP._2LB^L=0UGPMJL=OX2CTNZNK-K=8RT(
MDD9O]I3@(/<Y/H,<WWL=2?Q-X>O?[.E$%E9S13L9(_D9Q'@8W<_</3U% %RW
M\7:?<Z7#?)%<AIKLV:VS1@2B<$@H1G (P23G&!UJGJOB?2;CPMJ-W>1ZA%!:
M3FVNHX<K-%("O&Y&P.J\AL8/6LN#3?$UG8W*V^G3*L^NRW4\*7$:22VSDG"L
M&^4YVY&0<< U6N/#6N?\(KXHTN'2$5]1O_M%JL=PFW:1'QR1C&PYSWZ9ZT =
M9?>*+:RU>325LKZYO$MOM(C@ASO7.."2!G/K@>^<"J<_B/1]1MM O<WOEW]V
MOV4Q;D DPPVR8(&!ALJ<\COBE^S:C_PGHU7^S9OL9TK[/O\ ,CR)/,WXQN].
M,^OMS6'9:%K<7A[PS9R:5()M-U8W-P/.B($>9>0=W/\ K!Q['VR ;EUXZTZU
M74':RU%X]-F\J[=+?B(8!WG)'RX8>_M6E=:[;07@LH8IKRY-L;KRK<*2(\X#
M?,0.3P!G)P:YB[T;69M-\9VRZ7)OU9V-H?-BPX,2Q\_-QRN>>U-OO[37Q#:S
MZ;I-S+=6^EK!=_9KJ!98]S956$F5.-K$$'//IU .MT76;77],BU*R$GV>;F-
MI$VEAZ@>E4KSQ;864UP)(;EH+6YCMKBY1%\N&1]NT')W'[Z\@'[WUI_A0VT>
MA165MIT^G+8G[.UM.0S(0 ?O*2&R&!R#WKF/$>C>)-7AUBVDTW[4QNX9;"8W
M*+&L*O&VU4)X?Y6R2!G/7  H ZJX\06\-W<6\=M<7!M9(XKAH0I$3/@KD%@>
MC D@'@^QH7Q!;R7+10VUQ-&EU]E>= I1).X/S;A@G&<=:Y_6M"U&^U>34M/T
M^;3M622$17T%PGE31X7<LR[LL =X^[GA<4Z;0+]O$T>JZ=93Z9=F^'VN6.=/
ML]Y; GETW$[RO .T'/Z &W=>*=.LY(S,)A;/<_9?M83,*RYV[2<Y^]QG&,\9
MJC8>+_,;79K^REM;72KDPB1F0YPJ'!PW4EN.V,9.:RM(TG4M.FFT:Z\+VUX@
MNI)+?5'\HH8V<N"X/S;ESC '.!R.M6XM)U.UD\2V\NC1W]KJ-V+A TR!9D98
MU9,$\, K<G Z=: .ELM0-W// ]I<6TD(4D3!?F#9P058@]#4=YK$5K>K8Q03
M7=VT1F\B#;N" XW$L0!D\#G)Y]#65X2T:\T::^AW74>E-Y?V*UNYA*\!P=X!
M!/R?=P"3T/XESI^HV'C<ZY:VKWMK=V2VL\4;HKQ,K%E8;B 5.X@C.<\T 5/$
MGBOS?!3:GHHG?SIH[=G7:CP$RJCJP8@AN2!CH>>!S6[I6GIIZ7$\2WJ?:2)#
M:SS"3RB!@A>2!GKC=C/I7+7OAG5(O"-[:V]F9[S4M7_M!X4D0"$>>LFW+$ G
M:@''?/;FNZ1BZ!F1D)'*MC(_+(H \_UGQ%>:Q\/[W4V@NM.>"_5$9)@,J+D1
ME3L;GY<@@C'/&:ZBV\4V,UY?6MQ%<V+V4 N7-W&$#0G/[P<GCY3UP1Z5S$^A
M:\/!6H:&FE>9,=2,T3K<1@2(;GSMW)&/EXP><]N]6O$'A[5-<US4VBM7@@O=
M#^QQSNZ867>S@$!B<<@9P>] '16WB&TN-632Y(KBUN983/"L\>WSD'4KR>1D
M94X(STK/\8ZU=Z?_ &7IFGR>3>:O>+;+/M!\E.KN >"0.F?6F>'%O;B>&2^\
M)V^D3P*1+/\ NFWMC&(]G.#U)./3GJ)_%V@7.L0V%YIS1KJ.E72W-N)3A),<
M,C'L&'?Z4 377AYA:J+#4;^&X1T??)=R2"0!@2K!B1A@,< 8SQZ4M[XILK);
MR7R+J>VL&V7=Q"@9(#@$YY!. 03M!Q^!J6VU'4[Q%0Z+/8R'&][B2)D7UQL<
MEO;@>^*P8M'UC3K;Q'I4=B;N'59Y[BUN1(@1#,.5D!.X;3W .1[\4 :T_BVR
MCU)M.M[6]O+C[(+M!;1!EEC)P"K$@'^7OG J"V\<Z7=1Z=/';WPM=1E6&.Y:
M#;&DI) 1LG.<C' (SQFJ>D:#?:-XGM&2UEFL;/0X[!9PZ9=T;/W2V>0/S]N:
MSH="UN/P7HVG'2I/M5GJJ74J":+B-9S)D'=@G!QCUH V[WQYIUE)J"?8-3G.
MFN%NC#;9$0VAMYR1\N#GUZ\<&K5SXLT^% ]M%<7P^Q"_)ME7B ]&^8C.<'@9
M/!XK!L9;QM?\:6UMITERT\T2J=Z!0QMT&&R0<>X![_BUO#NMV=M!H:VPU#38
MM(6VB;SUCC6X (9I%/+ \8X./3O0!OS^+M.BN-/@BAN[E]3MS<6ODPY$B@ ]
M3CG##Z9YQ4(\;:<=.M;[[+>B.XO/L3*T:AH)MVW;("WR\\9Y'O65INDZU#>>
M#Y)]*=%TK3Y+:Y*S1ML9DC4?Q<_<)XSU%3:=X>EN?#OB+3=:MFLXK^^N;A)&
MD0[4=MROE6."I //<4 =.FH(^JRZ<L,N^*%96DP-@#$@#KG/RGMVJT20I(!)
M Z#O7,Z"=6L_!YU2XMUO]7N8A<21"01"0[0%&YON_*!G/?/K6]IUV;_3+6],
M+0FXA27RV.2FX X/TS0!S^D^,OM6CW.I7]A/;(EZUK$@V,7;S?+5!AC\V<9S
M@<]<<U9N/&6GVFG:I=W-O=Q-I+A;J#RPTBY4,#\I*D$$'.?KBL2#3/%&FZ!>
M6-E9'>-5>?='<HKW-N\Q=@AS\C;3C)(([>M5;SPYK<ECXO@M]&6-=8BB^RHM
MRA((C5"&R>N023GKT)ZT =;9>);2]UAM+^SW=O-Y'VB)IXMBS1@@$KSG@D9!
M /-5O^$STXI8RI;W;V^HR&*TG2,%96&>@SD9 )&0,@57EM[[_A+M-U:;3Y(;
M*WTV6&XDDEBQ$S%&Y^;H AR1GK7/:(MU8Z?I4NH>'-0.G6,IN+9HKJ"2& /G
M:P7(D(57. <D9Z9 P :'BC4+6;1/&/V&;48+ZRA0S,97C56V97RQG@$=<  Y
M[UM:?XJLKK4H=&FM[ZUN)X2]N]Q"8UN0H^;8<YR.N#@]ZQ]1\/:MJ$GC2)+3
MRUU>"-+2221-KE8MAS@DCGU%:0T^^U;6=%O[FPEL8])21RDKQL\DC)L"KL8C
M: 6.21VXZT 5O!^IBU\.2O=SSW$C:I<P0AW,DDA$K!5!)R>!W/ !)X%;VE:W
M::N]U%")(KBSD\JX@F7:\38R,]001R""0:XL>'M=AT*WF725GNK#6)[W[%-)
M&5N8I#(" <D!@LG?N*ZWP^CF.:Y;0XM'\[;B'">:V,\N4X[\#)_7  $U7Q/:
M:5+=QO;W-P;&W%S=&!5(AC.[YCN(S]UC@9.!3+KQ98V^HPV$=M>74]Q:FZA$
M$.1(@QT)(&?F'7CU(K(\3:9KVJ7>KV8L1=V-SIYCL3]H5(X92K!BZGEF)*X.
M"!CMDFG:?IVL1>(M$O9]*=(K727M9BLT;;9"4('WAG[G;N?QH U[;Q5IUWI%
MIJ,*SG[9*8(;<H!*TH)#)@G (VMG)P "<XK,\*W<USXO\4)(+N-(I+;9!<R;
MC%F,DX^8@ GG@XYK'M/#_B"QMM+U"+36:ZTO5+J=K-IHP9H9RV2K;B-P#="1
MWK?\/6FIIXJUW4;S3FM+>_%N8=\J,WR)M((4G!Y]<4 7=1OK&+Q-I%G/]L%U
M,)FM_++"(X3YM_.&XZ#!P:HMX]TQ(IIS9Z@+>VO#:7$QM\) ^0N6R>F2.F3Z
MCIF;6K&^N/%OA^\M[-Y;:R,YGD#H-F]-HX)!//7%<]=Z#K<_A+Q+IRZ5)]HU
M#4WN+=3-%AD9U8$G=QPIX]QUH Z&#Q++)XIU73)K&6*UTZ"*1IRR$?,')8C=
MG&% & 3UR!4UCXJL[ZZ@MQ;7<+75H;RV,B#]_$,9*[22#\R\$ \UG&QUR#Q-
MK.H65FJC4M/B$$LLBX@FC63"NH))Y9>F1UYJAI6E:ZFOZ-JUUH[K)#92P7KR
MW:/(TAV'=D'!!VG: >,XPHH UK3QUIEXFGRI:WZ6^H3FWCN)(-J++N*A6.<Y
M)7C (]<'BK.H^+=/TY+^5XKB:'3"JWDL* K"2 <')!. 03@'&?K7-6VAZY%X
M/T2P;2)?M-CJZ74R":+'EB9I,@[\$X;&/7/UIM];7=WJVOQVNA7E]IE[,D=P
M+*\@5961%#A@^&#9^4[3CCUR: .D&IZ=>^);6U*:A'=S6$DB EHX_++*#D9^
M]DC!'(]:Y_PIXOM],\-Z?%JB:C(DEU-"VH21L\2L9W"AY"<^@SR.Q-:EO'<Z
MCXMTC7+;3YDT_P#LV2(LY13&SLC %=V>-I'&?;-9T'AS5;CP:?"5S8-"&NF,
MMYYB&/RC.9<J =V[' !4<T :.GW@L_&_BAKJ[D6TM[2UF/FRLR1 B4L0"?E'
M':M:U\0VEQJPTN2&XM;IX?/B2XCV^;'G!*X)Z9&0<$9Z5SVJ>'-4U34O%2+;
MF"+5+&&&UN&="I>,/U )(!+#MZU<T-M0EQ<7'@ZWTRZMHFW-NBS*^/NQE>@)
M[G'ISU !U58E[XJL;)+N<P7,UK8R>7=W,2!DA(P6SSN.W(SM!Q^!Q<T349M5
MTB&\N+,V4S[ED@,@?8RL5.&'##C((ZBN8BT76+#3/$6AQV/VJ+4YKB6UNO,0
M(@F!R) 3N^4D] <B@"SX@U2:?Q)HFEQ6MS<6%['/*Y@E11.%1=N#O!P-^3G&
M>,9K6N+B#PEX:::9KV]M[&,L[LPEEV#G))(S@?C@5DG1;ZQUWPNMM:2W%EI%
MG+;2S[T'WD15."V3]PY^O>NIGACN8)()D#Q2J4=3T8$8(H S4\0VSZU;:5]G
MN%ENK8W,4A"^6R#&>=W)&X<#USTYKG]7UDR>)/"]]$E_'#)<7<36X8GSML3@
M'8K%3\W0GZ].:IQ^#M>ATFPECN4_M;2[D6]I*3TLP6CY]RC;S_NJ.HK;U32;
MI?$/AA["Q:2RTMI?-99$&Q6A,:C!()Z_D* +-OXOT^?3'O/)NHW2\%BUM)&!
M*)R0 F <<[@<YQ@]:IZSXT6S\,ZQJ-I8SF[TQ_)EMY=@,3D JQPQ!7#*?E)S
MG\LX:?XFM;?5S9:?*AN]<%TR)<1H\UL51656W?*WR=R.#P<]*]SX6UFXTCQ=
M91:;%;#5#'+:+YZD,0B#:?0Y4Y)XR>IZT =C/K*P!$-E=/=-&TIM8PC2*@.,
MG#;?H,Y/;H<4X/&&F74FDBV6>:+6-PM9U4!,J"65LD$$8/&.W%9&K6NKIXBM
M=>/AM=2@N+,6MQ9>9$TMNRNS*P+':<[R" ?QXJ[K&A75]X12.SLK>RU*TE%Y
M900X"1RJQ95R,#)!*D]/F- &J^N6\;W"/#.&AG6W08!\Z0J&VI@\\'G. .<]
M#BA<>-]*M+"\NIX[I&L)T@NH#%^\A9R I/.,'<,$'!JGXAT+4?[&TN:RM8=1
MO-.N_M<]K(0%NBRN) -W .9"1GI576--U'5?"EXECX82PGNI;<K;AH4D81R*
MY9V!V]!@#)/TSP =9INH?VE#)+]CNK79(8]MU%Y;-C^(#^Z<\&N9T35#IM]X
MB69KJ\(U<0V\(D\R0YBC.U=S=!DGK@ $]!781L7C5F1HRP!*-C*^QP2/R->?
M'0/$%GK^I>(M/L)!>?;]\4#SQ[+JV9(U=3\WRME-P/L.O8 Z=]2L?^$LAM9(
M[Y+X6$DJID^5Y>Y<\ X9\XZ9[\U5M?'>F7<=E,MI?I;WMR;5+B2#")+O*!6Y
MSR1P0".1G%$EKJ,OCFRU?^S9EM8]-E@<F2/*NSJP& W^R>1ZBL*'0=<3P9I^
MG-I,OVJVU@7;H)HL>6+@RY!WXS@XQZ_G0!J^-=<0^%]>CL4O7>S@=9+FU?8(
M)=F0"0P8XRI. <9Y[UT>EL6TFS9B23 A)/4_**XJYT?Q!:Z5XJT6'2FO(M7>
MYN+2Y2>-0IE7F-PS @@\ @$'VKM-+CGBTBTBGC$4R0JKIN#;2!CJ.M &=:^+
M;"[NK.*."Y6/4&E2TG9%"3-'G<!SD<*2-P&<4ZU\4VEWIM_>I:W8&GSM;S0L
MJB3S%QD ;N>HQSSGC-<U::1XFFO=!O\ 4=*WWUC>2->3O=H=ZLCJ&0#[J#</
MEX/^R>36TWAZZ3QK)?0LHTN\2.>ZC)Y-Q%PF![@J?K$/6@"SJ'BZQTUKKS[>
MZ,=B8A>2HJE;<R $;OFR< @G:#C-/:]L)/&0TX_;!??V>\G#,L)BWJ#CG!?)
M'(&0,\US?BS1?$>MQ:_8G3Q=1S(G]FR&Y58T4 %EV$YW[@?F(Z'J!6Q]DU)_
M'EOJ[Z<ZVRZ4]N["5#MD:17QC.3PN,XZ^W- %/PGK*Z?X2MGO9+FZFGU*XM8
M06,DDC>=)M&6/95/)/05%XJUV+4/"DM[:/>6DMCJD%O/'N*NC"9 Z,$)# JW
M8D'-166F^);#PU9VL6GRAEU.66\@CN8TDD@>1W&U]V!RRYY!X(J'_A&-:&@Z
MY91Z9#$T^KQW]O&DZX= T3%1Z']V1SCG\Z .@C\2V>KRZAI!@O["\BMC*(YT
M,+O'T\Q"#G&?H15?PEJ_E>"=!,YGO+RZLU98U.Z27 !9B6('&1DD]P.I%/ET
MZ]U#7FUR2QEMQ;Z=);06[O'YDCN023M8J -H YZD],#.!!H.M:5I?AJ[.A+J
M+Z;9O97E@[QEMK;#O0DE204]<X- '<:/K%GKEC]KLG8H':-T=2KQNIPRL#T(
M-7JSM$A:*Q+-ID.F^:Y<6T07*YQ]XKP6.,G'L,G&:T: "BBB@ HHHH ****
M"BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH *
M0D 9)P!2UA^-3<)X*UI[:58G2PG8LR%N!&V<8(P?0\X]#0!=LM;TW4+I[6TN
MTEF1!(4&02AZ.,_>4^HR*OUR%AJ-U;#P]I"-:F^O;,O]H\@@10(BG&-V222.
MX'4XXP:NH^,-8L--UR+RK1M1T6Y@1F*,(YXIBNQ@-V5;#'/)&1[T =S4-U=V
M]C:R75W,D$$2[GDD;"J/<U#IJZDL,@U26VDD,I,9MD90$XP#DG)Z\_2N=U75
MKW6-/\2PZ>]O%!IL<ENWFQES-)Y6Y^A&T , .O.3TX(!T*:OI\C6*I=(3J"%
M[4?\]5"[B1^!!J[7&:-JU[9Q^"=-C$!M=0T[]X64^8I2!6&#G&#GT[5-HWB>
MZU?5'L/M-M:WD3RK<:?/ RRQ*,['4EAO7[I)'7/:@#K:KSW]K;75M:SSK'-=
M%EA0]7*KN./H!FN#TO7O$%CX(L-1^TVEW+=:H8&$T+*2'NG0_,&QWXXP!V-;
MLNJ:[I^O:!IU_)83KJ$UPDSPPNA 2-G3;ECCH,]: -VPU.QU2.62PNH[E(I3
M$[1G(#CJ,_C5JO-[6^U_2=-\3ZII0L7M['5KJ>:"=6+S*,%@&! 7 !QP<GT[
M]!9>([^_U#5H(OLRQ06$%Y:LT+9'F!SAQNY^Z.F.M '457M[ZUNKBYMX)UDE
MM7"3*.J,0& /X$&N*36M9U:_\%7*W5O;C4K:6XEA$#,F\19_O@XPYP,\=3FK
MDWC"[TZW\2SWD,$ATNZC@MUB!02&14V[B2>[C)'84 =C17-S:OJFF>(]/TF]
M>VG358I1!-'"R>5-&NXAAN.5(SCD'CWK'T[Q;K\VE:#J]T+#[/J-\+.:".)P
MP+.ZAU8MQ@J/EP?KSP =Y15/5GN(M(NY+658ITA=D=DW!2!G.,C-<IH.NZA#
MH'A33WGAEO=8MPR3/$V(XTB#N6&[YVZ#.0.<XXP0#MZ*P=$UJ[N-<U31-06(
MW&G^7(DT2E5FBD!*G:2<$$$'GW%1>)O$AT*]LHIY4LK.Y5PU]+"TD<<@*[$;
M!&T'+')].W6@#9.IV*ZFNF&ZC^VM&91 #\VP8R<=AR*M5Q-XVHW'C+P^\$UH
MMY+H\Y>;:9(@28B2H!&X9Z#<.O7UL:?XEU2\\/6MU+]BAG^W2VEW,<[%",ZY
M1,Y9F*J N3][OB@#KJ*X5O&.LG0XKF*.T:X77!IDGF1.@D7S0H8*3E#@\@YQ
M6C)J^MPWZZ+));R7XMVN9)[>U9D"ERL8"%\]CDY/3WR #>FU.QM]0MM/FNHT
MN[K<882?F<*"20/0 'FK=<!=W6M7VK^#)KVRBL-4:6[5XWRR*1"PW8!R01\V
M,^V1UJW;^+]02S:TNEMGU+^VCI4<J(RQ,<!_,*Y)&%/W<\GN,T =A<7$-I;O
M<7$J10QKN=W. H]2:;9W=O?V<-Y:RB6"= \<B]&4\@USDFLWL>KZGX=U#RI6
M_LUKRWN(D*;DR496!)Y!QR.H-4?#6KRP>'?".C6GEK<WVGB0R2*6$<<:+DXR
M,DE@!SZGG&" =99:G8ZB]PME=1W!MI/*F\LY"/C."?7FJM]X9TC4;[[=<6K"
MZVA3-#,\+,!T#%&&X?6N2TG5KK1KW7UE\N>\N]=CMHV2,[23"AW;<Y^ZI.,\
MGC(JWJWB3Q/I&@ZY>2V4 ^PB-[2XEA*K.K<,I0.2&4]\X/I0!V5M;06=NL%O
M$L42=%4<>]2UR>KZ_JOAX0/K$UK%:W%PX:\@MG=+9-HV*XW=VR-W XZ#/'0:
M3/-=:7;SSS6\TDB[C+;']V_H5Y/!&.YH N45D^*=1N](\,:CJ5D(3/:0/,HF
M4LIVC., BL]M0\006]M-=SZ;'#=RK^\5&W0H8R=H4MF1RV ,8[G':@#IJ*\^
MO/$6KZKX<TZXCN(K68>((K*8K P$H6X"@[2P*@X!*YSVR*T/$WB75]!MK^XW
MV3?888Y4B6)G:X'_ "T+ -^Z7/"DYY'4T =/'J=C-J,NG174;W<*"22%3ED4
MG )]*+O4[&PFMX;JZCBENI!' C'YI&] *Y2^75)?B1=#2);6"=M$A/F7,;.H
M_?2\;5(SGUSQZ&J5UK4^O:5X7NKN!(+N/Q"L%Q'&<J)$$JMMSV.,_C0!Z%17
M+_\ "1W]CK6M6&J-;!;6U%W8F*%@9H^0<Y<Y8-A<#&<CUKH+#[9]@@_M Q&[
M* S>2I5-W< $DX_&@ M[ZUNY[F""=9)+5Q',HZHQ 8 _@0:L5P^I>+-9LM'\
M5W4:V1FT6<)#F)MKJ45OF&[.?F^G'2M6SU?58_& T?4#:20W-BUW"8(V5HBK
MJI0DD[OO YP.G2@#HZ*PO&&L7VA:']OL$@>07$,928'!#R*G!!X/S=>?I61<
M^(O$6E:M>Z;?KI\KMITE]9311.%!C/S1N"V3U'((^G8 ':45QL/B36X=(TJ\
MO#8-)K;6L5FD<;CRGD0L[/\ -\P &0!CGC/>G:CXFU72;S5M-F%K-<6VEOJ5
MI-Y;*KHI(9'7=U!QR#T/3B@#L**XN#Q)K]I>:#<:HE@^G:T%CQ CB2WD,>]<
MDG# X/88]\<ME\8ZBOA)/&$:6[:;YFY[7RSYGD>9LW!\XW_Q8QCM[T =/8Z+
M8:=>7=Y:Q.DUXP>=C,[;V P#@D@<<<5/?7]KIMH]W>SK! A4-(_0$D ?J0*Y
MVVU3Q%J'B75=.MI=-BM].GA&^2%V9XW3<1@,/F&>O3CH*Q;'7M=T[X:R:VUS
M:W<RWD@_>P,#@W;(W(;'<$<  #'- 'HE9^J:'IFM_9_[2M$N1;2>9&')P&QC
MD \C'8Y%4'U:^U'Q!J.D:9+;V[:;#$TLL\1DW22!BJX##"@+R>ISQC%8]KXQ
MU;4U\/FU@M('U&>XM;J.56;RI(E?)4@C(RF<=^F1U !VDD:2QF.1%=#U5AD'
M\*?6%X7U6_U%=2MM2\AKG3KUK9I8$*)(-JL&VDG!PV,9/2J>H3ZG_P +%TVU
MAO8TM6L)I3"T);)#Q@G(8<X/!Z#G@YH ZFBN+F\7:DWA27Q;:);OI\,KG[*4
M/F/ DA1FW[L!N"V,8[>]=>',]MYD#@&1,QLRY R."1QGZ4 5]3O]-L;=5U.>
M&.*X80A9>DA;C;COG/2JECX4T739$>UM&01G,<;3R/'&>Q5&8JN.V!Q7#R7&
MI7?PPM+N]N8[J635HF4E"AW?;#G<<GC/3 &!QS70R^*=1T:ZUZ#5A;7/]G6<
M=Y UO&T6X.678V6;^)1S[]* .OHKG]/O]?;74MKNS$FGRP%C<"'RC#*#]W!=
MMRD=#VIWBS5]0T:UL);!;=VN+^"V=9@>5D<+P0>#[X/TH WJ*XRY\2:YI\?B
M>"=[&6YT>T6\@D6!U1U97.QEWYR"F,AN_2KQU[4/[<T"S MO)U:SFF?]VVY'
M14(P=V,$OTQVZT =+4%[>VNG6DEW>SQV\$2[GDD; 45Q \6>)%\/0ZVZZ:R)
MJ)M)K<1N#(//,0*ON.W''9O7VJ;6-5U3R/%&AZHUK-LT5[N&6WB:/"LLBE&!
M9LX*]?TH [2":.Y@CGA8/'*H=&'<$9!J2N(TW6-<T@^&XKY;*72]3CCMD$*,
M)8)/*W)DDX8':<\#'\Y[+Q)KNIIIFI:?8">PO9@)(C%M,4+9Q)O+\D<$C;W(
M'3) .PHKE_#>J:_K%W<R7+Z>EI9WUQ:2+'$X>38<*RDL0.>H.:T-?UE],ETZ
MSMU0W6I70MXFD!*H-I9F(!&<!>F1R10!L50BUS3)]0&GQWD;7)#,J<_.%.&V
MGHV#P<9QWK)@UG4_[=U'P]</;BZBM5N[6Z6$[7C)*D,F[[P8$<'G.>*B^',,
MK>!]'FN6AE(ME,)$1#(#URQ)R3ZC% '55SD.C>%K[6[\6RHU[$ZO>Q07$BKN
M?."Z*P4D[3G(^M5]9\43V&OOI1GM]/=XD:R>[A8QW;G.Y0^0%(X 'J<\]*SI
MI=5M_&'B^?2I+6*6&RM)2;B-I VU)2%P",9]<\>A[ '=(BQHJ(H55& H& !Z
M4ZN5?Q%J-UIFEWMN;:TCO].%UET::0RE58(L:D$@ DD\].W6J<7BK6]2B\,F
MQ2QA;7+661_-1V$3K'NR,,,KD].O'6@#MJ1E5U*,H96&"",@BN1N=>U^47]M
MIT,,U]IBHD@6W+1W$YC5V4$N-BG< ,Y/Y4W4?%MY:ZA'8W'DZ//<6L<EJ+V,
MM'-,V=\1D#!05.!^.>>E '8*JHH50%4#  & !2U'/,EO;R3R'"1(78^@ R:Y
M"3Q9J=OX=T[Q1*ENVGW<D7FVRH?,ABD8*K!\X+#*Y&,')QC'(!TNI:SIVD)O
MO[I(%V[B2"=JYQN..BY(Y/'-7%=70.K J1D,#P1ZUR-I%>S?$O5DEGMI(/[/
MMPT;6Y.8R\N%^_C/7)Q@^@I/B7<2P>'+.RB8Q0:AJ,%G<,AV[86)W#/8'&/H
M: -[_A)-$"LYU6U"+G]X91L..H#="?85IU4NM+LKS2I-+F@3[))%Y)B   7&
M,#TQV]*Q_P"U]3U34=7L](>VB.EE(@;B,OYTI3=@X8;5P0,\G.?3D Z.BN*L
M_&&IZS+X<;3H[6"'6;:=W$Z,[0R1@9Z$;ADGCC..HS567Q7XD@\.ZEJDG]G,
M=$O7M[E5A?\ TI58 E?F_=G:P_O<^E '?T5S-UJ>NS>+;O0[*6PA1+!+J*:6
M%W*EG9<$!AG[OMC/>LRP\6ZY<Z9X>UF9+%;74[E+2:V1'WAF++O5RV -R_=P
M>.] '<T5R,WB75+G1]8UK3%MC;Z7-,BV\J,6G6+_ %AW C:3AMO!Z#.<\)'X
MAUC5M>CL=*DLH;:ZTB/4()9X6=DWM@!@&&?S&,]\4 =?5*]U?3M.D6.\O88'
M92P5W .T=6QZ>_2JGA36)=?\,6.J3QI'-/&?,5,[0P)4XSVR*Q-;BU_0/$MS
MXBTBR75[.ZACCO+)6Q/'LSAH_7AB=OJ?>@#K;6[M[ZW6XM)XYX7R%DC8,K8.
M#@CKR#4U>>W.KQWFC^&I_#%V+:QO-9\N2&6#E6)DD*L PP P^Z/;G'7?75M3
MU/4]5L-+EM8GTL)&S31,PFF9-V,!AM4 @=SDGTY .CJI<:G8VE[;64]U''<W
M9(@B)^:3 ).!] :YO1?&$_B@6,.G+'9S3V!NYVF0R>6?,,>U0",_,K\^@''/
M%'Q-JEQIK>%-3\0QQ6\UO<S/="VRZ#$$G*]\$8/MGVS0!WM5#JEB-373#=1_
M;6C,H@!^;8,9..PY%1Z1)J$]H+B_DM6\[YXEMU.$0\J"VXACC&2,#TKGM;6\
M?XC:4MC)#%,VF7($DR%U3YX^=H(W?3(^O:@#L*JW^IV.EPK-?W4=NCN(U+G&
MYB< #U-<O8>+[ZYTO38Y88_[2N[NXM7,499!Y)<,ZKNR<[1QGC.><8-/Q%>:
MQ=>#;Y-8LQ"\&I6JP3*NT3Q_:(\-MW$J>H(S0!W<TT5O"\TTBQQH-S.YP%'J
M34=E>VVHV<5Y9S+-;S+NCD7HP]16-+JM[J6LZKI>FO!#_9D48D>:,OYDDBE@
MN 1A0N,GJ=W;',7PZ_Y)[HG_ %ZK0!M6FIV-_<7,%I=1SR6K!)U0Y\MB,X/O
M5NN!1M>3Q5XQET)K%9(I;9RMTC-YI%LGRC!&W/KS].]7K+Q;?7=UX=O&2VBT
MG6X=O,;&2*XVY"%MV,'# ';V]Z .PHK.T6[NK^UDNKAH3%),_P!F\M"N8@2%
M8Y)SG&<C'!'%:- !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%
M%% !1110 4444 %%%% !1110 4444 %4=:TXZQHMYIGG^0MW"T+N%W$*P(.!
MGK@U>J*XN(;2WDN+B18XHE+.[= !0!B3>%S)'I$R7WEW^D#9;W(BR&0J%973
M/(( Z$<C(Q46H>#DU#3-1MWO2ESJ<\<UU<K$,GR]NQ57/ &P#G/?N<UH-K87
MQ3'H1M9 7LVNA.6&TA652H'7^+OBM6@!L8<1J)&#. -S 8!/KCM7-W/A"0W^
MJ3Z?JTEG#JZ$7=OY*R OMV[U)^Z2.O7-=-10!SEOX3:WFT!QJ3R#0XFBC#Q#
M,H9 AR1C'R@8_7-2P^&6.H:=>7]Z+N33"YMY/)"2'<I7#-DY !/&!G@G-;U%
M ')_\(.Z:.FEQ:Q*+>&^%W &A4F,B0RA<\9^8\D]L=*U=1T1]0UC2=2-V(WT
MQG=4$61(70HV>>."<?UK7HH YMO")*:G9C47_L[59WGN8/*'F9?&]5<'A3C'
M0G!."*DN_"S2:Q+?V6HR627-HMK<0I$K!U7=M()^Z1N(X[>G6N@HH YBW\%_
M9;70HXM6N%ET16CCF\M"71EVE<8P. ,'G'O3Y?!EM>1:Y!?7+30:TZR2*J;#
M$RA0I4Y/3:IY[C\*Z2JLU[_H]XUG']KN+7*F!7"EI-H8)D\ D,O7UH SX-"G
M-Y:7VH7ZWEU8Q/';/Y.P*6 #.P!.YB !Q@<G@9K.A\$O!H6F:2NJ$IIMX+N*
M0P#<S!BP#<XQECT]OQZB)G>%'DC,;LH+(2#M/ID4^@".>%;BWD@DSMD0HV/0
MC!KFX?!0@TO2K==4F-WHS@V5T8E^1=NW85&-RE>#SD^HK3\2:X/#NC2:DUK)
M<I&Z*RHP7&Y@H)SVR1TS6K0!G:;I"V-Y>7\L@FO;XIYT@7:N$&%55R< 9)Y)
M.2>:34=,N;RXWQ7D:0M"T,MO-!YL<@)ZD9'(Y'IR:TJ* .<L?"":9?:7/:7K
M"/2[)K.**2/=N5L$L3D<Y4=.*JQ>!Y(([0PZQ)'/9WTMY%((%(S+NWJ5)((^
M8X/45UM% ')-X&;[-) FLSE7U0:D#)"A*R!@V.,<%AS^F*O:UX9FU+4K75K#
M59M,U*WC,)FBC5UEC)R59&X(SR/2M^B@#!D\,N^HZ1>_VE(\FEM*^98PQG:1
M2K%B,8X)P  !].*J/X(2:"\674'\V?41J<$T<05K><  $9)!7  P?4\\\=31
M0!BC0'DN+N^N;I);^YM?L@F6':D<>2<*NXGDG)R>P]*S_P#A"3%8:*EKJDD%
M[HBF.VNA$#NC*A2KH3A@0!W'3BNJHH Y*7P$ES!J*W.KW33WMVEY'-&BH;>9
M  &7 ]L?3WYJ>\\)7>I^'KO3-2UV:[FO%6.2Y:!%VHISA47 !)ZDYS^ QTU%
M &;=:??7#VTB:A&K11O',CV^^*<-MZKN&,;>.>YK-M-!N]$_L6PTB^ECLK1I
M/M,)B4I*K$L23U7#$X"^OH*Z2B@#/UW2_P"V]$N]+,_D+=Q-$[A=Q"D8./>J
M%[X:FNSH\Z:H\%WI1;9,L*D2!EV-E3D9QW[<UOT4 <J/ ZKI4UDNK7.YM2&H
MPRM&A,4@D\SICYN?7]*;?^!FO_[71M:N4AUB)%N$\I"2ZH%#9QP, $J,<],5
MUE% &$_AZZ36(]6M=5*W7V-;28S0*ZR*&+!@ 5VMECZCVJ*;PA#]ATJTM+IH
M4TV\%Z&=-[32_-DL<CJ78G'KQBNBHH Y6\BT_P 4>*+$10W!DT2X=IY6B>-,
M@<1@D /E@K<9'[OW&>JHHH Y:\\%F]L]=M7U(JFN2!Y2(1F/ "X7GT4=:OC0
M9CXBM-:DOE:2WM6M3&(<!U8@D]>#E16U10!R?Q*<?\(BT7F%))+NVV$#)&)D
M)('L 3^%7IO#S:BUQ>W%\DMS<636D4L<.$BB?EBJ[CDGCG..!QUSO44 <]-X
M3CN?#5AH\UY)YNFF)[2[1 KQO'PC8Y!..#ZY/2JGB+2UM="UW5K^X6XOI=*D
MM49(_+4+M8A57).68\\G/%=910!RWAW23?Z5H%Y>7BW,=A;H]O&D>W$GE[<N
M<G+*"PX P2>,XPZ#P5##ICZ(+PMHK3^<+0Q_,HW[_+#Y^YN[8SCC-=/10!D:
M=HDEAKVIZH;SS/[2,9>+RL!"BA5P<^@Y]_2LM_ ^[PW=:"NK3"TGN/.CW1*3
M$/-\TJ#QGYNY[>G6NKHH Q)/#\J:Z^M6%ZMM=7$"PW2M#OCFV_=;;N!##) .
M3P>AJNO@^*W?1OL=VT*Z3+)*H>,.9GD#!RQR.NYCQW/X5T=% &3HVB/I-YJ5
MP;OS_P"T;C[0R^7MV-M"X!R>,**+_0OMFO6.KQ7LMM+:1O"RJJL)8W*DCGIR
MHY%:U% ',IX+BCL+K2$O6&C74QE:T,?S(&;<R*^>$)SQ@GDX-=*    , = *
M6B@#D_\ A!V70UT=-7F^S1W@N8@T*DIB0R!<C&?F/)/8#I5N[\)Q:CJ6HW-]
M<^;#J5DMG- L>T!1N((.20<L?TKH:* ,/0M OM+V"^UZZU1(%V6ZS1HFP=,L
M5&7;'&2?7UJ;Q!HC:[;VL(NOLWV:ZCN@PCW99#N4=1QGK6M10!S\WA5;K4-8
MN;F[+QZO9BTFB6/;M4!@"IR>?G;]*@M/"%U#?Z1>W&NS7$NE0R0QCR$575@H
MY'T7GN?:NGHH Y4^"F/AW^QCJ9\LWOVOS/(&[=YOFXZXQN_3\ZM7?A;[?JU]
M?7%Z=M]IW]GRQ1Q[<)\QR"2<-ESZCVKH** ,*Q\-O$VG&_O1>+I:XM%$/E@'
M;M#OR=S!<@8P.3QTQ5TGP?-HTYAMM<NO[)64RPZ<43$9SNV[\;M@/.WC\><]
M/10!DZ!HCZ(MZK7GV@7=W)=',>W8SG+ <GC/3^M.U[0HM<@MP9GM[FSG6XMK
MA "8Y%]CU!!(([@UJ44 9$.B.EU=ZC+<I)J-U L'G"+"1HN2%5=Q/5B3DG)/
MMBI/#NCG0-#MM*%S]HCM4\N-RFUBHZ9YK3HH P=:\-/K<5[9W-Z&L+W;O@>
M,T>  2C9^4G'<'!Y%)_PC,BZCK-XE_@ZM D#(8<B)45E4@YY.&;.>_Y5OT4
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
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**YOQ;K%W;3Z9H>F2>5?ZQ.8TFQDPQ*-TC@'J0O3/<T =)17$>/-/L-"\$W-
M_90B'4+4QFVNAS.92Z@9?[S$YYSG(SFM:VUR_N/%4^G/;QQ6EA9I+=2^8/\
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
M9)'93SB"Z>23:;0[MNYN.4S_ ! ]Q6B?$31:9#>3V11[RY$%G$),F8L3M8Y
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
M5V=ED9F=7+A0I&,KC&>_M71UE+XETIU>2*:66&,D-<16\CQ#'7]X%*X'.3G
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
MB>&5%DCD4JZ,,A@>""/2L:P\+II<(M++5M1AL5X2TWHRQK_=5BA<#_@7';%
M%47;OXE_X1C3IVL+:RT]9RT*J6.6**J[@0%4*>W<=,<XB>*->GCTZ#[5#%<)
MKTFDW3B %9PJL0X!/&0!P.^>E=5<^'+2;4+;4+:6:QN[:$P++;%<M$>=C!@0
M1GGID&H)?"-@\=BB3W,/V*[-XK(RDR3'.7<E3DG<WH.?88 ,"6_\1J/%%FNO
M8?1%6>&X-I'OD#1>8$88VX&",@ G/6K8UG6-1UG0((+Y+2#5=+>YD5(%8HX$
M9R"V?[YQV]0:UG\*VSS:Q*;Z\#:R@2Y ,>  NP;?DX^7CO\ GS26WA2VM;O3
M+E+^]9],MC;0!C'@QG&0WR<\*O/M]: .7;7_ !';^&+O5I-62232-4:SD06J
M 7:+.(R7_ND@_P ..G>MV/4-2UW4]<M;"_-C_9CK!"!&C>9(4#%GW _+D@8&
M. >>>))/!-E+HU[I3W]\8+ZZ-U,=T>[S"^\X.S@%@#^%6G\,P?VA/?P7UY:W
M%W$L5TT+(/M&T8#,"IPP'&5Q_*@#G=/\3:QK\WAA[>Z2QBUBRN))T6$.4>/:
M,J6]V.,^V<UN^#]1OM0TRZ349A<7%E?3VAG"!/-$;D!B!P"1CI4O_"+64=_I
MEU;33VHTJ%H+:"(KY81@ P(*DG(4<Y[5/HNAPZ&ETD-S<3BZN'N7\XJ<.YRQ
M&U1P3VH QO$FDZTNO)K_ (:NK=[^&V$%Q87/W+B+<S+@_P +9W8/3\N<+4]<
M_MWPQ'/:I=Z-=IKEO!?VHVY67S$!R2#D="", ]P:[6ZT3S]5;4X-1O+2=X%@
M;R2A1E5F895E(SESS_\ 7S5E\'Z=-I,U@\MSNGN5NY+H.!,TP((?.,9&T#&,
M8'2@"O%?7VJ>(=4T6WU*6U&E00 S+'&SS22*S;FRN,  < #))Z5G:'XLO]?.
MD:?(XLKJXCN6NIHE!R87$>(]P(^8G/(. "/>MZ3PU;_VDNI6U[>6MYY @EFB
M96,Z#D;PZL"0<X( /..G%5[WP5I5W8Z?;0/<V#Z:2UK<VDNV6/=][YB#G=WR
M#F@# \4W5_HT'A^YUB4:A-9ZK(Y:UC^>1!#*5^7@;MN,XP*ZS0))[O3DOY=2
M%ZEV/-C\L+Y<:'D*I"@G XR>3Z#I5>7PI:S'3V-[>[["<W".9%9I)"""SEE.
M>"1V '3&!4VB>'K?0/M*6=S<&WGF:86[E3'$S')V *"H]LXH Q_$T<\WCKPQ
M';7'V>1H;T>;L#%1MCY /&?KD>QZ5!I^NZK+I)BN=4B6>VUF6QDN/)'FW$:%
ML"- I!D/R]L !CVKH;W0H;W7+'5WNKF.:P5UB1"NS#X#9!4DYP._:LW_ (06
MQ'SKJ.H),+][])E>,.DK@A\?)C# \@@^V* ,R'5O$6H>$-;EL[IUU+2KV>*$
MO%&7F2/#;7 !7<02,KCD"KEYXI8://X@L+AIK&TTP7!C95Q+*XR@8@9! Y8
MC[PK9T;0+70WO&M9;EQ>3F>19I2X#D#)'UQWS26/AK2M/T6?1X;8&RN&E,L;
M<[A(3D?0 X'H * *6GMXA77(3,[S:9-"?--QY*LDG4&/R^JD9X.2..:7QAJ&
MI:=!I;Z;<I UQJ=O;R;X@X9';!'M^'/N*ET+PK;:"5\O4-1O$B7;!'>7'F+
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
M&4#RFB8-YA/0+CJ3Z5R,26>I7_C"V\0)&9H6S&9<9CM?+&QD)Z#<&.1_%[T
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
MC\N>))4R#M=0PR.G!J)M-L&>1VLK<M)]]C$N6^O'-6:* *KZ;826RVLEC;O
MIW")HE* ^N,8S5D *H50 !P .U+10!7CT^RB,ACLX$,H(?;&!O!['CFLG6M
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
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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
M-I7'\L4 /!! (.0>E+7)6LLGB'Q#K^G/>7-K'IPABMEMIFC*!X]WF'!&[).
M#D87IR:Q=(U75M=N/"+WFH7,']HV=X+I('V+(8RJJXP."02<^_&* /1Z*\ON
M+C4[7PAK>H+K>HM/H>J20VI:?[R+(N!)_P ],AL?-GH.E;LT%WJ/C/7-.?5]
M0AMDL()8T@FV>6S&094@9'W1]>^: .SHKSC3;_4_[)\&:Y+JMY+<:C<QVUS&
MTG[J1&C<_<'&[* [NO6IGU.^U#P7K?B--0N+;4+">Y:*-92(XA"QQ&T?W6RJ
M\Y&<MVXP >@T5PT?V[6O%=U:3ZGJ%I!+HT%SY$$WE^5(S.#@@9&,#\N>.*W?
M!5_<ZIX,TF^O)#+<36RF1SU8],GWH NZGJT&E_9T>.6>>ZD\JW@A +RM@L<9
M(   ))) XIFG:RM_?75D]E=6EQ:I&[K<*N"'+!2I5B#]P]#5+Q5H=OKT5I;?
M;Y=/U"*0S6-S#]Z-U'/'<8/([BN?34M8>#7?#GB6&,W\.EM<1W]FS1BYB&X
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
M"1AG*[API  Z]=PK*_X30S:9I L[8R:GK$C1003(T2H5R9&8'G:@';KVQG@
MZF:&*XA>&:-9(I%*NCC*L#U!'<5EV?AC2K!5CMX[@0(?DMVNI7A7V$98KCVQ
M@4DS:_:/;-YEG>1O.B3A(&C9$)P67YVSCT/09.>,56L-:OO$%]>C26MX+"RF
M-N;B:,R-/*OWMH#* HSC)SDYZ8S0!?N] TV]OC?2PNMR8_*:2&9XBZ?W6VD;
MA]:5M TQKRSNQ;;);",QVWER,BQ*0 0%! P0!V["J5Q=>(;>RU1G^PB6U3S;
M:7R7,<R[22"N_*G(QU.!@\YJ/PMXF;Q-I$GR+8ZK;8CNK:52WDOC@XR"5(Y!
MS^/% %E_"6BR6%W8/:R-;7LQFN(S<RXD<G))^;N0/RJ=/#^FQWDUXL<PN+B(
M0RR&YE+,@Z#[W;)YZ\FL.^U?Q4/!%MKNFQ:?<W;6J7,MJ8),,I4,0AWYR >G
M?%6K?7[G7/[-;0+JSFBFB$]U+) S"-"., .,,6!&TYQ@Y/'(!<7PIHJV=E9K
M;2+!I\@EM4%S*!$PS@CYNV3^9I[^&M(DNI[AK4YN7$D\8E<1RL.C-&#M8\#J
M.<<U-K<U_;Z-<RZ8;87B*#']I5C&3D9R%Y/&< =\54L[S6Y-<BANK:U2RDL1
M*X0L989LKE6/W2#EL8Y^4T 66T+3FU.;4O*E%W/%Y,DBW$BY3L,!L#&3^=3:
M7I=GHUA'86$1BMHN$C+L^T>@+$G'M5NJ6I'4O+A33#;K(\H$DEPA=43!).T,
MI)R .O>@ U#2++5&@:[B9GMV+PNDK1LC$8R"I!!QQ3+71-/M&N&2%I)+E0DT
MD\C2NZC.%+,2<<GCIR:Y[3]8\4ZC=:U;P3:4TFE7 A53:2#S_D#=?-^7KCO5
M_2?$3RZKK-IJD]I ME>);P,#LW[HU< [CRWS=J +2^%-$338-.2S*P6T@D@Q
M,^^)AP"KYW# XX/3CI4TOA[29]-N=.GLUFMKL[IUE8N93QRS$Y)&!@YR,#'2
MK-YJ5CIR*]]>V]JK=&GE5 ?S-6%974,I#*1D$'@B@#&C\(:%%H\VDK9,;2?'
MFJT\A:0#H"Y;<1[9Q5B/P_ID6J)JB0R"\2$0>;Y\F2@Y"GYL,/KFFR>(]+BU
M]=$>[B6[,)E92X&T9  ^ISD#T%3Q:SI<[;8=2M)#Y;282=3\BDJS=>@(()[$
M4 7",@CU]*R8_"VD0VRVT4$L<:7!NEVW,H993D%@V[(SN;/.#FKD.JZ;<PRS
MP:A:RQ0<2NDRLL??YB#Q^-%OJVFW=Q]FMM0M9I_+$OE1S*S;#C#8!S@Y'/3F
M@!]E86VGQ-%:Q[%=S(Y+%F=CU8D\D_6H-5T73];BACU" RB"42Q,LC1LCCN&
M4@CKZU(NK::\SPKJ%JTL:LSH)E+*%^\2,\ =_2N?TKQ%<Z_>37&G:AIZVMI>
MR0S6[_,S0H=ID# \$D9'&,?G0!I?\(CH/V.^LQIR"#4&#W"!F =N.1S\IX!R
M,<C/6EMO"FB6MS)<QV>Z:6W^SR222O(9(^>&+$[NIY//Y5;CUK2IK>:XBU.S
M>&#B619U*Q_[QS@?C4UM?6EXTBVMU#.86VR"*0-L/7!QT- &;#X2T2!;$16C
MK_9[%K;%Q)F,D8Z[N>..>W'2G_\ ",:,8K^)[/S(]1;==)+*[B1O7!)P>!R,
M=!Z5?NKVTL8A+>74-O&3C?-($&>O4_2C[=:?9%N_M4/V9P"LWF#8P/3#=.:
M*B>']-2&>+RI7^T1"&1Y+B1Y#'_=WEBP')X![FF2>&M)ET)=#DMG;3E 40&>
M3@#H,[LX&!QG'%6X=3L+F)Y8+ZVECC!9W256"@=22#Q3(]9TN6UENH]2M'MX
M3B659U*(?0G.!^- %=_#>F/J#ZAY=PMV\2Q-,EW*K%%Z+D-T[_7FH+[P;H&I
M);"[L3(UH6,,HGD61=QR<N&W'))/)/6M!-6TV22>--0M7>V7?.JS*3$OJPSP
M/K4.AZ]I_B&Q^V:?.DL>YAPP) #$ D=1G&1GM0!'>^&-'OULQ+:;#8#%J]O(
M\+PC&,*R$$#';-3Z5HFG:)'-'IUOY"W$K32#>S;G8Y)Y)JS<W=M91>;=7$4$
M><;Y7"C/IDU&-4T\P07 O[8PW#!89!,NV4DX 4YY.?2@!-3TNSUFPDL+^(RV
MTO#QAV7</0E2#CVJ"YT#3;N.U6:&1FLCFWE$[B6/C!PX.[D<'GGO5JSU"RU&
M-I+&\@ND1BC-!*KA6'4$@]?:L63Q&S^,M/TFTN+.XM+F"=Y#&=SH\>WC(.!]
M[ICM0!=N/#6D75@MC-:L8%F\_"S.I,F<[RP.6;/.22<UJ*H50HS@#')R?SI'
M=(T9W8*JC)9C@ 55BU?3)]_DZC:2>7&)7V3J=J'HQP>![T -O]'L=3GM9[N)
MWDM)/,@*RNFQL8S\I'."1SZU _AG29&OF:W<MJ#*UR?/DRY7&T_>X(P,8QTJ
MY:ZC8WT+SVE[;W$49(=XI5=5(Z@D'BFP:KIUU+Y5O?VTTG]V.96/3/0'TYH
MKOX=TJ6TN[::U,\=\@2X,TC.TB@8 +$D\<XYXR3UI$\.:7'=6=TL$GG6*,EN
MYGD)0-][^+G/<G.>]26=]Y6F+<:G?V))D=3-"VR(_,0 ,D\@#!YZ@U7O?%6B
MV,E@DFH6Y_M"0I"RRJ5( )+9SC VXSZD"@!K>$=$>QNK%K60V]Y-Y\\9N9<2
M29R6/S=<\_@*Y[4/#4EQK]Y/>^'KF]60HEO=V>IM"1&J@ 2#>I+ [CGYNOM7
M7_VOIGV@6_\ :-KYS2>6(_.7<7QG;C.<XYQ2P:IIUU.]O;W]M--&"SQQS*S*
M <9(!R!GB@!FC64VGZ5#:SS/,\>?F>0R$ L2%W'EMH(7)Y.,TNHZ18ZHT#W<
M):2V??#*DC1O&2,'#*01D<$9Y[TZWU73;N98;;4+6>5E+JD<RLQ4':2 #T!!
M!]^*35M3M]&TJYU"Z=5C@C9_F8+N(!.T9[G&!0!6N/#6D75@MC-:LT F\_ F
M<,TF<[RP.6;/.234T.BV$&JOJD<<@O)(Q$\AF=MR#H""<<<]NYK*T+6;F\M(
MM7N]5TUM-GMD9PIVFWG.#LW9((PW?G./6MD:KIQLQ>B_M?LK' G\Y=A/3&[.
M* +=9QT'3CK?]M>2_P!O\ORO.\]_N9SMQG&,\XQUJW;7EK>H[VES%<*CF-FB
M<,%8=5..A'I275[:V,0EO+F&WC)QOED"#/U- %9M$T]M6?53%(+UX?(:59W'
M[O.=N <#GGZ\U2E\%>'I]&BTB33]UG!)YD*&:3=$W7*MNW+^!K3.I6 2W<WU
MN%NB! WFKB4GH%Y^;\*1M4TY!<%K^V46N//S,H\K/3=S\O0]?2@!UAI]II=F
MEI90B*%,X4$DDGJ23R2?4\U9J"VOK2\:1;6ZAG,+;9!%(&V'K@XZ&IZ "BBB
M@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ****
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
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 **** "HKBWCNK>2WF!:.
M12K ,5R#VR.:EHH K:?IUKI5E'9V47DV\0PD>XD*/09/ ]JLT44 %%%% !11
M10 4444 %%%% !1110 4444 %%%% !1110 4444 4=0T>PU22WDO83*UL_F0
MGS&78_9A@CGWJ]110 4A 92K $$8(/>EHH I:7I&G:):?9-,LH;2#<6V1+@$
MGN?4U;557.U0-QR<#J:=10 4444 %%%% !1110 4444 %%%% !1110 4444
M%%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4
M444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !11
M10 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%%
M !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M%%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4
M444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !11
M10 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%%
M !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M%%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4
M444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !11
M10 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%%
M !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M%%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4
M444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !11
M10 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%%
M !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M%%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4
M444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !11
M10 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%%
M !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M%%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4
M444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !11
M10 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%%
M !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M%%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4
M444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !11
M10 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%%
M !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M%%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4
M444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !11
M10 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%%
M !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M%%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4
M444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !11
M10 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%%
M !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M%%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4
M444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !11
M10 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%%
M !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M%%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4
M444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !11
M10 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%%
M !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M%%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4
M444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !11
M10 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%%
M !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M%%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4
M444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !11
M10 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%%
M !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M%%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4
M444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !11
M10 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%%
M !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M%%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4
M444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !11
M10 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%%
M !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M%%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4
M444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !11
M10 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%%
M !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M%%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4
M444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !11
M10 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 ?__9

end
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>GRAPHIC
<SEQUENCE>17
<FILENAME>cgnxexhibit4bdescription002.jpg
<TEXT>
begin 644 cgnxexhibit4bdescription002.jpg
M_]C_X  02D9)1@ ! @   0 !  #_VP!#  H'!P@'!@H(" @+"@H+#A@0#@T-
M#AT5%A$8(Q\E)"(?(B$F*S<O)BDT*2$B,$$Q-#D[/CX^)2Y$24,\2#<]/CO_
MVP!# 0H+"PX-#AP0$!P[*"(H.SL[.SL[.SL[.SL[.SL[.SL[.SL[.SL[.SL[
M.SL[.SL[.SL[.SL[.SL[.SL[.SL[.SO_P  1" 55!!\# 2(  A$! Q$!_\0
M'P   04! 0$! 0$           $" P0%!@<("0H+_\0 M1   @$# P($ P4%
M! 0   %] 0(#  01!1(A,4$&$U%A!R)Q%#*!D:$((T*QP152T? D,V)R@@D*
M%A<8&1HE)B<H*2HT-38W.#DZ0T1%1D=(24I35%565UA96F-D969G:&EJ<W1U
M=G=X>7J#A(6&AXB)BI*3E)66EYB9FJ*CI*6FIZBIJK*SM+6VM[BYNL+#Q,7&
MQ\C)RM+3U-76U]C9VN'BX^3EYN?HZ>KQ\O/T]?;W^/GZ_\0 'P$  P$! 0$!
M 0$! 0        $" P0%!@<("0H+_\0 M1$  @$"! 0#! <%! 0  0)W  $"
M Q$$!2$Q!A)!40=A<1,B,H$(%$*1H;'!"2,S4O 58G+1"A8D-.$E\1<8&1HF
M)R@I*C4V-S@Y.D-$149'2$E*4U155E=865IC9&5F9VAI:G-T=79W>'EZ@H.$
MA8:'B(F*DI.4E9:7F)F:HJ.DI::GJ*FJLK.TM;:WN+FZPL/$Q<;'R,G*TM/4
MU=;7V-G:XN/DY>;GZ.GJ\O/T]?;W^/GZ_]H # ,!  (1 Q$ /P#V: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*** "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@ K(\4>(;;PMX?NM7NE+
MK !MC4X,CDX5?S_(9K7KEOB-X:N/%7@ZYT^S(^U*RS0J3@.RG[N?<9'UQ0 :
M WB?5]$@U>ZU*"UGNXQ-#:);!HHU894,2=S'&,X(K0MM8:PTBQ?7Y(X+^<;6
MBB1F+R#)(11EB !GZ<UE^%?$L,?ANQL]0M;VUU&U@2":U:TD+EE 7*X7D'&0
M1QS6+XR.HV?C;PYXBDM;Y-/C@>&?[+&)9+5W!Y( 8=P"1G[IQVH [&3Q1H<*
M6+R:G J:C@6K[OEE.<8!Z=Q61JWQ(T"QTZVNK.[2]^U78M8_*!*AMP#$G'0
MY]^,5R/B30;6VC\'6FFZ=J#Z;#JAGD6:!W9(BZEF<8RH/)P<''85N?$S2Y/L
MNA7%AI[O#:ZO'<7 M82Q4=V*J,GZXH ZJ[\3:/8PK-<7H53#Y^!&S,L?3>R@
M$JON0!6;KFONE[H']F:QI\-O?W*[O/#-]JC..(F (W<_J/QYGQBUU>^([R&R
MT"]5KO0I8_MT5LS/-N!*PG/RH,]<C=T'%8JVUY_8/P[0Z?>AK&^#W(-K)F)1
M(OS-QP/?VH ]*O/&OAO3Y[F"[U:&&:T.)HV#;D_#&?R^M;%O<0W=M'<V\JRP
MRH'CD0Y#*1D$&O)=5L[M_$_Q!F6PNV2[TX16[BW<B5@BJ0IQSSZ5WW@&.2'P
M+H\,T4D4L5LJ.DB%64C@@@\T <XGBK6#\1M<\/SZFD&G:79?:Q-Y"E\;8V(/
M; WGMV%:>O>(M6\(^#]3U'498+R[BEVV3"(HLBL%V[@#Q@EL\C.WWKC[K1[7
M5OBSXDDU6PNCI=[IXAAN?LDC*) D(RI ZC:WY5O^.=2E\0> =>MK'3[UE1H8
M8 UK(KSL'5F*J1G:!WQV- %&]\<:SI5AH[3:E;W UNXMPDPMB'MHB )3C&"=
MV=O!X'?-=A::[%I%E#;>(M7M9+\+OEEBC*J$9L(SCH@.0,G S7'>*(;B>P\
MF&TNI/LEU;R7 2W<F)5"!BPQQC!Z^E1WEDT/C_Q'::[;ZF^FZ]%%Y,MI TBR
MA5QY9(4E3S[8QD\$&@#T/5/$6D:,P74+U(6V>85P6*ID#>0 <+D@9/%95_X[
MTFR\2Z?HBRB1[J,S/*H+*D>TE"".NXXZ=JY2>V?0/B%<G5]*O+O1-5TN*TC9
M86N/+VJHV-M!.20W3N0:MWUE+8_%7P[J,.E746FII1MD$4!81,-^$.W(7AEZ
MG'OP: .U3Q#I4E_]A2\5I_.,  5BID W%-V-NX $D9R*M7U]::99R7E]<1V]
MO$,O)(V M>::?IVH:5\0HYM#:YDT_4+^9K^PNH&Q;LI8&96(Q@]58=<@<]MW
MXJZ5J&J>%[?[!%)/]EOHKB>&-2S/&,@X Y."0<>U &]-XHTQ=+O[Z&?S/L";
MIH2C)(AQE0RD;AGC!(K#^'VN:WXGL8M:O+VV:UFB=9+5("K12B0@;6[KL ZY
M.:R!:7=WXR\7:]!%-_9DND_9HV\MA]HEV+]T8RV,$<#J:W/A7#-:_#S3;6Y@
ME@GA\U9(IHRC*3(Q'!'H0: -+QGK[>&O"U[J4*>9<)&1 F,Y?!.<>@ +'V4U
M9T+7;;6_#=KK<1Q%/!YK  G81]Y>.I!!'X5FW(EU[7KFVB98H+* Q%;JS=DF
M,G#E3E0<#"Y!/WFKE_A@M_H%[K'A.[@NFM(YF>PNVMW$<@Z$;B,#(P<9Z[J
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
MSM+BZF%^DK)!"SD($<$G XY(KM+'2]'TZ*>^L+*.)YT+2S",F20 =R?F/TH
M@M/&7AR^GM8+76+::6\9E@16R7*]?\FK$/B+2+B]^QQ7T;S9=5 !PY3[X5L8
M8KW )(KB?A-HKP>!989[!K341/*RM<0%'1BH"L-PST]*H_#[3D-EINDZS9:M
M#JFAW<CQQF$K"N6)+[]N"""1@L<]J -?P[XOU3Q-XBU,V]_:VNGZ9>,CPR0G
M]Y;J""^X]&S@]0 .U=9;>)-'O(YGM[U7$,(G;Y6!\HYPX!&64X/S#(KS73M)
MU2^T#X@V=K:W,5Q?7LLML'B9//CWD_*2!G(X_&M?PPEG?:7'JCVNK)JEGI#6
M4ZW%NT:1@#[@&T;\MR,9([XXH ZNW\9^&[N6"*VU>WFDN8WDB2,EF=4SN( '
M;:WUP<4ZT\8^'+^XM+>TU>VFEO2P@16R7VYS_(]?2N9^%NFQV'P^A:[T]H+V
M!IVD\VW*R*23R,C/*XZ57^%6BO#X >":Q:UU(2S%6N("CHS+A6!(ST[B@#MK
M;Q#I-W?"RM[Z.2=BZH!G#E/OA6QABN>0"<=ZY3Q_X]CT?1+F;0M2@>^LYUBD
MC,>]"2>5STW#K@'([BL;X?:<DEEI>EZM9:M!JVAW$IC1H2D,>YB2^_;@@@XP
M6)/;BN<FL=2MOA9J7AB;2[^35X]4WLB6KN)%)7YPP&"#C'7)^E 'N'VEDTS[
M4R&1EA\PJHY8XS@5Q/AOQ;?>*M"^WZ9K%LVJ [I],>)<1)NY"]&SMZ,203V'
M;KQ<21^'OM,,;^8EKO1)(RK9"Y *G!!SVKS+Q/X7T[5(;?7O#%I>Z3XG:6-Q
M:)$\9WDC<7!&%QDG=PIQWS0!W,GC;34\:+X9!8RK 9)9-IPKEE"H..<[B2>@
MP/PT/^$ET8WWV+^T(_.\[[/T.SS<9\O?C;O_ -G.?:N32VO;'XTR7UQ:7#6]
MWI*P1SQ0LT9DW)D$@87&TGG'ZBN/_P"$?UG_ (01?"HMKC^VO[>\PMY;8VX_
MUV_&-OOF@#US4O$NC:/,8=0U".!U"L^02(PQPI<@84$\ G K";Q+J$?Q2_L
MRH^G-IWVH 1Y8-G'!'4<?K6#Y1TSX@^)+/Q%I%U?Z;KRPM!+';/,C[!PAV@X
MQG\-H/3FJ?BK2M9O_B-.=&%SI['1/)CG$!V*XRWE;P-H)'&0>* /4=.U*SU:
MT%W8S>= QPL@4@-],CFK5<]X(UN;6_#=O)=Z=-I]W HBFMY(&B (&,J"!\I'
M3'3IVKH: "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
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
MMO.UJ&L7O)9D52Y <(JKN! Y))X/05>TC1TTB)@;V[OIGP'N+R7?(P&<#@
M#)Z#N:9J6@V^HW]IJ FFM;VTW"*X@*[MK?>4A@05/'4<=L4 <5XBU*_U/P#X
MILKVX87&DSM;O+$BJ+E/E*EA@X.&&0N.1Z'%>B6\3P0B.2XDN&&<R2A0Q_[Y
M 'Z5CWGA*PO=!N]'>:Y2*^D,MU*C+YDS$@DDE<#H!P!@  8%;,,;10JC2O*R
MC!=\;F^N !^E '&ZOK^J6-V9HKY9E35H;5H8(E,*1.RKM=R,^9\Q.%)QQD5/
M+K&IK<^,(%O& TJ".6T;RTRA,1<@\8(R._;\ZLS^!-.G%VGV[4(XKJ\%[Y23
M +%-N#EE^7N1T.1Z 5->^#[.\O;RY%]?P"_MA;W444H"S *55CD$[@#V.#W!
MYH Q-/N;_4O&'AZ>;49U\_03<O&@0(7+1;N"O?//?T(K.@O=4T;1-7U>SOEC
MAMO$<RO:^2K"97N@C L>1][C&.G?MU\7A*R@FTN:&ZO4DTRW-M&XE&9(OE^5
M^.1\HZ8Z5 _@FR?1KK2FU"_,%W=_:Y3NCW>9O$AP=G3< : &1ZAJ6NZGKEII
M]\;'^RW6"$"-&\R0H&+/N!^7) P,=#SR,8UCXFUWQ)-H L[V/34U;3IY9 +<
M2&.2,JN1NZC).!Z>M=-)X9@.I7&H6]]>6D]W$L=T8"@$^T85F!4X8#C*X_E0
MGA:Q@U'3;RUEGMAID!M[>",KY8C.,@Y4DYVCG.>* *-G>ZQ/XEUO1VU!#Y%A
M ]M(( /+D<."Q'.>5!QTJC'KNH_;M4U"VU">[T71;>4S/+'%FZG522B%4&%7
M')[G@=#6Y+X:AEU'4;];^]BFU&W6WD,;H-BKG&WY<@C<><]Z;8>%K:PL[6Q2
M\N9+&U4JEJZQ!&!5E(;:@)X8GKR>30!F1:GK]N+75Y2\VF-:/->I*(5"X3>I
MAV$L1G(PQ/&.:R]3FO\ 4M,\':Q<WQ87NJ6LS6RHOEQ[U9E"G&[@'').>>E=
M%H_@RPT;$:7NH75K&&$%I=3^9% """%&.F"1R3@&J\7@&QAM[2T75-3^R6-T
MMS:VYF0K"RYP =NXKST)- '0WTLD&GW,L3PQR1Q,R/.V(U(!P6/9?7VKE='U
MK5)_$L.F/?/<0W6DFY6>6W50)5=%)C "DH=V?F'88.*ZG4;"#5--N=/NE+07
M,312 '!*L,'G\:Q[3P?;6=[:WHU/4I;FUMFMDEDF4EHR00"-N."H[<]\T <_
MI6O^('TCPQK-UJ23+J5XMK<6PMU52&WX;<.005'3 QV[EGB34;SQ!X$\3WT=
MXUO;VS3VT=NL:D.D?RL6)&[).2,$8XZ\YZ"+P39P:3INF1ZA?B'3+@7%N=T9
M8,,XR=G(&3^?TIMWX$L+G^TXX[^_M;75BS75K!(@C=V'+C*DJ3WP<'N* -^T
M&;"  D9B7D=N*XN3Q%JZ>#KG41>YN;76#:!C$F'C^TB+!&.NT]1CFNVMH!:V
MT<"N[B-0H9SECCU-<[<^ ]/N8KVW-_J,=M>70NS;QS*$CEWARR_+GDCH21R<
M8- %*\U#7[C6O$]G;:NMK%IMK!/;E;9&*EED)!W9R#M&?TQWEM/$.IWE]X/D
M\V..WUBS>:YA6,??$(<88\@9/Z5J?\(O +[4KP7]X)-3@2&<9C(VJ"%QE>"
MS?G]*CMO"-K:R:,Z7UZ?[%C:*V#-'@J5"D-\G/R@#\/7F@#.TKQ#=3^)$TO4
M[J>POA--_H<T*B*YB&[8T+A<M@;2><_>XJ#3O$5]=7\FG7]]<:;JL:3,]E-
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
M_#T,MO9W-PUM)*TB02%2D)8Y(3"@A<]NE &?K-[JR^,-+TNTOUM[:]M;AGQ
M&9639@@G_?\ I[&N??7O$D'AB_U5]6C>31M2>U=/LJ 7:+,$)?\ ND@_PXQC
MOGCLKK0X;O7;/5VNKA)K.-XXT0KLP^-V05)YVCOVK/D\%64NCW^E/?WQ@U"Z
M-U,=T8;>6#'!V< D _A0!F>+O$&J:1#K%W:7RL=.6*2.V@B5U5>-WGEAP3DX
M"L#C!]:T;_5KO1O&-NE_>XT>^MY/*W(H$4Z#<06QG!0$CGJ#27O@73]0_M(3
MWVH"/5$47422JJNZJ%$F O#8 X^[[4W5[--<G@\.3Z9>S06TT,\E]<*/+8+\
MWRMGYF/W2,# 9J -C0VO)-)AFOY'>:;,NUU53&K'*H0 .0, ^^:P+O5-=U67
M6(]#:2*?3KD6\*[83%(P16/F;CNP=Q'RXP!GFNOKG[SP;97.MRZM#?:A8RW*
MJMU':7'EI<X&!O&,YQQD$&@#->]\0WWB6_TN/5([%(]-AN4\N!)#&[%P0"V0
MPRO4]NF.M+8:_J&JZ#X=NVO$M7U"!GG2WC#3RN%X\M65E SDDG@<<\ULKX;M
MX]7N-3AN[F&6>V6V*)Y>Q$7.T*"O&,GOWJE;^![&TATM+>_U")M*1XH)$D0,
M8VQE&^7!' YP#[T <TNI:EK]IX+NY9DBOI-0NHS*8@0"BS)NV@XSA<^F?;BC
M7]0U7_A&/&>AZK=+>OI]K')%="(1ETD!(#*O&05/3K730^!].M;*UMK:[OHC
M973W-K+YH9H6<MN W*00=[=03SUJQ=^$[&^TK4+">>Y)U(@W=P&7S9<  #.W
M    P /U- %.[U._N]8GT;3WN(&M;&*;S+=868NY<#(DXVC9V&3GJ,<[.B2:
ME)H]LVKQPQW^S$ZPME-P.,CZ]?:L[4O"%KJ-Y:WXU#4+.^MHO)^U6LJH\L><
M[7^7!&>>E;5I:Q65K';0AMD8P"S%F/J23R23R2>IH Y-];U74])U_5=/O1;-
MI-S/#!;F)623R1\WF9&[YCGH1@8]\RZ1K]YJ_B.VA69XK.^T*._6+:NZ%W8#
M@XYP/7-:$OA.R>?4&BN;JW@U,YO+:)E$<S$88\J64L."5(S]>:DN_#-I<ZG:
MZA!<W5C+;0&VQ:N$62'(.PY!P 1P5P1ZT <O:^(]?O="\+7":A''-J=[);7#
MFW4Y \W! Z# 0=*[FPAN;>QBAO+O[7<(N'G\L1^8?7:.!6%;^!K&TLM,M(;^
M_6/2[AKBW^="=YSG.4.1\S<>]=)0!PN@RZO'K_B_^R[2SG?[>N#<W#1X;RE[
M!&R/Q%9WA;6UTOPG8Z;9N\=_<ZT]A=F6, 6\Q)>3:N2, <+R1D@GN*ZVU\*+
M975_<6NLZC$^H2^;/CR3EL8XS&<< #B@>"M&70QI,<<L:+<"Z6=9"9A/G/F[
MSGY\]S].G% &?<ZUJFEZWJFC/?6\FW2S?VEY>@(L1#;"LA0 %0<'( .,]:@B
MUW55U34[!+R61$TA;ZWFNK958/N93A0%^4[1PPSU[5M77A.PU"UOHM0FN+N2
M_@%O+<2%5<1@D@+M4 8))Z<GKFH1X-MC=/=R:IJ4MS)9FSDF>9270DGD;<9&
M3T&.^,\T 8]OKFMVWAW1-0N]3CGFU\V=O$OV956W>1=SOQ]XE0>#QN]N*N:9
M!/;_ !.U%)[M[K.DP%'D558#S9.#M !YSV[UH2^$-/N/#-OH$\]U)!:!/LTV
M\+-"4^X58 <KC@X^N:DT_P -16.M'5Y-1OKN[:V6V=IW3#*&)'"J!GGM_/)(
M WQ+K$VF?V9:V[".;4[U+42D9\L$%F8 \$X7 SW(ZXQ65>7^I1:OJWARXOI9
M4.EF^MKL(BR(-Q1D;"[3SC!P#@GOS70ZSHMIKMDMM=[U\N59H98FVO#(IRKJ
M>Q%0?\(]"PO'EN[F6ZO(!;R73;/,$8SA5 4*!EF/3J?I@ K> X7B\#Z,7N))
M@]C RAPHV#RU^4;0./KD^]=!5+1],CT;2K?389IIH;:,1QF8J6"@8 R .@%7
M: "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH
M **** "BBB@ HHHH *R_$FK3:%X?O-5AMDN3:1&5HGD*;E R<'!Y_"M2N>\?
ML%\ ZX6( ^Q2#GW% $5WXFU33=%CUJ]T6)['RUEG-I=F22)",EMC(N0!UP:V
M([R6\:PN;!K:;3[E"[RLY#%2N4*#&#GOG'%8.JZS96/@!4:19I[G3Q#;VT9W
M//(T> JJ.3R?P%8VF:.VB:GX"LKP*+R*TNHY>>?]4#M]\$D4 >B;ESC<,^F:
M0,K$@,"5Z@'I7FVF:7 FA>*]2TVU1M5L;_4%LI$Y>$E<80=N.U3Z>-(NU@UG
MPWJR2ZDNG3+%:VJ("_R9 F4<_*P&">Y]Z /0MZ[BNX97J,]*KZ=J-KJMF+RS
ME$L#.ZJXZ-M8J2/494\UQ_A9O"VKV6A74,L4NIK;-'+$C@RNS)B83KU89!)+
M=\>HS@:7-:67@30UC6!+=]7$>K[  1%YTH42X_AW!0<]N.AH ]75E9=RL"/4
M'BCS$VEMZX'4YX%><^)K*.WO_%4-E$B:<WAUY[B) !&MR-WEL!T#%03^ -7)
M-!MT\/Z--HLEE:ZC<M#,!<J7BOG6%ODD]>"Q!ZY /:@#NP01D'(]JK66HVNH
M-<BUE$@MIC!(5Y < $C\,X^N:RO!ES'<^']JZ:-.:&YGBEME8,BR"1B^PC@K
MN)Q^7:N(=H=,\,^+&T^***ZCUB43"!0LR6OF1[\8Y"[2?I0!ZHK*V=K X.#@
M]Z@O&O$\C[(L# S*)O.<KB/G)7 .6SC /%<P]M!;>/=#DT)(H[>ZLIS>K;@"
M-X@%\IB!Q]XX!],U+XXCA^T^&IG"B1=;@56/7D-D?H/RH ZG>N[;N&[TSS1O
M7=MW#=Z9YK@D\W3_ !-#<2PVNJZ?=ZO(D%U'\MS9SG<K(W]Y!AAZ@#T IMFK
M67B&S-S;VFK:=?:A<+:WT8Q<02,)-\<H_C4#>N>VT9' H ]!II=0P4L 6Z G
MK7DT,^G0>!= MI);9+BS\0@&,E0T(%XQ.1U48(_,5H73:3K%[K^GZ]JZ6%Y%
M>[H<J@G$0"F)H6//X+W)X^;D ]+K$\5ZY-H/AJZU:SAAN7MPIVO(0,%@,\ Y
MZ]./K3O$<(N/"UQ;RWYLC+&D?VB10=K%@!N'3!) /;!-<-KL\R>#O%=GJ.FV
MUC?P+;?:);-OW%QN8;77NIP,$'GIZT >HA@20""1U'I2*ZL2%8'!P<'I7!:E
M'IF@>,-2>*-[>WD\.RSW2VIVR2E9/OY[O@M\QY]ZKZ!+IX\:6$,4E@EM=Z$4
M,$#A@V'CVJ[9^=MI/.!P3Q0!Z,&4G 8$^QI%=7&58,/4'->4:9:V>G?"O3]<
M@A E+1Q7UR@+N+7[1F0'U7 Y'IFME]/T2:VU>;2O$D2B_MXDE>V6,VT3;P$9
ME7C+9VG)Y7.: .^5U<95@P]C3JY;PA-.+_5K*_TNVLM0MVB-Q)9G]Q<;E.UU
M'4' Y!]O6L[Q)80:9XK6Z73HKB+Q#:/I\L9CRK7 ^:,M[$;@3_L@]J .X;<$
M)0 MC@$X!/UK(\*ZW+KVA0W]S%'!-)+,AC1B0-DC)P3U^[7.^"[+S/L^C7MJ
MC/X6EDA$C1 !W/\ JG7_ +9G)]V!K!L+2QC\'Z%JZ)&+Q?$(5;G/SA&NW!4-
MV4J3D#CDF@#U"%KPWURLRP"V4)Y!1R7/!W;AC YZ8)HO+AX;&XFMUCEEA1F"
M,^T$@9P2 <?E7 :F]Q8W?Q"DTD,MRMO:N/*^\,QL6(]#C)^M;%G)X3N-^I:'
M/ 96TQT9;:0!5B'(,BCH0>!GGD^^ #<\.:JVM>'M/U*5$CEN[=)FC4\+D=O:
MM.O+]$L[.RL_A[?P1)'=7'[J6<??D0P-\I/4C(&!T'&*ZCQS?)81Z/)>';I3
M:BBWS'[H0JVW?_L;]N<\<"@#J%974,K!@>A!S2*RN,JP8>H.:X#7Y-*L-)EG
MT24/IL^K6S:JT$FZ!(B0) ,< '"[@.S<]:EU73HU\4W]MIMO&;*ZT.1[R"-!
MY9DSB)MHXW$;@/4+[4 =Y6+X;UJYUD:G]IMXH'L=0DM L;E@0H4YR0/[WI7%
MZ=?::[?#=TN;9IHK?RY&#+N3_12NTGM\W&#WIMS?26?A_P 12JS+:GQ1LOG0
M\K;EHQ)T[8X/L30!VR:W._C(Z)Y,/V?[ ;I9E<EB0X3!&,#OZUM5P]K+HEG\
M3S+9RV4,<FAEF,+JJG$H.>./N_H/:NQM;JTU*S2YM9HKFVF7*R1L&5Q]>] $
M]-+JN<L!CKDUY1<3:9;^!;FUD>VCGM?$+;8C@-"!>#D#^$;3^1K3NM+TG4?$
M'C@7%M!.BV-O*H;E0QBD.\#IGH=W7GWH ]$=@B%B0,=V.!61X:UJ?6[*[GN8
M(X'MKV:V*QN6'[MMN<D#T]!7)Z/J4=SJWA>#6Y$>TG\/1RP&X(*2W1V[^O!<
M+_Z$WK658W]G8:-'&MQ%#HZ>);J.Z90'CC0E_*W#ILW;3D\<"@#U@.I4.&!4
M]#GBE!!&0<_2O,-;TW1H-#GDT_45O+>76;.0F)E$,#M(H<1E. 2,$X/<&O0;
M?3;;2-,FM](M(K<?/(D2#"[SS^IH N[EW%=PW 9QGFC<N_9N&[&<9YQ7!^$9
M_#NJ:;H5U).IUZ D3*K[;AIR")?,'WBN<DYXP!5#0CI>LP6$M_JXM]>L]0+3
M01JBW1F#D%#GYF0@\]MH[ < 'I3S11(SR2(BH"6+,   ,G/X5#97]O?Z?#?V
M\@-O/&)$<\94C(-<-H>@Z/>#Q3++8P3S6NJ7(A##=Y684!P.V<G\AZ"JND76
MA1^&?!UJ!:^;.@8EG5;<2K!\QF'\3 'A3@YQR* /0[U[M;=6L5MWD,B9\]RJ
M[,C<00#SC./>IV=5SN8#')R:\ICDM)? RQ^=#(UEXD58@AP(U-WQM&3M7&<#
MTK9NM(TO4/&WBB&\M89T_LVW<HXR-V)?FQZCCGJ/QH [^F[EW;=PW 9QGFL#
MP;<3W'@#2)P_FSFPCPS'.Y@O<_6L#PC<>'M4TS1+F>=3K]O(1,BOMN6G((E$
M@^\5ZDYXP!Z4 =O:O=EKG[8MNBI*1"8G)S'@8+9 PV<\#C&*G+J%+%@ .IST
MKRG5+>U7P1XU0*BK%K^4P<;#F <>G4BM_5X]'\.^)=&MYX8+31;QKB20O_J7
MNB$VLY/&=H;&>_/6@#N 01D'(-!( ))P!U)KSZ_M]$T^Y\,W.FN@L8M9D5;A
MG!1=\<A*HW0)NX '&16-K3:;/H/Q 6!K=D6YBEC$9&/]7'\PQZG//?- 'K.]
M?F^8?+UYZ4%U";RP"XSG/%<1<:%I ^)5O:_8H3!>:5+)<1$96X99$VM(/XSR
M>6S6;I-M/<^%K"UTR]M4N+/5;L6EM> O#.J/(!$>XPIR/3% 'H-QJ-I:W=I:
MRS*)KV1HX$SRQ52Q_ !3^GK5C>H8*6&X\@9Y->9A])NKCPG/>Z3;:?#'?WT%
MQ#/L:-&"2Y4,1@KOSCM4>O7^FR->7=M+!#-;>((5D>X?=<%EDC5BO(*1@9 '
M.1GIF@#U NJYW,!CKDTK,J*68A0.I)KSJZTO2-2USQOY]O!<(+*WF4-AE5C%
M(=X'0'H=W7GWI;/5[87?A4>()XS876AJT4ET08GNL)NW$\;MN<9]3ZT >ALZ
MHNYF"J.Y/%!95&68 >I->=32Z-IVJZ/IQO4AT![6=;.:[Q+"\OF#(R_&-N0I
M/;('!YE_LDP:?I-MX=U.WU(VIN7M[740&ANXLJ&",.FW.%//!/:@#T$$$9!S
M6-XAUJXT>72EAMXI4OK^.TD9W(*!L\@8YZ'O^=0^%]:TN;0](AC":>]U ?LU
MC)(-^$X(7^\!CJ.W-4_'R1RIX>AE.%DURW4C<5)X?N.: .K#!AE2".G!I%=7
M&58,/4'->;7;:5HDGC:S: PZ:C61^S6K"%0TBA3TX4$[=QQTS5O1;?3M1\5>
M)='N'L);:]L[8F"V $9.) Q49.6&!EACH.!0!Z!3=REBFX;@,D9YKAO"<$EW
M:V^E75I&T_A=GAW-& KS ;8F7ZQG<?=E-9_AC^R-7M]#O)M8\O6[68>?!&B+
M<O-R)4D'WBIY)]AGM0!Z42%!)( '4FDW+MW;AMZYSQ7.^,+JQA?1[>\ +3WP
M\GS9-D <(QS)Z@=0O=@O3K7#RO9R^#-4M_M%O(+;Q(OE>2VU8T:>/E "=JG+
M8P?6@#UL,&S@@X.#CM2,ZH,LP4$XY.*Y'1[2TTOXDZI9V$,=M!-IL$[Q1#"M
M)YD@+8]<8R:@\6SZ9-KUQ8W'D"Y72';=>L#$$9B,(AQER5Y.1@ =>E ';$@8
MR0,]*JWVIVFFVJW-U,J1NZ1H<_>9B%4#U))KSW3ELM6F^'[731W33:=-'-N;
M=YA$*95O[W).0?4U4NK:QC\):A;F*'[)8>*1'&C %((_.3*C/W5^8\=.: /3
MRUY_:83;!]C,).[>?-\S(XQC&W'?.<TFHZC:Z3I\U_>RB*"!=S,?Y#U)Z 5R
ML<=O'\3 VEI; OX?8Q!3B-L3*%Z=N ,CM5?QJFL3^ M7.OVFF*L2QO";61Y,
M'>-Q.]1CCN/4T =TSJ@!9@H)QR<5CZAK5S9>*=(TE;>)H-168M*7.Y3&N[ &
M,=QSG\*YK7YM FU*:PMQ8J$TB0H9BIMPC.PQ%&, N64Y((Q@=:R9[W4;G3O
MD^CS1W.I?V9/MWN"6<0)N&>?FZ]<\XS0!ZH3@9-"LKJ&4A@>A!KSJ\U+1(?#
M>A7>F*EEHLM^$U F($QML? F!])-N2W?!J+4DL=*TR6;2M3^UZ5<ZO:MJ7DE
M?L\,1/[P+LX .$WCT;WH ])5E<95@P]0<TZN-.E6S^/;BQMK:(Z7>:3F_MU4
M>47WXC8@<;BNX9]%]JK>$;,2B'PY>6JM_P (S<."[1C$G_/!AQCE&+'OE0>]
M '<[EW[-PW8SC/.*7<N<;AGIC->9Z*=+UF&UDU'5Q;:]9ZDS2P(B+=&82$;.
M?F9"#CTV^@'&KX/T;2YM=\0736L37%GK4A@;O#F) <#MG)^N/84 =NS*BEF8
M*!U).*SM<U==(M() @DDN;F*UA4G WR,%!/L,Y_"N?\ %5[;V_BS2[?5KJ*U
MTV>VF$<EPBM"9\KPV[@';G!/J1WK&U32='M?#N@06\ZZA:)K\$<,TZJR[&DR
MR(<<IG(QTX]!0!T[:UK$.HPZ-/;V:7]R9G@F#,8FBC"G<5Z@DN!C/&"<G@':
ML)KF6S@-_#';WC)F6&.3>%/?![BN5U/3-+_X65H41L;3!L+D[/*7^$QA>,=@
M#CTK&TTZ7K,8_M/5Q:Z[9ZH[/$B(MUYHD.U5)^9E*D#TV\=!0!Z664,%+ ,>
M@SR:KP:C:W-_<V4,H>:T"&91_!NR0#[X&<>XKAK&XT+4FUBU\03(FKV^K.RK
MOV7&%<& 1?Q8*[0 .N3ZUH:!!IT/Q&\3 Q6T=R7MFA^50^##EBO?DYSB@#LF
M944LS!0.I)Q02 ,D@5RFHR+-\2+&QU*-'L)--D:U2491[C>-_!X+!,8]BWK7
M*RVB?8K6"?FPA\6B&P);&V#G**?[@;<!]/84 >J@@C(((]16-X@UN?2)]+2"
M&&5;R_BM92SD-&'SR !ST/<?C5@V4>BZ!/;:+:)%Y$,C6\"#Y=YRP 'NQ_6O
M/1<Z)/X9\&:@)K8WW]I6QN9G8"4R$'S=YZ_>ZY]O:@#U(LH8*6&X\@9Y-9&F
MZS<WGB76-*FMXXX]/6!HW1RQD$@8Y/ Q]T<?K7%0'2]9^VP:OJXL]9M-4D;8
MJH+D,)28A&3\S IM48X(XK6EN[>T\0^.9[AIO*ATZV:7[.<2!1'+G:>QQT-
M';*ZMG:P.#@X/2G5YKHR:5<^,+:Q;^SC97V@&-[:!@RMB1-JLW\;A2>< \FK
MGAFR+S0>%+RT5D\-W#2&1HQME0C_ $<^F2&8G'>/WH [ZFAU9=RL"OJ#Q7,>
M.[E[:TTHR<:?)J<*7Y_A$1S][_9W;<]NQX-<WXNLH[>Z\40V<2)IS: 9[B-
M!&MSN8(P X#%0?K@4 >F!@W0@X]*6LKP_I>G:?IZ3V-ND;7<<<DTBG)E;:/F
M)[GWK5H **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ****
M "BBB@ HHHH **** "BBB@ J*XM;>[C\JY@CG3.=LB!AGZ&I:HZOK-AH5D;W
M49C# &5"^QF ).!G ..2!D\4 2V^GV5HQ:VLX(&/4QQ*I_04Z6QM)YTGFM89
M)4^Y(\8++]">E95KXPT2\GO(([B42V<7G2QO;2*QC_OJI7++[C-+9>+]%U"
MSV\\K1"..02&WD"N'.%"DCYF)XP,G/'6@#4MK&SLRQM;6& O]XQ1A=WUQUHM
M[&TM'D>VM88&E.Z1HXPI<^IQUK*E\8:-;VU]/<330C3BHNXVMY-\(895BH&=
MI'<<5H?VI:B>UAW2;[N,R1?NFQM !))QA>HZXZT 2PV-I;32SP6L,4LQS(Z1
MA6<^Y'6E%G:K'+&+:(),295"##D]21WS[UG1^*-*DNX+82RA[F-I+9F@<+<*
MHR?+./FXYP.HY&15>T\;:#?-9?9[F5DOI#%!*;>18V<$C86*X#':< G/YB@#
M533+".T-HEC;+;DY,*Q*$)_W<8H;3;![9;9[&W:!#E8C$I53Z@8P.M9VF^)(
M]2\1:GI*VT\9L"B%WA8!F*EB<XP!C&,]>:T+_4[731"+ER'N)/*AC12S2/@G
M  ]@3^% %B**.")8H8UCC485$& !["FK;P)))(D,:O+CS&"@%\<#)[U!IFJ6
MFKVAN;.0NBNT;AE*LCJ<,K \@@BF:AK-GIK^7,9'E$9E,<,32,$'5B%' _GV
MS0!/:V-G8JRV=I!;JYRPAC" GU.*6XLK2\V_:K6&?9ROF1AMOTS7*ZAXBC3Q
M3X?N[;49IM+O[.YD$4*%Q*5";2%4;B?F/'/T%;4/BC2)],M]0CN&,5S-]GB0
MQ,)&ER04V8R&!4Y!'&">E %Z/3K&*Y:ZCL[=)V))E6)0YSUYQFB+3K&WN&N(
M;.WCF;.Z1(E#'/7) S6;)XNT6'2VU&6Y>.W2X^S2%H7!CEW;=K#'R\D<GCD<
MU/8^(],U"XN[>*:2.6S4/,L\+PD(<X<;P,KP>1QQ0!:_LRP\QY?L-MOD<.[>
M4N68=&)QR1ZT^2QM)KJ.ZEM87GBXCE:,%T^AZBLZ+Q3I,MS9VZRS;[]=]IFW
MDQ.O'S*<=.0><<$'IS3F\3:6EY;VSS.OVF4P0RF)A%)(,_('QC/!QSS@XH T
MYH8KB)HIHTEC;[R.H(/X&JXTO3A;?9A86WD;MWE>2NW/KC&,U)>SQ6UE-/,[
MQQQH6=T4LRC')  )_2L6T\3:-8Z9HZ/J%U<+?Q#[+--"[/< +G)(7[Q Z=23
MP* -<:9IZRB5;&V$BKM#B)<@8QC..F.*$TVPCC6-+&W5$5E51$H #=0!CH>]
M1:1K5EKEM)/9.Y$4K0RI)&T;QN.JLK $'D?G3[W5+6PD2&0R23R*S)##&7=E
M7&3@=AD<^X'4B@"6"RM+:%H;>VABC?EDCC"J>W(%,CTVPAM6M(K*W2W8Y:%8
ME"$^XQBJD7B32KBQL[RVN3<1WV?LPB1F>7&<X7&>,'.<8[U%+XMT6#2)=5DN
MF6UAE\F4^2^Z*3.-KKC*G) YQU'K0!J6]K;6<7E6MO%!'G.V) HS]!4C(CE2
MR*Q0[E)&=IQC(_ G\ZQ3XNTK&H"/[2\NGP^?)#]F=7=.<,@8#<I((R./?%5[
M3QOIC:5I5U?>?;S:E"&CB^RRG<WE[R%^7YO;'7MF@#H?)BQ(/+3$O+_*/GXQ
MSZ\ #\*J_P!CZ68Q'_9MIL!W!?(7&?7&*J_\)-II@CEC-Q*7@%P8X[:1I$C/
M1F7&1T. >3@X!Q67K&KM/J/A:ZTO46:RO[PJPB(V3)Y3L,\9Z@<9_"@#HXK&
MS@F:>&T@CE?[SI& S?4BFQ:;800RPQ6-O'',<R(D2A7/N,<U8DD2*-I)'5$0
M%F9C@ #J2:S+;Q)IEU=V]LDLB/=H7MC+"R+.H&3L)&#QSCKCGI0!9_LG30$
MTZUQ&<I^Y7Y3[<<59FABN(FAFC26-QAD=00P]"#7(VNH3^)/$.JVB7FH6/\
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
MK<K-Y2;DA,FS8N1U/RD$CBLJV36;*RD$>DW9BE\07$\VR$><L$C.5>/=TSD
MD?, 3TZUZ%10!YI+I>JIX;UVQ&CWPDN-<CNH58B0O'YD3$[MQR0$.<GKW-;5
M_"9?%NJ7ES93G3IM"%N\CCRU8AI&92QQM^5AR>*[&J]_86VIV$]C>1"6WN$*
M2(21N!]QS0!P?AZY"3^'_P"V=.UF"33H1:VLDUD$C1I J#>ZL<G@*#A1SR,]
M)?#%A<6MO9Z#J?A1I;O3IEVZBZ(UNRJWRRAB<[\=@,Y].<=38^';:R=&-W?W
M8C(,:W5T\JH1T.">2.Q.2*T;BY@M('GN9XX(4&6DD<*JCW)Z4 1ZCG^S;G:C
M.QB8!4&23CH!7$:=87]O8>!HY-.N@^FDB['E']S^Y9.?7YB.F:[Y75D#JP*D
M9!!X(J.VN[:\B\VUN(IXPQ7?$X89'!&1W% &!X5@N(-6\1//:S0I=:AYT+2(
M0)$\M%R/Q4U!K1U+2/&EOKD&F7.I6,UC]CFCM0&DA8/O5MI(R#G!^E=,;NV%
MVMH;B(7#*76'>-Y4=3MZXYZU-0!R%W;:E!XBT77SISBVCAGM[BUA =[=9&#*
M^U<[C\H#;<^V:RM:T+4)M%\3W5O93M)K%[;O;VJI\VR,Q@N1_"3M8X//3OQ7
MHE% '':A9WE[XQNYX;.?R+C06M4E:,JOFERP4YZ<'Z=NM4;2#4/LO@D2Z1>Q
MG2R$N@T8)3%N8]W!/&X_7 SBNT.J:<()IS?VPBMW\N:0S+MC;CY6.>#R.#ZB
MI?M=L+L69N(OM)0N(=XWE1P3MZXY'/O0!SD45YHOC?5K^:UN+BQU6" QR01F
M0Q/&"I0@<@'.0>G7FL:TT#4-*L_"MN]I*[6VI37=PL2[EMT<287(]"X'&>_:
MO0J:[I&C22,$102S,< #U- &;XETR;6?#.I:9;R".:ZMGB1B>,D8&?;M6 UI
M?:_%X9BDL)[*?3+J.XO#*FT1[(V4HK='W,1]W(QUQTKL(9HKB%)X)$EBD4,C
MHP96!Y!!'44^@#FO#<5Q'XD\1S36D\,5W=1R0/)&0)%6)4)'IRIZT[QK:7=S
MI^G36EM)<FSU.VN9(XL%RB/EL ]3CM71T4 <E$MU_P )EJM_)I]U'!-I<,2,
M8]VYU+LR\9Y&\>W7FN?TS3]4T:S\/7MUH%UJ$,&G?8;NU1 9H'#!@X4D!@>A
MP?2O3:* ,[0[=+?35$>F1Z8CLSBV15!3)_BV\;CU./7OUK!%E>>&O&NI:O%9
MS7FFZRD1F-NN^2VEC!4'9U96!ZC)![5U]% '-^)+6\\4^%M3TZRADMQ<6Q6)
M[A3&SOD$#:>0.""2!UJK-#=^(=0\.W36%Q9-ILK7%WYL94H?+*^6I_CR3U7(
MP.O05UU% 'G+Z=J+> ;FP&FW7VI]8,ZQ>4<F/[4)=WI]W_"MBZAN&\;WM\+6
M<6CZ&(!,8R%\P.[[>?8C^76NNJ&ZMQ=VLMNSNBRH4+(<, >N* //]%M)-?\
M!/A"RAM9D:TEM;J69XRJQI&,Y#="6X  R?FYQ@T10:Y=3:%=7>B7RW5GJCM<
MHFQ88U*R >6NX K\P^8C//)KN=)TN#1M+@TZV:1H+= D8D()51T&<<U=H \X
MO=-U*;PEXQLTTVZ-QJ&HR2VJ>4?WJ,(P"/3[AZX_6MKQ9:WIN-*UO1B(M0W_
M &,K*-I:*;@Y'4E& ?'^RU=1#<P7/F>1/'+Y3F-]CAMC#JIQT(]*SY-*TVTU
M6;7KJ>17"@YGN6\F'"[=RJ3M4D<$^Y]3D OV=K%8V<-I -L4$:QH#Z 8%<S$
MMUI?B[Q!<RZ9<W$6HQ6YMO*CWK*40JRD]%Y/5L#WKJHY$EC62-U=' 964Y!!
MZ$&G4 <'<^'+O0?A]I)A='U70-L\1!P)&S\\0/HP8J/7BNOTBR>PTR*"5@\Y
MS).XZ-(Q+.1[;B:BNM"L[W5X-2N&N'D@4!(O/80Y!R&,>=I8'D$CL/05I4 <
MC>72VGQ2B=X9I$.BL"8HS(5_?#LN3CZ"LF'0[^PETB<V$Y#Z[<:C+%&F[[-%
M('"@XXR,KD#U/I79'1+<^(1KGG3_ &H6_P!FQN&SR\[L8QZ\YZ_A5ZXN(+2!
M[BYFCAAC&YY)&"JH]23P* .:6&\T;QSJ.HRVT]Q8:I:PJLD,9D,,D6X;"HY
M(;.>F>N*ST\)WR?#^2T11%J<=S)J-H@(/D2^89$08XZ?*>WS&NX!! (.0>A%
M+0!QOB73=0O/AOJ,"VCR:IJ2>8\$8W$2,0=N?15 7/HHJ1S?Z9XYFU7^SKN\
ML-3LHHE>%,O Z%CM9200#NSGUZUUU% 'F]EIVJ1^&/#=M+I-W'+9ZX;F9"@)
M2+S)6W<$]G7CKZ U?NK2]>7QR!I]R1J,"K:'RCB8BW$>!_P+UQZ]*[FB@#SZ
M:6ZTS4="O+;3-0>[AT@V]R(8!,47*X5XRRD?,K$,#S@]><='X-^PP^'X[*QB
MO(5LW:.2.]B\N4.?G)8=.=^>..:GO_#=G?:E_:*SWEI=F,1O):W#1^8H)(#
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
M>ASP7=M-;R?;;B0+*N,J\K,I'X$5TE%% !1110 4444 %%%% !1110 4444
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
MR&(^?:%0N=C9ZDJ3GC&3UZ5'J7A74+C4-;ELM1@AM]:MA%.DD!9T=4* J<@
M$$9R#TXH #XKN+J."*QME^U/I\5[(&BEE5?,!VI\@)&=K<GI@<'/&UHFH3:K
MHUM?7%C-833)F2VG!#QMG!!R!Z<>HQ7/CPCK%A/I][I.M00WEO91V5SYMJ6B
MN(T^ZVW?D,,GOSGM746<$EM:I%+<-<2#)>5A@L2<DX[#)X'8<4 <[XF\57GA
M^.^NFM8!;V2HZ++)^\NP?O[ /N[<CD@Y/IUIMTO_ !<^UD@5!*^B3X+#@GS8
ML9]JBUKP7?ZI+KR1ZM%';:S$BD/;EY(BJX"JVX#9D9QCN?7-:2:'??\ "46F
MLRWL#B"R:U>-82N_<RL6'S''*C YX[T 8WA[Q3?KX1TZ]U'9<7>I74D4/EHY
M^;?(Q) !.%5#@#T XZU)>>,=8L--OYYM%+-9W4$2RLLD*7"2L%#('7.03@@G
M ]:5/ UY'X<@TN+6%BGT^[-SIUREO@Q'<YPX+'?D.0>@QCBK.I>&];UC09+.
M^U>W:[EEA<NELPB01N' 5-V<DCDD_AQ0 7.O^(++5M,TVXTS3S+J,DZHT=TY
M50B;ESE!^/TZ4MAXFU*[TFZ=K"#[;9:B;&X*R_N8P""9<G!VA6!QU[>]7-2T
M6\O]=T75%NH(_P"S#(7C,9/FETVG!SQ@=.M9,G@S4V@NQ'JENLDVL+JB V[%
M"0 /+<;OF7@'MR* *>L^+M2G\):W-9-;QW.G7B6K3QDE9$<IAT[@XD]3C&03
M6]<:G<0>+=)TVYL;1GNK>=UNE8ED*;<J 1P#E>_./:L^Y\$WMW8Z];3:M$?[
M7ECG5EML>7(@3_:Y7,8XZX/4UI2Z'J%QXATG5I[VW8V$,L<B+"5\PR;<D?,=
MH&T8'/UH K6OB:^E@UJ&>V@CU'3;E;>. ,Q$N_;Y39[!]V/;!ZU%J'BO4(UO
M6TW3FOFT^40R1)!*QN& 4N$95*KC=@9SD@]."=*;PY%+XMAUX3,I2W,4L('R
MRL"?+8_[H9_S'I5$^&M8L]<O;K1]:CM;+49!+<V\MMYC1R8 9XSD8) '4$9[
M'I0!TL4GFQ))M9=ZAMKC!&>Q'8UP]OXGURRT+Q1J\\=K=G3;Z9$BWL@"HJ#
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
M0 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%%
M!1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %
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
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 %8/CAI(_!6
MKSPS2PRP6DDD<D,C(RL%)!!4@UO5C^+;*ZU/PKJ6GV4/FW%W;O"@+!0"P(R2
M>U 'E>EZQK4FF>$9="U2_OM7N)&&H0M<O/&8]^,R*Q(3COP<?A7>77Q%MX-8
MU32(=$U.\OM-VEX;:)9#(IQ\PP>F".OK5[P'I5[H?@^QTK4(1'<6JLK;7#*V
M6)R"/8]ZS]!\/ZG8?$;7];N+=5L]11%A<2*6&T <CMG% %K4/'EC976HPQ6=
MS=#284FOVCVCR0W0 $_,P&20/3KGBEN/'6GP:SH^GK;SR1:T@>SNUV^4P(S@
MY.0>1QCN*P=2\&:O;WOBT:?"ES%XDB01N90OV=_F#;\\X^8D;<GMBK>N^ )K
MGP'I6CV%P!J6D-"]M<GC#J1N/L.IQ["@!OC?Q!#_ &)!+=+JUA NK+;K-8RH
MK2,A8>OW"0WOE>E;,WC.U77[S1K:UFN9['ROM 1E!4/CD*3EE4$%B.F>]9?C
MWPKJ&K^&--TG1XEF>UNXYG:60+E55@23W8EL_G5/Q3X-O]<\1Q:K8V1L-0@N
M8FAU&*=0#"%7>)5SDL#N QG(P"<4 6]*U[3[7Q;XLFN;S4HQ8QQO<1W+AH(E
M"GF, D\CG'O6EIGCBRU"]TZUEM)[0ZM 9[!I2I$RCG!P3M;'./3OGBL"3P/J
M>HZWXP:Z1;>UUV%([>42!BK(."P'8D T[3?!^K7&K>%9M0@6UA\.69B<B16^
MT2;0HV8Z+\H.6P>V.] $\OQ7T^&RO+QM'U'[/I]Y]ENI/W>(VSC(^;YN?3\<
M<9V+[QK9VVLSZ3;6TMY<V]LMS(D;*&*GD;0Q!8@<G'0>IXKA[GP#XDF\*^(M
M,6SB$^J:H+N',ZX5-V>3Z\#\ZU?%W@O4/$+P7%MIYM-4MA"+/48KA5,>,;UE
M&<D#YB"N3GT'4 ]'KG]4\76UAK$FD6]K->WL%HUY/'$5 CB'J2?O'(P/Y5O*
M"$ 9MQ Y.,9KB=3\,:G:^--2\0:? +Q-3TMK1HA(J-%+\H5CN(&W"C..?8T
M9GCWQA+>>%=#O=!DN/L>J7L:/-&XC9E^;,74$$D8...",UW>B:8NDZ:MLLUW
M*"S28NI1(\>XYV9'8=!7G]Y\/=7MO!'AW0K-8[F?3[];RY?S J]6)5<\G[V!
M]*]/4DJ"5*DCH>HH PM4\5V]AK0T:WMI;V_%LUT\4951'$O<DGJ3P!^>*H7'
MQ%TB/2]'U.&&XN+75YQ;Q,@4&-R<8<$\8.>F>E0:GX;U&U\=S^)M/@%XEWIK
M6<D D5&1^"K?,0-OR@'N/0U@S_#C5K'P+H.GV9BN[_3=06]FC\S8K\DE58^G
M'7T/TH ZZV\:6MU?:]9)8W(FT-0TP)3$@()^4Y]!WQ47AWQW;^)GL6L=(U(6
MUVLA-R\0\J%D)&UF!ZG';U'OC(TGPWKUMK7B[4+JRA7^VH +=8IPV&"D;23C
M^]U]C6U\/-&OO#W@NSTC48ECN;9I VQPRMN=F!!'LV/PH Z*XF2VMY9Y"0D2
M%VQZ 9->>> )[GQ\E_XBUFXN#"+DP6EC'.T<4*@ Y(4C<WS8R?2O19(TEB:.
M10R."K*>X/6N%\)>'=:\ RWVFVUG_:ND7$YGMWBF1)H20 597(!X Y![=.>
M"#X@V=]X?\#:Y>6FK7PS);O;-]J?S(/G564-G)')ZD]?85K>&_&45[J5IX?N
MK.[M[QM.CNHY9]I$Z8 +<$D$G)YYZYQ3/&VD:YXF\$7VF1VT"75U)'Y40EXC
M175OF8]3\IZ#N!SUJE8>&M:B\?:9K4EJB6MMI"64A,JDB0 DG /(R<4 7K?X
MCZ7<7.F;+:X^R:K<O:VUR=N#(K;<,N<@$G@_F!2WWQ"MK/7=2T2/1M2N[ZPC
M$GE6T:N95.#E<'T8'GZ=:Y5O!GC2]N=(U'4H+*>^L=6%S+)]J/SQ[@0%&W"*
M,=!G.<XSUZ;2] U.U^*.L:_-;*+&]MDAB<2*6!4(,D>AVG]* &67C+4;_P"(
M\V@II<T=K;6:NZLR!P7*'>V3P #C R>3QV%VV\>Z9=7-KLAF%E>7C6-O>'&R
M28=L9SM)! /<C\:JP^'-4M/BC?:_'%#+8:A9I"S&7:T1&W/&.>%X^M9?@KP;
MJ?AUVTF^T32[NV@NO.MM4DVLX7(.-N-V[T.0!GOCD U;;XC6]Y?7=C:Z'JEQ
M<65X+2X2&)7$?S%2Y(/W<@_Y!KL:XWP1H&IZ+K?B2ZO[98X]4OFN8&616(4L
MQPV.A^;Z=:T- U'7[C7]9L=8M[5;>V=6M);<DY1BV%;)^]A5)'^U[B@#5UC5
MK/0M)N-4OY/+MK9-SD#)]  /4D@#ZUE:=XQMK[4X=,FLYK2\NK,7MM%*RGS8
MSGC(. PQR#^M2>-?#S^*?"=]H\4JQ2SJIC=N@96##/L2,?C6'IGA;4[GQGI.
MO:A;BSCTG3%M5C\Q7:67#!B-I("88XS@^U #A\4]+;PY!KHTZ]^S37WV';\F
MY9,9R1NZ=?RJ_JWCNUTGQ(^@-IE_<WGV;[1$MNBOYPYX SG/!Z^E<*WP]\4I
MX4'A^.SMF6WUG[:LYN0/-3:0,+CC\3Z5V$F@:I)\5H/$8M0+!+#[,29%WACD
MYQGISB@#JM/NVO\ 3K>[:VFMFGC5S#.NUX\C.UAV(KS_ .*M[<Z?K/A=H+Z\
MM8KF]\NY$%Q(@D3<F00I]"??FO2:X;X@^'-8U_5M N-,M4E32[K[1*9)53<,
MH<#W^4]: ,WPOJM_/\1=8AT>^NK[0[>#)M[JY+.)<#B,2'>!G(R?E_2NBT?Q
MW;:YH\VH6>FW>Z&\6S>V<HLH<E1TW8 !8=^Q]*S8_"VIW?Q+7QC?"#3;2UMS
M&(5EW/-\K#<Y'R@?-ZG[HIV@^'8XOB'J>LV%W'+I-Y#%>*D3!D:=MZ[@1U^7
M>?\ @8]!0!VERH>UE4E@&0C*L0>G8CD5YQ\/O%QT_P"'5E?:S=75Y/=ZB;2)
MI',CL['Y068\#@\FNFMO F@:5J+ZO86,WVX"1E)NI""S @\,VWG)KD]+\)^,
MM'^'MOHEDL$5VM_YEQBX"^9">2%<<J<XR1SZ4 =*GQ M&TW6KK^S;LS:%*8[
MVW386 Y^93G!'!/8\'BDB^(NFRZAH=I]EG']N1+);R;DVKG^%N<@Y&.G6J?@
MWPC?Z/K'B7^T;.T6PU9U9%AEW #YLIC .,/C)QTZ<UDK\+;V/P7;Z<EV1J5G
MJ8GMKC=S%$)"  >WRDR8_O&@#J[KQM:VLNFV\EI(MSJ<DJVT;R(H8)_%N)Q\
MW&T=\CI6[879OK"&Z,$EN94#&*48=#Z''<5RWC;PI'KNF6NF#2?M5M! XBDB
ME5)K:0!1'MW$ J1G<#Z#OBMSPQ8W^F>&M/L=3N?M-Y!"%EER3D_4]<=,]\4
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
MSGCUXK:^(WAO4/$NB6<6FB-[BSOH[KRY'VAPH8$ ]C\WZ57U30=9OOB)H'B
M6:"VL()$G"S D,ZL,+G&<;ASQWH LVOQ&TBX\)3>(I(;F"&"X^S20LH+K+D#
M;P<?Q YS4B^.8&_MZW.G3B_T.+S9K<NN)%V[@5;.,8Z]_8US.E^%?&6D> ]5
MTS3Q!;:E=:B;A'$P/[I@H(#=F&WK^1S5G1_!&L6VN^(Y9K:TMK76-/$*&.X,
MGEOLVD'*@MSDDG&>M '0> =>O_$?A>#4K^V:)YB["3*['&]N% .0%  YQ^-7
M_%,1E\-WH6::%Q&2LD$K1NI]00<U0^'^E:GH7A*TTG5((HI;3<H,<N_?EV;/
M3CJ*U/$,-U<:)<V]G;^?/*NU5WA1]23VH X7X?\ B2_TO^W_  YKUS/>7^D2
MM)"TLA:2="<  GDY)7'_ %T%0^!+O41\0O$MOJVJW=TE@F[:\[M&C9RQ5,X
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
MNJN?E [=: /6:*YGP3XD3Q/837D.H1W<(*A1Y7ERQ''S+(N<9ST(X(^AKIJ
M"BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "FI&D8(1%4$E
MCM&,D]33J* "BBB@ HHHH **** &R1I+&T<BAT<%65AD$'J#5;3-*L-&LQ9Z
M=:QVT"G(1!QG_./RJW10 4444 %%%% !1110 4444 %%%% !1110 4444 %%
M%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 444
M4 %%%% !5+3M&TW2/._L^SBMO/<O)Y8QN;D_U/'N:NT4 %%%% !1110 4444
M %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110
M4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1
M110 5G:_I/\ ;NB76EFX,"749CD<+N(4]<>]:-% ')6?@J\L/#">'K3Q#/#:
MHC1B1+=/-VL22-W;J>0,U;G\))+XSM/$RWK)):6_V9(!&-AC^;.3G.?F//TX
MKHJ* .7L/!%O:ZEKMU/=M<QZ\NV[A:,* ,,,*0<CACZTOAOP:WA^R_LZ36;J
M_P!.C#+#:S(H"*V<AB!ENIX/'/3ICIZ* .6\+^"F\*L]O::W>2:8)#)%9.J8
M0GU?&XCVX]\\Y32? XT.QOK/3M8NX8KJZ^TQC:A\EMRL><?-]P#GL3UKJJ*
M,/P]X7MO#]UJ5Y&RM<:G*LL_EQB.,8& %7)QU)/)R2:W*** "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 *Q/&.J3:-X4O[^VE,=S&@$! !S(Q"H,$$
M$%B*VZY+Q@3>ZMHFG2V=W-8I=?:KQX[225,(I*(=JD'+D<?[/- #K35=3M_%
MEAHXOAJL<MJ\E^^Q0;1P!M.4 &&.0%//&<UO?VQIQNQ:B[C,K2&( '@N!DIG
MINQ_#G/M7'6NFZNMYXFU#0K&33+2XL?+L;=D\HS7(4_O1'_!V'(&>":L1Z7)
M?6/AK1]/M;BWM-.FAN[N::)HR#&,A,, 69GY)'3!SU% '4WNL:=IY<7=W'#Y
M:>9)N/$:\_,W]T<'!/6F3:]I-N^R?4((F\@W&';&(QC+'/0<C\ZX.4:E?>$W
ML9](OS=ZIJNW57:V?*1F7^'CYE\M54$?*!U(KIK739=1\:W^I7ELZ6UI;Q6E
MJDB85R?G=O<995],K["@#9DUC3HX(9FO(_+N(_-C93G<F =_'\.",GH,UG>#
M;N\U'0?[1O+E[@7=Q++;EU4%8=Y$8^4 ?= /XUS%[)J\.G>+!!I5X=2FF-O
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
MH+>*Z#I# 3';AU4(K%1M!XQUP/IS6(3J5TVC32:+J$$UGK;23VL-H4A@0^:
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
M/91G)/8"@"[163HNN+J\^H6K0B&XTZ?R9E63>I)4,"K8&1@]P"#FJ+:QJ?\
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
M^X& ??-;]%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%%
M!1110 4444 %%%% !1110 4444 %8GB]M5A\-7=UHUR\%W:IYRA41O,5>63#
M*>HSC'?%;=(1D8/2@#A_^$M>/Q.LGV^>;1KW3C):@1QX$X42% 0N23&RD GK
MD<]KLESK.G^(?"^GW.J/.+N.<7@,<8$CI'N!!"C !/0>@K2A\):-!IVGV$=H
M!;Z;<"YMUS]V0$G/_CQJS>:+;WVKV.IRRS+/8;_)", HWC#9&.<CC^6* //[
MJ.?_ (5]XX>:^N+C;>W<>)=I^Z5 .0 <X '7'H*ZFSNM2LO',6F7&I27=M=Z
M:]SL>-%$4B.J_)@9VD-T))XZU8N?!>EW-MJ=LTEVD&J2&2XB2<A=Q(+8';)
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
MZ6;B\-M<77VJ0>8,F3?OSG&1\P!Q[4 4-*@NI?B!XG4:G<H$AM @PC!0RR$
M KP 22,?CFL:.^U'6?#?@>_N=2N%N+N_43-&$ <E)3DC;CC:,<8]J[0>'[5=
M7EU6.:YCNIX5BE9)<*^T$*Q7H6 8]L<]*JIX-TM-$L=)5[I8-.F$UJZS8DB8
M9Z,.V&8<^M &'=ZF^A^)/&&IJGG/9Z3;2JK?Q,!+C./?K5U[K7M)8ZO-=+=Z
M6EC++/')(A9G5-ZM%M0=0#D$].:V$\-V*ZA>WCF64W\"V]Q'(P9'C4$!<8]&
M/?G/.:KZ/X.TS15,<4MY<PA#'%!=W+2QPH>"J*> ,<>N..YH YO43>7EKX*U
M6ZU!YFO-2@E>$*HC5GAD8;<#( &1U.<\Y-==XG\P>%M4:&>2"1+25EDB.&4A
M2>#VZ5FP^ ]*ABLX%N=0-O8W(N+6 W3;86 ( 7OCYCU.??KGH;FWBN[:6VG7
M?%,A1U]5(P1^5 '&:5J%U!;>$="CO95&H6'GR3E4WJJ1)B-/EQU;J03@=><C
M6\.:E?2:WKFB7LQN?[,EB,-RR@,\<B;@K8 &5P1G R,5*OA#34L+&U26[#Z<
MVZTN3,3+#QMP"<C&WC:1@CJ*T;#3+?3O.:+<\US)YD\TAR\K8 R<<<
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
M$+:[#"ENERFL789$ #JGF?*"!R!TQ0!M7NLNFOP:):K$+F6V>Y+S$A=JL%P
M/O')]1@#O5(>+EDTG3YX[7-YJ%VUG# 7^7>K,KMNQR@",V<<C'K5+Q9I</B3
MQ#9:+.[V31VLEU;7T1Q*),A=J'T .6'?Y>E9,+WLO_"(:GJ$<*QZ9J%Q9320
M*%B8%6BCD4= I('M\W% '07'B\V8O+.:V0ZE;75O;"-7.R0SD"-\XR%Y.1V*
MD<\&KNG>(8[C3K^XNT$;Z?=26LPCRP=U(QM'4EMRX'7)QS6-9Z5#K7C;Q'<3
MQ^99!+6W5U)&98\N2I'="5Y'0_2I+L)INDZGJFG6_FV^F+/<Q*Q+?:KK!+R,
M>I .0/?..BT =3:M.]K&]S&L4S+ET4Y"GTSWQZU(\B1+ND=47U8X%8'AW5+R
MYU34-.NI_M2VL-M*EQM523(A)7Y0!QMR/9A]:IW#I-\2FLM5CC>U?3 ;%)E!
M1FWGS< \%L;<]\?C0!MZ_K":%H\M^Z>859(T3.-S.X1>?3+#/M3].?5-]RFI
M):E$<>1-;D@2+CNISM(/'4YKSF]MU7X;W"W2I):0ZX(]->7#8MOM2A<$_P .
M V/]G':O4$MH$M_LZ0QK!M*^6% 7![8Z8H P-6\5B'0H-6TE8;N"2]2V9V<@
M8,WE%EQUYSCGWKHE='SM8-M.#@YP?2O)[;^SD^%D$"-!'<?VM&EP(R%<?Z:<
M!L<@[0<>PXK2U:)M'UGQ9;:! MM(VB13"&V 4EPT@+ #^+;WZ]* /15D1RP1
MU8J<, <X/O3BP'4@5Q?AM/#E]K=GJVBZQ]HF:T,;6]LL:@1]1YJJH((. ,\Y
M/UJ_X[THWFB+J5M;I+?Z1*M[;@J"6V'+)]&7(QZXH Z7(SC(SZ4SSX?+>3S4
MV)G<VX87'7)[5PGB"=IO!][XEM(65=0E@:5U3$GV(,H/3G!7<WL'/I5C4+*W
M/C&Q_L>*%K6ZTN?[?'"H,;Q@+Y)('!.XL ?0'L* .ML-2M=2TZ+4+:4-;2KO
M1SP"OK4_FQ^5YOF+Y>,[]PQCZUY9IM_I]EX/\'L]Q#;Z<6"ZA-&B,J2^61'Y
MN01][^]T.#V%:G]E62V:IX;UZ&2235#<6ZW 5[.6;RVW1 ( ,8RW&<,..>@!
MZ"K*XW*0P/<&EK \&72W.@8&G+ISPW,\<L",&C$@D8N4(ZJ6)QZ=.U;] !11
M10 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%%
M !1110 4444 %9?B#3;O5=.$%G=1V\BRI)B6+S(Y0ISL<9!VGO@UJ5!>7D%A
M;F>X8JFX*  268D!5 '4DD "@#'TKP\T%_'?WEOID,\(8(+"V\O.1@[F)R1[
M<#OSQC72QLXO.\NT@3SSF7;&!YG^]Z_C61/XTTFTMM1ENQ<V\FF!6N8&A)D1
M6^ZV%R"I]0<>N*FM_$]A=:A-8117?VB.#[0B/ R^>@."8\XW<D#\1VH O_V7
MIY0)]@MMH)('DK@$_A["I&M+9KI;IK>(W"#:LI0;P/0'K7*P>++35_"]EJ5^
MNH:>EW=QK$;<,"29<(I9<C!P V< \BM*'Q UYXKOM %I<(EM;QL9P,<ONYSG
M@?+P?7- &Q'9VL,S316T22-G<ZH Q^II([*TBV^7:PIM8NNV,##'J1[FN:\&
M:PR^!],N+^XGN[JXDEC3<2\LS"1\#G_94]> !V K3@\5:7/93W/F21M;W'V6
M6!XR)5F) ";>Y.1C&0<]: +XTRP"%!8VP5B"5\I<$CIV]S5&XTJ_N=3C1KFV
MCT>+8ZVL<!$C.IR 6SC;D X [ =,YR]$U&XNO'VM6[O>)%%:6["VN#Q&Y+Y*
M@$K@@+R"?TK0UGQ$VE:YI.F+93S_ &]Y-SHN0JJC-@<]<@?AF@#<JNVGV3.[
MM9P%I/ODQC+?7CFL^]\4:=8BYDD$[V]DX2ZN(X]T<#8!PQZ\ @G .,\XK5RL
M\.4?*2+\KH>Q[@T 0C3; %"+*W!3[G[I?EYSQQQS4TD<<T;1RHKHPPRL,@CW
M%<-X4\96MCH%C#J\]]))+=SP&]FB=XPWGN$5I.@.,#VXZ5TFI>*-.TL2R7/G
M?9[>18KBY2/=' QQ@,>O\0R0#C/.* - V%DTGF-:0%R-NXQC.,8QG'IQ2?V?
M9?9WMOL<'D.<M%Y2[6^HQ@U.TB)&9'=511N+$X 'KFLB#Q3ILUY;VS>=#]LA
M::UDECVI.B@%BI[8!!YP<<T :\<:11K'&BHBC"JHP /85'+:6T\T<TUO%)+$
M<QNZ LGT/:LW3_$^GZC=VUO$)D-[ ;BT>2/:MQ&,99?^^@<'!P>E.MO$5K>>
M6UO;W4L<\#SV\BQ@K.BX^Z<]3N& <9H T/LEM]H^T_9XO._YZ;!NZ8Z]>E$5
MI;032316\4<LO,CH@#/]3WK+\*:\WB30H=3:UDM_.W,JL.-NXXP>_ &?>L3_
M (2(:)XO\1B\?4;NWBBM9(X88WF\D%9"Y '"CIF@#KTM+:*X>XCMXDFD&'D5
M &;ZGJ:1[&TD#A[6%P[;G#1@[FZ9/J:S8O%6EW%YIMM \DO]JQF6TE5/DD4#
M+<]B!U!YJ_:7\5Y/=0QI(#:2^4[,N 6P&X/?@C\\=<T .FL+*XA2&>T@EBCY
M1'C#*OT!Z4Z6SM9RIFMH9"GW=Z [?IFL9=?:Z\67?AX6EPBPVR2&=1CERPR#
MG@?+U]:Q_!?BN$>'M%MM2FO)KF\9XA=RQLR/+N8A#(>-V!^F* .QBM+:"1I(
M;>*-W^\R( 3]2*+FSM;V,1W5M%<(#D+*@8 ^N#69?^*--TXL]QYPMHYA!+=+
M'F**0D !C]2 3C )P2*L>(#(/#NHM#-)#(EK(R21MM92%)!!_"@"W-:6UPBI
M-;Q2JGW5= 0/IFI$1(T"(H15& JC %<SX7\3VMQ8:)IUPUT;RZL(W2::)ML[
M+&I?#G[Q&<FKS>*],0Q2,THM)I_LZ7FS]RTF=N-WID8W8VD]Z -'^SK'SFG^
MQV_FNP9G\I=S$="3CJ*'T^RD=W>S@9G^\QB4EOKQS6%I]U+%XZ\017%Y*;6&
MSMI5263Y(L^;N('0?=&?I5+4==:[\5>%OLCWT-M=S2GY@4BN8_)<@X^N" P!
M[XH ZY;6W2 VZ01+"008P@"G/7CI21VEM#;?9HK>*.#!'E*@"X/48Z5F3>*-
M-M[B!)?.6"XN/LL=UY?[HRY(V9^H(SC&>,U!#XTTB>>:)!>;;>66*>9K601P
MF-=S;R1\HQG&>N* -J*TMH+?[-#;Q1P8(\I$ 7!Z\#BFRV-G/;+;36L,D"XV
MQ/&"HQTP#Q4%CJ\5]<>0MO<0L8EF4RH '0G@@@G\NH[@4^^U.WL'@BD#R3W+
M%88(QEY"!DX[  =22 /QH EEL;2=$26UAD6,80/&"%'MZ4DUA9W$J2SVD$LB
M8VN\88KCI@GI6!K7BZ*/PCJVIZ8LC75BDD;1O'AK>4*3\ZGL.#W!XQ5W0+(H
MOV_[5J)^T0H'M[N4NH8=74-DKG/0''M0!>;38'U5-2=5,T<1B0A0" 3DY/4]
M/PY]:74].@U6R:UGW %E='7AHW4AE9?<$ _A5"3Q5IL=V(29C&;P6)N G[M9
MSC"$]<Y(&<8SQFLB.:[;Q#XRMC?77EPVEN\ \T_N2R2$[/3D#\J .F^P03JK
M7UM;3SA<-(8AS],YQ],U%?Z1!?6/]G;$BLI#^_B1<>8N<E..@/?VR.^16\'3
MS77@S1KBXE>::6QA9Y'8LS,4&22>IJ;^WK4W)A2*>1!<?9FF1 467^Z><C'K
MC&>,YXH T@ !@# %($4.7"C<0 6QR0.@_4_G7#Z)XIAT@:V-5N+ZXBAUJ2$3
M,C2K;QG8%W-T5<G]:Z#4?%6FZ7+=+.9F2Q\LW<L:96W#_=+=_?@' ZXH U7M
MK>2 0/!&T0  C* J .G%(+2V"QJ+>("(YC&P?(?;TK*U#Q;ING:G)ILD=[-=
MQPK,8H+5Y"4+;=PP.1GJ1P,>O%.O?%.FV#YG\X6PG%N]T(\Q1R$XVD_4XSC
M/!(- %_^S-/VE?L-MM)R1Y*X)_+W-.ET^RF\KS;."3R/]5NC!\O_ '>./PJH
M->M6NO)CBGD3[1]F,R("BRCJIYR,=,XQGC.:N7M[;:=9RWEW*(H(5W.Y[#^O
MTH =/:V]T%%Q!',$8,HD0-M8=",]Z0VEL87A-O$8Y&+.FP;6).22.Y)YJA#X
M@M9;YK!X;B"[\DSQP31X:5!W7G!]QG(SR!6'X9GN/$<TNISW&I6TMMJ$ZJBR
M%87C5R@C9,E3P 2<9SWH [ # P*BBM+:":2:&WBCDE.9'1 &<^Y[UD7_ (A:
MV\4V>AK9SN+F"25IE7(&TJ..>V[)/;C\,/PWXIATZUNX=4GO9P-9N+5;ET:1
M(AYNR-6?H.P]LCIF@#LH[*TBV^7;0IM8NNV,##'J?K[TAL+,R22&T@+R$%V,
M8RQ'0D]\=JH:IXDL=)6X>=9Y(K3!NI(8]ZVX(R"W?H02!D@$$\$5?FO;>#3Y
M+]I UO'$9BZ\@H!G(_"@ ^P6?VH77V2#[0/^6OEC?^?6G-:6S72W36\1N%&U
M92@W@>@/6N;\+?:_$VB0Z[J=U<QM>YD@M[>9HDMX\G:/E(WG&"2V>3T K1M[
MJ71+2*UU.[EO[N>XD6WPH\R8$E@,# &U>">!QVH V.M00V-M:)(+*V@MVDY)
MCB"@GU.,9K)G\9:/:Z5=:C.\Z)92B&YB,+&2%SC 8#H#D8;H<]:&\8:<M_/8
M>1?FZBC\U(?LC[ITSC<@QR,]^* +.C:=J%NTEWK%W#=7\JK&6@B,<:(N2  2
M3DDDD]^/05JU@-XUT5=.T^_,L_DZC(8H,6[D[QG*$ <,"K#'4D<9HMO&FC7%
ME?W+O/;'365;J&X@9)8RWW?DQD[NWK0!NJBJ6*J 7.6('4XQD_@!^51"RM!=
MF[%K#]H(P9O+&_'INZUF-XIT^*'4I+A+F!]*0/=1-$6=$()#?+D$$ \@]CG%
M-M/%NFWMY%:11W8DN+8W%N7@9%G4 $A">&(R/S]* -GR8O.\[RT\W;MW[1NQ
MUQGTID-I;6SR206\43RG=(R(%+GU..M9EKXHT^\T,:Q EPULTWD@>7AR^_R\
M;3S][C'6M:6:."!YIG$<<:EG9C@* ,DDT $L4<T312QK)&PPRL,@CW%1I96D
M=K]E2UA6W_YY",!/RZ5F?\)7IRW:VTZ74$DD#7$ D@;]_&OWB@&22 0=I ;G
MI4-CXTTG4)K!(1=!-10M;3/;LL<A W;0W3=@'CV(Z\4 ;D-O!;)L@ACB7.=J
M*%&?PILEK;3,S2V\3LR[&+("2N<X/MFN83Q9;ZCH>NW%]!?V%K9RS0-+"A\Q
M%4 $@KDA@<G/;CTJU_PDHB\0Z;HL-I<S1W-D;CSV&20"@'?G[V2?I[T ;0TV
MP&W%E;_)]W]TOR_3CBGBTMA=&Z%O%]H(VF78-Y'IGKBN9\,ZF;9/$4FH7D\T
M=OK3P1&5B[ %(@J*/]YL #N:U(O%&F,;]+EY+.735#W,=PNUD0C(88R&!]B>
M>.M &I-!#<1^7/$DJ==KJ&'Y&HUT^R21)%LX%=/NL(P"OT..*YD:K/<?$>PM
MQ]NMX9-.FD:WF^5&PR;6 !QGENO([@5J>)=?;08K$I:2W#7E[%;#8,A0S $G
MGKC./>@#32RM([E[J.UA2=QAY5C =OJ>II8[.UAE:6*VB21_O,J %OJ:H77B
M"UMGDC$%S/+!"LT\<,>YH4.<;AGKP?E&3QTJ]97MMJ-E#>V<RS6\Z!XY%Z,#
M0 V#3[*U*M;V<$)4L08XE7&<9Z#O@9^E.6RM%GDG6VA$LHQ)((QN<>A/>L^W
M\26-R-3VI.ITHD72NFTJ=N[C)YXYST-/EU^WC98DM[J:X, N&MXX\R1QGH6&
M>"<' ZG!P#@T 7$L;.*-XX[2!$?[ZK& &^H[TZWM;:SC,=K;Q0(3DK&@49^@
MKG[KQI;?:]"73H9;ZWU=I"LT2Y 5(V8@ X.[(&1V .>:NZCXHT[2_,DN?.^S
M02K#/=+'F*%SC 8_B,D @9YQ0!IW-I;7D7E75O%/'G.R5 PSZX-$MG:SQK'-
M;12(GW5= 0OT':GR2I#$\LCA(T4LS,<  =2:QXO%FF27-A 5NE.I)OLF^SLP
MG7@Y&T':,$'YL<'- &RB)&@2-515& JC %1)96D9REK"OS^9Q&!\_P#>^OO6
M:_BG38KFVBD\Y8KN<V\%T8_W4DO(V ^I((!Q@XX)JJ_CO142:4B\\FWNOLL\
MOV5PL+Y RY(^49('- '0)#%&[ND:*TAR[*H!8^_K3'M+:2=9WMXFE7[LC("P
M_&J6I:]:Z9YP>*><V\7G3B"/>8H^?F/Y'@9/!XJC/XWT:*9(8OM=V\EJMW&+
M:U>3S(B0 RX'/7MTQSSQ0!MK:6RW372V\0N&&UI0@WD>A/6D^Q6FYV^S0[G<
M.Q\L99AT)]3[UF'Q7I@NTA_?>6]V;(7'E_N_/'_+/USGC.,9XS62DUV?$'C"
MW-]<^7#:6\D \T_N24D)V>G(% '4+86:7)NDM(%G.<RB,!SGWZU*D,4;NZ1H
MKR'+LJ@%C[^M<OX=\1QP>'_#%O?M<RW>J6D7ES,"PD?RPS;F)ZXR>>O;-=#;
MZA%<WMU:QI('M&59&*_+DJ& ![\$'\10!+<6MO=H([F"*= <A9$# 'UYIS0Q
M/"86C1HBNTH5!4CTQZ5DSZA8KXKALVN+T7BV<D@@4/Y+)N7+8QAF!P!C)&3Z
MU5M_'.C70M'C%WY-W<&V29K9U19-Q4*Q(X)(X'TSB@#H(H8H(EBAC2.-1A41
M0 ![ 41Q110K#%&B1(H5450% ] /2JVK:@NDZ3=:@T,DZVT32&./&Y@!GC-<
MC>>(+F>3P?JCO=VJ7DA^T6\>[;+FW9N%&2PW8Q0!V=K96MC&8K.VAMXR<E8H
MP@)]<"EN;.UO8Q'=6T4Z Y"RH& /K@UFV?B?3;W3Y[Q3-$+:?[-+%+$5D67(
M 3;U).Y<8ZY%3:=KEIJ5Y=6*++!=V>WSK>9=K*&&588R"#SR": +DUI;7"*D
MUO%*J?=#H"!],U(B)&@1%"JHP%48 JG?:K#92"$0S7,Y0R>3;IN?8.">H'?Z
MGMFN=U'6H]2U'PEJ&E7\QLKZ[=65&*K(HB<X9?4,O0]"* .H>PLI 0]I P9B
MY#1@Y8]3]?>E2RM(IO.CM84DQC>L8#?G6;?>*--TXL]QYPMDG%O+=+'F**0D
M !C]2 3C /!(-&H>*=-TWSWG,I@M95BN;A$W1P.V,!CU_B7. <9&<4 :<%I;
M6I<V]O%"9#N?RT"[CZG'4U+6#;^)_/\ $>JZ6]C<K%IT<9,JQ%MQ8.2<#)QA
M1CC).?:C2-<TR/PYID]M<W=W'=_):>>2\]P>3SGO@$DG  '.* -U41(Q&J*$
M P% X ],5%;6=K9(R6MM#;JQR1$@4$^O%9%QXRTBTTN^O[AKB,:<X2ZA,+&6
M%CR,J,\$$$-]T^M6;'Q%8W^K3:7&MQ'<QQ"91-"R"6/.-R$]1G _$4 7S9VI
MMWMS;1&%\[H]@VMGKD=#37L+*2V6V>T@:!/NQ-&"J_08Q3+_ %*WTY(C.6+S
MR"*&-!EI'.3M ^@)]  2< 50;Q-;/8:E+;Q3&ZTX$3VKIB2-MN5R,\@CG()!
M&<4 :\<<<,:QQ(J(HPJJ, #V%/KE_!R3ZAING:[/=ZCY]Q8H9X9I"8978*V]
M5.0O4@;<#!Z5U% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%
M%% !1110 4444 %%%% !1110 4444 %<_P",],OM2T6,Z=!'<W-G=1726TI
M6?8>4)/ R">O?%=!10!PNK6-[J_A#6%LO"@TVYN[7R$A(B6:5CZE3@*/<Y/H
M.^B;:_E\<:7J/]G3K:QZ;)!+(Q3]V[,A (W9_A/3-=$M[:->-9+<PFY5-[0A
MQO"^I7KCGK2VMU;WMLES:3QW$$@RDD3AE;Z$<&@#@8=(UN/X?:?HS://]JLK
MV$LHDC(=4GWE@=W3 XS@Y[5O0VM_9^/+^_\ L$LMI>V,*K,C)A&C+Y4@G.3N
M&, _A7344 >;VN@ZW9^%- F_L7[3=:3<S-<:=,R?O8Y"_*G)7< P(_&K^J:7
MJ5U86.JZ;X>CLI;+48[LZ>/+26=%5E8L5.W=AN!GMUR<#N:* .6TA-0F\;W^
MJ3:3<VMI<V,$:/,T>0RLY((#$_Q"IO$=I?MX@\/ZE9V3W<=E-,)DC=590\14
M-\Q QGKW]C71T4 <1#I>JZ?IOB71#I\ET-3GN)K2X5E\MA,/NN2<KM).>.1T
MSTKJ]'L/[*T6QT[S#)]DMHX=Y_BVJ%S^E7** //XM!U.Z\$2>$I]/EAEDNW,
MERQ4Q+$;@R[U(.2=IP!C.>N!S4L6F:AI^L:I8S^%H-6M[ZZ>YMKUO**('Y*2
MAOF 4^@.1T%=W10!0UC3FU+P_?:8CK$UU:20*X& I9"N<?C6'H=[XEDTB.QN
M-!^Q7=G;F-III4:*5U0A=FTYP3@G(&!D<UTOVJW%V+/SX_M)C\P0[QOV9QNQ
MUQGC-34 <#I5AKCZYX;U*[T>[22WMYX;Z2:>,[78)RJAB F5; 4#Z=ZL>&=&
MO].UBUFL;:[TW3YH7:_TZX</#!*<$>3R<98GIQCT.!7;44 <WX"L[_2_"EKI
MFH63VTUF&C)9U82?,3N7:3Q@CK@^U1I%?Z7XPUF^_LRXNH-0M[<0-"4P6C#@
MJV2-OWAR>/>NHHH X6Z\,SZ+\.+*&.6/^T]%(N[=U^Z9MQ8QCU#;F0#OD5UN
MD6;V&F10S,&G.9)V'1I&)9R/;<3CVQ4=UH6GWNJV^IW,+27%LN(\RML'.02F
M=I(/()''X"M&@#FOLM_9^/KO45L)9[2[T^*,31NF$9&<D$$@Y(88P#^%8%IH
M^LP^#_"]D^DW N=/U-)[F,/&=B*SDG.[!X8=*[V[O+6PMVN;RYBMH4^])*X1
M1]2:F!! (.0: .$M-+U"QO\ 4=*NO"MOJ<5U>2W%MJ$@B:,+(Y?$H;YOE)/0
M'/;UKK==CFET#4(K>%IYI+:1(XU(!9BI ') ZFK]% '#PZ7J@?P4&TZX4:;;
MM'>,&3]R3!Y?][GYO3/%58O#VK3> %\%7%DZS1R+#]L!7RC$LH?S <YSM'W<
M9W>W->A44 <5JFA:EJFK^*84MY((=3TR*VM[EF7:7429! .0/G';UJ)!KE_<
M^%GF\/74#Z9,PN\R1;1^Y9,J=_(R<UW5% '!Z!I>H:=C0[WPK;W)M[AFAU5Q
M$T;1ERP=@?FW@'& .HZ@<U?T6TU"VL?%"W&D.S75Y<7%O#*R;;E60 +PQQDK
M@YQUKK:CN+B&UMY+BXE2&&)2SR2,%50.I)/04 <MX5T>\TC598[7[;%H;6P,
M=I?.':WFW?=C.2=@7KR1G&"><6=>L+Z/Q/HVO6D#W4-HLT%S A&\)(!AU!(S
M@J,CKCI71(ZR(KHP96&0P.013J .$U30-2N-*\87D%E(UQKJ)%;VNY0P"Q!
MS9. 2<GKTQWXKLM/+G3X/,B>%Q&H9'QE3CIP2*DN+F"T@>>YGC@A09:21@JJ
M/<GI3XY$EC62-PZ. RLIR"#T(H \^U2P\17[R&XT>YGFM=;BN(F2:-8FMUE!
M&Q=P^?:,DL >O/05J1V6I+K_ (JNFTV;R[ZT@2W8,A$C(CA@.>.6'7%=?10!
MC>$;6YL?".E65Y T%Q;6D<4D;$$AE4 \@D=JPI-&OE\3+J6DVUWIUS)?C[:F
M\&UNX <&0KDX?:!C&#GMCFNOBO;2>YEM8KF&2>  RQ*X+1YSC<.HS@]?2IZ
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
M&B>;%=V8=-[)(-I93G!*\'&>1FN]NKVTL51KNYAMU=@BF5PNYCP ,]2?2IZ
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
M %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110
M445SWC/5;C2M*M?(D,/VN_M[66=>L,;N S#T.,C/;- '0U@GQ9;\W*V=P^F*
MTR27Z &.,Q;MY89R%RC -CJ/<$TO](L?',>CQW%U-I]_I\DKQR7#NT#HRKN5
MR=R@AL8SU&1BN=LM/A_X4OJTHDN=WE7YQ]IDQ\LLP'&[&/4=^^: .RM?$%U=
M7]O;C0;]8;A%D6Z.PQJA4G+'=P> -ON*VZXJ<3:=<>#8[6\NTAN)MDT1G9ED
M'D,W.221D# SCVIVG2S>(;34;]]8N+"YL=3EC_=R'9!'$^-C1YVMN49)()^;
MV H [.BN'DDU3Q'+KB6FI?8+K3[TQ12?:G00*H4@M$!M<-\Q^;.<^U=I"Q>"
M-F96+*"2HP#QVH DHHHH **** "BBB@ HHHH 3:I8-@9'0XYI:** "BBB@!
MJKG: ,G)P.M+110 4444 %%%% !1110 4444 %%%% !2$ C!&0>QI:* $  &
M , =A2T44 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%
M%% !1110 4444 %( !T&*6B@ HHHH **** "BBB@ HHHH **** "BBB@!" 1
M@@$>AI:** "BBB@ I  !@# %+10 4444 %%%% !1110 4444 %%%% !1110
M4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1
M110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !5>^L;74[*6RO8
M$GMYEVO&XR&%6** *-IH]E9%VA27S)$$;2R3O))M'1=[$L!R>AZG-5HO"^CP
MZ/+I$=LXL9L^9!Y\A!R26_BS@DG([YK7HH S'\/:9)]AWPR-_9YS;$SR9C.,
M?WN>..>U1/X2T*36CK+:<GVUBK-(&8*[#HS)G:2.Q(S6Q10!C7OA'0-1U8:K
M=:;')>8"M)N8!P.@=0</_P "!J_'IUI%J4VHI%BZGC6.23<?F5<[1C.!U-6J
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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
MAEO+,WEJLFP&5!C*GGY6^9>#Z]:7P=KEUXA\/0ZE=6I@:9G(Y4J1O8 #!SP
M!D@9K%TC0=<AUS1=2N=/MHGM[66"]D-T9))&;9^\)V_-DJ<#/&>U:_@K3-0T
M3P]%I>H11*;5G5'CDW>8"[-NQ@8X(X^M &U=W4=E9SW<V[RX(VD?8I8X R<
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
M-AX9\66=A=-!%8ZHJPAYB"L9$3-&K$\;MS <]6[5VX\/Z,JVRC2;,+:'-N!
MN(3_ +/'R_A6=KOAF.?3IHM(L-,CEN)TDNHYX0$NU4Y*N5!//'.#].: (-&T
MUO\ A*KW5H5DM=--M&L4!FVKYOS;W\M6VCC:.1R1GW/312QSQ++%(LD;C*NA
MR&'J#7,:'X3@M+\7SZ'IFDD1M&T5C(9!,&&"')1!CVP><<CH>EM;6WLK:.UM
M84@@B4+''&NU5 [ 4 2T444 %%%% !1110 4444 %%%% !1110 4444 %%%%
M !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M%%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4
M444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !11
M10 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%%
M !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M%%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4
M444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !11
M10 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%%
M !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M%%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4
M444 %%%% !1110 4444 %%%% !2$A022 !U)I:YWQQI^H:AX=*Z=$MQ+!/'<
M/:.<+=(C;FB/UQ^/2@#?CFBF4-%*CALD%6!SBGUPZZYH=OH<_CG2+!&D6$6T
MML!Y3AMX!1@ ?GW%1TYXYZ5LCQ1]GUE[#4[1;)!8M?"8S;@L:L P<8&TC(/!
M(H WZ*Y^#Q2);ZUB>S\J"Y@>X+O+\\$2C(>5<80-VYS[=<6+/7+B^6SN(-,E
M-E>N1'*6PRIM+"1EQ\JG QSGYAQVH V*2N8T[7K5;6^UAK.1);J_-G%&EP9?
MM3QGRUV X"@E6[ 84DU<@\1L=3U*RO+18$TRV2>XG2;>@W!B%&5'\*DG\* -
M>"Y@N59H)HY55MK&-@P!]#CO3]Z[MNX;O3/-8/@>U>W\+6UQ+&(Y[]GO9E Q
MAI6+X_ $#\*Q=7./BAHE^H"Q)))8.<<EV@:3KW_@'X&@#N68*,L0!ZF@$$9!
MR#7!^(7;Q/XMT'2@=VFBX>Z=.HG6$?>8=T+LJCL<,>016U>>*XK:*5K&S%U#
M!<+: +)L,TN0&2)<'<5YST'!YX) !T=%<[?>+4@2>2RM/M<<%R+7_6[6FER
MR1+@[RN3GH.#SP2&?V[J+>)-6B$5LNGZ1; R,9B"\C+OY^7C"@<?[>>>P!TM
M%<E:^(8],TK0Y8],D7^W)C)Y+7+/)$7!D)Y!SQVXY(%3+XT1--O+JYTZ2.6W
MU$:=# D@<SRG:% / '+8/I@\F@#IZ*Y^+Q+<?V_<Z1-I?SVMLMS++!.)%52&
MP,$*2Q*D8QZ&I_#^O2Z];P7<=HBVEQ;K-',D^\9)(*'Y1AACGTH V:*S+[64
MMM3M]*MXOM%]<(THCW;5CC7@N[8.!D@#@DD_4CG]<\5W\WAF\_LN&*'41?\
M]E'=,2(YF95#(=OS<.&YQ^F* .OCN()9'CCFC=X_OJK E?J.W0T&>$2-&94#
MJ-S+N&0/7'I5?3].M[&WA$=M%%*D"0EE^8[5_AW8!(R2>?4GO7#:'8V3W%SX
M.\1V<8U03M=PWC(";Z,R;]ZMUW ?*1Z#TS0!Z +F!K@VZSQF91N,8<;@/7'6
MI:X"37UL/$'B'7HK$WGD36^FJ%<)A0P#<XY)DE( _P!CM737WB%+:6^2W@\]
M=-B\V\<R;%C&W=M'!R^WG'  (R1D4 ;-%<W_ ,)9*O\ 80?3")-8A:41+-EX
ML(&QC&#]Y1U&">>!FIAXD=1%!<62VU]Y!N+B&:X4):Q@D!GD (YQQ@'OZ$T
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
M)L&O(9DGWG8A 8.-HPWS \$CWIECXMN+O4--C_LMS::BI*RQ[V:W.W<OF94
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
M^SV5P+BV@-V^R%AG 7G./F/?^N=G5=+M-:TR?3;Z,R6]PNUU#$'UX(Z$'!H
MY--0U%]5UG26N[Y(!I"74+S;%F1B74D$#Y0=H.#R#Z5L^!8GC\#Z,7GDF,EC
M"_[S'RYC7@8 X^N3[U+;>%--MK_[<7NY[@VWV9WGN7?S$R?O9//4_G5O1M'M
M="TZ.PLVF,,0P@EE:0J!P%!/0 < 4 <IXOUS4=.@UJ\L=1DD?3O):.*!%\N
M?+N64M]XMD\#D#;TSDVKQ]6O/%VKZ9%K=S:VT6GQ7$0BCCW1NS.."5/'RCKD
M^XK0O_!6CZC+J#SBY"ZD!]IB2X=8W8  /M!QNP!^0JQ'X:LX=0FOH[B[$\]N
MMN[&;=E!G YSSR3GKR: .:37]6_X1[PQXHN+YULY!&NJ1(B!2'&T2YQD .1D
M ]#[5U.BRSW9O+Y[AY+>>=A:QL!A(U^7(P,G<P9@23P163>Z6;'18_".G:7<
MW-E<V[0BYD=6CMD/!W9.XX!) P><#Z=+;6\5I:Q6T"!(84$<:CHJ@8 _*@#E
MIX9I/BO !?7*1C1WD$:E=H_?(",$=#@9[\#FLF]UK7(?"6N7::M+]IL=;^S1
MRF*/F(RQIM(VXZ,>1@UV=UH=E=ZQ;:L_FI=6R&-6CE90R$AMK =1D XJC)X-
MTR73[RQ>6Z,%[=?:YU\WEI=P;.<<<JIP..* ,TQZNWC*ZT/_ (2"\%M-IZW8
MD$<7F1/YA0A#LP%/'4$\=:IZ3XEU74M)\-VKS W6I"Y\Z8,(VD\EMN =I +=
M3@=CC%=5_8<']LG5_/N/MAMOLQ?<,;,YZ8QG/.?Z<5GOX%T631(-)(N5BM9C
M-;2K.5E@<DDE7'(Y)_/Z4 6_#D>LP6EQ!K5Q#<2QW#>0Z/N?RC@J'PJC<.>0
M.>*P'T^]U'QYXBALM6GTUA9V9\R"-&8G][C.X'CU P3ZCOUFFZ;!I5K]G@:5
M\G<\DTC222-ZLS<D\ ?0 =!56Y\/6MQJ<NHQSW5M/<1+#.8)=HE1<X!'8C)P
M1@\]: .3M/$6LMH7AWQ+>WC):&8VVJ1(BA#\[1K-G&0-X4G!QAJZW1)9[M;N
M^DN'D@N)V^RQL!A(U^4$8'(8@L,YX850UJT9M/7PM8Z([65U;&#SUV"&V3[I
MR"<Y Y&!R<>Y&_!!%:V\=O @2*) B*.BJ!@#\J .5EAF?XL1?Z;<+&-':01!
MAM'[Y01@CH<#/?CK7/Z9/J.F>&X=4M=2EC1=?>%K4(GER(]T4;=D%L_-P01C
M X[GO+K0K.[UB#5F,T=W!&8E>.4J&0D-AAT(! .#5$>#-,&DC2Q+=?91<_:M
MOF\^9NWYW8S][G% &9<7GB'79=871;I+:?3[S[/ &E 0%54GS%V$L&R>_3&,
M')/4327+:1)+#L-R;<LGEG<I?;Q@]QFLN[\&:3>:N^J,UW%/,JK<B"Y>)+D
M8'F*I ;CBMX *    . !0!R?PN,1^'FEM&=S,KF4GJ9-[;L^^:9XR@7^T/#J
M6CK!))K0+NH!*L89,G'3.,=?K@UK)X7L[:]GNM/N;NP-RYDGBMY (Y'/5MK
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
MJEO86.JZE=IKVGZ@9'LD5%E$X<Y;[FXH0<DYQCKTKJ/'\TMOX8-PL;R6T5U
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
MC7NM7"02W).7"99G()[[5P/3/M0!Z R(X(=%8$$<C/'I21QQPH$B140=%48
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
MYNX8_P"V/LMS"-RL2J2;D9!]X[E''/M72Z/KEKK0N5@CGAEM)?*GAN(]CHV
M1D>A!!!H OB.,$$(H(Z'%"Q1K(TBQJ';[S <GZFLF]\465GJ\FD^1>3WB6_V
MCRH;=FW)G'!Z'G\/?-5K?QQH]TFGRQ+=FWU"00QW!MV$:2DX",3T;(QW&: .
M@5$4Y5%!/H*18T5V=44,_P!X@<GZUDZEXIT_2UEFN%G-K;RK%<72(#' QQPW
M.?XAD@$#/.*74_$UCI27$LL=Q+!9[?M<T*;EM\@'YN<G@@G:"0"">M &K)%'
M*I61%=3V89%'E1G&47Y1@<=*P?\ A*"WBS^QX[*:2 6(NOM" ,'#-@$ '.W@
M]LD]!ZP6'BG1;'P[87B3:A-:WUVUO"\Z/)(7,K+AB>0,@X!YP  .U '2F&(@
M@QIANHVCFE,:-G**<^HK(M?%6F7$6I22F:S_ ++&ZZ6ZB*,BE=P;'<$ X^E+
M!XFLI=4@TUX+N&YN8?/A5X20\?\ >RN0N"1G=@C(H UFC1HS&R*4(P5(X/X4
MABC( ,:D+P!CI3Z* &A$5BP103W I$ABC!$<:(&.2%4#)I]% #/*CVE=B[6X
M(QP:$BCB&(T5!@#Y1C@=*?10 Q88D4JL:*I.2 HP3ZT-%$R>6T:%#_"5&*?1
M0 U55%"HH50,  8 IU%% !1110 4444 %%%% !1110 4444 %%%% !1110 4
M444 %%%% !1110 4444 %%%% !1110 4444 %5-4TZ#5]*NM.N1F&ZB:)_8$
M8S]:MT4 >?IX7\0S0:/J-Q*JZL ;&^97X%HR[20>[942#_:8UMWVGWO_  G.
MD7MOI[M8VEG/"\J/& I<IM&TL#_!V'I72T4 >=VWA_78(+:_&G2">PURXO1:
MM+'F>"4L#M(8C<%;."1WKI--TRXE\77OB":![:.6TBM(HG(W/M9F9R 3C[P
M[\&N@HH YN[L[]OB!9:C'82264.GRPO,KQ@;V="!@L#T4\X[US]CH&N6=OI.
MH?V;(+C2]4NYWM#+&3+#.7R5(8C< PX)'>O1** .+U'0]0OO^$HU.*RD674M
M-%E:VQ9 [D(XW-S@<N ,G. ?I3(K#6M)UC1=932YKJ-=)&GW=K')'YL# A@X
MRVUAD8.#Z&NWHH YOP99W]E!JPO[%[0W&J7%S$&=&W([9'W2?UK"\1:7XCU6
M'5[>329KF07T,ME(EQ&L1@5XVP%+#]Y\K9+#OUQ@5Z#10!S=C::E;>.+^]?3
MV-KJ%I;CSA*F(FCW[E89R3\PQ@$>].\4V-]>:AH$EG927"6>HB>=E=%V($=?
MXF&>6'2NBHH X.#2-1L-6U.QE\+VNJ07MW)<VU_(8BL8D.XK(&^;Y23TSD5%
MXETOQ%JL&N6;:5)<DRQ/I[I/&D/E*4)&TMGS,AN6'T('7T&B@#A]7T;4KO69
M=4TRPN],U820A+B.9##=183<)EW<[<N.F>!@FM72;+4++QIKT\EDQM-0:"6*
MY#KM&R((5(SNSD>F,=^QZ.B@#G/$]IJ%UJV@2V=A+<Q6=]Y\[H\:[%\MUZ,P
M)Y8=*K6EGJ>B:SKVW3I+ZVU207-N\;I\KE K1ON(P/E&#R,5UE% '#:3X:U+
M1-3\*P+:R7-OIEA-!<W*.@57DV'@%@Q *GH/2M;2K&_LO&NNW$EDQL]1,$D5
MR'7:-D00J1G=G(],8[]CT=5[ZR@U*QFLKI2\$Z%'56*D@^X((_"@#F?"VC36
M&MZC;^8KZ;IT[KIZ#_EF90LCJ?\ =S@>S$5/XWMG*:-J0_U>FZI#//\ [,1R
MC-^&X$^P-;VGZ?:Z791V=E"(H(_NKDGKR22>22>YYJ=E5T*.H96&"",@B@#'
MU+PS'J.I&_&J:G:2M&L1%K<!%*@DCC!]37+Z/X,U/3_!^@^8)GU+2KM+IK62
M96 '*O&A!VC*G(YQGN*[Z"&.VA6&)=L:#"C).!Z<U)0!S^EZ7/)XKU#Q#=0M
M;B6VCM+>)R-P1269FP2!EFX&>@YZU!X%M7CT[4K]AA-4U2XO(0>\;-A#^(4-
M^-='/!'<PM#,NZ-QAESPP]#[>W>G@!0   !P .U '!V1NISXUT^VT^2Y>ZO7
MBC;*A-S01KAB3P!P3QTZ9/%-7P]?^'=3M_+T&/Q#8R:?;VC',8DADB4KG$A
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
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 445GZM>SV\(M["-9;^<'R48X  ZN?89'U)
M[T $&M6=SKESH\+[[BTB26?'1-Q.T'W(!/TQZTWQ!JXT'1+G4V@,XMU!\L-M
M+9(  ]R2!7'Z->QZ#J7C/5;BW95T^&W#)Y@=G98FD.6[EB^2?4U+?I+?:CX<
MTN_O));V[G%]?*LA\E(XP'$83.,>88P.YQR>>0#NT+%%+KM8@97.<'TS3JXQ
M+F_?4_$V@IJ%R9F>)K&3=EX?,CY(/]U64G].IYAU?Q#<2:!K.L)=R0K;RO9:
M9'&V#+.IV!SC[V9,C;TVKG'- '<T5QL\VHIXHTW28M3G$=CI33:A<%@5).$5
MCG@M\LA&?8X.,56T36-3FTKP]IK7<OVG6#/<M<RX:2*V4[U S_$5>,9/3)/I
M0!W=%<IK%[>Z+<6^G65W+/-JUX(X <.UK&L>Z3!<G<Q"DC=QEAQ@<Z>B6M_#
M<WLUW-((963R+62;S7B ')9LGECV!(&!CJ: %U?Q';:)J&G6MW#+LU"801S*
M5VHYZ!AG."<#.",D59N-2:#5;73UM)96N$>3S%*A8U4J"3DY_B7H#UK'U_1Q
MXG&JV6[:8;40P2 X\N=B),_AMA-8]MXMN9?#%WXH%KF\CBAL$@D! %R6 ?\
MX#OD4'_<H [ZH7N8D68@F1H%W.D8W,.,XP.<GTKF9[B[TKQ1HEA_:$UT\T$\
MNI-(WR^6J<2;>B?.0!C'&1S6!;(\/@07=M=7<&H>(]11HY!=2;HA(^5.2W\,
M !^@&>@H ]&M;A;NTAN522-9D5PDJ%'7(S@@\@^U2UST%[-K/B34-/2=X;+2
MEC1Q&Y#32NN_EAR%52O0C))SP*SX=0U.?5I-#BDGOUTNTB-S-$ZPFYED!*Y;
M.50 9.W))/?!! .QK NO%0M]8O=-CTF]N9+&W6XE:$QXV-G&,N.?E/'M6CHM
MO=VNCVL%]=B[N4C_ 'DPZ,?8]QVR>3C->>/<7DUM?>(!>/#IVN:P+.XDB4!U
MM5S CJQSM^8<\=&.,'F@#T;2]2M=8TRWU&R<O;W,8DC8C!P?4>M6ZY%KAK36
MH?"NCVDJ66FV*2RI X5FW$JB;F(('RDDCD\>^6VMUJ2:A9^';K4/FBMI+^_N
M5<Y$9D8)$KGG Y!<\X3L3P =A17G)U/5+WPL]W::I=QMJNLBVTUL_,L(<(.H
MSC:DCGN>YZYU9O$1?4_$5\T[C2]'L0@17VB67!D9@1STV ?[WO0!U-G>+>+*
MR131^5*T1$T90L5.,C/53V/>K%<,KZO!!X2T=+^X?49@T][*TA;Y43+[_4"1
MU&/;'%66N]0M]?7PY%<WU^L,#7MS-N197#R$1QAOE"J,')'/  Q0!V%%<1-_
M;<.H^']&74W:[EEN+FZ:.0NL<"DX0D\L%9T4$\G;SU-9FGZGK%WIVES)JUUM
MU#6V^R[F&Y[979F+G'*[(S@<?>[C& #TJBN+;4-6\2'65L#+;QV]Q)96THE$
M:1.G#S.0=S$-G"XVX SUR*>J:IJ*77BBX74;I++2[..$,C ;[C9N(3C@DM&#
MZ=NN0 =[)+'"H:5U12P4%CC))P!^)(%/KB+FU>]U_P -:;J-W*\FG6)O+V03
ML@>0 1H3M(&2Y<Y_V:M:?<WDOC*YTZ^NKB-T<WMHT;DPW-J5V[,= 5<J3W/'
M8T =/=W<%A9S7EU*L4$"&21VZ*H&2:@L+VYNR6FL'MHFC22-W<$G=G*E>JL
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
M6S8NM19+& >KRL$_0$G\* &VOC>VGTW3]3N-,OK2QU%TCAN)?+(!<X3<%8D
MGOCOSBNFKGAX46:+3K:^O/.LM,,;6]K%%Y:%D&$+\DMCT&!GJ#63H]Q?WFEW
M^O3:I>1Z?;WTUS BD,9H(R1M.0?D.TGC!Y/M0!V]%<+/J>K)X>T75GNI/[6U
M6\MS%;1L?*6-R&:/9T($>[+'G/.1P*2YN[J8^+=3DU6[@TZS/D6R12$$2HF6
M*GW=@H'<C'M0!W=%<?HU_JVK7Z:9J,SVZZ9I]N^HLA\MIKB1,D;A]U5 ).,9
M)]!@Y\6N:O-X'BU:-I;J*VO'FE1'VSSV =PK C!S@!L\;@AYYH ] J"^N196
M,]T5#""-I""VT8 R>>U<Y#?O->V.C6NI2R026SZC<7CMAS;LY\M >V<XW=0$
M/0G(PI+^?4_!]Z#>RRPZ]JAL;(R.?DMMVQCSS]Q)6R>3WH [O2+]M4T>TU!K
M=K<W4*RB)CDH&&0#[X-7*Y#Q#<W-OK-C;K<S0:7>Q&QAGM'Q]ENR2$+ =0>%
M / (]ZZX8Z YQQ0 5BVWB,ZE!)=:3IT]]:(S*)U=$$Q4X/EAB-PR",G ..":
MN:Y;W%WH&HVUH2+B:UE2(@XPY0@?K63\.Y8I/ .D+$-IAMQ%(I&"LB_*P(['
M(- &QI6JV>M:?'?6,A>)\@@C:R,#@JP/((/!%7:\GLC<P6EWJ=M/-#:WGC!#
M;M%*R++$TJJYX."K$$<^E:/B:ZN8[CQND%_=QBVTVWFB$=RX\J0B0DK@_+G
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
MHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH *Y[QZ?\
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
MNBW6AZM)9WHT_4HM0TZWD247?GJMF"F&4[OE;)   SZ\8KN4#A%$C!G Y(&
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
M:NVI.O2@##\$L#X)T:/D/%90QR(PP494 ((/0@UNT44 %%%% !1110 4444
M%%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 5
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
M^S16^K:6MG&PE9F1@'Y*[0,?/Z]J9;Z+XCFU;0KZYBL+8:=:36\BQSLYRRH
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
MUI^]CTZ^D\/YG*J)1$WG+N"\X//<YXIVD^+-0U.Q\-VDDB17NK-<K-<(@X6
MD,54\;F(7KD#)XH ZO5=5L]%TZ74-0E,5M",NX1GP/HH)JR9%$1EYVA=W ).
M/I7G_B35KV7PYXTT._<3OIUJKQ7 4*9(Y%)&X#C<"I&1@'C@5T*ZE=:CXBGT
M2TN3:)8V<4TLJHK.[R9V@;@1M 7)XR<CD8Y -;2]4L]:T^/4+"4RVTI8(Y4K
MG:Q4\$ ]0:N5YWX3U6ZM/#.@:3#O^T7TM\SR0*FX".9\[0YVY)8=<\ \5=OM
M6\6:=I]BMRUO#/-K,=HLDD:L9H'/RLP5L*W4$#TXQ0!V]%5=.@O+>R2*_O%O
M+@%MTRQ"+<,G'R@GH,#\*Y"?4?%=Y/XD2QU.T@.D3#R5-IN\T>4K[#EN!SC/
M)^F,$ [FBN%L]?U_Q#J=E!87UOI\5]HJ7XW6WFF)RZ@CEAN'/MQVSS5A]>U7
M4-&US6=/NDA_LJXGCAMFC!280_>WD_-EB#C!&..O- '945Q,6MZYKVNQ6>FW
M\%A;7>C0ZA&S6WF/$78C')P3QU^O'<1Z-XOU/5/[)TFX,=OJ%Q/=0W4\2@@?
M9S@E >,L2O7('/'2@#JM0T#1]6E274M*L[R2,85YX%<J/3)'2KL44<$2Q0QK
M'&@PJ(H 4>@ Z5QDOB76K1M;TXP2WTVDW%N6GMH@97MI1DL$Z&10&' P>#BK
M%OX@>\T6*\L-=M[BWFOQ%Y[18F6/;S&(PO,N[C&WH<XH Z'5M7LM$L&OM0E,
M5NK!2X1FP2<#H#W(%7:\XUK5;S5/ASXB2]):2RU$6JNR!7=%EB*E@.-V&P<8
MZ=*V/$GB.YTK6'M;JZDTNVEA3[%>F$/;O*2=RRL0=O\ #CIW.3TH Z^J][?0
M:? )[DN$,BQC9&SG+$*.%!/4CFIZP?&.IW^D:5;W5A+'&QO8(I-\>XLCR*I
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
M*'@MSSD^]:'_  CZ?V__ &U_:%W]I^R?9-O[O9MSNSC9USSUQ[8K6HH YE?
M]HNA6NCKJ>H""UNQ=QOF+?O#F09/EXQN)/2G/X+M?[7N;^#4M0M8[TAKNTAE
M"Q3MC!8C&02.NTC-='10!C2Z5#IFK7WB02WT\K6HC:UB56#(F6 10NXMDGOS
MFH?#UA#-J>H>(_L$MG+J/EJJ3KMDV(H&YE_A)/;T5<UOU!<7UM:W-K;32A9;
MQVCA3NQ"ES^04T -U*Q34],N;"262)+F)HG>+&X!A@XR".A]*RH_"4$<NBR#
M4;XG1$*6X/E8<%=AW_)S\O'&/SYK?HH YZ'P;8P6SZ>MQ<'2WG\_[ =OEJV[
M?M!QNV;N=N?TXJP?#< U;4-1BO;N%]1C5)XT9-FY5V!QE2<[>.N/;-'A[6I]
M9;5%N+:.W>PU![0!)"X8*J-NR0.N[TK8H YF7P+9-I.EV,.H7\$VD<6=[&Z"
M:,8P5/R[2", @CG%3ZAX/L]1TR"UEO;U;FWF^T1WZR@7 EQC=G&.1QC&,8&!
M@5T%% %'2],&F6Y1KJXO)G.Z2XN6!=ST[   >@ 'XDU#>Z%%>Z[8:PUW<QS6
M"2)%&FS80^-V<J3_  COVK4I* .:;P/:/HUWI1U34?(N[S[9(V8MPDWB3@^7
MTW '\*Z1%*HJEBY P6.,GWXIU5KE[Q9K86L4+QM)B<R.5*)@\J,')SCCB@"F
MWAS39-6OM2DAWRW]LMM.I/RL@SGCU((!]E%5;CPA8W'A*+PTMQ<P6D2HN^(K
MYC;6#9)92,EAD\5;\2ZM-H?AV^U2"W2X>TA:7RWD* @#)Y -7[:4SVL4Q !D
M16(],B@#.U30(]6;3FGOKM&TZ=;B-H_+'F.%*Y;*GLQX&.M1?\(O;K=ZK/%?
M7D2ZJ/WT2,FU6V!"ZY4G.T#J2/:MJB@#GX?!]M!_8>S4;[_B1J4MLF+Y@4V8
M?Y.?EXXQ^?-9>O: =+TR[%M-K%S'J>I)<W;VP1Y+?&"7153+#Y$7&&]<'G/7
M7LTEM8SSPQK))&A94=]H8@9QG!Q^55/#NJ/K?AVPU1XA$UW DI13D+D9QF@#
M$T"VU"626.'6=7GT^2W="U[9K;R1.<;3'F-&R/FZ@CI73VD!M;.&W:>2<Q1J
MAEE(+O@8W,1W/4U+5>*_MIM0N+".4-<6R(\J#^ /NVY]_E/Z>M %@C((SCWK
M#L/"L.G)JJPZG?-_:LKS3,YB)1V !*_)QP .<UNTE %'1-)CT/2+;3(;B>>&
MV01QM/M+!1P!\H _2JNI^'(]4-['-?7*VU_$(KBV&PH0!C(RN5)'!.?3H1FM
MFB@#$3PO;Q:I>ZA%?7D;WELELR*8]D:*#MVY3.1D]2>M5+3P/:V#::]KJFHQ
M/I]L;17#QYEA)!V-\G8@<C!]ZZ6B@#F;+P-9V":2EOJ>HA=(D=[8%HR/G!!!
MRG(P2.W7UYJ?4?",%[K?]L6VI7^FW4D8CN#9R*HG4=-P(/(Z CG%;]+0!C1^
M&;>'7(]6@O+J*2*R^Q)$"AC6/.>ZDDY .2:IV_@>QM=-L;2&^O1+IUP]Q:71
M,?FQ,Y)8<* 5.XY!'?Z5TE8]]K4]GXITK2/LT;0ZA',_G>8=RF, XVX[[ASG
MUXH BO/"5G?Z9J5G<75SOU7 N[E"@D< 8"CY<  #& /7N2:+CPK')JL&JVVI
MWMI>QP"WEFB\L_:(P<@.I4KD'H0!6]24 <L? %@-&M-/CU#4(I+&=Y[6[211
M-"SDE@#MY4[CD'-6KGPA!=V5K!+JFH&2VNTO#<;XS)+*OW2V4(P,#@ "N@I*
M  #  SGW-<3I&F3ZCK_BM))K^SMKRX08\C8)D\I58JS+Z@C(/^-=A>WMOIUC
M->W<JQ00(7D=CPH'6F22W;3VAMHHGMI"3.[N59%VY7:,<\XSR.* *$'AFUMM
M=@U6WN;B$V]F+..V39Y(B!R!C;NZ@=^U0R>$;0R:BL-W<V]KJK%[RUC*[)&(
MPQ!(RI8<'!^F#S6]2T <8UE,?B6?LAN[*WBT9+=)8[;,182,=F64KD*01_\
MK%:LGA#3_LMA';R3VUQITK36]TA!DWOGS"V00V_)W#'Y<5O44 8P\-Q+YDT=
M]=1WDUPMQ+=KLWNRKM"D;=NW;QC'KW)-59_!5E-B9+RZM[T7WV[[5#L#>:4V
M'Y2I7&WC&/USG1UC5O[,-E"B![B_N1;PACA0=K,2?8!3]>!QUJ;3)=0FM"=3
MM8[:X5V4K%)O1@#PP/49'.#R* ,2;P)8S:;J6GG4M1$.IW N9L2(2'&TG!*'
MJ44G.>G&*N:AX:34H[N"XU"Z:VOHUCN("$VL ,$CY<J2.I'X8ZUL3-(L+F%%
M>0 [59MH)]"<''Y5F^&-8?Q!X;L=6>%86NXO,,:MD+STSWH 2UTZ[@\17%TM
MW<_87MUC%M(ZF-6&,&,#D< YSU)'I3]=T.'7[%+2>YN($29)LP%02R,&7[RG
MC(%:5% &-_PC48U>]U0:C>B:]MUMY%'E[0JYP0-G7YCW[U0/@*R2QTN"UU/4
M+:XTE3';7D;H)1&>J-\NUEX'45T[E@C; "V. 3@$_6LKPMK,OB#0(=2GMUMY
M)))4,2ON"[)&3K@9^[Z4 17/A:WN4TU6OKU6TZY^THX="TLF"-SEE.>&/ P.
M>.@JOJ/@NVU"?56_M&^MX-7CVW5O$R!&8+L#@E20< < X..0:Z2L:\UJ>U\5
MZ=HWV:,PWT,T@F\P[@8]N1MQ_M#G- $#^$85U"UU"TU.^M+N"W%J\T9C)GB'
M(#AE*DCL0 :@A\#6<&FZ?8)J6H"+3[TWL/S1D^9EFP<H<C+M^?6K_B?6I]!T
MD7T-M'.//BB</(5VAW5,C@YP6''%:] &#+X1MY9=;<ZC?#^VT"7(!CPH";!L
M^3CY>.<_G6#K.GM9ZI86<EUK]O;6-B(K>]L[87/FDMRKJL;!2 B8.T9SUXY[
MRB@#*\.)J"6$@U"ZGN@928)+F)8Y3'@??50 #G=V!QC(S6M110 4444 %%%%
M !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M%%%% !7)_$Q4_P"$(N9&8IY<]N0X8KMS.@)_(FNLK#\8:/=Z_P"'I-,LS K2
MRQ.S3L0 $D5\< ]=N/QH YVZT.UTOQG-#I:-%:WFD3R:A$)&*E@P\N0Y/WCE
MAGJ<'WK+BMK?2OASH.JP1E/MGV&+5+D.V3;;AN!.>!SM^AQ7HT&F6,-L\*:?
M:Q),!YL<<2[6X[\#/XBI(K"S@M6M8;2".W;(,21@(<]>!Q0!R%W8I9^,KBUT
MV-8K"YT:22\AA^6,.&Q&^!T8C</<+[5@Z=I-O%X;\$ZUINX:M)<6T32K(2TL
M1!\U#S]T*"<=MM>C/ID%KIEQ;:79VMLTD9541!&F2,#.T?TJCX4\.QZ#HEE;
M3VMF+VV@$+W$"<O@ 9W$ \XZ4 <8Q^W?#K4]5F&SQ):W<V9E'[Z*X$Q$<:GJ
M!M**%Z$'WJ]KAN;+5+G5;NUM=5L5FMA=QJ<7.GR@1D>63]Y22K;>#ECZFNX.
MF:>U[]N-C;&ZX_?F)?,XZ?-C-#:7I[W?VQ["V:YR#YQA4OD=/FQGB@#SG7KS
M3WDNK^UECCGMO$$,;37$@-QN#HKJG0I&!GCG()X&:V+QHIO%OB7_ $[[)&^@
MQ?Z4ASY0)E^<?3.:ZQ])TV62:233K5WN,><S0J3)@Y&XXYP0.OI3FTO3WFDF
M>QMFDE4I(YA4LZD8()QR,=J .9\(M/9Z[=Z9J.EVMKJ"VD3FYL?]1<Q!F"MM
MQE6R3P>OT%/\>V\,Y\/"4D;M9@C)#E<@ALCCUP*Z6UL+.P5EL[2"V5L9$,80
M''3I1=:?97P47EG!<A#E?.C#[?ID4 </>VVD6'B?_A'+PV=EI9TX-8PW:;HB
MQD<R[2Q #<I[@=,42_9M-D\+0RZF-4T](KF,)=2HK3@8"R_.0KA1P.>C C/-
M=M>:;8:BB)?65O=)&=R+/$KA3ZC(XK&U_0;[4-2M[F"'2[VUBA,9LM0B)16)
M!WJ0#S@ 8([>YH YVWL[/2=%TFSO'262^U1W@C%P/( ^=DCE;D,JJ1\HZL%
MX&:RI6MY/!6IVRW,3+:^(U6$6[[5CC,\?W "=J\MBN]TOPMI]I:S17&FZ=MN
M)%E:V@M@($8# (4]_P#:P,UHR:1IDRNLNG6L@D?>X:%3N;&,GCDX[T <I=6N
MFZ7XUTK1)+>*#2;BWN)XX7.8YKHLO4-P2%W$#U-<[)'8Q^"O$:6S1A+;Q*IB
M6-^$!FA'0'I@D5Z?=:987ULMM>6-M<0)@K%+$KJN.F 1BF'1M+,+0G3;0Q.^
M]D\A=I;U(QU]Z .8O-)T_4_B=/;7L"SPRZ(K20NQ*L?.(R5SST_0>E8>DWI7
MPSX+FO+J.:V62>.6UFF4>< '5#\Y"G9@<$]QCG%>BG2].:?SVL+8R[=GF&%=
MVW&,9QTQQBL36?#$DT]JVF6>D/:0A]^GW=OB)F;'[P%0<, ,<@\$T .\%:6N
MGV-[*&B*W5Y++$D4@<0Q$_)'D$C@$\#@9QVJCXHMM./CWPQ->PVQ5H[L.\RK
M@X12H)/H<D?C6SH&@Q:.;B9;6RM)+D('AL8O+B7;G!QW;YCEL#( XXK3GM+:
MZ,9N+>*8Q.'C,B!MC>HST/O0!Y;J=G:MX5\8ZJ4!N[+6Y7MYMQS"X,7*_P!T
M]CCKT-;&KOI^J>*-=T?7;ZUM%$$1LS=*,B(I\SQ,Q #!]V2.>!Z5V?\ 8NE>
M6\7]F6>R1MSKY"X8^I&.32S:1IESY'GZ=:R_9O\ 4;X5;RO]W(X_"@ TE=FD
M6:_:);D+ @$TPP\@P/F;W/4UP$)T_6Q?#5-6AL=8LM4D.50"Z0K*?*6,DY*E
M-J@ 8.3WKTNJK:9I[WZW[6-LUXHPMP8E,@'H&QF@#A]8NKJTU+QW/8E_M$5C
M9D&/[RC;)N(]PN34-Y]AAT^^USPMJT$EZ^E2[+?3XU56 &1(Z@D[UZ GG)Q7
MH"6%G%<O=1VD"3R??E6,!V^IZFFV>FV&G>9]AL;>U\T[G\B)4WGU.!S0!S.E
M6_A/43;7>E20S27%@T;P1,&$L9 ),R]R#QEN<L1WKF+2*P'PI\/26ZPK,MY9
M-*8B 2QF .['4XSUKTVSTVPT\R-96-O;&4[I##$J;SZG YIITC3&A\@Z=:&+
M>9-A@7;O/5L8Z^] '*P16>L^(/%5GKZ(6MO+\CS?^6-N8\AT)Z?-N)8=P/05
MCZ3!-JM_X).NHTMQ<Z7=?:%D8_O5 CV;AWRIR<]<G->B7&EZ?=R1R7-A;3O$
M,1M)"K%!Z D<4Z73[*>X2YFLX))X_N2O$I9?H2,B@#G?A^%ATC4;./B"SU:[
M@@3.1'&LAVJ/84R]:.\^(\>EZI$DMDVEF2UBF4-')+YF)#@\%@NWZ GU-=+:
MV-G8AQ:6D%OYAR_E1A-Q]3CK1=V%G?HJ7MI!<JC;E6:,. ?49[T >:7]N&^'
M&KQW:K/;6>M>3ITDP#E8!<QJ K'M]]?H/2O3X+>&UA6&WA2&)/NI&H51] *B
MFTZQN;=+>>RMY88\;(WB5E7'H","IXXTB01QHJ(HP%48 H \RU.6RU7PQXX?
M5A"VI6DURD8E(WQ1JO[G9GD*1SQU)/K6O9+!-X\T=T8.L_A^0,5?(8;XA_C7
M5W.C:7>7!N;K3;2><H8S++ K,5(P5R1G&.U/_LS3_.6;[#;>8B[%?R5W!>F
M<=/:@#S?3K."P^&-QKMG$YU"$W,1G1V9T@^U-O Y[("?KD]ZLZF+.STS5=:\
M,:M#)<R:6V8--1538&'[T@$X< D G!Z^E>@VUA9V4;1VEI!;HYRRQ1A0Q]P*
M;9Z;8:<CI8V-O:K(=SK!$J!CZG YH Y>*U\*7T4MUH[P3-<Z8Z-! P:-X^H:
M1/[P/&3SR1],+1YK2+0_ MJ%@&FW>%U ( %>;R/W2R8ZY;L>I KT6STVPTX.
M+&RM[42-N<01*FX^IP.31_9>G?8VLOL%M]E<DM!Y*[&).3E<8/- 'FOBBU^R
MZ?XTL[<>7I<$=K+%&IVI#.Q^<+V&1M)'3YO>NAUSP^+.:T'A^*R><R37,FG7
MI+1WN516;)SAQQ@_[1SWKJ#I>G-:"S-A;&V!W"$PKLSZ[<8HETK3IXXHIK"U
MD2 8B5X5(C'^R"./PH RO"VKZ9-H.EQQ!;!KE'$%E-*OF?(2&"_W@,=1VP:L
M>+;NVLO"FIW%X]RD"V[!VM6VR@'CY3V//7M5BXT:SN;NQG:"$?8"3#B(;DXQ
M@'LOL.N!Z8J[+%'-$T4J+)&X*LCC(8'J".] 'FX-K%X@UNRC>QAAG\/K*8+.
M3">8#)CD$;F"@?-@<8XI#!9:)X$\/:I&HACOA8IJERVYP8O+.-XS]T,5!]CC
MIQ7?KH^EK&(UTVT"+'Y040+@)G.W&.F><5*EA91V9LTM(%MF!!A6,!"#U^7&
M* ,/PM8Z;9W^I2:7J45S%<&.1X+8*+>%L$94*2 6 R1GT/>J7B^VTY_%OA6;
M4(+9HC/<)(\Z*5QY#D D]L\_6NJM+*TT^W%O96L-M"O(CAC"*/P'%+<6EM=J
MBW-O%.$<.HD0-M8=",]#[T <.B6FL-XQ36PGVJSG;R7?[UO;B(&)T/\ #R&;
M([UU'A66_G\*:7+JF[[:]K&TVX88MM')]_7WJY<:9I]W<)<7-C;331C"221*
MS*,YX)&1S5J@#R^?1]*O])\;7EXI^U6>ISO;2K(P>&011E"@!X8M@<<G@5-Y
MD6J:C>Z1XLO;6TN3IUL8OM:+D Q_O'C8D!6$F[)'/ ].._?2].DO1?/86S70
MQB<PJ9!CI\V,TMWIFGW\D4EY8VUR\)S&TT2N4/J"1Q0 S1T$>C6:"YEN@L"
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
MK78S:7I]Q<)<SV%M+/& $E>%691UX)&13I+&SENDNI+2![B/[DK1@NOT/44
M>6SSV&I?#:/5;_R?[974X_M3R$"6.7[4 4/< +T7H !Z5I73:9KFH>(+'6M6
MMK&Z@N@T$DB@310[%,;PN3QW/R]R?6NZDT/2)KB2XETJRDFEQYDC6Z%GP01D
MXR<$ _@*DFTS3[BZBNY[&VEN(/\ 53/$K/'_ +I(R/PH X^TT;3]2^(&J1WT
M;7&RRLIPLC$'S TAWD \'@?3)]:BT'S-.\0:;#>6]M?0WIG>PUBVXD<%2[+.
MIYSC/.>H'O7;KI]DEX;Q+.!;EN#,(E#G_@6,TRWTO3[.1I+6PMH)&!!>.%5)
MSUZ"@"2SO;34+9;FRN8;F!LA987#J<'!P1QUJ>J6E:5;:/:&WM8XXU9VD81H
M$7<?11P!VQ[=SS5V@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ****
M"BBB@ HHHH **** "BBB@ HHHH **** "J.L:S8Z#I[7^HRM%;JP4N(V;!)P
M,X!QR0,GBKU<WX_M;F^\'W5I9VTMS<2R0[(XER3B56/TX!H T+'Q'IE_>W-G
M%+)'-:H)76>%XLQG.'7<!N7@\CBFV_B72[BYMH%ED0WBEK5Y(65+@ 9.QB,'
MCG'<<C(KGM<TN]UKQ-?K!!<0PWWA][-+EXRJK*S%@#W'!_IUI?L5_KFG^&K*
M;3Y[*YTN[AGNVD7"IY2D$*W1]QP!MSP3G% %V/Q;9ZEH^N37/V[3K>RDE@:=
M('\R-5 !<$*<,"2?8 9%:IUJQM;2U'F3W+RVXFC5(S)*\8 RY ''4>G)Q7,&
MQU*+PYXRTQM,N3+>37CVS* 5F\U<(%P<]^<CC%+$-6T/6=.U==(O+ZTGTF*R
MGB@4>=;R(202K$?*=Q'X9],@'31^(M,GL;6\M)GNX[R,R0+!&SM(HZG:!D 9
M .<<D#J<59TO5+/6=/CO["836\F=K8(((.""#R""""#7)ZS;:A;:QINMR>'F
MO[4VTEM<65OM:2VRX9& SAC@8;!Q^%=-H5NEOIP\K3(],21VD%LJJ"N>[;>-
MQZG'KCGK0!#=^)]*LFE,\[B&"40S7 B8Q1.<<,X&!U&3T&><5F:SJQN/%UIX
M?\R\AMY+.6:22V217+[D5,,HZ#<23TSC/I67'I>IV_A;7_"\MA-/<7DMS]DN
M N8I5F)(=GZ*5+'(//'&:OQ6-S8^-])/D7,UM::0UF]T(R5\PLA&?J%//04
M:&L:P_A/0;1K@W&H3&6&V\TQY+%F"[VV_7H.IXK-GU]M/\>3+/<7LEF^D)<1
MVB0,[!S*P)$:KNZ*,Y'%7_'%E=WN@(+.W>YD@O+><Q1XW,J2JS8SU. :K0_:
MC\0I=3DT^ZBM6TA(=YCW?O!(SE?ESS@CVSQF@#9C\0:=/I]I?6\S7$5ZNZW$
M2%FD&,\+C(QWSC'>JG_"9:%]DM;HW;B.ZN#;1Y@?(E!P488^5A@\''2N-T[2
M]6TS1?#=[/H-Q?+I\5Q;7MCM'FH)'5E= 3AL;1T/?ZUKZC8R-::/)9>'WLD_
MMJ.\E@BB&](PI#22!<C<2>@).,=P: -=O'&B+#=.6O-]FV+B'[%+YL0QG<R;
M<A<<[B,5MQW4,UFEW"_FP/&)$= 6W*1D$ <G(KDC;7:ZWXPF^Q7)CO;2%+9A
M$<2LL;J0/Q8=?KTK:\*I+:>#M*@N8)89K6QBBEC9#N5D0 C'?D=NM %:/QWX
M>EBM)UNI1;WDACBN&MI%CW@D;2Q7"DD' /-6(O%ND2P:A-ON(QIJ[[I);61)
M(T()#;"NXJ0"<X[&N2@T[4D\"Z'9-IMV+FVUA+B:+RB2D:W#2%O3[I'3Z5IW
MVG7M_KWB=(K298]0TA+:WF="J/(%D!&3T^^.M '1KKNG->6-H)F\W48C+;?N
MFQ(H 8\XP.".#SS4<?B*PFVF$7$JR1O)$Z0,5E5>NTXP>HQZ]1D<US-B-4NM
M5\(S'0[Z"/3[>6&Y:4*NQC&JYQNZ9'7OV!IWAW2[ZQU>T;38KZSTZ>.1K[3K
MM28[20CCR6/JQ/"DC&>G H Z+PQKR>)-#@U-(9(1,"P5T(P,G&">#QCD<9KG
MK?Q9#HGB#Q+%K%[>36]M<P^7B!Y1 AB5B3L7"KECR?UK4\ 6]Y8>#['3K^RF
MM9[./RG$FWYB">5P3D>]4E@O;#7/%._2[BX&J&-K38@:.7$*H59NB<@_>QQZ
MT =!<:[86\,<JO)<B2'ST%M&TI,?]_"]O3U[9JS87]KJEA#?6,ZSVTZ!XY%Z
M,*X*'0KWPK>::9]'EUVS_LN&RE-LJO)#+&6.0K$?(=Y^F*[?1K9+/2H((["+
M3T4$K:Q !8@23CCC//..,YH IS>+-'MPCO-*T,DYMHYHX'D1Y02"@*@Y.01Z
M9!'6FQZQIT>L:LWVV]DDLX(FN+8PN4A7YB&1=N23SG&>@KC;*:&VLXK>]TK6
M5TBQU*2_@:&V66-0)&96\Q6):/)W\+GW(Z]3IL,Z^/=9NVMIEMKBTMDBF*'8
M[)OW '_@0^M &G!K^G7-C8WT$DDD&H,%MF6%\N2"1QC(& 3DXX%1OXFTN*[@
M@>611<S&"&8Q-Y4DHS\@?&,\$#U(('-97A?0[W2]1N[.= --L)Y&TPYZK+AB
M,=MF64'T8UE>&].N+.&VT+4_"9FNK"8%-2=$:!T5LK*#G=OQV SGTYP ;_\
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
M7OXX_,E@4L%<R!@5')) Y/<8KE_!UY/IW@6R^R6JR![^YC=V8)';IY\I+M[
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
M1'+:6-J;Z71&WAIB(P1,O)8+N/I]W\J .UIN]0X3<-Y&0N>2/7]169X;UO\
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
M9(W)<[&52FW'?=QS532O$LVM:6U_:065W;-:M+B.Y)VR<9B?Y>#@GG'8\#N
M=%%+'/$LL,BR1N-RNC AAZ@CK3ZXZT\531:5X8^P:+;I%K*;8X4F\M;<^67"
M@!<;>.OZ'I5BW\9.EA>G4+)(KZSOUL/)AD+I([;2I#;<XPV3\N>#P>E '4T5
MR,OC6>Q@U*34-,DC2R,)2Y"R"&1)&"EB64$;,Y88/ R*LW?BLZ?I:W]V+06\
MUXEO#=QS%H"C*")6;' SN7Z@<\YH Z6BJ>F7-Q=VGFW,42,78*89-Z.F?E8'
M ZC!JY0 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M %%%% !1110 4444 %%%% !6;K^AVGB/1;C2[S<(Y@,.APT; Y5@?4$ UI44
M 8MG;^(TMUM;R]LI-HVF\CC82./78?E#>^2,]NU0+H%[IWB&]U72KB$KJ,4:
MW$-SN.)$&U9%(Z_+P0>N.HKH:* .5M?!SZ=<>'OL5Q&8-&\XOY@.Z=I00QXX
M7DD]^N*BN/".H3Z)XBTXW5NO]MW+S!]K'R0RJI&/XN$'IUKKZR];U^TT+2IM
M2G26:&%U200 ,5)( SDCN1^= '/1F^C^);10-:R3QZ#$LJ.S*"?.?D$ G\,=
M^HJ=/!U[92:3-8:A 9+.6>:X%Q"62:28Y:0*&&&!R!ST.,^O4"SM1<?:!;1"
M;_GH$&[TZ]:FH XN'P9J<&EZ=8C4;:0:?JK7Z,T++N!9VVGGJ3(>>V.AJ^L$
M?AS6=9U_5M0M(++43"OSDKY91=@!)X.<_A72TV2-)4V2(KJ>S#(H YSP3HT.
MEZ9/+ TAANIW:V60<QV^YC&@_P!GYF89Y^>K5_H]W=>*=-U>*:%8K&&:,Q,#
MN?S-N3GMC8/6MNB@#C5\%7OV4O\ ;H$OH=6DU.UE6,E0SL2T;#/*D,1D8/Y5
M=O/"TFJC6+F]FC2]U+3CIZ>4"R01X;N<%B6<D].@'N>EK-TC6[?69+Z."*:-
MK"Y-M*)5 RP4-D8)XPPH ?H]O>V>CV]O>- ]Q#$$_<@A.!@=>>U<W!X-U6UT
M73;.+4+4RZ?J#W>)(F,4P=G;#+D'*E\@YZ@&NSHH XN;P7J;:7J5L-2MI);G
M5$U&$F!E4.&1BK?,>#LP,=/>K=SX?UZ#7FUC2-4LX9;R%([Z&XMV>)F7(5T
M8$$ XQGFNIK.36K=_$4FA^5,MQ';"YWE1L*%MO!SG.<]NU %%="OD\466K?;
M(Y8[>R:UD$BG?)N96+Y' Y4<8Q4_BC1[C6](6VM)HXKB*XAN(S*"4+1N&P<<
MX.,5L44 <_%HVI)XJ?79)[5R^GK:>4JLO(8ONSSQDXQZ=ZR]-\&ZOI=MH,<.
MIVCMI"RQE98&:-P_1PH88<<CKT)Z9KHAK=N?$G]@^5,+G[*;H.5'EE P7@YS
MG+>E:5 '%V?@O4[.ST>U&H6TJZ5J$MVI,3*7#ESM//7]X>?8<=SM:/HUUIVM
MZQ?S30O'J4R2JB YCVH$P2>O"Y[5KQR)-$LL3JZ.H964Y# ]"*?0!SC^']1C
MU[6;ZVN;;R-5MXT*R*V]'1&0=.,<@_ACOFJMOX3OX++PS;"ZMS_83 LVUOWP
M$93I_#P<]^:ZVB@#E=*\-:WH]Q+8VNL0?V(TS2I$T!^T1!F+&-7W8VY)Y()
M/&.M7O$^@W&LQ6=QI]XMGJ.GS^?;3.F]<X*LK#^Z02#BMII$1D5G53(=J G[
MQP3@?@"?PJ&WNS/<W,!MIXA;L%$DB@)+E0<H<\@9P>G(- &#J_A_6-;\+7>F
MWNH6QO+PIN>.)EAB56#85223TZD]_8"IGT.^MO$DFNZ?+ )+NW2&\MY=VQBN
M=CJPY!&2,8Y'I6_69=:_:6NIZ98%)9&U0L()8P#'\J%SDY]!QC- &9%X5DL]
M,AT^,6E_:N9GOH;M"%N))&#;Q@';@[L#!X/XU2A\%:GHZ:7<:%JT4=Y8VS6L
MHNHF>*>(N7"X#9&TGCGIQFNTJ.XN(;6WDN+B18HHE+.[' 4#J30!!;6<G]G&
MVOY_M4DBL)GV[5;=U &3@<X R>.Y/-<[;>#[I="MO#EW>13Z7:3HZ/M(EDC1
M]Z1L.@P0 6'4#H,YK:U/7[/1]$DU>_2XBMXUW,!"S.!VR!G'XXQGG%3:CJMO
MIEDMU,DTF\A8XH8S))(Q&0%4=3@$^P!/04 4+71KR#Q??:TTL#07=O'!Y0!W
M($+$'/0YW'C]:=K&CW=WK6EZO930B73Q,IAF!VR+(%!^8?=(VCL:72O%6EZM
M9WERCR6OV D7<5W&8I+? S\P/08YSTI]KXBL[IPGEW$+R6YN84ECPT\0QEE&
M?<<'##(R.: ,N^\'2W6E7H2[C&IW=]'?F9HSY8DC*[$VYSM 0#KGJ?:EC\/:
MZFLW^K_VG9K<W=K#$%6W;8C(Q/\ >SMPQ![G/;I4MIXNAFNHWG5H;.XL[:>(
MF%RRM*[KAR,@#(7!X'/7%;=M?0W4T\"[DFMV DB<89<]#[@]B/<=00 #F6\%
MM]C\0);"UL7UNW$#0P F&,[65I,8&6.[L!T'7K5Q/#]^FL:-?^?;[=,LWMF3
M#9DW!06![?<''/4UT=9VHZU;Z9?:?:3Q3,VH3>3$Z*"JMM+?,<\<*?6@#FAX
M)U.*S62UU2"WU*VU*:^M9A$63]Z3OC=2>00<9%;+:=KDMC']KN[*ZG>7-S"8
M66W>+8P\L EB.2#N.>1TQ@5NT4 <M8>%9])TH6%I]DDM9+J6::QF4F'RW_Y9
M+P< '!SCUX&>+^@^'(='T!](8AX)7E8Q*3LC5V)\M<\[0#C]>*VJ* .3M?"%
MV-%L_#][>13Z98SHZ.%(EECC;<D;#H,$ %AU Z#.:2X\)ZA/:>)K?[5; :ZQ
M*G:W[G,83G^]P,]N:ZVJ_P!K/]HFS^S3X$(E^T;1Y77&W.<[N^,=* *LNF27
M7AF329I4626T:W:1 <#*;<@'\\5BP>&M7QX;:XNK,MHA.Y8U;$@\KRQ@GIP2
M<^^.V3UE% '&W/@J^N4U-UU&.VN;C44U&SFC0MY$JJ% 8'[P(&#TZFN@T>WU
M>*-I=9O+>>X8!0EK$T<2 9YPQ)).>3[# '?2IL<B2QK)&ZNC#*LIR"* .<D\
M.W[:AXBN5N+?;K$"0QJ5;,6U"@)/?[Q../3WJ.W\,7\,_AF1KFW8:% T+@*P
M\[=&(\C^[@#/>NIIDDB0QM)(ZHBC+,QP * .0G\'ZE/X>UK2C>6JMJE^UVLF
MQB(@SABN._W0,\=:LMX>UZSUVZU#2-5M+>'4MCWEO/;M($D"A2\9##D@#@\<
M5L#6[<^(SH7E3"Y%K]JWE1Y93<%X.<YR?3M6C0!@#0KVW\6IK%O=1/"U@EI,
MLX)D.QV8,".,G=@Y^O-98\$Z@NBI!#J<5OJ%KJ4FH6ERD9*JSEB493U4AR*[
M.JNHZA;Z79M=7+$(&5  ,EF9@JJ/<D@?C0!A:GX?UK6?#%U97^HVK7\[1.AB
MB98(S'(K@8)+<E>3GOTXJQ'HVI_\)5'KDL]JVW3S:-"JL,L7#[@>>,@#'X^U
M6;#76OM0DLFTC4K5XMV^2XA41C&W&'#$'(;(QGH<XQ6M0!B^%=%GT#0(]+N9
MHIS')(P>-2 0[L_(/^\157PA:2Z)H9T!E!GTYY%BWMM$L1<LC X/&" >N""*
MZ&21(8FEE=41 69F. H'4FG8&<XY]: ,JRT79JTVL7TJW%])'Y*;5PD$6<[%
M'N>23UP.@&*RXO!S)IUMH;W$9T>TNQ<1IM/F,H<NL1[;0V.>X &!UKJJ* "N
M=\561UM].TB/D&\BN;D]DBC.[GW9@%'U)[&NBJ&ZF^R6D]RL$DQC0OY4*@O)
M@= .,DXP* ,OQ3H,NO:?;K:W0M;RRNH[NUE9=RB1,X##N""0?K6-?^$]=U6Z
MU&[GU2UM);[3%LO]&C?*,'9LABW3YL'CH?;)["*3S84D*-'O4-L<89<]C[T^
M@#E;72+S2=9_X2'4K_3X+:'31;3QPPLB1JC%@5);@<GK],=Z/"^G64FN:MKF
MGW!FL;J7_1MIS'N8*9G0]PS*O/JAKJ'19$9'4,K#!4C((H1%C0(BA548  P
M* ,;Q'I%YJSZ6UI) GV&^2[;S<_/M##:,=,[NOMTK*O_  7<:K/XA^TW4446
MK&!X7BR7MY(0 C<\'D D<>GO7844 <__ &-J%[J5GJFI-:FZT^"1+=(2VQI)
M  SDD9' P%YQD\FI_"6CW.@>&K/2;J6*5[1/+$D0(##L<'H>:V:* .7/A_7;
M#7KVZT75;6&QU*02W$-S 9&BDVA2\9! R0!PW&1575_!NIZA)KD<6IP?9]5M
M4A5IXF>6':NW:#G&TGYC[D\=Z[*JNHZA;Z79/>73%8T(' R69B%4#W)( ^M
M&/8Z)J<'BE=7N)[5X_[/2S=8U922K,VX9SW;&/QSVJM<^&-1GE\4,LUL%UZ!
M8H\ELPXB\O)XYX.>WI[UNZ=J9U!KA'L;NSDMY-C+<H!NXR"K*2K#GL?KBK,D
MZ1[E^_(J%_+7EB/84 <O/X8UJ"72M1TF_M8-1LK,64Z3QL\%Q$,8Z8(((R/K
MCZV;K0=6N-3T2^:\MYI=-EEEF+JRB0R(4*J!G: &XY/09[DZNAZQ;Z_H]OJE
MHDB07 )02@!L D<@$^E7Z ,SQ'I']O>';_21-Y)NX6C$F,[2>AQ6<FB:NWB'
M3-6N9[.0V=I)!(D89 Q<J<C.< ;1]>>G2NDHH XJ'P?K$%M;+'>V>^WU66_\
MMT=HI!(6.UAP<J6R#Z@43>#-6?3+VR&H6C_:=6740YB9=N'5RN,GJ5Q[#UKM
M:* ,.UTB^B\776M2O;^3<6D=OY2EBRE"S9SCG.X\47.BWA\70Z[:W$(3[&;6
M:*1"21OW@J0>.>.0?QK<HH XI/!VJIX7MM'^TVAD@U$7OF_-AOWQEVXQZG&<
MU:A\.Z]IVK7QTS5;:+3=1F-Q+'+"SRP2-]\Q,"!R>?F'!['OTUS.+:VDG9'<
M1J6*H,L<>@K/L->AU+3],OK6SNW@U(!D8(/W(*E@7YX'&.,\D4 -\2Z$=?T5
MK**Z:UN(Y$FM[@#<8Y$8,K8[\BJK:7K]]H-_:ZI>V3W5U;/;H+>-TACW @L<
MDECSGL.,#&2:Z&B@#E;?PO?V-WI&IVLUN;ZQL!I]Q&Y81W$0P1@XRI!&>AZD
M>]2Q^&[FUMYO+-I<O?WKW.H0W"'RIE9=NP<' &$Y(.=IXYKI:* .*7P+>6&G
MV+Z-J$5I?Z?=33VRNI>!(Y3\T.,YVXQSUR,X&>.HTR"_BMBVIW,4]S(VYO)0
MI&G&-J@DG'N3DDGV NT4 <DOA"\@TK4]!@NXO[*U&61PS ^;;I(<R(!T;J<$
MD8SR#BKHT*[A\6VNJVYMUL[:P-BL)+;MI96W9QCC:!C]:Z"L_6]:MM!T\WUW
M'</ K!7,$1D* ]6('11U)H K>(='N=4;3;BTFBCGTZ[%RBR@[9/E92I(Y'#'
MGGITK/U'P>VL6&N?:[A$O=8@6'=&"4@5 =BC/+<DDGC.>@Q74T4 <LF@:_+K
MT6LW6HV23KITEH4@A;:"S*P8$GU4'GZ8[T6WA:XBU>XU@1V5M>3636\JVVX1
MW+D@^8XQP1@X')Y/-=310!Q]KX3U.VL_#$ N+5CH3?,?F_?#84XX^7@Y[TVX
M\&7UXFL%KZ*VFO+^._M)H@6-O*@4+D'AA\O/U-=E10!@16/B:33W-]?Z?)>$
MH!'%"RP% P+A@222PR,]!V'7-.R\)SZ9'=BQCL8H+V[$TVFL"UOY?EE60<<%
MFPV=N. ,<<]739'\N-GVLVT9VJ,D_2@#(\,:"OAW3I;2,JL<ES).D*$E( Q^
MXF>P_#DG@=*V:S]#UBWU_1X-4M$E2"X#%%E4!AABO(!/I6A0 4444 %%%% !
M1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%
M%% !6!XPU>?2=,M?LS^4][?06AGP#Y*R. S\\9 SC/<BM^JNI:;9ZO82V%_
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
M$6NZ)<S/<P6#0R6TTG+A9%)*,>^TC@GG!YJ#XDQE_"$C"66,K=6W^K<KG,R
M@XZC!KH;'3K;3Q*8%;?.^^:1V+/(V ,DGKP /8# INJZ79ZUITNGW\9DMYL;
ME#%3D$$$$<@@@'\* .7O-/>X^),5HE]<P#^PF#2QL/,(\\?Q$''UJEHOB#4]
M2T_P[I\]QOFOH[OS96E,+3&"38!N5202#N.,'Y>O6NLC\.:=#J:ZD@N!=);?
M9A(;AR?+SG!R>3GG)YSWJG)X%T"72(=+:VF\BWF,T#"XD\R%R225?.X9))ZX
MYH M>'(-4M;&:VU:]BNY8KAQ$Z/N98C@HKG RP!ZXY&#WK*^(5OYVEZ:3+*F
M-5M%PC8!S,O/U':NBT_3K;2[1;6U1E0')+N79B>I9F)+'W)J'5]$LM<ABAOE
ME9(95E01RM'AU.5/RD=#0!CR2WMOX^L=-74+AK272YG,;%3AU= &SC).&/7-
M8^B_\)%?>$IM6@UFYNM062X@B@E>-(Y,3E1SMX?"D ]!D<5U\FA64NK1:J_G
M&[AA,"2><PPAZC&<') /3M4%OX6TNUTB32H4N%M9)?.*_:9"ROOWY5LY7YAG
M@]: .*U[4XM5\#:Z(YM3M;BVEMQ-8W;L)+<EU&-V3N1N2#DY_2O288O(A6,.
M[[?XG;<Q^IK-F\,Z7=6=[;743W"Z@%6Y>20[Y OW>1TQVQCGGJ36A:VT=I;)
M;Q%RB# ,CEV/N6)))]S0!R?BR^ND?5Q9:C<&6RTSSTAMOD%L^'822,3\V=H
M3!X!XYS3#=ZGJ7B31+8ZK<V\%_H[SS) $&''E\J<9!^8^N.V*W;[PKI&HW\]
M[<P2&6Y@\B<).Z),G. Z@@-C)QGUI+?PKI5K=6=S EPLME ;>!OM,AVH>H.3
MST'7T'I0!R46K:S+X>T;&KW"S#7SI\LVU"TT8D=06XZX4>Q[@U8N+W5+&T\;
M64>KW;G2[9;FUGDV-(A:%G*YVXQE?3C-= /!FBK;Q6XCN1'#=F\0?:I/EF))
MWYW>I)QTYJ6;PKI5Q+J4DJ3EM5C$=W_I#@2*!@#&>.,CC'!H QKZ^O=._P"$
M9UF6]G-A-Y<%_&7^7=(@"2'TP^ >WS"G7>IWD*Z8([APNNZ@P0R3%!'#L=D1
M6P2I;:O;/S$#'!'03Z'I]UH9T6XA,UB8A$8W8L=HZ<GGC Y]J-8T/3M>TTZ?
MJ-L);?(90"5*,.A4CD$>U '(ZT?$>C:9*KZUMW:G:BV"2>;(D4D@4H[,H)&<
MX/7J"3BK>M-J?AXPM)-JNJZ6J2M<RP2+]IMV9@5<JH7<B@,,?7(.!6LW@[1W
MTQ=.D2Y>$2K,6:ZD,CNN-K,^[<<8&.>,5=NM&MKJX2X:6YCE6+R=T<[+N0]0
M>>?KU'8B@#E-2U26XTV633M:N+PPZ*MQ']F_=['PQ$\C$\[MHPA!Z'CO3I;K
M5=6U7PY;C6+JTBU329)IQ;A 0X6,[E)4X.7/7/MCK6Y)X,T&24.+1HU%J+1H
MXIG2-X@"%5E! ;&3C-/MO"FDVEQ87$*7"R:=$8K8FYD.U#C(.3SG ZYZ#TH
MQ9]1NO#'B*ZM;^]N;VVOK+?IPD< F9.'B&,?,VY2/QQ75:;;36FFV]O<W#W,
MZ1@2S.>7;')_.LJ:WNM:UV!;W2/L]GI=R9X;B21',[[2JE0.5 W$G..0OOC?
MH YJ2]FU3QI=Z&]Q-;6]I8QS 0N4:5W9ANW#G"A0,=,DYSQ7+ZI>7VK^!Q_:
M-Q(UQ8ZXEDTR'8)PERJAR!QGCMW!KO+W0[*^OX=0<217D*&-9X9"C[#R5..H
MSS@]#R*AN_#&DWFEPZ9) ZVD$@D2..9T^<-N#$@Y)W<Y)Z\T :<,7DPK'O=]
MHQN<Y8_4URME;D_%+57-Q.0NGV[A/,.WEI!C'IQT]>:ZQ%V(%R3@8R3DFL^?
M0;"?5_[59)5N_)\DO',Z!ER2,J#@D$D@D<9H X'PW+?:9X5\(7T&HW 2YOQ:
M26WR^48W:3/&,YR <YK8%UKNO6M_?Z;?PV<]EJ,L2^;<D11I$^TK)&$(.Y1G
M).1NX( Q6VG@W1HM-LM.CBN%MM/F$]L@N9/W;C)!SG)QD]?6B3P;H<NM2:L;
M:1;B8AIE2=UCF8="Z [6/U% &[7GTJZYJ"^*FB\1WMN^E7+&T"",+Q$K@/\
M+RN3C''4YS7H-<;H_A^2ZU?Q&VIVMW!;7]V&5?-VI<1>6JX(4^H/H2#@\<4
M4M.N]7\2:U:12:Q>6$5WH-O?-';A 8Y6?G:2IXX[Y/OCBIXKK7=>L[C4].OX
M;2:TU"6,B6Y81)'%(5*/'L(Y09SG(+9R!Q73)H-@FM#6$21;L0"W!65@@C!R
M%V9VXR<]*J-X-T-M:DU86TB3S,'F1)W6*5QT9HP=K'ZCWH S;>>^\1IK4L&L
M2:;<:?J#6\)49CB6/:273(#[N3ST!&,8J*:?6O$4VM1Z5?):7&GW0@MF-P5$
M>$5LN@0APQ)Z]NF,$G8N/!^BW.LOJSV\BW$NWSQ'.Z1SXZ>8@.UL>XHOO!VB
M:CJYU6>WD%RZA)C%.\:SJ.@D52 P^O;CI0!EV]]<^(=3URRDO7@73((4C^R/
M@%WBWF3_ &AR  >, Y!S65H5W>6NA?#]+>[EC@N0(IX5QMD'DLPSQGJ!WQ76
MWGA?2[S5/[29)H;EHO*D>WG>+S4'17"D;@/>F0>$-'MH--ABBG5-+;=:#[3(
M?+.,9Z\\$C!XYH Y/4;O65T?Q;?)KMXLFCWK-:@; ,+'&VUAMY7DC''4]:V=
M5U&]?7+BUN)[BVM6TL36;6P.6GR=W3DD?+A3P<G@]M.3PCI$MOJ-N\<YBU1]
M]VOVF3$AQ@]^. !QCI6!JNA2MXADDETC5YX%MXH+2ZTS4?+<HN21)ND0YW,<
M'D8Q[T =+X974QX=L6UF6234'A5[CS @*N1R/E ''^2:SO%-S=:/J6EZR+N9
M=,2<07\(;"!7^5)#Z!7(S['VK4T&SN;#2T@NIYY6#,5\^7S9$4G(5G_B('?]
M3C-5/$4=]J2MH<>EF:SOH2D]XTBA(5)PPV_>+;<D8&,X]Z ,J[U:\AALYXKE
MA'KFJ>3"9)=JQP[&*A6P<;RF0<9_>8&,#"S_ -KZ3;7L-]K:10S7=N+-48SW
M 5VPT0)"DEB"%8Y(R<GC-=!J>@Z9K&DG2KZU62TPH6,$KLV_=*D<@CVJF?!N
MC-I7]G/%/(GFK-YSW,AF#K]UA)G<".W/% '*ZAK&KVWA_P 9QQ7MU;/I3HUJ
M7=9)8U:)6*ECG/)/<D9ZUV=CI)6TE2]OKF_%PXD*SD!5X&5 4#Y<CH<U4D\%
M:%+'?1O;SE=155NO]*E_>A0 ,_-UX&3U/>MNWA6VMT@0NRQJ%!=RS8]R>30!
MR'B[5+[3+^:6Y^VII#6RJM[8-DV,N6R\B#EE(*\\@8Z<YKL8Y$EC62-@R. R
ML.A![UG7OA^QOY[B6<S_ .E1"&XC69E25!GY2N<=SR,'GK6BB+&BHBA548
MP * .%\6:O?6D.M7NGZC/++I\L&P186*U^YN1\G]XS;B>AP".E7[U=0O?'TV
ME#6+RVLWTH3A("BE'\TKE3MXX ]3[XXJ_>^"]#U":^DN;>5AJ&/M,:W$BQNP
M  ;:#C=P.<9XJTGAW3X]4&IH+A;H6_V;?]H<_N^N,$\G))R><\YH X[2M7UG
M5+;P89-6GB-_]IBNC&J?O/+1\-R/O?+],\XI3JFJ6ND7<?\ :=S(^G^)(K*.
M9V!=X6:(E7XPW$A&<5TUKX-T:R_L_P"SQW"#37=[4?:I#Y9?[W5N<Y/!]33G
M\(:/):7]J\4S1ZC,)Y\W#DF4$$.IS\I^5>F.@H R[[5+JSU_Q)"VK?8[>WTN
M*>*69=Z6[L9 6QW^Z.*=H=]?)XSETR1[O[*^EQW*I=N&??YA4MU.T$?PYX]!
MTK0/@K0W-TTUO-.UY;BVN&EN9&,J#/WB6Y//4\CC&,5+:>%-*LKR.]B6Y-U'
M ;<3274CN4]"2QSCMGIVH H?#;_D0=,^DG_HQZZBJ.CZ/9Z%IT>GZ>CI;1$E
M$>1GVY.3RQ)ZDU>H **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@
MHHHH **** "BBB@ HHHH **** "BBB@ IDLT4$9DFD2-%ZL[  ?B:?7)?$[[
M+_P@UVUSY8VR0F,OC(;S5Y'OC/3MF@#I#J%BHG)O+<"W_P!<3*O[K_>YX_&G
MM=6Z6WVIKB)8-N[S2X"8]<],5Q;6F@_\+/2'R;#RGT4NT>$VLPE&&(Z$[2W/
MIFL'2]5@L?#/AJYDO'ATJVO[R*XF@"N+=C)((2P(8!<' ..,B@#U);NV>U^U
M)<1-;XW>:'!3'KGIBJ.H>(])T[34U":]A:"218HV20$2,QP #GG^@!KB;Y],
MTFPM=3TV]O)=$?6/M%]=(J,@+1L-Z@)MV!RA. 1N''(IFMPZ*OAR_P!4TN\D
MO+:?4[.XN+E]ODAA*@<KM4 < ;B./QS0!Z!]HEDU.$175HUH\#/LSF5FR,,I
MSC;@G/'4BI5O[-Y8XDNX&DE!,:"0$OCK@=\8-<C--I4GQ.LI%>U*3Z),&/RX
MD7S$(SZC:"1[>U<QIC:/;^"?"M[&UI'.NN(IF!4.%\YP03U VD<=,8H ]6EO
M+6"589KF&.1_NH[@%OH.]3 @C(.0:\PUVXTR6\\5Z!>:QIT+:E-$PEO9A&T/
MR)P ?O!0 5(.,DCCK7I-E';Q64*6GE_9P@\OR@ I7'!&.,?2@#/.KS7<NHKI
MPBV:?F-Y) 2&FV[BHP1PH(R?4X[&F>%]>&M:#IMS<RVZ7UW:K.\$;8(SW"DD
MXK&\'O\ 9?"^N?:W"20ZC>_:&8XP=Q.3^!!KG='.EVFC?#ZZC:UBN6G"R2@J
M'(,+A@3UZ[1^0H ].>]M$NEM7NH5N'&5B,@#L/8=:>9H@6!E0%>HW#BO-&>.
MY\ Z_IU_C^WTO)F\O.)GG+Y@9!U/&P*1V'M6GK%E+I>O6UQ)9QW+>(+'^SKI
M?+RC7(&Y&;'\)&\'V4>E '<B:(A2)$^;A?F'/TJ-;ZT>Z>U6ZA:X09:(2#>H
M]2.HKB_"5I<O -(G@4S>&#+;PRO& )'(_=./3$1&?]^J'A:71=7M]#@N=0O#
MKFF2#S++:BRQRXQ*7P@8H<DDD\YZDT >C">(J7$J%1U.X8%1RWUG!+%%-=0Q
MR3?ZM'D +_0'K7%VNG"P\1:EX26T'V#4YEU&,A/D6(_ZY#VQO50!Z2>U4KR;
M2)]5\0Z#XFU">S>YN%>"%8T_TB'8HC\LE"2001A3UZ<DT >A2WMK#)Y<MS#&
M^5&UI #SP./?M4]<%IUCH]U\2-3MKJ"VGE&GVK".X".Y=2Y+$=W'RY-=AIVK
MZ?JZSMI]U'<"VF:"79_ Z]0: '3R7"ZE:1QSVR0.'\V.3/FN0!MV<XXYSP>U
M/-_9"1(S=P!W<HJ^8,LPZJ!W/M7,:\UE'\2/#)<PK.\-VK$X#,-JX!]NN/QK
MCYQH\7@?Q!=0_8UGM_$+&"12NZ,"Z7;M/8;<XQVS0!Z\S!5+,0% R23P*Y75
M?&*-X;.KZ%-;7"I>);OO^;*F81$C!]<D'N*ZE626,,I5T<9!!R&!KR@W>GQ?
M"N:RDGB2XBU8)/'NVLA^W;L'T.W)^E 'JD-U;W#2+!/%*T3;9 CABA]#CH:;
M!>VEU))';W4,SQ'$BQR!BA]P.E>>ZPJV_B3Q'9^'O)BN9O#J-'%:D*7D#2=
M/XMI&._(K2\-W'AS6M7L-3TO4;FYO(+5H3"J(@@C(^[*%1<8(  /?IQF@#M7
M=8T9W8*JC)8G  J&&^L[B$3P7<$L1. Z2!ESZ9%<_P"/KF2ST>SNR919P7\+
MWK1('*0C.6P0<@-L/0]*S4T#0/%6G:\--OY+_P#M.-#)<D+Y2S*#L9=J@;AQ
MNQ[9H [?S$W!=ZY89 SU%1PWUI<320PW4,LL7^L1) 63Z@=*XVSN-1\1>%KW
M6([1H=5M]-ELK==F'6X"D2E?^!JJCW0^M0>'IO#&MW.EWL&H33W-G:O%):LD
M:+;QE,.LP"#Y01@9/7IWH [A+^SDE2*.[@>20%D19 2P'!('?&#5;3]=T[4[
MV\M+.ZCEELY/*E"L#\V 3CUQD ^_%>9:0VDVW@OP7>QM:17(U>-7F#*'"YD#
M GKC!&1Z8KK_  E+;0^)_%%F6C6Z.H"41?Q>68H\-C^[GO0!OZIK>GZ.;9;V
MX2)[N988E9@"Q/4\]@.2:S=/\1N^OZW9:A/9PVU@\ @ESLW>8A;DDX)Z=*J>
M/7@@/AVZN6CC@AUJ(RRR8"HICD&23T&2*P;W^Q[W4_'\D_V64QV46PR8)3_1
MSTST.<?CB@#T2YO;2R56N[J&W5CA3+(%!/XU5O==TVPU&SL+BZC2XO-WEH7
M^4 DL?;C'U-<+_:^GSP:?;O+"EW<>&U'VF5C)YX(P8HUS@ON7)ZGH,'LW2[Z
MR$7P]O+B:,Q"RE@>5^1YGDH F>[9! 'J,=: /1[N[M[&UENKN9(8(5+22.<*
MH'<FN?N/%+2S^'9M.:W>QU:79*7Y= 8FD'0X!X&<YK6U^,R^'M1C";RUK* N
M,Y.TXK@UO-(O-(\ 0^?;2QF5%E3<,%A;,&!]?F(!'KP: /1H;NVN8//@N(I8
M>?WB.&7CKR*+:\M;V,R6ES%<(#@M$X8 ^F17F-S<Q6D'BA+$C[':ZW;SW,-H
M%8K!MC,C!,$$9!R,8.#GO76>&/[$O-8O=7T?4IM0>ZB1;F8;1%E?N@[54;\$
M^X'7&10!TDTT5O$TL\J11KRSNP4#ZDUA^'_$$NIW6M+<RVOV?3[D1Q30G"LA
MC5\DDD?Q=>E4?%=^FG>*O#<^H.(M)$DXDE?B..<H!$7/0?QX)[FN:.J:+;#Q
M0Q6">VDUNV<;9-L2;A&1*Y7J@89/8].^: /0-0\0Z5INBSZO->PM:0*29(Y
MP8C^$8/+'IBK4FHV,-L+J6\MT@8X$K2J$)^N<5Y?JT\-UIGQ BBN8[MY(8+A
M3$F%<>4NYU'/''7)SCJ:W-7US38/%5E=76I_9=%N]/:.UNXU1H#+O)=265@-
MR[>>,[: .\5E=0RL&5AD$'((J&>]M+5XTN+J&%Y#A%DD"EC[9ZUG>%;*RT_P
M[;6NFO</9IN\AK@_,5+$@C@?+Z<=,5SL4]D-7\76/B)HT:?:T?GX'F6OE@*$
MSU ;=TZ,?4T ;_B#Q!'I$^GV:S01W%_/Y2M,?EB7:S%R,C(^7'4<FKFGRWL6
MFF769;,2(6+2VY*QE >&^;[O'49('K7"!I+2S^'\.NRQI?"7]Z)V <#R7 W9
M^JCGO7I!567:0"I'3M0!R^I>+U?1]/U/19;>>"ZU"&V?S 2=CR;,C!X..1G\
MJZ6"ZM[H.;>>*;RV*/Y;AMK>AQT->507>G'X7>'K5YX0\>IVL5PA8 JPF^96
M]" ,D=AS5W5MMOJWC*ST-8EE?3+9Q;VNT,^"X?:H[[..G<4 >C6][:79<6UU
M#.8SAQ'(&VGT..E22S16\32S2)'&OWG=@ /Q-<AX;G\/:QKD.KZ3JEQ?7(L_
M)<*J(L4>00L@5%P<] >>N. :N^-+^SL(=*>]2,!M1C$<\[E8;=PK$.^",@<X
M!(&<<C&: -Y;VT>U%TMU"UN>DHD!0\XZ].M+'>6LIE$=S$_D'$NUP?+/HWI^
M->37UQ8/X/\ %,,]S"[IX@CEC+ (0&> [E'\(/SD$=1GKR:U]8_L6V\4:Y;0
M_8HK:;PUO>--@1V#O@X'!(&,>V* /08[ZSEE\J*ZA>3RQ)M60$[#T;'I[U)Y
MT6 WFIAC@'<.:\WTQM)MKKX>S0-:QRSVKI*Z%09,V_1CW^< <]ZHW-YIMMX(
MO;&6:".YM?$)8PD@-$OVP'./X1M/7IS[T >I2WUI!<);RW4,<TGW(WD 9OH.
MIK+&K7@\<'166'[(=.-TK!3OW>8%P3G&.O:N&\9:K83V?BF*WDBMKB.:W>1&
M)>:XVB,K(HS\D8'<#L3D9YZ:.^M)OBI%Y5Q&Q?0R5 8?-F8$8_#GZ4 =7+-%
M!&9)I$C0=6=@ /Q-0G4;%5G8WMN!;G$Q,JXC/^USQ^-<U\4!:_\ "$7#7'E@
MK/;F,O@$'SDS@]CC/3MFJ?V30?\ A9S0>18>4VBAVCVIL8B0X8CH3M)Y]/:@
M#M7NK>.V^U/<1+!M#>:S@)@]#GIBD6[MFM?M2W$1M]N[S0XV8]<],5Y9I&JP
MV/AGPK=SWKPZ5;W5W%//"%<6[EV$)8$, ,9 ..-PJ_>OIFCV5EJ6GWUY)H;Z
MPT]Y=*J.BLT9 =1LV^6'(SQ@-R.10!V]_P"(M)TZPBOIKZ$P3RK%$R2 B1F8
M* #GGKSZ &IA<32:I$L=S:-:/;L_E@DRLVX88'.-F#SQU(YKS_6(=$CT&?5-
M,O)+NTEUBSN;FZ?;Y(82*'9<* . -Q'&?<&MDS:4_P 4;=T>VVW&@RAC\H$B
M^;&1GU&T''M[4 =8M_9/)'&EW SR[O+42 E\<' [XP<_2EEO+6&989;F&.5_
MNHS@,WT'X5Y/IQTBW\#>&;R-K2.=-?0&8%0RK]I?(SU V'ITP:O:W/ID\_BK
MP]>:SIT+:C=1.)[V81M#\D? !^\% ^4@XR3TZT >H @C(.0:J6L\YEO3<W%J
MT44O[ORL@QIM!Q)D_>SD]N,5-:I;QVD26HC$ 0>7Y0 7;CC&.,?2O/[;^RGL
MO&MH;^.P@;5%!FAVXA++$ Q'3;OZ_C0!Z!;W=M>*6M;F*=1P3$X8#\J+F\M;
M*,27=S%;H3@-*X4$_4USOA&\OI[[5;;4HK22ZMS%OO[/(BN@5.TD=G  R/<=
ML5#XAO["+Q?:6=P8K>>73Y0ES/E@ZLZ@Q1IG#2' /<X&,'- '4RW,$$!GFFC
MCA R9'8!<?6L3PUX@EU:35Q=R6NRSOC;PR0G"NFQ&!R2<GYNU<5X=UB&VLO
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
M]BV;X1UD7!.0/P/M0!&GA_5X;NZ\O5K26TN9VF*W=AYLL>[^%7#@8 X&5.
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
MH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "N?\
M&6DWVJZ3 VF;&O+&\AO(HI&VK*8VSL)[9_GBN@HH XJ>U\37GB.YUBUTK^SY
M'T5K6 W$\;%)]Y9<A201G'^>*31=(UF+Q3IVK7&DF!?[->VNGENUDE\PNC;F
M(SG.TXP3_P !KMJCGABN;>2"=0\4J%'4]"I&"/RH Y;2M%>W\;:EY4RMID3B
M\2$#_5W4JE7_ /'06Q_TUS4 \/WP\3QZK864VEW#7S?;72=3;WEN"V&9 Q.\
MC;SM!!)S6]X;70H=-:V\/>1]DMI6B80DD!QC()/4].<FM:@#"\9:7=ZOX<DM
M;%%DG$T,JHS;=P257(R>,D*>M96N>&;SQ9<7-S-"VFC^S);.W29E9S)(02S;
M"PVC:!U).3TXSV55[N_M;$P"ZF6(W,PABW?QN02%'OP: ,'P\NL,4;4O#5GI
MDL"$22PR1N;AL8^0+]T'K\Q'8>XQX_#.M7'@QK(VHM=0M=4;4+=))5*2GSS(
MJDJ3C@X^M=]10!R=_I=_K&K+J[Z?+;&UTZ:"*W>2,R2R2X[JQ7: .YZGVYIR
M^'M8E^'VBV45I&NIZ.8)!;7#J8YS&NTJ2"1A@3C\.E=Q52QU2QU)KA;*ZCN/
MLTOE2[#D(^ <9^A% %'0%O'62>[T2#1]RA1 CH[D\Y+,@QCI@?6J<VG:CIOC
M6;6K6U>]M+ZT2":.-T62)T)*L-Y *D,1USFNEHH X.+PSJEA+I,T=F9W&L3Z
ME=K'(@$0E#@*-Q&<;AT]#79ZC:?;],NK+>8_M$+Q;QU7<I&?UJS10!Y_'IOB
M9]$\.Z7-H@$NBWMN9)Q<Q^7+%&I4,O.[D8X('X]K%AH^M:7J-_I_]@V5[:W-
MU+<6^I22)^Y$C%BKH1N8J2<8Z\#(ZUW%% ''7&F^(8M5\67FFV_DS7]O"MA.
M[H07C1@<C)QUXR/K1HNDZI!XQCU:32?LMO+I@MY3)=++*) Y;+D9W$],Y/ Z
MCI737FIV.GR6\=W=1PO=2B*!6/,CGH *EN[2"_LYK.ZC$D$Z&.1"?O*1@C\J
M .8\/Z*]GXHU14F5],M)VEM8@/\ 533*&D'X=1CM*:J:!H^M:0YT:;0;*>WA
MG8PZLTB9,1<M\R8W;P#CTZ<^O7:=IMGI-C'96%NEO;Q_=1/\\GW-6J /.[K0
M?$5OX;\1>&X=+^UQWLL\MG>+<1JI$C;MKAB&# D\X(/J*[R%97L$66,1RF/#
M+NSM..F:L44 <+I_AW5;CPMHGAV]L6MAIT\+W%P949'6)MP\O!+98@#D# S]
M#=U;19)O'%I):S*D-];_ /$RAQ_K$A96C;ZY;8<]5)]*Z*_U2QTM(GOKJ. 3
M2+%'O/+NQP !WJ+3=#TS1Y+F33[..![J0R3,N278DGJ>V2>.G)H L:@)&TZX
M6&(RR-$P5 0"Q(X&20*XZWT36(M&\'6S:<_F:1*C70$L?RA8F0X^;GE@?I77
M1ZG8RZE)IL=U&]Y%&))(5.612< GTI]C?VNIV<=Y93+/!)G9(O0X)!_4&@#B
MM4\,:QJDWB8Q6_V9[NZM;JQDDD4I(T*H-K!22,E#V[CZ5KO8WVJ^(M,UNYTZ
M6S&EV\X$#21L\LD@48!5B-H"GDD9)'%=-10!P5KX8UD_#/3M*^S1PZIIDD<J
M0SNK13,C[MI*D_*P)'/?\ZZ+P^+Z3=<7FA6^C?*%\E)$D=CW)9!@#T]<GI6W
M10!SVIV&HCQGIFK6MJ+BWCM9K:;]Z$,>YD8-SU'RGIS7/W&@:Y-X0US3QI;B
MYOM7:[A3SH\&,SK)R=W!PI_'%=M%JEC/J4VG174;W<"!Y8E.2BG@9]*MT <!
MXDT?Q)K4&MVTFF"X\UHGT]WN45(D&TE-F3B3(;+=#G[V !6M#9ZHOC&_U233
M)!!<:;% A26,_O%9V(Y8'^(#/M74T4 87@JPO-*\(:=IU_ 8+FUA$;J65AD=
MP5)XK(M= OX?$L&JV-C/I4DES(=259T-M=QX;#! Q/F$[#G Q\V<]^THH Y#
M1[+6M.TG5(/[,837VJSRIN>)@D4KYWD;L$@$_+W/'2H],T#4]+TS6?"\-NS:
M4\,BZ;<O(N4WJ<QL,YP&)P<=#79U%=74%E;27-U,D,,2[GD<X"CU)H Y.ZTN
MXG^&:V>I1#3KO3[2-HI/,#F*6%05?*_[2]!G@^^*W]!M+BUTF(WNW[;/F:Z*
M]/,;D@>P^Z/9152]C\-ZI<:-JEXL$\DI!TV1\_,67>,#IT7/(XQZUNT <Q;6
MKZ?\2+Z=_P#5:K8Q&-CTWQ$AE^NUP?S]#5!O#6HP>']<\-Q6HE@U&>9K:Z+K
MLC68Y.\$[LH2>@.>.G..RFMXKA5$J!MC!ESU4CH0>QJ2@#E[;1KSP]KE[?:?
M:O?17UI#&R^8JLDL*E5)W$?*RD9(R05Z<UG:GX?ETCX5CPS$XGO+I1;*5'#R
MROER/899OHM==9ZI8W\]S!:74<\EHX2<(<[&(S@^]3F")IUG9 9$!"L>=H/7
M'I0!FZWHQU3PK>:+#+Y;3VC0)(>QVX!/MZUSJ6OB2^O/#$MUH?V=]*E;[4YN
M8RC9B9-R8).,G." ?;O7<44 >??V/XGNI-*N;[2TFOK'53--<-=+B2+$@7RQ
MSM0!ER.#QT)R:U-5T5YO'-K):S*L%];YU*''^L6%U:-OJ2VPYZJ3Z5TM]?VF
MF6<EY>W"6]O$,O)(< "JNCZ1I&G)+<Z5:QQ"^;SI)%SF0GG.3SCDG'09- '/
M>)] O=3U&>\T^QGM-4A5!8ZI;3H@(XRDJELLH.>-IXZ>_0Z\FJOX?O$T>1%U
M(PD0,V -^/?CZ9XK2HH XW2-,U2V\6+JS:*T%O+I@@D#W:R3>8'+?,<_,3G&
M<XP.HZ53C\/:T_PS71VL-FH07(G$33)B0"Y\W 8$@?+QSCG\Z[/4-4L=*B26
M_NH[=9)%C0N?O,3@ #N:MT <7?:?K5MXF?6(?#]OJEOJ%O''/;R31K):NF[!
M#-P00W('<=^]J+3-3C\9Z=?OIZ"VBTZ2WE:!D"1N[JX !()4;<9QSZ5U5% %
M#6X7N-'N(4L([_S %:VD( E4D;AD\ XSCWKCY/".J_\ ",Z_I-C]H2SGCC.G
M6=[.)&B93N90P)PAPH )..:[^B@#A[_1M:\1:S<37.F?V?;7NB36#%[A'>)W
M8')"DYZ=B>W/8:GAZY\3?9(+;5M'CM39Q;9)4N4D^U$+@; /NY//S$8Z=\C5
MU+6]-T@;K^[6  !F)!(12<!FP/E&>,G J235;"'4+?3WNHQ=72LT,.<LX R3
M],=Z .)L] UNW\(^&K!]+<W.FZFES<(LT> @9R<'=S]X?D:ZOQ.FK2:!<KH>
M/MQV[!O"%EW#< QX!*Y /8UK44 >>W'A[66_X2<V^BB)-9TM((5-TC,L@613
MO)/)^<$G)^I-:IL-4.N^&KS^S)1%I]G-%<?O8\JSK&!CYN?N'IZBNHN;F&SM
M9;JXD$<,*&21ST50,D_E2PS1W$$<\+AXY%#HPZ$$9!H X&#0-<B\&:5IK:5)
M]JL]76[D0318\L7#2\'=UPV,>OMS70V%C?1^.=4U&6S9+2YM((HY2Z'+(7)X
M!R/OCMV-=#10!S'AKPY=:1=WT,[*;"&61=,53RD4I#N/P;Y1[+[UG^%M)UO2
M8K;1KO0+$QV+!4U4.A\V)3Q\F-P?&!S@=\]CV]% ')Z)IVIV>D>(HKC2@TEW
M>75S;PS2(4G63[J-@G&>ASQS6;'X?U_2;+5$\-)<V5M+;Q_9K&ZN4<QR[_W@
MB;+!!LR!D_>.>U=]10!P8T+5UO-?GAT7R8M4TI((U-TC.) )!AR3RWS@DY(Q
MW)XK>LM(%YX&@T75[<P@V*VTZ,RG;A I(()';(/TK>K&\1P>'[I+*WU]8'5[
MI1:QRD_/*?E  '7[V,'CGF@"MX)MKU- BO-2G6XO+I5+3 $;HU&V,\^JC>?=
MVJ'5;'5;/QI:^(+"R.H6[V1LKBW25$>,;]ZNN\@'G((R*Z< *    . !2T <
M#:Z7XILK&94T\A)]=GNKB"&[19);=V8C:^0!SM)&02...147_",ZW'H>KVL6
MF0H[ZU'J%O%'.N)$#QL5'0 X0CG%>AT4 <7>:=K5IXGFU6'P_;:K;:E#$)87
MGC5[61 1U88*D$9QW'Y[4=_?66IZ=I<NF1^1<0L7N8)0$BD )V!,9VX'WO<>
MM;5-\M/,\S8N\C;NQSCTS0!S_BRPOKZ71&LK1K@6>IQW4VUT7"*K@XW$9/S"
ML35O"^KZM=>*!%!]G-[):SV4LCJ4=X O# $D E?3_"NRO-4L=/EMH;NZCADN
MI!% C'F1CV JW0!S?]GWNL^)-'U>[L7T]=+AFS')(CL\DBJN!L)&T 'DXSQQ
M6$- UY?AM%X?;3,W5O<1 %9T(D5)Q(6Y(P"HXSSGL*]!HH Y!;;Q#HOBG4KJ
MPTI-0L=7,<N6N5B:VE5 A#9SE2%!^7)'H:BO=*UK3_$\NHPZ-:Z[;ZA!$DX:
M1(F@E0$;AO\ X2#T'/\ 7J]0U&STJRDO;^YCM[>(9>20X J='61%=3E6&0?4
M4 1644D-E%'*D22!?F6$813Z+["N*@\.:K<>#3X2NK$PJUTS2WGFHT9B,YER
MH!W;L< %1SSFN\J"\O+;3[22[O)T@@B7<\CG 44 <SXFT:2[\2Z9+9S+&UZC
MV=_'_P ];4?.3^!&W/\ TUKK.G K,TK2M'@FFU?3;:-9-2 FDG&<R!N<\] >
M#@8K4H \]&@:^G@J#0SI>Z:UU)90ZW"8DC%P92PR1CC P><YX%6]=\.:IK>K
M:WY=NUO%?:;#!!.[H5$L;LX# $G!) Z>M=O10!SOAU=5ED634?#EGH[1H0[1
M2)(96_V=O1>IY.>@I/%6C)K4MI#/I<]S%&LCI=6DZQ3VLOR[2A++U&[/7H,B
MNCHH XRSTKQ FL^&;K48FNWL+.>*[N5D3EY-F."03@+R152VTSQ-9PNL>G2F
MWFUNXNKF!+F-'E@D+%<,&XP2"PR,XQR,UVT-_:W%Y<VD,RO/:E1-&.J;AE<_
M458H \Z;PWKL6@:A81Z0@:37%OH4AG3;Y7F*Y SC& N![]A6QXCTW5!K]CKN
MGZ3#JJ"V:VN;&:1$906#!U+?+D'(/-=%<ZI8V=W;6EQ=1QW%VQ6"(GYI"!DX
M'T%6Z .1GTS59=<\-WHTJ***SFGEN([>1-L(>(HHY(W'G)('KC-9T_AK6KB'
M49H[3RKB+7TU:T225-LZJJKL)!.TD*W7U'OCNY)XHFC21PK2-M1>['V%1_;[
M/[>+#[5%]K,9D\C>-^T$#=CKCD<T 80TZ\O?$Q\02V,ML(-.:UBMW>,R2,S!
MB3M8J , #GJ3TQSA6/A_7]+TKPG=Q:?YUWH:2P7-EYR R)(H!9&SMR, @$C/
M/2NPOO$6BZ;?16-]JMI;7,V-D4LRJQSTX/K5N[O;6QB$EU.D*LVU2Q^\WH!W
M/L* .#O/#FOZA+KEVFGQ02RW]M?V<5Q*K+-Y:*IC?;D#."/K[<U>U/3]8UGP
MAJMLOAR#3+FZMC#';1S1,[,>K,PPH4=N2>M=0VKZ>%M2MY WVTD6V)!B8@$\
M'OTJOI?B&PU/28-0$T<0DBCDDC,@)AWC(#8Z?C0!>LC(;*'S86A?8 T;$$J<
M=,@D?D:GHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH
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
M2>XA=PI,:" N'8+G)SM&!GC=WQS1\2^(M7BT/Q5I;SQPWNFVRS1W4,9'FPR
M]B3M88()_$ =M:W\#K;Z=9P+J3BZT^[DNK2Z$0!1I"2ZD9PRG<01QQCFK=UX
M2M[^QU>*]G9[C6(A%<3QKMVJHPH13G &2>2>2>: - 7+Z=HCW=](LOV>!I9&
MBC* JH)X!)[#UK$T[6?$=W>:9/\ V>LMA>Q%I\($^S97<A#;SO'8\#UXZ5OV
M]B5TP65[.U[NC*2O(H7S 1@\#@#'%8FD>#YM+A%C)KU]=Z;$I6VM9 @\I2"
M"X&YL \9X''H, %6P\3:F^N:3873VDAU**?S5@C8I;R1@'"R9Q(.H..X[=*A
MLM3U_6=!U2ZO)+!;6$7ML\<4+AW*%E5@2Q ''3GZ\X%NP\$26+:,W]N7,AT9
M7CM@88P/+9=NTX'/ &3UX[=:N:=X:ET_0]0TL:AY@O9)I/,,(!C,I); SSR3
MCT]Z ,C2]6O=-\.^!8+?R#!?PV]O-O0EP/L^X%3G ^[Z&I[GQ%KUTEW<Z'IX
MNEL[UK<6QC'[X(^R3]X7&TY#$<8X'7/%L>$Y!9:#:C4?ET-D:(^1_K-J%!N^
M;^Z3T[TT>#I(-6O+BRUN[M+&_E,UW8HJ%7<_>*L1E-W?'/N., #++4_$%_XH
MU33TET^.UTVYA#%H7+R1O&'('S<,,]>1["D\53ZDGB3PU;V=ZD$4]U*'1HMP
M8B%R"?F&1[<<\]JT]-T.33]<U/4S>>:-29&>+RMH0HH5<'/H.??TI=:T(:O<
M:?<I>2VEQI\YEBDC56SE2K A@1R"?I0!R,]YJVFZIXYU'3)+1/L3Q7#K/$S^
M:$ME8J,,-N0#SS]*V=:\0ZC;VIN;5[:",Z;]KB5T::223!)4HI!" 8RW^T.1
MCF:7PC)*GB!#J7&O+LF_<\QC9Y?R\_W?7OS[5&W@MFG:3^V)T$VGK87*I$G[
MU%W!2,YVG#'..OM0!$?$6L7NH:!!9?8X(]9TY[HF6-G,+!4/9AN'S]..G6M/
MPIJUWJVES-?B+[5:7<UI*T(*HYC<KN ).,XZ9JK9^$I;.ZT6==5>7^R+5K:,
M20K^\5@H.<$=D7'TYS5_0-$?0XKN-KO[2+JZDNB3'MVM(Q9AU/&3Q0!R$\^I
M7'A[X@&\O4GCA-S$J^45*XMU(P=W  /3'7G-:5AKFI:3>Z1::@]K)8WNF23(
ML,3!X3$B$@L3\^0WH.15ZY\'^='KL,6IS10:WN,L7EJPC9D",P/7E5X[#WJ5
MO"[R7^D74U\KC2[>2W$?D<2JX56W?-Z*.GO]* *>FZYXAOYM)O$T\2:??H'G
M4(%-NK+N1@^_Y^P/'/48Z5JZQJTMIJ6F:7:[%N=2D<+)(-RQHB%F.,C)Z #/
M?/;!I:'X2FT1DMUUR\N-,MVW6UC(J8C] 7QN8#L,]AZ5;\1>'5UZ.UDCO)K"
M]L9?.M;J$ M&V,$$'@@@X([T 8/BTZK_ ,(E(FK+;F1-6MEAD@R!)%Y\>UB#
M]UN2",]O>M3^U]2U74M8L](DMH3I96,&>,OYTI3?@X8;5Y ]<Y].5O\ PM-J
M.C"PN=7EEF:XCN);EXER[(P90%& JY4<#W[DFI3X=E@U>[U/3]0-I+J$:+=K
MY0=791@2*"?E;''<=,@T 8?_  G_ )^FZ1J$A72[/4;=V-U/"TL4<X8+Y;$$
M;1D-R<9QVK0FUW5)[HZ;8B,W<%C%<32I%YJ&23=M &]?E^0G//!'2K0\+K:V
M,6G:?<K#8):?96MIH1,CKS\QY'S<GV.>0:J2>!UMY=/N-$U>ZTNXLK1;,R*J
MRB:%>@=6&"1S@^] &QINH7;>'HM0UBS^PW*PE[F ,&V%<YP03QQD<]ZYZ3Q7
MJ=OX>TSQ/,MNUA>R1>=;*AWPQ2L K!\\L,KD8P><8KJ[>RC@L1:,SSKM(=I3
MDR$_>)[<DGVYK"M/!T=M86^DR7SSZ5:3K-!;NGSC:VY49\_,BM@@8!X )(H
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
MLL;D*2>YVX'X5TM8_A?1WT715MYRK74TLEQ<E3D&21BS >PSC\*V* "BBB@
MHHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "B
MBB@ HHHH ***YSQOJDVEZ/:F.5H$NK^WMIYU.##$[@.P/;CC/;.: +R:X&\5
MOH)M'5EL_M0G+#:PW[< #GKGK6K7!7D5IHOCO4IUNI;2%?#C2/+N,AAQ*<LH
M.?3..Y^M+HQF_P"$NM;!WN$M+W0VE=)+MFDD(=%$C8/RN0QSM)Z]: .\HK@M
M$:X>3_A#;NYNGO+"],LMPTS^9+:@[T?=G/S$K&1G^]Z5L?$226'P'JT]O<36
M\T4.])(9&1@<CN"* .EJ"\EG@LII;:V-U,B%HX X0R-V7)X&?4UR4^GS:5X[
MTJ*TO[Z:WU:"X%]'+<NP^105D7GY#E@/EP!D8 K#L;25OA%<:\^J:FVH'39O
MWIO9.JNQ!QG&>.O4Y.: /3D+,BLR[&(!*YS@^E.KCTN7U'QA:Z+>/(+1=&6Y
MC02,HFD+[6)((SM '';=GTK"-QJ,NG6EK-J-Z%M?%/\ 9\4ZSL'FMP3PQS\Q
M!RN3DY6@#TVHK>YANHS)!(LB!V0LO3<K%6'X$$?A4%EIL%AIJV$<D[Q*& :6
M=G?!)/WR=W?CGCBO.=%N#I/@/0DMY)88]1U@VMU(LK92(SR].?DR0%)&.OK0
M!ZE17+6)GT[XA3Z5;22MIT^FBZ:)W+B&42;!MST##/'JI/K3?%K:E#?175M:
MMJ5E!;M]JLH+@Q3ID\2I@C<1M(QG/IUH ZNBN+T^[CN/%6@M:7ES)97FAR.!
M)(P\W!BVL5SC=@GGKR:RM'UB1DT33[J^F-E>ZK?Q/*T[$OL9_*C+YS@^F>=H
M'0XH [37-;&B+8L;5YUO+V*TW*P C,C!0QSR>O;]*U:X3Q'81V6EV=E#J5Q.
MO_"16A!D?<UMND4B-2>PSD9SC/I6CX<1K+QEXATR.>X>UBCM9HTGG>78SA]V
M"Q)YV@]: .JHKDO$LB7.L364<\\DT6F/,;<3&&*$%L"4LO)?*D 8XP>F><BT
MFNM5?P*USJ%X#?6$INA'<.GG$0J<G!ZY)Y&#SUH ]$HKS&66ZB\+WMO'J%Z@
ML/$JVL#BX8N(C-&-I)/S##'[V:OWT4FG:AXLT^WN[SR%T=;R,/=2.T<N)065
MB<C.U3U[4 =_17$PW<IUGP0WVR4FZL93,OG-B7$"D%AG!Y).35"QOY#JOAB]
ML[RYFMM0NKA&N9YSNNTV2-S']T*"!M[@ <"@#L-#UL:TVHK]E>V:PO6M&5V!
M+%55MW' ^_\ I6K7,>#?^/SQ/_V&Y/\ T5%5:\M/M_Q(EL)KJ\%I+HPD:&.Z
MD1=WF[<C:1MX Z8SB@#L**\OL'ND\*>&]:;4;Z2]&K1VA=[ERK0FX:(JRYVG
M*CJ1G/>M!OMGB(:Y(NN)IEWINH.BR9?=;1H1M.T.%*LHR<CG)ZXX /0*B^T0
M_:C:^8OG!/,*=PN<9_//Y5Q$PN_$M]X@LSK"Z?=6$ZK"VYU>VC$:,L@ <#!)
M8G/7H> *FTNR@E^(E]++-))(^DVKM*DCQ[V+2 G&>.V!VH ZZQGN+BT66[M#
M:2EF!A,BN0 Q .1QR #^-6*\RMYKN;P/X:D.I7HF?71"\PN&WR(;F088Y^;@
M#KGI6@&OM.G\;:?IE])']EM89[5KJX9Q"[QN6.]R<#*@\G - '>T5R&D6-W<
M^(K"^@74+?3TT\?:(YYI$#7&1MRI/S,!NR>0>.M:7BFXCCAT^!KB='N;U$CA
M@;:;@X)V,W\*\9)]!CG." ;M%>8/<7HT>[A-]<0M:^*HK:+R;IVV1LT1*9/W
ME!<\,/PJUJNH7GA:7Q>--GN)%M]/M[F%)YFF\J1RZLX+DGL#CIQ0!V%[K@LO
M$.F:0UJ[?VBLI6?< J[%W$8ZD\BM6N(N;&TMO''A&>TGEF6:&Z_>/,TGFCRE
M(?DGDYZ]_P !6AX\,J:7I[P74]LYU2U3=#*4RK2J"".A&.Q!% '3T5YSJU]?
M>&)/&"Z7/<R"WT^"ZA2>9IC%(Y=7<%R3T4-CIQ6I?1G3M=\.'2[JXFM]3+P7
M*-<.XFC\HL)<D\,,9W#!Y^E '6V]S#=1F2"19$#LA9>FY6*L/P((_"L]=;#>
M*GT(VKJRV?VH3EAM8;]N .O7UK&^&5M#;^#H6CW!GGN P,C$ +/(!@$X'X=:
M==31V_Q)FFEE\I(] 9V?&=H$V2?PH ZRHH+B&ZC,D$BR('9"R]-RL58?@01^
M%<'I,TPU[PV([BZ-KJFGW!D>:Y8R70"HRR.N<(WS$C!R <<8Q5+2;I=$^'&G
M2V\YMDNM3-O<3-*^V*/[3(,]?E' 4D8ZYSGF@#TZBO.?$VGWND:)K$L6O2@2
M-:RPV]N\B_9\RJC$$N?E<$_*>,@X[UW6FZ;#I<,D4,MQ())3*3<3M*03C."Q
M) XZ=.30!6UG7X-*T?4M1CB-V=-4F>*-@"I"A\$G_98'\:T+:;[1:Q3A=OFH
M'QGID9KS;[';V_A+XA.F\,+J[0!I6(QY,9Z$X)SWZUJ18T3Q)I+K?W207FD3
MR71EF:1<QB,APIR%(#'[H QVH [JBO/M(N)D\0^&A%<7)M=3T^X:22:Y8R70
M"QLLCKT1OF)&#D XXQBJ%J+B'PMINL#4K][N+7?(5I+IV!C-VT95E)PP*GJ<
MGWX% 'ILDB0Q/+(X1$4LS,<  =2:RKGQ#'!K>DZ:EL\B:JDCQW 8!5")NZ=>
M1CTZU7\>PI-X#UM7!(6QE<88CD*2.GO6%=V,+ZSX)M%DF2-X;G<4F;?S I(W
M9R/P(]L4 =[17FL.J7.G67]FM?O'9CQ)+8^?<2NQCBV%T0OG=@M@9STXKK?#
MNFW&EWFHP2ZH+J)W26*V 8_90000&9B<$C(';\: -VLJYUL6WB6RT5K5R;R&
M659]PVC9MR,=?XAZ5C2.FN^+-=T6]NYK?[+:P_9%BF,;*'4EIEP>6#8&><8'
MJ<I*5_X3/PF%NFNP-.NP+A\9EXA^<X]>OXT =?17F9U&]NOAH?%<=U<)K<4Y
MD($C8#B;9Y!3.-N/EVX]#UYK2U"[O-/U\SZG#-/IMQ?PB"_M+@YM&RB^3+'G
M[A88R,CYLD9Q0!W5%>?1_;/$-MJ=XNN)IUYIVI2J7^<M;K')A5*!PI5D [<Y
M)Y-=)XVU.\T?P;J>H6&?M,,.48#)3) +8]@2?PH W:Q!X@FN+YX[#3GN[:"\
M%G<3)( T;X!+!3U5=P!.<]>#BLJ\1M,\2>'?[+N9Y;?4O,AN8VG>02H(RXER
M2<,"/O#D[L>E.\!V4$$FO21^9N76+B,;I688&WL3C/OUH V7UP)XJBT$VK@R
MVCW(G+#:0K*I '7^+OBM6N-UK3XM3^)%C:SR3I$VD3[_ ")FB9AYL?&Y2"!]
M"/RS6+:W%_;6MC ^H7<L=GXJ^PP3O,VZ6WP?E<Y^?#97G^[0!Z95>_FN+>QE
MFM+0WDZ+E(!($+GTW'@?C7&R-?3ZKXQLM/U$Q2JUH+?SIVV([KRHYRFX\<>M
M9FL:G))X)\4*(-0T?5+)(WFM_M3$1$\ QN#RC 'CUSQ0!Z9VI:X_4+3[?\25
ML)KN\6TET9Y)(8KJ1%+"5!D8(V\>F,XY[UBZ3K%Y-HOA>PNKXB.\FO(7FN';
M]Z8G98T9@03D#UY*CK0!Z517"S:=K>G68M;+48]9:WOWE;3Y)6B+0E/]2)"Q
M)*[@PW'N,]!40O;R]T;3+O1;:XO88'NOM6E7=PT=RV'P<,3RT9) !/.1WQ0!
MW]%97AB[MK[PW8W%F]P\#1 *;G/F\<$/GJP((/TKBFO[R\^'%WXH6[N(=:M[
MB63B1L1LDQ40[,XV[0!MQSG/7F@#TJBN"FLWU+Q%XG@N;R_CCCT^VF2&.\D4
M12%922,'C!'3I[=*Z7PI=3:CX/TBZNI&DFGL8GD?."S%!D_6@!NO>)8-%T2Y
MU2*%KU+:412+&X&UBP4Y)]"1G&:VJ\GDM(+?X6>(/*+J3JDJ &1FP!=@# )(
M_'\ZW=0GNO#OB+6AIT]S-_Q('O1%/,TH,Z,P# ,3C(QP,#@<4 =W65KNN#1#
MI^ZT><7M[%:;E8 1EVP"<\G\/TK#T.SDDO='UJWU]'MKF!EDA4N_VPE,@G<Y
M 92"<@>HJSXZ_P!1H7_8<L__ $.@#J*B%S"UT]J)%,R(LC)W"DD _B5/Y5Y_
MXDOI!#JNI:?>7,DEEJMO$9VG*"%M\2M"B#AEPQW9QG=WQ5DHMCXU\6:C;([W
M-OIL$\2^8Q#OMEP",X/0 #MVH [RBN(T2SEOQHNM1>( 8;F$I/&CR$WA9,X/
MS_*ZD$Y !&".!4_PZLC+X>LM8N+V]N;J6*6)C-<NZD>:V#M)QGCKUY- '852
MU?5(-&TR:_N=QCBP-J]69B%4#W)('XUAW-P=1^(#Z)>-(MI%I@N(HED9!*YD
M*LQ((SM   [9SZ5R^J-<WOP]U&*_FFN/[/UL6EM.\K;I8EN8U!8Y^8CE<G^[
MGKS0!Z'I]Y>W,MS%>Z<;1H' 1UE$D<RD9RIP#QT(('XU3U?Q)!IEE;7<,+7D
M4]ZEH6C< (QD\LDYZX;/3TK42UB2T^RC?Y>TKS(Q;!_VB<_CFO+K.UBC^%>B
M^4\B/+JL )\PMMQ=D @'('Y4 >KT5YWJ-[=>&KOQ;%I]Q<M'!I\%U&)97F,+
ML75W&XD] &QTXK<TC3Y(-<M]1@UN.6TN[4@6L9>19R,$2@L[8(!P3WR,\XH
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
M80^:8BQ;&UAC((ZC&1U]1ZU>O]8T_3$WWER(QL+G"EL(.K$ '"CU/% %>_\
M#&A:IJ,6H7^E6UQ=0@!)9$R<#H#Z_C5B;2-/GU%-1EM(VO(XS&L^,.J^@/XG
MZ9-)<:SIUM;1W,ETC13)YD;1@R;TP"6 7)*X(YZ<BJ-UXNTNWOM*MHYO/&J!
MGBEB!9-BJ3NR 0>0!CWSVH F'AC119PV8T^,6\$OG11 G:DF<[@,\'))S[GU
MJMKGAQ+C3]2?2[:V&H7\8CE>X+%9DR,JQY_AR <'&:DBUS3K=M5N[C7X);:V
ME4.#M"VAVC*;AU).3SSSBK5EK^DZC?/8V=_#-<QIYC1JW.W.,^_/!]#0!S^A
M^$XK74K>]BT"#1&@8EC;WK2&08(V[0 NWG.3Z=.XZ74M)T_6+=;?4;2.YC1Q
M(JN/NL.A'H:KR^)=%MW59]2MX0[LB22-M1V4X90Y^4D'J <C!K2=UC1G=@J*
M,LS'  ]30!DMX3\/MO']DVRB219&"IM!91A3QW&.*LC1--%Y-=FT1I[B/RIG
M<EC(G]UL]1[&DMM=TN[F:&&\C,@C\[:V5W1_WUSC<O\ M#(J.P\2Z)JEREM8
MZG;W$LB,Z+&^=RJVUB/H: (K3PCX?L9K>:WTFW22V),#$;O+SUVYZ?T[5>U#
M2['58DBO[=9XXW$BJQ. PZ'ZBJ=_XDLK#7K+1I-_GW:/("$8JJKCOCDDD<?G
MVSCZ#XLABDU*WUW5HA-'JTMI;[U"?(-H4' XY)Y/4T ="FC:<E[+>BU4W$\?
MERR,2Q=/[IR>1[4EAHFFZ8RM9VBQ%%*1\DB-3R50$_*.!P,#@4:AK>FZ5G[=
M=K"%4,Y()"*3@,Q ^49SR<#BK;3QI 9RX,87?N7G(QG(QUH KV.DZ?IC3M8V
M<5N;AS)*8UQO8\Y/YG\S2/I%A)J)U%[96NFB\DRDDDQ_W/\ =[XZ9YJEHWBG
M3M8T4:LCF& NRCS%()^<JO;DG X&3DXJ7_A)]$%F]VVI0)%'+Y+ESM99/[A4
M\AN>F,T -M?"GA^R>W>VTBUC:U8O"PCYC)]#_G%2IX>T:.UN[5=,MA!>L6N(
M_+&V4DYY'U)/UJ+_ (2G1&M[Z:*_CG73UWW B!=E&.#@=<XX(K$O?%<DJ^&-
M2MKL6MEJ$P%U'(@P%,+28+,.,8'(H V8?"/A^WTMM+BTJW2S=P[P@'#L.A;U
MQ@8SZ5KQQK%&L: A5  R<\55TS5K#6+9KC3KI+B-',;%?X6'4$'D'I56\U-C
MKMMHEJVV>2%KF:3&?+B!"C&>[,<#V#4 /F\-Z+<27<DNFP,]\ +D[<>:!CAO
M7H/K@4XZ!I;3P3M9J\EM&8H69B=B'@J,GH1U%4=5U/4+/Q=H5C%)#]BOS.)4
M,9WY2,L/FSC&?;MUI+G5+J]\6-H%E.;9;>S%S<3JBLVYFVH@# C'!)X],8H
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
M34U>P?4ETU;@?;&B\X0E2&V?WNG3MGUXZUS^H^)U@\3:*8M21=*NH[KSPR
MM$% Y(SG+$8'<8H UKCPIH%U-<S7&DVTLEUCSF9,[R,8)]^!SUJR-&TQ=0CU
M!;&!;J*(1)*$ *H.@'MR?S-4;[7M-N=!2_M=>@LX9I%2*[ 5LL'&4"MU)P5Q
MC(S[5>O]:TW2R1>W:0[5WOD$[%SC<V/NKGN<"@"M8^%=!TR[GN[#2K>VGG!#
MR1+M.#UQC[OX8JYIVEV.D6HM=/MDMX 21&GW03UP.U8%UXC_ +-\:/#>ZE&F
ME'2Q<HI4??\ ,VY! RW Z?6NDM+NWO[2*[M)DF@F4/'(AR&![B@"&^TFQU&2
M&6ZMP\L!)BE5BCQYZX92",]^>:CN="TN[T^/3Y[*)[2,@K!C" @Y' ]^?K56
MZ\8^&[)G6YUJTC*2^4V9 =K\9!QTQD9],\U>&JV)O6LA<*;A8?/\H EC'TW#
MU&3CB@"TB"- BYPHP,DD_F:R_P#A%M"\DPC2X%C:?[055<#S,Y#<=P22/3)K
M*UKQ*L4V@7]CJD(TR[O'BN'PNQE5)"?F/3#)4NL>);>[\%ZMJWA[4XGDLH)&
M$B -L=5)P5/3\10!L+HVG+>S7OV53<3Q^7+(Q+&1/[ISU'M46D>&]%T%I6TK
M3;>T:;[YC7!/M]/;I5>#4DEO-'ADU=([F:V,CV6U2UQE0=WJH7D\8!S5M]=T
MN.]2S>\C69Y/*4'.TR8SLW=-W^SG/M0!)=:58WMY;WES;K)<6I)@D).8R>N/
M3/?UJLWAG17M[JW>PC:&\D\RX1B2)G_O-SR>G7T'I6A=75O96TES=3)##$NY
MY';"J/<U2'B'2?L]U.]]'$EEC[1YV8S%D9&X-@C(Z>M #_[%T_[<+_[/_I0B
M\D3[VWA/[N<YQW^O/6JTOA+0)])&E2Z5;O9*_F+"1\JMZKZ'KT]3ZU):^)=$
MO;HVMMJ=O),(?/*AOX/[WX=_3O4=OXL\/W4UM#;ZM;2/=LRP!7SYA!((!^JG
M'KCB@"9_#VCR:7%ICZ;;FS@8/'#L&U&!R"/?D\^Y]:EATC3X+Z2]BM42XE01
MNXS\RCHI]AV':F7FNZ7I\K1W=Y'$4V^83G;%NZ;VZ)GMNQFI3JED+][#SQ]J
M2'SS%@[C'D#<!W&2!QWH JZ7X8T/1+F6XTS2[:TEF^^\28)'7 ]![#BFKX5T
M%(TC33($2.?[0BH"H63^^,=",G![9.*?_P )-H8MK:X.JVPBNF9(6,@ <J2&
MQ]"#GTQ4EEKNE:A93WMK?PR6]NS+-)NP(R.3NSTX]: )+?2K&UOY[^"W"75R
M )I<DF3'3//..WI4&H:69M1L]5MMHN[0,F&X$L3XW(3]0I!]1[FI+?6],NOM
M CO$!M5#3K)F,QJ1D,0V" 0#STJ-?$>C%;EFU"*(6B!YQ,3&8U/1B&QP>QZ&
M@"U]@M3>"\:'?.H(1W)8IGKMS]W/?&,T7FGVE^(_M,6\Q$E&#%60D8.&&",C
M@^M44\6>'WF6%=6MM[0^> 7QE,9R,^Q''6I[37=*OM.;4;:^BDM48HT@. K
MXVD'D')''7D4 7(((;6!(+>)(HHU"I&B@*H'0 #I3;O[2;9UM"@F885G^ZG^
MT1WQZ=_;K5!O$^B1V=Q=RZE#%%:N(YS*2C1L>BE3@@GL,<TJ>)-&E>\CBOXI
M7LDWSI'EF5?4 =>F.,\T 6-)TRWT;2[?3K4'RH$V@L<ECU+'W)))]S5RLW0-
M:M_$&CP:E;*RI.@?:P(*YY _+TK2H **** "BBB@ HHHH **** "BBB@ HHH
MH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ KFO'D-[)H=O/96\
MET+._M[F>WB&6FB1PS*!W/ ./:NEHH \_O;\WWBN^U*PTJZOH7\.O&B2V<B)
M,^]F\L[E'4<>_(HT&2:7QEI-\;>_:&31Y("[V3PQQ2;XVV!=HVJ #@GKC&2:
M] J.>/SH)(1*\3.A4/&0&7(QD>XH X_1M+NK+Q-<Z#L']D6<W]I6Y!^[YF[;
M%CT5Q(X^BUI?$#_D0-<_Z\I/Y5I:1I*:1;-']JN+N:0AI;FY<-)(0 !D@ <
M 8 _4DTFNZ1'K^B7.ER7$D$5TFQWBQNVGJ!D$4 <X8(M2\0^&;ZQA=(]*MY6
MN9/)9 B-%M$?(ZY.=O;:?;-#289$^#6H6ALKE+LVMY'Y+6SK(SNTFT!2,G.5
MKOK6$V]K%"TAD,:A=Y !./I4M '#6AN-.\1:)JMS!.=/DT46981,3;S!E8[U
MQE0P&,D=5%9=YIMQ;:>9WL[EK>[\51WT<"V[NR0!UW.5 )4'#-@COZFO3,C.
M,\TM "+@J"HP#STQ7FK6NI'PQ=VT%A=M/I^OM>S6YA8?:(1<&3"$C#Y&&P,]
M/<9]+HH Y6*(ZKX\L]9L5D6UM].DAFE:-D\PLZE$PP!.,,3Z<>M2>+K1+J?3
MRMY>:;=Q&1[:_MXS(D38 *R#!!5@>^/N]:Z:D) ZG% ' _:-1BD\):SK%A)$
M89+I+K[+;.VTNI"/L4%@&P#TX+<XJ@PU)+&]OX=*OG%GXG-_+;>0P>:#;C*#
MHQ!.< ]5KTZB@#@?%=Q;ZSX.U2YT[1KH->/; N;)UEN2LBDY7;N(51U/'7'2
MM.$EOB>9T@G$#Z,L0E\EPF\2LVW=C&=ISBNKI"0.IQ0!S?B>[DM=7T7%G,87
M>4/>P6IGDMCM&%4!3MWY(S@\#WR.2@AGB\-Z1:S:;?A[;Q,995>U=B(_.D;=
MP#D8(Y''/6O4J* /.-<262;QZD=G=.;RQA2WVVSD3.(V4A3C!()4<5J*<^,?
M#4T5M<"%--FB=_LSA4)\O:K''R_=/!]*[.B@#RVR:>'PMX>TEM.U W6F:U&;
MI1:2$1@2N=P.,,,'/RYXJ;6Y;N[COHQI=] ]MKD,WV>VLGV21+*G[\L%^=F
MS@'CTX)KTRB@#EM'9V^(&NRM;W$<<UK:+&[PLJL5\S< V,$C<.]'BM6?Q#X8
M98)9%AOFDD9(6<1KY3@$D#CDCK74=:6@#SVZB9K/X@A+*X+7B,+?%L^9C]F"
M#;Q\WSY'%1QS'3M5AN-5L-6FL-0TNVACEM4GS%)&&#1NB8;G=D9'K[UZ-24
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
MBNCHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ****
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
M+>03^0LSB.-8W#XW["68X] !QZ9(!MPWU_)I,UU-I9MKE-^VVEG4[L=#N7(
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
M$M4U&Z\2,9;>U&I/;36<R2%VCD@"[2R[0,$J.A-6Y])\0^(M O-/UU[*R>:
MQI]B9I 9,@B0E@, %1A1ZG)H ;)XVQ/=6D=G#)=1V3W<!CNA)$X7JK,H^5AU
MQ@@]C4*:W]H\/>%[K6M+^TRWT]KY<B.NV.5D!60C@@\MP ?K5ZRM?%%_IT]I
MKK:? 3;O#NM&9_.8KC>0P&T=\#.3W&,'//A[7W\.>'-/>.P\[2+JW>3;</M=
M(EV\'9]X]<8P/4T 6K[QG-;3ZU%!H=S.=&"O.?.104*;]PYY^7D#KZX[WSXD
MBN+RVLM.@^TW%S9?;E#OY:B+( R<'DEN!CL<D=\N?0-8DNO%;K'9[-9@6*V)
MG8%2(O+^<;..N>,UER6FJIJNE6%C%ITNI:5I2Q7*"]>%\,0!APF64^63C'!(
M/7% '7>'-=C\1Z-%JD-K-;Q2DA%F*[C@X/W2>X(_"M2L7PK(?['^R?V;%IXL
MI# (H)O.C. #E7P,_>P<C.0<UM4 %%%% !1110 4444 %%%% !1110 4444
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
MB,^RWU'1VNY(@BX20&/!4XS_ !GJ30!U54M5U>QT6U6YOY3%$SK&&",WS,<
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
M19ZYILEA?(6BDP<JVUD8'(93V((!S5ZJU_?VVF64EY=RB*&(99C^0 ]R< 4
M5;71([>Z:\DN[BZO##Y"W,VS>B9S@!5"\GD\<X'H*-!T.'P_IPL+:XN)H0[.
MHG*DJ68LW( ZDDU"VMSIXRCT)K:,0R6#W2SB0EB5=5VE<<?>]36Q0!F3:!;R
MZZ=92XN8+EK<0.(G 5U!)4D$')!8^WKFLV'P/:0:-INE1ZGJ ATRY%S V8BY
M<$D;CLP1ECV[UTM-E+K&QC56?'RJS;03VR<''Y&@# 7P5IT>KW%_#=7\,=W)
MYMQ91W&VWF?NS+C//?G![@UL:E8+J5DUJT\T&61Q)"P#J58,",@CJH[52\+:
MT_B#PW9ZM+ L#7*LQC5MP7#$=>_2KUU?VUD]NEQ*$>YE$42]W8Y.!^ )_"@#
M'U#P99:G97]O<7EX)-1:(W-PAC$CB/!1?N;0!CTSS3M0\'V>J:A/>7EY=R_:
M+ V$L64"-&3G/"Y#9.<@_IQ6]2T <_:^$+:UOH+]=2U*2[@MC:B:2<$LA((R
M-N."!V^N:=#X/TQ/"A\,S-/<Z?MVJ)6&]!G(PR@=#R#UK=HH Y[_ (0RV;1;
MO3)]5U2Y%W"8'N9YQ)*L9ZJI*X /?C)[G@5.?"\#:CIU])?7<CZ= UO&C>7M
MD1@ VX;.<[1TQTK;HH PK+PC8645O;)/=265I-Y]O9R.ICB8$E<';N(!.0"Q
M X]!A)/"&GW$^LO=37%S'K2JMS#(4V#:NU=N%!! ]S5CQ3K$^@>&[W5;>VCN
M'M8S)Y;R% 0.O(!_+]:U(VWQJW<@&@#GK;P>(;[3;NXUK4;R33%=(/.,7*L
M"&P@W<#J>?>ETGP5I^C7!:TO-0^RJYDAL7N-UO QYRJX[$Y )(!YZULV+WCV
MVZ_BABGWL-L+EUV[CMY('.,9]ZS_ !1K<^@:/_:$%M'< 311L'D*X#NJ9& <
M\MTXH ;9^%[:RTN]TZ.]O#'>2O,SEU#QNS;F*D*,<\]\5:LM&AL[^;4'FFN;
MR:)(6FFV@[%)(&%4#JQ/3O["M"B@#,DT&)_$)UQ;NYCN?LWV7:I38$SNZ%3S
MGG.?TXJA!X)T^WTVRLXKJ\5M/F::TN=Z>;"S$E@#MP0<G((/7Z8Z*@D $D@
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
MA%E>M?*4*?O9F+%F;*GKO;@8'/TI9?"-I-'K$;WMYLUK_CZ&Y/[H7Y?EX^4
M?_7J?1M:GU+5M8L9[:.'^S9TB4I(7WAD#@]!CAAQ6OF@#G;OP5974]G=)J&H
MVEY:0"W%U;3".26(=$?"X(_ 59G\,V\JR1QWMY!#+:BUEA1U99$RQR=ZD[CO
M;+9R<ULYI: ,2X\+6D\,ULMU=06<]LMK):QLOEM&H*@<J2#@XR"#T]!6E/86
MESISZ=- KVLD1A:(]"F,8_*K-9&K:VUCJ=AI5M#'+>W_ )C1B67RT54 +$D
MDGD8 '/MB@!MCX9MK,V9>[N[L6"E;07#*WD9&W(PH).WC+9.,^IJH?!-D='D
MTHW]_P#9Y+O[63NCW>9OW]=G3=SC^E)J/B35-.T;6;R?284GTN/S GVDE)EV
MD[@VS/8C!'4'ZUT%M*9[:*4@ R(K$#MD9H BOK"'4M+N-.N]TD-S"T,O."RL
M,'IT/-9:>$K=+S2;K^TM0=])5UAWNC!]RA3NROH .,?G6[10!S4G@739[&]M
M+B[O9EO+W[<)"Z*\$_\ ?C95&#QWS6MI.D1Z3 R"ZNKR5\;[B[E\R1L=!G
M YX  Y)ZDU8OIY+:QGG@C662*-F5&?:&(&<$X./RJMX?U-M:\/:?J;QK$]W;
MI,44Y"[AG% $<WAZSGUPZNSSB5[<6\L0?]W,@)(##'.-Q[]^<U3T;P;9:&X^
MRWVHO!$2;:VFN-\5MD$?(I'8$XW9QFN@K'@UJ>3QA=:');1I'#9I=)*LA)?<
M[+@C Q]T^M %1/!%E'HUMI2W]\+>UNQ=Q'=&6$@<N.=G(W$G\?3BK%QX4M)[
MG5+A;N\A;581'<"*10I(39O ((W;>/3OC/-2:OK4^FZOH]FEM')%J-PT+R&0
MAHR$9QA<<_=]:U^^* ,&/PE;Q2:(ZZC>YT1"EN"8OG!38=_R<_+QQC\ZG\2:
M0^JVEM);X^UV%U'=VX8X#,AY4GMN4LN>V<]JUZ6@#+U?2K?Q/H;V%T]S;P7
M'F*@"/P0<'(..1VJ:_TF#4K&.VNGD=HG66.88$B2*<JXP,9!]L=L8-7:* *6
MGZ5!I\MS.KR37-VP:>>4C>^!A1P   .@ '?N35QF"*6.< 9X&3^5+10!D:+I
M;VU]J6K7*[+G4I58IG/EQHNU%/OC)/NQ';-)J'AJVO=9BUB*[N[&]CB\EI;5
MU'FQYSM<,I!&>^,CUK8HH YFV\!Z;9I8"VO=1B>P>5HI%G&[$IRZG(Z$\^OO
M2FS@\)Z9_9FGZ9J.J1WTLNV/(D2,N2Q#L2-J$L>3D^N:Z6LC2M9GO]<UG39K
M:.(:;)$J,DA;S Z;LG@8ZCC]: +&@Z1#H.A6>EP8V6L03(_B/<_B<G\:CO\
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
M;Z986EHUG;6-M#;/G=#'$JHV>N5 QS0!RU]%IZ>//"QL!"L+P7J@0$!#A4Z
M<=2WYFN8GL+.'P?K6J1Q@7=AXB?[+/N):$"Z1<*<\#:<'UKT\:5IP>%QI]J&
M@&V)O)7,8]%XX'TIG]B:1Y31?V79>6[;F3[.F&/J1CDT <;X@,,WB+7[&ZDM
MKIKG3HEM%EN(T-FY#C^,@C+8;<N3P/:NPT*Q&FZ%96?F+*T4"*\JG(D;'S,/
MJ<G\:PKSPO>2ZM<S-9:'J5K,5$2WUM\]L@4#8N 05X)QQRQKH-'TR+1],BL8
M @2,LV(TV("S%B%7^%02<#L,"@#C?L\;ZGXZM$OA8"5[5!.?F$;/$O)]B3S[
M$UJ>$)94U/5+"^TFWL-1@6$SM9G-O.IW;748RIX((/H*Z Z5II:9CI]J3<<3
M'R5_><Y^;CG\:DM;.ULHS':6T-NA.2L480$_04 <OXWM+.?5O"YN+>&1GU54
M)D0$LOE2';SVSCBJQM;=?&7BB!4"QMI$!* D ?ZWIZ=!TKK[G3[&]='NK.WG
M:/[C2Q*Q7Z9'%-;2M.>625K"U:25=LCF%27'H3CD4 <%I6@02> =#NM.EMK?
M5+N&V^>ZW/'=,BEA%(,].#CTP/05!>-97FCZ<;O1H-/EM?$L4-S"VUXD8XW[
M&Q]QLJ?KQVKT/^R=-^R"T_L^U^SAMPA\E=@/KMQC-/;3K%K/[&UE;FVZ^28E
MV=<_=QCKS0!+!Y7D1^1L\G:/+\O&W;CC&.V*\TT:RAUJTT.!KBTEO+2_DDN[
MX7"%KN,%P0 &WG<2APP&-OL,^ES([V[QPR>4Y0A'"YV''!QWQ7'6G@J:2".U
MU/3]!?8 &OX;8_:9"/X\D?*YZ[MQYYH 2RTFSU3Q-XTTR==T-PML&&<E"T1Y
M'H<G(]Z;X4:;4[*V@N;1/M?AQ)+9\IA6N1\H*G_< ;_MH/2NPBL+."YDN8;2
M".>7_62I& S_ %(Y-2I%'&SLB*ID;<Y48W' &3ZG  _"@#SCPRNEZQ;:'J3Z
MS''K$+A;B**-5N992,2QR<[BN<D\< 9XQ6>]A90^#]3U2- +NQ\1,+:?>2T(
M^UJN%.> 5)SZ]Z]0CTRPANY+R*QMDN9AB298E#N/=L9-1_V'I'E-%_95EY;M
MN9/LZ8)]2,=: +%W#'<6<T,T:RQNA#(Z[@PQT([UYCHMQ:P^%?!, $ T^ZF5
M-2V8P[^6WEK)CJ"X'7K@5ZDB+&BHBA548"@8 'I5?^S; 6DEH+&W^SRDF2'R
MEV.3U)7&#0!SV@V[6/CC6[.Q4)I8@@E,2C$<4[;MP4=!E0I('J#WH\6VM[<:
ME9RZ<ME?36\$K/I=[PMQ&2N64]%<$ 9(Q\W;-=+;6MO9PB&UMXH(@<A(D"J/
MP%,NM-L;YE:\LK>X9,A3+$KE<]<9'% '"VHTS7=;\)(+5A92Z+.5MISD[/W0
M"L/XAQWX.*K:5<6,.A:=IEQ\R+KMU!:122[8 $:3"R$@Y4#HO<A:]#?3;"2=
M)WLK=IHUVI(8E+*/0'' J+^Q-)\@P?V79^47$AC^SIM+#HV,=?>@#S1VM9?!
M>H6XNHF6U\2*L/D/M6.,W"?< )VK@MCFMS5[?2M&\2Z?I$OV6PTFYMYY(UN8
MP\#W!==P(8X#;>F?4XZUV,ND:9.KK-IUK('?>P>%3N;ID\<GWI]SIUC>VJVM
MW96]Q N-L4L2L@QTX(Q0!P TRPBU+P?ID5^^HV0N[U4D9N&7R7RJD'E ?E],
M<=*JM-_9.D:G9VX\G2H/%*07*H<+#:L(RZ_[*;C@CT8UZ0^FV$KPO)8V[M
M(BT2DQ@?W>./PHBTO3X1,(K&VC$XQ*$A4>9_O<<]3UH YN"V73OB')#IB)#8
M3:49;N&(!8UD#XC? X#$;A[A?:N=T6]2+0? %G>LHTNZCD$^_P#U;RJG[I6[
M8)+$ ]2H]*]&@TVPM;9[:WL;>&!_O11Q*JMVY &#36TC3'L38MIUJ;0G)@,*
M^63_ +N,4 >;7=W:Z/<>)UL9(H;)=7L_M7E#<(X"B>8=H_AW<$>F15G7=.TB
M+POXHN=-U2&Z2>Q$KP6858(G .UP%. S?KBO0H=-L+=)$AL;>))5"R*D2@.
M, ' Y&!CZ4Q-'TN*R-E'IMHEJ3N,"P*$)]=N,9H Y74] 2W33WT%;)KR4M<R
M6=Z2T=_A%5B3SAP""#[G/>MCPKJNGS>'].$<:Z<;@R)#9RR+N#(S;U7^\!@\
MCM@UJ2:3ILL,4,FGVKQ0_P"J1H5*I]!CC\*D%E:@P$6T.;;(A/EC]UD8.WTX
MXXH GKG/%6E:+K]Q8Z1J4CP7D@DGL;B*3RY8V38"4;U^8''M[5T=5[O3[*_
M%Y9P7(4$ 31A\ XSU'L/R% 'GEW>:Q!X6\9Z#K%ZFHC3;']S?[0K2!T8A''3
M<,#\QZU?CM[+1?&6CW%LGDB[T>=KIT)+3;/+()_O$9.#UKL5TK3DLS9+I]JM
MJ3DP"%0A/KMQBA=*TY)8I5T^U62$8C<0KE!Z XXH \\T2XT]=>\)SVDT$,-[
M:W"L#*&GE4JI7SW&-SELG&.&SR:9I]A%:^!-:UJPA9M3M)[Z.*9&)>./S3N"
M\\?*,CWYKT6+2-,A"B+3K6,(Y=0D*C#$8)''4CO4EK865B'6SM(+<.<L(HPF
MX^^.M '&:?!H3W3ZMI.L6TAFTZ17M[-%1'0#(>103@@\9.#SBLO1+*ULK;X?
M:A;QA+JY40S39.Z1#;L=I/< @8'08XKT.#2-,MHIHK?3K2*.<YE2.!5$G^\
M.?QI/[&TL"(?V;:8A.8QY"_(>O''% 'GK8O_ (>ZOJ=P-OB.TO)LS*/WT4ZR
MGRD4]0-I10!P0?>M#5+K4+7Q/K=S;*#J,7A='54&<2AY3P._/:NU;3;!KT7K
M6-N;H8_?F)?,XZ?-C-.%A9K=F\6T@%R1@S",;R/][K0!Y]NT,R>!=1LY+;S)
M9_GGWC?)F!]Q<]2=W7/.2?6F:9_9^M1+-J&KQ6FMV>IN9$2-1="02D+&"3ED
M*X&,8QQVKOHM$TF"7S8=+LXY#)YF]+= =_\ >R!UY//O4O\ 9MA]O^W_ &*W
M^V8V_:/*7S,>F[&: .2\+Z-IMQXE\07,L DFLM6W0$N3Y1,*9(Y[Y/Y>U6OB
M'%%)I>F-*[(%U:T!=7*[090"<CV[UT=OI]E:3236UG;PR2??>.)59OJ0.:RO
M%FC7FN65G;VHMB(;V&XE%PQ 98V#;> >N,<T <IJFC6VDZOXEM=,C,.G2^'W
MN+F%&.Q+C+;&Z\,5#'\,TLUG9Z1X;\-74,(CMM3FLDU6;<2)$\L[=Y)QMW$
M]L8!XKO8]+L$M'MA86J0R<R0K$NQC[C&#TIZV%FEF;);2!;4@@P",!"#U&WI
M0!YWXJLA9W'BJTL$\K33H7VF6*+Y4CN<L%( X!*KDCO@$U:DTF+3/$?AS4-
M3_2[RVF^UXD+"YC$659\GG#E #_M 5TVNZ#]J\*W^C:1!:6ANX6B V^6B[A@
MG"CKBKNDZ9!IUK&%L[6WN#&JRM;H &(]\ G\: //TQ<?#S2=;LO^1B%W"IFQ
MB:2<RA98W/4C!;*G@ #L*T+GS;#Q&+R>WMM5TZZU9$2YC^6ZL9]P0(<_>3(Q
MQR ?I7:IIMA%>->1V-NER_WIUB4.WU;&:%TS3TNC=I8VRW!.XS")0Y/KG&:
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
M)K\VH*EK/"+2Z>!?,B9<A0H.2>,Y)XZXQ5'Q#K#IXFTK1/\ 3$@NDG>=K=)
MS;57:%9><9?)P>,#/'63PG:WNGWNN6UU92Q)-J<UU%.2NR1'VE<<YSUSQQBC
M5XKE_'6A74=I/);6L%RDTRIE4,@3;]?N'ITH EBUW3]$L3;WNHW-VMDPAN;Z
M2(LJ,>@D91@$ C)[=\5+?^+M(TZ_>PFDN&N4B68QQ6LDAV%MH8;5.1GN.!BN
M>CTS4[30/$GAR6PFN)K^:Y:SG"YCE6;)!9OX2I8YSZ<9J[I.F76F^-K?=!/+
M;0:'#8_:BGRM(CDG\Q@YZ4 5-9\5S:GX1\336'VS3YM,:5(I1&4)V*N<DC )
M)/'!QCI71:9XCT^_O1IL<DOVI;<3#S(702IP"R,1AADCD>M<M?:;JJ^'/&6E
MKI5R\M]=3RVSIM*RB15"XY]CG/3%:QANI/&^C7JV=P+>+39899#&0$=BA /_
M 'R: -76[VSM9],BNKVZM7GO$6'R%.)GYQ&YP1M/)P<=*K7GC71+*2^CEDN2
MVGE1=!+25O*!&=QPO"XYW=*C\86]S<-H9MK66?[/JL,\OEKG9&H;+'\QQUK)
MN;*^>X\<[;"Y(U*W5+0B/B8B#RR!Z?-ZX]>E ';QR)-$LL;!T<!E93D$'H:R
ME\4:4TMNOG.(KJ4PP7!B812R<C:'QC)P<=CCC-+I-M+)X3M+.19+:;[$L+AA
MAHV";3^1KE(M'U.^\#:?X3N+"6WO+2:".2?;^Z6.*0-YJOT.57@=<GD#K0!U
M4GBC2HK74;EY)1'I;;;O]P^8CM#=,9(P0<BH;SQCHUC=&UEDN&G^SK<>7%:R
MN3&2 &&%Y'/;I@YKG-7LM5C7QI80Z3=7!U:(R6LT87RV!@"$$DY#97ICG(^M
M:&EV]\OC:TO)M.N88?[$2U=V4$)*'W%203V[CB@#9\63W%KX2U6\M+A[>XM;
M.6>*1,9#*A8<$$$<5RE[X@O;#PUI&I:?KK7^IW'V<-IS>6_VHOMWJ JAE(!)
MR#@8YKJO%L4USX1U:UMH9)Y[FSEABCC7)9F0@?3D]37):QH]UJG@>PTFQT&>
M/6(XH$CNG18OLKKMW/YF<]C]W).: .UCUNQEUR315:47L40F9&B8#83C<&(P
M1GC@U-8:A!J5N;BVWF,.T>7C*9*D@\'MD'FN<\5Z?J$!TG5=,F0ZK;N+0LXP
M)DEPK9'?:VV3'^R:T[GPVDUI:6MMJNI6$5I'Y:BTF"[Q@<ME3D\?J: *HN[B
M+XC36TEY(;/^R!/Y+, B-YI!;\AWJY9^*-+OIX88'E+7,#7%L6A8"XC&,LF1
MSU''7D&LN:UU"'QM-<VUK+.BZ)]GBFF'R23!RP5C[C&3T_&LO2;75Y-<\,ZA
M<:1J"/!;3PWC2E%6-V$8^5 V%0;3C &1CJ: .C7QCHSZ?:7ZRSFWO+G[+"WV
M:3F7=MVD8ROS CG'2KD^NV-M//!*T@> QJW[IL,TAPBJ<88DGH/QKE+_ ,(:
MA>SZ[I<;>3ITS_VA92*V"MTPZ?174O\ 5A6A-ITM[X04:WIDMQ<:A+'->0VY
M(DA8XP5(YR@5>G]T]<T =%8ZA#J F\I94:"3RI$EC*%6P&[]>&'(XJU7+:$^
MLZ/IUVMTE]JT*WB)9R2(JW+PD*"T@.,[26Y/) SCI74T %%%% !1110 4444
M %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110
M4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1
M110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%
M% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110
M4444 %%%% !1110!G#0K(:VVL,9WN2 %5YF:.,@;<JF=H.,C(&>3ZG.C110
M4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1
M110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%
M% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110
M4444 %%%% !1110 453CU2TEU:;2XY-]S!$LLJC^ ,2%S[G!X]/PJY0 4444
M %%%9VNZS%H.EOJ$]O-.B,J[(=NXEF"C&XCN0/QH T:*2EH **** "BF[E+E
M PW  D9Y /3^1_*G4 %%-9E099@HR!DG').!^M.H ***H7VLVMC=169WSWDR
MEH[:%=TC*.K'LJ^[$#MF@"_162-?3[7-:2Z?>0SPVYN65U3!0''#!MN>O&>Q
MSCC-G1]3CUG2+74X8988KJ,2QI* &"GD9P2.1@]: +M%%% !130REBH8%EZC
M/(IU !1110 4444 %%9VJZS%I,MA%+;S2F_N5MH_*V_*Q!.3D@X !)QGI6A0
M M%<[_PFVFI!=7,\%W!:V=R;6XN'C!2*0$ @[23C)'.,>]="#D9% "T45G0Z
MS%-K]QHRV\PEMH$G>4[?+VL2% P<Y^5N"!TH T:*** "BBB@ HHJMJ&H6FE6
M,M[?3K!;Q#+NW;L![DG@ <F@"S16/)XC@M1#)J%G=V%O,ZHEQ<*H3<WW0V&)
M3/\ M <\=:V* "BBB@ HK,GUVW34I--M8)[Z[A4/-%;A?W(/3<S$*">PSGOB
MJ-_XRL=/LKRYFL[[-B\:7$?E ,AD.%ZG!&2.02.>_- '0T444 %%,EEC@A>:
M5U2.-2SLQP% Y)-/H **** "BBB@ HJ&[N!:6DMRT;R")"Y2, L0/3)%0Z3J
M4.LZ1::G;HZ17<*RHK@!@&&1G'>@"Y16-<^)(+;71HHLKR:\: W"K&J8:,'!
M8$L._&.M6-+URQU>2YAMV=+BT<)<6\J%)(B1D9![$<@C@^M &C115>^NUL+&
M>[>.218$+LD8!8@#)QDB@"Q1532M0BU;2;34H%=(KN!)D5\;@& (!QWYJW0
M4444 %%%% !1110 4457:Z9=0CM/LL[*\;2&X 'EJ00-I.<Y.<CCL: +%%9N
MLZU!HD5M)<032+<W,=LIB .UG8*"<D<9-:5 !1165K?B"TT/2I=1ECEN(89%
MCD$&UBK%@HSDCN1F@#5HHHH **9'+',F^-U=<D94Y'!P?UI] !1110 44SS8
M_-$6]?,*[MN><>M/H **KV=TUVDC-:SVWERO&!, "X4XW#!/RGJ*L4 %%%%
M!1110 4457L[IKM96:UGM_+E>,"8 %PIQN&"?E/44 6**KWMTUI$CK:SW):1
M$VP@$J&(&XY(X&<GVJQ0 4444 %%%% !1110 4444 %%%% !1110 4444 %%
M%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 444
M4 %%%% !5#5K^6RMMMI ;F\ERL$*D?,>Y.2!@=3DCL.I%7ZIC2[5=5.I[93=
M&/RMQF<J%SG 3.T<@=!0!R/A8QVGB+Q=>3K-;B!+99I)BADRL3.S':2N?GSZ
M#@<8Q5/2M5\33MX6274)3=:DLUS+$\:8$&TE6< #D%TP 1T]376KX4T95U)?
M(F(U52MX&NI2)01@]6XXXR,<<5=72K%;\7RP 7 M_LP<,?EBSG:!G Y[]>!Z
M4 <A9^)=1M_#D4WVF2[GU75I+:PEEC#%8=S .50#.%1F QSD#I3]?N]>TO1M
M2NXKRZA>X,%MI\3^7),9F?:7(QM&[</E']W/RYQ6Z?!^B?V+;Z0MJZ6UJZR0
M%9G$D;KT8/G<"!QUZ<=*M?V%IQ%MOA:1K:83QO)*[-Y@4J&8DY8@,<9SC\!0
M!S4NOWNC:MK5W>W<ES9Z7IT32VX"X%PY)55.,YVA02>I;.!P*2^CO+WQ#X?T
MF^O6FN2YU"^A0#RHUCP4 'H)"H!SDX)/:N@N/"^CW8U+S[3S/[4Q]JW2-\V
M!QS\O"KTQT'I2V_AG2K6^BO8X)&N8HC$)9)W=BI.<L23N/ Y.3P/2@#C)M<U
MZ:R>[MM2G*W>O"TTY0D>98U?#9^7[F$D.>O/)P.=!O$FHZ4GB2^EN#?I;W4%
MG9QL@"_:&"A@-HSM#2*.<GY3R373V_A[2K1-.2"T"+I@86@WL?+W#:3R>3@G
MDY/)]:A?PIHLMC?64EGOAU"9I[@-(Q+.6W9!SE?FY&,8- &5=7.K:9;7VK7=
M[<1V5II\C.90@>:88(9$P0@ ! !Y.[D<9-;1KK7SK'ARTOM0E:9["2YOX&1
M,855+<9W%VSP0 %QCJ3T3>'-,DT][&XCEN8I-N\SW$DCOM8, 6)SC(Z9QUXY
M-3-H]B^L?VLT)-YY @W[VP$!)'RYQG+'G&>: ./TW^UI?#VMZ]I=S-<WU]<R
M/:1R."6MXI H"\<$J&QV!<5T_AJ[34=)&HP7LUU;7C>; )@ \*[0#&?4A@W7
MGGJ:2S\*Z5I\-K%9QS0"S1DA*7#Y ; ()SR,*,9SC'%:-E96^GVD=I:1"*&(
M851SC\3U/O0!SNNQ2:IXTT;3([J>.*WCDOKA(V !VD+'GCGYF)_X!67=^(]2
MN?!%WXKBNG@:23_B66J*,$>9L0,,99G/4=@1C!&:Z]M'L6UG^UVA)O/)$._>
MV-H)(^7.,@LW.,\U#;^'-+MGA,=N2EO(98(FD9HX6.<E5)P#R<>F3C% &DI8
MH"PPV.1Z&N/\"DWNK^*-3NN;TZK):8/5(8P!&H]!R3[YKLJRI_#>G3:E)J2"
M>VNI@%FDMIWB\T#IN"G#$>IY]Z ,[QW=B#PQ>16HW7M\4L(Q'@OF4A<#W"L6
MK-36;G0+[6Y)IVFT_1["!!:*%"K.V2L:'&?N^6,GNV>.@ZIM&T]S:%X-QLYC
M/"6=CB0J5W'GYCACRV>N>M5KCPMHUU'J,<UH774V#7.9&^8X49'/R_=7ICH/
M2@#(-QJB^*-$TM]39[F2.2\U*.,#8L:C"JHQPN]@/4A>33?#DVKZS:2:K+K,
MT-B-0EDBW1H3-;J2H4G& OR[LCGD]L5LP^%])@O5O5@E:X$'D&5[B1F9<YY)
M;D\_>//3G@5;BTJR@TA=(B@"620?9UB#'A,;<9SGIWSF@#A]'U.\T[0;*Y2>
MXEO_ !1?-)&TJ^888B"P8#')$2J .F<=@:NZW<Z]IVD7LJ7=S!+>W-O;:=$3
M&\RLS;78G!49R3M'0+VR0-Z7PIH\VFVM@;>18[-U>W=)W66-@, AP=V<<=>G
M%6?[#T[=:NT#.]I*9HF>5V;S-I7<Q)^8[21\V<4 .T^TOK>6XEO+]K@3%2D.
MP!8,#D*<9.?4U0O=3DN/$/\ 8\$_V>&UMA=7LX(!"DD(@)Z9VL2>P''7(W:R
M[KPYI=YJ;:C/ YN'A$,FV9U61 20&4'#8).,CB@#D$US69_#6FSV^H3R7.L:
MP4M %0-]E#'KE>!Y<98GKEL^U6U\0ZG87&MO]J-\6OX-.L$E4*@N&4;\8&=@
M+#@DGY#SFNCL?#>DZ<+$6UJ5.GHR6Q:1F*!@%/4\G"@9/0# Q4,OA#1)K:>W
M:U<+/=_;&99W#K-N+;E8'*\D]".IH R;>)[WXA06[WTMXNC69FF9P,"XERBX
M ''R!^.V1[UTVJ:A%I6E7>HS_P"KM87E;W"@G^E066@:9IU_-?6MN4GF55=B
M[-G:, X)QGDY/4YYJ75M(L=<T^2PU&)Y;:3[\:RO'N]B5()'M0!YQ)87MAX;
M\.:;K4R7%AKEZBWMK!&8YFEF)ERSDG<H;A@ IP!S75R7]W9^*-5TV2]G>"33
MHI[5%5 T3L\B%4X&>=F-V??BM(Z!IUG/_:<=G->7MM&WD>=<O*R\=$,C$*3T
MSQ[TMIIJW.J+KM[:>1>" 0QQLP8Q)DDY(XW9)Z=!P#R: ([/5KJ">WTNZT[4
M9YD1(Y;X0J(7;:-S9R.,Y[5@6>K26]MJ>MVZI)=ZWJPLK#?]W:A\I"?]D;)'
M]_QKN:PQX.T-=(@TM+:1+>VE6:$K<2"1'&<$/NW#&2.O0T 4;.:]N?&-UID.
ML7$EM86"FY;";OM$C?*?NX&$4G&,#=69I_BC4FTSP\\MPK@WQM-1G< ;R!*
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
MVR[G@52L) !;@L"VT$$[0<?4$5F>(=7DN-?\/V$%K/=Z??K-*_DN@6Y41Y4
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
M7ELXA"$,)9=I!(/S8!..!UYS6O10 4444 %95YI%S>ZM'/-J<G]GQA&^P")
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
M5#!DCVE-OKG'.<8[UCZ7X?UJRTKP?;2:>2^CRLUUMF3@%'0%>>?OY_"N]HH
MX2_\.:Q>Z=XK@CLQ')J%W%<VF^5<2;!'\IP3M),??U%:-G;:W+XT_MNYTH6]
MLVE_9S']H1I%<2%L<<9_''3GJ!U5% 'G]GX>UNV\+>%[!].)N-*U%;BX59H\
M;!YGW3GD_./R/XNUS3;I/^$MDNK!&AUC[-%9K+.JB60*L8'!)5BV"OTYQ7?5
M6U#3K/5;-[._MH[F!\;HY%R..A^OO0!S.B27L/B&.;5]#O8;NZA^RQWLUU#,
M-JAGV8CQC.&.=O)P/2K7B/3=3_M_1]>TNW%XUAYL4UJ9 C/'(!RI;C(*@X.,
MUJZ=H>FZ2Q:SMMCD;=[NSMCTW,20/:M"@#@;O0=>O-'\7P'35CDUB0-;+]H4
MGF-%^;L,;?7Z9ZUKPV&HCQO::HUBZVJZ4;1V,B960NK] >1\N,CN:Z>B@#B;
M72-<TO5M1M(M&L;ZSO;N2Y@OY9%!M_,.YE=""6P22,=>F1VGM;/Q'H6O:I'8
M:?!?6&IW'VJ.=[@1FVD*JK!UQEA\H(V__JZ^B@#DKCP]J$^OZXKHK6.M:=';
M/="0!HF59%/R]23O!':H(M#U?4=$T+1M1LQ =*N())KE9%9)1#]W9@[LL0N<
M@8Y]L]I10!RNBZ?JEEIWB))=-4RW=W<7-K'+(C),''RJV"<<C!SQS1X8T&?1
M=5N9+6*XT_2)( 183SK(L<VXDF/#':N.V>2>G%=54<T,=Q$T4R!XVX93T8>A
M]1[4 <IX7BO[/3;[4;6R%R=7UB2Y5&E$>RW9@HDY'/RJ&QWS77TG3@4M !11
M10 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%%
M !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M%%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4
M444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !11
M10 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%%
M !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M%%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4
M444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !11
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
M5G[!9^8TGV2'>T0@9O+&3&,X3_=Y/'3FJT6O:7/907D%VL\-P2L1A5G9R,Y
M4 G(P<\<8YJU9WEO?VJ75K()(9!E6 (SSCO0!&=+T\M:,;&WS9#%K^['[@8
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
MG.JV_EW>[R3N^_M!+<=>,'\1CK0 [Q1876J^&-1TVR$9GN[=X4,K%5&X$9)
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
MKN:* "O,=+M=3M?"/A5SIU[_ ,2*\'VZV-NP?&'4NJXR^W<#\N<YXZ&O3J*
M.9TNTDN?'-_KD"2164EA#;9="GG2!F8L 0#@*5&?<^E'CB&=[+2[B&WFG6TU
M:VN)E@C:1Q&K?,0J@DXSV%=-34=)%W(RLN2,J<CC@T <<C2-XVUJ\>PO5ADT
MF&-':TD(9@7+*"!@GYEX%86FK>Z3IWA>_O=+U:2TATUK*YCMXYDFMI,H0Q08
M8J=N/3@>U>G!T,AC#KO R5SR!ZXIU &5X=M;6UTS_0]/DL()96E6*8GS#D\L
MP))!)R<'GUP<BL34K2YT+Q\OB5;6>ZL+RR%I=?9XS(\#*VY7VCDKC@X!QUKL
M** ,:[NWUK3;NTTQ9D::WD07,D;Q"-BI"XW $G)[=,'GH#R\=K=:MX5\-:,M
MC<VNH:;=6OGB2%E%OY/#N&QM((!Q@G.[ZX]!HH \TO;:ZE\&^-[=--OFFO-0
MF>WC^QR[IE98PI4;>1E3S[5O2EW^(.CW,5I=BW&FS1-+]ED"(S,A56.W X4\
M&NI$T3!"LJ$2?<PP^;Z>M+*C/$R+(T;$8#J!E?<9XH \PT>U76_AIH6DV=M*
M+Q;N.4/Y+!80LQ9I-V,?=!QSR3CK4^LM?7:W2'2+^&2UUZ*;R+:R;RWB65?W
M^X#]XS 9."<>@QFNY\/Z)%X=T:#2K>XGGAMP0C3E2V"<XR /6M*@#SZZCGE;
MQ^1IM\&OK95M\V<A\X_9@F%(7#?-QQ]>G-6=4@N[;PUH'B&QMI#J.E)$C6\J
MF)YHW"QR1$, 0<X(SW4>M=Q69<:''=:S'J,UY>.D07;9^;^XW*20^W'+#/KC
M@'&0* )]*LCI^F0VSN'E +3./XY&)9V_%B3^-8-X+G3/B$FJ7$,TFG7.F_9E
MEBC:3R95D+88*"0&!Z^H ]*ZJB@#S1]+N[*+3Y7L;MHIO%3ZBL4=K(Y@@*N
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
M9-#%<0O#-&DL;C:R.H*L/0@]:?10 R.-(8UCB141!A548 'H!3Z** "BBB@
MHHHH **** "BBB@ HHHH ***CGN(;6%IKB:.&->KR,%4?B: )**9')'-&LD3
MK(C#*LIR"/8T^@ HHHH **** "BBB@ HHHH **** "BBB@"I=:7IU_(DEY86
MURZ?<::%7*_0D<5:    & .U+10 4444 1&UMS="Z,$1N%78)2@WA?3/7'M4
MM%% %9-/LH[QKQ+.!;EAAIA$H<_5L9JS110 4444 %%%% !1110 4444 %%%
M% !1110 4444 %%%% !5:#3[*UGDN+>S@AFE_P!9)'$JL_U(&35FB@ HHHH
M**** *MWIFGZ@4:]L;:Y*?=,T2OM^F1Q5E55%"J J@8  P *6B@ 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@ JCJ.DZ?J;1/J-O%<QP;BL<ZA
MHP3_ !%3QD#.#VR:O5C>(M-U;5(H8=.O[6UB#9G2XMVE$P[*<,OR^H[].F00
M"EX&TP:;IM]Y"F.PN;^6>QA[1PG &!V!(+ >C"NFK-TBVU>W64ZOJ$%W(Y'E
MBWM_*1%'L68DGZ]A6E0 4444 %%%% !1110 4444 %%%% !1110 4444 %%%
M% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110
M4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1
M110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%
M% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110
M4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1
M110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%
M% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110
M4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1
M110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%
M% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110
M4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1
M110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%
M% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110
M4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1
M110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%
M% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110
M4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1
M110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%
M% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110
M4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1
M110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%
M% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110
M4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1
M110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%
M% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110
M4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1
M110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%
M% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
3 %%%% !1110 4444 %%%% '_V0$!

end
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>GRAPHIC
<SEQUENCE>18
<FILENAME>cgnxexhibit4bdescription003.jpg
<TEXT>
begin 644 cgnxexhibit4bdescription003.jpg
M_]C_X  02D9)1@ ! @   0 !  #_VP!#  H'!P@'!@H(" @+"@H+#A@0#@T-
M#AT5%A$8(Q\E)"(?(B$F*S<O)BDT*2$B,$$Q-#D[/CX^)2Y$24,\2#<]/CO_
MVP!# 0H+"PX-#AP0$!P[*"(H.SL[.SL[.SL[.SL[.SL[.SL[.SL[.SL[.SL[
M.SL[.SL[.SL[.SL[.SL[.SL[.SL[.SO_P  1" 55!!\# 2(  A$! Q$!_\0
M'P   04! 0$! 0$           $" P0%!@<("0H+_\0 M1   @$# P($ P4%
M! 0   %] 0(#  01!1(A,4$&$U%A!R)Q%#*!D:$((T*QP152T? D,V)R@@D*
M%A<8&1HE)B<H*2HT-38W.#DZ0T1%1D=(24I35%565UA96F-D969G:&EJ<W1U
M=G=X>7J#A(6&AXB)BI*3E)66EYB9FJ*CI*6FIZBIJK*SM+6VM[BYNL+#Q,7&
MQ\C)RM+3U-76U]C9VN'BX^3EYN?HZ>KQ\O/T]?;W^/GZ_\0 'P$  P$! 0$!
M 0$! 0        $" P0%!@<("0H+_\0 M1$  @$"! 0#! <%! 0  0)W  $"
M Q$$!2$Q!A)!40=A<1,B,H$(%$*1H;'!"2,S4O 58G+1"A8D-.$E\1<8&1HF
M)R@I*C4V-S@Y.D-$149'2$E*4U155E=865IC9&5F9VAI:G-T=79W>'EZ@H.$
MA8:'B(F*DI.4E9:7F)F:HJ.DI::GJ*FJLK.TM;:WN+FZPL/$Q<;'R,G*TM/4
MU=;7V-G:XN/DY>;GZ.GJ\O/T]?;W^/GZ_]H # ,!  (1 Q$ /P#V: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*** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HH
MHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB
M@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ****
M"BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH *
M*** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HH
MHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB
M@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ****
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
M>'[Q]-U%(;^!T4'RPX#%A\A)&T-M.<'GVK8\.6=I8Z+%#86,MC;%F>."4L7
M+$Y(8D@G.<'IGL>*\^O);F+X>:SX=O+&]?5TNW=@EK(XN0UQO$BL 000<=<\
M8H ]!.HVRZ]-$VLP@06N^6R.W,7S?ZUFZC@@8/'>DM?%&A7SNMMJUK*4A\]M
ML@^6/.-Q]L_T]:R%G7_A9379BG6 Z*$\UH'"[O-+;<D?>P<XZUA:?8WK?""S
MBL]/N#=V<D<LMIY;12R!)Q(R#H<D#/'6@#NK;6],N_M(AO(\V@S.KG88AC(+
M!L$#'.>E02^)]'BM;RX-X&%E%YLR!3O"=F"XR0>Q'!KC]5M[;7]"U'4?#VDZ
MB]Z;>-9'O/.5Y5257, $A^;(#<CCG&3FMF2_M?$^DZE<Z=I%RMS)ILL#37%J
MT4F2#B$;@"W)).,@'ZT ;-EX@L;K1K74WE$27*IM0Y+;V7.P#&6/T':G-XBT
M9+%;Y]3MUMVD\H.S@?/G&S'7=GMUKD+::XB;P=JSVMV+"RM7M;H/;NK02-&@
M#E2,[<J5+8P,^AJEX@T^>2Q\3WL5K.]IJ6H6+6\*P,QD\MH_-D" 9P<'G'.W
M/<4 >AZ=JECJT#3Z?=Q7,22-&SQMD!AU%<SHOC&VMI]4MO$.LVT<L6K2VUMY
MFV/Y J8''NQY/YUUT11XU>,?*XW#C&<UY^UN!I?C/2+C3YI+S4KV=K:$P-^^
M#QJ(V#8Q@,"<Y^7&3B@#KKSQ-H=A</;W>JVL4T90.C2#*ECA0?3-32ZYI<-Z
MEG+>Q)-))Y2@G@OC.S=TW?[.<US.A6C6?CDP7,<DK1Z);6QN#"Q1Y$9BX#D8
MS]T]:SM+BM7$OA[6]'U2?4(;Z26/YI_L\V92Z2AP=B@9R<\Y!X)XH [9]=TN
M.]%F][&)FE$(';S",A-W3=@@[<YYI;S7-,L)O*N[V*%@55MQX0MPNX]%SVSC
M-<#J\]Q<BX3^S;VW>T\00S-;6]DY1HUF7]^6"_.S#G@_AQFM"RO%L[[7-#UK
M1;J\;4+YKFV!M6EBN8W"[5+8*J5V@'=@# H TD\3KIGBG7K?6M3BBL;6.U>W
M#J%V;Q(6Z<G[H^F.U;]SJMC:01SS7*".5=T97+EUQG( R2,<Y%<F_P#R,OC"
M22VEQ+IT$4;^0Q60A)-RJ<?-RRC K*L9I=*B\-WVI6>IM8?V+'92-;+,'MIU
MP3O5,-@XQT/*B@#T#^V-.-C#>K>126]Q@0O&=_FD] H'+'@\#T-9'@W6;G6?
M[::>[6ZCMM3>"!U0+B,(A P.X+'KS6'Y,7A_6- U&WTJ[MM#1+F/R]DDCV[R
M,"LCKRPW8/TW<XSBM7P2Q-YXC8V]Q"L^JO-&98'C#H8XQD;@.X/O0 MSXD.E
M>-;VTU/48XM-CTZ*X170#:[.ZGGJ>$S^=:EWJEI))I1@UN" 7<H>)!M<WB;3
M\JYYQR#D>GO60"B_$Z]N98)/)71XXO-,+%2PD=F4-C!.".!7/Z4D\?A3P+#+
M:W2S6E^IG5K=P8E"2*2W' RR\GUH ] .L:>+Q;3[2OG/(8E&#@N!DJ&QC< "
M<9S5F>>&U@>>XE2**-2SN[!54#N2>E</ EW9^)5DTB6>:UN=4D%YIEW 3Y!W
M-NN(GQ\JG&[N#NP.3BMCQW:WUSX>1[&%[AK:[@N9;>,9::-) S*!W/&<=\4
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
M'278TRQO+:VN+J.QOXY[F"V)$KQ!64[<$$D%@V!_=KG/$$.FWWA/5[W2-*U
MO?R6@>2>.9I+@I*I^X^6PJ@\XP??% '=6&MZ7JD]Q!8WT-Q);$"58VSLST/T
M..M1KXDT4SPPG4[9'N/]1O<*)^<?(3P_/]W-<_=+'<^/;MC%<?99] \DR1PL
M 3O9MH;&-VTYQ61X9U+3;B7PNE_>36\VEP>1;(]C-%YK.@C4,[+M''& 2&;!
M![4 =TFNZ7)?+9)>QF=W:-%YPSK]Y0W0L.X!R,47>O:58.ZW=_# (F"R.[82
M,GD!FZ*3V!(ZBN!:XN+G^QI3I=];/9Z\SSV4-BXCMU/FC=G;\Y;<"6!(^;M1
MJ<VGI/XDT*\GN[:SO]06:27[!-*RG;&7VLBE<': "2"OH>* .]NM?TFR@6>>
M_A6)T$@D5MRA#T<D9 7_ &CQ4EYJEE:Q+YEVB-,A:/:"Y*@<L ,Y49&3TYKC
M+N[M(_$VHOJ=IJ-YI>MV\+V5Q8^<\<B>7M:-A&>^<C(Z,:FL6/AOQ<C76GW4
M&G7.EP6]GY<;SBW*%LPDJ"0?F!]\=30!M^!]4NM9\)VM_>W"W$TKS RJH4,%
ME=5P!QT K?KE_ATKQ^#K>&6WFMWCFGRDL31D S.PQD<C!'2NHH **** "BBB
M@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ****
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
M2(I4Q6CN!#$^-NX#&2>3U)Y/TQG6GC**?4[*UEMHUAOXFDBFBN!+Y6U=VV4
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
MU;(^3!&4 [=<^U3>$=)O=$T,6%]Y!D6>:0- [,"'D9^ZC!&['X5N44 <??\
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
ML"%E5?.@7.U6PHZ9.",'W- &,+^_UG5/ UY)?36YO[26>6.$)L#^2#D!E/\
M>(YS@=,=:[ZN>A\%V$%KI,$5W?*=(W"WE$PWE2NTJ3C&" !P >.#GFKFE:?=
M6>HZE/+>74T%S*'BBN)0_E'G.S'W4/&%]L]Z *FJZK>/KXT2Q\Z-Q9_:GDA6
M-GY;:H D(&,@YZGITK*U/5/%.E^&++6K[9#<6<JC4;*$(PN(]^,H><.1@XSZ
MBMG7/"\.L7UKJ,5_=Z=?VJE$N;1@&9#U1@P(8=^1UJQ#H4,,UG)]KNI!:;V"
M2,K"5VSEVR,EN3C! &2 ,<4 9$FMWEOHVCO_ &@EQ-K=XD4=P%4I"CAGPN
MQ"KM!(Y)SC'%/O\ 4-8T%&BN+M+[[;?16]BY11*@<?-O VJ2-K;>G;-.'@/2
M_P"PY=':YO6M6N/M,'[Q5:UDR6S$0HVX).!R*EN/!MC>:++IM[>7]T\K(_VR
M6;]^C(<HRL  NT],#')]30!CZYJOBO1]!URZ9A'';+')97,Z1&1@2 ZLJ';P
M3P<?A5I[K7M/\7VFE7NJ"YM-8MYC$T5ND;VDD8!.WKE<'C=GFJWBO0;BT\!Z
MI;K<:EK5]<QI$K.GF2$!@<!44 #J2<9/<GBNDL])A^VQ:G-<W-W.D)CA:Y55
M,2L06PH5<$X7)(SQ0!E_#DSR>!=,N+BZEN))X=Y,FW@DG/( )YYYR:K>+=:U
M/34U>:SOPK6-FMQ#;P1*Y!&XL9RPPJG   () ;&:WM!T*V\.Z<MA:37$D"$^
M6LS[O+7)(48 X&3UY]ZHZCX,T_4KS4KB2ZO8EU2 0W<,,H5),*55NF00#V.#
MW!H R]>\37EA<J;JXGTNRN;2-K6_2%9(%G;.5F)4E1]S'0=>?3M 00"#D'H1
M6%)X3MY;2:S?4;]K6XMUMYX6=&$B@$9)*Y!(."5([8Q@8VUC6.(11_(JKM7'
M\([4 >=6FI7^D?#:\O\ 3IUAFBU:8$M&'RK790CG@<-6]/<:W>>,=1T:WU9;
M2!+"*XA9+96:-F9U_BSG[HZ_IUJ=O!-BWAZ;0S?7WV6>X^T,=T>_=O\ ,Z[.
MF[G_ .M5U- CCUJ?5UO[O[3/;+;M_J]H522"!MZY)/XT <KIOB+7I])\+:Y/
M?QM'JEQ':W%HL"A"&##>&^\&RN>N.<8I^L:IJL^D^.K:34'3^S(_]&>!%0JI
M@#XS@^N,]?3%;4?@JRATC3-+BO[Y8-*G6>W(:/<&7.,G9R!D_G5C_A%;)FUG
MSI[F9=;7;=([*!C9L^7"@CY>.M &;'J-\DUAH5K/<O(=.%T\Z+"9 ,A5 #;5
MP#G/!/3ZTVUUK79+O1]"U,)8ZC<QSRW,L.UODC("[0=P!;<"<YQ@^H(M7?@F
MWG2PDAU;4K:^T]#'%>I*IE9#C*,"NTC@<8ZC/KF:[\(6=W'8N+R]AO;!V>&^
MCD7SLM]_<6!4ANX(QP  !0!1\"QRQ7GB>.:<SNNL,#(RA2W[J/&0.,X],5'J
M]O>7/Q(MHK&]%E*VBS9F\H2%1YT?0'C.<=<]ZW-&\/V^B37LT-U=3O?3>=,9
MW!^? !(  QP!2WVA17FJP:K%=W-G>0Q- )("AW1L02I#JPZ@'IGB@#DO^$A\
M0IX;GU":[#2:'JC6VI-#"N+F!&&Z100=K!6!XXX;\.LTV[FO]4O;B*Z\S3XP
MD4*@*59\;G8,!DCYE'7J&]L5;Q8?#^FIIUGHUYJ/VQI PC4.&=LEFF8D8#$G
M)J_H.D0Z#H5GI<&-EK$$R/XCW/XG)_&@#'\5?\C'X4_["+_^B)*HWFOZI:ZE
M:.E^MQ'+K0LI(X8E,"1,2 I<@,9!@$X) .0>U='J>APZI?6%Y+<W$3Z?*981
M$5P6(*G.5.>"1^-99\!Z=L\I;[44A6]^W0Q+. L$N[<=OR]"2>#GKQB@"EJ6
MK:S9ZGKVF#4&%Q]ECN=)/DQG<6)3RSQS^\*KSV8?6K_AS69]?CTRZANY/*%E
MYEXC(G,K':%/'!!23.,=!ZUJW6B6-[JEAJ4\9:XT\.(6S_> !SZ] ?KS2Z5H
MMEHJW2V4907=R]S+S_&W7'M[4 4=?U>:TU31M)MG\F359W0S[0?+1$+M@'C<
M< #.1R>#7/ZSXBUO28?$U@MXLD^FV:7MI=O"I8HV<JP "Y!4X..G:NLUC1+7
M6HH%G:6*6VF$UO/"P$D3CN,@CH2"""#Z54N_"EG?6&HVUQ<W+R:FJI=7&4$C
MH!@*/EV@ $]!W)ZF@"WHT.HI;M+J&H"[,^UT40B,1 J,J,=1G)R>:T:AM8/L
MMK%;^:\WEJ%WR8W-CUP /TJ:@ HHHH **** "BBB@ HHHH **** "BBB@ HH
MHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBN8\?W,UKH-O(-PL_M
M]N+\CM;;QOS[= ?8F@#I#-$L32M(@C0$LY88 '7)K!U#Q.T4>@7-C#'/9ZQ=
M1PB5V(95=&8$+CGA?6L?4+"%/&%Q#IT$7V&YT61[V%$'E,P8")BHXW'Y@#W
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
M,LS-@[54=3@GI@&CPK:6UCX<M+6RO)KVUB#+#/,06==QQ@CJO8'TQ6!XD/\
M9/Q$T+7KP[-.:WELWF;[D$C<J6/8-TS0!OO?ZO:W=G%<V-O)#<2^7)-!*?W/
MRDC*D<C( SGOTK5WKOV;ANQG&><5#)>P))%$LBO+-S&BG)(]?H/7Z=R*\T&Z
M\^&(U%% \3PWN#)C]^MWY^-A[\@XV]-OM0!ZB75<[F QUR:7<N[;N&[&<9YQ
M7GD^D:7?>(?',=W:0S*MK;R;7&0KF)SN ['WZ_G4-A:VD!\ :E&BB\OH@ES<
M$Y><-:DD.QY8;@, ],#% 'I&]00NX9/ &>M!=58*6 += 3UKR671--F\"ZU>
M01 :I9:M<+8RQL?,BE$_[M$],Y' ZYJSXRO;*6T\2NKP17]H;;S'G?,OF*$8
M>2O!11G.><G=QWH ]19U7.Y@,#/)[4ZN&;3M'UCXE7T=Q!;W=M-HT,C*V&1S
MYKC=CH3C&#VXK(L;1IOAOX:\4QPBZO\ 0XUFR0&:2%25D3/LN2/0J* /4*J:
MGJ,&DV$EY<D[$P JC+.Q("J/<D@#ZU0\.0130W&M"%4DU63SP=F&\K 6,'O]
MT!B#T+&L[QWO_P"*=QGRO[=MO-^GS;<_\"V_I0!TL4DBVZO=>7'(?O!6^53Z
M9/7Z]ZE) QD@9Z5R7B2?3)?%-K87?D"<Z?*X:^8&!4+*#A#C=(<8ZC SUZ5R
M^AK9:K%\/1<M'<LT%S#-N;)8+#]QO4<C@^OO0!ZJK!E#*00>A!K&M=;GG\77
M6C-#"((;..YCE1RQ?<[+@\8'W3ZUPIN8]*T:^M$Q#I$/BS[/=(O"0VI"L5/]
MU-Y (Z8)'>N@TDZ7#\4=02P>U43:3"Q6%EPS"1\\#OMV_I0!TVM7LVFZ)>WU
MO$DTEM \H1W*AMH)QD ^E.TF^.HZ397;A5DN+>.9D4_=W*#^55_%#*GA/5V8
M@ 6,Q)/;Y#7':99V5AK/@6XM8HXIKZPE2>5?O3@0(P#'JV"!C/3M0!WEH]V1
M<&]6W3;,PB\ER?W?\);(&&]1TJPK*PRI!'J#7G.G6:SZ#K=E9WL%C)_PDDHM
MS*NZ%G5E98W']TXQCZ5T?@RX:6VU&&;2XM.NX+UDNHX&W0O)L0[D/H00<=0<
MYH Z,D 9/2D#JR[@P*]<@\5R_C*X:'4?#T=SC^RIK_9>;OND[&\H-_L[\=>,
M@5SGB6S2WB\;V]M&HTQ=.28Q@8CCNB&SM'0$J%)QZ@]Z /3 P;."#CTK&UO6
MKG2]3T>VCMXI(M1N_L[NSG<GR,W QS]WU_"IM!TO3M/LA-86\<9ND225UY,K
M;1\Q/<^_>L;QM'#<:IX7MY\%)-4P5W8W#R9,CZ<X_&@#K%96&5((]0:171EW
M*P('<&O,;J5-$MO%-M9(+?3;75[1IXH$XB@98C+A1V/.1TQFIM9L=!?PYXGO
M=+U.*]%QIA>6*W\OR$90=CX48#G]0* /20P;H0?I6-KFM7.E:CH]O';Q21:A
M>"V=V<AD^1FR!CG[OK3_  YI>GZ?IL<UC;QQM=11R3.O)E;:/F)[GWK)\<1P
MSW_AB";!635U!7=C</*DS^'/ZT =8K*PRI!'J#4<KNUM(UJ8WE"GR]S?*6[
MD=L]:\TO)$T2'Q9;6""WTZUU2S>>*W3B*!EB,V%'8C.1Z9K2>QT"73_$%YIF
MIQ7J76EL9XK;R_(4JIV.0HX?K^ ]J .XMY)?LD+W1B68Q@R>6V4W8YVD]1U_
M"I"Z!@I8 GH,]:\XBT_3M0O/ 4%Y#'*EQH\J2(W24"&+ /J.3Q4VJ0#1M5FN
MX;:TU/2(;VTCEM_NW.GR+Y2Q^6?XE^X=O!^8^IH ]#IN]=^S<-V,[<\XIU>6
M:CJ&F/=6][:S06[1^)T65II ;DGS-DA)R-D>. IS\N.G2@#U$NJ]6 Z=3ZTD
MC[(RV5![;FP">W->9ZCI>EW;_$222VAE^SQ)- 3R(W^RAMZ^C;N<CFM&PU&"
M\\4V%OKKQ/!)H<4MH+D@QR2'_6MSP6QM]\9]30!TWA;69]>T1;ZY@C@E,\T3
M1QL6 V2,G4]?NUL5R7PS>V_X1 0VLB,D5Y<J C9VCSG(_3%=;0 4444 %%%%
M !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M%%%% !36570HZAE88((R"*=5'5]9L-"LC>ZC,88 RH7",P!)P,X!QR0,GB@"
M>ULK6QC,=I;0VZ$Y*Q1A!GZ"F'3-/**AL;8JA)4>4N%)Y)'%4=.\5Z/J=[<V
M4%RZ3VL?FR)/$\1,?]\;@,K[CBEB\3:9+>):;YTFEA,T*O;NOG(.I3CYL9'
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
MD\T4%G+Y-P)+:17B?C 9-N1G(Y(QS4EEXLT:_P!0GL(;IDG@B\XK-$\8>/\
MOJ6 #+[CB@"_'IFGPPR016-M'%*=TB+$H5SZD8YJ:&"&VB$4$211CHJ*% _
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
M;WEE]J4)<7,2#YT;.,D$G!8 G;]*[ZZN[:QMVN+NXBMX4Y:25PJK]2>*EZT
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
M9U65"C%&*L 1C@CD'W%4=.M-,T&.'38KC$MPQ91<3EYIV"\G+'+$*OX >@H
MH^.+.[OO#$D=E;O<S1W%O-Y28W,$E1FQGO@&JL'VIOB#+JDFGW<-JVD)"':+
M/[P2,Y7Y<\[2/;/'6NKHH \QT[3-6TK1O#5[+H-Q>KI\,]K>V(4>:@=U8.@)
MPWW1T/?ZUW6@01Q6,DD6DKI:3RM*(-JJYR!EG"DC<<>IXQGFM-F5%+,0J@9)
M)P!4=M<V]Y L]K/'/"V=LD;!E.#@X(]Q0!R>C6MWX/UC5K>2QN;G2]1O&O8+
MBVC,IB=\;T=!\PY P0"*G\4VVJ:QI=M=6-F^[3[^"\CMW(62X6-LL,$X&0>
M><CG%=510!R%Y9SZGX@DUV*TN(X(-)EM0LD122:1V!V[3S@8Z],MQT-4+>PO
MH])\#PM87(DTUT^UCRC^ZQ"R'/K\Q'3-=]10!YCXH@N8=$\=3RVD\<5U+!)
M[H0)%58T.,^X/6N@U2TO-6\0VFKZ?8NK:98W0 NHS&)I9%4)'@XR!@DGIR,'
MK6]KFC6WB#2I=-O'E6WF(\P1-M+ $$#./4#I5Z-2D:J79R!@LV,GZXXH X'2
M;?5#X@\/ZG<:3J2B*QFANVE"@1R'R_NH&PJ_*<!1S@<&J]KI^I1>"=%LWTN[
M%S:ZVMS+%Y1RL8N6E+>GW2/Y5Z110!Q^N:1<-XMMVLBHM];@,&I1DX)2/#!\
M>ZEHSZ;UKIM3-RNDW9LH4FN1 _DQ2?==]IVJ?8G JE9Z=I.D:M(XNF:^OV=D
M6YNB[8^\RQJQX7C.%]/85KT <!I-MJ3>)-%U*YTK4$C&G2P74EP441N3&3\H
M;")\IQ@#..G>J&A3Q06.BQ:GI>LPV.F3&>U8VH:./=N"%Y58[E57/(4=B:]*
MG@BNK>2WG0212H4=#T92,$?E6/9^%]/TU%'VJ^DMH #'!<7CO%&!TX)Y QQG
M.,4 <MJ=OKE[(6FT6]::SUZ*X582BPF!900RC<-[$<DD9!SR!Q5^\M;U]:\6
M3C3[DI>Z7%#;D1DB215D!4?BX&>GX5UMIJ%C?H\EG>6]RD;;7:&57"GT.#P:
M?;7=M>Q>=:W$4\>XKOB<,,@X(R/0T <9;VEZMWX'8V%T!I]N\=WF(_N281&,
M_P# AVSQSTI?#VF7MAKEF^F1WUIITXD>_P!.NT)CM7QD&%CZL>BDC!/3I79I
M<V\EQ);)/&T\04R1JX+(#G!(ZC.#CZ5+0!S?@.WO+#PS#IU]936LUH\B,9,8
M?,C'*X)R,$<^]<]X@M=<U&+5(7T>\>2'5(9K<6^U87@62,[OO#>Y .<YQCM7
MHM% '&""\_M_Q7</I]TL=]801P'R\[W5) RC&><N!Z=><56N-.O(/AQHMVD+
M0:MH,$,D<<HVEG10CQ?1QE>.N17=UDMIVE:UJ4.K+=/=&V_=A(KHF#<K9!9
M=I8'UZ''H, %K2+-[#3(H9F#3G,D[#HTC$LY'MN)Q[8KCHK"YM-2U;2=0\*M
MJL=[>27%K=[4:!ED;=MEW'Y=I]CP.!TSWU% '$^*-.OM0O1J^GV+"[T%E-LC
MQ<7V2"Z?[O'![-SP "5EU(?\+&TR[DM+I!)HLVZ/R2TD1\V/JHR>O'&>OIS7
M:UFOHEO)X@CULS3BZC@-NH##9Y9()&,=R <]>* .*D\/ZIIT4>M1:4]XIUBY
MO9=-!'F>3*NP$#.-XP&V_P"T15S5[.2ZT..;3_#<UDTVIVT[0B%1,RQNK,[A
M20.!@#.>/? [NB@#B;ZTDG\2Z_-/H]S>6-YIL$(01E?.VL^]03C!PW!XY[UG
MSZ#KQTJ_M+"2ZU&RMGM;FQCU(;)7:.3>\!9@"5P!@MW./4UZ#<W-O9P-<74\
M<$*8W22N%49.!DGWJ6@#GO#IBO+E]03PU)I#^5Y;R7,:+,YSG:-I)VCWQDD8
M'6F:U#</XU\/7,=K-)!:K<^=*D9*Q[T4+GZD'IT[UTE% 'F\FG:DW@B]LAIE
MW]IDULW*1>4<F/[2)-WI]T'^5:=C)JNC:QK%C)H-SJ-MJ=T;NUN$"^7\ZJ"D
MNX@IMV^AX[=J[6B@#C;N#4;'Q7K$PTVXNTU/3HHXI8%&Q73S P8D_+]X$=?;
M)XJCH]CJ-L_@<3Z7=Q_V=:2Q71* ^46C55S@GJ0?<=\5W[,J*68A5 R23P*C
MMKJWO(%N+6>.>%L[9(G#*<'!P1[@B@#GM'@N8O'GB"YDM)TM[J*V6&9D(1S&
MK!AGZL/KVK&\,:?<VL%IH.I^%&ENM.F7;J+HC6[*K964,3G?CH ,Y].<=_10
M!YC=V.MP>!=9\+/HUY<W?VB1X+B)0T=PCS>8&W9X/)!'6O0-19Y=$NB()/,>
MW8"+&6R5.!QGFK+W-O'<1V[SQK-,&,<;. S@8R0.IQD9^M2T <!8V-_#!X$5
M]/N@=,C9;S]T?W)\@Q\^OS'MGCFMKPG!<P:EXA:>UFA2YU(SPM(A42(8T7(_
M%3[UTM% '&0-JNA>(M:M9-"N=3M-5N!<V\\.PH"8U1DDW$;0-HYYX_*I[2&_
MT/QAJUY=6DUS:ZI# T<EK&7$<D:;&C('(!Z@GCDY-=910!Y[H^@:AHMYX1AE
MM)76S^V/<M$NY+<S<JN1UP3CC/3/2H)]/U)M(U.%=,O&>7Q(M[&OE'YH1(C;
MA^"GCK[5Z310!P>N:/J.L:UXB2UMYHUOM)BAMYI(RJ-(C.Q4D],[@.?4T];*
M7Q+I-Y /"SZ+?/8S6[7-RB#:[H5VQL"25)Y)X&![\=S4-S=VUE#YUW<16\>0
M-\KA1D]!DT 8'AG4=3O8+.VOO#]Q83V<7EW$TX39D+C]T026R0#TQ@'VKG(]
M.U5?AAIVC2:3=K>6=Q;J\>T'<(Y@S,,$\8'7OVKTBB@#DK*.\T7Q+KLT]C<W
M=IJACN+:2*,OEA&$,3#^'H,$X&#R16;H.@W^@ZAX5MI[>:5;#3[B.YFC0LD;
MR,C!<]P,$9]A7?T4 <WX*@N+:QU%+FUFMVDU.YG02IMW(\A92/P/X5TE%% !
M1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%
M%% !1110 4444 %8_BG5;S0]!GU2TMX[C[+AY4?/^KS\S#'H.?P-;%1SPQW,
M$D$R!XI5*.IZ,",$4 <__P )0T?BJ;29WM5MQI_VV&X!)WJ#\P/88&&]P13/
M[8OAK/AVVO\ 3+59M0BF<R!B7MV5-Q4 CT(!.>QXJ"'P#!'IFD6LE[))-IT^
M]YR/FGCV[#&?]DH$7Z**U=2T6XOO$>D:K'=1QQZ=YNZ)HR3)YB[3SD8QCT-
M'%:Q>ZGJ?P^\8OJ;P2B"ZGAC"*?DV%5&,]!@?F3776.MZA_PE T74+2WB2:R
M-U;O%*6("LJE7R!S\P/''7ZUGWG@J]N-'U_2H]5A2WU>X>=2UL2T1<@L"=WS
M=..G7G-:G]AWC>*;36WNX,6]F]JT(B.6W,K%@=W'*CC!H GUK6AI<EG;1H7N
M+V1DC_=LX4*I9F*J"3@#H.Y'09(S+;Q'J\MG+Y^D_9Y8;P0/<S*T4/DX)\_#
MX.!C&WU(YJ[XET"?64L[BPOC8:C83>=;3[-ZC(*LK+W4@X-4[[PYK5_;V,T^
MLPM?VMVMR<VQ^SL I 7R]V>,YSNSG\, $=GXS:?3)'>WB>[&J?V9$$8B.5^"
M'R>0NTY/7H<9JAXZEU.;P+XEM]4LH52")#;W,9^6<'!)VDDJ5/'/7M5B7P+=
M36.H0MK(6>;4AJ5I/';X,$X Y(W$,.,8XX)R35K4_#6LZYX7OM,U'6(#=7J+
M&9(K8B*)0<G"%LECW)/IQQ0!:LM;U ^*WT74+2"(269NX'AD+$*'"%6R!S\P
M/'%+XEUV]T1],2TLHKHW]XMK\\Q0JQ5F'8\?*<GMZ&G?V+>-XLM]<>[@VQ63
M6CPB(Y;<RL6#;N.5'&#67X^EV3>&4CGBBF.MQ,GF\CB.3J,CCD#\: *E]XYU
M?2;'78[_ $NT_M'2(HYP(YV\J:)S@,"5SD$8(./K6Q+KFJ6U_::9=6EI'>:C
M-(+4)*SJD*(&9GX&6&0,#@DCD55UCP=/K5EK'G7D45YJT4=N9%B+)#$A)"@9
M!)R22>.HXXJ_J^@W.HSZ5J4=U'#J>F.S))Y9,<@==LB%<Y (QWR,#K0!1/C-
M[634;"]M$_M*RN8+=$C<B.X,Y B8$\J.N1SC!ZU:N]=U+1HKZ75+"-X8O)6U
MG@8@3O(P0(5Y92&(YYR#G':JVH>"EU6VU.2XO#%J-_)#*MS"G%NT/^JV@GG!
MR3GKN/3C$EQX9U/6="N;'7=762>55$4MI"8EA96#*^"QRVY0>H'& !DY (F\
M6WFGOJ)U+396MK6U%Q%=1V\L22,6V^40XX?)&,9R#GC%._X2N[L;NZ.J:?(+
M"&S:Z-Y%;RHJ%>L9W@9..A'7T%2?\(WJFJZ+=Z=XCU=+OSX#"IM8/)"\@[R,
MG+Y /8#GCFD@\.:M>Z5<:;XCUE+^&6W>W'D0>26##&]SDY;'3&!]>, &7J<U
M_=^)?!MY=P6T:3W$CJJ$EXLP.0A)^]P>HQR.AZU)-XMN[#PWKVJQ:1:)-IVI
M-;O$DI D^X-Y.T;F.X>G3K4\'A773)HGVS6;24:+*6C<6C!IEV%/F^?&<'M]
M>:2Z\%WMSH6N:8=2@4ZM?&[\S[.3Y62IVXW<_<'/'4T 7K?Q#?0^([K2M3M(
M(PEC]NA:VD+G8&VLK9 ^;..G%4[;Q=J%P?#TJ6-M)#KX8QKYS*UN A?DA6W?
M*#V&#^=6K[3KJQUR7Q3-<HZ6VEO ]O#;LSM@[RR_-UR.!C\:YCPQ/<6O]G&P
MU?PYJS_*IA@B87(5R/,(PY"'NWR@<<XH [;Q/?/IOAG4;Y+2&[%O;/(T$S85
MU"DD'@YXSQWK,D\0ZI_;&GZ39:?:?Z9IQNDDDF950@H,$!> -W;.?:M?7]-D
MUG0+[3(IE@:\@>$R,FX*&!!.,C/!]:SH?#M]%KFFZF;Z!OL-@UFT?DG]YDJ2
MP.[C[HXY[T 6_#&LR:]HB7L\"P3B22&:-&W*'1RAP?0E<_C6==^)-1M;_7;(
MVUJ)=/M%O+0,S#[3&=V<^A!7;WY(J_X8T6?0=-ELY[J.XWW,LX9(RF-[EB,$
MGH31JOAV+4]<TW5#*T;66Y9$4?ZY#A@I]@Z*WX'UH @TK7)=<M])DA2WD@OK
M0W%SD']V. % ]<DCG^ZWTKF?!6MZAI7A3PG'):6YT^^86@<2GS5<AV5L8QM^
M4C&<]#[5U6A^'%T"/41:3;C=3O)"'&5@4DL$ _NAF<_\"K+MO!=[;:!H&E+J
M4!_L6[6X$AMS^]VA@!C=Q]\\\]* )?\ A*5L)?$LUUIT,3:9-#'^Y;+7+.B[
M-S$#D[E'M[U-JLNK/IVKVFHV-N]H=-DD2YB;Y=^"#&5/)(ZANA] :BNO!C:C
M_P )%'>WJF'6VC<>5&5:!HU55.<\XV*>W-3PZ+K\VD75KJNMP7$\ML]O$\5J
M40;A@NZ[CN;Z8 Y]: ,OPOKFH6=KX3TRYM+<6FI:<JP2)(3(K1PJV6&,8(!Z
M=*N_$M5/@:[8H'99K<KP,Y\^/I3H/"MY"_AD_;X"-!B,9_<']^#'Y?\ >^7C
MGOS6AXJT2;Q#H4FF0W26QEDC9I'C+\(X?&,CJ5% &>WBNYTW4M4M=;M8(DLM
M/_M!'MI"^8\L"IR!\V5[<'-2V&OZI-K=M9W&ER&VNH6?SX[>5!;.!G8Y=0""
M.C#'(Z4E_P"%9-4UN[O+VZC-K>:8=/E@2,AL$DE@V>N6]*DT#1]=T\10ZKKB
M7UO:KMA$=OY;N,8!D.X[L#L .>3F@"WJ^LFQOM.TVW17O-2D=(MYPJ*BEG8X
MZX&..Y(Y'6L+4_&M[I5AKZ2V,#ZAHJ)*1YC+'-$X^5QP2#P05]1UK9U[07U2
MYT[4+6X%M?Z9,9()&3<K!AM=&&1PP[CIQ6;JO@Z75M/UH27D4=[K,<<,DHB)
M2*-.BJ,Y/4G.><].* -W3)=3E29M2M[>#+YA$,I<[,#[V0,-G/3(K)/B=Y?$
M=SHT#6L=S;3Q*;:X)62:)@I:5#G! !;@ _=.2,XKH+=94MXUG9'E"@,R*54G
MV!)Q^=<]J_A>?6YP+V>W:*.[CN+:<1$3VP4J2BMGN5//8-T.* .=L]8OO#=C
MXFU&TLK:2RM=;E:X#R%6*GRP0@ QD9SS71:MXFNX;K4+72K3[3/IR*70PROY
MKE=PC!0$*=I')SRW3O52Y\%WMSH&O:4VIP ZQ>-<^8+<_N@VWY<;N?N#GBK-
MQX<UF+7Y=7TC6(+5KV-%OH9;8R([(,!T&X%3CC&<=,T ;UC=/>Z=;W;6\EN\
MT2N8)AM:,D9VMZ$=*Y2#QB+30IK^YL[:P4:O+93.@+Q0D,097( )!(Z\<L,X
MKKX(C!;1P^8\K(@7S)#EF('4^]<]I_AO4M-LIH([^UE\_49;R5)+<[)$DW%H
MR-Q[L"#[=#0!L:3=3WEB)YS;MN=O+DMWW1R)GY6!]QS62=:N$\2ZS9IIMKYM
MG8QSQR^80TP)?"L=OR@;3QSU]ZN^&]!B\/6$UK"5"37,DXCC&(XMQ^X@[*/Y
MY/'2J\GA^\/B#4]42\A OK);58S"3Y>W<0Q.[G[QXP* ,[3?%VJ71\/3W5A:
MQ6FN1X0I*S21R>67!(QC:<$=<]/I5BS\2ZA/::O%-;VT>I:?>"U2 %BLF[;Y
M;$]0&W?A@]<5';^$;Z"R\-VW]HVY_L)@=WV=OWP"%,?>^7@^_-:4GAR%_%L>
MOK*RD6_ER0@?+(XSL<^X5W'XCTH A;6]0O+O4K728+>632@JR^:6 GE*[BBX
M^Z,$?,<\G&.,UBR:M:^(-<\"ZS:QE4NGN6 8?,O^COE2?8@C\*VAX?O;'7-1
MU'2;R&)-353/%/$6"2J-HD7!'48RIZXZBH(O!PL9?#BZ?<I';Z%OPDD99IBZ
M%"201@_,3TZT %OXEOB==MKF"W2^TR1%AB4L1.' ,9]MQ.W'8@\FFZCXGU"%
M[^#3[-;JYTU%\Z-8)7$TA0.8T*@A>",$YY/0=:OW?AR&Z\4VFN^:R-! T4L0
M'$W(,9/^Z=Q'N1Z53NO#FK0^([G5=$UB*T2_""\@GMO-4LHVAT^88;: /3CO
M0!+#KUSJ]X^GZ?:I%-#9Q7%RMZI'EF4$I$5'(.%.3VXX.>(/AKG_ (0#3,J$
M.)/E';]XW%//AJ_LO$)U?2=21&N+>.WO([N(R^;L^[("&4[@"1Z'-7?"NBS^
M'O#\&ESW2730ER)%C*<,Q;&,G.,]>/I0!FZMXKO-)NLSVUO'#]NCMEA:3,TD
M;E5\X8. -S8P1SCJ,XJ9/$[W/B&YTFW:U2XM;A(VM9R5EDB(4F5.<$#)X /W
M<Y[50O/!.I7,>HP)K,*PW>HIJ$9>U+2*P=6V,V\94!< #!Z<\8JYJ'A:YU:>
M ZA<VTOV:\2YM[E82L\(5@VP-GH2,9]#C' - &WJMU=66F37%G:?:[A -D.\
M(#D@9)/0#.3["LW0/$+:KJVJ::YMY38>4RW%N3LE60,1P2<$%2.I%6/$VCRZ
M]H4VG0W7V:21D97*;E.U@VUER,J<8(ST-5M(T&_L?$-]J]SJ$,QOX(4EBCMR
M@5H]P&TECA<-T.3GN.E ":[KFIV&MZ9I>GV5M.VHK-MDFF*A&1=W("GCD<C)
M]N]4[SQ3JB1WD=IIZ3WFG(@N((XII%EF*!VC1U7 X88+=2>@ZUI:IHMU?>(M
M)U2&ZBB33C+F)XBQDWJ%/.X8P!Z&J=SX;U:#Q%=:IHFL16D6H!/MD$]MYHW*
MNT.GS##;0!SQQSF@"*X\7RG41I\,<-I>/9QW,%M?@QO<E\Y13P RX (Y.3C
MQFIG\1WBW/B2W$$!?1HHYHVR<2AD+X([=,9_'VINM^%)];L[C3KFY@GLY418
MGGB+36S  %U;/+'&>W/KG%-OO"M_)J6JS6.I110:M:+!<+-"7D#(K*&5L@<A
MN<@]* *5Q=_VGXB\"ZFT*QRW<,\I YV[K?=C/IS6AX,U#5=1_M>34989!#J4
M\"^6"-NPA0 #VP/SS26_A6]@E\-.VHP.-"A:(_Z.1YP,?EY^]\N ,]^:NZ#H
M=QHMUJ1-XDUM>7DEU'&(MK(TARP+9.1GIP/QH 6ZUB>37SH>GK#]I2U^TRRS
M9*HI;:JX&"22#WX [YKF/$?B"[UKP!>RQ1):SV]^EC?1%BVUQ/&K!3QE2&[C
MH:Z2]T&X_P"$EBU_3KB.*X^S?9;B*9"4FCW;E.0<A@<\\Y!Q5&]\&R3>&KG2
MK:^CCGO;W[;<W#PE@\GFK)PH88&5 ZG@=^M &_:64<1EGDM[=;JYQ]H>),>9
MC@9/4X''-<)H&LW^@Z$LT=E;MIQUN:WE)D(D >Y905 &, D=3SST[^AKYGE#
M>5,F.2!QFN1_X0N_/ALZ0=3MRQU'[=YWV8XSYOF[=N_UXSGI0!9;Q#+;:OXF
M4Z5$SZ5:13H8&S)= K(0IXX^[@#G&35_P]K1UN.2YANK*[LRB-%/:DCYCNW(
MRDD@C"]?7H*K?\(_J*:QK.I0:E%%+J5O%%'B GR&C#;6^]\W+'CBI=(\.#3]
M=O-886\,UY"D<L5JA2-V4DF1L]6.<>P'4YH EOM8E&O0Z%8K']KDMFNI))<E
M8XPP4<#!8ECC&1T)]CB2>.+U;6-4TR$WL>KIIEU$9R%5F(PZ';RI!!YQC/>M
MC4M"FF\06FO:?<)#>00M;R)*I9)XF(.TX.00PR#^E9UUX-GD@1H+^)+IM534
M[B5X"RNZXVH!N&%P .IZ>] '1:<;][%?[4BMX[DE@ZV[ETQDXP2 >F.U<%HV
MLW_A_2-2O(;*W?3HO$$\4^Z0B3:]QLR@ QP6'4\\].I]&YV]LX_"N/D\%7TG
MAJ_T<ZG;[KW4#>F;[.?ES*)=N-W/*@9STH LZIXIO8Y-172;!KQM-<1O$(96
M,[[5<JK*I"D!AUSD]@.2B>(];O=>FTRQTJV016]O<YNIF1@DA((8!>'&T\=.
M.O:E?PWK-KKMUJ&D:U%:0ZCM:\@EMO, D"A=\?S#!( X.1QWZ5<LM!N;/Q1<
M:M]L22">TBMO*:,EP(RQ#%]W).XYXH L>(M970=&DU%T+)&Z*[8)$:LX4NP'
M.%!R<>E9[>)G@TV.Y8VUW]KO%MK*6TW/',"F[?A=QXP_ S]WKSFMC4X+RXM0
MEC<1P2B16S(A=64'YE(R.HR/;K7-2> 5-A=+9W:Z;=27Z7]L;:/]U;2JH7A#
MU!&[/3.[IQ0 V]\8ZQI^EZG<3:+N:QG@1)F62&.Y21@N4#KG<I.""<>]7+S7
M==TFZT[^T[.PCMKR^^S/)#*[^4&'[LG(')/R^@.#SG%-U'PWK6L^'I['4-9M
MVNKAXB9([8B*,1N'&$W9))'))_ 8K6UW1QKWAZYTNXD"O/%@2H,;)!RK@>S
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
M20"Q Z#J:ALKA[NRAN)+:6U>1 S0RXWH?0X)&:YW3-17Q/:C5+&ZN(+=+$*
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
M!H ]%HK.T>P>R@>22_N[M[C;(WVAPP0[1D*,?*.^*T: "BBB@ HHHH ****
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
M=00B%) [?<!R 1G#8))&<X/-9NO^(9+6/29]*NK2>"ZU.&TG8?O/E8X.U@V
M1CN#UK9M]4T^[MY+FVO[::&$D221S*RH1U!(.!B@"/5='L=:@C@OXGDCCD65
M0LKQX=3D'*D=#4+^&])DO+F[EM6EENX?(G\V9W62/LI4G&.3V[FDO]7C?0M0
MO=(O+2XEM8G8,&$J!E7.&"D?SK('B'4S#X1ES!LU@(+H>6<Y,!D^4YP!D>AH
M W+#0]/TUTDMXI"\<?E1M-,\IC3CY5+DX' Z>@]!3]5TBQUJU%KJ$32PAU?:
MLK)\RG(/RD=" :I>,-3O-&\*:AJ=@8A<6L)D7S4+*<>P(J]9ZE9WCM!%>6\M
MS$JF:*.12T9(_B4'(_&@"#_A'M-_M"?4/+F%S<0B&607,H+(.@^]CC)_,U6;
MP;H36%G9"TD2*P8M:LES*LD!/7:X;<![ XK1AU73KB62*#4+662)2TB),K%
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
M$KB*208.YH\[2<@'..2 >U7+S4K#3@IOKVWM0_"F>54S],GW%6 00"#D'H:
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
M=8"PCE)D,T\\GFS2E0N]L!<X' X4#\.YYH \Y\3ZE;2VNOPQ+]CFM]6MY)8
MC-)-M>+]^Q.=J8&!C ^7KSBM#6;M[37;V\TN\AODFNK;[9HURN)';;%LDA/W
M@0-AP1C*GTKT*B@#&\8123^"];BB1GD?3YPJJ,ECY;< 5S46J0IJ_A75)I0=
M(%@\ N&&(XK@JF"Q/ R R@^N17?44 <OX/MWCU'Q!<0<:9=7_F6F/NL=B^8Z
M_P"R7SR.N#5?Q);W-AXIM+^RMO.&L6[Z9.NW*A\%XG8=P!Y@/M7844 <7X.M
M;JV9]*OU;R/#<DD$$TN,2AAF-\]BL3;3_OUS%I+IT7@/2+D-;I.OB%9&<X#
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
MBW?F2F0.&R6(^8GIDGW)[55L_#6MVO@_PW9BTB:]T:_6>6(S +(H$@.UN?\
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
MASR>E %W3;1[#3K>S>;SO(C6,/LVD@# R,]>*RI?##R7^M7:WY4ZQ;I!(OE
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
M)V#RLT"G>P.<GCDYH YZ]5AXH\5Q"XN IT>*50)W&QOWO*\_+T'3%9JB/1O
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
MK;POH-GY/V?1[*(VY8Q%85!0MC<1Z$X'/M0!Y\EJ4\#6>J)>7GVV#6C%'/\
M:7)5#=E".3@Y4\YSFMF:T:Q\1^(=)T[4)+"*XTF*99))G<1S,\B;\DDC.!DC
MZUU7_".:)]D%I_9-I]G$GF"+R5V;^N['3/O3Y= T>>:6>;3+626:/RI'>($N
MG]TD]1[4 8?A*Z<:OJ%A?Z4-,U**&%I8X)-]O*F7 DC],G=D'G@=>:DUC='\
M0O#96:4"6&[#Q^8VQMJK@[<XR,GG'>M^TT^TL-WV6W2(OC<0.6QT!/H.WI23
M:987-[#?3VD,EU;Y\J9D!>//7![4 <UX4LK6+Q9XH>*)5:.\B52#T!@3/ZYJ
M;Q-N3Q7X59)95WWDJ,@D8*P\ESRN<'D=<5NVNDZ=8W,US:V4$$TYS+)&@5I#
MZL>_XTZZTRPO;B&XNK.&:6W.Z%Y$!,9]5/:@#FO!5I:6^K^)C%&B2#5G48/.
MTQ1$_KS4VM;H_B%X9VRRA98KL.GF-L;:BX.W.,\GG%;\6FV,%_-?Q6<$=W.
MLLZQ@.X'0%NIZ#\J)M,L+F]AO9[.&2YM\^3,R O'GKM/:@#C=)FN+#Q)80:I
M;+<"\GF:QU>UDR+C*NWES*>00N<=0-N!CFMWQ;#?SVEFNFM;23K<[_L=RQ6.
M\4(V8R?7^(9XRHS6C:Z-IEE,);6QAA==Q4H@&TM]XCT)[XZ]ZEO-/L]06-;R
MVCF$3[X]XR4;!&X'L<$\CUH X2._AF3PQ+;07.GLFMRVUQ!-)DQL1*S1EAPR
MANG; %4=?D$FE>-X8YB8HM2LE0*^1'EH2V.P^;/XUZ'<:'I5WIPTZXT^WEM
MV\0M&"N[.=V/7))SUY--7P_HR)<(NDV86Y54F7R%Q(H  !XY  &![4 <K>:<
M=$\7/!I>H7-K!>Z5<RWK2SO*L#+@)-\Q)!R3]=IK/EU/4=$TW6+>?338ZS;:
M7Y@GM'\R"XC# &91U#C))SR>,DUWT&CZ;;6TMO#90K%.NR5=@/F+C&#ZC!(Q
M3K72K"Q#"VM(H@R!#A?X1T7_ '1D\=.: .,N!_95K=>(=%UFWG9M*F>.TM8F
M*3E5W+*P+MR#C)ZG."<FD=;%;OP7=V5T97O9_P!]*)B6N1Y#DE^?FPV.O3IQ
M77Z;H.D:.93INF6MF9SF3R8@N_ZX[>U8=]X1BM=7TBXT'2K&UAMKPW-ULQ$7
MRC(  !S]\GM0!SNH7'D^!/$Y^TM&]MK<B0'S2&C_ 'J853G@;2>!VK0O0/$&
MM>(M,O-6@T^>T=!;-(K"2"+RE82QMO4#YBQ)QV )Q@5U4_AK0[JYN+FXTBSE
MFN@!.[PJ3(!C&?7H/RIUWX<T2^N+>XN])LYI;8 0N\"DH!T XZ#TH Y:/38M
M4\<R65[=W5W;RZ#!)(/.DC61S(ZE]H/RY !P.,^]9.D!-2_X5]=ZBWGRO#=)
M)+*W+!8CC)_"O1'T?39+U[Y[&!KIT\MIC&-[+_=)ZX]JB7P[HBVL-J-)LQ!;
MR>;#%Y"[8W_O*,<&@#G;33HM6\3^-;"5WC6;[*OF1L59#Y'# CH1UI/"MQ+K
M#6-A>1%+GP^&CO<9 :<?(AS_ ! J&?ZE#70W6F_8H[R^T2PLAJEP 2\H*"4@
M_P ;*"3QG%2:18S6<$LMV8FO+N4S7#1 [=V H SS@*JKD]<9[T 9/C747L$T
ME'N$MK.ZOUAN9I 2@4HY4-@CY2X4'D#L>#BLJ;2+RTM[NUTK6K2ZDEO(IXM/
MD5DM_NL6A!W-@,%+8Z#'3!KM+RRM=0M9+2]MXKF"08>*5 RM]0:J1^'=&AT^
M/3XM+M8[6)_,2)8@%5_[P_VO?K0!P=Z]EJFEZ07TV6RFM_$T4%Q:S/O\ASRR
MJPX*D$8QZX%2>,KJ'[!XDN=.G<S:;'!MFDFVBU8*"JP@<\@Y)R,YQSC [R71
M=+GL#83:?;RVI;>89(PRELYW$'J<\YJ.?PYHES<27$^D64DLL7E.[0*2R8QM
M)QTQQ]* .9N]+L]=^)%W;WAD> Z+"2L4S1Y/G2=2I!./3IGZ5EV,MW+I/A$7
M<\EP(]>DC@GE.6EB59E1B>_ '/<8KO)] TBX,)ETVV8P1^5&?* V)_<&/X?;
MI4EQI&G79M_M%C;R_92#!NC!\HCIM]/PH Y!HKF76_&MG;:D]K(Z6BP2S2LR
MQ.Z'CKE02<<=,\5D:Y=EO!?BVSN]*.EZA!:PF>".0/;L"3M>,]@V#D>WKFO0
MGT+2))+J1]-M6>\ %RS1 F8#IN_O?C0^@Z1+:26DNG6\L$Q#21R('#D=-V>N
M.V>E '+7JS:%XQO1ICS/)+H$]R8GE:3S9T=0C8)//S$<5%HL<=Q%I'B"QUR&
M65K=@\$,;;[YC'DK)ESEE()SC(P>U=BNCZ:E['>K8P"YB3RXYO+&]5_N@]0/
M:F6.@:/IMY->6.EVEM<3_P"LEBA56;N>1[T >?EK74_!_A77)9?-OI]8LVN)
M]YW,YF&]#[ ]%Z# Q75_$2&.;X?ZT)$#!;5W /8@9!J\WA3P\\\D[:+8M)+)
MYCDP*=S=<GCKGFM.6"&>W>WFB22&12CQLH*LI&""/2@#B=1L+2;Q1X0LERL!
MMKS<L4A7/R1DC(.<&J>G7,4.DG2YI[EUC\236EI!YO$JJS,L4C-D^6!G/4G
M'/2NUB\/Z- ]L\6EVD;6BE;=EB4&('J%],^U,?PQH,EM);/H]DT,LHF=# N&
MD_O$8Z\GF@#SR["7'A+6K>Y,;K9>)8XX$#EEA3S(,JN>PWL/Q[5ZG!'%%"L<
M( C3Y0 >F*I'P_HQ@N8/[*L_*NPHN$\A<2[>!N&.<8&/2KBVT"6HM4A1(%38
M(U4!0N,8 ],4 >7:';K9^%/!^J02S+<R:JL#,)FVF)Y) R;<XP>O3K6CSX@7
M6)+C7(=-O]/U*0"3RV,]LB/^[V_. 59 .-N&R>IKLAX;T,6L-J-)LQ! _F11
M"%=L;?WE'0'W%.FT#1[C54U6;2[22^CQMN&A4N,=.?:@"IXTO[[3/!FJWNG9
M^U0VS-&0,E?5OP&3^%8UW#'8ZWX9FT220Q:B7BN LC$7$)B+>8QSRP(!W]?F
MZ\UVA 92K $'@@]ZI6>B:7I^?L=A!!E2G[M ,*>2H]!GL.* .:^'6FPOHL.J
MRRW,UV);J$/+<NPV>>_&"<'[O4\T_P 7K?I?B[M[2+5;2WM#]JT_S?+FC4D_
MOHCTW84CL>.#S736&F6&E0M#I]G#:QLVXI"@0$^N!WIEWI&G7TXGNK.&64)Y
M>]EY*=U)[K[=* ..@M[#7O&FG M-)9S^&ED52[(SH95QNVD'H>GK6?I&J32:
M7X6T^_OHUM;I;R,R7@,B2R1R;8T;YES\N[ )Y('&0*]!.CZ8U[]M-A;_ &GR
M_*\[RQOV?W<]<>U0/X9T*33#IC:19FR+[_L_DKL#>H&.#[T 0>%K'^S=/N+,
M:H=12.Z?8VT@0J<'R@2S$A<^I].U;=0VEI;6-K':VD$=O!$,)%$H55'L!4U
M!1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %
M%%% !1110 4444 %9GB*]MK#0KJ>ZU-M,C"8^U*H9HSZ@$')_"M.N=\?03W?
M@?5;6VMY;B>: I''%&79B?84 :5[K>GZ:K?:IW_=P^=(4B=RB<_,VT':.#R<
M=#Z5;GN(;:V>YGD$<4:[F<] *XKQ+:SSW9O]*_M*SU2+3T\MUM'E@O%RY\B1
M"N 0?7!&_-=;,\W]AN]S"1.;?,D40+X;;RH Z\\4 5++Q9H6HW5K;6FH))+>
M1F2 ;& D &3@D8R!SC.?:I9_$6DVLYBFNPFV40M)L8QI(>BM)C:IY'!/<5QU
MC;746A^!8FT^]62PF7[2OV23,($+H=W' W,/YTBZ?J"^!]:\*7-A<RZA+-.L
M$GDL8IQ+(763S,;1C=DY.1M^E '66OB2VNO$UYH:07 DM(XV:0P/M);?QG&
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
M "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH
M**** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ H
MHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BB
MB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ****
M "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH
M**** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ H
MHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BB
MB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ****
M "BBB@ HHHH ***R;KQ+IMGJ;Z;*;EKJ.'SVCBM)9,1YQNRJG(R"* -:BJ]C
M?6NI645[93I/;S+NCD0Y#"K% !14-W=V]C:2W=U*L,$*%Y)&/"J.234B.LD:
MR(P96 *D="* '4444 %%%% !15.^U6STYHDN92)9R1%"BEY)".NU5!)QW/0=
MZBMM;M+G4O[-V7$5WY)F\N6%E^0$#.[&#R1T- &C1110 456U&^ATS3KB_N
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
M<8'0 < =*N4 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M%%%% !1110 4444 %%%% !1110 4A(4$D@ =2:6N2^)T<+>![F28*/*N+9@Y
M."G[^,$@]N">: .K5T<L%8,5.#@YP:%D1_NNK<9X/:N!O=#L-/\ %\ZZ5;11
M6EQHLS:C$@_=L<CRV8=-Q^?GJ<'WK.@M[#2OAIH>KPP+&DRV::I<QIO8P \[
MNN0#@$>G'3B@#TY98W3>DBLI_B!R*=N''(YZ5Q%MX<\.:]!K=O8ZDM_%J<*>
M=Y/EM!#( 0CKM& _<]^!GME-"FO-9T0WS62IJ>CV<ME&IC'%VH(<K[?*F,?W
MF% ';B1&=D5U++]Y0>12"2,L%#KDYP,]<=:\]\,IX<UG^P[V'5/,U&&)HY;1
M%C$C;DQ*LZXW%0<DEN^#DDC.3I-II]MX,\)ZG!'"ET-<2(7(/SA&GD4INZ[2
MIZ=* /4+?4[2ZO[JQ@F5YK39YP!^X6!('UP,_B*L221Q+ND=4&<98X%<AX?C
ML(/B)XH0I;QW+26[1#:H<@P#<1WP3G-+XGN=-?Q/%8W/D+<'396#WK9A",P!
M"H2-TA(]1@>N<4 =C3#+&&"EU!)P 3U/I7/?#VZ6[\!:.WGB9EM41SNW$$#H
M??I7%RZ)HUSX8\9S201B\L]3NC:.A^>&0!3&$Q]TEL#CKP.PH ]7W#GD<=>:
MQ=2UNXLO$^CZ8L,+6VHB;?*6.Y3&F[@=/3G-<Y:O;V/C*]766MXIKK0K8RB3
M:!-(&</Q_$<X'Y5C:)'8:AIWP\@NO)FMVAN8Y$9@59O+^XWK]#UH [WQ3K<^
MB>'9=5LHH;@QM&,.Y PSA<C'7K[5HLUX-2C11;_8S$Q8ECYN_(Q@8QMQG/?.
M*\TU*TBTSPMXPAL@(]&6_M_LB@_(K;HO-"?[(?(XXR"*Z+4U,7Q*26S1/MDF
M@W&SIEV$D>W/K0!U_F(7,8=2ZC)7/(K(\-ZW<:Q%J+7<,4#V>H2V@$;$@A,<
MY./7TKG/"%SX;U/3] N!,K:Y;(5E17Q<><5Q,91U(SDDMQT]A3-.T*V\4>'?
M%6FR;"[ZU=&&0@'RI05*M^!_3(H [_(SC(R:QM3UJYL/$NBZ8D$36^I-,KR,
MQW(4C+\#IV'.?PK.\)W#>(I8]<O+$6]Q90_8@C)@I*#^_P >V0JC_=;UIGBN
M&VNO&?A.UN562.26ZW1L>''D'@CN.F1T.<4 =8KHZ!T8,IZ,#D5E^(M7ETGP
MS?:M9)#<M:P-*%9\*=HR>1GTK@C<Q:3HVK0QGR-*M?%/EW*Q("L%N50GY>FS
MS",C&.HJ_J=MHT/A3Q?>:/J@O([NQ+3"%HS;H^Q@-NP8#$8S^&>HH [N&ZWZ
M=%<N41I(U;YFVKDCIFJ'A;6+C7=$6^NH8X9?/FB9(R2HV2,G4]?NUSL%[:GQ
ME:6FLM"+1M%C>Q%QCRW<G]Z1G@MC;[X^IJ[\,WM3X1$-K)&R0WERH5&!VCSG
M*_IB@"POBR2+QS_PC5[9)"LT1DM;I)2PE8<[""!@[<GJ>E.\7^+/^$92Q2&S
M%W<7MPL2QF38$4D*7)P> 64?C63XITR759M8DTYA_:FEFVO+3')$B!CMQ_M#
M(Q[UE>([O^UO#-CXDN(S;_VAJ5EY$<AP8X5?(_,EVSZ$>E 'I7F*@02NBN_
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
M")Y_(0-Y49SM)&><[6X&3Q2W&O6MO<RP"*>;R)8X9GB3<(G?;M#<YZ,IR 0
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
M^ =RY'*G/6@"U%#%!&(X8TC0=%10 /P%1I96D9REK"IW^9Q&!\_][Z^]9O\
MPE6F&[C@S-Y<EVUDMQL_=F<9RF>N<@C.,9&,U:UK6K+0-.:_U!W2!652RQEL
M%B ,XZ#)')P* +LD:2QM'(BNC##*PR"/<4RVM;>SA$-K!%!&#D)$@5?R%9-A
MXMTJ_P!1N-/#3VUQ!%YY6Z@:'?%T\Q=P&5]Z=%XHT][Z&S=+F&2ZB::U,D)
MN$49;9CDD @[2 <=J -&*PLK<J8;2"(JQ9=D8&">I&.YI(M/LH'=X;."-I!A
MV2)06'H<#FL'_A,]&U/1[FXB.I)9_9))6NXK60;5!*MM8#AQU]1U['&A%K5G
M#:6$,!N;N6XMA+#$!NE>, ?.Q) '49)/)/K0!=_LS3]FS[#;;<YV^4N,^O2G
MQV=K%,9H[:%)#U=8P&/XU0B\3:7/ID>H13L\<LWD)&$/F&7./+VGD,"#D'I@
MGIS63X:U"XO/&GB:&62[$4"VNRWN3_J2RN6VC.,'CD9SQS0!TD5A9P1210VD
M$<<I)D5(P ^>N0.M)'IUC% \$=E;I%(<O&L2A6/N,<U!>:S;VET;18I[FY6+
MSFAMTW,J9QN/3J0<#J<' .#6'XC\5)_PC=A?:.\D\.HW4,*SPKRJ-(JN.<$-
MC('<'T(H Z>WMK>TB\JV@CACSG9&@4?D*2>TMKHH;BWBF,;;D,B!MI]1GH:S
M(%&A:1>WWF:C=1?-<+;SR>9)&-HRBECG'&>2<9]*YR^\1W%W8>$-8+75FMY=
MQ?:(4W;90T#/@*.6&<8]?2@#MKFSM;U!'=VT5PBG(65 P!]>:26SM9]GG6T,
MFSA=Z [?IGI6*_C;1X=)O-1G^U0QV,P@N(Y+=A)$YQC([ [AR>.>M6HO$EI.
MI$5M>F8R.D<#6[1R2;0"64-CY<,/F.!R!U.* +QTZQ+.QL[<F3[Y,2_-SGGC
MGFB33;":W6WELK=X5.5C:)2H/J!C%4;7Q/IM]80W=HTDQGD:%(%0B7S%SN4J
M<8(P<YP/?D58TC6;/6K:2:T9\PRM!-'(I5XI%ZJP['_&@"S+9VLZ*DUM%(B?
M=5T!"_3-,.G6)9F-G;EG&&)B7)'OQ5.T\0V=Y<:E;QI.LNF8%PLB;<9&X8R>
M<CD'I37\1VBVL<\=O=S,]N+DPQQ9D2(]&89XS@X'4X.!P< %];"S3R]MI /*
M),>(Q\A/4CTIWV2V\I8OL\7EHVY4V#"GKD#L:R6\7:2\$,UH\MZ)K4WBBW3)
M$(."YSCOQCKP>.#277C#2+86&&N)SJ4)FM1!;N_FJ%W<8')P1QUYH UX[2VA
MF::*WB21_O.J ,WU--@L+.V\SR+2"+S>9/+C"[_KCK6>/$UDZ[HX+IU4Q"4B
M+!A:0*55U.&!PRD\<9YQ5[4M2M=)L)+V\D*0QE02%))+$*H '4DD#\: #^R]
M/V;/L%MMSG'DKC/Y4VWTRWMM0N+Y$033JJ$J@7Y5S@<=3SU/MZ55C\0V\T>H
M"."X^TZ=@3VS(-ZY&5/!P01SD'L:X_3?$-S%IWA[7)AJLUSJCI!-'N)MW+_,
M6"$X! !"[<>^: /07MH))DFDAC>2,$([*"RYZX/:HI-,T^5$22QMG6,80-$I
M"CVXXJCJ/B:QTR*:6>.X:.U56NGCB+"W!&?GQ[<D#) Y/!%0S>,=*CU!K&,7
M=S.J1R$6]J\F4<X5Q@<KZL.* -VJXTZQ$S3"RMQ*[!V?REW%AT)..M9WB;7V
MT"TM94M)+AKF\AMP$&0N]P"3SZ$X]\5CRZX^F^.;WSFU":W;28;A+.-&D9&,
MCAB$' X49/\ C0!UCV=K)<I<O;1-.@PDI0%E'H#U%(UC://Y[6L+2]?,,8+?
MG5)/$%A/8V=W:&2Z%]'YMM'"N7D7 ).#C &1G..2!U(J;2-7L];L1>6,C-'O
M9&5U*LCJ<,K \@@T 2?V9I^PI]AMMI.2OE+C/Y4]+*TBE$T=K"D@& ZQ@'&,
M=?I7)^/O$ C\):S_ &=->)+:+L:ZM<@12\?*6'/<9(X&>2*V;_Q3IVEFX6?S
MG%E&DEV\<>X6ZOG:6[]B>,D#DT :D%G;6ID:WMHH3(=SF- NX^IQUID>G6,4
MADBLK='+[RRQ*"6Z9SCKR>:RW\1D>,(]"2SF=&M#<-.%RIRZJ,<]!DY/TJ1?
M%&FF\M(&,R)?,4M;AH\13L!G"M[@'&< ]LT :LT$-Q'Y<\22IG.UU##\C47]
MG6.X-]CM]RC:#Y2Y Z8Z4E_J-MIL"RW+D;Y%CC506:1VX"J!U)_^OT%5(?$-
MK<&]B2*<7=B 9K1DQ(H/W2!G!!]02.#0!H06UO:J5MX(X03DB- H/Y5+7(^"
MGN-:TW3]?N;K4$N)8"9HFD/D3;CD$(<@;>Q7'OFNNH **** "BBB@ HHHH *
M*** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ K!
M\;:?=ZIX2O+2QA\^X)C=(PP!?;(K$ GC.%-;U% '*^7J$WCVTU9]*N8K5=*D
MA=F*$H[2*P4@,><+VR,GK7/6^B:U:Z+I-V=!-W)IM[=M/I\QCS+%,[,&4DE=
MRY4X/N*]$^VVOVW[%]IB^U;#)Y&\;]N0-VWKC)'/O4] &5H$.RUEF&C1:0)G
MW"W54#GC[S[.,GTR>,<]ABZOH<_B&W\06#VLULT[1RV5RV /,1%VL,'(PR^W
M%=?10!P&KZ-K4FA:(9+*2\U,ZM;ZCJ)A*@+M^\!D@': JC']VG>*['7M8'B"
MQ&EW$\%Q9J-.:.5$CSL^?S!N!+[N "".G3DUWM% '!ZWH]]?D7EGI^H:=K4%
MFBVEU!(A61N?W,PW%2H."<\<\$XI^K:-J<NLRZCIMO<V.L+) IGA<&UOHPJ;
MO,4GHN7 R WRC&:[FB@#SW7[#Q#J4>J0R:1<3RQZC#-:-'-&L+0+)&>!N&9,
M*V2P_'&!6A;?V[H?B/5=FARZA::M(ES%)',@\F3RU1DDW'A1M'(SQT!KLJ*
M.7A@U"+Q[<:C-8RO;_V3%;^=&%VO(KNY &<C[W&:P='TG6=)TOP?<2Z/<RRZ
M2)X+JWC:,R+YBX##+ $9 []Z] N;JWLXA+=3QP1E@N^1PHR3@#)[DD"IJ .
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
M7+Y1^573=R#@9YZ@&J][X(O[VT\00/K,0_MSRRY^R?ZME55.!OY&%X';/)-
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
M&,D=.N* );;7[O6+MK"QM$MIX+.*XNDO%),32 [8BHQS\K9/;C@YXA^&N?\
MA -,RH4XDRHZ#]XW%//AB^LM?_M;2=42-[BW2"\2[A,HFV9VR9#+AAD^W/:K
MOA71)O#N@0:7-=K=&$L1(L>SAF+8(R?4\\?2@"E8^)Y-1UV?3H'M4EM;IX9K
M.7*SB, XE7)^8$[3P.AZ]JS--\3ZC8Z5K.H:HT-TT6JR6<$48*;GWK&B@G.%
MZ>_4\UJ7'A>>_P!3M+N_N;>5K&]:Y@G2$K.$)8B$MG[HW 'U Z=ZKS>"&N=/
MUC3YM2_T>_O&O;<I#B2WE+!\[LX8!AP,#@G/L 6+GQ--HNLK8:VD/E36DMU#
M<VX('[H9D0J2>0#D'//H*GT_4=9O9-.GDT^!M/U"$R2%'P]KE0R!LGY\YP<
M8/J.::_AM]4NX[K79H;EX;66V1((RBXE $C'))R0  .W/7/$6@>']:TB"&SN
M==6[L[-=MJOV;8Y &%$C;OF"CL ,X!)H QOA]J<LWAZPTO2S;LUJ93>F3)\@
M-*Y0  C+'KCICG/0&'^T]1T*[\9ZAIUI:RPV=XL\RS.5+*((RP4 =<9.3^O;
M0TKP+>:,=,GL]6A2\LO,CGE^RG;=0NY?8R[^Q)P<\58G\(7MQ9^([=M3A_XG
MI)+"V/[D% G]_P";@#TYH N_V[/J&K2Z9I(A$D%K'<RRW )4>9G8F 1R0I).
M>..#GCGM4UI/$.D^';UK;[/<1>(88)XB=WE2(S*P![CCKZ&MN'PU>6.K1:K9
M7L N6LTM;M'A/ES!/N. &RK#D=3D'MUJ*;P8PTW3K2UODC>UU(:C/+) 6,\N
MXL> PV@ECZX % %3Q+JUSK'ACQ2EA';FUT^&>VD,P):5UCR^W'"[=W&0<D'I
MUJ>WUZXCL[73-.C5KFWTR"=V>"25<LI")A!QG8V2>G'![)<^#M04:[;:=JD,
M-AK@D>:&:W+M%*Z;69&##@]<$'%*_A+5K6[LK_2=;BM[R&S2SNC):[XKA$^Z
M=F[(89/?O0 UO%6NS3Z-:P:+#;7.J6LTGEWLK*89(]N0P"YV_,,$<GT%=7 9
MC;QFX5%F*#S%0DJ&QS@GJ,UAR>';Q]<TC4O[35_[.CF1Q+"6:8R[=QR& 7[H
MP,$"K=J=5_X2*]$TZ2::8T,*>3L,3]QNS\^>3[<#UH CN=7N8/%=GHXCB,5W
M:RS+)@[D9"HP>>0=_MTK%;QGJ2Z5;72V%M))+K1TQQYK*.)2FX<'KCN>/>M?
M6=$O+S6M.U;3KV&VN+-)8F$\)D1XY-N> RD$%01S62O@B_33HK0:Q$QBUC^U
M%=[4DD^87V'#@=3U&/I0!)+J]YJ%EXIT?5+:V6:PM-X:!BR.DD;E?O#.1M.:
M;I&MR6VA:#I5HH^TOH\-PSM!)*J*%50-J<\G/.1C!Z]*N2>&;Q]2UZ[74(%&
ML6J6X3[.3Y.Q64-G?\WWSQQVJJ_@_4K>+1[C3-9CMM1TRT%DTK6VZ*YA '#)
MNR.5!X/K0 C>-)X+/2CJMLNBS7S2QO)>(WE1NA "Y^7&\$D$D< ]34]]XIGL
M)M-L[U[*PN;VV,@EG),#RC'[I7!&,YSD]L<'-7+C1;^>WAAGO;>^C:.1;R&[
MM\I.6*D$ 'Y0NT@#G@^O-44\'RP:%#H8N;:[T]+3[.\-Y 7&[)(=?FXQG 'H
M!R,4 ;<$NJ/<6IEM[=+=[;=<'>=Z2\84#&"O7G-9GC34);/3;*S@=HWU74(+
M'S%."BN?G(/8[58 ^]7=-TN[TM-/M(K_ ,RPL[,0-')'F21Q@*^_/' /&.]5
M_%NE3:GIEO+:IYEUIUY%>PQYQYC1MDK]2I8#W(H J?$&SMF^'>KQ&WB,<-HQ
MB4H,(5'RD>F*T-4M3>>$Y8T8I*MKOAD7K'(JY5A[@@&C7+#_ (2CPQ=6%I=+
M E]$8S*T1;:#P?ER#D>AZ4NIFYM/#DEK&5GOI(#! J*5#R$8!QDX ZD]@":
M'^&M5.N^&=.U-U :[MT=U'0,1\P^F<UP^C:YJOAOPI/J4.GVLVDVNHW/VD>:
M1-L,[ LBXQA<]"><'I7>Z%I::)H5CI<;;EM($BW?WB!@G\3S6'%X-G&EW.B3
MWT4FE7-T\[J(2)65I/,,9.[&">,XZ<8!YH -0\57^+Z71[ WHL)_): 02LUP
M0%+[74;5(W8&<Y([<5#<27UU\3+.+]S]G.CRN(ID;(5I8@V1G[W:K/\ PC&J
MV>MWEUI&N+9V.HR>;<VSVPD*28 9HVR-I( Z@C/8]*N'0;D>+H-<CO8Q%#9&
MS\AHBS%2RL6W[NN5':@#(7Q2]EX4_P"$@T^PMAH=K(8UMXP5D\A'\LR+CY1C
M!(3'0=0>*N)K^M7GB6]TNPLK%H;1;:7SI9V&^.0MG@+]["\#IQUJ*/P7)%HU
MUX>6^3^Q;B9G$?E'S8T9MS1!LXP3G!QD GKUK2L=#N++Q1?ZO]KA:"\ABB^S
MB @H(]VWYMW^T>WI0!FVOBS4+UM-O;/37N=/OY@A"6\H>&-L[92Y&TCH2!TS
MU.*M>/+Z_P!-\(W=UITJ12J44NP)(5G"G&.A^;K4&A^%M4T1UL8M=WZ+#)O@
MMO(Q,B[MPC\S/*Y]LD<<5J^)-&/B#0+K2Q<?9VG"[9=N[:RL&!QD9&0* .>O
MQJ*?$;3S;QVKWKZ/.&9BRQC]['R>I/T_E5BP\937VF:9FV6&_OGGC951Y4C\
MEBKL HW,,[<#C[W7BKRZ#J)\2VNMS:C;N\%D]LT:VQ4,68,6!W\#*@ <\=ZR
MD\"ZA;Z=9_9-;2'4M/NI[BWN5MOD*S,6>-T+'(.>N1T% &]X>U.^U.TG;4=/
M>SG@G:+E&59E'210P! (/0],&LG6]6N=6TSQ';:?%;M!IT+P3&8$^=)Y>YE7
M'W<!AR<Y/88R>@TRUO+:V/V^\%W<R-N=UCV(. ,*N3@<>IYS6#<>$[^*^UA]
M,U.&"TUE2;B":W+F.0IM+H0PQD8R"#T_"@"O8:O?:=X4T5;>.VBB&CQ2"XN6
MR'D"+B)5!!R1DYYQCH::OB'5-4U;PI+:&&WM=5M);EX7!8[@BG!((R!OX]QF
MIK;P=J-K-8/'K,1%MI8TV4-:$Y0?QI\_RL> <Y!P..*6R\'7UC#X>V:O$9M%
MCD@WFU^62-U52 -W# *.<D9SQCB@!9?%E_*GVW3=->\M%O&MVA2WE,CHKE&D
M5P-O!!.WN!U!X&YKNL6^@:)=ZM=!FBM8RY5>K'L!]3@?C6-9>%M4TR_NHK'7
M/*T>ZG:=K4V^98BQRZI)GY023V)&>.>:VM;TBVU[1;O2KO=Y-U&48KU7T(]P
M<'\* ,R?7=2TS5M.LM2M[9EU0.D+PLP$4RKN\MB<Y!&<, .GW:RK'QIJ\^FZ
M/JMQI]G'9W]_]BD5)6,BL96C5AQC *C.>OM6O#X?O9Y]-GU6^ANI-+#& I"4
M\R0KM$CY8]B>!W.<]!6=#X)OH?#FFZ0-6MR=/U!;U93:-\Y$ID"D;_4D9STH
M Z'7;J]L=$N[S3H([BYMXFD6%R0),#)7([GM6-;^+7FUS1+0-;-::O9&XCE4
M-N#A=VW&<#(W$'_9(QQFNH[<UR)^'MI_89TQ;N52M\+F"8?>@0.2(U]@C.O_
M  (F@"EJEW?7FM>$;[R+=IY;JZ, !*JT9A?82>2,KAB/?%2WOBV^C\*:S=7>
MF64]SI5[]EGB+GRI!E"' ()Z..#Z'FMW5-!FOM9T:_M[J*"/2G=Q"82WF;D*
M8R&&W )[&LF\\$WMWI>O6)U6!!K-VMSO^RD^5C9QC?S]P<\=Z -2[UB^GU._
MTW1XH'N+"!)9#/G#N^XI&,$8R%Y8],C@\XPY9=3E^(5C/!8PV^H3>'W,D4\F
M5A;SHR02OWL'CCK6G>^&]4'B ZUH^KQ6<]S D-['+;>;'+MSM<#<"&&2.O\
M]>9/#UU%XG@UE=1600Z>UGY<L)+.2X<N6# 9RHX Q0!9\+ZS)K_A^WU&:%8)
M7+I)&K9"NCLC8/IE216M6/X7T2;P]HPTZ:Z2ZVS22+(D1C^^Y<C!8]"QK8H
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
M[JD$\;0,8[TVXU*[6\TZ_LM1NKF*;7OLSSM(4B>-F93$L62"%QC>0#E<C.:
M/0*S-7UN/2)]/BEMII!?W2VR.FW:C,"1NR<] >@-<O;O>#5/%%[+JFHRIHMQ
MYMO;+-A'Q '*,,<J2>E5;E&O-)\%:Q+?7%Q<7>HVTDQ,S&-F>-V.$SM7!X&
M* /1:*P/&^KW&A^$KR_M6V2IL028SY89U4OCV#$_A5*Z-SI'C+1;*UNKJ:SU
M6*>.XBFG>3:40,LBDDE3V."!R.,T :?_  D2RWQAM;"YNH$N_LDUQ"%*Q28&
M<C.=HS@G'!K8)P"0"<=AWKDO 5G% -;D1YR1K%U'AYW<8#CL21GWZ^]6;R]>
M]\=QZ!)/+#;1Z:;S;#*T;2N9-GWE(.% S@'^(9Z4 6M/\2?VGIDM[::9=.8K
MQK5H,H'!5]C,?FQ@<GKT%;=>86K76G^"9VM;ZYB>+Q(T;.KX:53=!2&/4Y!.
M:WOLUUJ7C_5+%]8U"&V@M;6X2*";8 Q9\CIT.W!'?O0!V-%<'H\VKZ_INGZ_
M#J:6KB[)N0UU(R,N\J83#C:#T /7(!R<U9TB6;Q#ILNK/K%Q8W5KJ4JR*DA\
MN)(Y"OE-'G:<H!DD9RV?04 =@LT;RO$KJ7CQO4'E<],T^O-;J[D\/+X\U>Q:
M9KFUGC\O?,[JNZ*/+%22#C<3R. ,=*W+TW.D>(] CL;ZZN+;4S)!<)+.TN[$
M9=95W9VD8YQP0>G2@#KJ*\^T&VUB^\(3ZE#KEX^HE[JV@6YN,1']^RJ#Q][C
M ;MGZ5M^$M46]NM0MYH=0LKVW\O[18WLIE\HD-AD<D[E;'4>E '354U/4K?2
M;![RY+>6I50%&2S,P55'N20/QK#N+N34?'<FA333PVL&FK<JL,K1-*S.5+;E
M(.%  QGJQSVQR^I376I>#98M1GGFDTWQ EE'/YK(9HUN$ 9MI +8XSV(SUH
M]!TZ_FO6N([C3[BSDMY-G[W!608R&1@<$<_@:K:SXBMM'TT7YBDNHOM"V[&$
MK\C%]G.2.C'!QFM)+=([;[.&D*!=N6E8MC_>)W9]\YKRV*U6+X1[HY)M\FJJ
M"7E9\8OB 0&) /KZ]\T >KT5P.I:EJ'AG4O$B6UY=7:0Z.E]$MS(9?+EW2*2
M,]%^4$J...U:^EVFH1ZQ9Z@FJ*VGW,!5H&NY+@3MC<LB;@ IP#G'!':@#IZ*
MY[Q%J+PZ[H6E&9X+?49I1+(CE&;8F50,.1DGMR=N.]9NH37.CWFF:+_:]Q/!
MJ.JLCRNY\R"/RRZP;\YR2!\Q.[!^AH [.BO/-=O=2TMO%>FVU_=_9[;2EO[:
M4REI+=SO!3><D@E,C)XYQ4^JVM_86F@RP:_J8DU+4;>.<O,& #1MD*".!D X
MY&>QH [RBO--6U;5O"$OB*TM]1NKRWBM;:X@FNG\U[4RRF-OF/4  L >F/K6
M]>"ZTKQ?HUC9WMW)::K%/'<)+.TI0H@99%+9VGL<<<CC- '6TUW2.-I)&"HH
M)9B<  =Z\[T1KD^ ['6;[Q'J8NKQ4@(W^9O)GX5%XP[ ;=V>-V>PQ%J\MW+H
M/CO3[F6X6&T@26")[IY&BW0[B-^<D$C.W)')'(H ]!EO'66T6&UEGCN6(:5"
M-L0VDAFR<X.,<9ZU:KCKKSM/U;P?!;7ETL$\DBRQ-.S+(/(9ANR23@C@9P*S
MI-3OK_P3K/B1-0N+?4;&XN&C196$<0B<@1M'G:V57G(SEOI@ ]"HKA5%]K/B
MF_M9]2U&TA?2+>Y\B"<Q^5(Q?.".1C ^N.<UO>"M0N=4\&:3?7DADN)K9#(Y
MZL<8R?K0!N45Y]?ZG=I>6E]9:C=7"/XA2U>8R%(C&S[&A6+)#!>F\@'(R,TL
MMIJ.J7WBV/\ X2'4K;^SY5:U\J?8(V\E7YP.5R?N].OU !Z!17G>EW.J>(]:
MTF*\U2^M([[P\+J>*VE\O]YO0;EP,KG.<CGMT)JO#>:T^G:9:3:Q>;[?Q(^F
M&X5\-<0J'Y8XY/RXS[=Z /3**XZP1Y_%%[X;N-0U!K?3K*)X6:Z999C(S[G9
MUP6VX51V^IK)_M+5V\(6^NSW=U(^B:B\=T8Y&07EM'*49BJX!('.?]D^M 'H
M]%<9K&KRVFESZS;W3B"^OX+:.1IV$<<.\(SCJ%W'=\P'0J:K:Y<ZSX3TS5]0
M&HKY,T<7D0/.]PULQD5&D#.,[</G!R,CTH ZF;7(X/$=KHC6TWF74$DR3?+L
MPF,CKG/S#M6G7&2V$=E\2]$,=Q<RJ^GW7$\[2\@Q\C<3C.>W'%:/BO4Y[*;1
M[.)Q$FH7OD22-*8N/+=@N\ E2S*!D<]1QG- &U?W,MI9O/#:2W;J1B&(J&;)
M XW$#C.>O:GO<1I)Y6=TQ0NL0(W,!C.,^Y _&N%UZ'6M%\+ZRS:U*"D\$MLD
M=PSRP(\BJR-(PW,IYQW]ZT!9QM\6YG+SY&CQR8$[A=WG,.F<8P!QT[XS0!NZ
M!K47B'1XM3@AEACE>11'+C<-CLAS@D=5]:TJ\MT?[3I_A/0-3M]0NT9M<-NT
M*RXB:-[N164IT/7.3D@]#6L9M7\01:O<6>II87.G:C+$LK73A(4B;H\0&U@R
MC.3_ 'NO % '>5'--';Q-+,ZHB]68X KD=/MKO4?'.NPS:QJ"06,EI-##'-M
M3)0L5(QRI[CO^6)OB1 LWAB,LTB[;^U^Y(R=9D!S@C/7OT//6@#9BUN.3Q+-
MH1MIDFAM5N?,;;L=&8J,8.>H/4#I6G7$W&E+=_$B>R%Y>6\8T&(;X;AED/[^
M3'S\M[]?KQ5'1=?U'5-.\*V5S<%GU"RGDDD:X:!IY(RJ@;T&<X+,<8SC\P#T
M2BLCPU;7]EI\MIJ.H+?2PSN$<,69$.&5&8\LP!Z]QBM>@ HHHH **** "BBB
M@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ****
M"JVHZ=::M82V%] L]M,-LD;$C(Z]N1S5FL'QEJ=]H_A]KZPDC21)X$;?'NRK
MRJAQSP?F]Z +4?AO2HK^*^C@D6YB@,"2"XDR(R<D?>YR>23R3SUJO)X,\/RZ
M.=(ET_S+(RF81O-(Q5R22RL6RIR3T(ZGUJW;^(-%NTN7M]6LI4M/^/ADG4B+
M_>.>/QJ9=6TUWMD74+4M>+NME$RYG&,Y3GYACGB@ TW3++2+,6EC (8@<XR6
M)/J2<DGW)KG8-!GN?'&LWU[97,=G<V\$4$T=ULW[ V[(1PV#N&,CMVKH5U;3
MFNQ:+?0&<E@(Q(-Q*_> 'MCGTJI::Q916DMS=Z[8W$+73I'*K*BKD_+%G<=S
M#IZGTH -3\+:'K%G;6E[I\;PV>/LXC+1F' QA2I! P!P#VI6\,Z.6L6%JR'3
MB3:^7,Z>63U/!&2<G).<Y.>M6K+5]-U%YTL;^VN6MFVS"&4-Y9]#CIT/Y4EK
MK&F7TTD-K?V\\D2AW6.4$A3T;Z>_2@"&X\/:9=7$\\\#NUR5,R><XCEV@ ;D
MSM/ '4=J+KP]I=Y>27DUNPFFC$4S1S/'YR#H'"D!QR>N>#BIH-8TRY\SR;^W
MD\J/S)-L@^5/[Q]%X//3BI+34;*^>1+2ZBF:+'F*C E,],CMG% %>30=-EU&
MWU P,MQ:QF*%HY70(AZJ%! QP.W84_2]'L=&BEBL(GC2:1I7#2N^7)R3\Q.,
MGDU:FFBMH6FGE2*)!EG=@JJ/4DU!;ZII]W!+/;WL$D4!(E=9!B,@9.[TXYYH
M KW7AW2[R]EO)8'$TR".9HYY(Q*HZ!PK ,.3USUIFK>&-%UR"VAU"P21;0Y@
M*,T;1=L*4((' X''%68=9TNXCFDAU&V=;< S$2K^[!Z%O0'UJ*/Q'H<TZ01Z
MO9-+)%YR(+A<LF,[ASTQSGTYH AOO">A:E86UC<Z>A@M#NMPC-&T1[D,I##/
M?GGO3I_"VBW$5E&]BH6P)-L4=D,>[[W*D$Y[YSGOFLWQ/XG$?@F_UKP[J-I.
MUMP)4Q*N<@$<' //?/TK9MM<TF\GN8+;4[2:6TSYZ),I,6.NX9XH IKX.T"-
M(DCL/*2&Y-U&L<TB!)>?F #<=3@=!DXZU.WAS2VGOYC#+YFHJ$NF%Q(/, &
M/O<<<<8XXIEAJ]G%IEJ]YKEE=-<2,D5PC+&LYW$ *,G..G!/2K-KK6E7UG->
M6NI6L]M 2)9HYE*1D<G)S@<4 4;OP9X?OK"SLKFP\R&PXM3YT@>$>BN&W <
M8SC@>E:UK:P6-K':VL2Q0Q#:B*, "J,_B31[?3;S4#?PO!9+F<HP8IQD @<Y
M/;UJ%-;MM0BTJ>UU>TM_M3AC"S+(TXV$F->1@@D$D9Z=* &2>"_#TKS.^FJ3
M-<"Y8>8X E!SO49PISUQC/>ICX6T=C?DVT@_M)=EV!<2 2C&,$;L#CCCMQTJ
MW/K&FVMR+:XO[>*8D*$>4 Y/0?4]O6H[O7M'L'E2\U2T@>!0\JR3*I0'@$C/
M&: +-G9PV%G%:6ZLL,*A$5G9B .@R2368_A'0WL+JQ>TD:WO)_M$\9N9?WDF
M<[C\V<Y /U ]*UH9HKF!)X)$EBD4,CHV58'D$$=14=W?VE@BO=W,4 8X7>P&
MX]>/7B@"K_PC^F'4?[0:&1[GR/LQ=YY&W1?W2"V"._(Z\]:JR^#/#T^C1Z1+
MIJO9Q.'C0R/N1AP"KYW# XX/3CI5]]9TN."WN'U*U$5T0L$AF7;*3T"G//X5
M+97UIJ5JMU8W45U;OG;+"X=3@X."/<4 9[^%-%>TM;7[(RQ6<OG0A)Y%*R?W
M\ALEN3R<GFEUCPMHNO7$%SJ5B)I[<8CE61HW ],J02/8\4/XCT\^('T".ZB6
M]$'F_.> 2<*,9&X]3@'H/>LWPAXJAU+1K!=5U*T&JW33!80RHSA974;4SGHO
MZ&@#6F\.Z7.X8V[QXMQ;;89GB4Q#.$*J0"!D]N]/?0=+>_M;XV:"XM(_*A92
M5"IG(7 ." 0" 1P>E23ZOIMK=I:3W]O%/(P58WD 8L>@QZGL.]7* ,6S\(:!
MI^JR:I:::D5U(Y<L&;:&/5@F=H/7D 'FHIO!'AV=KC?IYV7,HFEB6>18VD!!
MW[ VT-D#D#)_&GV?C#0[S^T&&HVT4=A.8I'EF50<*I+#/\.6VY[D5<77M'=)
M735+1EAD$4FV93M<]%//7VZT 6;FSM[NQEL9X]]O-$8G3)&4(P1D<]*JQZ#I
MJ).K0--]HA^SRF>5Y6:/GY,L2<<GCWI_]MZ5]EANO[2M?(N'$<,GG+MD;.-H
M.>3GC%%KK>E7T-Q-::E:SQ6Q(G>.966/ R=Q!XH K_\ "+Z-]BM;06A5+-M]
MNRS.)(CC&1(#NZ<=>G'2GW'AS1[O29=+N+%)K29B\B.22[$YW%L[BV>^<U,F
ML:;)#/,M_;F.WQYS>8 (L]-WI^-/M=2L;V.62UNX9EA8K*4<'RR!G#>G'/-
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
MYC'@,=IYR.E5;];R\_X3)+!;N\FNH+.:,O;LGVF-/]8H^4#E05 ZG/>O4:*
M.,NM0TOQ1HNK7FCV$TMV^DS6[3-;/&RY4D0\@9.2>!G&/<9HW-Y;W&B^")$W
M9AOK?>7C92@6!U8G(X 8@$],UZ#10!YX"(M$\7Z)JT3-J%W<W,EO$5RUVDB_
MNC'_ 'L8"\?=V\XJQI<0L_&]A'JCH]S;^'(X9IGY'FALM\QXSC<?H:[NB@#E
MOAL0/ UA$05:(RJR$8*?O&(!';@C\"*3Q&T:^-_"C-C*2W.YL?=#0L!D]LG
M'J:ZJB@#RK4%@?P7XW6.-3/-JTCQ )\T@RA4KW(R&((]#7J44J31++$X=' *
ML#P13Z* .*UK2;C_ (2JYLX(&:R\2V?DW;J 1"\?#,<]"T3$#_:5:=X:%\-#
MN)M:1DETJWDT]'<?ZP(3ND'J' C_ !4^M=G10!YEI?D6V@>  %6.2"X'G +@
MQYA=6W>GS%0<^M%ZMPUKXK>QMWN/+UF"Z>WC7YKB%!$7"C^+.UOK@BO3:* .
M&UO4]'UKPKX@U+2[61Y+C3)('N6MWC:1BK!(P& +')/3IQ20O;)XJ\(&WV*@
MTV>-R@P%RL>U3CIDAL ]P:[JB@"O?HTNG7,:#<SQ.% [D@UYS#<6\WA#P/:R
MQOFVOK=;A)864)LB=6SD= 2 3TR:].HH \RU8W']I>*Y+&&6=8K^PNG@@'S3
MQQJGF[/4@KSCN*Z;PU)HFIZI/K.DI>2R30+%-=3B1 <'*IAP,D<\CITSS73T
M4 <I\1Q#_P (Q&TZ!XUU"U+ KNR/.3/'?BL;7M*EU76-7O/#2HRMH,EM));X
M"32E@40$<%MH8>V0.]==XBT1]>L8K5;O[,L=Q'.6$>\L48,HZCC(&:U5SM&X
M@MCD@8% '$Z3?>']:N(=4A@OQ>6=M)'-]J61%M%(^9&W *3D  #/3/:J6CV>
MG2?"S28YY)-/E40H;J&/$EO*K[@6!'0-@G/&#GWKT2B@#S:XGUJ33X;F]BBO
M8=-UV&6ZN[*(A;R$(!YNP9SL)7.,C*<=*LZW&EYJGB'5[%UDT^3P\]O))'RD
M\Y+% ,?>8+QQG[P%>@44 >?6;6T>I> 3$$3R[25)-JXV$PJ,-Z9<$<]QZUWM
MP"UM*H&24( _"I** /,=,L8+_P (^%--LH%75K&[MY)@(]LEKL.92_&5R 1S
M]XD=:EM&L)_MOAO7[;4I-1&H2S10H)0ESF4O'(KJ,*!D9)(QBO2:* . T^^L
MX9]:\.Z]ITUS>3ZE)<01&W9UNT9@T3!@,#: H))^7;[5G^*[O[3:>)+6.UFM
M9HKZW<P16S,URJM$?.9\$8PN %QC;SG.*]/HH X:&2RE\7>*;AU0)-IMN%:1
M,;OEDW#D=>5R/IFLNP\BWT#X?X58Y(+A/.PN&C_<NK;O3YB <]\5Z;10!YO8
M-87"W/AS7K;4I-3CU"2:.%1($N"92\<JNHP!R,DD8P:](HHH \N^WK<'0IDM
M;BT%KKSF:QBM7(M@?-Y9MI+,Q8'@X^;IQFC45MI/"_CY%C5II[US$ GS2#9&
M%*^HW!L8[YKU&B@"&UE2>TBEC<.KH"&'?BN+N)(4\2^,R< 2Z9 H..'94E!
M]2-RC'N*[JB@#S?3FMX8_AT4"HT$)2;"X,9-L5(;TR_'/>HI'NH=#U:.*TNY
M7LO$<EY<P11,'>#S]^5XP3C##'I7IM% 'F^NG1=2\)^(M4TB.[GEO+$1/<3+
M(OFL/N(JN!N8<\@<9_+0\0RP::OA[6(H)?[)A9OM3V2'='NCV)(0HSA>5/H#
M^%=Q10!P$]EH\MI%=Z3?7ND/<:@US;ZC*K%'G,9#,R2?P,I*\XR?PS&]Y>M9
M^&=0U*S6+[/K$PFDM8G:-P5E42J,$A78Y'^][BO0Z* /-VDT^2[UOP_XCM=2
MDFO+UY[>&-)-MW&Q!CVLHP"N%4Y(QM'/!Q=%\NE^)O$MKJZ2*;^"(V3F-I%F
MC6+:8U(!R0Q;CJ=Q-=W10!SW@$G_ (031E9'1DM(T970J00,'@UA^*VFM=6U
M"^TJ\7[8+=$N-*NH]T6H)@X$?</\S#C/;(YKO:* .'G%Y_PEWB."%)8+S4=(
MA%FVP[=X64'Y@,#:2.I]*I1@:MX9\*:?8QM#JFG7=MYT)4K):^6,2EAV! (Y
MX;(ZYKT6B@#@/#]]9BVD\-ZUITT^KV^HR3B-[=R)F,K.DP?& H!')/&/H*S7
MNY].\5:QK!7[7ID.J(;BT"Y8@QQJLZ ??*,",<]R.0#7J-% '&BYLKGXGQW>
M^)X5T0[9F^Z&,N<9/ .W)QUQ7/Z!))9Z?X/OI5<:;8S7D5UE3_H[N6$3L.PP
M2,G@!O>O4J* /,O$-K(VC^.KZV!:QU%(%M0@R)I0@#L@[Y^49'4J?2ME]4CT
MWQ_]LU!F^P7NFQQV-R$+1APY+ID#AFRI]\#TKM** /*-+N7TSP_H%_-;WJ:;
M97]ZMUY,+JT/F._ER;<9*@$@D=-WX5?UF#1AI%G<:?;S_9;OQ!;74KW"OF;Y
ME\R0*PR%QU. #CTP3Z110!E2ZAH]EK%AI[(B7=TLC6I6 X]6PX&!GKUYJ]>Q
MR36-Q%$VV1XF5#Z$CBEDM8YKB*:3+-"28QGA6((S]<$C\34U '(>$M4MM'^&
M&FWETLBI:VP1XT0LY=25*A1WW BI?#NNZ7J6K221///J5TF9#]EE1((ESM0,
MZ@8!;ZDL3@#@=!:V$5E/.]N2D<[F1XOX0YZL/3/4CIGGJ3FPX8HP5MK$<-C.
M* .7\.Q.WCKQ;=+GR'DM(E/8ND.6_1E%/\?J_P#8%O,$=TM]1M9I-BEBJ+*I
M8X'. *W[*RAL+?R8 <%F=V8Y9V8Y9B>Y)-6* .-CN+*?XFSW<@7RAH<:AYDV
M@'S78CYAP=K D=<&N9T*^.D:3X6O]1%XFG164]I-) CEK64R*5W@#(!5<=/2
MO6** ,?PQ:6%II3#2[>>"TFF>5!/N#/N.2V&Y4$Y(''KWK8HHH **** "BBB
M@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ****
M"BBB@ K&\77EE8>%[ZYU&TN+JS6(^=';MM<K]=RX_ YK9K#\9:;=ZQX2U'3;
M&,/<741C0,P4#/<D]J $N_$JVNL+H\.EWMU<O9FZB$>S:ZAE7&YF&#\W\6.G
M<D5G7?C6273="OM,L)GCU2^%LX<JKQ$%MR8)QNS&PST]^E618ZE_PF=IJ_V$
M_9H]+>U<>:NX.SJ_ SR/DQU[UCV_AK7(O#NDP?9(?M6FZTU\8VG 62-FE. P
M!P1YH[=C0!LZMXVT_2%N9)8GDCLF5;HI)'NC) )PI;+8# G'X9((I[>+D;5Y
MM,M-)OKN2%(9"\0CVF.0D!P2W08Z=?;@D4(-.\2Z/K>H"SL;"]L=2F^TB6:<
MHUK(R@."-I+KD9 &/PJ]I^G:C;^-;_4)8 ;2YM((%EWKN+1ER25'0'?^G2@!
MD_CG2X+BW#*S6UQ=?9%N%D0@29*@E<[@I((W8]^A!JY:>(H[ZX5;2SFF@:YE
MMC.C)A'C#;MPSD E"!]1TR*Q] TOQ)HI_L0VEC+I\4S-!J)E_>+$6+;3'MY<
M9QG('0\XY(?#=W_PDUOJ]O9_V9=?:7-]+#,/)O(?FVY0'ESE3D@8YY/% $^C
M^+WGT:[U+5+1K98[V2VC4.A#,)#&J YZY').!U.<"IH?'&EEM1CN0\$VG!&=
M RR>8'.$V%2023\N.#FLEO"VNG0KRRA%K%<6^JOJ%C*TA9)B93(%=<?*,$@]
M:L:KI'B'Q)X>E2>TL]*O(GBFMH5F\U6DC<-EV"C ., #..ISTH (+BXF^*L(
MFM;BUSHTK;))0ZM^]CP0 2 1T/\ 7K71ZIJT.EM:1R#=->S>1 FX*&?:6Y)X
M'"G\<"L.TL]=N_&=GK=WID%I"FGR6TJ&Z#LK,ZMD87G[OZ]NE:/B;31JUI#9
MSZ5'J5F\A^T1,X5U&#AD)(^8''<<$\T 4;_Q1?0WNB0PZ1.HO[J:&5'9 X\M
M9.!\V.2F[.<8^M6[SQ3#;)?S0V5S=P:8VV[DAV_(0H9@ 2"Q52"<?09/%8L7
MAO7;2UT)T<7LFF7\TJQW5Q\ZP.KHBF3!RRAAG\AG%6(-%U?2CK]E;6\=U;ZO
M-)<P3&0+Y,DB@.K@\[01D;<^F* -:7Q);N4338)-1D>U%V%@*@>4WW3EB.6P
M<#V/2L2\U2WF\6^&=6WS6UM<6%W)(MP2FP 1D;E)P"-QIEMX<UKPKJ5I<:%!
M!J5L=.AL;F&:?R6W19VR X(Q\QR*?XC\+WWB/4](^W1[H;>"=9YX) C122%"
MC1]_D9!R?;K0 GBJ_DNK#0-0>SOK,_VQ;XA<X=E)/!16.<X'!Y'M6K#XOLQ#
MJKZA;7&GOI)7[1%-M9L,,H5V$@[NF >O%95S9>*-2TC18=0L(GO;#48;BXE2
M90LL<9/S =G/''3KS4>K>$]2UJZ\4(5%K'JD=J;29G!Q)!R-P'0$X]>,T =#
M%K\;:M#I%]9W%C<7<326_F,I$H7[R@J3A@""1^1-87A+5(=)\+RO<-+,SZM<
M6\$8;=)*YF8*H+'KQU)X )/2M$Z=J&KZWH^J:A9BS.E)*QC$BN99739\I'\(
M&[DX)XXK$7PMKBZ%;F*&)-0T_69-2ABDE&R=6=R4+#.T[7(SCK0!8LM56P\;
M>(KS4(Y[2&WT^W=UDDWC[TG*8)X/ QQSVK27QM9?;;FRDM9A<06ANUCCDBD\
MV,'#8(;&X=P2/;-96H>&]<UZ^UF::WAT]-0T^"*)C/YC1RQNSKD!<8R1GGIZ
MUIVX\2WVE74>I:396DOV9X@MO.'\^0C ;D#8O?&2>?;D T-!U\Z] ES'IMW;
M6\MO%/%-.%"R!QG P2<CW ]1QBH]7\31Z2U[FPNKA-/MUN;F1 H"H=WW=Q&X
MX4G _GQ4WA>TNM/\+Z987L0BN+2UC@<*X8$HH7((['%8/B70M=U>ZUFW$%M=
MV=Y8>59--/M%K)M8,=F#EB2"&[ 8S0!NW&OQ+,+>RMI;ZX-L+HQQ$#;&?NDE
MB.6P0!['I3(_$D%S'9+:6ES+<WL!G2V=1&\:# )?<?EY('?)/&1DUAQ:5XET
MC5;35K&QM;LSZ?%:7MHUULV-&3M=7*\C#$$8^F:LWFF^(;3Q)9:]:PVU_(]F
M;2\MS+Y00%]ZLC$'(!)'(R1COT +$?C6T>UAN'L+R,2:F-,96"9CFW!/F^;[
MN[N,]*DOO$5FW]NV$]C=N-,MEDN%0J#+&ZM]P[@<X5NN#Z5S-CIFH:IX>OVM
M(XI+VR\427@A,FU9#'/N*AB.,\X)%:9T?7IK_P 27LMC;H-5T^."&-;C+*ZJ
MXP> ,?/R>V.,T 7!XIM=.M=$M+32KZ<:C9^99QQE6.%C#;"6;.<$<GCWIVH>
M-K/3[:::2TF+6D*2W<)DC62#<H8KM+?,P4Y('YU3@T?5XKKPC(;(;=(MGAN_
MWJ\%HU3*^HR,]N,=^*DET[Q!I7B?4+K3+&SU&QU1DD83S^4UM*$"$_=.Y2%!
MP.?Z@&@/%=K</(-/@EOEAABGD,14$)(,J0I()&.3[=,GBMFXG2UMI;B3=LB0
MNVT$G &3@#K7':_X9O\ 59VECM1#JD"QK8ZO;2B(I@+N$BYR5SN.W#9!QQUK
MJM3CO)=)NXM/F6&\>!U@D8<)(5.TG\<4 9EIXH%U>I9?V;<Q7,]E]MMXY"@\
MQ,@8//RL"PR#Z]:7P=K=SXA\-6NJ75L87N 7'*E2"QQC!S@# YP>*Q]&T+6K
M?Q#I>J3Z=:P>7826UVWVHR2,Y9#O+;?F)VGO^/:M7P3IFH:)X8M=*U&*)'LU
M,:M%)O$@R?FZ#&<CB@"FTB6OQ0GDDF9(1H?FOO<E5Q-R<'@<#M5FU\:Z?<ZK
M8V!C>/\ M%&:UD+HP?:-Q#!22AQR 1^O%0ZEH-WJ7BR\G>(K876C-IYE#C<&
M9B2=N>F#CZ]L<TGA^#Q5#:0Z=J-GI\'V./R_MT4N\W&%PI";1M[$DGL<#G@
MN6/BRWO+W3[=K*ZMUU2.1[224 ;PG)!7.5)'(R.GH>*?9>)%U%(YK*PFGMY_
M,$4RNF"R9X//RDX.,_CCI7/:9X?\1+J/A^_O;*T-U8M*M[<-=%Y)]Z%=^=O3
MT7MG' %6])\-W=OXCM=6AL_[*=A)_:D<,P,%V2N%*H#PV[#9P.XYSF@#5\'Z
MW<^(/#MOJ5U:F!Y]S 94J1N. ,'/ P.0*S&N(M4\9ZWI6JW#P16MK UFHF,7
MRL&+RJ01R&P-W;'N<Z'@O3=1T7PY!I>H10HUIN1'BDW>8-Q.[H,<$<4_Q#I<
MNL1_98+.!)2-HOYT5S;J>IC')W^G0=\G&" <IH'B&^\2)X4L+N9F6Y@N9[QE
M.TW B8QIG'8GYB._':I?[1OQ?W>B^?.;'3M:B2>42-N2UDB+JI;.=H<@$Y^[
MP>,UN2^&$TRZT.\T> %=(B>V-ON ,D+J <$\;@R@\XSSS5K0=)FTQM5U*Z3=
M=ZE<&X>.,YV*%"H@/&2 /IDGMS0!GZ+>ZD_ARULI9)4O;AIMDTV=\5L)&"RM
MGOLVXSU)!/>NFM# ;6+[-*)80H5'#[\@<?>[_6N>UG0[_4/"^H( IU.^V-(F
M[C:K ^2#TQMW+Z$LQXS5KPW8W=M<ZO=7$+6T5[>^=!;L02B^6BDG!(!8J3C/
M?US0!9NM<6._FL+.SFOKFWA6:9(BHV*V=HRQ W':<#VYQQGG]?\ $ZZCHNAW
M.E1S36FIZC#%)@JI*[CNB()!!)7!'3J":T!IFHZ5XOO]7M+?[9:ZI#$LT8D"
MO%)&"%(W8!4@\\Y!'0UEOX4U&QT31+*VA2YFM=6&HW3+(%7EG9E7/7[^!P.G
M:@#I;#3X=%TV?[#:R@2,TXM3*#L8@91<G"C(Z X&3BN+O==N=:\*^%];N8)X
M9)=7MFVQMD.I<G 53\W0#D9XKT7[Z<@KD=#U%<%;>&]?M_"OA[27LH&DTG4(
M99&CN 0\<;$DC(')R,#ZY(H Z"W\76ACU0WUK<:?)I13SXIBC$AQE""K$'=T
MZ]>*?IGBJTU'6Y=&,;0W:0"X0>8DBR1YVD@J2,@]0?7O6)J?A?5-5O\ Q-M5
M;5-2CM3:3,X.V2 EAN4= 6QZ\9^E;FA2:].1)K&FV>G[$VE;>;S3*W'S=!M7
M@\9)Y]N0"YJ.K1:?/:VOEO/=7C,L$*8!;:,L23P !U/N.I-94WC:RM[*[GGL
M[I);&ZCMKNWPF^)G*A&^]@J=P((/2GZ_I-[+KND:[IZK-+IQECEMV;:98I
M=I/&X$ C. >>:R=6\):AJ-EX@O8DCCOM4EM9(K=WX5;<J55F'&YL-TR!D<G%
M &Y?>)$M+[4-/2QGDNK*Q%X!N4)*A+ 8.>.5.<C\ZJ:/XKDN=&T1[JU;[?JM
MN)8X]Z*),(K,P.>GS# Z^V,FJZZ3K=_XFO-1NK2WM;>[T<6>T7&]HWWN><+S
M][GM]:K1>'+RY\,:/HVMZ'#=0V=OY+F"Y'FQNBHJ2(QVXSAN ?3KTH T+OQ/
M>IK>@V<.E3K'J22R2*[('78OW,$X!!().>W&:L2^++>&ZC22RNEMY;_^SUN&
M  ,W0?*3G:3QNQU]N:RX?#^OVTGA>ZEECO[G3%GCN6FF(8K( %.['S%0 #QD
M]:IWOAWQ)>2K)<6EI<W%KK,=Y%=27)!>!9,K&HVG8 O4>HSR3F@#8O?&\=HV
MK!=&U";^QV'VLH(P%0H'WC+\C:<X'/L*T9]<@DN([*RADO9YK;[3LB8)MB/
M8L2,9/ [\'IC-85QHNL2CQB/L2YUJ():GSEQGR!%\WH,C/?CWHLM'UW2-;M-
M5MK**Y2?38K.[MVG"M$\>=KJW(*\GCKW]J ,WPSJ-G#X0T3^T;2\F^T:U)'
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
M'WL"%P5''/7GM44FI^*+OQ';Z1'/9Z;)-I'VN16@\XPRAU5AG=AADD=N#WH
M[*BJMK%?)<W375S%+"[*;=$BVF-=HR"<G.3DUE3ZI<WWBJ;0;.X^R"ULUN)9
M@@9F9V(50#Q@;23QSD8Q0!OT5P7_  ENN7%EIJQM:0W9UQM(O"82RLRASO7Y
MN!\H./?&1UKJGFO-)\.3W-]<)>75K;R2/(D7EK)M!(^7)QP!WH M2ZC9PBX:
M6X1%MAF9V.%CXS@GH#C!QUY'K5;3O$.DZM;SSZ?>+<I;';,$5BR'W7&?TJEX
M,A\SP5I4L^)I;F!+N5G&=TK_ +PL??<<U0\/SS)XZUR#4=-6TOKF&*:.2*;S
M(Y8$RB\X!#!B<Y'<>G(!U<4L<\22PR+)&ZAE=3D,#T(-$LJ01-+(V%0;F.,\
M?2N;\)W+QZUXDT?K#8WRO#Z*LJ"0J/8,6/XU'I[7LGQ*UB-[YV@AL[9DA*#
M#&3@?B,YZG\J .ATW4;35]/AO[&;SK:==T<@4C<,XS@\U:KS3PCJ.JZ3X5\'
M2BY@:QOIELWMO)^8!@Y#[\]<KTQC!_&MJ/6_$6JV\>IZ/;&6$7KQ&W?RA&\*
M2%&.XMN#_*3TQVP>I .DU75K'1+)KW49_(@4A2^TMR3@< $]:NURWQ*S_P (
M%J..N8<9_P"NJ5%)J6OZ9XFBTJ_O;>YAU*UFEMI8;?RVMY(\$J02=RX8<GF@
M#KJ*XRS\2ZG/I/A"^>2/=J\J1W2"/@YC=\KZ<K4NG^)+BY\3?V5>71L+Q;F8
M?8KB$!)X &\MX7Q\Q^X3S_>X&* .FL[ZWOUF:V<L(9FA?*,N'4X(Y S]1Q5B
MN"N?%.NP^$=6U%9K4W5CK#68/D$*T8F2/@;C@_-G)S5RZ\2:EH&IZU#J<T5]
M%::6-1A\J'RBOS.ICZG(RHYZ\T =C17,P77BF/4(W^R_:K.6V=G\SRH_+F R
M@3:Q)1NG.2.#FL[3/%-_J%A>O9S-<:I:V3/+I5S!Y4T5QQ@ <;DZXY/;GG@
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
M\TC11_NVV,ZC+('QMW#!XSG@^E9HU+4;+Q9'H-S<^?%?6;S6UR8U#Q.A 96
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
M4A;<$ ^4N6/ SQSQG%<7J]G%+I7CN_\ ,E6XLKPRV[QRLOENL,9#  ]<^O\
MC7I5I9VUA:I:V=O%;P1C"11(%51[ 54/A[162XC.DV12Z;=.I@7$I]6XY/UH
M Y^VD76_&E_INKH)(8M.MY;2%ONL'W>9(!_>!VC/4=L9-8EK<7EQHWA/[;,\
MYB\0M%#/(<M+$@F5&)[\#KWZUWLVB:5<) DNG6SK;#;"#$/W8[@>@]NE/N-(
MTVZ%N+C3[:46I!@#Q*?*(Z;>./PH X'4I(-;\,^.9M1PU[82W,,2LV&@C1/W
M>WT#<D_WLD'/2K/G1ZIK*Z+?W=K!"VCV[VB7*%@^0PD="'7##"\\D8XQSGK[
MSP[HFH73W=YI-G/.\9C>62%69EQC!..>*+OP[HE_;P6]WI%E/#;?ZF-X%*Q_
M[HQP/:@#C8M)AO?$>BZ;=ZK=:G;R:/<+)-Y[QBX"R1A6X;T/4'G .34UT9M*
MUY9KRV6_TN;48HX+Z"0^?92 J@B<'EDW#'![DD9(-=DVD::][%>OI]LUU"NV
M*8Q+O0>@.,@4BZ/IBW9NUL+<3L_F&01C)?\ O'_:]^M &/XXOIK*PTQ5=H[6
MYU2""\D4E=L+$YR1T!(52?1C5:WM!:?$"XTNUC TNYTL3SVP_P!7'+YFU2!T
M7<N[('7;FNIN;:"\MWM[F&.>&0;7CD4,K#T(/6H;?2["U@>""SACCD&'54'S
M\8Y]>.* .=^&-O!%X%L)8HU5Y0^]A_%B1\5A>)KR(PZKJ-C,YGL]8MXOM,TN
M)(W#1!HH@.B8))R><MP>M>@6.FV.EP>1I]G!:19SY<$81?R%5YO#NB7,]Q//
MI%E++= +.[VZL90,$!B1ST'Y"@#!T*VL5^(OB29(XA(4M'1AU)9'R1ZY JQX
MD_Y''PC_ -?5Q_Z3O6\NF:>M\M\MC;BZ2/REG$2[PG]T-C./:BYTRPO+B&YN
MK*">:W.89)(PS1G_ &2>GX4 <%:[=>@N[JYUN#3]3L=3DWL(B;B';*0D8^<9
M1DVC;MP<]SS3-6O(FG74;&9R\?B2*W:YFE_>Y\Q4>) .D0&1@GGDX[UW;:%I
M#ZJ-5?3+1K]>ER85\P=OO8STIDGAS0YI;B671[&22Z(:=FMT)E(((+<<\@&@
M#E-1FFL-?:^O+>/4=*N-1A$=];R8GL9,HHC9>\98#I_>)P<BKW@RTL[?7/$Y
MCBCCE&J,JXX.#%&3^N371#1M,6Z-TMA;B<N)"XC&2PX#'U(]>M21Z=8PWTM_
M%9P)=SJ%EG6,!W Z MU/;\J .6EL;*3XKRF:),R:*C%LX);SBN<^N,#\JYVY
MN;ZPTJ6P22ZN+[PS?M<W!,[[I[,$.-W/S%D<8!_YYMZ5Z7-IUC<7L-[-9P27
M5N"(IGC!>,'K@]13C96IEGE-O'ON4"3-MYD49P#Z]3^= '%:YJ#II,6L03RK
M9:MJUO'-*)& CM,A=PY^4/C.1CB2K96ZT?QU+:Z+;B2VFTIKB2R$GEQ"97"H
M0<$(6&0<#G;GM75-8VC6/V%[:)[7RQ'Y+("FS&-N#QC%-LM.LM.1DL[6* -C
M=L4#..F?7% '&>,'OM0\+"37-'@L6AU&T\L+="<$&9 3G:,<$C\:FN=+L-0^
M)'V&52UJ-" ,4<A4$>>1@[2,CV]?I787=G:W]K):WEO%<02##Q2H&5OJ#59=
M#TE+@7*:9:+,(O)$BPJ&$>,;,X^[CMTH X*QGGF\'>"KB6ZG:4:ND!8S-\Z!
MI% 89PW"CKZ5JV&F0W7C/Q+)*;F=K">VGMHOM,@"OY.[H#R">QR.>E=*OAS0
MUMXK=='L1#!)YL48MUVQO_> QP?<5/!I6G6M[->V]C;Q74_^MF2(!Y/J1R:
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
M-" MRH8%D<@9P0,9YQ571/"D5EJD.H?V'I6CR0[N-.E9S+D$88[$&WG.,'D
MY&.0!_B!K2Z\1V.G2_OIOLDTIMYW"VX3*@R-QEF'0 >K'(ZUR6E>1J=I\/[B
M_9;F0O<1R2RMN) BDP"3]!^5>DWFDZ=J$T$][86US+;-NA>6)6,9]02..WY5
M$= T8VJ6ITFR,$<OG)%]G7:LG]X#&,^] %+Q=<VT&B(MQ-.BW%S#"@@<*9&9
MQA"QZ*>C'TS6=X0D:+Q)XEL-\*10SPM';POF.(M$"P7\>O YSP*Z:]L;34K1
M[2^MHKFWD^]%,@93W'!IEKI.G6,S36=A;6\C(L9>*)5)4=%R!T'I0!R]UIUO
MJ/Q+NK*Z:>2VET9)'A^T.%+&5ES@'C@#@<=^M<_IL;)X5\):R;BY>_.JQ6IF
M>=R3$96C*8SC&T#M[UZ.VDZ<]ZU\UA;FZ=/+:<Q#>5_NENN/:H/^$;T/[+':
M_P!CV/V>%_,CB^SKL1O[P&, ^] '&R[-?EUZ.\UN#3;VPOV"2F,^?;1K@QLA
MWCY64=,8))ZT^YV:_J7B#3]1U>WT^YM)4\AY4*RV\7EHRR1G>NWYMQ/'L>,"
MNRGT+2+K48M2N-,M);R''EW#PJ77'3!QGCMZ4MYH6D:A>PWM[IEI<7,'^KEE
MA5F3N,$CUH Y?1;.T/C_ %1Y=KS/IMFWG$>6[LWF MCJ"1CZ5B6RO+X,\+9N
MKG+>(&A9Q<.&93/-P3GGH.3R.U>D2Z9837RWTME;O=)&8UG:,%PAZJ&ZXY/'
MO5;_ (1O0OL\=O\ V-8^3%)YL<?V=-J/_> QP?>@#CY$GTU?'6GZ7>FQ2V@B
MFMVDE;;"[Q$N0Q)(SC\#6GHVG-<^)[;5;:&6SL(]/"R0>?@/.6&"55L,0NX%
MCUR.N.-/6_#D5UI]]_95K86]_>*%EFE@&)ER-R.1S@@$9YQGBL_2/",5OJ4%
M\V@:/I$D!)SI\C.9<J5*GY$ 7G..>@Z4 =3!<074*S6\T<T3?=>-@RGMP14E
M9^BZ/;:'8?8[2.../>S[8DV("3G"J.@K0H **** "BBB@ HHHH **** "BBB
M@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ J*YN8;.!I[
MB01QKC)/J3@ >I)( '<FI:YWQO:7USHD4VGV[W4EG=Q7+6T;E7F1&RRJ1WQR
M/<4 6SXIT9;>\G:Z=%L"/M2M;R*\((R"R%=P&.<XQ[U8M-:L+^=(;:9I'>!+
MA<1.!Y;9VMDC S@X'7@U@V-U9K;7NLV_AK4T>2%8G6[AD,]P>R%3N;:,\DC'
M/&:H:'I5]H?]J^%!#,8+JW,EGJ$<#^7&S)M,1;G&TCY>?NX&<T =3#XATJYO
M(;**\_?7(8P$QL%FV_>V,1M?'7@FL7P]XB^S:9J$^MW\D@BUB>SCF>+L)-B
M[%P.PZ#DTWPG?7,VGZ9IE[X<N[:\TR)899KB "*/:FTM&_\ %NQCY>Q.>G.+
M+87\_@K7HX].O#-_;KWJ0F!E>6+[2LF5! W?*"<#Z4 =XNKV+:A<6'G[;FVB
M$LJ.K+M0YPV2,$<'D'L:YZ\\1_:/&?AVUL+Z;[)>"X:6)H"B2JL1*LK,H+#/
MH<=*Q]=M-3\1:GKG]GZ??0+?:"D$$L\)B#L))"4.?ND@XP<'GG@YJX;ZXU;Q
M#X3NX]%U*W6T\];I9;1T$!:+:!D@ C/<9% &U;>(]'L].OM1GUPW%JEZT;2R
M)Q"W \H849 R.>>O6K]AX@TO4[NXM+2[$DUL TB%67Y3G##(&Y3CJ,BN%OK6
M\E\&^*+9=,OFFN=:,L,7V23=(AEC8,!CD84G\/<5MW*?:/'D]Q):79LIM",#
M2F!T4MO+%=Q "G:>Y&.G6@#:3Q1HSS6T0O1NNP3;DQN%F&>J,1AAR.AZ$'I3
MO$>MQ>'-!N]5FBDE6WC+!(T+%CV!QT&>YX%<3X<O+?/AH:I#JMO_ &9'Y5H9
M=,DCC#.HC4/+RI^4[<_*"3GCI76>.+*YU'P3J]G9Q--/+;,(XUZL?0>] &=J
M/B)[7Q5H;M>3PZ=>6MR\MN\!4ETV;<*5WD_,>._&!6[;^(-+N],CU*WNA);2
MN40JC;F8$@J$QNW9!XQG@U@32S7GC'PU?+IU]'!#:7*R/):N/++A H;C@G:>
MOXUA+:ZE;V_]HII.HSQ6>OWEQ+:QQR12R02[PLD8X+$!LX'/)% 'H6FZM8ZO
M#)+8S^8(I#%(I5D:-QU5E8 J?8BF_P!LV']M?V-YS?;O*\[RO*?E.F[=C&,G
M'7KQ5+PW%:E+F\M=*N-/6Z<,QN@PFF(&-S!B2/09YX],54\76-^MQIFN:/;^
M??V,_EF+H)89<(P/L#M;VVF@#6_MW3A!YYG8+YYMU!B?<\@)!55QEB,'H#T/
MH:S]5\8Z;8>';W6(#)<K:$QM$D3AUD[*ZD93DC)('!^E4=8TVZTO5/#.H6\4
MUW::8TT=V(D+R'S4 \W:.6(8$G&3\QK*US1+^_L?&6H6=I.5U**W6W@,9624
MQ#YFV'!&<X&0"=OTH ZMM5LI]<L(5U*:":2&5ULFA*><!CYF#+E=N..F<]ZB
M_P"$T\.[@O\ :2'-Q]F+"-]JR9QACC"\\9. ?PJA>2RWOC7PY?1V%ZD"6]T)
M'>V<>7O\O9NX^7.T\'IWQ7/7=K>2>"?%%JFFWQN+G67FAC^R2;I$,R,&'R\C
M"D^WY4 =Y?:]IFFM,MU<[3;QB2;;&S^4ASAGV@[1P>3CH?2K=I=P7UJES:R"
M6&095QT-<%K,XC\0:['#;:I]GU:RABN)(-->YY*,.-I!C8(PX8'G!QZ]GH4M
ME+H=G_9S.UK'$(H_,4JX"?+A@0"""I!SW%  NNZ<UTELLSL\DCQ(5A<HSH"6
M4-C:2-K<9[$=:HZ/XML-5TV[U!Q+:6]M,\9:>)T&%8KG)&,DC[HY&0",UAZ;
M9WUGXBMYM(6_CL[B\E-]IUY;MY4!.\F:*1@-N3V!.=_;G%#^S-7_ .$:GMH=
M.NC<:;KYOVA9-HNHQ.9 $)X;((/'<8ZT =U:ZWIUY-/!%.4FMU#RQ31M$Z*>
MC%7 .W@\].*ACUW3M1E:QM+YX[F2 RQ'RBI9.F]-ZX<=.1D=*Y?Q)HU[XKO[
MJ[TN.>W7^Q9[7?/$T)EDD(*QX< X&#DXP-P]\:VC:T^IP0RW'AV]LKBU@*SO
M<6I4QG !2(]7R0/N\8'/.!0 WPAXB^T^%=#DU.XDFO\ 4("X*PLQ<@_,3M&
M!D>@KI9YXK:"2>>1(HHU+.[G"J!R23V%>;^!8]5\,Q:8MY87\]M?6HBES:.9
M+"2/^$_+GRVSGV.3W-=;XXTR]U?P?J%EIP#73JC1H3C?M=6*Y]PI'XT 78/$
M&FW,[V\<T@F2'S_*>"1'>/\ O*I4%A_NYJ!/%FB26ME=)=LT-_)Y5LX@D(D?
M)&T?+UX/7T/I69+'+X@\4>']3M[2ZMH].2>2X-S T17>@41_,!N.>3C(^7KR
M*R+WPOJTD.LZ5:JT5K9W!U/2I <9G;YU0>RN),C_ &U]* .NOO$VCZ:;C[;=
M^0+9T25GB? 9ON@'&#G(Z4^Q\0:5J4]U!:WBO): -,K*R;5.<-\P&5.#\PR/
M>N9\1VM]<_#Z4O83OJ&H7$%S+;PQ-(R'S8VVD ?PH@7_ (#4>OZ?>ZQXDU>*
MS@N8UO?#IM8IW@=$,I=VVEB,#AAU]?7B@#JK37],O;X6,-P?M#1^:B21/'YB
M?WD+ !A[C-8>O>)%.I:!'I>H2A+K4EAE"PGRIX]K;L.5P<$#[K52LXF\061"
M>']1T[5HK2:'[3?EPMN[QE?W;,QW9..0,8'/.!5-)[VXT3PE8G0M2BNM)O[=
M;N,VC!8PD3H6#8VLIZY!/OVH Z_Q;<W-GX1U:\L[E[>XMK26:.1%4D%5)'#
MCM5;1?%ND7RV]@-0$M_]E65TV-F3"C<5.,.>O"YJWXJM)[_PEJ]G:QF6>>RF
MCC0'EF*$ ?G6%%:2ZS=^%FAM+FW_ +)S)<2SV[Q%/W13RQN W9)YQD87KTR
M;T'B72;K2&U:"Y:2S1RAD$+_ 'L[2,;<GGCIUJ_<W4=K9R74BR&.-"Y"1LS8
M'HH&2?:N3M])NK;QI=:;$%.D7$B:JXS_ *N4$@ICT9U60>ZM76W*-):RHHRS
M(P ]\4 <9=^+9+RR\,ZQ;W,UC:WMZJ7,4D6U61HW?[S+D_='*G!KI;/Q#I-_
M97%Y;W8,-JYCF,B-&T;#'!5@"#R.W.:XJRCO1X>\%6DFDZ@DFG7D?VD-:N?+
M"1.A/ Z988/?M2ZGI^J75SXIDLK"Z=O[0L[R"-HWB%TL2Q[U5B!SE#C'/ Q0
M!W-AK-AJ5Q/;6TS?:+;'FPRQ/$Z ]"58 X/8]*AU:^M;>]TR";5'LY9KD".)
M%!^TG:?D/!P.^>.G6L_PV;2^O9-3@T._L9&A$4DVHJRRMSD( Q)(')STY&,\
MX9XPCFEO_#AAMKB80:JDTK10LXC01NI)(''+"@"U/XT\.VYF\W4T MYO(F(C
M<B-^/O$# '(^8\>]2-XDMU\5+H @N#+]F\]I! Y7E@% (&,=<GH,8SG..2O[
M:ZFT/QU FG7IEOIV-LOV23]\#$B@KQS\RG^=:T270\9VEV+.\$%UHJVRS"%A
MY4@DR0^<;< YYQG''- &Y_PD>D_;8K0W>V29F6)FC<1R%?O!7(VL1@\ ]C45
MIXNT"^G\FWU*-VQ(2=K!0(_OY8C Q[FN6\+VQ%IIVCZKX;U'^T-)=!Y\Q=K4
M;.!*C%L$D= !G)QC&33[#2]0OO /B'3(+:>WO+B[NI(EGB:+S \A9>6 X8<>
MV><4 =7%XDTF6>:#[7Y4D$!N'6>-XOW0ZN-X&5]QD5#?>*M.L=.O[PK<O]@@
M$\L7V617VG=M(!4<':>>@P<XK @-GK-C<W4_A'55GBLI8YTO?,WD,N&BB+,2
MV[U'''KBJZZ9K/\ 8OB'2;:6\U'3Y=)=+*2^@,=PLA5P(<L 7'?)'&<4 =;!
MK]H^FVUW*)D:X3<L0MY#(3C)PFW<0/7&.E.C\0Z5-I\%_#>++!<MLA,:LS2,
M,Y4*!N)&#D8R,'/2N2O)+V"YT+6GT;5;BR2Q:SN(+='6X@8E"'V*0Q&4(/T!
M]*62UETG6-$UNTT*[BTQ&N5FMHHVDGB,H7$K(,DDE3G&2 >><B@#7\&ZM<:K
M<Z]YMY+<Q6VHF* RQA&1/+0[2N!C!)ZC/K6S?:Q8Z:S+<RN&2,RN(XGD*(/X
MCM!P.#R?0^E8G@\3C5/$4LME=6\=SJ'G0M/$4WH8T&1GGJ#5;Q=932ZJUYIK
MZC9ZI;V0\FXM[=IH;D;F/DR* 1U&><??SVH UQXGM7\4)H20W!<VHN#+Y#[<
M%@%P<8QUR>@Z9SG%A/$>DO<Q6ZW?S3R&*%S&PCD<9RJN1M8\'@'L?2N>:VU0
M^+H+B>REA:\T%;5I;=-T<$^\LP+?P@9R/7'&36?%IU_J'@72O#+V%S;:E97%
MNDCM"PCB$3@F59,;6RJ\8.26QZT =C=>(M)LKCR;B[V$2K"S^6QC1VQA6<#:
MI.1P2.H]:R+#6Y+/Q!XG74[Z1[*PDMO*W1@^6'3) "+D_,?<U1TB6]TV?4]
MO] NKQYM0EN+:X\C?;2H[[U9W/"E2>0>>!C)Q6;J%MJ]OXRUG7[*RO)TM;BV
MD6T:V?9>((A&Y0X^^IY4_7L<T ;M_K[6'C:R6:]F33I]-FE-NT)SO5T (4+O
M)P3QS]*W(O$&E3Z5!JD5XLEI<$+"ZJQ,C9(VA<;BV01C&>#6$\SW7C_3-12Q
MOEMETR9&D>TD4([.A"GC@X4_Y-86FV6I6MKHNHC3[PQZ9J]Y)<6QMW#^7,9
MLBJ1EMH<' R>30!U6LZY%<^%-:N](OFBNK"VE8GR]LD4BH6 9'7(SQU'0\5:
ML]7AAT33)+V=VN+JV1@J1M))(VP%B%4$GU/'%<WJ>G7-TWB_5K>UN1%?Z6+2
M"+R'$D\@1QNV8W?Q*H)'KVYI+<WNDZWH.KS:??36)T86,BQ6SO);2[E8EHP-
MV#MQD#L* -#PCX@-SI.H7>H7\ERB:K/;P.T?SN@;"*$502<=@,]:TV\7:"ED
MUY)J"QPI/]G?S$9623(&UE(W*>1U'>N(CM-5A@?4UT;49(K3Q#=74MJBM'++
M#*&4.@!!8C=T'7)J]KEK'=>&9Y].T"_@:[OK61UE@D>>;9(I9F7D@!1@9Y.#
MQTR =OINJ6>K6S7%C-YL2R-&3L9<,IP1@@&K=5)=0$=W9VXM;J0788B58CLB
MPN?WA/W<]!QUXJW0!#=W4-C9S7=PVV*"-I'/H ,FL#P;KU_JJ:C9:Q$L&IV%
MR5EB':-_GC/_ 'R<?\!JQX@+WUW8Z.J7:0SRB6>XB@9E14^95W;2H)<+UXP#
MGJ*Q;ZSN_#_CW3M5MQJ.H0WT#6NH,L!D\M008W.Q0.#D>N#0!MW/C3P[:-<+
M-J2J;6013XC=A&QQ]X@<#D<].>M;8(*[@01C.:\]O+>ZDL?'L:Z?>E[\$6H^
MR2?OOW"H-O'/S _SZ5VVD,3HUF621"($!61"K @ $$'D4 9EMXCT>TTZ]U"?
M7#<6J7KQ-+(F!"Q('E#"C(&0,\]>M3_\)9HSQW[0W#S-I\?FS1QPN7V\X91C
MY@<=1D>]<;=VMY)X-\36ZZ;?-+<ZX9H8OLDFZ2,S1MN QTPI/X5L:C#<7OC.
M]D@L[HQW&@-;QRM;NJ&0LS!2Q& <'O\ 3KQ0!M:;XDM+[0K+5)5EA^UQH5B,
M$A<L4#$*NW+@#/*@C )H/B[05LX+MM2C6&><VZ%E8'S <%2",J1WR!BN1VZC
M;Z+X3U!M&U26'3+4VE[:Q*Z3@F.-=ZJ""P#(1[@YZ58U6T3[!I<]AH5[;QOK
ML-Y+&8'DE95'SRR 9(/L>>!WXH ZA?%.CO8)>QW,DD+J[CR[>1F"J2K$H%W
M @C)%2MX@TM;>*=;KSHYH?/1H(VES'Q\WR@X'/6N<UO[1IOC)]0N-+U*_P!.
MO[.*$/8>87@D1G.&52#M(?KZU7U'1UACM#I=KJ.@WMI:,UH]I"T\>"['R95
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
M !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M%%%% !116/XIUR3PYHCZG'9B[$<D:-'YFP_.X0$<'/+#CB@#8HKE1XQGT_5K
MJQU_3%L%CLGOH98I_-$D:??!X&''''(]_66V\3W\VJVUFVDY2\A=XI8W<K$Z
MC.R4E %R.A&>010!TM%<;:^.;V3PT/$5WH\=MISQ*P?[5N97,HC^8!>$ .XM
MSP#Q6E+XF>UTX7,T$$IN+N.UL#;W&^.Z+A=K;L?*,EL]<!3UH Z"BN9N_%=S
MIMUJ%A>:?%]LMK%K^ 1SGR[B->&&XKE6![8/4'Z-T[Q7>W.HZ-#>:7';V^M6
MQEMY$N-[*RH'*LNT #!."">G.,\ '457OK*WU*PN+&Z0O!<QM'(H8C*D8(R.
M14.M:M;:%H]SJEWN\FV3<0HY8] ![DD#\:SG\07MEK%EINHV$,3ZBC_97CG+
M+YJKN,;G:,<=&&<X/'J 3V7AU+0QB;4]1O8HB#'%=3!E4CH3A06Q_M$\\]:V
M*XUO'<\6B6NI3Z7!"7U(Z?=Q/>'_ $9@Y7.?+^;IGMP15W7?%%YH]GJ=Y'ID
M5Q!82Q1;OM)5G9]N>-F!C>O?GGIB@#I:9%+'/&)89%D1NC(<@_C6'::]?R>(
M+K1KO38H9UM!=VQ2YWK(A8KACM&U@<=,CGJ:RM/\6&#PSX?N[#0888-4N?LR
M6T4P00$ER,?* 1\ASTZ]Z .THKE&\:26.GZY+JNGK#<Z-(BO';S>8D@D"F,A
MBJXSN .1Q5ZWUV]/BLZ#<6$*D6HNS/'.2-A)7&TKUW#'7H<^U &[2!@3@$$_
M6JFK)?RZ3=1Z6\4=Z\16!YB0JL1P3@$\=>E<'H^EI%;:YH,&@V^A^)'T]Q'/
M;R%TN$;(#JYY'S8SGD'!H ]&21)%W1NKC.,J<\TH96) ()4X.#T-<=I$=YI%
MU?30V/V9;V.V@LK1\#,R(0[D \*!C)[B/C/&=S0[O3"ALK.\%S,NZ260@@S-
MN(9P>C#=D?+D#IQP* (G\,0C4;B\M=2U&S-T_F3Q03#RW; &<,IP< #@CI6M
M;6\5I L$*[47IDDDD\DDGDDG))/)-4M:UA-'@MSY?FSW=PEM;Q;MH>1NF3S@
M  DG!X'0UDWOBZXTR75;.[TZ,WMA8-J$:I.=EQ",[B&*Y5@1C&#U'// !U%%
M96@ZEJ.J6WVJ\T^.TAECCDMRL_F,X9<G<,#:1]3UJMJ.O7UKXDM]%M=-BG:Y
MM9)XY9+C8N4*@AAM) ^;J,_2@#>HKBU\<:@-'759=$CCM[>\^QWX^U9:-_-\
MHF,;?G )'4J?;O6K/X@NIKC4XM)L8[O^R\+-YDQ0R2;=Q1,*>0".3W./>@#?
MHKDW\:373:+_ &/IJW::U;RRP-+/Y>QD4$JPVG'7&1GH>*2Z\97D-K<3P:1]
MH>R=8[FWBD9I&?"EUCPA#;=V.2,D'IP2 =;13(W$D2R $!E# ,,'\17+S>-6
MBT-?$8L5;13-L:42GS1'OV>;MVXQGG&<XY]J .EN+JVLXQ)=7$4"$X#2N%&?
M3)J4$$9'(KC[K[5??$AK"XM+6XLO[(.8Y)B1L>7#-MV8W$*!CI@=:U_$,\V@
M>#;Z?28XD:PLF:%7)VHJ)Q]< <"@#7::))4B:1%DDSL4L 6QUP.]/K@;U[T^
M)O!UY]C@DU"2UNA_KN'_ ':8+.5SCDGH<9.,UK6GC+S=+$ES9K%?_P!H2:<8
M%E+)YJ;BQ#!<[=JD_=SVH ZBD8;E*Y(R,9!P:Q]!UNXU6>^MKJP>VDLY%42
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
M80R[0,$9P02>!D#. #QG)*]G<6NFM<V%U<^1OBWM*BY*B4KMQLR/[V0"#[
MZJBN>TGQ.^LWQBM(8&BBN9;>Y3S_ -_;[-P#,F.C%1W_ (AU['A_Q._B$QS6
MT,!MFWB7;.3+;.#@)(F.">>_&._6@#H:0@,I4]",&J.LZK'H]B+AT,KR2QP0
MQ X\R1V"J,]N3R>PS6==^([K1[;4KC6--,4-FD;1302;UN"YP$&0"&W8'/'(
M- "V7A&UL(%M(]1U%[!!M6RDG!C"_P!W.-Q7M@MC''2MZL%_$%Y9ZU:Z3?V$
M,<VH12/:/%.61G09:-B5!!QR#@YYX&*R;7QUJ,^EZ/JK:$@M-4G%N MV#*DC
M%@O!4 KE<9R#STH [.21(8VDE=411EF8X 'N:56#*&4@@C(([UPGB/5YM5\+
M>+M*U33X(+K3;/S,1R^=&RNC%&!*J005/;M5_3_$FH6E_I6F:CI"6\&H0;;.
MX2YWY=4W;9!M^4D G@D?6@#JHY8YE+12+(H)4E3D9!P1^!I]<7;^+#9>&8M1
MM=!AA$NJM:26T,P7:QF*%P=H#$G)[=>M:$'B:_%UK%E=:1F\TV!+B*&TF\W[
M0CAMH!*KALJ01C\Z .DK,UO3+?4XH(KF_NK1!+TM[DP^=D$;&QU!].M9#>++
MSS]5T];:S-[96'VQ&CN#)'U8%'^4$,I7IWR.E58M<N1X:\*7.J:9;7KW\]H@
ME:7<8W= 1+@I][[W Z>IH [*.-(HUCC4(B *JJ,  = *=7.7/B>Y:#5;K3;!
M+NWTB1HI]TVQY&10T@0;2. <<D9((XZU"/%US?:M;6.D:=%<I>Z9]OMYY;DQ
M@C<HPPVDC[W;/;IR0 =3167X;UK_ (2#0K?4C ;=I"ZO$6W;'1RC#/<94\UJ
M4 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110
M 4444 %%%% !1110 5RGQ+8CP-=A656,]L%+=,_:(ZZNJ6K?94T^6>[L&ODA
M4OY*0>:[?[J]S0!DWWAAM>O)KG6/*16L);*.*!RVT28WON('/  &..>3GA="
MT[Q/911P:IJ=E=Q6B%83%$R//QA3*22!^ ZX.>.>@C"K&JHH50  H&,#TQ3J
M .:T;0M6TCP;!HRS6<ES;L '8,8Y8]^YE88R,J67OZ^U9Y\ #['="TDATZ5K
M^+4+."'+P6TL8 Z<9#<YP!U'ISTNKZU::)!#-=B4K-.D"^7&6^9V"C/8#)[U
MH4 <Q?>'+W59KR_NC;1WLNFO80(CLT<8?EG+$ D].,=NO/#(?#>I1S^&)&DM
M<:'$T<F&;][F/R\CCC@9_3WKJ:H:1K-KK4=S):"4"UN7MI/-C*'>N,\'G'-
M#?$.BP^(M O-(N':-+J/;O7JA!!4_@0#5&+1=0OM0TN\UJ2V9]+#LGV<L1-(
MR[=Y! VX&?EYY/7CGH** .7NO!-M>ZAK4D\Q-IJL.!!CB*4KL>0>^%3!_P![
MUHU#PO>W7@5=!CNXWNW\MI[J;.'<.'=L#U8'Z9]JZBB@# _LG4O^$N&N?Z+L
M_L_[(8?,;.[=OW9V],\=.G/M65:^$-5M?#_A_31/9L^CWHN6<E@)0-^ !CC[
MY]>GOQVE% '"^(["?2[;Q+?7ES910:VT$$9E4ND1PL0\S( VD<D_P^]6/#DU
M[;ZS'%(=%O!<1[))K"XDDFC102I;>6^3/ YZM]:[!T61"CJ&5A@JPR"*CM[2
MVLT*6MO% I.2L:!03^% $>HB_-C)_9C6ZW?&PW*L8^HR#M(/3-5K+3KC^T3J
MFH-";LP^0B0@[(TSN/)Y))QS@=!QU)TZ* *-O92?VA/?73*TA!B@522(H_\
MXIB,GZ*.<9.%X=\*7>D7NGM<3PM#I=E):0&-B6F#NK;G! Q@(. 3R3S75T4
M8WB;0GURSMOL]P+>\L;I+NVD9=RAUSPP[J02#]:S]2\,WNK'4KVX:VBO;S3&
MTZ)$=FCB1LEF+%06))'&!]W'?-=310!2T>VGLM'M+2Y,9EMX5B8QD[3M&,C/
MKBJ-WI%[-XNLM8C:#R+6UE@,;,0S;RISTQQL'YUMT4 <9+X1U67PMJ&D>?:"
M6]U$W@EW,50&82[<8YY&/QS[5>AT+4]-U;4[S39;7R]6"R2Q3%O]'F"[2ZD#
MYP>/E.WIU%:L>M6DFO2Z*HE%U%;BX;=&0NPMM&">O.>GI5BPO!?V:7*P3P!\
M_N[B,QN,$CE3TZ9^E '.V_A&;3;OPXNG20_9-$BDB82D[Y=Z@$\# /!/OGM2
MKX?U_3M;OI='U.TCT[4I?/FCN(6>2"0@!FCP0#G&<-P#^NS9:U::AJE_IT(E
M$^GE!-OC*CYP2,9Z\#K6A0 U4"QA,E@!C+')/UKD(/!=U'X;D\*/<0OHYERD
MN6\Y8=^\Q$8P3U&[/0]*Z>>^2%[4+%-,MT^Q7AC+JGRD[F(Z+QU]2*M4 80T
MB^'C4ZV&M_LQL1:>5N.\8<ONZ8[XQ^M7];T[^V-"O],\SROMEM)!OQG;N4C.
M._6KU% '+1>']8.J:!>W,]D_]DPRQR+&&7?O55XSGIMS[Y[53;P7JC6-R8K^
M"VOUU=]4LYD!=49L@QN"!D8)&1Z]..>UHH SM(AU9(GEUFYMI+A\#R[5&6)
M,]-Q)).>3]!CC)IZMH=S/KUAKVG2Q+=VB/#)%,2$GB;!*D@$J00"#@_2MLNH
M8*6 9N@)Y-.H Y*^\'3W>F:DR7,2:G?WL5[O*DQHT138GJ5 0 GKR3CM2OX7
MU6]U'5;J_O;15U/2Q9.D,3'RS\_()/(&_OU]JZRL^'6;6?7)]&02BYMX5F?=
M&0NUB0,$]>0>E &/_P (_J4NBV.EZC%I>HVT5N89[>1616("A&4X8@C#=A][
MC&*CMO"-]8/X<DMM1CD?1X);>1IT9O,20+RO/;:  3TKK** .(C\&ZVL-G$V
MI63FRU4WZSM"YDGSO_UAW=0'QQV Y&*EN?"6IW&D^);#SK0?VY.TJ/N;]T"J
MK@C'/"@]NM=E535=2M]'TRXU&Z$A@MHS))Y:%R% R3@4 847A_6+#Q"^L:?<
M68-];Q0WT$P8KNC!"NA&">"1@X^M4['P=JMII'AZR>ZM)6T>\-RS ,H<$.-H
MZ_WSS[=*Z^VG2ZM8KB/.R5 ZYZX(R*EH Y&X\+ZG/:^*+?SK0#72=C;F_<YC
M$?/'/ SVYK+U8W!\0VMG'?Z1;WFGZ<L<JWDDD6_>>2CJ59AA!D'@9'?IZ%4%
MQ96EWM^TVL,^S[OF1AL?3- &=X7N)IM'5);>SA6!O*B-BQ,#H ,&/(''./JI
MIGB;P[_;\5F8[@VT]I<"195^]Y9!610>VY&(^N*V69(HRS%41!DDG  %.H P
MM8T&:XU;2]8TV2**[TW?&(I,B.:)P R$CE<8!!P<8Z&L_4?!UQ?V&K2BYACU
M+4[F"X+8+1Q^24*)V)&$Y/'+'CM76U!?7D6GV,UY.',4"%WV(6; ZX Y- &,
M^CZE)XHL-9DDM6%M9R0.@W+N9RIR.#@#:!66OA'5E\,0Z3Y]F9(M2^V^9EL$
M>=YNW&/4XSZ5U>G7T.J:9:ZA;[O)NX4FCW#!VLH89'K@U9H \WNY7OO$&M7$
M%[X>\L3K#-;ZA))$W[M0,.JL Z[LX9EZ>V!7>Z9<SWFF6]S<P"":6,,\8)(4
M^Q(!Q]0#4CV-I+<+<R6L+SK]V5HP6'T/6IZ .6?PO<WFN66J78M([FRNGD%[
M;Y$TT)W!8F& ,8*@G)^[P!FJS^"+N;2M1TY]0A19-1;4+&9(B7BD,GF#=DX(
M!XXZ@UV59^N:U:>'M(GU2]$IMX!E_*C+M^7]3Q0!EW7AF77;IKG7/)4BQELT
MBMG+ "4 2/D@<D  #''/)[+X?TOQ)IUO#::EJ5G=062;(#%&R23@#"^822!@
M>@.3@YXYZ.B@#A]%\%:IH+:=<V5S:+=P>9%>G+".\B9RZ@C'#*6.&Y_$' Z_
M4+&'5-,N=/N0?)NH6AD"GG:P(./SJMJ6NV6E&S$YD?[;=+:Q&)-P\QCC!/0<
MYZ^AK2H Y:V\,ZA+8:1INJ7%O+;:1-'*DL6[?<&,$1[E(PN."<$Y([9JYI6C
MWUCXEUG4YFMVAU)HBJ(S;H_+3;SD8.>O;'O6[10!C^*=&EU[09;"WF2&8R12
MQO(I*[DD5P"!V.W'XU6AT?54\6/KDLEI)NT];3RU+)\P<ONZ'C+8^G/M6^KJ
MQ8*P)4X8 ]#C.#^!%.H X:U\%ZUINDZ,=/U&TCU32!+&K.C-#<12'+*PX(Y
MZ>GOQUVFPWL5KG4;B.>Y=MSF)"L:\ ;5!)...YY.3QG%6Z* .9U#0=9@\3OK
M>@WMI$;N%(;R"\C9D;83M==I!W $C'2GR^'KZV\06NNV5U'/=+:?9+M+@E%G
M7=N# @':0Q/&",''&*Z.B@#CYO!UVL5HUM/;FX76#JURTFX*[D$;% !P,$#)
M_N].:6]DN5^*< LQ!)(-$<M'*Y3*^<O.0#CGV]:ZXD $DX [U0F^PQZE:2?8
M/-GN20MU' &" +G+/_"".!Z]* ,#_A"IK<66H6EU%_:UK?37KNZD12M-D2)@
M<@8P >2-HX-)K/@^\U>QUIS+;Q7^KK#$3EFC@CC.0 <98DY).!U]N>PHH P-
M8TC5;_4='O[>XM4:Q+F:WF5GB8L  XQ@[EP<9_O'I65'X,U2'0K6R6_M7GLM
M6.H0,8F"L/,=BK<Y_C/3T[UVE% ',S>&+B^UO4[F_DA>TU'35L)%C)5P!NRP
MXP,[SQGC Y-,MO#.H366CZ=JMQ;RV^CS1RI+%N#W!C!$>Y2,+C@G!.2.U=35
M>[O!9^3F">7SIEB'DQE]F?XFQT4=SVH Y*Y\'ZI<>'=>THSVBMJ]\UTLFYB(
M@S*2I&.<;1SQU]N>I@&I?;V:X>V%H85VQH&+B7)W?,>"N,8XS4EW>PV5M//*
M6*P1^8ZHI9@O/\(Y['\J;IFH0:MI=KJ-MN\FZB66/>,':PR,C\: +595[IUU
M>ZY:3RK;26%LCGRG)+&1@ 'QC'"[AC_:)K39U4J&8 N<*">IQG _ '\JHZ9K
M5IJMQ?06PE#V$WDS>9&4^;:&XSSC!% &5?>'+I?%^GZ[I7V2W6"!X+F,@@W"
M,00.!QM(R#SUK>O+?[793VQ;9YT;1[L9QD8S4],ED\J)Y"K-L4MM09)QV [F
M@#F;#PQ>FPT33M3EMC;:(T;1F L6N&C7;&6!'R8ZD G) Y'>C?>#-9GT[6=+
MMK^R2TU"^^VQN\;&16,BNRGG& 5.".OMUKL;2X%W9PW(BEB$R!_+F0HZY&<,
M#T/J*D=UC0N[!549+,< "@#E]=\+7FOR.EW]B.V:*2TO4#)/:;0NX+P<Y*L1
M\W&[G.*EFT#4'U?7KQ)+;9JEG';QJ6;,90. 3QSG>>/:NEHH Y*W\,:G"GA9
M3+:G^P4V.=S?OAY1BXXXX.?KQ[T[1/#NOZ(YTR'5+5M$28R0@PM]I1"V[RMV
M=N.<;L9QZ<8ZNB@#EU\+W-QK]AJUV+2*[LI7+7=MD2W,9#!8W& ,<@DY/W>
M,TFG^%[E/$%EK5X+2&]MX7CN9K3(-Z6  +C  QC/?G'2NG#J6*A@67J >13J
M ,CQ/H;>(-&:SBN3:W"2)/;SA<^7*C!E..XR*S[SP[JWB'P]=Z=XAO[999T5
M8S8QLJ1,K!@_S'+'<!QQP,=R:U[S6K2RU?3]+E$OVC4"XA*QDI\BECEN@X'3
MK6A0!SZZ/J-[J6G:EJAM3<:9')Y*0,VV65U"EV)'RC&?E&?O=>*S+;PAJEMX
M9T/21/:-)I5\ERTFY@) K%MH&."=V.^,=\\=B75652P!;A03UIU '*7GA2\O
M[SQ(TEQ!%#KEFELI7+-$45U#$8 .=Y.,CI5JWT.^N+K2[C5#; Z2C>3' S$2
MR%-F]B0-H"Y^7GDYSQ70UGQZU:2Z]+HJB474, N&W1D+L+%1@GKR#T]* .;_
M .$0U7_A'DTSS[/S$U7[?ORVTCSO-VXQZ\9J;5/"VJZC?ZU<0WL-G_:=A':H
M\;,7B*%CGH.#N(/M6]>:U:6.JV&FS"7S]09UA*QDKE5+'+=!P#[UH4 <G!X6
MU-]5>\N;FPBCFTK^SWAMH& C +$;,GI\WZ8QWIA\+ZPWA_0-.DN;)Y-'N8)2
MP#*'2%=H7OR>I/;T-=5<3I;6\D\@<K&I8A%+' ] .34&DZG;ZUI5MJ5IO\BY
MC$D>\8.#ZB@##3PUJ%C)K4&G7%O]CUF1YF\W=OMI77:Y  PX.,X)7!IUEX8G
MTOQ!87EB8#96.E?V>D4CD.1N5@Q(&/X /Q)]JUM-UFUU6YOK>V$H>PF$,WF1
ME/FVAN,\XP16A0!B^$]'NM!T0:?=20R,DTL@>(G!#NS]QV+8_"MJBB@ HHHH
M **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@
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
MJ5HS72P:G*9;B-9SM+$@M@?PY(!./Y59OO#=GJ$]C<SS78N;$,L<\<YC=E8
M,K%<9!P/RH Y2WU[7+OPSX;NO[2>*XNM7:RN&\I#YB!Y5R1C@_NQTP.M7$OO
M$%N/$^FVEU)J5SI\MNUJTWEK*RR*K.F0H7.-VW(ZD5J)X)TJ*UMK:&2[BBM;
MLWD*K.3LE))R,YX&YN.G/.:GD\+64EU?W)N+M9=0>)YF27;AHR"A7 XQM ]^
M^: ,.V\1+>:9.]MK-U;2"_AADMKRW_TJ#.,PJN.6;!PW/4\\<0)XHU.SL]5M
MYI9%>+6(+&":Y"%X$E\O);;\IV[FQU[9S70W?A#3;Y)#<O<O<R7$=P;M9-DH
MDC&U""H & 2, 8Y/<TUO!6B20:E!-#--%J>TW*2SNP8@ !AD\-\H.>N10!F>
M+;/4K+POXC+:W-);M8-);H0HEC95._Y@.5/R]N,]:DDN=0T_6_"-I'J,SVUY
MYRW$;HGS[8&9>0H(P?Y"M2U\*:=;Z7=:=+)=WL=W$89GN[AI9&CP1M#$\#D]
M,=<T+X6LDFTR7[1=L^E[C;L\VXY9=K%B<YRO'L.F* .>DUS5;[PAJWB>UOV@
MFL9IVBM2JF/RX6(V.,9)8*23G()&,5,EWJVM>)+JSBUBYL;:328+N-(XXR\+
MN7& 2IX^49SD^XK:?PGIK27>/.2VOI/-NK17_<S/QDD8R,X&0" >X-3'0+;^
MV)]62XN8[F> 6[%7&T(,D #'&"2<^] '*1^*-6?PUH6L7B7;V,]D6OI]/16D
MAEXVR,A!^3 8G QZC'%=2OVG4_"4;:;JNZZFM%,%\BJ0[[>'P01@GJ,=^U0V
M7A.TTVWMX+&\OK=+:$P(%E!_=DYVG(.>>AZCL:U;&RMM-L8+&SB$5O;H(XT'
M\*@8% '"VOBZ[>?PS?2WTZV=PGV?5(V6,+%.<JA8[<C,B.IQ@=.G>_J-_J]I
M8:%=KJ4X_M#6(E>-XX_]1(Q*H?ER"%"^^<UM2^%-&FT^^L'M%-OJ%R;FX7^_
M(6#9_-15C5M%MM9%H+B29/LEPMQ%Y3!<2+]TGCG'/'2@#F;:*;_A)/&9>]N)
M$CAB C<J5P86..F0 2<8Q[YJGX:N-2TVS\#XU*22VU&U$$MJR((U MRZE>-V
M05Y))SD].E=9/X9L)M0O;X/<Q37T(BG\N8A7 4J#MZ9VDC/]>:BC\)V$4>E1
MI/=!='_X]!Y@^3Y=O/'/R\<]J ,[Q/%-)XV\*HE[<0*\MSE8RN,B!N<$'GDC
MGL>,5A7CZC:#QSJ>GZG+9R6%R)T6-$(D98$.'W Y'&,#'U-=SJFAV>KS6DUS
MYRRV4ADADAE:-AD%6&1V(.#5-_".GR0:K TUT8]78M=CS!\^1MXXXX '':@#
M,GU+6-<U+4=/TV?[+):6L+H4D52))%+!B"C;E' QQT/7C&Q)+J2^$9);BXBB
MU*.T8R36V&02JIR5W#&,CH15:[\%:9>75K=F>^@NK:$0?:+:Z:*22,=%<KC(
M_6M>73X)-+;3D#0VYB\D",X*IC&!GVH XZWU36;N+P1MU66(ZM:DW9$49WL+
M??N&5X.?PZ<'I6=K%UJ5QX+UJVN=3N)7TW7([5)_E5Y8S)"0'P,''F'H!G S
M781>$["'^R=D]T/[&4K9_O!\@*[<'CYOEXY[4U_!^F2V6I6<KW,D6ISBXGS+
M@^:"I#J0!M/RKTXX% &?=W6L:AJ^IZ-IUX\<FGV\6R4R(CM(X8AV&P@C@#
M'7KQBL\OB.[\0:=I,^M_9)+C299+DV:(ZK,CHI9"RYZD\'/<#!Y&O?>#-+O[
MRWO3-?6]W!'Y1N+>[>.25,YVNP.6&>?6K2^'+)-6M=2B::*6S@-O"B/A%C.,
MKC'.<#KSQ0!S[7?B36H]3;1[R.&?3[TVT7FR*(SY>W=YB["3NR3P1@$8QCE;
MS7[RS\0BWU6:YL;>>ZA%C=PJLEK(OR[HG.,JQ;>,G'48('76N?!FDW.LRZIF
MZADN !<Q07+QQ7..!YB@X;CCW[YJQ+X;LYY)?.FN)+>:=;B2V9P8RZD%3C&0
M,JIP#@D<CK0!R:ZC=:$/&6IK>S2M!?QQH)RI12Z1 ,>,X7=TZ8'2M#4K_P 0
M^&(=2U:YFCN=/BL&DC@FF#R"<'@@JB_(0>1V[5MR>%=)FN=1FEBDD75%VW4+
M2MY3G:%W;<X!P ,^U1:;X/TO3;.:T+75Y#+"8-M[<-,$B/5%!/RKTZ>@]!0!
MAWMM<1^+_!<\^HRW9E:X+[PNTM]F8[EP!@>WT^IU/%FJ7^E3VEPL-Y)I823[
M6]BJM-$WR['VD$E!\V<>V?0OM/!.F6DVGR"YU"7^S68VBR7;$1 KMVCVQQSV
MXZ5J7FEK=WD5XMW<VTT4;1AH6&"K$$@@@@]!SC(H Y*.5[_Q=X6FAUJ>YBFT
MN9_.CVA92OEY;:5X+9.>XZ<4V37]5O/!-_XLM;YH9K6:9X[0JIB\N*0KY;#&
M265<YSG)XP.*Z3_A%-)4Z888I8/[+1H[?RIF7Y&QN5L'Y@< G--/A/3"]T!Y
MRVMY+YUQ9A_W,KY!+$8R,D#(! /<&@#,M=0U+Q1-K$=CJ$FF2V1BCMT"*VUF
MC63=(".02VW'HI[UE:]K3:1XX,S2A#<Z/;P&]5<Q6Y>:0>:W7Y<].V2 2!S7
M37_@_2[_ %AM5+7=O<2((Y_LMR\2W"CH) I^;'3Z4^Z\+:=>7US=S&4M<V?V
M)X\C9Y/)"A<<8))SUH R/$-K<+KOA*W74)FF^U3C[2Z(7_X]WR< !<^G&/8]
M*HIXDU/3[&\L)+UYYE\01Z7#>2HN^..0(VY@ %+ ,P!QC.,BNBB\)641TPBZ
MO6_LDDVF^8-LRNT@DCYOEXYS@4-X/TJ2WU&WG$T\>I3"></)_P M!C#J1@J1
MM'3T% %)KV^T[Q<^B27,EW9W>G27,9E WPNC!6&0!E2&'7H?:L?PQJDR:#X+
MT."9K<:A9O))*H&[;&H.U<]"2PY] >AY'7PZ%!$TLSW%Q/=2P^0;F5@9%C_N
MC  ')STR>^<"J3>"]*.E6&GJUS&-,;=93QR[98.V PZC'!!SF@#FK>_NM"N?
M$BQW)EGGUNVMEGFV@J)(XAD\8R < D=<$@\U9\03>*=$T+7KLZFL4,=L)K,[
MTDFC8<.#E "IR/<'O6Y_PA6BO;:E;W"7%RFJ%6N?/G9MS*  PYX(V@Y'\N*0
M>"]-.C7&ES7-_<Q72B.62XNFDD9!T0,W1?88H T],M+NU24W>HRWK3/O7S$5
M1$,#Y5V@<9SC.3[GK5ZH[>'R+=(?,>38H7=(<L?J:DH **** "BBB@ HHHH
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
M^M2>)=8.BZ'>W<$MM]KAMY)HHIVQYFQ2Q  ()Z=JX>V,EEX:\(Q7LNQ!K_\
MHHF;#>1^^$?7MM*X]B*=?:A8MI7CRQUJ2%-29IS#'.0&>$1?N"F>H!&>.AR>
MIH [ZUU.(Z19WM[/#;F>)&)=@J[F4' R:M2W5O ,S3Q1C:6^=P.!U//:O.DU
M;38M3LTUK41:Z=>Z) EG.PC,+$;O-0LRD G*9Z=![4L.D^'T\4^&M.91<VQT
MRYC1;X*7F0,GE[@0,C&2H(Z=LB@#T@$$ @Y!Z$4M5+6\L7N9]-M98O-L5198
M$X\H,,H,=L@<5;H Q+S79'\0KX?TV.-[P0?:+B67/EV\><#('+,3T7(XYSZL
M77Y=/U^#1M8$*O=Q/):7465279RZE23M8#GJ01Z=*RHX_P"POB??WUZ1'::U
M:1+#<.<(LL?!C)[$CD>O..:768AX@\>: MBPEATAI;B\F0Y6,LH5$STW$\XZ
MX&: .L^V6I5&%S%MD.$.\88^@]:&NK=)?*>XB63(7:7 .3T&/4X/Y5Y4=0T^
MV\%6NGRW$*75GXA!EA)&Z$"\)RP_A&".3QS71:'8Z+>_$/Q,7M[.>6*2TFA!
M56*,(\EU'8YQDB@#K=7U6TT32;G4[Y]EO;1EW(&3]![DX ^M9]O=^(KG35U
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
MZP7$,UNRR0NQ 7<.P.1@DXJ6'QKI,L][;NE[;S64'VAHIK5U>2+IO1<989H
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
MM$:) SLZ# Z]SR/ZXJ6#Q3I=SI%GJ44DACOI?(@C*8D:7)!3!Z$%6SG@8/-
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
M6J,DF[^'Y0<C/XU?^P:A%XZTZ[&G$V=OICVKS0E%C5V9" %+;MH"GMZ5U-%
M'GNHZ)K5QX<\96<>E3&;5+PR6BF2,>8I5%SG=Q]T]<=JT-;TC4=:\0EEL9X+
M:ZT.XL6G9H_W,DI4C(#9.,'IFNRHH XK1;#4;VR2QO\ PO;Z7=00-#+?CRF#
M$H5W1;?FR<@\XP,CFLZ.Q\0GPYX>T>70)_/T:_MC+*DL7ER11'&Y"6!.1@X(
M%>C44 8GC&TNM1\'ZI965NT]S<VSQ1QJRC+$8ZD@?K6=;VFI)XRT_4&TN<6T
M6C-;2/OC^20NC8QNST0\CCD5UE% '.^![.]T[PX+2_LY+69+F=]CLC95Y6<$
M%21T85T5%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !
M1110 4444 %%%% !1110 4444 %<WX^N[^Q\(W5QI]RMO('C1F*%B5:15('(
MP?FZ_P#ZQTE9GB+1E\0:%<Z6T[6_G;2LJKN*,K!@<=^5'% '/7RZF/B-9+;R
M6C7AT68&62-A&/WT?.P,2?IN_&I;#QE<WFD:2SP1Q:A?RSQ.$B>5$\EF5V"C
MYB"0,#(QNZ\<Z*^'[X>)+?6Y-4CDDALFM2AM<!MS!BW#<<J,#T[D\UF+X#N(
M](M+>'6V@O\ 3[J6YM+V*V V>8S%U9"Q#*=Q[CM^(!M>'=0U._MK@:K9?9Y8
M)VC201LBW"?PN%8DKGT).,=:P_#,AU7QYXEO;OYI=/ECL[56_P"6,>W+$>FX
M\D^PKIM+LKFSMR+V^:^N7.9)B@0=, *H^Z/Q/4\UG77AR6/7I-;T>^6QN[E%
MCNTDA\V*X"_=)4,I# < @].U %;QMIMJGAGQ#J21A;B72I8I& ^^ K%<_3)Q
M]:BTC6=4MM7TK2;V*T-M?:>TL!AW;XS&$R&).&R&[ 8]^M:.J:%>:OHE]87.
MI*);V!H#(D!"1H1@[4W=3ZEC5>3PO<RZEI=X^I(!I]I):E4MRI<.%!(._P"4
M_*,=>] %6R\4:F^MZ9I]W%9[]0CFWQ0[B;62,;MAD!*OQP< $'ZU1_X2'Q3J
M'A'4]7C.FV:6L-X,JCN^^)F *@G&,*1SWY]JNZ?X)O+$Z*3KID_L4.D %HJA
MHV7;AN>6Z<]_3/-7-.\+/:>&=0T*ZOQ/%>^?^\CA\MD$Q8M_$<X+'% %2UUR
M^M[72M+$T<EY-8"Y:86DDH5 %4 HK9));D[@./>H7\4>(UBT2.32K:UN]0NI
M+:59]X *JS!U'7:0H.#SV]ZGF\'7YBTRXM=?>VU33HC MT+52DL1 RC1YY'R
M@]>N3Z8M7?AF\N9])N#J^Z?3[AKAY);?=YSE2I& P"C!( 'H.O.0"IK=U?:3
M=>&M1N_)^V3WJ:?>"WSY;K*&Z9YP'52,].?4UUM8&M6#:WK6E0 '[/IMT+V=
M^V]5(C0>^6W'T"C/45JV<%W ]R;J]^TK),7A'E!/)3 PG'WL$$Y//- %JBBB
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 ***P6URXU#7;C1]'6+_0@OVR[F4LD3,,B-5!&YL<G
MD >YXH WJ*R[9]7BU66.]DMI+!+<.LRQ&-MY)R#EB, #/XC\;46J:?/#+-#?
M6TD</^L=)E*IWY.>* +5%58M4T^>6&*&_MI))T,D2),I,BCJRC/(]Q5*W\4Z
M+<RWJIJ-L([%@DTS2J$#$9(R3VXYZ<X[&@#7HJ!+VTD:54NH6, #2@2 ^6",
M@MZ9'/--@O[.\BD>UO()ECX=XI%8(<9YQTXYH LT5B>$+Z]U3PW;ZA?2^8]T
M7EC.P+B(L?+X'^SM/XU!<:W>3^,)/#]I/;6C0V:W.Z>(R-/N8C"@,O"XY/7G
MMB@#HJ*Y2YU;6H9M#MKF:"VN[J\F^U*B?N_L\6XE@6Y&0$Y_VZZ..^LYK(7L
M5W ]J5W"=9 4(]=W3% %BBJ1UC2Q%)*=2M!'%CS'\]<)G.,G/&<'\JFCO+65
MY$CN87:)0T@60$H",@GT!'(H GHJO;7UG>[_ +)=0W'ED!_*D#;2>1G'2IR0
MH))  Y)/:@!:*P_#WB+_ (2"]U410[+6RG6")R.9/D#%OH=PQ[?7 U8[ZTFN
M&MXKJ%YESNC60%ACKD=>XH GHJJ=3L%G,#7UL)0X0QF5=VX]!C/4^E*-1L6A
MGF6]MS%;,4F<2KMB8=0QSP1D<&@"S15"2^9M8@LK:>R?",]S$TW[Y%XVE4'4
M9/)..U/35M-E+B/4+5RBEW"S*=J@X)// S0!<HK"?Q/::?I\-UJ=Y8@W=P8K
M7[-/O652^%.3CM@L>@YYJ]%?-<:Q);03V4L$,7[Y4FS-'(3P"HX"D \DYR*
M+]%5HM1L9[AK>&\MY)D!+1I*I90#@Y&<CFHQK&ELJ,-2M"))?(0B=?FD_N#G
MEN1QUH NT56EU*Q@N!;2WMO',Q4"-Y5#$GH,9SSVJS0 445QUIXBUG6])U+4
M-'GT\SVDLT:Z=)"S2*4) #L'&&;&1QCD#WH [&BJQU*Q%W):&\@%Q%'YLD/F
M#>J?WB.H'O6!K7B7[/?:!<66I6ATN]N)$GE!5E*K&[9#YP "O/TZT =116//
MKVFWOA^YO]/UZRAA"LBWV]7CA?'!() )''!-6Y]4LM/M(IKV^A163<)&(4.
M,E@/3O[4 7:*IRZMI\%K%=27L @F&8I X(D&,Y7'7CGCM5&\\6:/9W6F0->P
MN-3+>3(L@*; C-OW=,?* /4GV- &U15;4=0M=*T^>_O)1%;VZ%Y&QG '\ZJV
M6OZ=>:-;:H;F**&X5",R X9@#L]VYZ4 :=%06=[:ZA;BXL[B.XB)(#QL&&1P
M1QW'I3;W4;+3D#WEU' &SC>V,XZX'M0!9HJG-J^G6]I'=RWT"P2KNCDW@AQC
M.1CJ,<\5%+XAT6".&275K)$N(S)$QG7$B %BPYY  )S[4 :-%8MCXLT?4M9D
MTRSO(9G2!)@ZN"K[\X"^O"Y./6KEMK6EWDS0VVH6\LBIYA5) ?DSC</49[CB
M@"]16/8ZS8Q6"SW6O65TDUR\<,ZLJ*Q+X6,8)W$<+QUQ5S3]7TW5?._L^^M[
MOR&V2>3('V'T.* +E%0W5W;V47FW,R1)G +G&3Z#U/M51O$&BI917SZK9K:S
M-MCF:=0C-TP#GK[4 :-%5DU&Q=[A$O(&:U_UX$@S%QGYO3CGFF6FK:=?&46M
M[!*8 #*%<90$9!/H".A[T 7**SX]?T>43E-3M2+=0\I,J@(IZ,<]CZ]*;;>(
M]$O+P6=MJUG+<-$)1$DREBA&0V,],$'Z<T :5%<XOBS3-5T34+FSUBVT\0.\
M*W4^TB,@XWE6(XR#@'K6O<ZG9:?%&UY>11[UR"S8W #D@>G\J +E%4I=9TN"
M.WDEU&U1+K'D,9EQ+G^[SS^%-M=<TF]LY;RUU*VFMH7*22QR@JK>A/KR/S%
M%^BJ]G?VE^DC6EPDPB?RY-ASL; .T^AP0<>]2R2)#$TLC!$0%F8G  '>@!]%
M<9?>-/MVDZ3J>BW42PW&K0VLZNH9C$TQ3//W<@9Y&>>U=-8ZSIFIQ32V.H6U
MS' Q65XI0P0CGDCIQ0!=HJG9ZMIVH2R0V=[#/)$ 71'!*@]#CT/8]#4US=6]
MG#YUS,D,>0-SM@9/0?4^E $U%4X]6TZ:Q:^COK=K525:82#:I!P03V.>,>M1
M_P!NZ1]CFO#J5JMO VV61I0HC;T;/0^QH T**SX=>TBYN)[>#4K62:V3S)HT
ME!:-?4CL*I:9XQT/4].BOAJ%O DTS0QK+*%9CO*KP><MC('7F@#=HK/37](E
MLH[R/4K:2WE8K'(D@8.1U QUQ@]/2LSQ1KDUMX=@U31KR!XY+F!/,4"171Y5
M0[3G'\77F@#HZ**RKG6;:>SNETV_MVNDMVF3^/@?Q8R,KGOTH U:*YWPIXFM
M=6TC2XKK4;9]6N;*.>6!74.25!)VCIUS]*U5UG3'OA9+?VYN2S*(Q(,EE^\H
M]2.XZB@"[16<GB'19+M+1-6LWG>4PK&LZEF< $J!GJ 1Q[U)#K.F7%[]BAO[
M>2YP6$2R L0#@D>N#UQTH NT5#<W5O9P&>ZF2&($ N[ #). /J3Q44&JZ?<V
MDEW#>P/;PDB23>-L9'4,>Q'O0!;HJI:ZKI]ZDS6UY#*(#B;:X_=\9^;TXYYJ
M&'7]'N)C##J=L\BH9"@E&=@_BQ_=Y'/2@#1HJDNLZ6\=K(FHVK)>-MMF$RD3
M'T4Y^8_2H+74(#>:G(^LVL\%N5W1+M'V3"_,';/.2"><8H U**R+_6;%])O9
M+?6K6R:%=C7,NTK;N1QN4D<]\'&:27Q+IUMKEIHLMRANKB R[B=HP"H'XL6X
M'M0!L45F:;J$$EM>W3ZS:WEO%</^]CVJD"@ [&8$@E>Y..M2PZUI<\<\D>H6
MY6V ,Q,@'E ]"V>@/J: +U%9UKXAT:]NX[2UU2TFN)8_-CBCF4LR8SD#TQS]
M*ECU;3Y;L6D=Y"T[%@(PXRQ7[V/7'?T[T 7**KWE_9Z=$LM[=0VR,P56E<*&
M8] ,]3[55MO$6B7BW+6^K64JVA_TAEG4B+_>.>* -*BLZW\0:-=K*UOJMG((
M(EEE*S*0B,,JQYX!'.:<FN:4]O<7 U&V\JU_U[&0 19Z;L_=_&@"_150:KI[
M0VTPOK<Q79 MW$@Q*3T"GO\ A573]2MVMKRZDUFUO($N6421[0L(XQ&2"=S
MGKU.0,4 :M%8]_K-E+IYDM=<M+,_:$B\Z3:PW;@3'@D?,0<8ZC-7+W5M.TW'
MVV]AM\J6_>.!A1U8^@'KTH N451N-:TJT>)+G4K6%ID,D8>9060 DL.>F 3G
MI1!K6EW.GKJ$%_!+:NVU9D<%6;.,#'4YXQ0!>HJ"TO+:^@\^TGCGBW%=Z-D9
M!P1]0014] !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1
M110 4444 %%%% !1110 4444 %%%% !1110 444E "UPWA.\M?#5]KNFZW<1
MV5U/JDUW%+<,$6YC?!5E8\$C&"!TQ7<T4 <GXEF;4I=&C=731I+XF\D<85U5
M"R!O]AG '/!P.Q&<W5VU&:7Q%KEG;RA)K&+3+!=A!G<NP\W'7:&DX/< GI7?
M44 </I^E0Z9XOTRQ$$CQZ/I);SEB/SR/A.OLD1 '^T!6?!#<ZEX!M+)(95NO
M$.H[[IFC/R*[F60D'L$79Z9XKTBB@#D/$.EVUOJ6C1"".'3)[HOJ4VW'FE$)
MB$K=P7Z[N"<#O69KCW[Q>)=<ABFAAO+>#3+/]VVYP6*M-MZX!E.#W"Y[BO0J
M* *]A#%;Z?;001M'%%$J(C#!50  "/I7">*=0TWQ%X=34K&<P>(+.0MIJQ\7
M&_=@*$ZLKC&>,8.>E>ATE '$7RW5QXAU'6+ZV+PZ'I040!"RSSL/-<+Z@;8Q
M]<>AJII:_P!G#PKI5Y#<?8X[.2Z8"!B)[O<I ( XP6=QGO@]J]#HH \SCCN=
M7\-WZ+:20W7B36?+EW1']S"K8.?4".(\],O6OXMLX=,?2EA@2"PN;P?VG<B
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
M;JZ,=H_B!VYXZ[36U?&+4?%7]M6$@>RAT>:*ZG4?+(6(*1^[#YCCJ/QKM:*
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
M)<Q"RM4N;M9)%78&S\J'D.PVDD9';G)Q5?4&BF^(?AJZBSB>RNVSZC$9''_
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
M:*S:?2+Y)YB+AMKHN[[OR=3O[^E &KJ/C.WL;34K]+.6XLM*N!;W4B,H</\
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
MU];P7EM:2,PFNMWE (Q!VC)R0,#CUQFK%<S/J&I6'B3P]IGVI)K:^CG\[=$
MY*(&'(XQSZ=NM9LOB?5)_!USXOLYD\FWEE9;%D&UX8Y"AW-]X.0I;(.!P,'K
M0!V%[86>I6S6M]:PW4#?>CFC#J?P-1Z=I&FZ1$T6FV%O:(QRPAC";C[XZUS$
MNKZ[J&MZQ9V.H06L%O8075NQM=S+O#G!RW/W1D_D.]=!X;U.36?#6FZG,BI+
M=VR2NJ] Q4$X]LT 7;JZALK:6YN'V10J7=@"< =\#FFV-[;ZE807UI)YEO<Q
MK+$^"-RD9!P>1Q7)0&\D\1>,1-?RRQ001*D;*N IA9@!QP 6/Y\U4\+ZAJVG
M6/@N%[J&2QU*T$!@$.#'M@WJP;.2?EP>W- 'H%)FN,?Q%J=OJNF![J*X2\U.
M2SGBACS!&N'*;9, EQL&[DC.X8'%6?!)O)+KQ!)=7\ESLU>:(!U4?=6, \#L
M !B@#JZ*R-=O+FVDL8X;J.VBGE996"[YV&PD"),'<<@9X. #]1S"^*=>ET/2
M9XY;>.XFUHZ;.TD&=RAW4-@' .%Y _ B@#M(]-L(=0FU"*S@2\G4++<+&!(X
M'0%NIZ#\A5JN2;4-;_M!]!6[DN+RUM%GEN[:WB0NSNX0;';  "<XY.>J]][0
MY=3GT:VDUFWCM]0*8GCB8,H8'&003P>OMF@"2WTJPM+V>]M[2**YN,>=*JX:
M3'3<>^*MUR%UXDN(/%+:5>73Z8[W40LO-A!@O(CMW@28_P!9G>,9'\/!ZU7N
M_$>K0:#XMN4N5,VC7#+;.8EY41H^&'?ECR,4 =5%J]C/JT^E1S$WEO&LLD>Q
MAM4G .2,'D'I4EU?6]D]ND[,IN91#%M1FRY!.#@<< \GBN/FBU2]^(5XNFW\
M5C,^BV[&9X/-_P"6DG 7('7Z_P!0EKXLUBYTOP]<R?9XI;K5CIU\BQDABOF
MLA)X!\OT[]>* .ZHKCKC6O$.I+J$^@V[.]C>M;QPMY0BE"$!P[,V\$_-@C&.
M.#5A-1UK71JSZ/<P6LNG7?V:&&=0R2LJJS^80"0#N(&W&,9YSB@#J,\XH)P,
MFN4TUKV7XD:NDE_(T,5E;,L.U=H#&3@<9ZC.>I_*I?B(]S%X/N)+:Z>W82PJ
MQ0#YU:5%*G/;#=J .GHKG/[1O;SQ)/H$%\T!LK-)I;@1J7D=R0H (P% 7GCG
M(Y&.9_">M7.M:5*][&B7=G=2VEQY8(1GC;:67/8\&@#:=U12S'@ DX&>*JZ7
MJMEK5@E]I\WG6[LRJ^TKDJQ4\$ ]0:P<WC_%!H?M\OV=-*658=J[1F4@CIGG
M:.>M<[X?U#5M(\,:1>074/V2767M9+8PY++)=.I;=G@@G(QQQS0!Z917'W6L
M^(-2.I2:# S26%X;>*)A%Y4I3;O#EF##.3C;C''6NK:<1VAN)5*A4WLH.<8&
M2/>@!E]86>IVK6M_:PW4#$%HID#J2#D<'WJ9$6-%1%"HHPJJ, #T%<YHMYKF
MKV6DZW%=6XM;T>9<6KK@1QL,KL8#)<< Y.#STK*E\5:I)X+?QG:RH8(Y&?["
MT8VM LA0C=]X/@;LYQGC'>@#L+_3;'5(!!?VL5S$&#!)5W+D=#@U855151>
M!@"N.N-5\07>K>(;6SU"WMXK"U@N+=C:[F&]9&VG+=]HR?R J"VU&_UGQ'X5
MO/MCVZ7VD273P(JE%?$1/49/WB/8=,9- '=45PD7B/7+?3=:UN]O+>2UT:[N
MH3:QVV#.$&$^;=\GS$>O?\-"XU?5='O-!DN[E+RVU:5;:91$%\J5D+*4QSM^
M4@ALGH<T ;VFZM9:NMPUC,91;3M!+E&7;(H!(Y ]15VN8\%\3>(_^PW/_P"@
M1T[Q5KTNAW5HT[7%KIDB/YU]!")?)DRNS>,'"$%LG'7'(H V'U>Q36(](:8B
M]EB:5(]C<H, G.,=QWJX  ,#@5P]TUY>^,/#C6]_ 9Y=(G+7<:;T;)BRR#.#
MD].W/?I4^F^(-4O/#UG+<7EO#,-0EL[F=8_GD",ZCRH\'+G:O&#@;CB@#LJ*
MX)_%.N_\(Q)=12PBYMM:&GLTT/,B><$!(!PK8;G&?;%:4E_K46K#06NWN;D6
MS7;7-K;Q(P4N51=LC8P,')Y)XZ=: .KHK-T"75IM&@;7+>.#4!E95B8%3@G!
M&"<9&#C/&:YWQ;XAU31HM6N[:ZB)T^.*6&VBC\S<O\?G$CY,\A<$'C/- ':4
M5SL^H:CJFM:MI6F726<FFP1%79 WF2R!F7=D'"  9QR<GD8Y;;ZEJ>I:Q)HQ
MN([.>QLH9;R6W4/NFDW?*F\?<&PGD9.1TQR =)4%Y=PV%G->7#,L,"%W*J6(
M &3P 2?PKC=+\3:O<:?X:NIYXF?4=0GM;E5B 4JIEP5[@_NQWJ6_\0ZQ;:;X
MP>&XB,NC-FV>2'/R^2LA! (R<DC/Z&@#?_X1W0+J[&IG1[%[F3$GG-;+O)Z@
MG(SGZ\U=-];C45T\LWVAHC,%V-C8" 3NQC.2.,YKE-=\3W>FO;"ZN9-.M;FQ
M5H=0$ >$7)S\LIP=J_=(Z9R>>*T&U/49/&Z:0MU$+.;2'N4,<8++()$7=N)(
M(PQQQCZT ;5]?V^G6INKEF6)65241G.68*.%!/4BK-><Z?J^L:9\*K;6(K\2
MW#SIO,\08D/<;&P1CD[LY.:Z3^TKW5_$6K:38W?V(:7'#EQ&KF2212PR&_A
M X&"23R,4 ="0#U%+7!V7BS6M8_X1HP-;6C:E)<P72&$N%DB5\E3GIE<@?K4
ML?B36X-%U!IUDO9--U8V=Q<6D ,GD!58R"/D;AO /7C)Q0!V]%9/AO4H]6TD
M7D.I1ZC"\C>7.B[3MSP&&!AAT/ ^@K'\4>(KG2-3-O/<OIEI+;#[+?F$/!]H
M)8%)3@[1]S'3JW- '6YYQ2UR-G)>O\0];Q?L\,-A;O%$X41@-YG&<9 R,YZ_
MI46EZ_J<NNZ7837BW*:C82RO+'"!&DJ;.86P-Z?-U.<\<]: .RSGI2UYSH^J
MZMIW@O3;\:B\\ESK)MY!-&IRKW;HQR!G)Z^U:FL:OJ8NO%5A%>&)+'2TN;>1
M$7?&S+(2,X_V![B@#L0<C(I:XRQU.]MK'P_H\$D\LUWI_P!H:6-8MZ(BQ@*N
M\A>K]3G@'CG(WO#LNLR:<PUR%([J.9T5E*_O8P?E<A20I(ZC/44 :M%<CXKU
MO4],75);2\B3[#8BY@@BC\QG(W%C-D?(F% &""?FZXQ2RZMK5[XIL]-M+RWM
M;>\TEKO)M][1N&0=SS][V'UH ZVJ5GJ]CJ%Y>6EK,7FL65+A2C+L)&0.1SQS
MQ7+:7XKU"_T_0;.5XTU#4[BYADN%3@+ 7#,JGC<VT8!X&2><8JQX4CGA\8^+
M8[B?[0XGMOWA4*2/)&,@<9Q@<8^@H ZZBL#Q-J5[H]QI=Y',%T][Q(+U2@)5
M7^56SV&\J#['M639>(]1GN=;TLWF;R*Y1-/<PJ \;MM#8_BVLLFX^BY&* .H
MM]6L;K4[G389BUU:*K31[&&T-G;R1@YP>E7:X:XCU+_A-=?_ +/ODMIH]+MF
M,SPB0D@RXXX'/?\ 3VL:/XGO/$,^D6$<@LY;K2%U&YEC0,<DA0J!L@#.XG(/
M  [YH [&DZ\&N&_X2_5(M/G^UP2L--U-[/4+JR@WLL03<LH0YQG*;N#CG Z8
MMP>([B]_LRQL;W[>U[#<7/VRT6,$QI(%4 .0H;YQG.<;3QSD '74M97AV769
M--(UV%([J.5T#(5_>(#\KD*2%)'49ZBM6@ HHHH **** "BBB@ HHHH ****
M "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "D95=2K ,I&
M"#T(I:* .>A\$Z/!IFF:>L;F+2[D7,!9LL6&>">XP<8] !VJY=:#'=>(;76C
M>7"36L+PQQ+LV;7QNSE<YX'?M3/$>M3:'!9316R3K<WL-L^Z0J4$CA=P&#GK
MTR*V* .93P/9)I_V7[=>&1+YK^"X)0203$DDKA0""2<@@C!K6L-(CLKRXOGE
M>XO+E5629P =JYVJ    ,D_4FM"B@#)UC0(]7N["\6]N;.ZT]V:&6WVYPPVL
M"&4@@CVK,?P#ISZ9-8_;;]=UZ;Z"82CS+:8DG*''J3USUKJ:* .>NO!]M?Z.
MUC?:A>W%P9$F6^9U$T<B?<9< !<<X '<]R3678:7-'X^NX;R2^OH9=&2WDN[
MB$A9&\QR5#*H4?*1P/YYKM:* .8L_!$5I)I+MK.HS?V.6%H',8"H4V;#A.1M
MXR>?>EE\$6TVD:EIC:G?>5J=V;N9AY>Y7+!B%^3@94>O2NFHH Q-;\,0ZVEE
M(]]=VM]8,6@O;=E6121AL\8(; R,8I\>@/!]G>'5;P3Q;S)+(5<W!;;G>",<
M;1C;C&/2MBB@"CH^DVVB:7%I]H&$,18C=C)+,68\<<DD\<52O_#,6I-=1W5[
M<26=U/'-);,%*ADVX"G&0#L!//KC&:VZ* .?E\(02C7%;4;S&NKMN1^[^4;-
MGR?+Q\O'.:@;P-:LTV-4U!4N;%;*Y16C G100I/R9! 8_=QG\\[]Q?6UK<VM
MO-*%ENW,<*=W(4N?T4U8H P+3PE%:7VEWBZG>N^F6QMHP_ED.AQG=\G^RO3'
M2F7'@Z"36[C4[75-0L1>8-W;VTH6.<@8R<@E21P2I!KHJ* ,.[\+P7PG@GNY
MWL9YHYC:%4VH4VX"G&57Y!D9]<8S6U)&DL;1R*'1P592,@@]13J* .?LO"%K
M9V]I9&[N9["QF$UK:RE2(R"2H+8W,%)X!/89S@5:L]!2R\07VLI>W#R7ZQK+
M$^S8 @(7&%R,;CW[U%J.MWBZI/I6DVD5S>V]J+ITFE,:L"Q54!P>3M;D\#CU
MX=<ZW<:3X8N=8UJS2"2V1Y&@@E\S@'Y1NP.3Q[9- $VO:'#KUG#!)<3VTEO<
M)<0S0$;HY%/!Y!!ZG@BH])\/0Z1J5]?QWMW/)?E&F$S*5W*H7<,*.2 /8=@*
M+35;U=7;3=3M[>&25/,M6AFW^:H'S@@@$;25YZ'</<4GAW6IM:AOFGMDMWL[
MZ6T*I(7!V$#.2!U^E ">(/#<&O&TF-U<65Y8N7MKJV8!X\C##D$$$=01VJ.X
M\*6UQ;6H:\NOMMI/]HBORRF;S,8)/&T@C@KC&,#C K=HH Y^^\'VFI:;J5I<
MW=SYFJ[1=7*; [*HPJCY< #Z=SW-4/%EK=/J'AB&)[V5H+[S);J.WWE (W&Y
MMJ[1DD#H.M=?10!A7'A+3[ZRU""_:6XDU)E:>?(5P4QLVX'R[<9'OG.<FI[?
M0O+O%OKF^GN[R. P13R*@,:D@L0  -Q(&2?3M6M10!S*>"+6/PU;:&NHWVRS
MN%N+:X)3S8G5MP_AP1DGJ#UIS>";*5-86XOKZ<:S$L=SO=.H4+O&%&#@#V'8
M"NDHH P_^$95K_2KZ;5+V6?2U<(7\O\ >[QAMV%] !QBHAX-LEAN[)+FX73+
MV8S36/R["Q.6 .-P5B.5!]<8S70T4 8I\-1_VO?ZFE_=))?VZV\B 1[%5<[=
MN5SD;CU)ZU;T328]"T>VTN&>6>*U01QM-MW;1T!V@#]*OT4 8DWAB&34]1OH
M[^[@;4H5BGCC*;20I4.,J3D*<=<=\5##X/@ABT2)-1O-NB?\>W^K^8;2F&^3
MGY21QBNAHH Y6+P%:0P6MNFJZB(+&\-W:Q[TQ"3NRH.S)!WGKDCL16MIF@PZ
M3J%_=6]U<%+^8SO;N5,:2$ ,R\9YVCJ3[=:MO?VZZ@FGB13=O"TRQ9_@4J"3
MZ#+ ?GZ50\,ZU+KVF27<ULEN\=S- 8T?>!L<KG.!GIZ4 .UC0(]6OK"^6]N;
M.ZT]G,4L&S)#C#*0RD$$ =JS1X$M$MXH(]4U!$AU$ZA&-T;;9,EL?,AR,L>O
M)SR:Z!'O#J$J/#$+01J8Y1(2[/D[@5QP!QSGO5B@#!UGPK%JNJ6^JP:C>Z;?
MP1^29[1E!DCSG:P8$$9Y''!K7L[6.RM4MXB[*F?F=MS,2<DD]R223]:SH-:G
ME\6W6B26R(D%I'<I,LA8N&9EP1@8QM/<UL4 8EWX9BOFDCNKVXFM)+I+HVS!
M<*ZD, IQD+E02,^O/-5-1\$6VH/JR_VE>P6VKC-S;1% I?:%W@E=PX XS@XY
M!Z5TU% &&?#(CU)-1MM4NX+D6JVDCXC;S$4DJ2"N P)/(X]0:RKK3(9;G1-%
MTNSNHHM'U-;B:26%PA012$L)",.2SC."3DFNQHH YR3P9;G6+J_MM3U"TBOF
MWW=G!*!%.V,$\C*DCJ5()I9O!MNVM7&HVNI7]BE[M^UVUO(JQSD#&>02IQP2
MI!KHJ* ,I= @B\0MK,-Q/"\D"02P(5$<@0G:3QD8W'H0*EUS1X->T>?3+F26
M..;:=\1 92K!E(R"."!6A10!B2>&D.I0:I!J%S%?QP?9Y;C"$W"9SAUVXR#R
M, 8Z=.*OZ7IEMI%D+2V#;=S.[N<M([$LS,?4DDU<HH RKG08I_$$>M1W=S!<
M);_9W6,KLD3=N (()X//!'H>*S4\#VT>AVVD+JE^(;6\%Y&_[K?Y@<R<G9C&
MXD]*Z>B@#G)O!D#:S<:C;:IJ%FMY@WEM;RA8YV QN/&5)'!*D&NA"*$"!0%
MP%QQCTIU% '.Z-X-M]$F"V^I7[V$<AD@T^213#"Q.>.-Q )R 20#SUYH3P99
M1V]Q8+<W']EW$_GO8?+Y>XMN*@XW!"W)7/KV.*Z*B@#$;PS&=2U6_74+M'U2
M%894'E[4500NW*Y! 9NI/6H;?P=;6HT<Q:C>J^D0M;Q."F9(B%&QOE_V5Y&#
M[UL%[S^TEC$,7V/R23+YAWB3(PNW'3&3G/X59H Q+'PM:6EGJEG-<3WMOJDT
MDL\<^S&9/O ;5! /Z46/AB*U-@+B]N;V/3<_9$GV_NSMV@D@#<0I(!/KZ\UM
MUGIJ+VMC;R:PL-K<33"$1QR%U+,V$ ) )R,$\<<^E $>C:''HKWS1W=Q/]NN
M6NI!-M^5V !QM4<<#KFGWNER75XMS%?S6Y\IH7C549'4G.2&!Y';ZGK6C10!
MS]IX/LK"]TVYM+JZB&FVAM8(LH4V'&2<KDDD#O5:/P+;0Q6P@U;4(YK6\EO(
M9QY6Y&DSO&"FT@[CU!Q74T4 <N_@2T:RN;1=4U%([B^%\WSQL5D#!N"4/&X
M\YJWK7A:+5[RTOX]1O+#4+13&MU:LH9T/56!!!&1G&.#6[10!7L;-+"T2W1Y
M)-N2TDK;G=B<EB?4G_ZU8.I>![/4Y=6WZA?0P:NJ_:;>)D"%@H4,"5+ X XS
M@XY%=-10!SEWX.CGU2/4[;6-1LKSR1!<30.F;E!TW@J1GDX( QGCM3KKPG;#
M5(-4LK^]TZ:&W%O+]G96$\2\@,&5LD<_,.>:Z&B@#A?#'AXZIX(TR"=K[3+R
MPO9KB%S$4EC;S9,9$BG(*OW!ZUJMX*MGMM9MWU._9=: %R69"?N!"1\O!('T
M'8# KI:* ,.X\,_:('MVU2Z\B:R6SFC98R'0;OF^[PV'(R..!QQ4D/AJVM]<
MMM5@N)XS:V7V*. ;3&(L@XY&[.5'.>U0V.N7^J7*S6%A%+IPNY;661IMLB["
M5+A2,$;E(QG.,'V&M<WUM9RV\4\H1[J7RH5[NV"<#\ 30!@'P-:?\(X^@#4[
M\69F61!NC+1A9/,"@[.F[GG)[9Q5Z7PZG]L-JUI?7%G=S0K#<-&$(G5?NDA@
M1N&3@CUQS2Z3K4VH:YK.FS6R0_V9)$BLDA;S Z;\]!C@CC]:V* , >$+**;1
MWM;FYMET<N8(T*D.7!#E]RDDD$]QR2:2W\*"TEN)K?5[Y)+B^-\QQ&1YA381
MC9RI7''L,$&N@HH H:3I%OI$5PL)+/=7#W$SD ;Y&QDX' X 'X=SS5;4_#XU
M1KQ9+^X2WOH!!/;@(4*\\KD$AB&QGV''%;%5[R^MK"..2YE$:R2I"F?XG=@J
M@?4D4 94OA&Q?4)KE)[F*.XLA936\;@))&H8+DD;@0&/0CWJ"P\%PV-UI=R=
M6U">32HFA@\QHP#$0HV$!!P-HYZGN3TK<WWG]I>7Y,7V/R<^;YAW^9G[NW&,
M8YSG\*L4 <U_PA%F-%GTI+^]6%[G[3;G<F;5_,,@V?+S\Q)^;/I4L/A"!;R_
MNKG4;VZDU&T%K<^84 =0&&<!1@_,>F![5T%% ',7'@BWGTW3K<:KJ$=WI?%K
M?(Z"5%P%*\+M*D  C'..>];FG6"Z=:^3Y\UP['=)/.P+R-ZG  Z #    %6Z
M* .=U'P=:ZC>ZG<'4+V!-5MA!=P1,H60!2JMDJ2" >QP>^:DMO"L=KJEIJ*Z
MG>M-:69LU#^60R$@DGY.N0.F.E;U% '++X#LX]-M;6+4KY)K*Z>ZM;L%/,A=
MR2P'RX*DL<@@]:T=(\/+I.J7^H_VA=74VH>69O.V;<HH4$!5&.!]*V** *6L
M:7;ZWI%UIEUGR;J,QL5ZKGH1[@X(^E5E\-Z<FK6&I)&5FL+9K:'!XV'&,^I
M! _WC6M10!BGPW&=7U#4UU"Z674(%@=!L*HJYQMRN<_,>I/6JMKX+M;"/3&L
M[^ZBN=+A-O#<'86>$_\ +-QMPPX!' ((ZU-<:Y?RZE?6>D6$5T^G/$MPLDWE
MEMXW$+QC(4@\]<XXK6OKZVTVT>[NY1%$F 6/<DX 'N20* ,Z+PY':K&UG?7$
M$PGDN)91M8W#O][>",$=.!C&!CI5&X\!Z?):VJVMW=V-W:3RSQ7ENRK('D.9
M 1C;M/\ =QC@5?&M3?\ "9?V"UL@B-@;M9Q(2Q^<)M*XXZGN:V* *FG6"Z=:
M^2)YKAR=TDT[ O(WJ< #L!@    "K=%% !1110 4444 %%%% !1110 4444
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
MMY:W$"M'L#;MDX=F&">-HSGOVH [>^UVQT^62*5I7DBC\V5((7E,:<_,P4'
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
M'@LVW<0/IW].:NV?C07>CZ;<?9/*O-0DEB\DEG6,Q%ED)*J20"O&!SN'3D@
MV=<T:V\0:3-IEX\JV\^!((FVE@#G&<>H%78U*1JC.TA P6;&3]<8%<I_PF[V
M^G+-J5@=/?\ M#[$9KC>L ^4LLNXJ#L.,<@<G!/>KLOB2>WCLX)K:);V]:8Q
MJCM)'Y:''F95<D$%#C'\77B@#H:*R?#NL7&LV,LMUI\MC/!.\#HZL%?;T="P
M!*D$$''J.U4+;Q1=R)KD5Q80Q7NE2K&D"SEO/W@&,YVC&\G X/.: .EHK".N
M7USJ%YIVG6EO-=:?%&USYDQ5/,<%A&IVD]!G<1QD<'G&-_PEM]K%[X7GTB.)
M+74FG,L4[E7WQHX*-@' !!^I Z=P#LDFBDDDC25&>(@.JL"4)&1D=N.:DKE?
M^$@>U;Q5/'H]LEQI.UY"LN#= 0AP6;9G.W &0?3-/T_Q3?3ZKI%M>Z;%!!K%
MJTUO)'.7=6558AUV@ 8;C!/2@#IZ*Y#_ (36YET_3-3M=.ADM=4O39PK).4=
M3N959L*>#L/ Z9'7G&MXJUR;P[H4NIPVBW7E/&K1F38<,X3(X.>6'''UH U7
MFBB>-))41I6VH&8 L<9P/4X!_*I*Y>ZU:_AU31X-6T.R#75\\4,JW'FF'$;,
M'&4&"0&!P1^M,U/QG+9V&LZA;6*36VBW MYEDE*/(<*6*\' &\?7!Z=P#I_/
MA^T?9_-3SMN_R]PW;>F<=<5)7#SF_B^)32V-A:M?2Z$I=7F*Q@^<>KA<GT'R
M_E2KXLU359/"=QI\$$,6J/-YT,LISN2*3*Y ^Z",YQR0.E ';T5SMMXG>^UF
MYT^TCMV>TNO(G@>4K.J<?O0N.5YX]N<]JT]6OKBQAA:VM1,99@CNS[4@3!)D
M<^@Q^9'2@"_17'-XYG&A2:A%IT4[P:H-/E6.X^5B750Z';R#N'!Q]:NR^(M0
MMYH]/N;&WBU&1))=J2R2QK&K!5.53.6)Z8'0^P(!TE%9GA_5IM:T>*]N+":P
MF)99()E(*D''&0,@]0<=#65#XLN1K&FV%W816[:D\J+"9\S0%0S*77'1E7/'
M3/>@#J*0D*"20 .237)S>,KJ'PYJ6JG3HB^G:@UG)%YYPX$@3<#M_P!K.,?C
M3H+_ %*^\8Z[I=S';2:?;6L&(RQ. XD.<$8)) ST  '6@#J(9HKB)989$EC8
M95T8$'Z$4^O/?!>NWNF>&O"=M/81?8+]1;),)_WBR;68$IMQM.TC[V?Y5L7'
MC&9-%N?$%M8)/I-K,Z.PE(E=$?8\BC&, @\$\@9R.E '55''-%*SK'*CF-MK
MA6!VG&<'T."/SKG6\2ZI<>(+C2M-TNWN%AA@N!,]V5#Q2,1G&S@X7@=.O/0%
M=(U6YN_[;%EH]I#=VNI"!U67"S';'F1F"9SM;T)^4"@#I:*Y*+QK.#JL\]A"
M;'366'[3!.S":X9@OEJ"HS@L 3V)[U(?&3V4U_\ VKI\D5K:69NQ=PI(8V .
M#'\ZK\_3'J#VH Z5YX8Y8XGE19)<B-&8 O@9.!WXHDGAA>-)941I6VHK, 7/
MH/4UQ>H-?3>/O"5Q>V5O TBW1!CD+.O[DG8Q(&<9ZCWX];/C96CUKPO<6]LD
MURNHLJ L%SF&3@MC@9Y/7Z&@#KZ*XY_&6KP6.M)+H<1U315666V2Y)2:%@2'
M1MN2<*>".U;=OK#WE[816B0S075J;F299#\BG&W QSN).,X^Z: -:HXIX9]_
MDRI)Y;%'V,#M;T..AY'%<_K6IZK;^,=$TZT$!M;I)W<.[*6**O7 /'SYQW/I
MBN<TO6;KPS8>(;RVTV"33[;7IO/_ 'NQE5F1?D4*0<9SR1[4 >CT5S6K^*I[
M2XU"#3K'[9+IRJ98R),R,5W[%VJPSM(Y/<@>]:5SK(M_#,FMFTGPEH;G[.R[
M9/N[MI'8]CZ4 :=%<AJ7B?4'\(ZOJVFM831P67G6UW#,71CAMPQCAEP.#Z\X
MZ5>M]<O#<6.D+# ^HRV9NI"TK%(XP0H).W)+$]/8\\<@'0U'-/#;Q^9/*D2
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
M*** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "D)"@LQ
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
MTQ-#TX29NA#(NF&\7,YC[X.. 5QQP<8XXH W=0O[;2]/N+^[D\NWMXS)(WH
M,U0N+K7I+" V5G;+>7&7(N681VZX'#%<EFY P,#KZ<YOQ+60^!KPKDHDD#R@
M?\\Q*A;]!GZ5I>(O$VF^&[6.2^NH(I+AMD"2R;0Q]2>RCJ3_ #) (!2T;Q!J
MNHZ=J"SV$,>IZ5<F&>"-BR3X4,/+8]-P88ST[UN:=J%MJNG6^H6<GF6]S&)(
MV]01^AK)\)W^C7=K<+I.H1Z@_F^;=W$8^5Y7Y//3H, =@%%5/AJKKX)MBV?+
M>:=X0?\ GF9G*_IS^- '1O>VD5REM)=0I._W(FD 9OH.II)K^SM]_GW<$6P@
M/OD"[2>F<],XXKS/Q3JE@]MKZ0O%9SVVKVSS1.2T\A5X1YW)^2/;P,#''49Q
M5J=-!NM9\=-(ME)_H4,B[PO!,+989Z'.W)ZYQ0!Z.98P^PR+N/\ #GFE5T<D
M*P8J<'!Z5Y[((K7PSX7\:P*MQ)IMI"MXR#<TENR!9/<E#\WX-78:!9FVT\SS
M0B*ZO9&N;@8P0S\[3Z[1A?\ @- %VYO;2SV?:KJ&#><)YL@7<?09ZUF>(?$$
M>C&Q@$L*W%_<K AE/RQ@AB7(R,@!2.HY(K&AN+6+QKXDMO$#0I%<6\)M3<D!
M)+8(0ZJ3V#DY'N*PH=UEX>\!PZQ*J7 U'I<$!Q%MEV;L\\*4'/>@#HAXAU8Z
MFN@M>:0FI-!).MP S1.H=5C79N!#-NR1N.,<9SQNZ//?O8.^K36#7".P?[&Q
M,<8P/E);G([GCZ"N?>:Q_P"%M1Q&2WW_ -BL-I(SN\Y2/QQ^E<U'=0VGAK4Y
MK95DTZT\5/)>Q6XW 6PD!/RC^'(!QTP#VH ]0M[RUNX3-;7,4\8)!>-PR@CK
MR*9%J-C/ \\-Y;R11YWR)*I5?J0>*XK7[O2;K0]6UCPZ&NA++:R:C/:9<2Q(
MXW* <J6$>=PQTZYK/UP^&M1\.^(M9L-3?47GTLI+(P01!AS&" J_O.3CN!Z<
M4 >DQ7$$Y<0S1R%#APC [3UP<=*;<7MI:%!<W4,!D.$$D@7<?09ZU2\/6FFP
M:5!<:;!;(MQ$C/+ H_>D+C)8?>/N:YZ">S3Q7XHM/$30HEQ'$8/M! 62UV8(
M7/4!MV0.YH V_$'B"/2)K"T66!+B_N!$K3'Y8EVLQ<C(R/EQU')JS:75U9Z2
M]SKL]DAA+,\\!*Q&,'ACN^Z<=1D_6N#MF>STKP!!KDJI>"Y.X7! <)Y4@0-G
MV*#GO7H&L1^;HE[&J;]UNX"@9S\IQ0!BW/BII?\ A';K3&MY++5KA8Y-X)=
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
M/3)(X)G74EWQ$;/D7;NW-\W QW&>WJ*JQ^+;![VP@:&XCBU(D6=RZKY4QQD
M88L,CD;@,T ;>T#[H /TJK8Z?'9O<3%O,N+I]\TI&-Q P !V    _F22<Y_%
MVGQW%FKQ7"VU]/\ 9[>\POE22<@#[VX9(."5P?7D5HZMJ2:1I=QJ,L,TT5LA
MDD6$ MM')(!(S@<T 6R >HS2;%_NC\JR(_$UK)J6G6(MK@-J5N;BWD(38R@
MD9W=0&' SUK"U[6#+J_AR]B2^AC_ +2FMWB#$^<%CD'W%8AAN7@G^5 ':-&C
M8W(IVG(R.AI3G!QC/;-8=MXNTZ?3;N]FCN+4V5Q]FFMYT'FB4XVJ I();<N,
M'G-6;/7K>YU:32IK>>SO4B$PAG"YDCSC<I5B" >#SD4 0^&] DT*WN(Y[B*Z
MDFNI;@2+!Y97S&+%?O'C)K89$9E9E4E?NDCI61XJOK&PT?S-16[,#3Q+FU)5
M@Q==N2",#=@'GO3[OQ!;VUS<V\=M<73680W'D!#Y6[ID%@3QSP#Q0!J[1G.!
MGUIHCC5RZHH8C!8#DTKNL<;.YPJ@DGT%8MAXHLM2NK2U%O=0?VA;-<6DDJJ%
MGC&,D88D'#*<$ \T ;7EH)#($7>1@MCG'UHV+_='/M7'^$]773]!E-W+/<22
M:Q<VL >3>[GS6"KN<^BGJ>U;C>(;>.W1Y;:YBGEN3;16K*OFR2#)P,-C& 3G
M.,#- &K@ 8 XI-B_W1^59^F:W;:G<W=HL<MO=V3*L]O. '0,,J>"001T()I=
M0UB*PO(+);:>ZNKA'DCA@"Y*IC<<L0!RRCKWH T-J@YVC/TI B  !0 !@ "J
MNDZI:ZWI5OJ5FS&"X3<FY<$=B"/4'(K-UW681;:E8V\-Y<36UL7G:T8*8,J2
MOS;@<X&<+DX[<C(!N;%_NC\J-B_W1^5<;H&IVO\ 9?@J&^:]DO;NU#02*[;&
M80$MYAS\W&>N>>:U+3QC8WEY/;Q65^%M;B2WN)W@Q'"40.2QSPI!X/KUQD9
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
M9-BJRL6&67Y005'X5HP:?J$/CM+YK,FS&E+:&=&15\P.6X3=D+CCI_C72T4
M5-42672KN."(RRO"ZH@(&XD$#DD"N2T_1M7MY/!?F::^-(M7ANR)8SL)B$8(
M^;D9&>.WOQ7<5%<W,%G;27-S,D,,2[GD<X"CU)H X*3P[K_V:]NK6Q"7D'B
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
MR2:&RGEMXUDF2-FC1VVJS < GL,]ZJZ1IUS81,U]J4NHW4F \\B+&,#. %4
M <GWYZ],2:MIT6KZ1=Z;,[I'=PM"S(<, PQD?G0!S5EXON(M6EM[Z6"YMTTA
MM1:6WA90"A =4))#K\W!'IU-7[+4M;D@T_5I_L;:;<VS3W2*K![<;-Z;3D[_
M $/ ]1CI4=KX.*7]O>7NK3W;16+V,B-"B)+$Q!Q@#C[O/<^H'%.T7PC)I,*6
M4^M75]IL"E+:TF1 (U(( 9@,O@$@9X'IP, %&;Q)K(TO0=80VBV^KWEM&;9H
MF+1Q3,,'?NY;;UXQS[<K<^*-6@TOQ7.HLS-H<A\@F%MKJ(EDPPW]><9!'TK)
MUG0I/#=CH5D=9N+JR@UFU-M!*BCR(E?)W,!E@H[G  _"M[4?!AOY-9$.KS6]
MKK4?[^%(E;Y]@3<&/., 9'MUH G76[\^*-)L&6W^RWVGR7#80[U==G&<XQ\_
MI57P[XGN-;OS:O<6]O=Q+)]JTZ:%DF@8'Y2,M\Z^I YR.G2K\?AQX]8TS4?[
M0=SIULULJO$,R*VW))&.?E&,#\Z;:^&72^TZ]O;X7=QID3QV\Q@VNVY=OSG/
MS<=ACKGK0!SE]KVM:CX0L+S[1!;7#ZXEK-Y41VLJW.P#EL@?*,\\],BMW^W[
MRR\3ZA8:@UN]K9Z6EZ9(8F5C\S!LY8_W"0/>F+X* \.G26U*3<M[]MAN%B 9
M)/,\SH201NS^%7(_#A_MZ;5+F\^TB>R6REB>( .@).20>I+'/&,'I0!E/XHU
M2UT;1O$%PML]CJ4D(EMT0AX$FQL8/GYB,KGCGG&*I7?BSQ%;Z/KNJ[M.,6B:
MBT+Q^0^9XUV9 ._Y#AB<_-D]ACG:L_""VUE9Z9-?/<Z;83+-;0/&-XVG**SY
M^95.,< \#)/>"?P2UQH^M:8^IGRM9N6N)6$ S&6QD+ST^5>N>] '5UB:IJ]Y
M9>*=$TZ,0-;:B9UEW(=ZE(]P(.<?F*V(ED6)%E<.X&&8+M!/KCM65KFA/JUS
MI]Y;WKV5WI\K/%*(PX(92K*5/7(/X4 <]>>+M:@T'6+U%L6FT[6%L5!B<*\9
M:-<_>.&_>=>1QTJW/XHOM#U'68-:-O<166G+J$36T;1G:6=3&<L<G*\'CKTI
M9? A?3-1L?[8G*ZA?K>R,\2DAP5;C&.I1<]O0"KEYX434M5N[R_NA+%>Z>+"
M:!8MH*98Y!R2#EC_ )YH Q]0.IR>+/!EQ?36[":6=S'%&5\MC;N< DG<,?3I
MGO@6;7Q'KVIQV.I:9IXN+*YN=KQ&,*5@W$>8'+\L, D;>^.V3/;>#KN.?2)+
MGQ!<7 T=V-O^X1692A3#'G)VG&?Z\T_3?!TFE7<B6NMW:Z2TQF73=B;48MN*
MA\;@F>=H_J<@#/#NJ>(-7U"\,\FGK:6&HSVDBI"X>154;2#N(4Y(SG.>>E=3
M61H.AOHKZ@3>?:!?7;W3#RMNQVQD#D\<#_&M>@#F=/U?6M:M+;5M,6T-G+>-
M&;>4$-Y"NR%]^?O_ "[L8QCCKS56?Q'KUY'/>:)IXNH[:]:W%N8P/.1'V.?,
M+C:>&(X[#KFK>G^#WTR^F%KK-TFE33FX.G;$VAR=Q ?&X(3SM']3E$\'26VJ
MW<]EK=W;:??RF:YL%1"KNWWBKD;D#=\>IP1V (H-3\1ZAXGU;3+:?3H8--F@
M&][=V9T=-Q&-X^89Z]..@JCX9U761X&M+^:\M)'GO'$L]PNSRT,[AV^]\[=
MJC'4#FNBT[0Y+#7]3U4WGF?VD8R\7E8"%%VK@Y].OOZ5E+X%\G2[:QM]9N(Q
M8WWVRS8Q(PB.7.TC'S#]XW)]NG< H77C'5HO"'B'4(EMFNM&NFA5I;=T65,(
M02A(*MA_TZ<UK7^IZVWC Z'8RV444FG&Z266%G9&#A>0&&X<^W7OC!@N? OV
MC3-:L#K%P8]9E$LQ>)"5.%#$8 Y.P>P].]:1T*Y/B1-<^WKYJ61M/*\CY""V
M[=][.=P'?IQ[T +X3U>XUWPU::A=QQQW$F])5CSMW([(2,]B5S^-;-97AO13
MX>TA--^U&Y2.1W5V3:?G8L0<'U8UJT %%%% !1110 4444 %%%% !1110 44
M44 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 445SOC75)-+TFU
M<3-;P3W\$%S.K;3%$SX8[OX?3/;.: -VZDEAM)I8(#<2HC,D(8*9& X7)X&3
MQDTZ%WD@C>2,Q.R@LA(.TXY&1UQ7*:Y81:;H7B5[/5+Q6;3VN(X%N&_T9E1L
M,A!RNXC.,X.T^]4)[=]0U;PE:2WUZD-]I<_VA(KIT\PK'%@\'@_,>1S0!WM%
M<-91Q:U_PD%G=ZM=65QI5R(89%N2KVT*(A23DX.X[B6;.>1T%31RL?%'BB![
MJ<6XTZWF16F90A(DW,HS\O09QCI0!V=%><Z:UQ?#P&)M0O<7MA+]I"W3CS2(
M0<G!ZY)^;KSUJE=0SP>#_%%U'J6H"70]1F6P8W<A\H*$8 \_/]XCYL\4 >IU
M$MS"]U);+(IFB17=!U56)"G\=K?E7$^)[R[T[4;O4+R*:[T;;$KSV<Y673F
M!)* C<IW G'.#@Y&*C"V=AXI\;7\MW-9B&U@?[0CLQC+1298+G#$=@1VXH [
M^BN&T8SKXR33V>XAM;K0_.:-KMG=F$BJ)&.?E<ACG:3]365HK7,6@>"=9_M"
M]DO+R[2WG:6Y=EDC=)"05)V]5!SC/O0!Z=17$:5)'X@L;W4+O5;FSOK'5)%<
MQ3$>0J286/9T(9 ,C');UJO(+OQ&^O :VNF76G7S*DF7W6L:8*MM#A2K $G(
MYR?08 ._HK@]0O+S3M<-UJ<<USIDU[!Y5_:3,IM&RB^5)%G[A8<]?O<\XKN@
MRL2 P)4X(!Z4 .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 *@O+.VU"TDM+R".>WE7:\<B[E8>XJ>B@#*MO#
M&B66E2Z5;:=##9S@B6),@2 C&&/4\<<]N*>OA[2EGLYQ:#S;%=ELQ=B8E]%Y
MX'08]!BM*B@#*O/#.AW^J1ZI=Z7;37D6-LSID\=,^N.V>E27F@:3J%_'?7=A
M#-<QIY:R,.=N<X]^>1GH>E:-% &7#X:T:V>S>#3XXC8@BV\LE?*SUQ@]^_KW
MI#X8T9K6ZM6L@T-X_F7$9=B)F]6YY/3KZ#TK5HH S#X=TDR%S: E@@<%V*R!
M<;=PSAL8&,YI]QH6DW5Y+>7&GV\L\T)ADD= 2Z8(VGUX)'T-:%% &1;^%-!M
M6B:WTNWB>&-HXW1<,JGJ W7M0OA;1$M;:U6P58+23S;>,.P6)_[RC/!^GJ?6
MM>B@#*;PSH;ZR-9;2[8Z@,'SRGS9'0_7WZT7?A?0K[58]5NM*MIKV/&V9TRW
M'3/KCMGI6K10!GG0]--T]R;4&2243.-S;6D&,,5S@L,#!QD8'I4]MI]I9SW,
M]O;I%+=N))V4<R, !D_@*LT4 %%%% !1110 4444 %%%% !1110 4444 %%%
M% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110
M4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1
M110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%
M% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110
M4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1
M110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%
M% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110
M4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1
M110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%
M% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110
M4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1
M110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%
M% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110
M4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1
M110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%
M% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110
M4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1
M110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%
M% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110
M4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1
M110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%
M% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110
M4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1
M110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%
M% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110
M4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1
M110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%
M% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110
M4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1
M110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%
M% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110
M4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1
M110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%
M% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110
M4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1
M110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%
M% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110
M4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1
M110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%
M% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110
M4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1
M110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%
M% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110
M4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1
M110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%
M% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110
M4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1
M110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%
M% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110
M4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1
M110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%
M% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110
M4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1
M110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%
M% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110
M4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1
M110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%
M% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110
M4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1
M110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%
M% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110
M4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1
M110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%
M% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110
M4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1
M110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%
M% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110
M4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1
M110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%
M% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110
M4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1
M110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%
M% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110
M4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1
M110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%
M% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110
M4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1
M110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%
M% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110
M4444 %%%% !1110 4444 %%%% !1110 445'--%;Q--/*D4:C+.[!0/J30!)
M13(I8YXEEAD62-QE70Y!'L:?0 4444 %%%% !1110 4444 %%%% !1110 44
M44 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !111
M0 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%%
M!1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %
M%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 44
M44 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !111
M0 4444 %4]2L[6[M]UU8B^$.76 A6W''8,0I/IFKE4M135&\DZ9-:Q[7_>K<
M1,VY<=B&&#^= '/_  Z>S_L6]@M89K1HM0F,ME,FTVC,VX1@=-H!&".#D_2N
MMK/TO2QI[W=Q)();J^F\ZXD5=H)"A0 ,G "J!U/<]ZT* "BBB@ HHHH ****
M "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH
M**** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ H
MHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BB
MB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ****
M "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH
M**** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ H
MHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BB
MB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ****
M "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH
M**** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ H
MHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BB
MB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ****
M "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH
M**** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ H
MHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BB
MB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ****
M "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH
M**** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ H
MHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BB
MB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ****
M "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH
M**** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ H
MHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BB
MB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ****
M "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH
M**** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ H
MHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BB
MB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ****
M "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH
M**** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ H
MHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BB
MB@ HHHH **** "BBB@ HHHH **** "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
F**** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH _]D!

end
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>GRAPHIC
<SEQUENCE>19
<FILENAME>cgnxformofrsuagreement001.jpg
<TEXT>
begin 644 cgnxformofrsuagreement001.jpg
M_]C_X  02D9)1@ ! @   0 !  #_VP!#  H'!P@'!@H(" @+"@H+#A@0#@T-
M#AT5%A$8(Q\E)"(?(B$F*S<O)BDT*2$B,$$Q-#D[/CX^)2Y$24,\2#<]/CO_
MVP!# 0H+"PX-#AP0$!P[*"(H.SL[.SL[.SL[.SL[.SL[.SL[.SL[.SL[.SL[
M.SL[.SL[.SL[.SL[.SL[.SL[.SL[.SO_P  1" 55!!\# 2(  A$! Q$!_\0
M'P   04! 0$! 0$           $" P0%!@<("0H+_\0 M1   @$# P($ P4%
M! 0   %] 0(#  01!1(A,4$&$U%A!R)Q%#*!D:$((T*QP152T? D,V)R@@D*
M%A<8&1HE)B<H*2HT-38W.#DZ0T1%1D=(24I35%565UA96F-D969G:&EJ<W1U
M=G=X>7J#A(6&AXB)BI*3E)66EYB9FJ*CI*6FIZBIJK*SM+6VM[BYNL+#Q,7&
MQ\C)RM+3U-76U]C9VN'BX^3EYN?HZ>KQ\O/T]?;W^/GZ_\0 'P$  P$! 0$!
M 0$! 0        $" P0%!@<("0H+_\0 M1$  @$"! 0#! <%! 0  0)W  $"
M Q$$!2$Q!A)!40=A<1,B,H$(%$*1H;'!"2,S4O 58G+1"A8D-.$E\1<8&1HF
M)R@I*C4V-S@Y.D-$149'2$E*4U155E=865IC9&5F9VAI:G-T=79W>'EZ@H.$
MA8:'B(F*DI.4E9:7F)F:HJ.DI::GJ*FJLK.TM;:WN+FZPL/$Q<;'R,G*TM/4
MU=;7V-G:XN/DY>;GZ.GJ\O/T]?;W^/GZ_]H # ,!  (1 Q$ /P#V: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@ HJ)[F")MLDT:-Z,P!H^U6Y0OY\6T'!
M.\8H EHICRQQ@&214!. 6.,TJR([,JNK,OW@#R/K0 ZBH_/A"LQE3"'#'<,
M^](]S!&<//&I(SAG H EHI@DC:/S ZE,9W \?G3#=6Z@%KB(;AD9<<B@":BH
MX[B&5ML<T;D#.%8&G,RHI9V"J!DDG % #J*;O39OW#9C.[/&/6D\V,Q>:)%\
MO&=V>/SH ?13&EC6/S&D4)UW$\?G3@<C(H 6BBB@ HHHH **** "BBB@ HHH
MH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@
M HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "
MBBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **
M** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHH
MH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH \:\6VMG=_&
M"\CO?#MSKT8TQ"+:W8AD.5^?@C@<C_@5=1HGA70]5\(ZIIQ\,7'A^"Z;#I<L
M2V5&5D&2<8)_0U9UCP1K%UXPF\2:+XF&E3S6RVS+]A6?Y003]XXY(';M2W7A
M/Q5J'AZ_TF_\9BX:\VKYXTY(S''SO4!6&=V0,GH ?6@#A/ $\WC;Q/96&M:A
M#=6WAJ(FVC7/^EL&PLASU  7]/4UIZ-K]YH?Q#\9?9- O]6\ZYAW?9 #Y6 ^
M,Y]<G'T-=/=?#BUADT.YT&[&EW>C#8DWE>9Y\?.Y7&1G)).<_P 3>O&GH'A8
MZ)XBU[5S>";^V)8Y/*\O;Y6S=QG)SG=Z#I0!Y)).]S\-/'5Q) \#RZRKM%)]
MZ,F53M/N.E:/B2WL[GXD64=[H%SKD7]AQ'[+;YW Y/S<$<#^M=?<?#-I] \0
MZ5_:X7^VK_[9YGV?/D_.&VXW?-TQG(J35/ >K3^)(-<T?Q*-,N(K%+,_Z"LV
MY0<D_,V.>.W;K0!R'A?R+:V\>6D%O/I$1L'>+1K@N9(E\HYD^;L21T)ZCVJT
M?#&BZE\%X-9O+%9;^TTEQ!,78%,%F' ..I/45T^G_#R>*36;[5=>DU+5-5LG
MLS=-;K&L2,N.$!QV'<=/>M&#PB8?AZ?"?VX$FT:V^T^5ZY^;;GWZ9H S_AIX
M8T;3?#>FZQ9V*Q7UW8H)Y@[$OD G@G'4#H*J_%K3]6N_"]Y-#J8MM,M[??-;
MHGSW#[N 6[+T/O77:!I?]AZ!8Z49O/\ L<"Q>9MV[\#&<9./SJ/Q-HI\1>'+
MW2!<?9_M<>SS=F[;R#G&1GIZT <#XH+7?A?P%H<CL+/4Y;6.Z56*^8@1/E)'
M8Y_05E7,2:-9_$7PY9[DTZUABFMX2Q(B+J"P&?7(_*N^UGP4-5\,Z5IL>H-;
M7ND&%[6\6,';)&H )4GH<=,^E1:3X!C@T[6H]9U!]2O-=XO+A8Q'P 0H4<XQ
MD_I0!SWC/_D@-G_UXV/_ +3KTBP&-/M@?^>2_P A7GY^&&LW>GVVAZGXOENM
M"MF4K:K:*CLJ_=4OG.!^/TZ8]'4!5"J, # % "T444 %%%% !1110 4444 %
M%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 44
M44 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !111
M0 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%%
M!1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %
M%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 44
M44 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !111
M0 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%%
M!1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %
M%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 44
M44 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !111
M0 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%%
M!1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %
M%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 44
M44 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !111
M0 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%%
M!1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %
M%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 44
M44 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !111
M0 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%%
M!1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %
M%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 44
M44 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !111
M0 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%%
M!1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %
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
M+] >A]B:Y_XK?#X^(;/^V])CQJUJOS*G6X0=O]X=O7IZ8[^V/E6$1<-\D0)
M4D\#T'- 'E?PS\:72>'9O"\R?\3NRD^SV<4@Z@D_>]H\,3_L@5ZAI6FPZ3IT
M5E 2P3)=V^](Y.6<^Y))/UKRS0K&_M?C5J.M2Z1J,>G3^:L=P;&7:20.?NYY
M(/->OT >0?M _P#(.T7_ *[2_P EKKK2_P!,\;RZCHAB9X-.AM6$DL)1DF)<
MY 8 \;%Y[\]JYKXVZ;J6MPZ7:Z7IE]>R0/(TGD6SLJ@A<?,!@_A727OB--.L
MIM0TS0-9O-4FM8X1$--F093<5W%E P"[9P3[4 0_$?PZ/%"PZ<J@W'V&ZDMS
MZ2*T)'Y]/QK$^%_C"1_A_<63?O-1TIA;P1OU?S#B('_@1V^P%=?/=26_B?2(
MYK>]F,=I-'-<1VDC1AV\HC+!<<[6Z=.^*Y_1O #Z7\5=3UL*RZ:T?VB%5Z-,
MY.X8[[2&..VY: .5\-6":9\?Y+)&+^3$0SGJ[>0"S'W)))^M7/B/-%;?&;PO
M<3.$CC2!G<]@)GJ2QLM0C^.ESKKZ3J2Z;)N5;@V4NW/E!?[N<9'6I?'%EJ%Y
M\6M U.UTK49[*P\D3SQV<A52)6)Q\O. 0>,T -TJPO-6^-TVO:+:S0:3&N+B
MY,31QSGR\$#(&[+8_+-06('_  TG=\=$)_\ )=:]@5PT8D ;!&<%2#^77\*\
MAA@U"V^.-SXADT;53ICY07"V$K#_ %(7. N<9'I0![!7CGP\O9/&'Q5U?6]0
M/F_8HF6T1N1""^U<#MA<_B2:[V?Q#=7^OZ7IVG:;J:VSRL]W>36<D,:(J,0N
M7 .2VW_)KE-,\.7WP_\ B+>:G%9SW>A:HK O;1F1K9BP8;D7+8!R,@'@T )\
M;T;3]/T?Q!9.;?4+6\\J.=.& *LV,]QE>GN?6KWC'0S\0OAG9:G% /[22U2[
M@"CDDJ"\8^O;W JMX^L=0^(ESINB:/:7,=C#-Y]W?7$#Q1IQ@!=X!<X+=/4>
M^/0K6WM]'TJ"UA5Q;VD2Q(JJ7;:H ' &30!YYX#\:3^)O!]MHD4S+K*G[+)(
M/O1P@<S_ %"\#U?'8UM?$>SM[#X4ZG96L2Q6\%O&D:*.% =<5RWPPT_4-*\<
MZY=7ND:A:6UZ7^SR26<BJ<R9 ^[QP>^*['XF1SW7@34;&TM+FZN;E56**"%I
M"2'4G.T'''K0!RWPT\16:^%_#/ADQM++?/="9)(3Y?ECS6ZD8;)V\#/?-=!X
MYTR#2?A-J6G6X_<6]L%C![#>,#\*RO DR:-X)TFVU;1M874-+EFE2)--F8DL
M9!P=N.5D/<<U;\1W>JZY\+]1:;2;Y+[4"X@L1;.TD:B0!0P X.T;N?6@#&^&
M7B.SB\,>'/#AC:6:_GN5E5X3Y?E@2,?F(VGD*,#/?-;?C[PQ>+\,Y-'T!'<6
MSJX@09+Q!BVP#OC(..^VJ'@&1-&\%Z;:ZOHVL)?:;/+-'$FFS,26WC@A<<JY
M'45LR:]XB?0['5X]&O/.FU,[M.*;95ML.OS XP< /SQDCGI0!S6C_$C0?&UI
M#H/B.W&F:@)$,4A&8O-4@J5/5#D=#ZXSS7K%>7_$'P]IOC.V@&CZ1<+K<DR@
MSM9R0!$_B,K,H& .G4^E>F6\9AMXHF<R%$"ESU; ZT 24444 %%%% !1110
M4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1
M110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%
M% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
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
M **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@
MHHHH **** . ^-:D_#N<@$A;B(GVYK<^'S!O &AD'(^QH/TK9U'3K/5M/FT^
M_@6>VG7;)&W0C^GUKG],\ V6E6AL+;5]8&GDG_0S<CRP#U (4,![!J (H2#\
M+KQP<J]I=.I]5)<@_D16+\4_ DVIHOB?0@T>L6.'<1<-,J\@C'\:XX]1QZ5V
M^IZ';:GH[:0SRVUFT?E-';$)E,8VYQP,>F*NVT+6]ND33R3E1CS)<%C]< 4
M<9\*M?N/$VA:AJMVBI<2WP63;T++!"I/MG&<>]<M\$/^0_XH_P"ND?\ Z')7
MI]CH-GI<5]'IV^T%]<&YD\O'RN54$J""!G;GZDUAZ3\-M'T.6XDTR\U.U>Z&
M)C'<X+]^N/<\B@#A+"%]5_:-NKJR^:&S=C,Z]%VPB,_^/<4:A;27?[1C00WD
MUF[QX$\ 4NG^B]MP(_2O5=$\.:3X<MG@TJS6W$IW2/DL\A]68Y)_&LB7X=Z3
M-XC/B)KO4!JA.?M"SA2/EV] N,;>.E %KPQ;OX=\.V.F:C<-)<FXEA61OO3L
M9)&#?BH+5YO=0W<_[1%]'870M;DP_NY2@<*WV5<9!ZBO2XO"5HFMVVL3WVH7
M5U:AA#]HN-R)N4J2%Q@'!JJG@#2X_$Q\2+=7W]J,<F?S%Y^7;C;MQC;QTH X
M'X=W$=Q\2M17Q>CMXHC8BWDD("8"X*JH &=O(/<$_C[-7-Z[X#T3Q!K-OK%R
ML\-_;@;)[:7RVX.5)]QZUT2*4C52[.5 !9L9;W..* /*_C]_R+FE_P#7V?\
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
M **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@
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
M% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110
M4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110!YGXPO?&MUXGA
M;2_"@O=.T]MT N6&V67_ )ZX##ISMSZYZXQ>N-%\1>-_A[J-GXA@BL=3N)=]
MM"O"1;-NT=3U(;)R?O5WU% 'EC^%=4\2R>#+*[TZ:S@\/P@7SS@ .RB,!4P?
MFSY?4<8/X5JMH%YX<^)U[XHM[*>\L=2LFC=+=0SQS90\CT.SKV).<5WU% '%
M_"[PC<^$O#3QZ@%6^O)3-,BG/EC  7/?'7ZFKOAZPNY?%>OZ[?V[PF65+.T6
M08/DQCEA[,Q)_"NGHH *XK2[J]N?",&F>+_#5W//Y"HZ+&LZSX'!R#\K>N[&
M#WKM:* .0^&?A6Y\)^&I+:\&R:YN6N#"'W>2"  N1P3A1DBN6NM%UN3XUP^)
MDT:\.F1X4RX7/^I*9VYSC)KUBB@#G_&GA>'QCX9FTMW\J0D202$?<D'0D>G)
M!]B:R?"5]J_AWPS!H^LZ'?/=V"F*-[1!+'.@^Z0P.!Q@?-CI7;44 >>^!O!%
M];>(=3\6>(8HX[_46?R[0,'$",<G)'!.,#CMGUXH>'O#.L_#7Q1?266GS:KH
M.H8_X]B#- 025RI(W8R1QUZ^U>HT4 9%MJNH:C=1+;:5/:VP.9I[T!"1_=1
M22<]S@ >M>?^+=#UO4/BQI&NVFCW<MA8^2LLH"C.UV8D G)&#7J]% 'D7B[P
MCKFC^.;7Q-X)T^9Y9@9+J%0%3<>H.2.&&<CL1GN,>H:5?3:A81SW-A/83$?/
M!-@E3WY!P1[U=HH \\\8^"]1'C*P\:>'X5N+JV9?M5H7"-,H&,J3QG;QSZ"K
M/C2;5_%7AU]"T71KR*:^*K-->)Y*0(""<DGYCQCY<]37=44 >?ZMX2DT3X43
M>%])MIK^ZEBP3&H&^0L"S')P!Z>P%:/PPL;[2/!-II6I6,UI=6S2;UD P0TC
M,"""<\&NOHH 9+)Y,32;'?:/NH,D_05Y=\,-"UO0_%6M76J:1<VT.H-F)SM8
M#YR<'!..#7JE% ' ?%_2=4\0>&[?3-(TZ>[G%TLS%,!54*XZDCG)'%2WOA%O
M%GPPL="NXI+&^L[:$(9E^Y,B!>V<J>1D>M=U10!Q?A?4M7T'PQ;Z3J^@W[WM
MA%Y*?9D$L<ZKPA5@<#C ^;%4? ?@N_TG5]4\6Z_&%U/4&=EMHCO\E6;<1D<%
MN@XZ >_'H5% &%X6>X:QNH;S3KBT8WEQ(JSJ,.CRLZG@D=&&17-:+\/O^$9^
M)S:OIL8&E7=M*"@_Y82$J=O^Z>2/3D>F?0J* ,SQ#>W]AHUQ-I=C)>WI0K!%
M'C[Y'!.2.!WK!N/!FDWGA"2SD@U+]Y;E2CW$I;S/[QCW[2=WS>F:[&B@#S3X
M40>)/#FD7.D:[HUW% CF6VD&U\9^\F >.>1]377>%A-+H'V74--FM7#R!X;A
M5(96=B.A((P>:W:* //O"G@%O!_Q!U"]LE)TF[LV\KG)B?>I,9_I[?2L9='U
MV'XTS>*1H5[)IK94,H3<?W(3.TL.X_*O6J* /-[[P=JOC3QY:ZYK-I_9VE:<
M%$%K(ZM+.0=V6"DA03UYS@ =^/1R<*3@G [4M% 'E&EZ)K=O\9KOQ'+HUVNF
MS[U67"D\H%!*YSC(KN;.XN6\87S/IMU';26L$4=PRC8S(TI;OD#]X,$CL:WJ
M* //?&7P]%]XLTCQ1I40%S!?0->QCCS$#K\X]P.OJ/IR_P")?@.\\2266M:(
MZ+JVGD;$<X$J@[@,]B#G&>.37?T4 <Y8^*-0N+1%N/"^JQ7VW#P[$\O=WQ(6
MV[??K[5F?$&QUG6/A]<:7'8FYU*Z*$QVO*)B16QN;'0#&>Y[#MVU% 'GWA Z
MAH7@W2[&^\+ZG+?Z;YC(L8BP68OT8OTVO6A/<:Y-X4LWO=(N9=1FOHKB6WA*
MMY")<K)MR2!PB@>YKL:* ,+Q1X:L?&7AY]/O4:,N-\,A7YX7[-C^8[C-5?AU
MHM[X>\&6NE:@@2XMY9E;!R"/,8@CV((/XUT]% 'E/BK1-;U#XLZ3KUIHUW+I
M]B(5DE 49VNQ) )R?O5Z/JTCMHER8K>::26!E2)%^8DJ<#!Z?C5^B@#S7X.:
M'J_ANPO[+6-,GM'GF$D;-M*D!<'D$X-:'Q4\&3^+-(LWT]1_:%I<+L.<?(Y
M;\N&_P" FNZHH JZ;8QZ9IT%E$6984"[F.6<]V/J2<D^YKS#6-&UR3XQ6OB6
MWT.]FTZWV*SJ$#-A"I(!8=S^E>LT4 <I_:&J2:I9V&F^'[ZSM)KHSWEW.44*
M,ER  Q)W-P?J?7CJ)9/*B9]K-M&=J#)/T%/HH \M^&NB:UHOB_7+S4](NK:#
M4G+0R-M('SDX."<<&N^\3"5_#>H06]O+<33VTD4<<0R2S(0.O 'O6I10!YA\
M++36?"&@7=AJGA[4?-ENC,AB$; @JH_O]?EK>35_$IM-;U/^P;M)V*PZ;9,R
M%B IP[8; RS'//0 <UV-% ''3^#-)O/",EG+!J7[R JR/<2EO,/\1CW[2=WS
M>F:Q?A1!XD\-Z3<Z1KFC7<<".9;:0;7QG[R8!XYY'U->ET4 87A;SI="-MJ&
MFS6K^9+OAN%4AE>1B.A(/!YKF_"G@!O"/Q$OKVR4G2;RR;RN?]2_F(2A]N"0
M?3Z5Z#10 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 %%%% !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 445C^*Y;ZU\-7]]IUX;:XM+>2=#Y:NKE5+8((Z'';% &Q17-^%O$;^(M/GM
M+M6L-9L3Y-[ ,;HW[.N<@J>H//XU/H>JF/PU9W^KZ@K27./F=53<QSA5 ')X
MZ<F@#=HK-?Q%HL>FMJ4FJ6J6BL4:9Y0 &'53G^+VZTG_  DFA_:;FV_M:S$U
MHI>=#,N8U!P2?H>/K0!IT53L=7T[4K W]E>P3VHSF9'!5<=<GMCWI;+5=.U)
MI%L;ZWN6BQY@BD#%,],XZ9H MT5!=WEM8P^==3I"A8*"QQDGH!ZD^@J"+6M,
MGL9+V*^A>WB8K(X;A&!QAO0\]#0!>HKC_"6J7WB>VL-<BUK:&WM=Z?Y:,@5B
MP0 X#*1@<Y.>:N:AKEW>>*D\,Z3(L,D<'VF]NF4,84)PJJ#P7/7)X [&@#I*
M*QI+36K6]LG@U1[NU\[%U'<11[]A4@%615QAMN1@_4=Y)/$^@PW!MY-8LUE6
M582GG+D2-G"_7@\4 :M%9ZZ[I37JV:W\!G=S&J[_ +SCJH/0L.XZBH;KQ3H%
ME]H^TZQ9QFU95F!F7,;'. ??Y3Q[4 :U%8>I>+=*TV_TJTDN$8ZF28W5LJ(P
MC-OSTP< #US[5?O-9TO3W5+W4;:V9\;1+*JDY.!U/<\4 7:*JWNI6.FQB2^O
M(+9#G!ED"YQUZT-J5@D=M*U[;B.[8);N95Q,Q&0%.?F)[8H M4444 %%%% !
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 %%%% !6+XRGAM_!FLO
M-*D:M8S*"S8R3&V!]36U2$ ]0#]: .0\4:/<2S6_B[PPR2:I:)RB-E+^#O&2
M.I_NGU_#&6NL6EGX<\'27D4-L;AB4O;K.RS;RVSGD#<02HSQDY[5Z&  , 8I
M"B%=I52 <X(H \>U&\M/^$!\>6S7?F2-JC2+YH"LP;RMK8P!S@D<#.#CI77:
MM-IA^(_A4)):D?9;H)M*XQA-F/UQ^.*[/8O/RCDY/'6C:O\ ='Y4 >57%\(]
M,\626<OF16_B&*YN8[<JS>0#$78#D'[ISD8X.>]=7H<GA_5?$@UC3=7DU2]-
MGY4DJ,FQ(MP(5PJ@!L] >>#Z5U051T4<^U,@M;>U0I;01PJ3DK&@4$^O% '*
M^*9VL/&?AG4+L[=+C:>*25ON0RN@",Q[9Y4'MD^M,TSRT\<>(M6@FC32VM84
MFFW#RWG4')STRJX!^M=@RJZE74,I&"",@T*B(@1455' 4# % '*?"Z>*7X=Z
M0L<J.8XBKA6!*G<W!]*HW ;PM\3[K6;[Y-*UJVCB-T?N03)@!7/\(('!/&37
M=  = !]*" 001D'J#0!PWBR6UOO%OA:*TN%F9[IOM$<$N=\07(W@'E<XZ\5)
MX?;3[GXD^+4+6TLN;,JI*LWRQ\D?0XSZ'%=C#;P6X(AACBSUV*!G\JD"J#D
M9^E 'D<NN:==Z7X?N(9H;&&W\0(TFGH/^/0;Y,F5CDAB23V'S$ '&:Z*PN=,
M?QUXR:66VR;2U!WD [?+;<.>WW<_AFNY\M!GY%Y.3QU/K1M7^Z/RH \JT?4+
M6#2?AS>SW4:6T!FBEF9QM1C"P"D]CGC%7O[0TEM3\3Z)XFU>33S=7)<12[$%
MQ;LBA-I9220!C .01QS7H^U<8VC&<]*9+:V\TL<LL$4DD1RCL@)3Z'M0!P!U
M"TT'Q9!;ZGJ-SI5E/I$$=C-<;,?(6WH[.I ?E2>F<#/:MS18O#.E:'IEM$ZM
M9O=D:<UWAB\A+$&/(XS\VTC'!XX-='<6MO=($N8(YD!R%D0, ?7FG/%')LWQ
MJVP[ER,[3ZCTH ?1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%
M9EYI^J3W3R6VMR6L1QMB6WC8+QZD9]Z -.BL7^R=:_Z&6;_P$B_PH_LG6O\
MH99O_ 2+_"@#:HK%_LG6O^AEF_\  2+_  H_LG6O^AEF_P# 2+_"@#:HK%_L
MG6O^AEF_\!(O\*/[)UK_ *&6;_P$B_PH VJ*Q?[)UK_H99O_  $B_P */[)U
MK_H99O\ P$B_PH VJ*Q?[)UK_H99O_ 2+_"C^R=:_P"AEF_\!(O\* -JBL7^
MR=:_Z&6;_P !(O\ "C^R=:_Z&6;_ ,!(O\* -JBL7^R=:_Z&6;_P$B_PH_LG
M6O\ H99O_ 2+_"@#:HK%_LG6O^AEF_\  2+_  H_LG6O^AEF_P# 2+_"@#:H
MK%_LG6O^AEF_\!(O\*/[)UK_ *&6;_P$B_PH VJ*Q?[)UK_H99O_  $B_P *
M/[)UK_H99O\ P$B_PH VJ*Q?[)UK_H99O_ 2+_"C^R=:_P"AEF_\!(O\* -J
MBL7^R=:_Z&6;_P !(O\ "C^R=:_Z&6;_ ,!(O\* -JBL7^R=:_Z&6;_P$B_P
MH_LG6O\ H99O_ 2+_"@#:HK%_LG6O^AEF_\  2+_  H_LG6O^AEF_P# 2+_"
M@#:HK%_LG6O^AEF_\!(O\*/[)UK_ *&6;_P$B_PH VJ*Q?[)UK_H99O_  $B
M_P */[)UK_H99O\ P$B_PH VJ*Q?[)UK_H99O_ 2+_"C^R=:_P"AEF_\!(O\
M* -JBL7^R=:_Z&6;_P !(O\ "C^R=:_Z&6;_ ,!(O\* -JBL7^R=:_Z&6;_P
M$B_PH_LG6O\ H99O_ 2+_"@#:HK%_LG6O^AEF_\  2+_  H_LG6O^AEF_P#
M2+_"@#:HK%_LG6O^AEF_\!(O\*/[)UK_ *&6;_P$B_PH VJ*Q?[)UK_H99O_
M  $B_P */[)UK_H99O\ P$B_PH VJ*Q?[)UK_H99O_ 2+_"C^R=:_P"AEF_\
M!(O\* -JBL7^R=:_Z&6;_P !(O\ "C^R=:_Z&6;_ ,!(O\* -JBL7^R=:_Z&
M6;_P$B_PK80,J*K-O8  MC&3ZT .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 *JW^IV.E0?:-0NX;6'./,F<(OYFK58_B]5?P9K:L 0=
M/GX/_7-J -,W$(M_M/FIY.W=Y@.5*^N?2F65_9ZE;BXL;F*YA;I)$P93]"*X
MS1;B;P+K<?AC496DT>\8_P!D7<ASY3?\^[G_ -!/?]!;T[6FT[0/#FFVJHU[
MJ9,4/F9V(J@L[D#K@#ID9)'(H ["BN?T[7;L>*;GPYJB0FX6V%W;SP*526(M
MM(*DG:P;W.0<\5T% !45S=06<#3W$BQQK@%CZDX 'J22 !W)KG1KVJZI%J]Q
MHB6ABTR=[=8YT9FN9(P"X!# (,G:#ANF:QM?UB7Q#HWA+5=/FC@M[W5;8B.2
M(L5?Y^I##(!'3'.,YH [*PUK3M3@GFM+D.MNYCF!4JT3#J&5@"#]159/%OAR
M0_+KVG'YMG_'RGWO3KU]JT;> 1*698O.DP97CCV!VQC.,D]NY->46FJQV_A3
MQ!I$E@\SZMK=Y9P2R;1 LCG"[V)^7'7IVXH ]<!R,BEKF(I9?!G@_2;">3[7
M=CR;)&VLP9SWP!N( !.!R0N.*B'B76K5M7%SI4EW%9V9NK:XAM)8%F(',15\
MG=[@G([4 =917&MXDO\ 4?#>I:GI.JZ;<P16#S17$$#;HY5!)5D+G!QTSWZC
MCFO%KVN:1X6\*,BVEZVIO;6Q:0.A4/%N&>3D_*<M[_=H [&XU&TM;RULYYU2
MXO"P@C.<R%1N;'T%6:Y5M:U^QU[P_I>IP::QU)[A9I;8O\NQ&==H;ID!<YSW
MIS:[KFI65Y?Z!:6MS':W36\=M+D/<[&VN0^X*G.[&0>GOP =117(6][JA^(^
MI037T(LK6PBE$1@/RJS-GG?][Y>6QZ<4R'Q;J]U%IFHV>G-<V5]*F^W2SF$D
M,3])/-/R-@8) '?@G&2 =5>WUKIMG)>7MPEO;Q#<\DAP *?;7,-Y:Q75NX>&
M9%DC8#&Y2,@_D:X[6]8O]<\*^)9M.^RI96D=S;8E1F>?8A$C A@%YR!P<XSQ
MFNA\+?\ (I:/_P!>$'_HM: )KG7=(L[K[+=:G:03C&8Y)E5AGID$\9[>M7(9
MHKB".>&19(I%#HZ'(92,@@]Q7G;ZG=^!;W4[7Q%I;7N@:C=R3C484\S8)#RD
MR^@Z9]!@9Z"]JMQ<6L?@ZST'4H/[-FF2%&,1D$BK$2A)##(^4<<<XYXQ0!W-
M%<ZFLZEJFI:G8:2]FC:7LCDEN(F999F7<5 ##:H&.>>3TXYJ:;XU;6K32([2
MW2WO]2:9)$FRRVYA_P!9G!&[G  R,[L]L4 =#J>KZ?HUL+G4;N.VB+!0SGJ3
MT '4FKE<#XVGU>3X?ZPFLVT$3P7D"PS0GY)X_/B(?;DE.I!!/:NFTC5+G6IW
MO;22V;1S\L$@4EYB"0S [L!<C XR>>,8) +NH:II^DP"?4;V"TB)QYDSA%S]
M33S?V@LOMIN8Q;;=WG%OEQZY]*Y?XL#/PSUC/]V+_P!&I74S?\>,@_Z9'^5
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
ML+;2X;N^DL%@%Q+*&O#$P+>9M&-WH<8H O4444 %%%% !1110 4444 %%%%
M!1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %
M%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 44
M44 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !111
M0 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%%
M!1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110!F2>&]$
ME>1WTJT)F.91Y0 D/JPZ-^-2W.B:3>PPPW6EV<\4'^J26W1EC_W01Q^%7J*
M*=UH^F7L]O/=Z?:SRVQS \L*L8O]TD<5"WAO0FB6)M%T]HTD,JHUJA"N>K 8
MZ^]:5% %./2-,BOGOH].M$NY!AYU@42,/0MC)I]CIUEIEO\ 9]/LX+2'<6\N
M",(N3U.!5FB@#-G\.Z'=737=QHVGS7#=9I+5&<_B1FK5I8V>GP^396L-M'G.
MR&,(N?H*L44 9C>&]"=KAFT:P8W3!YR;9#YK Y!;CGGGGO5DZ;8&_34#96YO
M$3RUN/*7S%7^Z&QG'M5JB@#/M]!T>TU&34K?2[2&\ESON$A4.V>O(&>>_K5F
M"RM+66>:WMHHI+E]\SH@!D;&,L>YQ4]% !1110 4444 %%%% !1110 4444
M%%%% !1110 4444 %%%% !1110 4444 %9=ZGB$W3FQN--2WXV+/!(SCCG)#
M@=<]JU** ,3R_%G_ #]Z-_X#2_\ QRCR_%G_ #]Z-_X#2_\ QRMNB@#$\OQ9
M_P _>C?^ TO_ ,<H\OQ9_P _>C?^ TO_ ,<K;HH Q/+\6?\ /WHW_@-+_P#'
M*/+\6?\ /WHW_@-+_P#'*VZ* ,3R_%G_ #]Z-_X#2_\ QRCR_%G_ #]Z-_X#
M2_\ QRMNB@#$\OQ9_P _>C?^ TO_ ,<H\OQ9_P _>C?^ TO_ ,<K;HH Q/+\
M6?\ /WHW_@-+_P#'*/+\6?\ /WHW_@-+_P#'*VZ* ,3R_%G_ #]Z-_X#2_\
MQRCR_%G_ #]Z-_X#2_\ QRMNB@#$\OQ9_P _>C?^ TO_ ,<H\OQ9_P _>C?^
M TO_ ,<K;HH Q/+\6?\ /WHW_@-+_P#'*/+\6?\ /WHW_@-+_P#'*VZ* ,3R
M_%G_ #]Z-_X#2_\ QRCR_%G_ #]Z-_X#2_\ QRMNB@#$\OQ9_P _>C?^ TO_
M ,<H\OQ9_P _>C?^ TO_ ,<K;HH Q/+\6?\ /WHW_@-+_P#'*/+\6?\ /WHW
M_@-+_P#'*VZ* ,3R_%G_ #]Z-_X#2_\ QRK6GIKBW!.I3Z?)#MX%M"Z-NR.[
M,1C&:T:* "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 **** "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 *P?$OB.7P]+IRKI_VH:A=):1D3!"LC9QD$=..OZ5O5Q?
MQ'#EO"PB95<^(+;:S+N .'ZC(S^8H U].\3QW6OS:!>6<MCJ,4(G6-V#)+&3
MC<C#K@\$$ UNUS!\*,^N7?B#4[XW5VUF;6%8(S D,>=W'S%MQ/?/>N:@O+R3
MP%X)O6O;HW,NIVD<LGGOF16D(8-S\P..^: /3**X:RTPZKX]\1VUQJ.HBWM&
MLIH8H[MU"L59CWZ9!^7ISTX&(;"]N+'Q'96?B"&ZCEGNY3::E!.SVU\KJ^V-
MP#\I 88!'\/&* ._HKS*>XNE^'GC&07MV)+'4[M;:3[2^^(*P"@-G.!Z9K:U
M4B]U![=+FYNIH])#&T64Q1VY))\YG!SN.,  $C:3QG- '9TV21(HVDD<(B L
MS,<  =2:\V@NK[4M.\ S3:E>+)>Y2Y:.=E\T"%CEAT)XZ]??-)>V_E:5\0M&
M,]S-9V-NLUNDUP\C1EK<N1N)R1N&<$T >D031W-O'/$VZ.5 Z'&,@C(IL=W!
M+=36T<@:: *9%'\.[.,_E5'PU;16OAVP6+?AK>-COD9^2H[DGCVZ5QMN1HFI
M^/M5M(Y'N+';+$IE<J6^SALD9P>>>?PH ]&I&8*I9B H&22>!7G^I//IGA30
MO$>GWMS+>O):F8M,S"\64@,K*3CDMD8'RXXQ74>+X([CP=K$<@)7[%,V Q7D
M(2.GTH BU3Q.MC_8DMM;"ZM=8NHX$F\S;L#J65L8YX!]*WJ\UO+)(_!_@.**
M2:/SM1LF9_,+,I,#9V[LX^@X%2W-_=^%Y_&D5A<7$D5G907-ND\SS&%W5PS
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
MPTV*2T@65D6[1E&925(W8(V[>W4YSQT?Q'M[FZ^'VLQ6@8RFWW87J5!!8?\
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
M,TT%J+H2->; R%MH'W.&SVZ>]5+GX@(?!M[K]C8%Y;"?[/=6EQ)L:&0,%(R
M0<%@?<=\\4 ;^KZ#IVMB$WL+&6W;?!/$[1RPMZJZD$?UJ2STF"SD$IFN+F51
MA9+F8R%1[ \#Z@9-7J* ,4^$M(,MR1%*L-W)YMQ:K*PAE?NQ3..<#(Z'N#5A
M] L)-=36RLPO8XO)5Q.X7R\YV[0<$9YZ5/J=Q=6FFSW%C9&^N8TS';B01^8?
M3<>!6/%XFOKB;1Q'HDBV^JV^\3O.N(9=C.$91R1A3\PXY% &;I6D27GC3Q/<
MW,6HVD%ZT BD4O$LR+$$;GMR.#P>>.]=!=^&]*O+2SMC;>2M@0;1H&,;0$#
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
M:2B:%([B1"L@.0Y*L"6SSDDG/- '/W%I'9>*K/PQ;RXLY;2:Z6*\EDE$TI<
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
MV>VZV/VJ7*'&,YW9/  YSQQTH Y"YO[CPS#XXM]/GF2"Q:U> /(TA@\U1YC
ML2>.6_"NAT_1)[3Q!9:I!JMO':SPM&]M#O9;O*[E?+,?F&"=W4C/-:T?AO28
M[R_NQ;,\NHH$N_,F=UF4# !5B5X''3I4.A^$-#\.RM)IEF8F(*@O,\FQ2<E5
MW$[1GTH TKJQL[TQ&[M8;CR9!)%YL8;8XZ,,]"/6N+^*NE1KX&U.YLK*-7DE
MAFO6BC >9%89+$<MCKST -=Y3719$9'4,C##*PR"/0T ,MIX;JUBN+=UDAE0
M/&Z]&4C((_"N6U*^2^\=:5HKL#ITUG/<[5.%N)0P&TX^\ -S8Z$D'L*T[7PC
MI%B#':+=06Y)/V6.\E6$9ZX3=@#V''M5O4-#T[4TMA<08:T;=;R1.8WA.,?*
MRD$#'&.AH X#67N[/3/'6DQ75T+/3H8KBS=9W#0ET+-&&!R5R,[>@!Q6A>Z<
MMOXK\++%=WJ?VI#/'>D73_OE6(.._P O(_AQC/&*ZJ;PUI-QI=QILUN[V]VV
MZX!F??,>.6<'<> !R>@ Z"A_#>ERW-A<O%,TVG BU<W4N8P1@_Q<Y''.>* .
M)F$ECH'CW3[:ZNHX-.8R6N+A]T1, <@-G.,]LXJ:[TZ71;GPGK6GWMX]U?74
M%K>))<,ZSQNA))4G VA<C  %;/B7PW;P>'?$#Z59W$NH:M;M&ZK-(_FN5V@D
M,Q P._''%7] T2T@L=.N9(+@7%M;A$2YD=O(.T!@JL2!W&1VX'% '(7-R0FB
M:IIUQ/.EQX@2(ZC+*5>X1Y&5D"C_ )9@?*,X^[D#O5S^R8M3\2>,K6ZNKUH(
M8[=XHQ=R (QB9LC!SP>0.GM6]_P@?AH1&(:<1']H%PJ"XDQ'(#NR@W?)S_=Q
MFKD?AC28KJ]N8X)DEOT"7)6ZE =0, 8W8&!P,8P* .-F>\?P'X;\7-+///IL
M4,UX@D;_ $B#&'W#.&8#YLGT/K74Z-';:S=7^L\3VMT1!;@G<CQIP7VGCE]W
M/<*M07=I<:-80>'M T626UGA>-9Y;C?%:YX^8.2Q7!S@>F*WM/L8-,T^WL+9
M=D%M$L48]%48% $OE1^;YOEKYFW;OQSCKC/I7*:0[Q_%'Q%"F?*EL[660=@X
M#*/S4?I76.Q5&8*6(&=HZGVK+T;26L[O4-3N0/MFI2J\@!R(T5=J)GO@<GW8
MT 8OB^ 77C#PC SR(KW%R"8W*MCR&R 1R,],CGTQ6'-J$_AO3/%UK9W,L=M9
M:A;)$TDC.;>.41^802<@#<Q'/'6N[OM"T[4=1L]0NHI&N;$L;=UG=/+W#!X4
M@<C@Y[5%'X8T>.74)/LK.=3&+M99GD6;C'*L2.G' H QD\/SVNJ->)JL<%K=
M6CQ-:6K2*)F W"16WY# ?Q#J.]<W8%M*^&%EXE%[=_;I[>&WGN9;AV6.)YE#
M-MS@$#/S#!YSG-=OI7@W0M%AFBL+22(3(8R3<2,RH?X58ME1],=*LV?AS2;'
M1&T6&TSI[*4-O+(TJ[3U'S$D#VH P)-$N-.O+F_34H([6YT^6-K*%7*S,%)$
M@RQP0."1USS7-1Z:VF?#_P -^(].N[Q=4C%HBK]H<I.KLJF+9G;C![#/&>O-
M=[HWA'0] 21-/LRHE3RSYLKRX3^Z-Q.%]A3['POI.G& 6\$GEVS;K>*2=Y(X
M3ZHK$@=3CTSQB@#G+VZ7P=XPNY9O-FL]9M2UJC2%@MRG6%<GC>""/<8KJ]$T
MXZ5I%O9O(9)40>;(6)WN>6//;.<>@Q68\=[KNN117VC&ULM+NC/'/,Z-]H<
MJA0#D#YBV3@\ >N.BH \[U2+4;Q?%5L\=Y-J@G']ES6P?$*E%,:JZ\1D');)
M&0<G((J;5-)/_"5^%]+GO+[RKBRNEND6^F(D*JG<MGJQYSG''2H&\/K/JU_+
MJGA;5C?7%R[BYTV^\N&1.B'_ %JX.T#.1G.3[5TUCX6ML:==ZDUQ<:A8*RPS
MF[E)0,?ND@@-Q@$D?-CF@#G==M;>.'7+*REN;R33-*10)IRJV&$9E96Y9I&
M!SC^$9(SBFMYVI:OX%:XO+L?VAITS7(2X=1(1"AS@'@Y8\C!YZUU5YX3T2_U
M&?4+FRWSW,0BG_>N%E4# W*#M; Z$C(I(/"&B6TFGR0VTJ/IBE;4BZE_=@@
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
M(PZL!YX&]@" PSQ@\9IFK:;IT%SX*O;,!GEOX]UQN):<&)CN<_Q'OD\\GUH
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
M6,G8IY/( ZU'J?@_P_K&I)J-_ID<UTJA?,W,N]?1@" P]FS6U2'.#@ GMDT
M9[Z%ISZLFK-"_P!L2/RED$SC"?W< XQ[8I='T+3=!MVMM,@-O"S%O+\UV4$]
M2 Q./PKGT\7ZFWA/7]7-E:_:=)NKB$1>8VQA%U.<9)Z^GX5U%A<-=Z=;7+@!
MIH4=@.@) - $.IZ-I^L)$M_;B0POOB=69'C;U5U(93]#26.BV.GSM<0I*\[+
ML,T\[S/MZX#.20,]AQ5^B@#)'AC2%>_86\H.HC%W_I,O[WMS\WIQ]..E-'A7
M1A'81BVDVZ:<V@^TR_N>W'S>G'TXZ5%X?UN[U74M:M+J"&+^SKH0)Y3%MP*!
MLDG'//I6YTH S+GPWH]Y?3WUQ8H]Q<PF"5\D;T(*X(!QG!(SUP>M2V6BV%A,
MLT$3F58_*5Y9GE*)G.U2Y.!P.!Z#TJ73M1M=5LUO+.02P,SJKCHVUBI(]1D'
M!JU0!1U31K#6HHH]0A:5(9!+&!*R;7'1OE(Y';TIO]A:=_:ZZL87-ZL/DB4S
M/_J^NW&<8SSTZ\]:FN=1M;6\M+.64">]=DA3NVU2Q/T '7W'K5J@#+L/#FE:
M:UN;6W<?95*VXDFDD$((P=@9B%XXX[<4V+POH<-M>6R:;#Y%\Q:XC8%E<DY/
M!Z<\\8YYK6HH R-(\*Z'H5M-;:=IT<44Z[90S-)O7GY26).WD\=.:K0^!/#4
M @":8"MM+YL*/-(ZQ-S]T%B .>@X]N*Z"B@"KJ.G6>K6$UA?VZ7%M.NV2-^C
M#.?YC-4K7PIH5E>17D&G1K<11&%969F8J>Q))W?4Y-:]% &39>&-'T]XC;6A
M187+PQ&9VBB8]T0DJIY/0#J?6GW?A[2[V^:^EMW6Y>/RGDAF>(R)_=;81N'U
MS576M;O-,U_1+"*WA>WU*=XI)&8[U(0MP.G;KG\*W: (1:6ZV8LU@C6V$?EB
M(* H3&-N/3'%,BT^SATU--2WC^QI"(1"1E=@&-N#U&.*LT4 8VB^$M!\.RR2
MZ3IR6SR @MO9R 3D@;B=HSV&!4VO:.-9L8XU<1W-M.ES;2D9"2H<J2.X/(/L
M36G10!DW6A:=K<EI>ZIIJ_:[<$)F0Y7/494C<IQT/7N.U0'P7X>^S"V73A'$
MMQ]I"QRNF),Y####H22/3)QBMVN<L-<U;6'CO=-M[5].%[);2I(664(C%3(&
MSCJ#\N.G?M0!I1:%IT.KG5DBD^VM'Y1E,\ARG92"<$=^G7FM&L;6?$ TZ_L]
M*M+?[7J=]N,,)?8JHOWG=L':H^A)/ %)<:AK5A+:BXLK:XAGN$BDE@D93#N.
M,E2.1G SD=1Q0!>U/2K/6+3[+?1M)"6#%%E9,D'(SM(SSS^%/N;"WO-/>PN%
M=[>1/+=3(P++C!!8')SWYYJS10!0T_1-.TO3#IEG;[+/!7R6D9U /4#<3@>U
M.71].6&QA%I'LTX@VJ_\\B%*#'_ 21S5VB@#,U#P[I&J7\%]>V237-NI1)"Q
M'RGJIP<,/8Y%5?\ A"O#PMH;9-/\N&"?[1$D<TB;),D[AANHR<>F>*W:* ,S
M5?#VE:T;=M0M3)):MN@E61XY(SWPZD,,_7FG:7H&EZ*]P^G6:0/<OOE8$DNW
MKR:T:* &2NR1,R1F1@.$4@$_GQ6=H>D?V7#<R2LKW=[<-<W+KTWG@*/95 4?
M3/>CQ%KD?A[2&OI(_,8R)%&A?:&=V"KENPR>3V -0+?ZW;:I8VM[96CV]VS*
MUQ;RM^Z(1F"E2.<[>N?P'% %R^T33=2O;:\O+1);BTSY+DD%<]1QU' X.14-
MQX9TBYO)[J2T(DN0!<!)71)P.!YB*0K\<?,#QQ5NUU"UO;BZ@MY1(]I((IL=
M%?:&Q]<$5:H 15"J%4  #  [5CR^$M"F-]OT]?\ B8DFZVNR^9G&>AXS@9QU
MP,YK9K#L-:N[GQ?J>C300I#9P0RQ.C$L^\MUZ8^[T_6@"9O#.DO)82-!*7TX
M8M6^TR9B[<?-Z<<]N.E0R>#/#LNMG67TJ(WQ8.TF6 9AT8KG:3GG)&<UN44
M%91\-:5]JFN8H);:6X.Z8VMS) )&_O,$8 GW/-:M% &0_A71'TB7238J+.>0
MR31K(P\USU9V!RQ.!G).<"GWOAO2=1M+6UO+4S1VC!X"TK[XR.X?.[]:U**
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
MMW@\=R:'+' MHNF_;%D&=^?,V8)Z8Z]JS/B+:VT]OH#3P128URT0ET!PK/\
M,.>QXS4$^EZ;?_%%;*:UAEM$T  6^!Y9 G( *]"!Z'CCVH [?((R#QZTBLKJ
M&1@RGH0<BO*["_-AX3T2TFG2'3/[<N+65YU+QJ@:7RT<9'R[@O4XX':NS\/:
M/;:5K>I/;7\<ANUCEDM+>,)#"<$!@ 3@M@Y]<9H N3^(;2#Q/%H4DBQW$MOY
M\:L"3*,MD+CC("$GZCUXR!X[M;K1=-O-/:"6;4[L6D0=BJ0N06(<XSD =!U)
M 'K76&-&D60HI=00K$<C/7FL3Q)I>A:K90:)JT"^5?3$0A?D(E"LV5/9L!OK
MSZT 2VEYK,>NII]_;VKV[VSS+=0%AEE9!M*'.WALYR<^V*NZ=J=IJL$D]E*)
M8HY7BWCH64X.#W&<UQVBIK?AKQ7;^%K_ % ZUI-_;2O;27 S- $QE7/\2\@9
M/KVZ5@0O'I'PTOKFSBCMV?59(;J:%0LBV_VG#<CG ! ]@: /65=7SM8-@X.#
MT-&]=^S<-V,XSSBN-U:SCTKQKX;ET.". W8FAN8H %2:%8]P+ <?*<8/^UCO
M5'PQ%HVO^$=/U74IMFIV]YYMQ.C!9Q<AR/+)ZX.0H7TP!VH Z30M:O=0U_7=
M.NXH$739HDB,6<L'3?R3WY'85/J&I:E:>(--M(;.&6QN]ZRR>9B6-@I((7NO
M')]Q^/!:E>?9?&/B1;^ 2:!-?6L>I2+RT8,"[,C^YN^\1ST]Z].MH+:""-;6
M**.(+A!$H"A?;':@#GK;Q#JT6E7M_JFGP1KI]RZ3K;2&0-$ I,B'N5R<C'\)
MQ@C%=)'(DT22Q.'C=0RLIR"#T(JOJ21?V3=HX B,#AAVQM.:P?AY=8\!Z#%=
MS*L\EJ!&C, SJ.F!WPN* .IIJNKYVL&P<'!Z&N9^(M]<Z?X.N)[=WC4RQ)/)
M&2&2)G <@CIP2,^]4]5LH=+\:>&9M$ACM_M9EAN8X%"I+ $W L!P=IQ@^_O0
M!H76LZO>ZGJNGZ$EGY^E"'>MVK$3LZ[]H92-F%QS@\GIQ6Q>ZG:Z<MM]KD"/
M=3)!$@.2SL<8'KCD_0&N8\+Z=I\7CSQ4\5E;(T$]MY16)08\VZ[MO'&<G./>
MG^/[2UN)O#37%O#*3K<,9,B!LJ5?*\]B0./84 :-OKEXWC>\T2>.W2UAL4NH
MY%SO.YROS$\?PGM6]D8SD8]:X=M*TS4_B;=6ES:PW%HNB0!8",QX\U\?+T.!
MT].U86DZBT/A'P?;7=Q''I\U[<P2R7*[X\HTHA1QD9' QDXRH]* /55974,K
M!@>A!S6+K'B!K/5K/1+"!;G4[Q6D5'?:D,2]9'(!.,\  <GCCK4'AO2+;2-3
MU5;:_247+1S/:PQA(K=B",J,G!;&2,]L]ZQYO^)7\9XKN\.R#4]*-M:RM]WS
M5<,4SZX&??- '03WFN6%Q9K/!:7=O/.L4LT(:,P YP=I+;AG SD=>E;!=0P4
ML QZ#/)ILMQ% 8Q(X!D<(@ZECZ ?F?8 FO.K&&VUSP-XCOM51?[4@N+LRSMQ
M);/'DQA6ZJ% 7&/ZF@#T@D @$@9I/,3:&WKAN <]:\YM+4ZKXH\*RZS )+FZ
MT.1KM'Z2-B/AEZ'J<CI5%=#TR3P9XW5[2-ETR]O!8JW(M=L:N/+'\'S$],>E
M 'JI('4@4!@RA@00>017GLEA:ZQXO\-_V@AF%WHDC3JS'$Q'EG##N.2<=ZHP
M066CQ:_HDGV@Z0-:MH+"".3"M*X5VA+'($>[&X>F>YH ]/5U==R,&'J#F@.K
M$ ,"2,C!ZCUKS<0(MYX_LIA;(GV"&7R+?B-)##*3@>ORKDX&<9P*9:Z=9Z?!
M\/M2M81'>7'DQ33@G?(C6Q)5CW' P.W;% 'IM%>?7!'A#Q-J>GP0(8_$$0?3
M@RY47&0C1'_9^97QT W5VFG6EIH]C::7 ZJ(X]D:LPW/M')]SW)]Z +M%%%
M!1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %
M%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 44
M44 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !111
M0 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 5SGC[3+[6O
M"-WIFG6OVB>X:, %U50%D5CDD^@-='10!1T_2[*T/VB"S\B5T"'>=S(O78#D
MX ] <5!%X7T*'6&UB+2;5+]B2;@1C=D]3]3Z]:U:* *-GHNFZ?=SW=I:1PSW
M',TB_>D/JQ[U)?Z;9ZG'''>VZS+%()(]W5' (# CD'D\^]6J* ,R;P[H]S9B
MTGT^*6 2>:4<%MS_ -XYZM[GFGG0M+:_6_:RC>Z6/RA,V6;9_=R>WM6A10!C
MP>$?#MLL2P:+91B&7S8]L(^5_4?G5JPT;3=+DFDL;..W>X;?,R#F1O4^I]ZO
M44 95MX7T*RU9]5MM)M8;Z3):=(P&R>I]B>Y'6K>I:?;:MIMQI]Y'YEO<QF.
M1?8C^=6J* ,M-*6^T8:9KD$-\B84LZ@K-MZ.1V;U]^E/30-*CO1>QV,4=R(A
M")4&UA&.B#'1?;I6C10!EIX;T2/3I].73+?['<'=+ 4RCGU(]?>I]*T;3=#M
M/LFEV4-I#NW%(EQD^I]3]:NT4 %5+_2K#54C34+.&Z6)MZ"5 P5L8R,]#SUJ
MW10!2LM'T_3IGGM;94FD4*TK$NY4=!N))Q[=*;#H>DV[7AATZV0WQ)NL1#]]
MGKN]<Y/YFK]% %&PT73=+.;*T2(A-@(R2J_W03T7V'%01^&-"BUEM8CTFU74
M&))N!&-V3U/U]^M:M% &8?#FCG[7G3XC]N&+K.3YP_VO7\:MV5C;:=:I:V<*
MPP1C"1KT4>@]!5BB@#/UFSGU+3I=.B?RDNE,<TP/*1GAMO\ M$$@>G7M@UKK
MPU87%YI4JVT,8TK'D.!\Z*!@(OH.!GZ8[ULT4 ,EBCGA>&:-9(Y%*NCC*L#U
M!!ZBJ=AHFFZ60;*T2$A-BD9)5?[HST7V'%7Z* *%IHFFV-[->VMHD5Q.<S2K
MG=)_O>OXU+J.F6.K6OV74;2*ZAW!MDJAAD=#]:M44 9Z:#I4=ZU['91QW+Q^
M4TJ95BF,!<CM[=JC7PSH:Z5)I0TNV^PR-N:W*90GUQV/O6I10!3TO2=/T6S%
MGIEG%:0 D[(EP"?4^I]Z=J&FV.JVIM=0M(;J G.R5 PSV//0^]6J* *-CHVG
MZ:V^UME1\;=[,78#T!8D@>U,F\/Z1<7KWDMA"TTNWS&QQ)CIN'1L=LYQ6C10
M!2ET?3Y]1CU&6U1KR)=L<QSN0>@/85 OAK1E@N;==/B$5XQ:X3G$Q/4L.Y/O
M6I10!Q]YX;9_&.DR0Z5C2K&SDA#I*JF-G*D%?F#   C(]?2N@FT'2;C2VTN;
M3X)+-CN,+("I;.=WUSSGKFM"B@#*'A?01YFW2;5?,A\ARL8&Z/\ NG';U]:4
M^&=%,5K$=.A\NS.;9><0GU7T_"M2B@#G[6'5-6UJ.ZU;2HK&#39)#:CSUF:9
MB"HDX'RC86X/.6]N=>;3[.>^M[Z6VC>YM0PAE*_-&&&&P?<"K-% !1110 44
M44 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !111
M0 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%%
M!1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %
M%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 44
M44 %%%% !1110 44@((!!R#WI: "BBB@ HHHH **** "BBB@ HHHH **;)(D
M,;22NJ(HRS,< #W-+0 M%%,\R/S?*WKYFW=LSSCUQZ4 /HHHH **** "BBB@
M HHHH **** "BBB@ HHIDDL<,;22NL:*,LS' 'U- #Z*9')'-&LD3JZ,,JRG
M((]C3Z "BBB@ HJ*>Y@M4#W$\<*DX!D<*"?3FI: "BDR,XSS2T %%%% !111
M0 44Q)8Y=WENK[6VMM.<'T/O3Z "BBB@ HIBRQM(T:NI=,%E!Y7/3(H>2.,J
M'=5+MM7<<;CZ#WH ?1110 44F0,<]:6@ HHHH **** "BF>;&93$'7S -Q3/
M('KBGT %%%% !1110 4444 %%%% !13'DCB ,CJ@9@HW'&2>@^M/H **** "
MBBB@ HIB2QR[O+=7VDJ=IS@CJ/K09(UD6,NH=@2JD\D#K@4 /HHHH **** "
MBBB@ HIDLT4$32S2)'&O+.[  ?B:5'25%DC=71AE64Y!% #J*** "BBD) !)
M. .I- "T4V.1)8UDC=71QE64Y!'J#3J "BBB@ HHHH **** "BBB@ HHHH *
M*** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HH
MHH **** "BBB@ HHHH **** "L/QK D_@K60Y<;+&9UV.5^8(Q'0\\]NE;E9
M7B>VN;WPQJ=E9P-/<75I+#&@95^9D*@DD@8R: '>&?\ D5=)_P"O&'_T 5IU
MBZ?_ &CIW@ZVCCTXRZA:V:1BU:95WNJ@8W@D $CK6O"SO"C2Q^7(R@LF[.T]
MQGO0 ^BBB@ HHHH *\WUF/P_9_%N:;6;:S%I_8'G2&>$,I?SR-Q&#S@8SUQ7
MI%<C-I-_/\2I-4FTMI-+ET@Z>[,\9#$RER2N[.W!QZ^U $7P]BO+6SU:YF$T
M&C2W32Z9'<L=R08SG!Y53P0#4R_$'3_M6F;EB-IJDRPP21W*O(C-]SS(^JAO
MJ<9&0*;HNB:IH\=]X:DA>YT*566RNEE7?;HX.8V!()"Y.",\?HGAC_A+[&TM
M-"O]+MTBL@L7]IK<JRRQ+@#$?WMQ48YP._M0!IV7B1M1E#V5FL]I]L>TDD6;
M]Y$RDJ69,<#*\<YP0<#-96E^*]4,'B6^OM.$D.E7<J+'!,"RK'&AP-P /=LY
M[XQ4'_".7LWB&SUBUTR32-16\S?7$4Z>1=P G.Y Q)9ACJHP3UXIZ:-K5K;>
M+K%=.$T>JRS36TRSH-QDB5 N"1C!')./;- #M1\6?:?"-WJFH^%;B;2FLXIP
MKRQD3*XR05)R ..<9/7%;T^L>7>0:986JSWCV_VCRVD\M(H\X!9L'&3P  >A
MZ8K#U'2-5N_A2-#33V&H&QCM3$94P&4 $[MV,<9]?:DU"QU_3_$=GXBTK3/M
MPEL%LKRQ:=(W3#%E=6)VG!)!&?\ ZP NI>+=4>TT*:TTN2U.H:B+:>*[;RY$
M(W$J.#P=A^;T[<\:,6IVK>.383:5Y-^NF><;UF4YB\P H".<;LGG'3I537M/
MUW4;/1KT6<4MW9ZFEW):),!MC"LNT.< D;@3TR<X[4Z32M0NO'AU">Q9;*71
MS922I*AQ(7W' SG&.,XZ]J '3>-8X=(37C8.=$:3:;H2?.J%MHE,>/N9]\XY
MQ4MQXJG&O76C66BSW=S!;+<(?.1$D5B0#N)X''?GVQS6)!X>US_A!)/!<]GR
M!]G341(GE&'?G=MSO#!>-NWJ!SCD:MIIM]9>.I[Y-/E:P_LR.TCD$D>2R,S=
M"V<$$#/K^= $EKXTM+W2-(O88?+EU:5H88KB01A'7=N#-@]T(& 221QZ;6G7
M4]Y:F2YM&M95D=&C+;ONL1D'N#C(]C7%Z7X?O1X/LM"UOPU]M@$\YN(O.BW)
MND9T=#O'(W8/(/7\>B\(:9?Z1HS6E]/-(%N)#;+/())(H<_(C,."0/<]<=J
M'SZ_-)?7UGI5A]NDT\+]HS,(QN8;@B\'+8P><#D<^E!O'EG)9Z-=V5C=7<.K
MRF&,KM4QN V48$_>RI'I[TVRT_5/#_B;6+F"PDU"QU5UN$,,B*\,H7:RL'89
M!P"",X]*RX_"FIZ78^&X(;4W<EEJ+WMXT4B*H+A\A=Q&<%Q^ H Z70O$#ZM?
M:CI]SI[V-YISH)8FD60%77<C!AZ@'CM4][X<TG4M1^W:A807D@A$2"XB614
M))P".ISU]A6;HUAJ%MXWU^_GLGCM+]+<02ET.3&K Y ;(SNXX[=JZ&>1XH'>
M.%IG4<1H0"Q_$@?K0!Y]\,O#VDWGP^T749-/@-]%(\RW*1J)2RS-@;NIX&.3
MTK<T[QG<:D9I8_#]XMK:SSPW,WF(3$T0/ 4'+$D8^7(Y')[+\/-+U#0?!5GI
M.I6;0W-IY@8!T8/N=F&"#Z$=<57T+3=>L] U^W2V^Q7]S=W5S922.CKF0DIG
M:3@@XSD8^M %^T\4O+J=A8W>FO;/J5HUS; 2AFPH!*.I VMAAW(Z\UFO\0F3
M2)]7.@W0LK.[:WNY&E0&+:^PL!GYL'J!Q[GG%.PT77%UOP[JCZ$D#6<,T5ZS
MWB/*[NJC>S<[N5..2>><5!/X=UV?X?:_HHTMUN[^]EFA!FBVE7EW@D[N, <_
MIF@#JK_Q$T&HWFGV-HMY=65LMQ)"9A&[J=V @P=Q^7GH.1S63XFO+]O&/AJT
MCLTEMY&N)?*>7 E98N,C!QMW$CKS4?B?0KCQ"TLCZ%<17L4(;3M0M[B..6"3
M'W7(?. WIN&"<<];5_I^LMXC\,79M&O%TV*87EPCQKN=XPN54L#U!)Z<>M %
M>;Q-HWA2SOH-,L[86NG2LUS"MVJ.&/SN(D/WL;NF5&<@=*M3^-G?4DL-+T6Y
MU"2;3EO[=EE1%EC) ')/'7O@]..<U6MK?Q1X=US4X;#28=4T[4;IKJ*8W2Q&
MW=P-RN""2N1D;03_ $M1:?JJ?$&'4Y;1I;4:2+.2Y5D4&7S-Y;;NSMX_/\Z
M.@N[^#3],EU"];R(8(C+*6YV #)Z=?PK&;Q4UK+IK:EISVEKJCK%;S>:'*2,
M,HLBX^4GV+#/!-7O$FC_ /"0>'+_ $GS/*-W"R*_]UNQ/MG%8,NE:QK^EZ-I
MFIZ>;-K&YAFNYS*C))Y7_//:2WS''4# S^(!"?/UCXAZKIVHZ;#<V::?%%Y<
MDH(5'=]S 8ZM@9'^R.>*[.VMX;.UBMH%V0P($122<*!@#)YZ"N>L;'48OB!J
M>I2:?(ME<VL,$<WF1GE"Q)(W9P=W'':K_B5;^;27M-/M))VN6$4K1R(ACB)
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
M%3.0I/&>>Y ]ZH:CX9N?$^H7U[>1/IZ2:5)I\$<C*T@,ARSMM)&!A0!D]^E
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
MAG\U)B@RR9*KM8#GT([T /\ ^$*\*?\ 0M:3_P" 4?\ A1_PA7A3_H6M)_\
M */_  JKX?\ %-_X@DC>/09(;3SIH9KA[E#Y31D@?+U;)&,CI[UI:IK*V%[9
M:?#")[V_9A#$7V*%099F;!P ,= 3DB@"O_PA7A3_ *%K2?\ P"C_ ,*CE\(^
M#H6C670-&C:5MJ!K2(%CZ#CDU1O_ !A=Q:9X@CCL8H-7T:W,[PRS%HV3:6#H
MP7+# /! Y&#CK61K4MS+;^"=1N[1);TWT6#$^]Y 86/WF"X)/)'0>M '4_\
M"%>%/^A:TG_P"C_PH_X0KPI_T+6D_P#@%'_A56U\8JL>M#5[$V$VB[&G1)A*
M'1UW(5.!R<8QZTEMXQ$FNP:3+:0,]W"\EN]I=B<%E&2C\#8V.G)!]: +?_"%
M>%/^A:TG_P  H_\ "C_A"O"G_0M:3_X!1_X5E:?XTU;5-);4[/PO(]LBSERU
MXH.Z-B-H&,G..O3/'O5@>,P4\.S"SB-OKV%27[3Q$Y7<%(V\GM]>..M %J;P
MAX/MX7FF\/:/%&@RSO:1!5'J21Q3AX+\)D CPWI)!Z$6<?\ A53Q!KXMM#UR
M>ZT5+ZRL/W;1F52)QM#-D,, #< >O.?2K4WB%8;^STJTMX#=7%I]HCBFG\I2
MHP-JG:<GVQP!0 [_ (0KPI_T+6D_^ 4?^%'_  A7A3_H6M)_\ H_\*CN/%"P
M"RMVA@@O[JU%R\%W="%81QD%]I).3@8'8]*L>&O$$7B32S>) UN\<KPRQ,V[
M:ZGG##AAT(/<&@"/_A"O"G_0M:3_ . 4?^%'_"%>%/\ H6M)_P# */\ PJGJ
M_C.+3SJ'V6&VN?[-XG22[$4CD*&*QK@[R 1UQD\#FD'C*2YU>VT_3M'EN3>:
M=]O@D>98P1E1AAR5^]R>O'0T 7?^$*\*?]"UI/\ X!1_X4?\(5X4_P"A:TG_
M , H_P#"JECXSBN]$AO'LGAO);UK 6?F G[0&(*[NF %+$XZ \=J6]\4W^FV
M6L3WFANC:5&LVY9B8;B,@D['*#+#&""/QH M?\(5X4_Z%K2?_ */_"C_ (0K
MPI_T+6D_^ 4?^%)-XD,.KZ)8FSRFL1R-'()>8RD>\@KCGCC.:R9/'5X-*U74
M8O#TC1:1=20W*M=*IVH 69>#D\DXZ8'7M0!K_P#"%>%/^A:TG_P"C_PJ.+PC
MX.GW^3H&C2>6Q1]EI$=K#L<#@\]*C3Q3*VMZ;8W&E-#::LCFTN&F!9BJ;\.F
M/ERN<<GW KF-"UF]\.6/B2:P\/O>V=KK=V\QBF2/RT!&=B_Q$ 9QQ]: .O\
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
MU;4O%D<D1M8-8@MUM;C>IVO$#@L <@%L?@.U:^B7?BRXV+K6EVUH+=3YCP7
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
MQ<10M,X2,2.%+L>@&>I]JFH Q_"FG7VD^';:QU"X>XFB+89WWLJ%B44MW(7
MS[5DZ;I>L>'+O6[>TLA?6NI74EY;2B55\F20?,L@8@[<C(*[CCM7744 <-<^
M%+[3?#OAC1].MS>#2+Z&YGD\Q4#!=Q? )ZDL<#]:[=264$J5)&2IQD>W%.HH
M **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@
MHHHH **** "BBB@ HHHH **** "BBB@ K#\9Z=J&K>$[^RTME^U2(NQ6.!(
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
MLX8 X=\RC#N2.!P  !GN3Z5'X;@\86<%KI&IQ6(MK(*GV^*8L\\:_= C(X)
M ))]<#- &SX@UN'P_I9OIPNSS8XLNVQ%+L%#,V#M49R3BJ=SXDDTW3+F]U"T
M0!)8XK7[/-Y@NR^T)M) QEFQ[8)J]KD5U/I_E6UG!>!W436]P0$DC_B'((SC
MI[UR#?#^X;1]3M-/?^SHGNX;O3+260R+;21\G."<!FSP"<<'VH Z(>()[7Q!
M::+J]E% VH1NUK+#,9$=D&61LJI! Y'8^W2L+PSJ=IX>T3Q3?SJ5@MM<NL)&
MHRQ+*%51ZDD ?6M=M+O]:UW2=3U&T6R72A(XB$HD,DKKMX(_A SUY)(X&*QF
M\&ZI?^&?$.F3F.TGO]3DO[24/O"DNK*&XXY7!Z]>] #]3:^?XC^$GOK"WMV9
M;LAX9O,/^IY4Y4=/7IS7=5QKV/B?5/$/A[5+O3+.V_LTSBX479;=O0+E<+^(
M'X''6MOP_J.I:@EZNIV<-M+;731+Y$F]'7 (.?7G!]Q^  ,Z76=7_P"%B#1X
MX+=K----Q@SL&;,@7<?E/(P0%Z<DY["/2O%VJZHUQ+'X>;[+9W-Q;W+I<AG#
M1 XV)@;R2,=NHZ\U/=Z9J<7C^#6K6VCGM9-.^QRDR[&B(DW[L8YR./KZ=:K:
M)HNN66A:_9_NK.[OKJZN+2=9=X0RY*YXX(./6@"Q:>*[E]:T[3+W3H[>;4;1
M[B.-;C=)$5 )212HVG#=?4$=LUFR>/\ 4(]$O-9.@*+33[Q[>[S=C<H5PA9!
MM^;'7!Q[9[,L/#_B"+4O#E\^G6$']FQSQ7*K<EVD+JH,A.WYB2F<'GGD^D4W
MA;7)O ^OZ+]F@6YU*]EGA/GC8%DDW?,<<$ >] '0:AXEDAUBZTBPMX+B]M[5
M;A8)KCRFG!W<1C:<XV\GW'U&7XDN]4_X37PM##;6[1NUQ*L<EPR;G$)^]A#M
MQN..N<]J=XD\/W?B*&:&\T:%Y!"IL+I)PDMI-CG+#!VAL'(SGTZ5/?:/K#:_
MX9O%1;M-(BE6ZF:0*\S/&$RH^HR<D4 07'B:ST*VU%-'L+ QV$S&>W%T(I)9
M.&D\M-IR>>^,D$>]3W/C"^?5H-/TO1#=O=Z;]OMVEN!%N&5&U@0=OWOSP/<0
MQ:;XIT'7=1&D6]C?:;J=P;D&XG,;6LC !\@ [ER,X'Z5;_LK54\<V6JE(Y[:
M'339RS%PKLY96+A<=/EZ9[T 10>*M9NM;OM*M_#JM-8&W,Q:]4 +("20=O)
M'3O@\CC,5WX_A@MUOX(+>YL?M'DLL=SFYV[MID$07D9&<9SCGCI5W2-,U&T\
M::YJ4UO&+/45@$3"7+ QJ0<KCOGU[5G:)I7BS0%?0;>.RETL2N;:_:8B2"-F
M+;3'CYF&3CD#IGTH OZGK$NI0ZS9Z=80WD-@ABN&FEVAY-FXHHVG) (Y.!D@
M>I#_ (?_ /(@:'_UY1_RK/@T77M%U;7(["VMKS3]8E:Y5WG\MK>5EPP(P=P.
M!C%+I']O^&/#_AS3);&TF"LEK=E+@EE!P%*#:,D9)([!3]0 ;OB/6'T#0+S5
M4M?M7V6,R&+S-F0.O.#6.GC&]@UC3+?4]$-I9:L=EK="X#GS",A70#Y<]N3_
M #Q:^('_ "(&N?\ 7E)_*JJZ7?:]'X>^V6JVUOIDD=V[>8&,LBQE4"8_ARQ)
M)P> ,=P 4M$O[30+WQI?2H$M[>_1MJ #),28 [9)./QK2M_&*C6TT^\BM1%+
M;O,MU:7/GQQ[!EE?Y1M..0>^*SY/"6HZC;^*K2XV6JZO.L]K,LFXHR!=NX=N
M4!XS5^SM_%&M:?-I_B&WL[*%X'AEDM9C(UP64KD @;!SGJ3D#H,T 8?BS4[G
M6O#^BZD--B2RN-2M)()&ES,B&12K%=N!N'8,<9'OCI[GQ#.=7O\ 2]-LTN)]
M/MDGF\V4Q@EL[47"GDA3ST''7MS3:#XMD\*:?X?DLK%WTRXMS'=?:B%FCB<%
M?EVDJ<  _IFIM5CU2]\67UQI6F6U\L5K':77DZBULX8Y9D8[3NX9<'@C/'.<
M &E9^-X;S1M,OC;PVTFJEOLR3W(50BC+,S8XQTP >2/7(;;^.HC9WK7-GBZM
M;J.UCC@E\R.Z>0XC\M\#()Z\<8-4);#5;^RTN_T/38--U'P_,\']GRRAH7C9
M%#('7VVX.."#GD5;UK1?$7B/0TFG^R6.I6MW#>6=LLADC1XR3AWP"2V3T&!@
M>] $ ^UGXL6#7EG;P2-I4QWP2EP_SIP254Y']1]*[>N2AL?$-[XPT[6[K3;6
MTA@LY8)8_M>]@693D87!^[_]?M6MX<U'4M1L9FU6SAMKF&=HB()/,C8#!RI[
MXSM/NIH IZ]XFN]'34YTTL-;:9 LKS7$QB$Y()*QG:0Q 'YD#WITWBI&U"RL
M+2.#[1>V8NX5NI_*#@XPBX!RWKZ>]9>M>']?O]1\0(L5G<V^HV1@LIYIB#:9
MC*LH3:?O,<Y!'OG %%SX>O-2T:STS6]#MKV"*Q1%,,X$EO.N02KD X("Y(Z8
MZ-0!J2^)I4OK#33;00:A>6?VGR;JX,8W< QJ=IW-DG/' &<5'>:VT>J^&H;S
M1$\[42Q$DC@M9R>468#C)/49&.]4+CPS>7>BV6D:[81:Y##9(AN!*$FCN!G+
M*S8.,;?FSGCH<FE_X1[6XV\)"61;Z31RS7D[2X+DQE/ESRV,]3C./>@"Y?>+
MI88M<GLK!;B'0N+DO-L9R$WN%&T]%/?J<CWIDGC"]%WH=O%HPD;6H9)8C]J
M"[5W#/R]""I)[<\$]<6YM=2U'6M<GT_1;75-.NIA;RB+4C;"7RU"LKKM.3NW
M G(R!CI6F(-0UK6?#6M6VF+;6^G?:8[B%IERA8>7A<<, 4)SQD8Q0!8M/&@_
MLO4;C5+);2ZTZ\%G)"LX=7D;;LPY X.\<D#'-$/C6*/4[JTU&.W2&"S:\%W:
M3^?%M7[RL=HPPZX[C\JS)_".L7T/B% 8K.:]OX[^PF\S=L>/9M#@#CE.V>OM
M6BUAXB\3:)>Z=K]O::8D]L\.+:8RF1V& _(&U1_=R2?48Y ,KQ+>7FHR>$KZ
M?3(8(9]7MWB?S=TL8(8A6&W R#DX)P1CGK79ZOJMKHFDW6IWK%;>UC,CX&2<
M=A[D\#ZUR$ND^+;W3-!L[G3[%9M(OX)9)OM9VSK&K#<!LR,@_GV].F\3Z&OB
M3PU?:/))Y7VJ+:'Z[6!!4^XR!0!3F\2W>G7VF1:OIR6T&J2"&*6*?S#%,1E4
M<%1UP0"">1^-0Z7XHU75M3NK6#05$5E?FTN96NQ\JA0=X&WYCST^G7/#)=)U
M?7DT6'6+:*V_LRZCNYY$E#B>2,$+L'4*2=QS@C&.<YJQX6TS4=-U#7)+VWCC
MBO[YKJ%EE#$ JJX88X/RY[]: .CHHHH **** "BBB@ HHHH **** "BBB@ H
MHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BB
MB@ HHK-U[6HM"TTW<D9E=Y$AAB!P9)'8*JY[<GKV&: -*J][?V>FVS7-]=0V
ML"]9)G"*/Q-8S>(+VQ\06NC:E:P+)J$4CV<T4A*,Z#+1MD9''(/.?05R&I7^
MIZQ\(_$%SJH@=O,G"LC$X*S$8 (X Q@<F@#T\<C(I:YRW\0W\7B>VT?4=/AM
MXKVV>:UD2?>PV;=RN,  X8'@D>YZU2;QS(\5G?VMBMU874XCVQ%VG2,G EV[
M<8[D9X!Z]J .PHKE;?Q)KM]K6H:=9Z+:G^SKJ.*:22\(!1E#;A\G)P<X_4U3
MG\>7EMX3O-;FTRW273[UK2[MC<G]WAPN0VSG[P;&.AH [6HK2\MK^U2ZL[B*
MX@D&4EB<,K<XX(J@VI7DFIM:VEM;SHEHL[2&<K\S$A5'RG@[2<]L=.:P=/\
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
MS+(TQB25C_> (5B?<'-=!'&D,:QQ(J(@"JJC 4#H *\Z\;:Q=:]\.I]3M[.
M:;/-%Y3.Y\W8)U DQC')'W<]#G/:O1)'\N)W",Y52=J]3["@!]%<M:>++LZU
MH^G7]C#;R:M%(XA$V9K4JF\+(I'<9],$8YZU+I/B>;6KH?8HK9X4NY+>YB\T
M^?;!=P#,N.Y4<=MW4T =)16+XMUV;PUX<NM7AM$NOLX!:-I=G!(&<X.>2.*H
M#Q3J=IXGM-*U71X[6#4P_P!BG2XWG>HSLD&,*2/0D=N>M '4T5R.G>+]3O%N
M[RXTJWMM.TZYN8+V8W19HQ$#\RC:-PR/;K4DWBZ[L=/TW6+[3XX]+OWC4E)2
M9;82?<9QC!'(S@\9_BH ZJH+B\M;1H5N;B*$SR"*(2.%\QSDA1GJ>#Q6/9^(
M;B3Q1J6B7MK#:_9+=+F&7SB?/C8D%L%1@*1@\GFJ=YXBNHX?#TUYH]LPU2]2
M-292QMRRL58 KUV@^F,XYH ZB66.")I9I%CC099W8 */4DTVUNK>]MDN;6:.
M>"0922-@RL/4$=:P;W6;G46U>STNU@GCTY3%.T\A422%=Q1< ] 1DGN<8[UC
M>$]=33?!/AJQC\LW-W9EU,I(5$3&YC@$GEE '?/7B@#O*KK?V;7S6"W4+7:I
MYC0!P7"Y R5Z@<BN;M_&SMI[FYTUH[_[>+""(,1'<NWW75ROW,9).,C!Z\9K
MV?VS_A;C_;88$?\ L,[7A8D.//'4$9!!R._K[  [2BBB@ HHHH **** "BBB
M@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ****
M"L/Q=H$GB+1/LMO.MO=PS)<6TK#*K(ARN?;M^-;E17-S!9VTES<S)##$I9Y)
M&"JH'4DGI0!A?V3?ZOKVE:KJEO#:C2UD*112F3S)74*3G PH&<=R3VQSAS^$
MO$!\%:SX<C%@WVJXE:WF,SC*R2;R6&WY2 2,#.3Z8Y[Q'61%=&#(PRK*<@CU
M%.H YF]TC5;SQ7HNJFWMA;V4$T4ZF<[LR!1\HV\XV]\9S5+P_HWBS0H4T%9K
M"328&(@O2S>>L.<A-F,%@. <X'7GI72WFMZ3I\ODWNJ6=M)C.R:X1#CZ$U9M
MKJWO(1-:SQ3Q'H\3AE/XB@#"T'2M3L?$FNWMW%;K;:E+'+$8YBSKM0)@@J!S
MC/6H7\(+/XHU&\G=7TR_@4R6O]Z?:T9;Z>6<>Y.>U=110!@>%=$O/#WAU;6Y
MF6\O5X+DX#!0$C&<<?(J_CD]ZRM&\.ZMIO@W3="O;'3[^.%G2\@>3*2QDL05
M)7[P)'!QT/-=I10!P2^!M4L=%M_[)NHH+W3]2>\L()G:2**)AM,!;K@@GGL2
M1[UU.C?VW*CSZTEK!(P"I;VSEU3U)8@9)],8&.^:U** .6UO2->M_$T7B#P\
M;69WMA:W=I=.4610Q965@#A@6/X4S5='\07\FAW#?8YI[*^^UW \UD0#:R[$
M^4DX#=3C)';.!UE5Y[^SM9X8+BZABEN&VQ1O( TA]%'?\* .5N_"5]JNI>*$
MO!!%9:W;0Q12)*6DC:-6 )7:!U.>O;WK0\/Q^+ ((-=-@D=JNUI;:1G:Z(&
M2"!M'<]<D=A7156OM1L=,M_M&H7D%I"#CS)Y BY],F@#A)/"/B7_ (1*?PU"
MFG^3%>^?!</.V94\_P W#*%^4CG)R>F,=ZZ"#2]6C\;7.MR06WV>73TME59R
M6WJS-_=Z$MC^E;]O<P7ENEQ:SQSPR#*21N&5AZ@C@U+0!P#>$==;X<3>&_+L
MA=R7)E#_ &AMFTS^;UV9SVZ5LMIFKVOBZ77;>VMYTNK&.WDA-P4:)U9FSG:0
MR_-['CI7351M];TN[OVL;>_@DN54OY2N"Q4'!(]0#P<=* .5N/!6IVMA;7NE
M7=N-<M]1EU!S*"(97ER)(_4+M( /MVSQ8US2/$WB+P?J-C=)80W=ZBQQP),Q
MCB .2Q?;DD^@&.![UUSND:,\C!$499F. !4=I>6U_;+<V=Q%<0/G;+$X96P<
M'!'!Y!% '/\ B+1M8U*WTO4M->VMM8TR0R)'*Y:&0,NUT+  X([X_+K5;6-
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
M&DKIIM.MREY)(IE]$PJGY?7GGITSD J^ ],73K'4I;9/*L+W4)9[*$<*L1P
M0.P8@L!Z$5H7NLR_\)!%H.GK%]K:V-U+)-DI%'NVC@8+$MGN, $^QET5=> F
M;7#8*3M$,=EO*J!G))8 Y/Y<51U+0[Y/%EMXDTHPO*+4V=U;SN4$D>[<I5@#
MA@WJ.1Z4 4W\1WNI>'O$$"PQVFJZ2LD5PN\E<;"RNAZX(Y&>E6O!5H6\*:'<
M7<%JTL.GPBWE5,NB&-<\GH3@9Q3%\-WD>G:_*#;MJ>N;MX,C"*(>7Y:+NVY.
M!SG R2>E:GARRN],\.V&G7HA\ZTMXX"T+EE;:H7/(&,XZ4 8VEWVKW?Q UVQ
MN'MVLK6&V"QX;Y582'([%B>OT'I7/^#]?OM!\#:%(=-B?3)+LVTDIGQ(I>=P
M&5 N-H)'4@^W<]5%HVJ67C'4M8MC:RVNH6\*NDC,)%>,, !@8P=W7/'H:PHO
M".O1^ -.T'R[(W=I>+.[?:&$;*LQDX.S.><=* -]=9(\;76E2:9&KQ:<+E;I
M&W22IO*A,8&.0W&34?AKQ+/XB2VN[=[*:TFC+3)$Q\VTDXQ&X/4]><#ITYS2
M'2-6;QO/K02WC@DTH6:?O275P[/NQMQC+8Z]JKV'A>Z_X2:QUZXMK*QNX872
M]>RD8B]9@ -P*KP#ELG)S@>] '52RI#$\LKA(T4LS$X  ZFO-K+4_P"S?&^F
MZ])>H\'B93;SP^8#]G;.;<8[';\I]RWK7;>(K+4-1T];*Q2V:.:11<B>5DW1
M!@6484_>&5^AJCXO\+C7O#<]A8P6L%XY1H9F^3RG5@0P*J3VH N:QK;V&J:5
MI4$:FYU2214DDSLC5$+L2!U/0 9'7KQ6(_C/5HM,\17#:79L^@LR.1=,/.(4
M-N"[#@;3TW'GCWJ+Q"-6OIM!TMCI3:S'NNI(GFD16"+MW)(H#J=S= .>>P.6
M_8=8O=%UGPPVF:;:75W;LYGAO'D0F3*EI"5W[NXSG('48H T/^$FU6UMX)M0
ML+:+^T'B2P6*5W8ED9W,@"\;0I.%SGIGO3%\97-FFJ#4M.DQ9&+[/<1Q21QW
M1D(55&X9#!B >O7-2:OX=U74O#VEK;W%O9ZQI4B30/N9X2ZJ5*DX!VL"<\4E
M[H.N^)/#UW9ZW=6EG<RJAMQ8[F2%T8.');!)W <=@#US0 Z#Q)JW]KR:>VFK
M<*UJTT%RD<L40<=8W+*<>S#KZ5G0^-]8;0M$UQ])MC9ZE-' \:SGS5:1BJD9
M&,9QU/Y5KZ9#XNDA;^VGTS?%&5C2T9P)W(QN<D?*/8 \GVQ60GA'6X_!>B:(
M#8&?3+J&9W,SA'6-]PQ\F<GI[>] &G;^)[RTUS4--URWMH!:V']H)+;2,X\K
M)# Y Y!7\:@@\6:D]YI9_LPS6NHD*PBAEWVA(RI=BNTKV)&,>]27OAN]U'Q7
M=7]RML-/N]).G2*LS>8,LS%@-F/XL=??VIOA[3/%^GPV^F:C>:=+8V8"QW,.
M\3SHOW58$;5Z#)YX^N: ,^;QOKL>B:IJZZ19B'2+V6"Y0W+%G6-@#L^7KWR<
M?2KT^I:O)\2;2P@E@%BVEO<"-@V3F2,$GW]/J?6JC^$]<D\*^(M(/V 2ZO>3
M3Q.)W*HLC9(/R=1CMU]JTGT/5QXGTS6XFLE,=@UG=1N[G:"RMN0[1N^[C!VT
M ;&KW=W8Z;)/8V37MQN54A#;<[F R3Z#.3["L*W\6W,EQKMFB6=Y-I5NEQ'+
M#*4CF#!B5/WMI!4COGVK0\6Z5?ZSH3VFG3Q1S^;&Y68D1S*K F-R.=K 8-9
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
MX;RRHG,O!V9SSCI0!KZIXJNT;4QI-JEPVF-L:-HY&-Q(%#E%*@A3A@,G.3V
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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 %%%% !6)XLT>]US11
M:V%Q%%,L\<NV8$Q3!6!*/CG:<<UMT4 <9-X-U'4K_67U.ZM!;:Q8QV\J01MN
MB9 V-N3@@;@<GKCH*O:)I?B801V?B"^L9[6",Q@VJN)+D;2H,F>!P<D#J<<\
M8/2T4 <CX=\/^)=$AAT:34[.71[5_P!S*J.+IHP<B,_PCTR,\>G4.M?#6K:0
MFKV&F36C6&I2R31M,S"2T:0?. H!#KGD#*^GO7644 <G'X4NM/U?P[)IQM_L
M.BVTEN5ED822!PH+<+C(VY]\]JD_L#6--\67VKZ/-9O;:HL?VJ"Z+ QN@VAT
M*@YXZJ<?6NHHH X.S\%Z]8:!HEFE[833:7>27#0R*XAF#%CSWW*7R..HI;SP
M5K=SH_B33_ME@W]M3B97VNFPD(&R.>FS@<YSG/:N[HH YN[T75+SQ-H^K2+9
MK%8P2Q31^:Q+>8%!V_)VV]^N>U4_#_AOQ)H,:Z+'J5F^B0R$PR;'^U+&3GR_
M[OMNZXZ#ICL** .13P_XDTG7+^70K_3QIVI3&XEBO(W9[>4@!F3:0&SC."1_
MCU4$9A@CB,C2%%"EW.6; ZGWJ2B@#F3X,@EUW5[JXDWV.IPX-KV65DV2/]2@
M4 ^[5/HN@W>C^$1I;7"7=\82LD\A($C;=H)."<!0HZ=%%;]% '%CPAJB>$M
MTU)[07NB7<4ZLQ8QRA PP> 1D-[]*T+;1M6@\87.MRM9RQS6*6P5796W*2V[
M&TX!)/&3@>M=)10!@^#-&O/#WAN'2KUX)'@>0AX6)#!G9^X&,;L?A3(M%U2R
M\6ZEJ]I-:O;:A#"'CE#!U>,,  1Q@[N3STZ=ZZ&B@#A(O!FLQ>!],T 2V+3V
M-VEP93(X5PLAD QMR,YQ5V30?$FF^(;S4-!O-/6VU,K)=6UZKL(I0H4O&5QG
M( R#CI7744 16T3P6L<4DS3.B@-(W5SW/XUQZ^![^30-3T674(8HI;Q[NQN(
MD/F1.9/,4MGC@\<=0>U=K10!S=G9>*Y[&==9NM->;R&BBCM ZI(Q&-[DY/X
M8Y/MBD_A759/AE_PBIDM!<BW%L)@[;-HQ\WW<Y]OUKL:* .<O-&U2[\0Z#J>
M+14TQ)5F3S6)<R*%^7Y>V,\]?:J]IH6O65SKMS;R6*RZE=QW$.7<A0NP,C?+
MT*J>1Z_C75T4 <[X?\,C2-:U'4T@M[);Y(P;.T<M&&7.7Y5>3G' '3OFG:KH
M-VWB:S\1Z7)#]J@@:UGAG8JDT).[&X E2&YZ'-=!10!S/_"-W8L]?N UN=3U
MQ=K_ #,(XE$?EH <9; R<X&23TK4\.V-UIGA^QTZ\\DRV=ND&Z)B5<*H7/(&
M,XZ5I44 <]'HNIV?B[4=7M)K5[;4((5DCE#!U>,,% (XP=W)_2L:/P;K4?@;
M3_#_ )MBT]G=K.9O,<*X67S ,;<C.<?K[5W5% '(R:#XDT[Q#>:CH-YIZVVI
ME9+JVO5=A%*%"EXRN,Y &0<=/RZBWBD@M(XGE:>1$ :1^"[=R?3)_*IJ* .;
M\+Z'J6CZGK-Q>&U:/4[LW2^3(Q:/( VG*C/ Z_I4OB31K_5;[1I[0VX33KP7
M+B5V4OA2NT84_P![K6_10!PFK>"]<U"T\1V"7UB8-8E\V.>5',R8"XC/8(-O
M!YZGCFM>/1]9'C&+79C9.@TXV;HKNI+%]^X?*>,C&,^_M7244 8/A+1[[1-/
MN;:^:W8RW<MPK0NQXD8M@Y Z9_&LS5/"NLWFH>(##>V9M=:M! KS(S2V^(RN
MQ<<;223[$G@UV-% ')6WAW6HM6\/WDTEBZZ5:/;2A&=2^\*"5X/38.O7VJE-
MX&U*[TW5[>2ZMK>XN=6_M6RFC9G\J4;<*P*C(^7J/7IQ7=44 <K#HOB*Z\4Z
M9K>HR:;%]DMI8)8K<R/NW%3D$@?W?P]ZO^+=$N-?T,V=I-'%<)-%/$TH)0LC
MAL''.#C%;=% '-?V-K#^,+/7)6LFCAL7MG17=269@Q(X/ P!UYZ\=*RKCP;K
M-SX1U[16EL5DU:^DN4D$CE8Q(X<@C;R1C'OGMCGNJ* .;UW1;_7$FM;NRTR[
MLI[55\F>1@89@6RZD(<C!7T/RUK:382:5HEGIYG:YDM;=(O-D.#(57&3UQG'
MO5ZB@#)T*PO;5;R34UMFN;JY:9GA<L". HY QM4*OOC/&:Q=.TV]\(W7B'4[
MB:TBT:Y=[WRT9V:W8+\S8V@-NQG'%=A2,H92K $$8(/>@#S32(-;T72[+4C;
M^'KZ"%?,C$5S*LC,_P![REYC5VR1A< DX'!KK-(T;4;'Q9K6JSFV-MJ?D[%2
M1B\?EIM&<K@YZ]>/>KUGX<T/3KHW=EH]A;7!_P"6L-LB-[\@9K2H X[2_#?B
M71))M+L-3LO[#DF>2)I$?[3;JY+,B8^4\DX)Z9S@]*D/A_Q'I7B"^NM OM/%
MAJ<HFG@O8W8PRX 9TVD;LX!P2*ZVB@#FUT+48O&-KK EAF@@TTV3&60B60EE
M8N<+CJO3W_"LT^$=7;PKX@T@O9"75[N>=)!*Y6,2MD@_+R1^OM7;44 <A=^'
MO$5OJ]OK>BW5A%=O:):WMM<[VAE"DE65E 8$9/;O4^H:!K-W>Z%=M<VL\NG7
M#W$[.S1ARRE=J !L* >,GMSW-=110!R4GA74+F[\5F:6VCAU^W6*,HS,T)6+
MRP2"H!SG/7CISUK1T^T\06>FZ7;--IQ:!E2[PKX,2KCY#_>R >>.?;G<HH *
M*** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HH
MHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB
M@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ****
M"BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH *
M*** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HH
MHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB
M@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ****
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
M C]* -;PYXFDU?4M5TB^M5MM0TJ15F$;[XY%895E) /('0]*WHYHIE+12)(
M<$JP.#7':WHFB>&_"^LW-Y)>W!U*1/M=P90)IV+!54L %5><=  ":J6L,0\?
M:Q9W*62I<:+$TMO /W>[>X .?O$+CG XQP* .\66-SA9$8XS@,#QZT1S13*6
MBD210<$JP(S7F&DZ=H%E\)K/5;ZU?SKFTCMI)H7VRR!I1A"QX"D@ YZ+FM;3
M1)#\0M:MA/:6DDVD1,5MN$C?<X!.?O$#'.!QC@4 =RLT3R-&LB%T^\H89'U%
M#2QH<-(JGC@GUZ?G7FNDZ*/$&C^%8OL<#&QE\R[NF='6XCVMNQSN;S&VMR!C
M&3@UI:=H&DZA\0_%"7=C#,L7V*9$8<+)M<[L>O'7W/J: .X\Z+S?)\Q/,QG9
MN&<?2AYHH@3)(B 8SN8#&>E>774UG-9:#J6F[([>;Q,A2:9MUS,6F99"3QM7
MJ-O/R[<XZ5I:?X=T/6O&GC"WO[.&XMPUJRH3\J[H,EP.@/7YNO7'4T ='KFL
MWVF^(="LH%@-MJ,[Q3%U)<81F&TYQVK=CD25=T;JZ],J<BO*=*BEO-%\ V^I
M,TX:\N%4N3F2$)($SZ@KM^H/O74^$+:WT_Q;XLT^RB2WM(KBV>.")0J(7A!;
M ' R: -GQ1JMUH?AR]U2TMHKF2UB:4I+(4& ,GH#GZ<?45>L+AKO3K:Y< --
M$KD#H"0#61X[_P"1#UW_ *\)O_036EHW_(#L/^O:/_T$4 7:*** "BBB@ HH
MHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB
M@ HHHH ***2@!:*A@N[:Z5FM[B*8(<,8W#;3[XKFUUW4]:O]1AT*ZL(SIUTD
M(CN 6%Q\JLYW Y4?-@8!Y'/7@ ZJBL_4=;L-*NK.VNKA$FO9?+A0L 3@$D_0
M =?<>M9FGZ]<MXJUVPU">U2SL([9X) -G$@<G<2Q!/ ';Z4 ='15+4'NMELU
MG=6T -PGF&9=PDC)Y5>1ACQ@\_2IIKRUMY%BFN88G8957< D>P- $]9VI>']
M&UB5)=3TJSO9$7:K3PJY4>@R*T:YOQ-XM3P[J>DVS0[XKNX"7,O:WC;*JQ],
MN1U[!J -*#P[HEK83V%OI-G#:7/^NACA54DXQR .:T(XTAC6*- B( JJHP !
MT IU0P7=M<EQ;W$4Q0X;RW#;3[XZ4 345"+JV,HB%Q$9"Q4)O&20,D8]0*$N
M[:6=[>.XB>:/[\:N"R_4=10!-14)N[87(M3<1"<C(B+C<1ZXZT2WEK ',US%
M&(\;][@;<],^F: )JQYD\2L[JC:28B2%#I(3M]^:TS<P"=8#/&)77<L>\;F'
MJ!Z4DUW;6\B1S7$43R'"*[@%C[ ]: ,>WMO$EK;QV]N-&BAB0)&BQR@*H& !
MSZ51D\-W\VK+JTFF^'7OUP1<&W<N".ASGK[UT\EQ!"2)9HT(4N0S 84=3].1
MS5/4]=T[2;&*\N;F,132)'$0P/F,Q  'KUS],F@#';0=4>[>Z:ST$S2.'D;R
MI/G88VEAGDC P3TQ4DVD:S<7\>H36F@27<2%$G:"0NJGJ V<@<G\S71HZR('
M1@RGH0<@U#]LMY)7MX;J W"Y&S<&*G'=0<T <W_PC5]]BDL?[,\.?997WR0?
M9GV.WJ5S@FG-H.K&>*Y2S\/K<VZ;8)C;R%HAV"G/ ]JL>$M?FU72/.U2:V2Z
M:\G@54^0/L<J-H))Z#U-;D]W;6I07%Q%"7.$$CA=Q]L]: /,8? VM7#?9KWP
MKX:#[</J(=]SMWD 7!W$\]OPKMX8?%4,$<7G:4^Q0NYUE); ZGGK3-=U>_T[
MQ#H-G 8/LNH7#Q3!HR7&(V88.<#IZ4:3J]_=>,-=TFZ,!M[".W> QQE6Q(')
MW9)R>!TQ]* *UOH&J6ET;JWLM BF+E]RPR##'JP&< GN1R:<=%U<ZE_:1L]
M^VXQ]H\B3S,>F[.<5/XKU>_T?^R'LS!LN]4M[2<21ECL=L$J<C!^H/6MJ>[M
MK9D6>XBB:0X02.%+'VSUH Q+W3]>U*V:VO8=#N86^]'+%(RGZ@FHAHVKKIIT
MP6>@?867:;;R'\O'IMSC%=%)-%%CS)43()&Y@.!U/X4B7,$EO]H2>-H<9\Q7
M!7'KGI0!S%SX:O[S3DTZYTWP[+:1G,<+6\A5#_LC/'X4]]!U22VM[8V6@"&T
M_P"/=%AD40^ZX/RGZ5TD%U;W2;[>>*9!_%&X8?I26]U;7:LUM<13*IPQC<,
M?3B@#GI=#U6XTXZ=-9>'Y+,G<8'@D*$YSG!/7/.?6D30]4BODOX['P^EU&@C
M29;=PZJ. H.>![5TLLL<$;2RR+&BC+,YP!]321W$$L'GQS1O$1GS%8%<>N:
M.>ATG6;>^EOX;708[J?B6989 [_4YR:AT_PYJ&E7<UWI^G>';6>;_6216[JS
M=\9!Z5TJ75O)+Y4=Q$\FT/L5P3M/0X]/>H-7U:ST/2[C4K^58K>W0LQ)Z^@'
MJ3T H QHM%U:"2[DALO#R/>DFY9;=P9L]=WKU/7U-1Z7X?U+1%D72[#P_9B4
MYD\F"1=WUYJ;4M>NX/%/AZSMI;9[#4S.)OERX*1%QALXQG&>.W6N@AGAN8A+
M!*DL9Z.C!@?Q% '()X.EC8LNB^&1F3S2/LKXW>N/QK5GM?$=S;26TZZ+)#*A
M1XVCD*LI&"",],5L07=M=;OL]Q%-L.&\MPVT^AQTK!\<:WJOAS0SJVG16TT4
M#K]I2:-F*H3@N,,.F1Q^O% %>'PWJ%M<1SPZ?X?C>([H]L,@$9]5&<*?<"K$
MNE:U/J,6HRVN@/>0J5CN&@D+H#V#9R.I_,U?UC49[/PY+?V<D$UP(E,&4)29
MVP%4 -GYB0!SW'6K:3M:6"2ZI<6\<@4>;(OR1Y]MQ/'U- & N@:HM\UZMEH
MN&?S&<0R<O\ WL9QN]^M-U/P[J.M212:GI_AZ\>'_5M-;NQ7VY/3VKIGNK>*
MW^T23Q)#@'S&<!<'ISTJEJ&OZ9IL-K+/=Q8NYT@AVN#O9FQQ].2?3% &7+H^
ML3WD-Y+::"]S;C$,K0R%HQ_LG/'X466CZQILLTMC::!;/.Q:5HH)%,A/4G!Y
M-;)DN6U:$I=VWV-[=CY.,R.V1A@<XVX/IW%3&\M0RJ;F$,[E%'F#+,.H'O[4
M 8E]I^O:G:M:WT&AW,#<F.6&1ESV.">M0V.AZOILK36=MH<4K+M,@CE+%?3<
M3G'M71W%U;VJ![F>*%2< R.%!/XU("",@Y!H YC^PM4^USW?V'P_]HN%VS2^
M1)ND'HQSDBHAX9O1:PVHTOPX(()/,BB^S/MC?^\!G@^]27NMZTOCJ/P]:O8)
M#+8M=B:6W=F7#[=N XSZYX^E.'B:]TOQ)::)KUM BZAD65[;$^7(XZHRGE6]
M.2#F@!9=&U>>^2_EL] >[2,Q+.T#EU0]0&SG')_,T[2M#U#3;J%X[3188D^3
M]Q%(&1"1D)DX7.!P..*WC>6RW(MFN8A.PR(BXW'\.M58]<T^76YM'CN$:Z@C
M621 P^7<3@?7@G'ICUH L65A::;;_9[*VBMX=Q;9$H49)R3@>YJQ4(N[8W)M
M1<1&<#)B#C>!ZXZU2AU0WNMW&GVNWR[$+]JD(S\[#(C7WQ@D]L@=^ "6;1-*
MN-034)M/MI+N/A)VC!=?HW44Z[TG3K^XAN;NR@GFMSF&22,,T?\ NGM^%2"[
MMI97MXKN$SKD%%<%E/TJII6JF\NKS3[E52^L742JGW75AE'7V(SQV((YQD@$
MT&CZ;:W4]U!86\<]P,32K& T@_VCW_&HM,\/:-HTLLNF:7:V<DW^L:&(*6]N
M.WM5V>X@M8_,N)HX4SC=(P49^IH%Q 51A-&5<X0AAACZ#UZ'\J (+_2=.U41
MC4+&"[$3;HQ-&'VGU&>AINIZ+I>LVRVVIV$%W"ARJ3(&"GU'I5J"X@N8_,MY
MHYDSC=&P89^HIL-W;7+.D%Q%*T9PX1PQ4^AQTH K2:'I4EO;V[:? (K3_CW5
M4"^3V^7'W?PI9M$TJXTX:=/IUM+9@[O(>(%,YSG![YYS5A;JV:X:V6XB,ZC+
M1!QN ]QUJO;S3Q3WS7MY:M"D@\I4&UHEVCAR3USD]J "/1-*BOUOX].MDNU7
M8LZQ .%Z8!ZX]J=!I.GVU[->P64$=S<?ZV94 >3_ 'CU-<O9:WK_ (@T:WUK
M2=0TJUMIU=I(KN-B;=,G8V0W)XY!P.>.G/7SW,%I%YMS/'"F<;Y&"C/U- %+
M3O#NBZ1<RW.G:7:6DTW^LDAB"EN^..WM2GP_HQ6[7^RK3%ZVZY'DK^^/JW'/
M?KZU>::)(3,\J+$!N+E@%QZYK T'7+K4O$VNV$LMM-:V0MVMI(%QN6168Y.3
MD\ 9'I0!J3:)I<]C%8RV$#6T!!BBV#$9'0K_ '2/:A]%TN33VT^33[=[1CN:
M%HP48YSDCN<\Y-.OFNEGL_L]S;PQF;$RS+DR+@_*G(PV<>M32WEK ',US%'L
MQNWN!MSTSZ9H J_V#I'G6TW]FVOF6@Q;OY0S"/\ 9/;\*(-"TJVN//@L((Y!
M(9 53 #G.6QTW')YZ\U?K"NO$D%Q8:R=(NK>2[TQ7!WC>A=4#D8!!/7!YX.?
M2@#6OK&TU*TDL[ZVBN;>08>*50RMWZ&JB^&]#3[FD62_N?L_$"C]WG.SITSV
MJ/PWJ_\ :F@:7<7,T/VV[LHKB2-2 <LH)(7KC)K1DN[:*=();B))9/N1LX#-
M]!WH I'PWH9MX+<Z39F&V;=#'Y*[8SZJ.Q^E)>>&M#U"]-[>:5:3W+)L,KQ
ML5]">_\ 2M,D*I9B !R2>U<M9ZYJFO7=T^CW-BD=CJ)MG@G!)FC3:)&W Y!R
M3MXQP,]> #H[.RM=/MDMK*VBMH$&%CB0*H^@%5)/#NBRZNNKR:7:-?KC%R8A
MO!'0Y]?>KD-W;7$CQPW$4KQG#JC@E3[@=*YRQUS5KFX\3V[O:>9I4BK;,(6V
MD&,/\PW9/7'!% &W>Z+IFHW"W%Y8PS3(I02,OS;3U4GNOL>*6ZT;2[XP?:M/
MMIOLV/)WQ ^5CIM]/PJGX8U:74_"6G:M?O&DEQ;++*P^502,GKT%::7EK);B
MX2YB:$]) X*_GTH @CT?3(;R>\CL+=;FX&V:41C=(/1CW'UJG!X0\-VS(T.A
MV*%'\Q,0+\K>HXXZGZ5I_;+7*C[3%E^5&\<_2H-0FD:PNEL;NVANDC.UYOF2
M,^K $<4 +!I&FVMQ<7$%C;QS7/\ KY%C ,O^\>_XU7'AG0A91V0T>R%M%)YB
M0B!=BO\ W@,8S[U>$Z1I&)IXM[+G.<!L#)(&>G>G13PW$0FAE26-NCHP(/XB
M@"K>:+IE_)%)=V4,LD(*QNR_,H/4 ]<'TZ476B:5>P0076G6TT5L088WB!6(
MCIM';'M5B"ZM[I6:WN(I@IPQC<-@^G%/DECAC:25UC11EF8X 'N: *3Z!H\E
MQ-<2:9:O-<1F*:1H@6D0C!5CW&.U2V6E6&GL6M+6.%BH3*CG:.B@]@/3I4T5
MS!/$989HY(QU=&!'KU%9>O:N]MX6U+5-)N+6:2SMY)E+?O$)12Q!VD>GK0!H
MWVGV>I6QMKZVBN(20=DBAAD=#[$>M,ATNQ@M9+6*TB6&4DR)M^^3U+>IX[U%
MH^HK?:;9/+-$;J:UCFDC5AD;E!)QU R:M/=VT=PMN]Q$LSC*QEP&;Z#J: ([
M#3+#2H/L^GV<-I#G/EPH$7\A44^B:5<WZ7\^G6TMW']R=XP77Z-U%2W]TMM
M0+FW@FD!$)G/!;L,9!/T!K*\':])KGA;3=0OI(5N[N,NR)\H^\1P"<]J -B\
ML[;4+22TO+>.XMY1AXI5#*P]P:IQ^&M#A*&+2+)#'"8$*P*"L9.2HXZ$D_F:
MEU"\9-,O)K&:!IX(F8;AO4$ G# $'MZU5\-ZM)J7A+3M6OWBCDN+5)I6^Z@)
M&3UZ"@"PF@Z1'I;Z6FF6JV,GW[81*(S_ ,!Z=JK7'ARSM[*5M%L+"SU!+5X+
M2<VZXBSD@<#IDY_$]:U89HKB)98)4EC;[KHP8'\139[RUM2HN+F*$O\ =$CA
M=WTS0!P=IX(CN(8X)O!^F:7<(H!OX+K+(1_&@502W<9(]\]#VL.CZ;;ZA)J$
M-A;QW<PQ).L8#O\ 5NIJ>>ZM[6,27%Q%"A. TCA03]34H(90RD$$9!'>@#*/
MA7P\?/SHE@?M$@DFS;K^\8'()XYYYK&T[PVTWB[7[_5-*0VU^81;LSJWRI&$
M96 /0D XY'K5]=7OQ\0CHCF V3:8;M-L9#A_,5,$Y((QGH!UK:^UVWVG[+]H
MB\_&?*WC?CUQUH @N-'TR[FMYKBPMY9+7_4,\8)B_P!WT_"EMM)TZSO)KRVL
MH(;F?_6S)& \G^\>IJ>6ZMX-WG3QQ[5WMO<#"^I]J=YT0A\XR)Y6W=OW#;CU
MSZ4 17MC::C;-;7MO'<0-]Z.50RGZ@T^VMH+.W2WMHDAAC&$1!@*/0"E@GAN
M8A+!,DL9Z-&P8'\14E !1110 4444 %%%% !1110 4444 %%%% !1110 444
M4 %%%% !1110 4444 %%%% !1110 4444 %%%% !7*?$>YFM?"PD7<+4W<"W
MQ7M;EQOS['@'V)KJZ;)&DT;1RHKHX*LK#(8'J"* .0U6V6'XA^&Y]+1$-Q!<
M)>"(#;);J@*EL=@Q&#[TO@BWMTUGQ2R0Q*R:LRJ54 J/+3@>@KI+'2=.TQ66
MQL+>V#  ^5$%R!T''8>E%II&F:?-)-9:=:6TDIR[PP*C/]2!S0!SGC*.V/B3
MPH]PD14W[JS2 8QY+X!S[U4MM/TS5O'?BA+JW@NXELK/8K@.HRDG('3..A]#
M[UV5YI]EJ,2Q7UI!=1JP=4GC#@,.AP>_O4/]BZ3]HFN/[,L_.N!B:3R%W2#T
M8XR?QH \YMECG\ ^ +F8*\T>J6B)(P^8#<PP#Z8 X]A6EXE:ZTJ\UG54BMM8
MT9Y8_P"T;1OEN+1U1 &C/0@#:V#W/'4FNP_X1W0_L\=O_8VG^3$^^./[*FU&
M_O 8P#[U(VB:4]TUVVFVIG8JS2F%=S%?NDG'.,#'I0!<W#9N)P,9YXQ7%7.C
M7GB[0]5ES:?9]:7%NT@8LD2_ZDC'O^\'^^:[.>"&Z@>"XA2:*08>.10RL/0@
M]:9;6-I9VHM;6UA@@ P(HHPJ#\!Q0!Q$.L3>(OA%?M/?+8W]M;26MY*[']W+
M'PV['/S =O[U2V.F6VO^)M&U4V-G#%I]@T;Q,\,Q9CMV!0I; 3!(;CKQWK8U
M?PS%_8MW;^'['3;*YN=HDS;A$F3<"R,5&<,,C/.,UFZ?X2CEO;>YE\+:/HKV
M\JR>=92;Y&(/W1A% 4]#G/!(QSD &1H&D6L>@>*K^PL(6U.QU+418.L8+0L
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
M444 %%%% !1110 4444 %%%% !1110 4444 %%%% !39)$BC:21U1%&69C@
M>I-.KG?'%W86GA]?[0@\Z*6[@C53(8TWF0%2[=D!&3UXH V[:^M+V-I+2ZAN
M$4X9HI P!]"13;;4+*]9EM+RWN"OWA%*K8^N#7GR265SXA\9VM]K%O&EYI]N
MLEQ;X4+\LBL0-QSM&,\]JVO#=UJD'B>72==MK66^2Q$D6I6GRK<0A\ .O\+9
M)/IUQ0!N:KXATS1KNRM;VZCBFO9-D2LX' !)8YZ 8Z^I K,L/$,R^*=>M-3O
M;2.PLH[9[>0@1@"0.3N8DY/ ]/I4'C)K>+Q#X4FN#&D8U!PSR8 '[E\ D^]5
M+2TTW4_'WBC[1#!=(ME:;0X#  I)GCZ$<^A]Z .TENK>"W-S-/%'  "97<!<
M>N3Q1;W,%W L]M/'/$_W9(V#*?H17ENCZH+30O <NH7SVFGM!-&;GY2L<P $
M>XL"!\H< ]LFNV\*V.E6<FIOI.H2WL=S<^=,^]&B$I'S!-@ ST)^HH 74M?N
M&\10^'=(2)KTP_:+B:8%H[:+. 2H(+,3T&1ZU/)_;]I>V0\ZVO+22;;<D0%)
M(U*G!&&((W;<\<?RYP$^'_BY=W=^?+L]=M(X[:X;A!*@ \LGL2 2/6K?C&6>
M+Q/X7B@O;J!+N\:.>.*X=!(@7." ?4=: .H?4;&.7RGO+=9-XCV-*H.X]%QG
MJ>PH74;%[LV:7ENUR,YA$JEQCK\N<UQ^@:3I,WC;Q69;"VE-M=VTD0:,-Y3>
M2K;E'8[N<CG(K &IZ=)8^$+NRGMK6S_MG=% TNZ9%;S=[2.3W)Y&.,]30!Z=
M-JFGVP<SW]M$(V"/OF5=K'H#D\$^E5=1\1Z7I>I66GW=W%'<7A;8K.!M55)+
M'/0<8]R:XF/2],GG^(.^RMG$?* Q@A,VX)(]#GG([CVIUO/;K-\.+J\DB56T
MZ3S)92 "?LR=2?QH [^YU&QLY8XKJ\MX))3B-)954O\ 0$\TMW?V=A&)+V[@
MMD8X#32! 3Z9-<!YVDZC?^*M&\1ZR;!Y;@[HY&B026Q1?+96=2>.>AX//4U)
M!=V5IXK?3M4U6>S@ETFV2QDO/*!FC 82!BZD;R<9 QG'/04 >A*RNH92&4C(
M(.015<ZC8B80F\MQ*9/+">:NXOC.W&>N.<5G^$[*QTWPU:V>F7,]U91;E@FG
M8,SKN/(( !7T/IBN<\*Z1ILNM^*)%L+22>UU7=;[HU/E-Y:D%?[O.>1_2@#L
MQJ-B;W[$+RW^U8SY'FKYF/\ =SFDFU/3[<.9[ZVB$;A'+S*NUCT!R>#[5YWH
M!T/7/#.D)J&N7*:E97*.UHK1+<+=ACNXV;SN8DGGD'D\&K%MI>F2?\)\KV=N
MRQR-M!083-NI)'ISSQW'M0!W_P!NM/M8L_M4/VDKO$/F#>5]=O7%-DU&QANE
MM);VW2X?&V%I5#MGI@9S7GGV:UM] ^'E]%#&EU+=6@>< ;WWV[;LMU.3BJOB
M?4+"?P[XB:SD@M1'K">:DK[IY9TEC#.,GY% 7@ '@=NE 'I#//\ VY&@OH!
M;=B;0J/-9MP^<'/W0.,8ZFI#JFGAHT-_;;I7,<8\Y<NPZJ.>3[5R[)9R_%BW
MEB6%Q<Z%+O90")1YR 9/?C-<C-86$?PFUN\2V@6>WU.3RI0@W1;;D;=I_AP#
MT'J?6@#U>ZU&QL65;N]M[<L,J)953(]LFK-<%XK2]M;S6M4T][34K-;18]6T
MNY.UO*52P:-^WRLW!XR#WKLOML3:1]O=)5B,'G%,8<+MSC'K0 Z+4;&>Y:UA
MO+>2=,[HDE4NOU&<TDNJ:?;AC-?VT>UQ&V^91AST4Y/7VKS6SO[#[9X%N+:X
MM+:S5Y?)@$NYX8VA;_6.3R2>HP.<CG&:F_LK2Y-+^(6^RMF\F68IE ?+_P!'
M5LK_ '?F&>.X]J /3JK/J-C'>+9/>6ZW+C*P&50Y^BYS57PW(9?"^E2,Q<O9
M0DL3G)*#FN!TUM'USPU/8:YKEQ:ZC;W\CW%JC1).+@2DJ4RFXD\ 8)]/:@#T
MB?4K"V$IN+VWB\G;YGF2JNS/3.3QG!QGTI3J%D+B*V-Y )YEW1Q>8-SCU SD
MBN-TS2]-G\>>,HYK*WD7RK0E6C!&6B?<<>I[FL"SM;2/X:>$+\11K<C4K/\
M?X&__6[?O=?NC&/08H ]/N-2L+02&YO;>$1[0YDE5=N>F<GC.#CZ5C^*=8OM
M,;1'L98?)O=3@M9MR;BR.3RIS@=/0]:Q=/T;1+WQ_P"+8;ZQM94\NU8I*@(
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
M?W"_/WYXY_&I+K4K"Q"F\O;>VWC*^=*J9'MDU.DB2QK)&ZNC@,K*<@@]"#0
MRWMH+2%8+:&.&)?NI&H51] *A;2M.;4!J+:?:F\ P+DPKY@'^]C-0V-QA]0D
MFU>VNHHYB0$"K]E4*,HQ!//4Y..M6+34;&_+BSO;>Y,>-XAE5]N>F<'CH?RH
M ;_96G>;++_9]KYDPQ*_DKEQ[G'/XTPZ)I+0+;G2[,PHQ98S;IM!/4@8QFIK
MN_L[!5:\NX+96SM,T@0''7&:8VJZ<B1NU_:JLT9EC8S* Z 9+#GD8YSZ4 <_
M8^&)&\6:SJ.J:=I\]G>B 6P;$C1B-"IR"N!G/8]JZ*YT^RO @NK.WG$?W!+$
MK;?ID<4MKJ%E?6OVNSO(+FWY_?0RJZ<=>0<4VSU/3]1,@L;ZVNC$0'$$JOLS
MTS@\4 )=Z5IM^T;7NGVMR8N(S-"KE/ID<54UF+7I&MX-%>Q@@D#)<33AC)$,
M#:T8'!(YX/M5N#5=.N;I[2WO[66X0$M#',K.N#@Y .1S5!-6AT[3M2O[W6;6
M[AAGD*E"B"$8!$).3EA[X)R.* -2TM8;&SAM+==L,$:QHOHH&!45GI6G:<\L
MEC86MJ\QS(T,*H7/O@<UR>GZMJ>L:78:S!XKT^S@N8XVNH9(XW$#L58(IR""
M1E2&)/<5UM[J=AIJ*]_?6]HK=#/*J _F: $BTK3H+Y[^+3[6.[DX>X2%1(WU
M;&35H@,"K $'@@]ZAFO;2VMA<SW4,4!QB5Y JG/3D\<U@^$];NM7U#78YKR"
MZ@M+M8[:2!0%*&-6X()SUZY- &U9:7IVG;OL-A;6N_[WD0JF[ZX'-+;Z9I]I
M,T]M8VT,K_>>.)58_4@599@JEF(  R2>U<?JWC6"\\)ZWJ'A[4+?[1IPDVDX
MD+! ,L%STR< \CCWH ZNYM+:]A\F[MXKB/(.R5 RY'0X-1'2].,[W!L+8S2
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
M_LG33&(SI]KL!R%\E< ^N,>U/33[*.<3I9P+,.D@C 8<8ZX]* .3^*S(O@]
M[A U];C.<?\ +0'^6:W8= TVSU)];99KJ]6$HLTTC2,B==J \#/L.:T+BRM+
MLJ;FUAGV]/,C#8_.I(XTAC6.)%1%&%51@ ?2@#RJ#5M+DM_!MU:W5I:6<>HD
MQVJR[GMT9),^8Y).XGZ#DCG&:WO#%EI1\2>+)GL[>5[74$D0"-6:/$2G*CL<
MYZ=Z[%=/LD&$LX%'F>;Q$H^?^]TZ^]+#8V=M*TL%I!%(PP62,*3^(H \NM]5
MTQT\%W-K=6EK9QWK&.U67<UNC(_^L<G.XGZ<Y'.,U;U"6S=_&'A^34].,FI7
M/RRW=TD9A9HT!#*QR0F!M*@@GCC%>BII]E&,)9P*/,\W B4?/_>Z=?>N8'AO
M6!=W(NK/0=5BGG>1;J\B;SE5CPI7:0VT84?,. * *6I:;I:>-_!]JT=M-$;.
MZ7)5<382/!(Z'/)JCXDNM*B3QAIEFMKISP::L4J-]^XQ"QC6),X50#C(!Y)Z
M8S7;Z;X?T[3K." 6EN[0?=?R5&TY+?+_ '0">!V&!5U[.UDG,[VT+2E-AD*
MMM],^GM0!Y[ FEZCXJ\&R2K;7"S:3*,MAA(ZK'@'^\1@_0CVK-UJSAT[PSX^
M^R!8M)>\@%NJ\()/W?F[?^!'''<8[5V>H^&[F\\7:;?"UT]]+LK:2!H)&.X[
MRIR$V%<#:,#/Y5T#6%D]NELUI T,?W(S&"J_0=!0!RMQ!:6/Q0T5+6*& 2:9
M<(1& NX!D(''7N:[*JPTVP61)5LK</'C8PB7*XZ8..*G=%D1D=0RL,%2,@CT
MH Y;X=.LFA7I1@P_M2[Y!_Z:L:L>+;66[ETQ;'5$T_4XIVDLFE3?'*P0AD8>
MZLW3D<XK<M[*UM-WV:VA@W?>\N,+GZXHN;.UO4"75M#.HY"RH& _.@#S?4[_
M /M/P[I,>HV$%G,OBJ&WN8XVW12R"0EV4GJI)/XYK2GDL=+\<>(R8!]F70$F
MG@@^5I IDS@#'.WC\J[1]-L)(HXGLK=HXAB-&B4A![#'%*MA9)/YZ6D"R_\
M/01@-Z=<4 ><V&I63>)O!$L5[9);_8YXXX('W"!3$FR-G)RS<8YQDCI5[3Y$
M_L7XA'>,+>76>>G[A?\ "NXBT^R@$8BLX(Q$Q9 D8&PGJ1QP335TO3U5U6PM
M@LGWP(5PW?GCF@"AX/(/@K0R#D?V=;_^BUK9J.&"&VC$4$21(.BHH4#\!4E
M!1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %
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
M4': -P&>G('7J*ZF&:.XA2:%P\<BAD9>C C(- #Z*** "BBB@ HHHH ****
M"BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH *
M:\:2KMD177T89%.HH B^S0?)^YC_ '9RGRCY3[>E87B;0;O5I-)%BMHD5CJ"
MWDBRDKYF P*C"GKN/-=%10!#%:V\,'D16\4<1ZQH@"^_%+!:V]J&%O!'"&.6
M$:!<GU.*EHH BCMH(9'DB@CC>0Y=E0 L?<]ZD(# @@$'@@TM% $,5I;6\)AA
MMXHHVY*(@"G\!1]DML8^SQ8ZXV"IJ* *\MLH1VMXX4GVGRW:/(!QQG'.*H:)
MIVI0-)>ZU<V]QJ$J+&3;1E(HT7) 4$DY)))/?CT%:]% !30J@DA0"W4XZTZB
M@!AAB,0B,:&,  (5& ![4GV>'8$\E-BG<%VC /K4E% $1M;<DL8(B6ZG8.:=
M'''$NV-%0=<*,4^B@"-+>&-R\<*(QZE5 -(+: 7!N!!&)B-IDV#<1Z9ZU+10
M!"+.U6X^T+;1";G]X$&[GKSUK!T/P[<6>M:M?:C#93+?70N(2I+-$0H7'*CL
MH.17244 1S00W,1BGB26,]4=0P/X&E:&)H?):-#&1MV%1MQZ8]*?10!&D$44
M(ACB1(@,!%4!0/3%.551 B*%51@ #  IU% #1&BNSA%#MC<P')QTS4<5K;P2
M/)#;Q1O(<NR( 6/N1UJ:B@!",C!J+[);84?9XL*,*-@X'M4U% $:00QN72)%
M8]6"@$TD-M!;[_(@CBWG<VQ NX^IQUJ6B@".2&*;'FQ(^.FY0<4+;PH_F+#&
MK_W@HS4E% $*6=M&<I;1*=_F<(!\W3=]>3S1]EM^?]'B^;K\@YJ:B@"'[);$
M ?9XL#H-@HDM+::5)9;>)Y(_N,R E?H>U344 ,FABN(C%-$DL;=4=00?P---
MM R+&88RB#"J5&%^E2T4 (JA5"J  !@ =JB>UMY9TGDMXGEC^Y(R LOT/:IJ
M* (Y+>&5MTD,;D#&64&G%$9-A4%<8VD<4ZB@".."&(DQ1(A/7:H&:%MX5#!8
M8P'&& 4?-]:DHH A2TMHX/L\=O$D/_/-4 7\NE+!;06T?EP0QQ)G.V-0HS]!
M4M% $)M+8JJFWBPHPHV#@>U.:"%Y!(T2,XZ,5!(_&I** (C;0&X%P88S,!M$
MFT;@/3/6G^6GF"38N\# ;'./3-.HH B6V@2=YT@C65QAI @#,/<]Z22SM993
M+);0O(R["S("2OIGT]JFHH 0# P*@>PLY7222T@=X^49HP2OT]*L44 ->-)
M!(BN 00&&>1WJ.:UM[DH9[>*4QG*%T#;3ZC/2IJ* &2Q1SQ-%-&DD;<,CJ"#
M^!IIMH#&L9@C*(,*NP87Z"I:* (A;0!PXAC##&#M&14M%% %>+3[*"<W$5G!
M',W61(P&/XXS4CP0R.'>)&8=&902*DHH A^R6W/^CQ<]?D'-.\B'8J>4FU3N
M5=HP#ZU)10!#]CM?M N/LT7G#I)L&X?CUJ5E5U*LH93P01D&EHH S=2TS?HE
M]9:;!;02W4+H"1L7<RD;CM'/6HO#6CG1]$LK6>&V%U;6T=N\T(SY@10H)) /
M;I6O10!$]M!),DSP1O+']QV0%E^A[436T%P4,T,<I0[DWJ#M/J,]*EHH C>"
M&5@TD2.PZ%E!(I/LT&_?Y$>_.=VP9S4M% $<<$,6?+B1,]=J@9I(+:"V0I;P
MQPJ3DB-0H)]>*EHH @6RM4<NEM"K%]Y81@$MTS]>3S[U,RAE*L 01@@]Z6B@
M");:! H6&-0JE5 4< ]0/:DAM+:W9V@MXHF<Y<H@4M]<=:FHH *:JJ@PJA1D
MG &*=10!$EM!',\T<$:2R??=4 9OJ>])'9VL,QFBMHHY&&"ZH Q'IFIJ* &K
M&BNSJBAGQN8#D_6F0VT%ON\B".+>=S;$"[CZG%2T4 0"RM1(THMH0[,&9O+&
M21T)/K4]%% $,=K;Q3/-';Q)+)]]U0!F^I[T?9;;G_1XOFZ_(.:FHH :D:1+
MMC147T48%1I9VL<YG2VB64C!D5 &(^M344 0O:6TDCR/;Q,[IL9B@)9?0GN/
M:EFMH+F/RIX8Y4!SM=0P_(U+10!&]O#+CS(8WP,#<H.*%@A1S(L2*YZL% -2
M44 1S00W,1BGB26,]4=0P/X&@6\"JZB&,+)PX"C#<8Y]>!BI** (T@AC*E(D
M4JNU<*!@>@]J40Q!&01H$?.Y0HP<]<T^B@")+6WCMS;QP1)"008U0!<'KQTJ
M0    8 Z 4M% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%%
M !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M%%%% !1110 4444 %%%% !1110 4444 %%4KG6=*L[I+6ZU.T@N'^[%+.JNW
MT!.35V@ HHHH **** "BBB@ HHHH ***:S*BEW8*JC)). !0 ZBJNGZE9:K;
M?:=/NH[F'>4\R)LJ2#@X/>A-4T^2_:P2_MFO%&XVXF4R >NW.: +5%5;O4["
MP>-+R^MK9Y3B-9I50N?09/-6: %HHHH **J3ZK86VH6^GS7<27=UGR8"WSO@
M$D@>F >:MT %%%% !1110 45GP:[I5SJ']GPWT3W)4LL8/+ '!*GHV#P<9Q6
MA0 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%%
M !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M%%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4
M444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !11
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
MZ=*U: "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@
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
M44 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !111
M0 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%%
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
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%% !2'IQS2T4 97]H:O_ - (_P#@4E']H:O_ - (_P#@4E:M% &5_:&K_P#0
M"/\ X%)1_:&K_P#0"/\ X%)6K10!E?VAJ_\ T C_ .!24?VAJ_\ T C_ .!2
M5JT4 97]H:O_ - (_P#@4E']H:O_ - (_P#@4E:M% &5_:&K_P#0"/\ X%)1
M_:&K_P#0"/\ X%)6K10!E?VAJ_\ T C_ .!24?VAJ_\ T C_ .!25JT4 97]
MH:O_ - (_P#@4E']H:O_ - (_P#@4E:M% &5_:&K_P#0"/\ X%)1_:&K_P#0
M"/\ X%)6K10!FPWVIR3(DNCF)"<,_P!I0[1ZX'6M*BB@ HHHH **** "BBB@
M HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "LW5;O6+9XQIFDQ7Z
ML#O,EWY.T]OX3FM*B@#G?[5\6?\ 0K6O_@U'_P ;H_M7Q9_T*UK_ .#4?_&Z
MZ*B@#G?[5\6?]"M:_P#@U'_QNC^U?%G_ $*UK_X-1_\ &ZZ*B@#G?[5\6?\
M0K6O_@U'_P ;H_M7Q9_T*UK_ .#4?_&ZZ*B@#G?[5\6?]"M:_P#@U'_QNC^U
M?%G_ $*UK_X-1_\ &ZZ*B@#G?[5\6?\ 0K6O_@U'_P ;H_M7Q9_T*UK_ .#4
M?_&ZZ*B@#G?[5\6?]"M:_P#@U'_QNC^U?%G_ $*UK_X-1_\ &ZZ*B@#G?[5\
M6?\ 0K6O_@U'_P ;H_M7Q9_T*UK_ .#4?_&ZZ*B@#G?[5\6?]"M:_P#@U'_Q
MNC^U?%G_ $*UK_X-1_\ &ZZ*B@#G?[5\6?\ 0K6O_@U'_P ;H_M7Q9_T*UK_
M .#4?_&ZZ*B@#!@U/Q.\\:S>&K:*)F =QJ88J,\G'E\X]*WJ** "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@ HHI* %H
MJA_:%U_T!KW_ +[A_P#CE']H77_0&O?^^X?_ (Y0!?HJA_:%U_T!KW_ON'_X
MY1_:%U_T!KW_ +[A_P#CE %^BJ']H77_ $!KW_ON'_XY1_:%U_T!KW_ON'_X
MY0!?HJA_:%U_T!KW_ON'_P".4?VA=?\ 0&O?^^X?_CE %^BJ']H77_0&O?\
MON'_ ..4?VA=?] :]_[[A_\ CE %^BJ']H77_0&O?^^X?_CE']H77_0&O?\
MON'_ ..4 7Z*H?VA=?\ 0&O?^^X?_CE']H77_0&O?^^X?_CE %^BJ']H77_0
M&O?^^X?_ (Y1_:%U_P! :]_[[A_^.4 7Z*IQWMQ)(J-I5W&"<%V:+"^YPY/Z
M5<H **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BB
MB@ HHJAJ.H7=DR"VT:\U ,#DV[PJ$^OF.OZ9H OT5A_V[JG_ $*.K?\ ?ZT_
M^/4O]NZI_P!"CJW_ '^M/_CU &W16'_;NJ?]"CJW_?ZT_P#CU']NZI_T*.K?
M]_K3_P"/4 ;E%8?]NZI_T*.K?]_K3_X]1_;NJ?\ 0HZM_P!_K3_X]0!N45B?
MV[JG_0HZM_W^M/\ X]2?V[JG_0HZM_W^M/\ X]0!N45A_P!NZI_T*.K?]_K3
M_P"/4?V[JG_0HZM_W^M/_CU &Y16)_;NJ?\ 0HZM_P!_K3_X]2?V[JG_ $*.
MK?\ ?ZT_^/4 ;E%8?]NZI_T*.K?]_K3_ ./4?V[JG_0HZM_W^M/_ (]0!N45
MA_V[JG_0HZM_W^M/_CU']NZI_P!"CJW_ '^M/_CU &Y16'_;NJ?]"CJW_?ZT
M_P#CU']NZI_T*.K?]_K3_P"/4 ;E%8T6M:E),B/X6U2)68 R/-:D(/4XF)P/
M8$ULT %%%% !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 %%%% !
M2'@=,TM% &1_;5[_ -"WJG_?=M_\=H_MJ]_Z%K5/^^K;_P".UKT4 9']M7O_
M $+6J?\ ?5M_\=H_MJ]_Z%K5/^^K;_X[6O10!D?VU>_]"WJG_?=M_P#':/[:
MO?\ H6M4_P"^K;_X[6O10!D?VU>_]"UJG_?5M_\ ':/[:O?^A:U3_OJV_P#C
MM:]% &1_;5[_ -"WJG_?=M_\=H_MJ]_Z%K5/^^K;_P".UKT4 9']M7O_ $+6
MJ?\ ?5M_\=H_MJ]_Z%K5/^^K;_X[6O10!D?VU>_]"UJG_?5M_P#':/[:O?\
MH6]4_P"^[;_X[6O10!D?VU>_]"UJG_?5M_\ ':/[:O?^A:U3_OJV_P#CM:]%
M &9!JUW-.D;Z#J,*L<&21H-J^YQ(3^0-:=%% !1110 4444 %%%% !1110 4
M444 %%%% !1110 4444 %%%% !1110 4444 %9NJZE?6#QK9Z)=:D'!+-!+$
MFSV.]U_2M*B@#G?^$BUO_H3-3_\  FU_^.T?\)%K7_0F:G_X$VO_ ,=KHJ*
M.=_X2+6_^A,U/_P)M?\ X[1_PD6M_P#0F:G_ .!-K_\ ':Z*B@#G?^$BUO\
MZ$S4_P#P)M?_ ([0?$6MX_Y$S4__  )M?_CM=%10!SO_  D6M?\ 0F:G_P"!
M-K_\=H_X2+6_^A,U/_P)M?\ X[7144 <[_PD6MY_Y$S4_P#P)M?_ ([1_P )
M%K?_ $)FI_\ @3:__':Z*B@#G?\ A(M:_P"A,U/_ ,";7_X[1_PD6M_]"9J?
M_@3:_P#QVNBHH YW_A(M;S_R)FI_^!-K_P#':/\ A(M;_P"A,U/_ ,";7_X[
M7144 <[_ ,)%K?\ T)FI_P#@3:__ !VC_A(M;_Z$S4__  )M?_CM=%10!SO_
M  D6M_\ 0F:G_P"!-K_\=H_X2+6\_P#(F:G_ .!-K_\ ':Z*B@#!@U[6)9XX
MY/".HPH[!6D:XMB$!/4XD)P/:MZBB@ 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 **** "LR\EUIM1\FPBM%MEB#
M--<;B2Y)&T >@&3]16G24 <CX9\1^(/$7A[3];CM+ 0W<FV2$%]Z*)"A8'H<
M8SVXJ_X5UVYU>TO7U'[/'-;ZC/9J(LJK"-L#&222>:S?A)_R3+2/I-_Z.>N3
MO=-LI?A_XNU-H$:\MM7NWM[@\O"1,""A_A_#&>] 'K<DL<*[I9%1<XRQP,T^
MN&N9X=0\=WNF:I/:QJVGPM9Q740=9$._S=N2!G. >Y 'I70^%+*#3?#EK8VM
M_+?P6^Z..XE()8!B,9'4#H/8"@!/%>O'PWX>N=2C@-S.BXA@'61L9[=@ 6/L
MIK0TZ^@U33K:_M6W07,2RQGV(R*Q;HWFJ>)&-G#;3V^EH8F$\A53-(H+=%.=
ML9 _[:&L;P/<76B1:UX3E16NM)9I[.,,6#PR L@!."<,2"?<4 ;?C/7KK0-$
M>]L3;/-'+$KQS9)VO(J9 !']ZMYI(TSO=5P-QR<8'K7E%X-/U'X-6NK2"*:^
M:Y@DGN' \SSS.H?)ZYP2,>F.V*Z/^R--O/BGJ<5U9PSQRZ3#))%(H9&;S'&2
MIX)P!UH [0RQ@H#(N7^YS][Z>M5V-[_:T8$EL+$P-N0@^<9,C!!SC;C.>,YQ
M7E7]G6<7P@_M00*;ZRO=MM<MS)"%O-JJK'E1CC XKL9K: ?%R%O+7=/H<HDX
M^_B9!S^% '6&:($ R)DG:!N')]/K5=S?#58@LEL+(Q-O1@?-,F1@@YQMQG/X
M5Y3<:5I\/POU?48[:,7=EJDIMI\?/!BZ &P_PC'IUKLKJ")/BYI\R(HDDTF;
M>PZMATQF@#K!-$9#&)$+CJNX9'X55T_5K+5$N)+.99([>9H6<$;2RXW8/H"<
M?@:X?21-I.L:1;:I9VVHV5U/(=-UBW&)&,B.2LRGDY4MR..!FL_[!IO_  KK
MQE_HML)8[V_"D(H90K\ >PX_2@#U+S8R&/F+A>6.X<=^:KWVJ66G:9-J5S<(
MEK"A=Y-PQ@>GKZ5R%]IF@Z9I^C!++-WJ5U;D!9-BW,J(Q4S,0<J,D]"2<5@W
MD<1\-_$*U?[-((9C*B1)A$?REW%5R<'/4^M 'J<=Q'):I<;@L;('RQQ@$9YI
MZNC()%=2A&0P/&*X:9K:/Q3X6TQHH4TR6VED6)5 C>Y"*1N X)"DD9]<UE:U
M9+;P^/\ 3X8E_LN*R2XCBQ\D-PT;%MH[$X5C]1ZT >G+(CDA'5B,9P<XI&DC
M3.]U7 W')Q@>M9/AK1M.TW3XKJSM4BGNX(C/*/O2D+P6/<\GGWK &D:;>_%/
M5(KJRAGBDTJ%WCD7<CMYCC)4\$X ZT =J98P4!D7+_<&?O?3UHDECBQYDBIN
M.!N8#)KR(:=9Q?"%=4$"_;K*^"VURW,D*K>!0%8\J O&!Q72^)387VI^(H42
M.2XMM)"W4EX=T<2,'91&G7)[G( ^7J>* .ZW '&1GTHR"<9&:\VF@2#PGX5\
M:)$MQ=Z1:P->-C<\D#1J),^K*#O'X^M=?X;@AG6ZUP1*LFJ2>:K!<$P@!8_?
ME0&^KF@#8DECA :614!. 68#FJM_JMGIKVL=S*%DNYA#"F>78^GL!R:YK7C8
M7GB>]MMD<EU#I)\]KPY@AB9CRJ=V)')R  !SVKG;>.WO_"_P]DNHXKAC>10N
MTBACCRGPIS^''TH ]3IJ2QR.R)(K,G# ')7ZU3U2XM+/P_=W$KO%9PVKNS6_
M#*@4G*8[XZ5PM@L%OXJ\'>3';6UO<:;<*(D8-(T6Q"OFN,!B>O3&=W)ZT >C
M&:($ R("6V@;AR?3ZT[<,XR,^E>/W6DZ>OPV\3WRVL8N;+5+DVLN/F@VS#&P
M_P /X=:ZOQ1%;>'/$6G>-?)01 ?8]2=4R1&^-LG_  %@ 3UP<4 =J"#T(.*I
MKJUF^L/I*2AKJ*$32(#]Q2<#/N>?RJKX;L!::<US);K#=7\C75PH4 AG.0I_
MW1A?PK"M[.Q_X6OJ32VUON_LV!U+(N=QD<9'N>!F@#J+)[Q4N3J$MJ=L[^68
M 0%B_A#Y/WL=>U61(A=D#J64989Y%>47]I:CX6^,XEB3R[?6+KREQ]S$J@8]
M..*WM6T/2X?B!X<CCLHE6^MKQ;L ?\?(58V D_O\G/S9SWH [I'21 \;JZGH
MRG(-)'+'*"8Y%<*<':<X/I7E\\PT/0_%4%F/L^GV^NPK*D2_+# WE&4!1T!!
M.0.Q-=3I&EZ;#XG35++5(9);FSV&WLXU6*6,$$2,%)Y&0 ??% '4.Z1(7D=4
M4=68X I5964,I!4C((/!KF_$DEF_B'0K-XS->R/-);1R/M@^5,,SC!W$!OE
M[GJ.M<5:ZDEAX76&6>,Z:/%4D%V8^(UM]['&,G$9;;D9Q@XYS0!ZO'+'*NZ)
MU=<XRIR*$ECD9E216*'# '.#[UPWBQ+#1=$\0:EH,C)>7%M"UREJ_P J1A@I
M<!>%8H6P?]G/:K\]OH<0&L^'FB_M Z9*EFEH1ME0+N4LHZ@' !/=L=Z .J$L
M;2&(2*749*@\C\*Q/#FLWVJ:AK=K>K O]G7GD1F$$978K9.2>>:YK0;/2=6T
MWPYK,6L1)<0/&5,$:B:61AB2.0Y);)SN^A-0W%U=66E?$&YLBXFCO,YC^\J^
M5'N(]PN3^% 'HR2QR,RI(K%#A@IR5/O0)8V;:LBDG/ //!P?UKC[#2=#N]7T
MK5;34[9UEMY(4@M(55+F(KG$@&<A<9YZ'CO7/^'].T"R^$YUO4()5=(+F%KB
MW;$P1IG78I/ [>PR3W- 'IZSQ.K,DJ,$^\0P./K5?2M5M-9L%OK&020.[JKC
MHVURN1[$J<>U<;IT,</Q+%K+#8Q13Z!B2V@Y3 F4*&/1SAB <#@XK$TR>#2_
MA+IEQ&(H(YKY%U&58P3Y'VEP2^.2O0$'L2* /5HY8YE+12*X!QE3GFJMYJMG
M87EE:3RA9[Z0QPIGEB%+$_0 =?<>M8NC:5I]KXHEU"SU.*22[LP'MK5%6%E5
MAMD(4GYN< ]QGTJIXPM+2?QEX2:YMX9 ]S.CF1 =P\EB <]L\XH TM*UV[N/
M%&O:;>_9H[?31;F%TR"1(K$[B3C/ '&*WG=8T+NP50,DDX K@8M)TS5_&/C*
M.]M8;J)+:TV(XW*N87Y Z9QT/4=NM9VEZFS:;X'M]1NHXK2YL9 )+A \;3J$
M"!LG&=N[&>Y]: /3U974,C!E(R"#D&EW#.,C/I6!X5TNST@:C;V-^;J)[HRM
M&B@1V[L,E$ X Z'';/O63XH2U\,^+-,\7&!1!*&L+]U3+ /S&_U##:3Z,!0!
MVNY<$[A@=3GI34ECDC\R.170_P 2G(_.N$UQ%T.ST/[8(;.WU#4FDU)VC!C$
MCH[(K] 5#[1D_P!P4ZZ\/VL<&M0Z=KL4,^HO;2&,1#[-'+O 0%1_ST*X8=Z
M.POM6L=.TR?4;FYC6VMXS([A@1C_ !/0>IIMQ->2K92V,ELD3RJ9Q."28R#P
MF#][..O'6O.]8F^U>$?%]IJ6AP6&K6UM')<"##PRY#!)4.,@X!'/(P/>M;Q!
M9V$,_@V2U@@C9=4B7,2@8!B8D<>O!H [EYHH]V^1%VX)RP&,]*5W6-"[L%4#
M)). *\^BT+2K_P 6^-XKNQAFC6*V<(ZY56,+$L!T#>_7D^IJ&TGF?PWX!NYI
MA<1)CS;5Y &G/DD*PW$ [,;N3^N* /1U974,C!E(R"#D&D>2.( R.J G +'&
M37->$="_L^_UC46MHK=;Z[+V\:[2T<>!G)7(&Y@6P#QGUS4/BJTU-]8AOM*B
ML]3DMK5EGTJ[X\V-V^\C'@-E<<\8_"@#JVEC2/S&=53&=Q/&/K6'XFUN\TA]
M&:S%N\5]J4-I*9 20KD\K@XSQWSUKF=+UC3+S7/#5M+%Y.CS:,?L$-UC'G*R
MJ0<\%@@P#[G'6E\0:=I5GI.AZ?IDKM9_\)+"N!*2%+%BRHPZ $D<="#W% 'H
M22))G8ZMM.#@YP?2D66-W9%D5F3[R@Y*_6O.KV-M UKQC%H%NEH1HL=PD5N@
M4"0"0;@HXS@?CBKNFV6D74FB:[INJ0&6.-EMXK6-4:X#)DI)R2<8R<]"": -
MOQIKMUX?\.W%_8&V>X@V$QS9.59PI( (/\7Z5O[ASR..M>27?V'5?@G+JMRL
M4NHM*LEQ.X'F+/YX# GJ.#C']W Z5U<<=M%\5M0$B1(DVB1NX8 !QYKAB?7C
M&: -+QAK5[H6BI?V*P.?M$43B4$_*[A>,$<\UN22QPJ&ED5 3@%CCFO*HS'_
M ,*8MQ$5V#50%V],?;3C]*W[N2#4?'FK:1JEQ;1C['#]DBNH@XDB(;S"F2.=
MW7')P/2@#N:9YT0D\LR)O_N[AG\JR_"UI#8>'+2SMK^6_A@5HX[B7EG4,0.1
MU Z ]P!7))YVDZS:-?VEOJNE7FK,UGJ4'%Q;32.P"2 _> )*9'0#V H ]!:6
M)#AI$7+;>6 Y]/K1))'$A>5U11U9C@"O,K#PSH>IZ3XT^W6T?^C:I=>4Y/\
MQ[XC0[E_NG(ZCK@ \"I-)OKFZU+0;'7[B*)IM"CDA^V1!UEE+$/]X@;]NSWY
M/J: /2BRA-Y8!0,YSQBJU_)=/I<TFF36PN"A,,D^6B!]6VG./I7!!+#0+WPW
MI#ZB;O1'O;I6>;'DK*%!CCST*AB^!SAAZKQ/XQTK1;7P)XICT_#@G[1(@;='
M#,<<+V4]R/\ :]Z .IU[6FTB&PC01M<:A=QVD;,"44L"2Q&<D *>,^G--TL^
M(QJ4D>K2Z6]H%?RC;*ZRR<KM8@D@#!((YYQSS6%XTL[2>7PD\UM#(SZM!&S.
M@)9/+D.TY[9[5)]FAM/BTIM((XV/AY\*HV@XF0*/R % '8>;'YOE>8OF8SLS
MSCUQ536;V2PTJYN(&A%Q'$[Q+,?E8J,XP.3^%<!H-MI_B#PSI6I76L1V^H6M
MRLLKQQ*MR+G=AD8YR=Q.,8Y!%6[1K36K3QO_ &M'%+>6]S/"%F +16ZI^ZVY
M^Z."P([DF@#K_#>HS:OX:TS4K@(LUW:QS2!!A0S*"<>W-6+8WOVZ\%S);-;A
ME-LL8(D5=O._)QUSC':LWP,0? FA8.?^)?#_ .@"N6^Q6HF^(]OY">5L1]F.
M WV;=GZYY^M 'H:RQLP59%)9=P 8<CU^E17]];:9837UY,L-O A>1V/  KSN
MVTZSL+?X>ZC:VZ17DYACEG'WY$:V.58]2.!@'IVKJ?B##'-X"UH21J^RSD9=
MRYP0IP1[T &I^(;NWU?P[%:I";/5I&63S 3(O[LN,8.!T'K6[([2VTC6DD32
M;2(V;E-W;..V>M<)JMG823^"+2.*(0R7#&2.+"ALVY)SCUR,^H/O3+:PL[:?
MX@:3!;116,4<<B6Z*%C1FM\D@#@<@&@#NK665-.@DOYK?SO+7S9(CB,MCG;G
MMGIFK(8,,J01ZBO/K>TU&X\*>$)](>SGO+;3%D&GWGW+E/+C5B#_  LN0 ?]
ML]LUTO@R\M;WPS!+9V+V$:R2HUJ^#Y+B1@R@C@@-G'M0!NT444 %%%% !111
M0 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%%
M!1110 4444 %%%% !1110 445E>)]0N](\-W^IV?DF6S@>;;,A97"@DC@C&<
M=: -6BN*?QAJNE6N@:AJT%I-8ZT\41:V5D>W>1=RY!+;AUR>.E=>]W;1W"V[
MW$2S/]V,N S?0=: )J*BENK>#/G3QQX&X[W P,XSS[TCW=LEPMN]Q$LS\K&7
M 9OH.M $U%13W5O:JK7$\4(8X!D<+D^G-.>2., NZJ&(4$G&2>@H ?4<\$5S
M"T,R!XW&&4]"*C>_LXX/M#W<"PD[?,,@"Y],]*E,L856,BA7("DL,,3TQ0!6
MT_2=.TJW:WT^RAM(6.3'"@5?R%5QX9T(6<UF-)M1;3OOEA\H;';U(Z$U)J%^
M1H][=:;/;R2P1NREOWB!E&<$*1_.J_AG6#JWA_2[JZFA%Y=VB3O&I )R 20O
M7&: )+[PUH>IV\%O?:5:W,5MQ"LD0/ECT'H/:M&**.&)(HD6.-%"JBC 4#H
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
M !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M%%%% !1110 4444 %%%% !1110 5A>./^1$UW_L'S?\ H!K=J"[LK34+<V][
M:PW,)Y,<T8=3^!XH YC0?#-IJ>B>'+_4+FYO/L=K!-;02,HBC?RQAL*HW$=M
MQ.*YCQ5=V4OAWQ'<6+0P^3K""1YWW3R7"21J=G(V* ..N0#T%>G6EG:V%NMO
M9VT-M"O2.% BC\!Q5:7P_HLTUS-+I%E))=KMN':W0F4>C''/0=?2@#DY='T?
M5OBG>175E;74$VBQR,C*&5V\YAN(Z$X &>M8OB6ZL)/#NNW%@88$AUN,.TS[
MIWG26-6*<C8H X'/ /2O24T;2HKU;V/3+1+I5VK.L"AP,8P&QG&*CD\/Z+-+
M<RRZ18O)=C%P[6Z$S#K\QQST'7TH YJ_NH(/'MQ),T&H07.DJBV_GQJ8AO;/
M#L 5?U!)^7D8Q6)=>%[71?!_A&QN8K1[@:S;"::!0-Y9FR-PP3Q@9[[16_JW
MAR\N-=GN)_#VC:W921QQVRW+"-[55'*\HP()).1@]NPK1TKPAI5MI[6]YI.G
MNKSF=;81"2*W8J!A-P_V<YP,DDX&: ,VZMM$TSQ7::9I]I:V=PEC/./-PMO%
M&S@.1&,;G)'J,+GGH*Y*RBL[SP+X(68QR,NN" L&PPC+S@+D<@' X]A7JESI
M.FWLUO-=:?:SR6QS \D*L8O]TD<=!TKGO$_ADWBZ3;:7I-I]EMM36^NHP$19
M  P8;<89CN[^G6@#)ETFVT7QIK4>D01VEA+H#27<,*A8EEW$(<#@$J&_(FJ-
MI865GX<^'VH6]O''>27EM&\X'[QU:%]RENI' &/8"O18])TU+26U6PMQ!/S-
M$8E*R?[P[_C43>']$:&&%M'L#% <Q(;9-L9]5&./PH NW%Q#:V\EQ<2I%#$I
M9Y'.%4#J2:YVRO\ 2]2UN'5I[ZV\S:;?3[;S5+@.1N8KG.YL#C^%1SC)QOW=
MG:W]LUM>VT-S ^-T4R!U;'(R#Q52T\-Z%87*7-GHNGVTZ9VRPVJ(RY&#@@9'
M!H NPW5O<-*L$\<K0OY<@1PQ1O[IQT/(XJ6H+>RM;1YGMK:*%KB0R2F- ID<
M]6..IXZU/0 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4
M444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !11
M10 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%%
M !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M%%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4
M444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !11
M10 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%%
M !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M%%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4
M444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !11
M10 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%%
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
M&>.4M)AR9 O(&.VWU[UFQ>']933?%EN8+??K4DKV_P"_.%WQA!N^7C&,\9H
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
M@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ****
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
MV^W"T^U7$SHQCC7=M4!<@DDY[C '>L^W\;N\,MG/9HFL1:BNG&$.?+9V&X2
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
M7) B !!S@9SSU'!H W:*S?#NK_V]X>L-6\KR?M<*R&/.=I/49[\UI4 %%%%
M!1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %
M%%% !1110 4444 %8OBO0/\ A(]%-G'<?9[B.5)[:;&1'*ARI([CM^-;54]3
MU;3]&M?M6HW<=M#D*&<]2>@ ZDT 9:Z/J&I:WINJZNEK"^F)(8HK:5I \C@*
M6)95P ,X&#UZ\4>&]'U'2M0UF>\^RF/4;PW*>5(S,F5"[3E1_='-=!10!@^)
M-&OM2NM(O=.DMUGTVZ,VRXW!74HRD9&3GYJ@L]%U>U\2ZUJCFSDCU""&.-1(
MRE3&K#)^4]2Q[G'O72T4 <%;^"M=T_0M!-A>646KZ&)(T+EV@N(G^\K< CH.
MF<8_+K=(BU18&EUB:W>YD(_=VH;RHP.PW<D]22<=N.*NS316\+S32+'%&I9W
M<X"@=23V%94'BO0[C4ETU+]1>N^Q;=T9')VENC '& 2#T- %1]#U#3_%MUKN
MDFVF3484CO+:XD:/YDX1U8*W8X((]\UGW7@J[70%CLKBW.J#5AJ[-*&$4DV_
M<5XR0N.,]>*[.JQU&T&IKIAG47C0F<0]R@(4M^9 H YZS\/ZRWBF\U?4)[)8
MKRP2V>.#>2A!8\$XR/FZ]_05'I.@:]IGAG3]'E&E7D=J?)FA<N$GAVL.25.&
MR5.,8X///'753M-6T^^O;JRM+N.:XLRHN$0Y\LMG /OP: .3_P"$$NK?PS-I
M]A+;P2_VHNH6UNS,T$.UE81@XSCY2>G4]*N77A_7Y]?GOQ<Z>\5W8"V?S%<F
MU;G=Y8[@Y&<D9P/3%='>ZC9Z<(#=SK#]HF6"+=_'(WW5'N:LT <18^$]<M(?
M"J226$AT+<)-LCKO!C\L8^4\X.<\>GO2ZAX(O=7;Q/%=3P01:RT,D$D3LSPO
M$JA<@J,@E03@^WO7;44 <@=%\4W^LZ#J.HOI4;Z4TOF^0\C^=OCV9 *C'4G'
MZTUO"^KO8>*K<M9!M=9S$?-?$0:,1_-\GH,\5V-% '*/X?U=[GPQ,!9#^Q0P
MF'G/^\S'Y?R_)Z'//T]ZP;>VU/59]3U?3H] OM.N+UI#]IN)H<B,A1YB*"A(
M*9!89/!/H/2:RI/"WA^6_P#M\FB:>]T6W&9K9"Q;USCK[T 6M*O)-1TJUO)8
M/(>>,.T>[=M)'8]QZ&N;A\*W]QK6E:Q>PV$&H6.[S[NTD;?=C85"L-@P"2"<
MDXQQUXZ^B@#A)?!FLS>"M:T)Y+$3ZG>27"RB5]J!W#D$;<\8Q[U>N_#VO7.N
M7UZL]AY.H6"VQ$I=VM" =PCX&58G)SCD#TQ6[J>O:9HX)O[M80%#,=K,$4G
M9L [1GC)P*N-/$D!G:5%A5=YD+#:%QG.?3% ''6?A;7;8^%&D?3Y#H,;1R!9
M'7S 8O*X^4\@<YX],=ZMZEH6OVGB>76_#ES8XO8DCO+6^WA24R%=2H)S@XQ_
MD;6FZ]H^LM(NF:G:7K1 %Q;S*^T'IG!XJQ!?V=S=3VL%U%+/;;?.C1P6CW9Q
MN Z9P?RH Q;_ $;4KVWCL[Z'3]7M)(2+F*Z+1_O2Q(9,*V ,D#N!CGCF]X:T
MB30?#MEI<MP;A[:/89#GU)P,]AG ]@*U** .3L_#NKZ,^L6FER6DECJ<TEQ&
MT\C*]K)(/GX"D.N>0,KZ>]-O/"-S#IWAS3M)-O\ 9]$N8YV:XD96DVJRD<*>
M3N)S^E==10!7O;./4=.N+*Y'[NYA:*0*>S#!P?QKG?#>C^*=,@MM+U"_L)=.
ML@%BGA5Q<3(OW58'Y5[9(SD#'?-=510!QMIX4U;3=#U+PW9S6ATR[:403N["
M6VCESN79MPQ&XX.X=>:MP^&KFQ\4:;>V8MQI^GZ:;!(WD828RI!^[CC:!UKI
MZ* .*_X1/5V\,^)-*9K(2ZS=SSQN)7VQB7'!^3DC'X^U78="U8>)-)U2068C
MLK!K61%F8EBVWD?)T^7]:ZBB@#C4\+:N/#_B;32UEYFMW,\T;"5\1B50N#\G
M.,9]_:I8_#>JV6K:=K=F;1KR*P%A>6[RL(Y4!RK*X4D,#ZKR#CWKK:* .*U7
MP7?7V@ZQ!%+;#4=9NXYYG=V$<2HR%4!VY; 3&<#DD^U:<NCZG-XSL-<*VBPP
M6;V\D8F8MERK$CY,'!7';/M7144 9VLV]]<P01V<5I.GF_Z3!=DA)8BK KD*
MW.2IZ=JY=O =S#X8N].L9;>VDDU)+^VMRS-!!M93Y8.,X.TG@<%NE=S10!S-
MQH6JQ^);;Q'9O:/=FT^R7EL[LD<B;MRE6 8@J?4<CTJA?^!KJ[L[F\AO(K?6
MY=1348Y0"T4;HNU8SW*[<@G'))..U=K10!R]WI?B75_#>I6FI3:<EW>6KVT<
M=NT@AC# @N21ECSTP,8]R:KZ/X7U;0=5M[O3VLTMY[9(]2M3*VV250 )4^7A
MB!SZ_7FNPJAJ>MZ;HZ%[^Y$0"[VPK-M7.-QP#A<]SQ0!5\5: /$FA2Z>LYMY
MMZRP3 9\N12&4X[C(_6JXT?4=4U?2]1UE+2$Z6'9([:5I!)*R[=Q+*NT 9P.
M>O7CG>CDCFB26)U>-U#*RG(8'H0:K#5M/;5SI*W<;7PB,Q@!RP3(&3Z<D4 9
M?A_2-2TW5]9NKO[*8M2N1.@BD8LF$"X.5&?N@T[Q/HM[JLFE7.GR0+/IUZ+@
M+<;@CC:RD9 )!^:MZB@#G++1M6M?%FIZR_V.6.[MHH442,I!CSR1M. 2Q[G'
MO6+;>"-;LO"VB6]I>V<.L:%([6\I+-#,K9#*XP" 0<<9Z>_'>U3GU;3[;4[;
M3)KN-;RZ#&&#/S.%!)./3 - $.CQ:P(WFUJ:U-Q)@"&TW>5&!GH6Y).>3QT
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
M %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110
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
MHW #[IY^?/X=^M7+WP==ZMJ/B07S6Z6.MVT,*M'(QDB,0;:Q!4 \MG&>W?-
M%77FU=]?\'RZ@;0))?EC'"C!HF\IOEW$G<,$\X7ITYXT3XEU)-1\46YLK5CH
MT$4T $C#S0R.QW-@_P!WH!^-5F\.>*+U]#:_OM,WZ1<"0RI'(QG 0KDCC!P>
MGXY[59E\.ZK_ &GXENXVM&76;:.&)6D8&,HC*"QVG.=Q/'3&.>M $%IXMU=C
MX;NKRPM$L=<5$'ERL98Y&CW@XQC:<$8SD<?2I+_Q=>):^(+VQMH&AT%RDD4Q
M(:<J@=\$?<&#QPV<=JA;PQK7]D^%K0"P\S0I(FE)G?$H2,Q\?)QD'//3ISUK
M-:TU+6M6UJ_TR+0[^RDN?)D6YN)H2?* 4K(B JP#!N6&2/;% '=:7=37VEVU
MW/$D3SQB39&Y< 'D<D ],=JPT\0ZOJ%@-6T?3X;NR^U&%8"V)98U<HT@8D*.
M02%(.0.HSBMC1;Z74M(@NYK=;>1P0R(^]>"1E6XRIQD'N"*YS2/#GB70GGTF
MROK'^Q))WDBD</\ :;=78LR*!\IY)PQ/&<X/2@#2_MO4-3O=4M]%CMC_ &6X
MB8W&[]]+M#%!@C: "!N.>2>..<Q?'=Q>VGAZ[TW3HVBUB=H'6:8J\,BALKP.
MF5//IV-7;;0]4T77M4O=*^R7%KJC"9X;B5HS#,!@L"%;<#P2..E4E\%WEA;>
M'+:PDMY4TFZ:YGDF=D:9V#;L *<<N3R>P'O0!);^(?$ES?ZQI,=CIWV[3/+?
MS3*_DNCJ648QNW?*0>U,'C:]GTOPU?VFFPLNMRK$ZR3$&)RK' XY'RGG]#5Z
MST;5+3Q-KVJ[;1HM3BA2)/.8,IC5@-WR=]W;ICO619>$-<M=%\,V!-@S:)=>
M=(PG?$J@, !\G!^<_E[\ %ZVU_Q)=:IJNBI8Z<+ZP$<BS&5_)9'!*C&-V[*D
M>G?V+K/QH=1T70)[>V5+[7&*10NWRQ[03(Q/4@!3@=\@<=19L](U2T\6ZQK&
MRT>&^AACB3SF# QAL;ODQSN[9QCO6-8^"-5L_#V@QK/:+JN@3,\#AV,4R-G>
MK';E<@XR <8]Z -)_%%]9ZAJFD75K;R:A9V1OK=D9DCN8LX/]XJ01C'/:JMI
MXPU=H_#E]>:?:)8:V8XOW<K&6.1XRP.,8V\$8SGI]*NS>'[Z\U#4-8G6V2^G
MTXV%O"LK-'&A)8EGV@DDD=%X"^]43X6UK^PO#%@/L!ET.XBED)G?;*(T* #Y
M.,YS[>] '1Z_JO\ 8FA7FI^29OLT9?8,\^YQG@=3[ UAWNN:G/X6UG4=.O\
M3Y8H+$SVE[;H65F"N74J6."-J]S][D<8KHM32^DT^1=.:%;K*E/.SL.&!(.
M3@C(_&N:M_!.)==>..WTN/6+$VS6UHQ>,2$,#*0549^8# '8GO0!)I^M7=EI
M7AW3&DAN-0U6$>2Q1E6.-(@S,WS$L1QT(R2.G6B3QI_9,VL6FMP*MQI=NMTK
M6^=MS$QP"H/W3N^4@D\GK43>%=8%MH%X+JS;5=#RD8 989HB@1D)Y() SNQP
M>U2ZAX,.OMJ]QJKQPW&HV:V<:P,7$"*2P.2!N)<YZ#H![T :=M=Z^FKV\%Y8
M6[VEQ"SO-;L1]F<8^1LGYP<\, .G2N5^'FJ3S>&;#2=)DMFN()IWO3*I801M
M/+MX# [CC@>F2<<9Z'1+;Q;&D:ZW<Z=(+9"$-J7#7+8P#(2/E'<@ \X/&,'#
MTSP+JVCVNESV-U9Q:G82RK+-EMES!([.8V7&>"W![8S0!VM[>PZ;IUQ?7;XB
MMHFEE8#^%1DX'X5S=QXKU#3M+TW7;^UMQIE\\8D2,GS;59/N,3T?J,@ 8SQF
MNBU"PCU;2+G3[Q<)=P-%*$;. PP<''OUQ7-1^%]6O/#UCX<U62T>RLY(M]Q$
M[>9<1Q$%%*%<*3M4$[CT/KP 1D:DWQ;:,7-MY8T<,%,#'$9G.1]_[W'WNG3B
MK/Q"FNM)\!WCZ5+%9^6$CPL71&=4(7!&W[W7G^HMC1M1'CIM>S;&V:Q%GY>]
MM^!(7W],=\8_6K'BS1)/$?AF\TF*98))U79(PR RL&&1Z96@#!U\:@GCOPL$
M:VFO#;WPWE6CCZ1\XRQX';//J,\36GC*[CT>^?4;>$ZA::I_9H6W#[)7)7:P
M7EL8?)')^4XJW-HFL77B71=8N);(_P!GQ3)*B;UW&3 .W(/3:.O7GI6=)X(O
M[NQUJ":\AMIK[41J-I/ 2S6\J[=N00,XVCGW- &KI&M:K<>()].O+)I+7[.)
MH;Y+.6W3=G!C99,_-W!!QBNAK&T2V\1*_G:_>64CHFQ([&-U1NF78L>3QP
M!D]<\;- !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !111
M0 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !117&_%2_N;'P1,M
MK(T+7<T=L\JG!1&/S'\1Q^- &]_PDNC$L1?QM&A*O.H)B4CJ#)C:/Q-7[:YA
MO+:*YMI5EAF0/&ZG(93R"*;;6=O9V45E;PJEO%&(TC X"@8Q6&UY_9NK6'A+
M1Q%"RVCW!>52XAA5@J@*",DDX'/ 7O0!T=%<+J'C35K#1O$B&"S.JZ 49F*L
M(IHW&4<+G(.,Y&3R.M7+G7/$5IXBTS3F&FO'J\,IAPC@V[HH8ECGYQ@] %YX
MXZT ==17"7/C#7+'PUXCGECL9=0T*X\O>J.L4JE58';N)!^;IGM5Q_$&OZ7X
MDTNWU:"Q;3M78Q1&WW^9;R;=RAB3AL^H _3D Z^BN,N/%6K6-]IJ7:6:M>:D
M+.:R0%W@1BP1S(&*[B #@@9#>U$VO>)I]0\1V=D-,C.C^6T;RQNWF!H]^T@,
M.>V>V.ASP =G17'2^+-26Q\-:QY=K%IFJ^4EV71F>W:1<J0=P&TM\N2..#S6
M_8WMU=ZOJ$>8396K+$A"$.9-H9\G."!D#IUR.U &E16'?:S</XFA\/6!BCG-
MHUY--*A<)'NV* H(R2V>_ 7OFN?U+QOJUCX?\0-]GM/[5T&9$ERK>5*CXV.H
MSD$@]"3C'6@#O*JIJ-I)J<NFI+FZAB65X]IX1B0#G&.H-1:8-7S<'539X:3,
M"VP;*ICHQ/4@YY&,^@K+AUC5+CQAJFAYM8HX+*.>WE$;,P+,P^89&<;>@Q]:
M .CHKSO0?$VHZ;\-=-UO4)TF6ZF'G7'V=F^SJTCEY' ;YAGTVXSWKL="O9M0
MLY+B2[L[R%I3]GN+3[DD>T<GYCSG<#SVH TZ*Y+6_%5Q9Z]<:-#<V=C=?9ED
ML?ML;%+QSG*A]R@8.T8ZY/X5?.LWP\=?V#BW^S/IC7:/Y;;U<2*F#\V".<]!
M0!O45QUAXPOKJRMX9([;^T+O59["(JC",",MERN[)^53QGDD<BK5YKFLZ%::
MA+JEM;3*DT,6GS1'8+AI"%PRY8KM8\GN.@H Z>BN>N-3UG1)+ZZU5+:XTJVL
M6N?M$"F-Q(O6/86;((Y!_"JUKKFNOJFF@V8N;.\!%SY=G+$;0XRIWN<.N>#P
M/7VH ZJBN2\.^*KC7[V...YLTDCED6^TYXF2XM@ VWJWS<A03C!SVH\/^*KC
M7K^.*.YLXY8II$OM.DB9+BW4!MI&6^;D+DA<<]J .EO;&UU&U>UO($G@D&'C
M<95AZ$=Z=:VD%C;);6L2Q0QC:B+T4>@]JY)O%>JW/A.?Q;I\=J]A$9)$M'1O
M,D@1BK-OW85B%+ ;2.WO3[KQ'K5[K]II^B"P$%_I9O;>:Y5R5.5QN /(^;H/
M7/;! .PJ*.YAEFDBC<,\1 ?'12><$],XYQUY'K6=KFISZ+X4O=3E$;7-K9M(
M0@.PR!>V><9K(AU3_A&/ .F3[?M%W<K B[VQYMQ,02S'_>9F/XT =;17-3:W
MJ>E>);#2=0-M<1:K'(+:>*)H_+E1=Q5@6;*D=".>,>]0>$]9\1Z\J7MRNFQ6
M<=Q<03(BOYC%&*J5).!R.0??Z4 =%>ZC::<;<7<OE_:9UMXOE)W2-G X''0\
MGBK58'B?6K[1I]&%JD#17VI16DWF E@KYY7!QG@]?6L_3KK5F\?^(8WNHYK>
MUMK8QVXA(.TB4A5.[@YZD@Y]!B@#KZ*Y7PKXGG\1O#+'>64B")OMEHL31SVD
MO&%(9LD?>&<#D?@+OBG6;S1$TR6U6!TNM1@M)5E0D[9&P2I!&"/<&@#;DD2*
M-I)&"HHRQ/856TO5++6=/CU#3IQ/;2E@D@! ;:Q4]?<&LVWUF\?QQ=Z'*(#;
MQV*74;JA#@L[+M)R0?N^@ZUP]E<ZA;?"?0S8W26XEU012YCW%E:[88SD8'KZ
MCC(H ]+EU&T@U&WT^27;<W*.\4>TG<%QN.<8&,CK5JN=N=8U2S\7Z3HTOV22
M"]MYI'D2-E;?&!T!8@#YAZUBR>*?$[:#K^I1+IB'1+R>-D:.1A,D84D#YAM.
M">>?3 ZT =Y17*+X@UB'Q!HD=TEF;#6U<1QQJWFP,L>\9<G#9 (/RC'O5?4_
M%>K:7<P&X2S3S-42U-DH+R+ [[5D+JV%)^\ 0.#CKS0!V=%<=9W^HP^._$CW
M=]$UC8VMO)Y?D'*QXE;"G=P>N20<^@Q2VWB76[EM(O(+'[3:7[IY\"6<J-;1
MN,A_-8[7"\9P.>HH ["BL'QKK5[X>\)WNK6$<$DULH8+."5() [$>OK5"37M
M?TKQ7IUEJ\%BVGZLSQP-;[M]O(%W!7).&R.X Y_4 ZVBN,E\5:M9W^EQWB6:
MM>ZC]CGLHP7>V5MVQC(&*[L*#@@9!XZ&I;36O$FH>)-5TZ$:9%!I=U LCR*Y
M+Q.@=@,'[V#UZ<=* .NHKBX_%FL7MG8:KIED;NUNIEW6@LI0ZP$XWB4G:6 P
M2,8YQVR6S^(?$\LGB2*T73(SHK H9(Y&\Q?+$FT@,,$YZ_IWH [:H8+J&Y,@
MBD#-$^R1>A5O0@\C@@^X(-<7>:OJNJ:WX*N+2ZBM8-3@EN3"\)<!O(W?,0PW
M##D <<\\]M#6KMM*\>Z!)'PFJ)-:7 _O;5WQGZ@[A]&- '545GZW=7UGICS:
M=#%+.&49F<*D:E@&=LD9"C)QD9Q61H>OWNJZOK6EB>UD-BL+V]VD#!760,>5
MW<X*GD'!!H U#XCTE=1BT\W>)YY&CBS&VQW7[RA\;2PP>,YX-:=>213:M#\$
M/MD5[;K\[X_T8F0;[AE?YB_4[CR!TR/>NXO=;O+?5(]%6:/[6+4W,TZ6,LJA
M2Q5 (U8D9P<DM_#[\ '1T5Q%SXK\26VC:7<3:7;V]W<ZK'831S*ZB16; =,G
M*@CUSCWQ75:8NJ+9$:K):/=;VPULC!-N?EX8DYQUYH ?J6I6>D6,M]?SK!;Q
M#+NP)P/H.:FAFCN((YXFW1R*'4XQD$9%><"XU.Z\!^-Y-0O(KCRY[Z'B$J<H
M H(.X@+A1@8_$ULZ9K.L6&J>'=.O%LVLM5M66)8E;S(6CB#C+$X;(ST Q[]P
M#LJ*XN3Q;K%UIZZKH]D;R'[05%DMG*7EB#E"PESL#8&[&,=N374:MJ4.CZ1=
MZG< F*TA:5@O4A1G ]Z +E%8%K=>(S=:=//%92V%U$SW7E@HUH=NY<$L=X['
M@>O'2LI_%NK2^$7\7V<5L]@A:46;(WF/ K%2V_=@-@%L;<=O>@#M**Y)O$&M
M7WBC^RM+-@EO/I:WT$\T;L5W/M&5!&?IQUZ\8-2+QS<IX2L-6OXX;9I+U[2\
MN$B:2*WVEUW[0<X)51R>-W?'(!W%%<E?^(]4L=*T^^2?3KR.[U.*V$L*$I)#
M(X 92'."/?/-6VUK4_\ A,+W0XUM62/35NX&9&!#%V7:QR<CY<\ =: .BHK@
M(/&'B-_#6A^(6ATYH+^>*":V"N&_>.5#*^2%P<<;3]>U;%GK&MIXJN] O38R
MR&P%[;2Q1NBKERA1P6.<''(Q]/0 Z>LJX\+>'[N^-]<Z)837).3*]NA8GU)Q
MR:Y.W\9>(Y/">D>)'ATTPW=PD,]L$<,0\A0,K[L+@XX(/KGM6W9:SK$7BZXT
M+45M+C=8?;;=K9&C*X?84;<QSU'S<?2@#I0 !@< 4V65((7ED.U(U+,<= .M
M<C9^*=4&O:+IU[]B9]369;B&!239R(A<+O#%6/!!'![]*A\/7^N"R\4WDMY;
M7,MKJ%PJ*\#*,HB8Y#'"X&,8SWS0!V%E>V^HV,%[:2>9;W""2-\$;E(R#@\B
MIZY*S\67=YI_AF%$@74==@\XL5)CB58P[G;G)Z@ 9[]>*9<>*=5L)M=TR>.U
MDO\ 3;$WUM*$98YXL'[RY)!!&.O/7B@#L**XVU\2:ZMUX;FODL39ZV@5HXD<
M21.8MX;<3@@X/&./4]:W?$NN)X=T*XU)X_-:/:D<><;W9@JC/89(R?3- &K6
M9J?B+2M&W?;[KR@@4R,(W<1!CA2Y4$("0<%L#@UFW.MZIHFNZ59ZH;6XM=4<
MP++!$T9AF R 06.Y3@CL16?X:COI?&_BM+JXMIHA-;K,GV<C>/(& ,N=HYYS
MG//3- ': A@"""#R"*IPZQI]QJL^E0W*O>6Z"26( _*I. <XQ6!XYN-2MY?#
MZ6-W'!'<ZM##(K1%MW#,,X8< H.._KZTI%U5OB7?QZ?+:)='1H-TTT;% ?,?
MD(#DY/\ M<>_< [FBN-T[QK<7V@:).\*17^J/+&VR)Y4C\HL'8(OS'E>!G^+
MD\5K>'=2U:\N-0MM3LRB6TB_9[L0/"MRC#/W&)(*D8/X8H W**Y&]GU4_%"S
MM(KV);7^S)95A:$D#]X@;)##)/8] .QI-$UOQ/J]W?D1Z:+?3M2FM94 </*J
MJ"-IS@')')XY[8Y .OHKCK/Q3J@U[1=-O?L3OJ<<PGA@4_Z)*B;]F\,5;N".
MN>>AQ5&?Q;XG70=<U5(],"Z+?30O&R2'STCVY ^;Y3@DYY^@QR =_17)ZOXM
M:TUF'3OM5KIOVJS6:UGO8F:.>0DCR]P8!<87OD[AZ<V=4U;6+1HU/V.T0V7F
M>=*/-,MQ_P \EC5@Q  R2,]>* .CHKE+#Q;<:IIWAT0110WNMPM*2X+)$J*"
MYQD$\E0!D=<]N<_Q;>^)[;P;J;73VUK)%=QQ1S0ID7,#R(N<;LH?F(/7H<8S
MF@#L;C4;2UOK2RFEVW%X7$";2=^T;FY P,#UJU7.7VL:KI_BC0-*D-I+#J7G
MB:18V5@4C+#:"QP.G4GI58>(=6U/3=5U31Q:>1I\TL44,T;,USY7WSN##;DY
M X/0$]<  ZRBN,7Q=J6I:CH":3%:+:ZU9RSJUP&+1,@4D'! ."W3OCJ*U/"6
MLWVK6^H1:FL'VO3KZ2TD>W4JDFT*0P!)(X8<9[4 ;]%%<8OBO5;;4]'@OELP
M]_=M;7%I$"S6IPQ3,@8J6PHR,#.>,8H Z*'7]+N+B_@BO$:33MOVH8.(MP)&
M3C!Z'I4^FZE::OI\5_83":VF&8Y " PSCOSVKG-"_P"2@>,/]VR_]%-3_AE_
MR3G1?^N!_P#0C0!U5%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4
M444 %%%% !1110 4444 %%%% !1110 4444 %%%% !6?KNBV?B'1KG2K]"UO
M<+M;:<%3U##W! /X5H44 8.G6GB>SMDLKB^L+I8QM6\:-Q(P'0LF<$^^X5'J
M'ANX.LZ?K>FW8%]9Q-!(+G)6YB8Y(8C[I#<@@8'IBNBHH Y'4_!MQJ&D:[']
MIA74-=*">7:=D2( JJHZG !Y.,DD\=*MW>A:C=:]H6IF6U4:4DJO'\Q\PR*%
M.#VQC/>NCHH \Y\7:->:5X2\97MS/;M%J>V953(,9&U ,GKP!Z<UTR:-=ZE?
M:5>:G);F/3<R1)#G][(5VAVS]T $X49Y/7BMFZL[6^A\F\MH;B+.=DR!US]#
M4D4,5O$L4,:1QH,*B*  /8"@#B(? ^MQ:58Z?_;-HRZ;J2WL$C6K%Y<.S'S#
MNY/S'IC/K6G!X=U2'4O$-W]HM6&L1HJ*0P,16/RP2>^1SVYXKIZ* .*O;;3M
M*\!)X3UN^MI;DV7D00QMMDG( "%%/.[=MQ[UTNA::VDZ+;64DIFF1,S2DY,D
MA.YV_%B3^-6GM+:6XCN9+>)YH@1'(R L@/7!ZBIJ ,#5- N9/$EIXBTR>..\
MA@:UFBF!V3PD[MN1RI#<@X/TK.U7P5<:CH6M6RW4"W^N3))<3E3LC5-H55'4
MX"@9/4DGVKL** (X/.\A/M&SS<?/Y>=N?;-8UMHEY#XTN]<>: P7%JEL(@#N
M4*20V>AR2>*W:* .3T7PUK>@Z!::5;ZE:3)93'8KPLHEA._*OR>3N'(&!M'!
MK0\->'8] _M!XUBA%]<^?]F@XBA^4+A>G7&2<#KT&*W** .;\0^';S7H-0L+
M@V4]C>(!#YZ$O:/MP77UYY RO/?FFW7AK48==T[5=)OH%DMK$V$PO(VDWQY5
M@PP1\V5_&NFHH X8> -072#$FL(E_;ZI)J-E<B#[C,Q)5QG# @\X _&M&^\,
M:CX@\/W=EKNI1?:[@(8GLXBD=NR'<K*&8DG/4DC(XXKJ** .<M=#UG4-/N+/
MQ/J-M=1S6[V^RSA,08,,%V))RV.F  ,GKVC\/Z'XDTX066IZY!=V%G@0F* I
M-*!PHD;=C XZ#)QR>N>GHH Y:+PM=W.J:1J.IO:->:623>6ZD2W(*%0K9Z#G
M)Y.2.,9HC\+7=UJ>D7^IO:-=Z6Q;[9 I$MP-I4(V>@YR>3G' &:ZFB@#C[;P
M=?66A7OAFVO81H]TT@C8J?.@BD)+Q@=&ZMACC&>AJ[_PCMU!XLL=4M)+>.RL
M[$V2P$,6*$J<@]!C:!CFNCHH I:SIL>LZ+>Z9*VU+N!X2W]W<",_AUKG8]%_
MX27P);Z)>2M::A8K%&SJ,M!/%C#@=P<9'JK5U]-V+O+[1N(P6QSB@#"71;^]
MU6PU35GM6GTV.06\=ON"-(XVEV)Y'' '.,GD\4OA+1+S0-.GL[N>"8/<R3HT
M2D8WL6(.?0FMZB@#"\3Z)>:TVE_99H8A87\=XWF@G?LS\O'3.>OZ5&?#]_%X
MGU#5K2_BCAU"VCBEC:(EU= P4JV< ?-SP>E=#10!S5KX9N)/$5AKFH?9$O+.
M!XI)K52INRP R^>@&"0/FY/48YM^*M#GUW2XH;2X2"ZMKJ*Z@>12R;XVW ,!
MS@UM44 <S9:!K$/BJ77[J^M)7FL%MF@2%E7<&9A@Y) Y'7)//3@50A\$7\?@
M:WT WUN+FSNA<P7 C8H6$IEPRYSCDC@UVM% '.W&AZE<>)](UB2YMF&GPRQR
M*$9?,,F,D==H&T8'/UJBOA/4QH/B+3&NK7=K=Q-,) &Q")5"D8_BP!UXKL**
M .7N/#FISW?ARX$]JIT7.\88^:2GE\>G'/?GZ<YK^!M9.F/IXUBT,<>IB_@D
M>V8R.WF;\2'=SW'&,\<BNZHH YU?#5T/$E]J#7D+V>I6L<%W"T)WL4##Y3G
M!#'/!_K570/#?B'1T@TR;789]'M&'D8@*W)13E8V;.-HX!XR0,<5UE% ')_%
M$A?AOK)) _=*.?\ ?6K[:-=ZCJVGWVJ2P%=-W/"D&3YDC+MWG/W< G"C/)Z\
M5K75E:7T7DWEK#<QYSLFC#C/T-2111P1+%#&L<:#"H@P /84 <1!X'UN'2M,
MT\ZS9LNE:@+N&0VK%I>6),GS<M\YZ8]S6UHVAWVG^(=9U*XGMY(=4:-]B [D
M*($'/0Y SVKH** .0T7PKKVB?\2JWUN$Z"DA:)# ?M,:$Y\L/G&.<;L$XZ8X
MQ-'X;U-)_$DOVBU(UL?(,-^Y(C$8S_>X&>W-=310!R*>$M3BMO#)AO[9+O08
MV@W-"S)*AC$9.,@AL 'KC-6KZQ;6/&VES+S;Z*DLDC]FFD4*J?4+N8^F5]:Z
M2FJBHNU%"C.< 8H Q_%6B7.NZ5';6ETEO-#<Q7">:A>.0HP;:Z@C*G%5=.T'
M5['Q%J&LR7]I,U_;Q(\2PL@#Q[@,')POS>Y/M7244 <9!X)O?^%=2^$[B]@W
M\F*YC0XSYOF#*GWXZ]*L:IX;UR;4;+7=.U6U@UB& V]P'@8V\\9;<%V[MPP>
MASFNKHH Y;5_#>KZG8:<C:C;R7=KJ$=_++)&P1F3HBH#\J]NN>,\DUU"[MHW
M8W8YQTS2T4 <=)X.U-=)\1:7!J%M]GUB>>6/?"VZ(S'+9.><<@8 Z\^E69?#
MNI2ZCX;N_/M5_L57#KACYVZ/RSCTXY[\UU%% ''Z=X5UW1YY[#3];A30YYGD
M6)X";BW#$EDC8' &2<$@XSTKIM3T^#5M+NM.N03#=0M$^.N&&./>K5% ',^'
M]#\0V$<%EJNL6UW8V:[(?*@*2S #"^82Q& .P') R>N:EMX,O;7P]<^%H[V(
MZ-,SK'(5/GQ0NV6C]#U(#=L]#BNQHH YV/0+RV\7KK%L]LMK'IPL4MSN! #%
M@<]N>,8Z55T?PWK6C:5'91W5E,%NYII8W1@DT<FXE#UQ@L.>>G2NLHH XQ_
M;1^'9[&QN(+6X;4UU*! A,$#JRD(!P=OR]L<DG Z5;M_#^MIXGEUZ>_LY)9=
M/6U:%8650P=F&#G( R.N2>>G&.HHH XI/!FIQ^#=)T!;RU+Z=<QS><5;#B-]
MX&WMGIU[>_&H^BZG_P )D?$"26NW^S_L?D-NSG?OW;L>O&,=*Z&B@#B8_!6I
MQ>"-/\.+>6I>RN$F\\JV'"R>8!M[<\=:T;SP[J%YXH?5_M4,$<FEO8%8]Q=-
MS;MZMQR#T%=+10!Q5CX.UJW'AXR:K9 Z$61!':L!)&T90DY;[^#],Y/-7K3P
MUJ-B->AAO;=[?5)I9XD>(AHWD4*=S9Y48X &3ZBNGHH X^/P9>0Z5X?\F\A3
M5/#XV03;28YD*A65AU&X <C."*M77ABZO1K%[-+ -1U.R^Q)C)CMXL-T/5CE
MB3T[#C&3TU% ')MX8U5K?PW&+FTW:&RECAL380Q\#^'@Y[\UL>)-"@\2Z#<Z
M3<2-$LX&V1.L; @JP^A K4HH YY-#U#4+W3+G7)[:0Z6QDC%NI FE*[0[9^[
M@$_*,\GKQBG:-HM_IWB+6-3N);=XM4DC?9'N#1;$V 9/WL@#TK?HH Q/$^AW
M&MP6!M+F."XT^^CO(S*A=&*AAM(!!QAC4%MH>IP>+;G7'N+:99K)+7R\,IRI
M+;L\]23QV'<UT5% '"P> ]2M_#FG6D&JPP:II-U+<6EVD9*GS&8LCJ3T.XCC
MT%=1H]KJL,;S:Q>PW%U)@%;:,I#&!GA0222<G))]/2M*B@#!U#0KR;Q79:[9
MW<41AMGM9HY8BVY&8-E2",-E>^1STJOH_AN_LK77K:XO(E&KW,UPDEN&#P-(
MH7'/7& 0>*Z:B@#BK+P=K5N_AV274['=H0>-%BM6 DC:/82?F^]C'MGL>E.;
MP?JC^'O$.E-=VF=9NI9UD"M^Y\S&1C^+&!Z5V=% ',7_ (?U/4;"33[S^SKN
MTFM$A,4RMB*0;AYB]<\$<<'(ZBH(?"&HV.IVTUEJL;0)ID>G2?:83)(%3^-"
M& !/?/' Z]*ZZB@#AH_ FJ6VA:)':ZO!'JVA,PM9_(/E-&PPR.N<G( R:T]4
M\-ZIK?A:\T_4-3A-_=-&XDBA(AB*.KJJJ23C*\DG)S[ #IJ* .<O-"U6]US0
MM4ENK5FTLRM*H1E$ID7:0O)V@#IG.:@M_"^HZ6-6L],O+=;#5)7F E4E[5W&
M'VXX8=P#C'O7544 <NGA2:SU?0)M/DACLM%MGMUBDR7D5PH)R. ?E!]\FJZZ
M1KFA:=KT]I?V<=SJ%Z;R%C"TFPG:"FW^(D+@8[GI7844 00>?-81_:1Y-P\0
M\P1G[C$<X/L:XRV\$:W#IVC6;:O9G^Q[P3PN+5LRKA@2_P _+?-VQWSG-=U1
M0!SUCH>H67B+7-5\VV==46(1Q_,#&8U*C)[YSD^E3^$=%N/#OAFTTBYFCG:T
M4H)(P0&&2>AZ'FMJB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ****
M "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH
M**** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ H
MHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BB
MB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ****
M "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH
M**** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ H
MHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BB
MB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ****
M "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH
M**** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ H
MHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BB
MB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ****
M "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH
M**** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ H
MHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BB
MB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ****
M "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH
M**** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ H
MHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BB
MB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ****
M "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH
M**** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ H
MHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BB
MB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ****
M "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH
M**** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ H
MHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BB
MB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ****
M "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH
M**** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ H
MHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BB
MB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ****
M "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH
M**** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ H
MHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BB
MB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ****
M "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH
M**** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ H
MHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BB
MB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ****
M "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH
M**** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ H
MHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BB
MB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ****
M "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH
M**** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ H
MHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BB
MB@ HHHH **** "BBB@ HHHH **** "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 ****
K "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@#_V0$!

end
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>GRAPHIC
<SEQUENCE>20
<FILENAME>cgnxformofrsuagreement002.jpg
<TEXT>
begin 644 cgnxformofrsuagreement002.jpg
M_]C_X  02D9)1@ ! @   0 !  #_VP!#  H'!P@'!@H(" @+"@H+#A@0#@T-
M#AT5%A$8(Q\E)"(?(B$F*S<O)BDT*2$B,$$Q-#D[/CX^)2Y$24,\2#<]/CO_
MVP!# 0H+"PX-#AP0$!P[*"(H.SL[.SL[.SL[.SL[.SL[.SL[.SL[.SL[.SL[
M.SL[.SL[.SL[.SL[.SL[.SL[.SL[.SO_P  1" 55!!\# 2(  A$! Q$!_\0
M'P   04! 0$! 0$           $" P0%!@<("0H+_\0 M1   @$# P($ P4%
M! 0   %] 0(#  01!1(A,4$&$U%A!R)Q%#*!D:$((T*QP152T? D,V)R@@D*
M%A<8&1HE)B<H*2HT-38W.#DZ0T1%1D=(24I35%565UA96F-D969G:&EJ<W1U
M=G=X>7J#A(6&AXB)BI*3E)66EYB9FJ*CI*6FIZBIJK*SM+6VM[BYNL+#Q,7&
MQ\C)RM+3U-76U]C9VN'BX^3EYN?HZ>KQ\O/T]?;W^/GZ_\0 'P$  P$! 0$!
M 0$! 0        $" P0%!@<("0H+_\0 M1$  @$"! 0#! <%! 0  0)W  $"
M Q$$!2$Q!A)!40=A<1,B,H$(%$*1H;'!"2,S4O 58G+1"A8D-.$E\1<8&1HF
M)R@I*C4V-S@Y.D-$149'2$E*4U155E=865IC9&5F9VAI:G-T=79W>'EZ@H.$
MA8:'B(F*DI.4E9:7F)F:HJ.DI::GJ*FJLK.TM;:WN+FZPL/$Q<;'R,G*TM/4
MU=;7V-G:XN/DY>;GZ.GJ\O/T]?;W^/GZ_]H # ,!  (1 Q$ /P#V: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*** "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 ****
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
M"JHS@DG;UP,GMQ6KJ^K:;8>%_#ERL=JUO)/ BWK+NCM"$(#\=QRHSP">>F*
M.D/B315T^>_DU&&*WMG,<S2G88W'\+ X(;V(S1:^)-%O=0;3[;4H);I8_,,2
MMSM[GWQW]*\YO+RW&E?$*!KJ25IE1XWF3:9 85 /W0.3TP.>U;=S>Z>/%'@1
MH;FW"""X4%'7 !A4*/Q88'N,4 ='HGBO3M<%^\+F..RG>,M*I3Y4 W,<C@9)
MZ]A5VSUO3;^[>TMKI6N$02&)E*,4/1@"!E?<<5Y[OFD\*^,=-M(Y)=0BUF>Y
M:V0,':'SD<_]](#CUYQ6BMUH/B>&>^\,O=W>LQZ?/'%,\LV;8LAPK;CC);''
MU(Z9H N^+O$RQ?V4FE:JT<DFJP02"- 4G0R .H<K@D=]IR.<UUMW=VUC:R75
MW/';P1C+R2,%51[DUY=<Z_I%UX%\,6<4JI=6%_8I<VI4^9;M&P#[EZCH>3UK
MT3Q"0_A?5".0;*8_^.&@"*V\7>'KS4(;"WU>VDNKB,211!^74KN&/?!!QUQ4
MXU[2S;W=P+Q/+LFVW)P?W)QD[AC(XYK@ECLM8\#^#+'3&ADU&&6SE58<;X-H
M!E=@.0.N2>I([D5)<ZC::=<>/=/NI?+N[I6E@AVDM*AMP-RCN 0<GMCF@#M;
MGQ1H5H(#<:K;1_:(3/$#(,O'MW;OIBD?Q1HJ6BWGV]&MVA$YE1695C.<,Q ^
M4'!QG'0UQ-M?6#:E\./-GB'EV,JL)"!M8P(HSGH2PP/<58\4N+'4]6OM%U2"
M*[A@1+S1[M0T5\FP%0@ZAB#M&.IP._(!W U:Q:]FL1< W4$?FR0X.\)_>QCD
M?2HDU[2I-.CU".^B>VED\J-U.?,?)&U0.2V01@<\5S$FJ6^F_$R.[U,_8Q?:
M'&D2N"=T@E8M&,=6&X<#DU@Z+K5I8^#]$^T1QQC^V+@&\N(R5LF+RD-_O$'
MSP,Y/3% 'H3^)M$CTR74I=2@BM8)#%*\C;=CCJA!Y#>V,TMMXCT:[U";3[?4
M8);J%#(\2MR%'!/O@\''2O-+Z\MU\*^/K9[B2222Z#H9DV-(&2/:<8 R<<#
MSCBNFO[[3O\ A//"#6]S;[&M+I04<8(98]@X]2#CZ4 ;WAWQ-9^)$NGM X6"
M=X@'0J6"G&[D<9.>.M&I^*+'2]=L-(FW^=>!W+;&*HJC/4#DY(X_^MG)^'US
M$L6L:>S$74.K73R1E3E0TF5)^H.1Z_A2^)[J*P\=^%KNY8I $O(B^TD;V6/:
MO'<X.!WQ0!O7NOZ5ITKQW=XD1CP9202L0/0NP&$SVW8K0#*RA@05(R"#P17
MZ->VNFQ^*]*\02)'<S7UQ.$E.#=02* A0'[W VX&<8 KHO!%E>Z;X+TFSU'<
M+J*V4.K=4]%/T&!^% &;=^+8]6\/^(WTFYEM;C3%G6*7R^6,<8;.&4C&XD>N
M!FK_ (>\2Z=>VNFV$FI12ZG+9QR/&6^9CL!;V)YR1UKEH]0M;30OB!8W$OE7
M)N;R41LI!*/"H0_\"/ ]:5[RPB7X=LEQ;H$QDAP-H-N5/T^;CZT =A8:C8M=
MZM.NN)=10.IF0LOEV>%Y&X?0DY/%7+/5K*^N)+>"5C-$JN\;QLC!6S@X8#@X
M.#[5PZ3Z3<ZEX]AO;C_1)'@$IA;YU3R55F7Z'/XBM+PE=ZDFO7.FW6H6VMVT
M=HDD.JP@!]I8@12$<%NI!],GO0!V#NL:,[L%51DDG  KE/"'BF[UC5]5L-1B
M\F1"EU9*1@M:R*-A^HQSZ%L=JM^++VWD2V\/&]CMY]6?RB2PRL6"7.#Z@;![
MM[5SWBY9/"FOZ)XIGU(S[)?L5RAC1"UN^<D!0,[3@XH [4ZSIXU*33?M*F\C
MB\UH I+A/[V,=/Z\5%%XBTB;3&U.*^C>S5MAG4$KG.,9QZ\?6L+Q7(]CJ.C>
M*]+B^V;'-G*D!!\Z*; 3GT$@3\ZHZ!IFH:;XCN?#5QNFLO-CU;S\84D_>0>G
M[Y0X'H#0!UEWXBTBQE:.YO4C,902$@[8BWW0[8PF>VXBF:AXHT+2IY;>^U2V
M@FAB\Z2-G^9$R!DCZD5Y_P",-4M[O3/&5@@^Q7,3 M:Q19DN@%3]\YP?DP,#
M&,;>3SBMN/4--N_BCIS^?"XDT)TCW\$L95( ![E=Q'J/:@#H=8UVPM].GV:E
MY$IMO.66)=_EJ1\KMP0JGU;CK3/!5[<ZEX,TF]O)FFN)[97DD;JQ/>N:T_5K
M72=7\6:9K<JV]Y=W#3VOFC'VB QA45/[V-N,#UK;^',J2_#_ $;82=ELJMD$
M8(ZT :\FMZ;%="V>Y D:40CY&*^8?X-V,;O;.:YK3/%,.EZOXABU[60(+:]2
M.W,^T%5,:L1A0. 6ZX],FLQKF33M;:;1-1BO[.ZU@QWFC7 !EAE\W#21$<@
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
M("TBR%2,@83.XY(QQ@_7WH W*6L;2M3TZW\-6EW_ &O)>VK +'=S\O.2V!P
M"23P !DU/#XATF:"[F%XL:V7_'RLRM&T/&1N5@",]N.>U &B  , 8%   P!@
M5EZ9XFT76;G[-IU_'<2^0MQM4'_5GH>1^G6J]YXIM;/Q3:Z"T4YEFA:9G$+L
MJ@%0 "!SG/)Z#'/6@#<(!&",@T>U9EWXDTBPED2YO @B<)+)L8QQ,<8#N!M0
M\C[Q'4>M:1=0A?.5 SD<\4 * !T %+7#:MXO.K^"M?O=)FN[&:P\T1R>258[
M.#DLN!DYX^\/:M_1_$FEWTL&FI?K+?\ V=9&3!^; &XAL8;!ZX)Q0!M4A /4
M9Q6;/XCTFVNDMIKL(SS>0KF-O+,G]SS,;=W;&<UHLRHA=V"JHR23@ 4 *0#U
M&:6LVT\0Z5>WJ6<%UF>2/S8E>-D\U/[R%@ X]US33XDTA;E(#> &24PI(481
M-(.-@DQM+9!&,YR"* -2BL>\\6:%8W%S;W&I1K-:J&FC4,S*#GL <G@\#GBK
M"ZYIKV-M>Q70F@N_^/<Q*SF7@GY54$G@$GCC!S0!?  & ,45F?\ "2:2(+6<
MW96.\N/LT+-$X#2[BFSD<'<",''0U(VO:7'=75M)=K%+9QB6=9%*;$/1LD8(
MX/(H O@ # & * H'0 5B1^,_#LKVJKJL6+S_ %+$,%;C.-Q& <<X)!J:V\4Z
M'=K>-%J,6+%0UQO!38IZ-\P&0>Q'!H U<4!57. !DY.!UK%C\9>'9)+5%U6'
M_2UW0LP8*W&<;B, XYP2#5C3_$6D:J]TEG>H[6F#.&!0H",@G<!P0#STH TZ
M0  D@ 9ZUF6GB/2;VX2"WNBTDD)GB#1.OFQC^)"0-XY'W<]167:>,-,UG1M4
MN'N9]-M[=Y8?M+QM&4"_+O!88#9R0.HXR* .GP,YQSZTM9D.IV-II%C-)?//
M'/&@@D92TMQE<@A0,EB.2 /7BF_\)-HHTR?4FU"-+6V8I,S@J8F'564C<&]B
M,T :M(0&!! (/8UEVGB?1;_4AIMMJ$<ETT?F+& 1N4=<$C!QW .1WK0N;F"S
MMI+FYF2&&)2SR.V%4#N30!( % "@ #H!2UGVFNZ=>W3VD,["Y2/S##+$\;E/
M[P5@"1[CBN8L]3G\5ZOJUO;ZG?:>]E=I':&*%PH545FWAA@[B2,-VQCW .WH
MK$U[Q/;:%?Z;9RQ3/)?S; 4A=@J@$D\ Y/'3KSGH*Q8/$D>E>,O$"ZMJLOV&
M&"UD@CD3/E[@Y;:JKGL,\$\<T =H !T&*Q=9TC5+G5+74]*U.*WEMXWC,%S
M987#$$G 92&^4<YZ<>M7CK&GBQ@OEN5D@N0# T0+F7(R-JJ"6.,G '0&ETW5
M;'5[=I["X$R(YC<8*LCCJK*0"I'H10!!INESP73W^H303WKQB/=;P>4BKG.
M"6)Y[D]N .:TZPI/%=G'XK.@LDP=+;SI)3"^T98!1G&,?>RW08Z]<.M_&7AV
MZN8K:'5H'DE,@0#.#L!+\XP, 'D^AH VZ*S+3Q'I-[<+!!=CS'A\]!)&R"2/
M^^I8 ,O(Y&>M5/\ A-_#6(F&KPE99?)5@&*[\XP3C YXR< XH WJ0 #H,50U
M#7=.TPR_:YV7R8_-E*1.XB3GYFV@[1P>OH?2DO\ 7],TQW2ZN2K1Q>=(J1O(
M8X_[[;0=J\'DX'!]* -#:,YP,U3UBSFU#1KRRMY$BDN87B#N"0NX$9QWQGI2
MS:K8P6T%RUP&CN,>1Y8,AER,C:%R6XYX'3FL?5/&^E6.D1:C;N]VLUTMJHCB
M<E'+!6#C&5(ST.#V[T :>@:=+I&@V.FS21RO:6\<'F(I <(H4'!^E:! /4#I
MBL9M2T^X\0V$*ZM+'<M!(Z6 &T2J<?,ZE<C&.,XZU-=>)-(LI7CN+P((Y!%)
M)L8QQN<85Y -JGD<$CJ/6@#4I, D$CITK,O?$NC:??&QNM0BCN5B\XQ<EMN0
M,X Z\C ZGM5C2]5L=:L([_3KE;BWDR%=<CD'!!!Y!SV- %O .,CITHP ,5S7
MB:2ZT_5-$N+:^N4%YJD5O+#N!C*%')&,>JBNFH **** "BBB@!" 2"0,CI2T
M44 %%%% !2  =!BEHH **** $HI:* "BBB@!" >2 :*6B@!,#.<<^M+110 4
M444 %%%% "  #   ]J,#.<<^M+10 F!G..?6@@'&0#CD4M% !1110 E   P!
M@"EHH 3K2T44 (  , 8'M0  , 8I:* $(R,'I1T&*6B@!  .@ ^E+110 444
M4 %%%% "$ ]1F@@$8(R*6B@!,8I:** "D(!&",TM% !6,ND:C-KC7E_J:SV4
M,GF6EHD 3RVV[<LV?FQDXZ<G/88V:* "BBB@ HHHH **** "BBB@ HHHH **
M** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "N2^*.!\.
M]4+#(_<Y&,_\MDKK:Q?%NA3^)?#\VDPWB6@G9"TK1>9@*P; &X=UH QM06SU
M?QMX=O=+DBD33$N'NIXB-L41CVJC$< DGA3T )I/A[<6L?A:^9G1/+OKJ23/
M&%:1BI/L1C!KL8Q((U$K*SX^8J, GV&33Z /*-(,]IX/\#ZFR.]EIER_V]%4
MDP[@RAV'4!=V3Z9S6Y=B*]\7:GKME-&^G1Z$UM-<(P,<LI<LJ@]&('ITW 5W
M=% '-_#UHCX#T=(]H:*U1)% P5<#Y@1V.:J:O,ME\3-'N9UD$,NGSP(ZQLP,
MA="%X'7 -=?10!YQIES'8^%/$7A[6!_Q,VFN\0./GO!+DHT8_CSNQQTQSBNS
M\,V5UIWA?2[*];=<V]I''*<Y^8* 1GOCI6I10!Y=+=1P^ /&6FR+(ET+R]_=
MF-N=[_)CC!W Y&.HSZ5K75S;?\)5X':.6/RTM[A25(PNZ)0H/IDC ]Q7=T4
M>7:+-H\NE'PKXAL]0FUB"=@;,O<;;AO,++(I!VA3D$MP!R:[3QO97NI>"]6L
M]/#-<RVS!%7J_JH^HR/QK=HH Y'3O$.E>+(H3IEJW]IQ6\B[Y+9E;3V9,$;B
MO!W # //7H*YS<NH?"5?"PBV:Y$J6OV%N)5E608?'7;QNW=,9YKU&B@#C+">
MW@^)NI&>>/<NE01F5B "RLY<9]<8)%<]H<=C<^"/#\#ZM+HU];S7+6UXN ('
MWM\LBMQAE8<'&>/7GU2B@#S74;W4)_!NF:AJL$8_L[7XI9[BVC/ERQ),<SA>
MN#G/OUZ&KT&K6=SX_P!5ND9S:RZ+'LF:-@C /(<Y(Z<\'OVS7>44 >5(\"_#
M/P=$Y0-%J5H94/5-KY<D=L \_6MN_O+5/B-J,C31B-O#P0MGAG$CG;GN=I!Q
MZ5W5% 'EPDMA\//!,3E-T.HV9D0]4VD[RP[8SR3ZUIZC>Q0^.]<FCMUOO^*?
M %N.1<.K.QC]R01QUP:[ZB@#S/3M1ANO%'@^]CFFFB-K<1$1VK)# Q1,1H O
M &".22,<FI=/N8X/!7C'3I@\=RD^H%D:-A]_=LP<8.[(QCK7H]% 'G5O.UA=
M>"]8N&_XE<6F&UFE_AMI61,%_P"[G;MR>G?%0:Y!YL/CK5K9@;&^L8X(67E;
MF98R"5_O=0N1U.?2O3** .!N;JT_X2'P')'+'Y<<4ZLRGA,P!0#Z988Y[C%:
MWQ#M[V?PR)+*%[C[+=P7,T$8RTL:.&90._3./:NHHH XV\EM_$/C/PWJ&CSI
M<16*7$EU/$<A$9 JHQ]2W\)Y&"<4[P5=02:[XH5)5)DU,N@S]]?+0;AZC((R
M*["B@#D?&T@M=6\,7TJN+>WU$^;(J%@FZ)P,X]2<57TR[M/^%A>)YI71$-G:
MJ&D&W.%?>.?3(R.W>NVHH \DTN[&F^&?!NJ7B73:;9PSVU\UNSA[9WV[68(0
MV!M(/LWN*[SPLFCR"\O]%MYE@O) [W,K29N7 Y8"3G X&>_/I6_10!R%S<)8
M_%9);@.D=SHRQ1/Y9*LXF8D9 XP""<]!S6?X9NX8O!_B>2&S6^=+V^F-H!S.
MK%BHQW##C/<5W]% 'FEAJ5O/XK\*7RW$TT+6=Q$Q2U9(86*IB-1MX P>I.,<
MFL^XEA?X3>)(8V4S2:E,RQ@?,V9PRD#J<@9!]![5ZW10!Y[XGFC&HW^K:'K2
M6^H):IYME.!);ZG'M)557J6Y*_+ST'>C5M5:XU+4[&YM)--NIM(C*K#;EY;Q
MBC$IO"GY4)QQ@\DY %>A44 >7V&K#1K;P9K=W'.=*@THV5Q*(6(MI2L?S$8S
M@[-N16EXHFLKKPH-2TRQ,-G_ &O;W4DJ0%#,!(I>8KC./<CG&>F#7?44 <9J
M5[;W'Q&\,S1O\AM;KE@5QN";<YZ9P<9ZUD:=.EKX"USPUJJDZN&NT%NP_>7;
M2,S(Z#JV2PY'3'.*]*HH \_TZ,Z;XV\.VNH3(UQ:Z 8)9&;(\W*<9]3AOJ*F
M\(ZS8:3I6OW5U*5A77;@C8C.=LD@"$!03@YX/2NZHH YCQG_ ,?/AK_L-P_^
MBY:Z>L75=#NM6U*QFDOHDM;&[2ZCA6W.]F52N"^_&/F/\/I6U0 4444 %%%%
M !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M%%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4
M444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !11
M10 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%%
M !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M%%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4
M444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !11
M10 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%%
M !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M%%%% !1110 4444 %%%% !1110 4444 %%%% !1110 50U'6K#2Y[:"[DD$M
MT6$,<4#RLY49; 0$\#FK]<OX@_Y'KPE_OW?_ *)- &K<^(M+L[NVM+B=XKB[
M&8(F@D#2<9( V\D \CJ.]:=<;XH_Y*-X*_ZZ7O\ Z)%1S:UXGN+[Q-:VMSI\
M)T?8T3M;,WF Q>9M(W\'G&[/X4 =M5#5M9L-#M5N=0F,43.L88(S98G ' ..
M3WK$L?$]SK+:):6HCMKC4=-_M"=V7>(D^0;5&>26?J>@!XK-\8-JY\ 7*ZTE
MN+A-0@5'@/RRQBX3:^/X21U&: .\HKGQJ]__ ,)W+H1>'[,=,^UQMY9WJ_F;
M,$YP1WZ"LFQ\97\^AV9E6W.I7^J26$)"$1J%=@7*YR<*I.,\DCI0!T\>M6$N
MMR:,DQ-]%#Y[QE&&$SC.2,'GT-7ZX)[F?1_B1J5[J4ZW$=KX=,X9(]C>6LK$
M@C."<@],<8K0M-9\1RWFE3K9_:+.]Q]K00;/LP895E<M\P!X/'/48Z4 =!J^
MKV.A:;+J.HRF&VB^^X1GQ^"@FK:,'177HPR*\Y\4:M?^)/A?J^M6T\,5C*LB
MPP&+)>)7V;BV>&."1@8 P.>M>A6^39Q!3@^6,$C..* *&H>)M)TN8QW=PR['
M2.1UB=DB9ONAV (7.1U]1ZUJUYWHVISZ%;^,]7OIX[B&SU&5I(EAVF5A''MP
M=QP.@Q@UKWVNZOH0T>^U"2WN+34;B.VN(XXBIMWD'RLIR<J#P<\]QCI0!UM-
M9E1"[L%51DDG  KD[#5/$NI^)=5T^*XT^*WTN\A5B8'+2Q,@9E'S<-@]>?H*
MK_%6>5?#EC9JY2#4-3@M;H@X_=,22,^AV@4 ;X\4:,563[61 Y 6Y:%Q Q/
MQ*1L.>W/-:V:KW=C;76F36$T:?9I83$R8^4(1C&/I7E?A[5-;O?"/@C_ $_R
MUEU!K=M\>[S GF;"3D9 V@8XZ9H ].MM:L+S5;K2X)BUW9JK3(48;0V<<D8/
M0]*OUPJ1:M+\0]=BTVZMH+@Z?:[IYH2X!^?H@(ZGOGCT/:;3O&=UJ>B>'G6$
M1WNKQR,YCC+A!'PY5<\Y)&,GC.><8(!VE%<+JGB/Q3I7A76;Z>UACFL)E^S3
MS0D"YB9@,[0WRL,_3IQ75Z9'JR&X.J3VLNZ3= +>-E\M<?=)).2#GGC/H.@
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
M^>W@MF164L2<$N2.OOU/2ET#PUKFDK!8W?B'[7IEH1Y$8MPDK*/NJ[YY XZ
M9QSQQ74T4 <*_@+4HO#^H^&K+68(]'NRYA22U+2VX9MQ0,& *YR>1GG\:[2U
MBEALXHI95EE1 K.J;0Q'?&3C\ZFHH Y:S\'2?9M>L]3NXKFUUN=YI%BB,;1E
ME"X!+'.-H.<=:?!X8O9[;2[+5[^&[MM+E26,I"4>=D&(R^20,=3CJ0.G0]-1
M0!A:-H5YIOB#5]2EO(98M3D23REA*F,JH4?-N.>!Z=:NZ[HEGXATB?3+Y6,,
MP'S(<,C Y#*>Q!YJ:#4(;B_NK)%E$MIL\PM&RJ=PR-K$8;WQTJU0!@S:7KUU
MIC:;/JUN(W3RY+N* B9E(P<#=M5B/XN1W %0ZEX11]/T:UT>>.P.C7"2V^^(
MRH0%*D,-P)R&)SGK724F1G&>1VH Y^TT#4+3Q-J&L_VA!+]LMXX1&T!!79G#
M$AN<DG(P*R(? %[:^'=)L[;6EAU/19'>TO$M_E*OG<CH6.0<XZ]A77:=J$.J
M6$=[;K*L4F=HEC:-N"1RK $=*M4 <KJOA?5M:\+WFF7NLQ->7NP23BV(CC56
M#!43=Z]R23GZ =- )A @N&1I0/G:-2JD^P)./SJ2B@#F;KPWJDGC4>)+?4K5
M-MF;-;>2U9AM+;LDAQSFK4NG>()A=2'6+6.9X?*MC':L$AR<LY!<[FZ8Y &.
MAR:W** .:A\*2Z?XE@U;2KJ&TA-LMO>6WDEA<[?NL3NX8>IR?7-5;'PAJVE7
M5Q::?K_DZ)<3-*;4V^98=QRR1R9X!)/.#C/'/-;XUNQ.O?V'OD^V_9S<;#$P
M7RP0N0Q&#R>V:T* .5D\*ZM9^(+W4-"UM+*WU)E>ZMY;;S=K@8+QG(P2/7(^
MO2I]1\-WK:QINJ:3J$<$]E;M:N+J$S"2-MISPRG<"N<YYKHZ* .,_P"$$N7\
M-ZQI$NKJYU&_:]CF-OS&QD$@#8.&Y49P!U-:-WX?U&\US0]4EU&W+Z7YID46
MQ F,B[3CYOE '3K[DUJ:QJ]GH6F3:C?NZ6\(R[)&SD?@H/Y]*N1NLL:R+]U@
M"/H: ,;5/#,&I^(=,U@RM&]D&61%Z3ID,JM[*ZJP^E5M?\-7]YK5MKFB:HNG
MZC!$;=_-B\V.>(G=M89'0\@BNDHH J:;:7%I:!+N[-W<.2TLQ78&;_97^$
M #VYR<FLV7P]);>()M<TFXCM[B[C6.[AE0M'<;?NMP058#C/(QV[U=UG6['0
M-+FU+4'=;>'[[1QLY'U"@X^IXJ^K!E##H1D4 8MOH#RZ\FN:I.EQ=P1-%:QQ
MH5CMU;[Q&226/0MQQQ@5'I.@W^FZ]K&IO>V\HU1T?RQ R^6438.=QSP!G@5O
MU6U"_M]+L)KZ[9U@@0O(R1LY51U.%!- '/6'A34+/PUJVCOJ5O(VHO.XF%NP
M\LRYW<;SG&3CD5%<^#+[[%H<MAJT=MJNBP^1'<>1NCFCVA2KIGOM!Z\&NGL;
MR'4=/MKZW),-S$LL9(P2K $<?0U8H YC5/"=YJVCQ)<:RZ:O!<K=PWT<0"Q2
M*, !,_<QD8)YR2:6?P]K6H^'M0L=3UF&:ZOK=K?S$MBL4*$$$A-V2QSU)[#@
M=]:[UNQLM6L=+G>1;J_+"!1$Q5MJEF^;&!@#IG/2I]0O[?2[":^NV=8($+R,
MD;.54<DX4$T 9RZ7JT.D:9:P:A L]DRB5C WEW"!&7:5W9&<@YR<$=*JV/AB
MZTG3-3CTB\@L;S4+G[0&2WW0P'Y00J9YR%//J<^U;ME>0ZA86][;DF&YB66,
MD8)5@"./H:GH 3G'O7+67A;4K2_\071U&V<ZU@[?L[#R2$*C^/YN/I7544 <
M?_PANH#0= TQ=3MLZ)<Q3K(;9OWOE@A01OXX)R<UTNJ6"ZII%YITCE%NX'A9
ME'*AE*D_K5NJU]J%OI\:/<,097$<2*I9I'/15 ZG@GZ GH* .:;PCJLECH%O
M+J]L[:-.DH86A D")L48W\<$DGGD] .*EN/!K7^IZ]-?7<<EIK=O' \*1%7B
MV A6#;B"?F)Z=A6WI.KVFM6C7%F9,1R-%(DD91XW7JI!Y!%-U77+#18X)+UW
M5;B=8(RD;."[' !(&!SZXH S=!T37[%X4U?7UU""U&(0EOY;/Q@&1LG=@'IZ
M\G-3^*/#S>(+*!;>]>QOK.=;BUN47=Y;@$<CN""016W10!EZ-8ZI;*\VL:DE
M[<N H\F'RHT ]%R22>Y)[#@5!X=\,P>'9-0,$K.EW<-)&AZ0H26\L>P9G/\
MP*MNB@#D+#PAJVE7-Q:6&O\ E:)<3-+]E-OF6'<<LD<F> 23SC(SQSS5^WT"
M_MO$VJZS'>VY74(8XA"T#9CV A3G=S]XYX%=!29&<9Y/:@#C;;P/?6OAS1--
MBU: 7.BW0G@G-J2CC##:R;\]'/((Z5U5W8Q7^F3:?>9FBN(3#+V+@C!Z=*LT
M@(.<'IUH Y:W\(WC:18Z'J.H176FV,D;)B$K+,D9S&CG..,+D@<X[5<70KT>
M-7\0_;(/*>S6S^S^2<[0Y?.[=UR3VK>HH QO%&ASZ]IL,%M>"UGM[J*YC=X]
MZ,R-D!ER,C\?2H-(\/7VG^)-0UBXU..?^T(H5FB2WV /&& VG<<+ACP<GW]=
MNZN8K.UDN9BPCB4LQ1"Y 'L 2?PJA;^(;"ZLM.O(#-)#J;!;=EA8]02"W'RC
M ZF@"EXC\-W6IZC8ZOI.HBPU.QW*CO%YD<L;8W(ZY''&<]OY1:AX4N=3TVV-
MSJA.K6MTMY#>"'")(HQM$>?N8XQGGKG-=-10!@KH-U-J<NKWEQ;M?_9#:P!(
MSY42DY8X)R23CN.!CU)Y[7]'F\-_!G4-)N;N*X^RVIC25(S'D;AC()/.37?U
M%/;074?EW$$<R9SMD0,,_0T 8D&BW.HW&E7FIW,$L>G#S8$AC*B20IM#MDGH
M"< =SG-4H/!MU9Z1?^'[748TT:\:3"&(F6!)"=\:G."#DX)'&>];3ZMINGZM
M9Z& T5Q=*[01I"0A51EL-C;QZ9[UIT <]'X;GM_%=KJ]K=016EM8?8%M?))/
ME[@V0V[@Y4=NE9^I>"+^]_X2"WCUE([/6_G96MMTL;[0H ?=C9\HXQGT(ZUV
M-% '-GPS?C6M+U9-5C%Q:VC6EQFVR)4)#?*-WR'*\9W?CWJV?A#5]+O+FVT[
M7_(T6ZF:9K4V^Z6'<<LL;Y^4$D]CC/KS7744 17$"W-K+;L2%E0H2.H!&*Y'
M_A"]5_X1W2-)_MFV)TJZAFBD-F<,L1RBD;^I[G/T ZGLZ* ,#5=!U"[U_3M9
MLM1AMYK6&2"2.:W,J,KX)*C<-K?+UY_QR%\":A%HD6EQZS"RP:H+^-Y+7)XD
M,@4X89))Y(Q[ 5OQ>)]+FU&WLDDE)NF=+>7RF\J5DSN57QC(P?K@XS6O0!S=
MSX;U*;Q'=ZQ%J<,#7&F_8558#NC.68.&W=0S=,=!44_@^34;^;4+ZYAANY-/
MEL6FLHC&TF\ ;VR3R,<#MGKTQU-% ''V?@[58;G0+BXUJW9M%1X56*SVJ\3(
M%[L<-A1ST]O5VD^$-4T:233[/7 NA/,TJVIM_P!]&&.3&LF>%))YQGGC!YKK
MJ* ,&VT"[LO%.IZQ;7\8AU%(S);O!DAT38I#;ONXP2,9XZBLN#P'(/"$&B3Z
MDIN+.[-Y:7D4.TQ2[V<$J6.>6(Z]*[*B@##BT2[GU>'6-1GMY+RUMWAMDBC8
M1H7QO<Y)))V@8XP,]<YK&3P-J">#+3PX-5MC]ENEG6?[*W.)/, *[_7C.>E=
MK10!BVIUD>*9UFNXI],-L,1K!M,$HV_QY^;=ESCMA?7E/$^A7.O06,=O=Q6W
MV2]BNR7B+[C&<A>",9-;=% &!#H-_!XLO-<6]MR+JU2W\DP-\NPD@[MW/+'M
M6-#\/[VV\/:7:0:RD6I://)-9WB6_&')+(Z%CD'=CKV%=N"#G!Z=:6@#FM0\
M-ZIJOAB_TV^U:)[S4(_+DG6W(CC7T1-WN>2<G/I@ U#PWJ4]WHNHV6H6T-]I
MD;PL9+=GBE1PH/RA@01M!'-=+6?8:U8ZEJ%]8VSR&?3V1;A7B9-I89'4#/ S
MD<<T <V_@"6XTO5K*YU<LU]?_P!H03I  ]O,-N&ZX;[HXP.IJY%X>UR;Q!IF
MLZAJUF\MC#+$T<-HRK('VY/+G!^7KT]JZBB@#C)?!%]-X;UW1VU2 '6;R2Y,
MHMC^ZWD$KC?ST&#6E=:%J$_B#2-9DOK<?V;#)&\:V[?O=X7<1\W'W1@<UL7M
M_;Z?"LMR^T,ZQH "6=B<!0!R2:ATG6+3689I+7S%:WF,,T<L91XW&"00?8@^
MG- 'G>F74DXDUFR\1>'&DGN7G6*_M ;F-BQ"HQ5PVX#"@ 9[#->F6,L\]A;S
M7,/D3R1*TD6<[&(!*_@>*!96BW)N1:PB<]91&-WY]:GH **** "BBB@ HHHH
M **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@
MHHHH *S=>N;RTTB6>Q>VCE5ES+=-MCC0L S'Z+DX]:TJQ_$VA/X@TM+6*\-G
M-%<1W$4OE[P'1@PW+D;AD=,T 4?#FN75[XBUC2IIFN(+-()8)I(?*D(D#9!&
M ",KP0!P>]+XEU75K#7="L["6V2'4)WAE$L18@B-F!R&'''3&3ZBI=,\.7EC
MXDNM:GU;[0UY!''-$+<("R;L$')POS'CD^YJ;6M!GU75M)OHKU(!IDS2B-H"
M_F$J5QG<,<$T 8EK?^)[K4=?T9=4M%ETORY([O[)DN)$+!2F[ P0>>:=8^+K
MS5--\/)%$4N]6M'N9F@56**@4':&.,EF'7. #P:U+;P[=VVM:UJ::C"6U9(U
MV&V/[K8I53G?SP>>GX5ECP#<PZ)H]O::V;?4M%W+:7J6W!1AAD="Q# @#OVH
M K:EKWB[2_#MQ<7-O!%-!J$4,,LT:YN87=5!PK$(PS@\'V%:-[J.MZ3>:7IM
M[>P3-JM^\?VN.W\L01A"P0 D@N2" 3GZ&GZEX4U'5="-C=:X'NI)XYI;EK7Y
M?W;!E54##:,CU).35+QS<(9M'TV[UBWTPR,TSW%U;*]K(RK@(RN<9);< 6XV
MYZ@4 -7Q7JVGP>(YKQ[>Z@TBX6VMRL!1I7?9MW/NV\%P" H]?:M&UN?$ZZ['
M T+2Z?/ Q>XGBC4V\PZ857RR'ICJ/6LW3;"37]-O] N]1T[5-)G@/^E:9;B$
M12;@0.&92?XN.A'/45KZ-H>N66W^U/$9U(P*5M\VHC .,;I,-ESCCJ.I/7D
M%+P1J/B'7M,L]8U"]M/L\@F1[>*W(+,LC*K!L\<#&,?CD\:&IZQ.WB>R\.V<
M@@DGMY+J:?:&9(U(4!0>,ECU.< 'CGB3PIH,WAK0X]*DO4NTA=V218?+.&8L
M01N.>6/IQ2:QX>:^U>PUFRNA::A8AD5WCWI+&WWD9<@^X(/!]: .=U'Q9K>G
MZ;XHM/,MSJ.A(DT=PT)*SQ.N5RH(PPP03T]JZG14U?;)/J=Y;SI.$>&.&$IY
M/'S*3D[N>^!].PR[_P '-?Z9K4+WZ+>ZV%6YN1!E515VJJINX 'J3R2?8=#8
MPS6]E##<2I-+&@5I$38&QWQDX_.@#EY;_P 2WOB_5-&LK^RMHK6"">*1[4N<
M,S94C=R3MZ_ISD17&O>(=2L[R^T"V>5[:[>&"W,<?ESK&^QMS%@P)PQ&,8XX
M-;-KH-S;>+;S7#?QO'=PI"UO]G(*A,[2'W=?F.>/RK.C\'ZE8ZM>2Z3XBDLM
M.OYFGGM/LZNRNWWS&Y/R9^AQ0!-;ZMJ&O:UJFG65Q_9PTQ(E=C&LC-,Z[L'/
M&U1@<<DYY&*Q3XSUN[T;1[BW6TM[N;6!I=[&T;,N\%LE3G@?+TQGGKQFM_\
MX1J:QU^XU?1KV.U:\B2.Z@GA,J.4&$<892& XZX(_.JMQX(/]FZ79V.H+ ;"
M_&H/++;^89YLL23AEP"7/'T]* %?4-9L]9TC0+V^C>6]6XDDOHH FX)@JBJ2
MP#8.3G/ _&JNFZ]XAN]!U6ZDN-.#V=^]I'/)$8D\M) KS$ER&XSP !D$<U#X
MUN(9_$6G:?-KEII)AMWG#:A;+);S,2% &\@;QAN^0&[Y-%OI>H>)-'DT[^V+
M%X;.>"XL=0L+7;"71B2A3<58#"]#CYO44 2P>)=2:7Q/:PW"R_V7:QW-I/<V
MQ5FW(Y(91MR,IP0!U[U%:>(/$$:>$]0O+JUEMM;6**:W2#:59X2X</GKD<C&
M.<>]7SX/OFOM6O'UL-)JMDMM,#:#:& 8!@-V<88\9SG&2>E*W@^\.G>'K,:M
M"/[">-D?[(?WNQ"@!'F<?*>??TZ4 .L-4UJ]\0>)]*\^V#6*P?8W$) 4R(S9
M89.<''<=.V:AL-4UF_\ &#Z=9W\=SI^GC&H7#6X \T](D(/WAU8]NG6K:^&M
M0AU37=0MM8CAFU=(U4BUR;<HI4$?/\QP3U[_ )4:)X:O=$TZUTV#4;<6L+AY
M2EJRRSG.6+.9#RQY)Q[4 9<GB75K.^T@7%S!+)>:F;*ZMH8]T,(._;ME ^^
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
M-:W-J94<Y)W?>&.N,<YJ;0M(AT'1+/2H)'DCM8A&'?JWO0!S:^(-7U3PQ?\
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
MDD"E5=\L<D G@8Y.?:J7_"&79T77],;5HBNMW$L[.+0YB,@ 8#]YSP!C\>M
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
MLZNLT7]QH^!@'D<_G7744 <[J/A1[_3K&+^U)EO;.\2]%X\:L7E (.5X&,'
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
MIL8]9GDGF;R1F,OC<%YZ<#&<T .NM:NY_$NEZ9Y[6%I>6#W(G4*6DE!7$8+
MCA26Z9X'O3_ ^H:IJFBR7FIW(G)GDCA<1! Z(Q4.,=0P&?Y5S_B,I!K5E87N
MORZ2+.R"QW,UFDD%R6/. X*AE"#/.?FXQSGIO"TNHR6\XO-0&HVZLOV:[^R_
M9RXQR-HX('&& &<GTH A>_OM9\0:OI-E?OIXTR&(!XT1F>612P)W C: !P!D
MG/-5UU35Y-;TOPU=744%ZU@]W>W-JH(;:P0+'O! R22<CMQBK&J>$I;G7_[;
MTK6+C2;R2(0W)BC219T'3*L"-P[&I;OPI$]QIU]97<MM?Z<&5+AQYGFJWWQ(
M.-V3SP00>1B@#G[WQ)KEGIGBVP^V*;[08TF@O#"I,L;H74,HPNX8()QCVJQ/
M?^(;;6_#L0UA7CUJ*1)(VMDVPLL6\.F.<\$<DCGIVK5NO"4=WI6K6LEVWVG6
M>+RZ$8R1MVA57/ "C Z]^I-/F\,RSWFB73:AA]&#>6!#Q)N38=W/]WT[_E0!
M@2:WKMEI/C&V.J>?<Z&!);W<ENFYE,(DVE5 7(Z9Q^%2RZCXAM]1\-8UA9$U
MJ-HY8GMDVQ-Y6\.N,'/!ZD@^@Z5I7'@YKAM?W:FP77D"3@0C]V FSY>?[OKG
MFII?"\DTNAR'4,-HO^JQ#_K#LV?-S_=],<\^U &%/XKU/PW9>+!?7/\ :3:,
MT!MI98U0MYRC:'" # 8]0!Q6EJNH:MX:U+1'GU!]0M=1NUL;A)(D79(X)5TV
M@$#(.0<\>_-6)/!MO=W>N27]R;B#7$1)X-@4)L7:I4YR"!S]>:FMO#4N[3_[
M3U%K]-+;?:AH@A+[2H>0Y.Y@"<$ #G.,T <O-K'B=] \4Z@FN+&^B7\ZPJMI
M&1(D:(VQL@\<GISD]>U=_97!N["WN2NTS1*^/3(!KGAX-;^R]<T\ZFQCUN:2
M:8^2,QEP%;;STP!C.:W]/M6LM/M[1Y?.,$8CW[=NX 8''TH Y'0O$=UJ&MPZ
M;J&HSZ?JL<DOVC3;B%%65,-M:%MN6 .T]3D YK+TK6;SP[X1U[5WOI[R9-6G
MMXDN=A7>90BNQ"@\<9&0,#  KJH/"SF32SJ&H?;1I+E[9C"$D+;2HWMDY !Z
M #.!G.*A'@:R>QU?3;F[GGL-4FDG-N0H\EW8,2K 9)# $9Z>] #-0U#4_#NO
MZ+#/?R:A9:I*;6598T5HI-N592BC@X((.:BTN]UWQ)HEKKVF:E'!YUR6%I+&
MOD^0LA4J3M+[]HSD$#/'2M.V\/3-=6-QJNH'4'TX-]F)B"?,1MWOR=S8R,C
MY/&:HV/@AM-NYX[36[N+1YYC,^F!$*[B<E0Y&X(3U4?GS0!AOK!L/B'XCTZ&
M?[+>:H]G!;7#KF.)O)8Y)(()]%/WCQQR1Z#;1206ZQRW$EPX',D@4%OP4 ?I
M7-7W@>'49];DNKS>-86+</*QY#1C",ASD$=>>_MQ70:;;7-G8Q6]U>->21@+
MY[H%9QZMCC/OQ0!S%OJFK>(--UK4=.U$V;6-S-!:0B)&1_*[R;@3\QST(P,=
MZR]7OY?$NE^"M76YGM/MFHPDPQA"L;^7)EAN4DG((&>,=LUT8\)M;7&I_P!G
M:B]I:ZJ[27,'E!MLC##/&V?E)[Y##/:G7_A2*YAT>VL[G[%;Z/,DUO&L>[)1
M2H!)/3!/OSUH V7@D>R-N+J99"FW[0H7?G'WON[<]^F/:O+(Q<R?!*QN9;R6
MXDGN;=\3;2%;[2,\@ G)Y.2:]9&=HW$$]R!BN17P"$\,1^'DUFX^R0SK)%NB
M0E%5]ZKVSSU)ZX'2@!!K&IZ+XMOK'4+\W]HND-J*CR4C,11]K*NWJI'KD\=:
M;8WOBF]&BZG;+-+!=E'O89O(6%8G7.Z,J=^5R, DY'6M:3PX9_$HUN>[#DV)
MLI+?R?D>,G<>^<Y_3CWJEHG@R;17CMEU^]N-)MW#V]A(J8C(.5!DQN*@\@9
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
MB W$1B+*'&W .#@[0.@QBNM\+PR0>&M/$EU+<%K:-@90@*C8ORC:HX'OD^]
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
M=9T0RB8W+&*&1X1;-$LA4HV?GSM!YZ[NF!0!WE%)VI: "BBB@ HHHH ****
M"BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH *
M*** "BBB@ HHHH **** "BBB@ K/U[1K?Q#HEUI-TSI#=)M9HSAEY!!'X@5H
M4R66.")Y975(XU+,S' 4#J30!AOX8>75M*U.?5[J:XTQ9%4NB8D\P .6  [
M8QC&*KOX'L[FTUFTO;N>XAUB;SY1A5,4@QAD('&-J]<]*Z>B@#%T/P_/I3>;
M>ZS>ZK*J>7$]SM'EKQG 4#).!ECD\?6D\1^&8?$!M)UNY[&^L)#):W=N1OC)
M&&&",$$=1[5MT4 <_<^$+:_T8V-]>W5S<&9;@7S,HF29?NNN!M7'8 8Z^I-6
M;?0V6_\ [2NKUKF_6 P13&-56)2<DA1W) R?88Q6O10!RB>!(H_#%IH"ZK="
MWL[A9XY-B;\J^\ \8QNYZ5;O_"O]IP7UG>:C++8W[J\UNT:\8"Y"-_"#MR>O
M4XQ7056N;P0V-Q<P1/=M K'R8,%W8#[HYZ]J ,JY\+B7Q!)J]MJ=U9FYA6&Z
MAA"XF5<[>2"5/)&00<>G6J5MX$BM-)T;3H]6NS'H]P+B LB$EQG@\?=^9N.O
M/6NHAD,L*2&-HRZABC_>7(Z''>GT 8T'A]K?Q!?ZS'?R>=>Q)$T912J!,[<=
M\C)ZFLR#P'%;Z1I6F)JMR8=)NQ=P$HFXN"Q ;CD?,WYUUE% &-%X?:'Q%=ZV
ME_)YUU L#1E%V*JY*X[YR3WK+M_ ,5I8:7;VVL7D4NE3R2VUP%C+ 29WJ05V
MD'<>W%;NJ:U9Z28(YB\EQ=,4M[:%=TDI')P/0#DDX [FH&\0+!=6MO>:9?6C
M7<OE1-(J,I;!."R,P'3OC/;- &<? EF^FZSI\NH7LD&L2F:0,RYCD(7+ XZD
MHIYXXP *M7/AE[NZTFZGU:YDGTMVD5V1/WK,"I+  #&#C Q6]10!SY\*K!?:
MA/IVHSV46J'==0HJL"Y&"Z$CY6(ZGD>U*_A.V6^T6XM+B2TCT5&CMH(U4J59
M0I#9Y/ _K6_3'ECCV[W5=[;5R<9/H* ,O1] _LG4=2O!>RSG49A-(CJH"L %
M^7 SC  YS2:CX>2\UFVUJUNGL]0MXS#YJJ&66(G.QU/49Y&""#6Q10!A2^%;
M>30]1TQ;J5&U0NUY<X4R2%QM;M@<8 XX _&M+3+)M.TV"R,[3BWC6-790"5
MP,XXSQ5?7]=M_#NFG4+JWNIH5<*_V:$R%!SEF Z* .36D"",CH: ,,^&%36]
M1U2VU&Y@;4HU6:)0A3<J;%?D9R%[9QGFJ8\#QKH&E:,FJ7"PZ5<I<02;$WED
M.5#<8(!/I74T4 <Q<^"]VN3ZII^M7^F->;?MD5L5V3$#&X;@=K8[BNC@ACMK
M>."%=L<2A$7T & *DHH Y67P) ^B:EHZZI>+9ZA*\ACPA\D.VY@IV]SW.<#I
M5W4_#)U--,D.J7,%[IDA>&ZB5-QRNU@5(*\@^E;M96LZ]#HDVGQSVT\@U"[2
MUC>,+M1VZ;LG..#T!Z4 9%QX!MY]/UBQ.K7WDZQ*)9]VPD-A=Q'R]3M'L.@
MK1F\.O/KFG:O+J4S3:?$\:J(U"R!\;MW'4[1TQ6W10!S]KX55&TS[=?RWRZ5
MDVID15?)79EF'7 /MZG)JA!\/88-/L;!=<U'R--NUN;-?W?[G&?E^[\WWCRV
M<=JZ^B@#F'\$I'K-U?6&LW]A!?L'O+6!EV3-C!8$@E">Y4Y]Q5Z7PW"?$4&M
M6]W/;21VHM7AB"[)(U;<H.1D8)[$<<5LT4 <U'X)L6TO6--O;B6[M]7N6N9@
MP52DC8Y4@<8*J1G/2K=MX?<7=I=ZAJ$M_/8(RVS2(J[2PP7;'WFQQG@<GCFM
MJF>;'YOE;U\PKNVYYQZT <PW@6)_#VIZ(^J7)M]3N'GE;8FY69MS!>,8)QUS
M5Y=/U-/$EK<KJ=S):QVICN(751$YYPP 'WR<=. ![BM+4;Q["QDN8[.>\9,8
M@MP"[9('&2!QG/7M5J@#(\0>'TUU+-A>3V=Q8W N()X0I*L 1R&!!!!-9DW@
M2&6+68SJU\5UI56YW;#R%"EA\O4@?0=@*ZJJME>/=_:-]G/;>3.T2^< /- Q
M\ZX)^4YXSSQTH RI/"YEU#1KU]2F,FCJZQ8C3$@9=K;N/[H[8K/E^'T)T_4=
M*MM8O+;2M09G:S54*QLQRVUB,A<\XKKZ* (;6 VMK% 9I)O+4+YDF-S8[G
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
M%/::?#+<?8YPFZ9RP8JQ!.U=G _VN<U<O/!-O-K3ZK9:KJ6F37"*ET+68 7
M48!;<#\V.,CG^=.U3P59WUW9WME>WFE7EG#]G2>SD +1?W&# AAWY[T 6=%L
M]2N?#L5GXF:&XO%)6<PM\LH!XW 8ZC&1T/T-9/BW6KG1M51[[[?!HKVV/MMD
MN[[-/N.6D !.W&W'!&<Y![=/86,6G6:6T3R.%R2\K;G=B<EF/<DG-4[_ $1[
MR]FN4U*Y@6XMA;2PJJ,A4%CN 93AOG(STZ<&@"WIL@ETNTD%RMT'A0^>AR)?
ME'S#Z]:XVPO?$NOZ+8:_I<XCDFE\UHY9U$!AW$&,KM)! 'WNN0>>U=GI]C;Z
M9IUO86B;(+:-8HUSG"@8'-8%GX$L["^E>UU+48M/EE,SZ8LH^SEB<GC&0I/5
M<X/?CB@"C&=7U+Q+XJTTZ]=P0626[6YB2,-&7C9L9V],^V3@<^N=;:QK;^&_
M"WB.35YFFO;NVM[BV"((721MC'&,[N^<]>@ XKK8/#45OJNJZE'J%X)M55%F
M'[LJFQ2J[1LXP">N:I_\(-9C0-.T5=3U!;?39TG@<&+?N0Y4$[,$ ^U &:D>
MN:UXH\2Z5'XCN[."R-N;<Q11[E+QEL9V_=SU'4\<\<Y;:Q>ZYX4\(7FH[3>#
MQ!#%,RC =D:1-P^NW-:6D02W7Q \5&#4;BU$HM55T12)=L6&*[E()4\9' SR
M.E;=SX.T^;3]*L(9[FT@TJX2X@6%DRSKG!8LISR23ZDT 4[2[NO$NM:]:K?W
M%C'ILJVT @(#!]FXR-D'=R< 'C Z<UA_\)%K=UX-TWQ/)=2Q?8+LQ:K# HVS
MQ+(4=UXR",!N,=ZZR3PU&NLW&K6%_<V-Q>1JEUY01EFVC"L0RG# <9'X@U6O
MY=-\-Z3;^'[?2[J[2YADB@@BA:19#CD._1=Q;))]S0!7U2\O;BS\0ZGIVJ30
MP6=F5MC&$9#*J%V<9!R.57ZAJRVNM<@B\(WJZ[<,VK>7!<1O&AC :$MN48SN
M!&<DGD],<5TEGX8M[7P9'X:6:2*'[*;>26' 8[A\Y&X$9))/3O4<GA"WDMM&
M@.I7X71F5K<@Q98JNT;ODY^4D<8H P9/$&H^&V\7PRWLNH)I4$$]J]T%+*TJ
MMD,5 RH8 _3-:L%GXCCUJTE2]?\ L^6)TN_/G1VW8^22(!< YSD?=QVJXWA*
MQEU+5;RXN+FX75X5@N;>0IY9100H&%## )[]ZBT3P@FBE%_MG4[R.!2MK'<R
MJRVX(QE?EY(!(&<X% ')V^J:^O@33_$LFNW$EQ%?^4\)CC$<R&Z,1##;G./0
M@# P.YV[&VD;XKZJQO;DJEA;N$+C;RS_ "XQPO':K8\!V8\,KX>_M34?LBS^
M>&W1;PWF>9C/EXQOYZ?I6A_PCD(\0KK:WMVLYMU@F164).%)*EAMSG)/0@?A
MQ0!1^(5[?:9X.N[_ $Z\DM9X&CPR*IW!I%4@Y![,>F#5/Q9K5SH^K$W[7]KH
MTEL%CO[)=PMI\MEI1@G&-F,@CKP<\;WB+0H/$FCRZ5=7%Q!!,5+M;E0QVL&
MRRGN!45WX?>ZFN'_ +5NT6ZMQ;SQ[8RK ;OF *\-\QY''3CB@#1LG$VGV\BS
MK,'B4B9#D/D?>!]^M<!<:SK<?@;Q;=C5Y_M>FZE/%!/LCW!$V +C;CN>@!S7
MH%E9P:?806-JOEP6\2Q1+G.U5&!^@K ?P-9R:/JVE-J6H&#5[AKBX;=%N#-C
M<%.S@' ]: *QEU33O&NDVLNK3W5OJ]K<&6)U55B>,(08\#(^\1R3[DFJMAJ6
MIV_]OZ!=ZC/+JD5RJV,S;03%+_JF   .T[MW'\)K?E\-1S:MI>IR:G>M/IB.
MD0_=;7#@!MPV<Y"CICIQ5B;0;&?Q';:\Z'[9;0/ A[%6.<GW'S ?[QH QX+N
MXU3Q9J&@?;KF&#2K2$ET8+)/))D[RV.@ ' XR3G/ KF]9U:^U/X::[;:BXFN
M=+U:.R:<*%\X)<1$.0. 2&&<=Q7;7GAV*?6TUJTNYK&^$/D2/$%*S1YR RL"
M#@]#U_#BJ][X-T^]\/2:(;FZAAFG^T3RQLGF32;PY9B5(R6 / '3'3B@"'[9
M>#XDOI?VN7[')HYN/*XPLGFA=P.,CBN<EUO7!X,6[CU:9;F/73:&1D0[X_M&
MP!N/3TP:ZW4/#*WNKVNJQ:G>6EW;PFW>2'9F:(D$JP*D#D9R ,51'@"Q&D-I
M:ZGJ*P&]^V@AXRRR;]X +(>,^N3[T 16C:C!XYO= FUB[N;:YTL7:O)L#POY
MA0["JC (]N*R?"DES;?#+1K@:S);FYEC$AD'F.RF1MR1  G>WXGJ:ZY?#T:^
M)5U\W]VUR+7[*8SY?ELF[=R F<YYR#^E9:?#^QBT:VTR'4]1C2RN5N;*02(6
MMB"V ORX(^=OO DYZ\"@#(DUK5XM,\:PQWEW;OI"+-:-,(WEC#0[]I/S C/K
MS@]:=KKZYI7P_NM=C\17;7,L%M(%,<>V,DJ&"_+G!#>N<CK6S)X&LY#J^[5-
M2/\ ;,*Q79,B'=A=FX93@D<>@[ 5:U#PK;ZGX5'AVYO[TVP1$,RF,2LJD$ G
M9CL.@[4 4-5&?B=H(R1FPN^1]8ZHV^K:EIDOB'0[Z_GN=11E?3)'V@R1RX2/
M&!_#(<,<>]='-X=CGUZQUF2_NS<6431(H\O8X;&[<-F<G Z$5EV8LO%7B:SU
MN/3[F)-*CEC6:Y@:)GD<@8 /4* QSZL,<YH Z2"WDBL4MWN999%CVF=L;V./
MO=,9[],5YYH-_<Z)X(>YBO)Y)[K5WM%:9PPC+W)4ODCKC)R<C->E5S:^!M+.
ME:CI4T]W/8WTKR^0\@Q S-O)0@ _>Y&<X_/(!4E@\2V4^HRB^>+3FL&>/S94
MEFBN%R<KE<%2.H.>>F*PKNY\06_PM;Q./$EY]KDTV&3RQ''L5B1DC*YR0>3G
MKSQP!U=CX2^RV4\%QK>IWTDL+0)/<2*SQ(>H7Y<9.!DD$\4DO@VTF\&CPM)J
M%\;(1K$),Q^;L&,+G9C' [9]Z ,Z_.KV?C/2;!-=N3!K%O<><ICCQ"8PC Q_
M+\OWB.=WOD\U3CU35X/"OC"(:M.]QHLTPMKIU0R%5B#@-\N#R2,XS737'AR.
MYUG3=5EU"\,^FHZ1#]V%8. &W#9W '3%5O\ A#+8VNM6QU._*:VS-<\Q9!9=
MIV_)Q\H YS0!DW=]J\FJ>#;>'5IH(]3MY/M("(VXK!NW#(ZY)ZY&<<<4RSU/
M5+?3?$]A)KNQ],O%C@O[Q S(CJC8( PS?,0..21QVK=;PG USHMQ_:5\'T5&
M2W_U7S@KM._Y.?EXXQ^=5KKP)8WD>JK+J%^3JDT<\A#1@Q2)C:R808QM'7-
M&?;7]]-K^MZ.;F_BM/[,2Y@,Y EC8EE)4\D X'!Y'H*H>']0NM.\%>%+2WN)
MFDU<K&7=U'EJ(V<A21P25 YSU/>NGM?"<%OK)U:74;ZZN9+46TWFNNV50202
M%48/S'@8'?&>:JGP!IK>&H]"DO;^2*VD62TF,JB6U*YV["% &,GD@GGZ8 ,[
M4]3\1>%=.U6XN9HY+>62&/3?/D$DD+.P1MY &Y03N&>>QJ34;"2S^(OA4M?W
M-RKQ7@(G(.&$:Y88 QGTZ<< 5J?\(;9W.BW>FZK>7FJ?;$"2SW,@W@*<KMP
M%P>>G7KFFP>#RNH:9?W>NZE>3Z8'$#2F,95@%(;"#/ Z]?>@#I*Y3Q)=W:W]
M[%!J,P,6GF2&ULP!)&^6_>R,>-O  !/.&X-:?A[3[W3UOA=7UW=137+20?:W
M#.BD#CCHN<X'8>F<"&\\)6UWK5SJ:WU[;F]@6"[AA=0DZKD+G()! )Y4C^>0
M#G;[4)]5T;P!J%T0T]S?V\DA P"QA<DX^M:NF_\ )4=;_P"P=:_^A25+'X(M
M(]/T>R&IZALT>59;=MT9)91M7=E,8 .,#'Y\UH6^@0V_B2ZUU;RY:>ZB6)XF
M*>6%7.W'RY[GOWH H>,[V\T_^Q);.ZD@,VKVUO*JX(DC=\,IR/Y52OK_ %*/
MQ5KMA#J4T<46CK=0C:C>5)N<9&5/'RC@YK?U_0H/$&G+:3336[1S)/#/"0'B
MD0Y5AD$?F*SE\&1?;[J_DU?49+F[L_LDTA:/YER3NQLP#SV 'M0!@6FH:U;Z
M?X,UB76;BX.J206]S;NB")A)$S;N!G<"N<Y[]AQ6BFJW>B>*M8L-2O;BY@EL
MQ=Z<I*@X!VO&I &6W%<=3@BKQ\%VQTS2-/&J:@(M'E26V8&+=E 57=^[P0 2
M.E:.I:#8ZKJ&FWUTA:;39C+"1W)&,'VSM;ZJ* ,-[K4XM6L/#;W4T\PT]KJY
MF658WE;<%P&QPH))XY^[SUS6N+GQ7I&AQ-J,<VH)!?.+@V#!KEK3:=A. /F!
M(W;>2![FMSQ#X5MM?GM+L7=U87]D3Y%W:.%=0>JG(((/H?\ &E3PWY,=L8-4
MODN()&D>X9E=KAF&T^9D8(P!P,8P,8Q0!R&LW<6L>'M NK+7;J[@E\06Z"0'
M8P!ER%<8^\F!C([ \UN3W6HZEKFI:):7%PJZ;;P@21S*DC.ZL=[$CGH..G7.
M>,7+CP7I\^EO9_:+F*5[\:@;J,J)!<!MV\#;M[ 8QT]^:;J7@N"]U*#4[;5=
M1T^_CA$$EQ;2*&G0<X<$$$Y[X_D, %"WU/7'O]"\.:K<QQ7T]O-/?3VI'[P1
MG:JJ<<%LY; &,$#%+X.@>V\7^+H7N)+@K<V^)),;B/)! ..N!@9[XYK2U#P=
M9WB:>]O=W5E>::S-;WD3AI/F^_NW AMW4Y')J;1_#<>CZIJ&HC4+NZFU$H9O
M/*8)50H("J,'CZ>U &-X\,JZWX3,"(\G]J?*KL5!/EMU(!Q^50>$U;6?&NJ:
MWJQ%OK%A']@.GH/E@BW;E?=U?=U!P._%=!K7AJ'7+_3[R:_O+=].F\Z%8#&%
MWXQD[D)/'OWI;[PS;7FMVVM1W=U9WUO&8FEMR@\Z,\[7#*01GD<#% & ]WX@
M\16^JSZ-<-;W-I?2VUM^]41*8FVD.I4EMV"3GL1C%1>(->O].O94UB:ZTVTN
M+:,6FHVGSV\$Q'S"3@GEB,$C&.F#DUKS>![8ZS<ZC::KJ5@MZP:\MK:8+'.W
M0L>,J3W*D'Z5:O?"\=XE];_;[F.ROXQ'-:J$V!0@3Y,KE<J #S],'F@#'6V>
M;XKSE-0N@AT:.90C@J,S,, $$8^4&F^$HM:UB&>\N_$=Y_HU]=VXC2.+:ZAB
MJEOEZC@C&!QTZYW)/#%J=<M]7M[JZM98+46ACA9=CQJVY0003P3V(ST.1Q3M
M$\.QZ#:75M;:A>2K<S/.6F\LF-W)+%<(!R3GG- '+Z'XEU*[\+>%8KB];[7K
M5Q)'/=D+N"KYC$ 8P"=H4<<9^E/\:Z?J5GX)\2K/K,TUL8Q):IG$L:XPZ.W5
ME)_''!)K4_X0#3/^$6M= ^UWICLI?.M+GS%$\#Y)!5E4#N>H[U;_ .$3MI]#
MO=,U"^O+\W\?ESW,SCS"O. N   ,D@8ZDYS0!1NKR\CUJP\.V\]Q('LI+J60
MRJDCX95"AL< ;B3CG@<XSFD=2\1:6FG:)J5VGVG4=3>&&[4JTBVP4N-WRA?,
MP-N<8YSUK4U'P5;ZC;6&_5=0CU#3R?(U&.11-R,$'"[2" .,?S.7WG@NQO\
M2(K*>\O6N8;@727_ )H\]9@,!\XQT &,8P.E &;I=JUI\5M1C-S-.ITB%D\Y
MMQ0>:WRYZD9R>>>:T_%N@'7[>U2UU%M.U.TE-Q97"C.U@,$$=U(//^09-/\
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
M2Q9@+E2QW9&1ZDC/6I[6XU2SU;PC</J]W<KJ\+1W4$I7RSB#>"H X((ZY)-
M'5Z[JR:%HMUJDEO+<1VL9D=(MN[ &2>2*M6EP+NS@N54J)HU< ]LC->>ZE=3
M>)_ASXBUF6\N(B!=)##&^U(XX\KM9>C%@"23D_-QC KN]&_Y =A_U[1_^@B@
M"AJ/B3[+<7D%EIMSJ4M@L;74=OC>@?) 4$_,V!G'ICZ5MJ=R@X(R,\C!KA=%
MTX#Q?XPQ>7@,3V^")R"2;<')]<=JKV^LZG+X*\':DU_/]JN]0MHKA]W^M1W(
M8,.G.!0!UD'B!)_$-]HJV4ZS64"3EB4Q*&) V\^W?%/\.Z[%XCTA=1AMY;=&
MEDC\N7&X%'*G."1V]:R+#_DJ>L?]@RV_]#>L'2;;5)OA=-/HUU-!?6MW=31K
M$V/."SN60_4 @>^* /2:*YS2=4C\1ZE9WVGW,WV"&R61U#G#O)]U6]U"L2/]
MI:=XGU.ZM;S2--M2$;4KEHW<R>6=JQLVT-@X)( SC/7&#@@ Z&BN3MM'\0M%
MJ]E=:N;:&3;)ITD=RTLUL=IW!V91N7/3.>,\]#5?P)JMUK:2W%_=R"YTZ-+:
M6U60E7;&?/.>H<'*]L#//8 [2BN!TZ?Q+X@T33O$.G7<,$DLHGD\V\;R3#N.
MZ(Q[,# XSG.1UJ?34U/4/%.OQ3Z]J"V^E7D#Q11;!O4QARC?+RISC Q[DT =
MO56"ZFEU"ZMGLI8HH A2X8KMFW YVX.>,8.?6N7T,ZCXB\/Z5XCBUJ2UGFE%
MQ.I.Z P[B&AV9 &!QNZY&<TZVN]9?Q#XQL[>^::6VMH&L%GVA(7>.0@< #&X
M#KV'- '84UV*HS!2Y R%&,GVYXKA]$UY;F2]ADO+W2-3M=/=KBSU1BZQL,?O
MU).&0'K@XQC@=S2]2O8?%>A6JW5[-:ZA82M-)<GY;AT"$2HI.4SN/&%&#TH
MZ;P]KD?B'2_M\5O+;KYTD7ERXW HQ4YP2.H]:;)KT<?BF'0&M9A)-;/<+.2N
MPJI ('.<Y/<"N!L[75+?P#J.N:?KEU:3:==7D\4"A?)<+*Y8.",MG![\<<=<
M]!'<M>_$/0;MD\MI]#ED*?W26C./UH [2BN M;CQ+XCT./7-*NH;>X-R[H9;
MQA"(UD*F-XPA'W1R>N><CI7?T 8_B#Q)!X=%HUS9W4ZWEPEM$8 A_>-G:#N8
M8SCKTJ2'69'U"&SN-(O[0SABDLOE,A(&2"4=L''3/H:Y_P")HD.GZ$(F59#K
MMIM9ER <MC(R,C\16K/=:SH]GK.IZE);W4-K9^=;I;Q&,$HKLP(+,<GY><^E
M &_17G^H:EJ6E^"-,\71:C//<L+>:[A9\Q3I*5!14Z+C>,$8/'.>:N+!J>J>
M.-;TTZ_?VUK;16LT2P[ 5+%R5!V_=XY[GCGB@#M**** "BBB@ HHHH ****
M"BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH *
MCG@BNK>2WGC62*5"CHPR&4C!!_"I** .?M?"8LK)=.M];U1-/0;$M@\?RI_<
M$FS>!CC[V1ZU8U7PU::I;Z?;^?/:1:;,DUNEML 5D&$^\IX [=*V** ,=/#D
M4>N7>L1ZA>+<W<*PN 8]H5<[<#9U&3^=5$\$:='X:M=!6ZO1!93+/;3!U$L3
MJVY2#MP<$GJ#UKHZ* ,2Y\,17*W43:E?B"]A$-Q#O1ED&W:3EE)!(X)!'Z#&
MIL%E8>7:V^X018BA4XSM'"@GITQ4]% 'F&DVLOV!(K+5O%MEJA!<V+VS&&.5
MB6(W21E=FXGDOR.]=M9^'UM]=DUR2]N&O)X$AFC!3RB%S@ ;<C!)/7/-;-%
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
M;'W<$ !<'D8 P>>I-;M% &1:^'XX+F"ZN;Z[O[BUC:.WEN2A,0; 8C:H!8@
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
MVLNGDFVNK:<I-&3][Y^2<]\YS6GIFFP:5:"W@:63)+/+/(9))&/5F8\D\#\
M .!0!A>+;O4-.N;*YBLKN\TF*.07<.GRE)HR=NQP%(+* && >^>U:OAJZMKW
MP[97-I?/?P/'\ES)G>XR1\V>_8^XJ2\TD75_%>QWMU:S11M&#"RX9203E64@
M\@<]JETS3;72-/BL+-"D,0.T$Y)))))/J223]: ..C;7?%.GZA=Z9>K:7D%_
M+#!(;V15@$<FT*\04JV5&3NR?F[< 31)?:GXZU'3I]9O%M6TR"<);3;%5F9@
M=C 9 XSGJ?7'%:4_@729=8N-2CFOK;[6VZ[MK>Y:.&Y/JZCKGOR,\YZFKR>'
MH(M=N-9CNKE+FXA$# %-@09V@ KV))_GF@#@TOM7'PXL_$CZU?/?6EVL0'F8
MCD07/E$.H^_E>I/.:W)[:_U;Q[JVDMKFHVUFMC#,J6T@1D9F8?*0.!Q]3ZXX
M.C_P@VG?\(Y_PC_VN]^P^;YNWS%W;M^_[VW/WN?_ *U9MO8W4WQ*U"02ZI;)
M_9\,"W:V^$E92Q8;F0H3R#D8]J ,:6_U"\\!?9]3G-S<:=X@BLC<,.9A'<*
MQ]^WX5TL5U)KWC/6](GN+F"WTN&W$:6\S1%VD4L7+*03C  &<=>*O7?A'3;K
M1K?20]Q!;03"<>4XW/(&W;F)!).[D^IJ:Z\.6\^J)JL-U<VE^L/DO<0% 94Z
MX=64J>><XR* ..^VZ]?>#;V[6\N9+[P[J<L+M%(4^WPPN-P8+W*YY'.5]ZZ!
M;S^WY+S4M.U"XCLX;$+$\,F TCKYA;:<C*J4[=6/<"K=S/!X4T^VL['1K^^6
M9V4+:Q^8=YRQ:1B>-Q)RQ[FGZ)X>ATKPM%HT>+<&-A*8,<,Y)?;D'C).,]L4
M <7#<:LGA/PAK*ZY?_:[V[MK:;=+N1DE)5LH>">X)R<^W%:<VH7OAG7_ !!#
M'>75];V^BC48X[J4R%9 9 0#V4[1P./2MG_A"[#^Q].TH7EZ+;3)DGML.FY6
M0Y3)V\X/_P!?-6_^$<M6UV76))[B6::V^RR1N5,;Q<G:5V^I)_\ K<4 8EA9
MZ[-)H^K6^IHEO*BF\,E\\JW*NHP50IM1LD$;<#M7.7-SJZ>!M=UH:]J/VK2M
M3G%O^]PI5)0H#C'S CMT] .<]EH_@C3-#G#VESJ#0QDM;VLUTSPVY.>40\9Y
M.,YQFD/@?3VT6_T=KR]:TU"9IIU+IDLQW-@[>,G!_#C'- %![..7XN)(9+@$
MZ+YN%N' R)E&, XQZCH>XK3\=S7-MX)U6YL[N:UG@MVD22$@,"!TSC^7-6)/
M#5G+JMGJCW%T;NTA\CS!+M\Y,AMK@  C(![>]6M9TF#7-*GTRYDE2"X79)Y1
M 8KW&2#0!S&NZCJ-@NG7LUM?WND"R_THV$S+-#(<$2L%(++@'OQR:Z70;B&Z
MT"PFM[UKZ)K=-MRV=TV% W'/<]_>H/\ A'U26&:'4[Z&2*W%N61D^= 21N!4
MC(SUQG]:NZ=I]KI.G0:?91>5;VZ!(TSG 'OW- '*:2;SQ5X>.MIK4^G7@O)&
M!#DQ01QRE?+:/(4Y1>2><G/3 J>PFE\4:QXAMYKV[M5T^X%K;I;3M$8_D!,A
MVD;B2?XLC ''7-M/ VDQ:M/?0S7L,=S+YT]E'<E;:63NS(.N>XS@]Q5N?PW;
M/JT^J6MU=6-S=1B.Y:V90)P.%W!E/(' 88/O0!Q=KKFM:QIOA&XFU*XMIKJ_
MEM+DP;568()!OQCJ=@]L]JT+5]:@N/%^BZ=J$]S-:"![%KR;<ZM*F2N\^XXS
MTS707'A+3I5TN.%Y[2/26WVL<#* K8QDY!SP3U]339/"-G+>:E=&\O1)J?E^
M>5D5<&,C85PN5(QV_&@#%TC5X]0M]<BBGU73-0ALU\RQO)&>2V90Y\R-GW J
MV0,C^Z.F:@TW7+VZT[P1I4UW,&UBW:6ZN-Y$D@CB#;0W4%B1DCG /K74?\([
M;L]U--=7,UU=6XMGN7*!UB!)VKA0HY8G.,\^PQ4E\$Z7+HMAI9FNU&FL&L[E
M)0LT!' VL!Z<<@T <O-=R^%]9\=WMK++*]O9V;Q&=S(4)#@9)R2 3GG-=!;Z
M7K46M65U#J2Q6$L3QW,;W[W#3$KE'CWIA6!!)QP1VXJY;>#M,AN[^YGDNKR3
M485@NA<S%ED4 CE1@="?IGC%,T7P98Z$1]FOM1E6-2MLEQ<F5+4$8_=J1@<<
M9(/''<T <GI=_J=G\.6\6SZU?W%W!'<QK'+(#%S.R!F7')7KGTXZ5O/;ZSI%
M_'JZWB'3H[64W5M)?R7!N&"%D:/<H"MP<XP".W%:VE^%M/TO0I=$!FN;"7>&
MBN&#<.26&0 <$DG\:@T/P;I^A,/*N;^ZCC4I!%=W)EC@4\$(IX'''<XX[F@#
MD-:675/AUI6NW-]<275W<VDTJB9O*^>5?D"9V@+D $#/R\DY.?1=3B6?3+J)
MF=0T3 F-RC#CL001^%<]_P *[TC[ VG+=ZDFG^<)H[1;DB.%@V[Y>,@9[$GV
MP>:Z@1J(A$<LNW;\Q))'N3UH \UT2^ETSP+X0M+:>>(ZS/%!-,96)1,,2$R2
M%+8QQZGOBNAAN+O2/B##H\=S/<:??V+SB.>5I6@D1@"0S$G:01P3UZ8JU%X'
MT>/01HI^U/;1R+) 7G8O;LIRIC;^':2<?KFM&QT:&SO&OI9YKR\:(0_:+C;N
M" YV@*  ,\G Y[]!0!A>/8WFF\-1QS-"SZU&!(@!9?W4G(SD9^HK'O\ 5-4\
M&:MKEI%J%UJ5LFC-J-O]L?S&@E#[,;NI4YSCV-=KK&B6NMPP)<-+&]M.MQ!+
M"^UXY " P['@G@@CFFP:#9(+MKC?>RWL?E7,MQ@M(@! 3   7D\  <D]30!D
M6>GZU%J^FZA#J,?V%T*W:2WTDXN=PRC(&4!&SS\N 0<8IWQ'N;NR\$7UY8WL
M]I/#Y95X6"DY=5(SUZ$],58T/P9IV@3(]M=:A/'#G[/!<W3216^1CY%/3@D9
M.3@GU-7M>T.V\1:3)IEY),EO*5,@A8*6P00,D'N!TH P=46]N?B-:Z:NJWL%
MG<:7+(\,,@4 AT&0<9!YZ]?0BLRW76]0\!ZQ%::I>/J&D:A<Q6LWFGS)EB?A
M7(^\2N1GZ5UC^'89-<@UEKZ[-W! ;=3E-I0D$@C;W(!I^B:#;Z$MTMM<7$HN
M[AKB03,I_>,<L1@#J>W2@#(@UR+5+8:_8O.]G9::9S$LK8DD9=P1AGEE5><_
MWQZ5BWVHZC:?#BS\9P:C<2:@J0W4T9E8PS!V :+R\[0 &P"!G@<YS7:Z1HEA
MH=B]E80B.!Y9)2IYR78D_AS@>P%4+7P=IMI MG'+<MIT<PFCT]W!A1@VX8XW
M8#<[2V,]J * 42_%F=6W*&\/Q@X8J1^_?N.16)%JNI/\+M)U-M0N3>?;TC:;
MS3N=3=%"&]?EXYKM5T&W7Q(VO"XN/M30"W*[EV>6#N"XQZDG.<UE-\/='>SD
MLC<:A]D:X%Q';BY(2!M^\[!CC)^I&3@C)H J&WO=4\>:UI<FLZA#:+902(D$
MH0HS%Q\I XZ#W/<XXK!$T^N>$_ U]J%S<27,FK)#)(LS)O $HR<$?-\@YZ]?
M4UW47AR"#6KC5HKV\2YN(5A?YU8;5SMZJ>1DG)Y]<U4C\#Z7%H5IHZSWGD65
MR+FU<2@20N"3PP'^TW7/6@#(\47$\,7B VFI7LTNGZ>)(8[>5HUL2J,VZ1MW
M[QFP#@@G Z '-,NY]2U37O"]O_:]Y:Q:IIDTEPMNX3Y@B'*\<'+'DYQVQ6W<
M>"-*N;J]G:6]1=0@$-U"ERP28!=@9AU)V\=>>^:?#X/LK>[TNYCO+[S-*B,5
MONE#?*0 P;(YR ![8XQ0!0L#>6/Q&CTIM4O+JU30Q(%N'!RXE";S@#+$#DGU
M-9>DZ??:EX7\50Z7>36E^-;OGMY8G*G>'R ?8].?7-=<V@0'Q'_;PN;@77V?
M[-M#+L\O.[&,?WN<]?PXJBEK;^"M/NKBV@U34EN[LS2101K-)YDA^9P !QGK
MZ4 5=#UA?%$NDW%I+/%%;VOG7<8E88D)V+&_/.&60G//RCL:C^)T"S>$U9GE
M4I>VV-DC*#F51S@\]>_0\]:U_#.E+IMG<SFT6UN-1N9+N>(8RK,> <=PH&<<
M9SBK6M:/::]I<NG7H?R9"IS&VUE96#*0>Q! H P+J:YNO%,OAV!Y/(M;!)PI
MOY89)"[L"V]068+M ZX^;G/&,R\C\162^&;"^U]VN9-0:VN)+5Q^\38[+NRH
MRX '7CH<&N@U3P7IVJ/9SM<W]M>V:E([VWN2DY4\D,W<$Y_/C%27'A&QG33E
M6YO(?[.E,T+)*"QD.<NQ8$L3DYSZF@#%GL;VP\7Z)HR:_JDMK-97)D,LP+L5
M92"6 '/S8SU '&#S68$U)_"_BQFU[4]VA7-R+-Q.0^$C610[=7&3C![5VUSH
M,%UKUKK3W%PMQ:(T<2JR[-K8W C'.<#OVXQ51/"%FEEJMG]MO#%J[N]WEDRQ
M<;6Q\O&0 .* ,JYU*_EUWP3-]MF2/4(Y#<P(0(Y#]G+@D 9//OCI6;,FI7=K
MXS9M>U)#I<SO:F.8)M(A5P#@<KG^'@=>_3J?^$4M/-TB4WEX6T=2MJ=R< KM
M.[Y>?EX^GOS2+X1M%35D%[>[=8S]J&].<C:<?+Q\O''\^: ,Q;Z;5/[$\Z^N
M));K2Q/)86;&)W9@G[UI PVJ,D8SR3QDBN>,MQK7@_P7>:C=7$MRVLI"\BS,
MA8!Y%R=I&6P@^;KU]378)X*TZ.>PG2ZOTEL;;[(DD=QL:2$'(C<J!D#U&#[T
MU/ ND1:+%I,;WB0V]T+J!Q<'?#(&+#:>PRQXQWH HS/?:SKNLZ-;321KID4,
M4)%_)"ZEX]WF$JI+\D#YCCY>G)J.RO=4N?$.F>&-6OU>6'3'NKN:SD9/M,@D
M\L#<,$8P20,<^U:FI>"=-U'4(-12YU"QO(HA"T]G=-&\L8Z*YYW?7K[U+?\
MA#3+QK"6)[FQN-.!6WN+67;(JGJI)SN![YSW]30!E^ 8/LM[XH@\V24)J[ /
M*VYB/+3&3W^IJSJ]S=V_Q#\.P1WLXMKN&[\VW# (2BKM.!U^\>N>U:6B^'++
M0I[R>UENI)+V7S9C/,7RV ,XZ=A3KS0;>]URQUB2XN%N+ .L*HR[ ' #Y!'.
M0!^7&* ,#P_81+\1?$[B2X)B%F1FX<@YC;J,_,/0'IVIWQ%MDGAT L\R_P#$
M\M$_=RL@P7YZ$<\<'J.U;=CX>@L-<O=7CN[IY[_8)U=E*-L!"\;>, ]OQS4N
MMZ)::]9):W9E01S)/%)"^UXY%.58'U% ',7>G?:OB@+-;RZMXQH #/%*1(P\
M\\;SDCZ@Y]ZI:7K^IMX?T.PENVEFN]3N+*2YEF*.Z1F3:"X!(9MJKD#/7H3D
M=9%X9MH=<_MB.\O!="U%H"TBL/+SG'(.3NYR><U3/@/1WT&31IGNIK9K@W*,
MT@$D,I).]& !!R2?QH FT"PU?3M2OTOKV.6RFVR6D#7+SRP\8<%W )4G!&<X
MK?K,T;0X-%B=4N;R\EDQON+R<RR,!G R>@&3P/4^M:= !1110 4444 %%%%
M!1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %
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
MOVL)@G/S#:<<YK3\6W]YINI7LNHI?_V-+"B1W^G3L&T]\<F2-2,C)!SSQ@4
M=Y17$RW-[XFUS7-/M9L)9I"ENT=_);E-\8<2@(IW9)[G'R].3GI]#2\CT:UB
MU&[BN[N--DT\7W793@GZ\<^^: +]%>=VUY>:W\.K_P 4C4+JVU./[3<1A)V"
M0>4S;8RF=I&U!G(.<D^E/5KWQ%XHTR*;4M0L8-1\/?:IH+:<Q['+1_=]",]>
MO&.A- 'H!(4%F( '))[5B6/B*;68VN='TXW-D&*I<RRB)9L'!,8P21GC)P#V
MJ/QE;W0\ ZM;V32R3BQ=5).7<!>>>Y(S3O!<T%SX$T9[)U"?88T4@9"L% .?
MHP.: +VD:K_:L,[FSGM'@G:%XI\;@0 <\$C!SQ@G(YK0KR_5->UK4/AYXIOY
M;U;6XTZ^DMHI+%6A9MC*NXG<3R#72:I8KI1MHSKFIR27U\KFW\TO)<D(<QQG
M*^6O&X\@ #' - '645Y??7VJ1>!_&2_;[NWETV^86S+<LSQ*5C;9O/)'S'_&
MMTQ7&F>.](A74KZ>+5;*X^TQS7#,NY A#*.B'YC]W% '70W,-R9/)D5_*<QO
MCLPZC]:EKR_2;H^'O NI7MI++&[:S);&22X<K$C7(0MSD @$_-@G/)S6UJ":
MWX:&I:W'<QK:IITK"QDO);G=,@+!U+@$<#D#J.: .VHKCM.L-7>ZT?6(-12.
MU9!]JWW\DZWBN!M(5E"JV3D;<=<=*G^(\UU;>#YKFSO)[6:.> *\+E20TJ*0
M<=1@GB@#JJ*XS4TGT;5]*T:WOKNY35KB>:1KN]922B#$:NH)523NP/0CH<5'
M-I_B?3M,U""VNTO'-U%/;6/VUS*(<DO$)F ;G:=I]B* .OOYKFWL)IK.T^V7
M"(3'!Y@3S#Z;CP/K4R%F12R[6(!*YS@^E>=WNL1W?P_\2W&FWFK6-Y:L9)+>
MYD=9[-PBC8"23M."PP?XCTK8U2\NH]6\.QW,LR:5/#)Y[QNP+2[ 4WE>=N-W
MMGKVH ZZBO,-3&M6/PX\0:A)J6IPNEVWV!Y)W$GV<2!4)S\PR">O)&#6^$N-
M)^(]A;1ZC>SPZC8SO/'<3%TWH4PRKT4\D84 >U '845P/A[4[F'7;#3?$'VZ
MUU0^84G%PTMIJ0VDY7G:IQA@,# X[UWU !1110 4444 %%%% !1110 4444
M%%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 5
M'/!%<P26\\:RQ2J5='&58'@@CTJ2HKFXBM+66YG;9%"C2.WHH&2?RH R++PI
M::=$+:TOM1BLAPMH+DE%'H"?F ]@U6-0\/6&H/9RE7MY[ _Z+/;G8\((P0.V
MTC@@@BH-)UK4=3EM)FT@1Z=>VHN(KE;@,R9P0KI@8)!SP2.H]ZVZ ,6Y\*Z;
M=Z1=Z9-YS17S[[N3S/WDYX^\WX <8P  ..*?+X<M9M0T^^DGN6GTU66W;S!\
MH88;(QSD #FM>LO6->@TB2UMO*DN;V]<I;6L6-\A R3SP% Y)/2@#F_&7AM+
M7PGXA;38KV[O=6 WQ(#(9'R "% XP![# KH--T>UW6E^[W4\D$12W%UD& $8
M( (!S@8RV6QWY--N=8U/3S;F\T=3'/<1P;[6Y\P1%V"@N&53CGMG\.M;5 ',
M)\/]"CMH[9/MBP07(N;>,7<@6W<'/R#/RC)/3GGK5V/PO8Q7.I7$<UTLFJ($
MN3YO# +M&!CC"\<5M44 <M>P'1])B\*Z7I%[>PW%L\,4S[7@@4C;B1B0< '.
M,$D# KH-.L(-+TVVL+5=L%M$L48]@,"L_5=>DTS7M'TW[&)(]3D>/SO,QY95
M"WW<<]/45<UB_?2M(NM02#SQ:Q-*\>_:2J@DX.#S@4 1:GH5GJEU:WCF6"\M
M"?(N8&VN@/4=P0?0@BJUWX3TN]T:YTJ83&"[D\VY828>=L@Y9NO8=,< #IQ6
M;_PGBVVEZ;J^HZ5-;:;J/E[+E95D$6\97>."![C-=;0!'!%Y$"1>8\FP8W2'
M+'ZGO5&'0K6'7IM;628W<\0BDR_RE!R!C'&"?K6E10!@6W@W2[&RBM+.2\MX
MX)_/@V7+$PM\W"YR OSMQC!SSFM/3]+M].-P\6]YKJ3S9YI""\C8"@G&!P
M  !Q5RB@#)O/#MK>SWDCW%TB7R".ZA27"2KC;C&/EXXRI!]Z9?\ A?3K^\L[
MO-Q:S6<9AC:TG:',1QE#M_AX%;-% '.'P'H#:/<:4UO*;:XN#<X\YLQRDD[D
MY^0C/;'OFK,'A32X](N=,N%GOHKM=MP]Y.TLDH'3+$Y&.V,8ZCFK>IW]U9O;
M16FGM>23N00) @C4#)8D]N@_&L.V\8W]XNJFV\/O*VE2M#.BW2[F8#)VY'/!
MH T='\*:=HT3QQO=78>/R<WMPTVV/^XN[@+[#K@9Z"H=%\$Z1H-R)K(W92,D
MP6\MT[PP$YR40G /)&>O)J;2M?DU'Q%J^D/9B'^S5@99/,W>:) Q!QCC&WWZ
MUM4 8]GX9LK0V8,US<1V!+6L<\FY8205R.,G@D#).,\8HM/#-E:&S!EN;B*P
M8O:Q3R;EA;!7(XR< D#).,\8K8J$W<"WJ69D'VAXVE6/OM! )_-A0!D?\(AI
M8:Z1//2TO)?.N+)9/W,CGDDKU&<<@$ ]P:LRZ!:3:_#K9DG6Z@B,*;9,($)R
M5V]P2,\UJ44 ,EB2>%XI5#)(I5E/<'J*P'\#:'+X?30Y8IY+6-@\)>X=I(2O
MW=C$Y7'0 ?U-=%10!S[>#-+DT.XTB:6]GANL?:)9KEGEF Z N><#T&/U.;6H
M>';34[:Q@NI[EQ83)/"PDPWF)]UB<<D>_P"-6-7U:VT:T6XN9$17D6)#(X1=
MQZ98\ =3GV[GBFQ:U93:K<Z>L\(DM8P\H:4!@" <A>N,$9;IR/? !&N@6R:W
M+K*SW O)H! S;QC8,D#;C'!.:HCP1I(T0:-YEW]B$_GA/..=^[=G/7[W./6I
M=/\ $-UK<!O-'TU9K#<1'<7$YB\_!P610K$KP<%MN?IS5W1]4.K6LLS6<UH\
M4SPO#-C<"IQV)'/48)X(H B_X1^V_MS^VOM%S]M^S_9M^\8\O.<;<8Z\].M4
M!X$T<6,5HKWBK!=&[AD6X8212'.XJPYYR<CI7244 8*>#-%1-3C\F9X]53;<
MH]P[!OE )Y/WC@9;KGO3;[P5I&HZ=:6=P;LO9-NM[H7+BXC;&"1)G/0#VX'H
M*Z"B@#&7PQ916MM##/=Q/;3&=;@3EI7D*E2SLV=^0<<Y'3T%7=.TRVTR.58
MQ:>5III'.6D<XRQ_(#C@  5D3>)[^,:RB>'KE[C32ABB\Y!]JC9F =6Z#[C'
M!YP!ZUN6-TM]86]XB.BW$2R!7&&4, <'WYH J:IH&GZM-;W-PCI=6I)@N87*
M2QYZ@,.Q[@Y!]*B7PY:MJEMJ=Y<7-]=6>[[.\[@"+<,,0J!1DCC)!K5D+K&Q
MC3>X'RJ3C)^M97A?7&\1^'K?5FMOLIG:0>5OW[=KLG7 S]V@!VG>'K/3+N^N
M87G=]0?S+A99-RNV,9QT' QQ6=#\/]#AM[6W7[:8K.<36RF\D_<GGY5YX7D]
M/SKIJQM0UZ2P\3Z1H_V,/'J8FQ/YF-AC3<1MQSGCO0 Q?"=@HU0":ZQJV?M8
M\W[^1M../E^7CC'%#>$-+>#2XF-S_P 2H%;5UG975" I0L,$@@ ?A3](UV34
M]9UC39;/[.VERQIN\S=YF]-X/08X(]:V: .=O/ ^C7FLRZH1=02W&!<QV]R\
M4=SCIYBJ?F_KWJ35_!NDZOJ,.HN;JTO(H_*\^RN&@9H_[A*GD5O44 16MM#9
MVL=M;QB.&)0J*.P%9UYX=MKV>[D>XND2^C$=S"DN$E7&,8QQQQE<'WK6HH 9
M%%'#"D,2*D:*%55&  . *P-.\"Z+I6H&ZLQ=)'YGFK9_:7-NDF<[A'G&<]/3
MMCBNBIDLL<$+S3.L<<:EG=C@*!R230!D)X6L8QJ@6:Z']K$F[_>??)&TXX^7
MCCC%,?PCI[V>F6AFNA%I+*UH!+@QE1M7G'.!QSFK(U.]N=)6_P!/TX3&5D,,
M4DWEEHR1ESD?+P2V.O3H>!,^II!JT6GW">6;D$VTF<B4J,LOLP&3CN 3V( !
MRF@:0]]KGB<W(U.SAO;S(&QHEN(MBKP2O'(/*D-BNCN_#>GW<NFR?O(!I9S:
M)"VU8SC;TQSQQ@\5J,RHA=V"JHR23@ 5B:?X@NM;A-WH^G)+8[B([BYG,7GX
M."R*%8E?0G&?IS0!)/X7L);^ZO(I+FU>^4+=K;R[%G & 6'8XXW+@^]5=<=X
MK-?#6GZ'/+%=VK0)*D:_9;=<;<.<@@ <X YQ@5IZ/JCZI#.TME+9R03M"\4I
M!8$ '/'&#D$>V*T* ,NY\.V%UX<&@,KI8"%8"D;;24 QC/X4R3PW:37FFW<D
M]R9M+#"V;S!\NX;3GCYLCCFM>B@#%7PGI?F:HTRRW"ZL,7D<SY63 P#CL0!C
MC%1:3X.T[1H9([:>^D+1F*-I[II3!&>JQ[LA1P.@["MFVNH+M'>WD$BI(T;$
M=F4X8?@014U '/#P5I8TBRTI9;L6NGS+/;*)N4=3E3GKP<D#W^E7H_#]C%KL
MNM)YRW<R*DN)6"2;00K,HX) )%:=96F:S/?:MJ6G7&FS6;63*8Y'=66>-BP5
MQCIRAX//2@#1N((KJVEMYT#Q3(4=3T92,$?E6<OAK2EMM*MA;#R](97M ?X2
M%*@GUZY^H!K5HH S=4T*UU>YLKBXDF5[&7SH/+?:%?&,].>"1SQ4$GA?3GU"
M_OE-Q%-J"!+CRYV"MA=N[;T#;>,_UK9JK/->)?6L4-HLMM)O\^8RA3#@?+A<
M?-D\=L4 91\&Z:=-T[3O-NA;Z9*LUJHEYC9?NG.,G&3U]:FG\+V,M_<WL4ES
M:R7J!+L6\NQ;@ 8!8=CCC<N#[U#9^))[N]UZT_LX++H[( OG9\[<F\<X^7C'
MK3+?Q= W@:+Q3=6[11R0K)Y*MN.6.U5!XZD@9]Z +6H^%],U&WL(=LMI_9S
MVCVDAB:$;=N 1V(X(J*'P;HL,6J1"&9X]57;=*\[L'&W;GKUQ_%USWJYIUYJ
MDU[=6^H:8ELD05H9XKCS$E!SD<A2",>G>F>)-7?0/#]YJL=K]J^RQF0Q>9LR
M!UYP?Y4 6M-T^'2[&.S@>9TC& TTAD<_4GFJ-]X9L+W4QJD;W%E?A-C7-I)L
M9U]&'*L/J#6G:S?:+2&<KM\V-7QGID9J6@#,DT"QN-/NK*\$EVEY&8IWFD)=
MU],_PCGH,<\]:IVO@S2K2\L;P27LMQ8(R12RW;L2IQ\IR>0,# Z5OT4 <Q/\
M/]#N+>[M9#>&VNYO/:W%RXCC?>')1?X<D?J<8S5ZX\,6=R;I6N+P0WJ".Y@\
M\E)E"A<'.2,J,$@@GN:-*UZ34=?UC2I+,0'2VA&_S-WFB12P.,<<8]:V: .?
MU/P5I&IZC%J'^E6=U%&(?-L;AH"\8Z(VTC(K;M[>&TMH[:WC$<42A$0= !T%
M2T4 89\(:7ONU3SX[6^D\VZLTDQ#,YZDKU&<<@$ ]P:L2>'[.37XM;\R=;J&
M'R$"R801YR5V]",\UJ5"EU!)=RVJ2!IH45Y$'50V=N?KM/Y4 35BP>%[2PDF
M;2[FZTU)V+R0VSKY98]2%8,%)_V<5H:?->7%H)+^T6TG+,#$LHD  8A3N '4
M8/MFK5 &#)X,T>30;G1-DRVEW*9KG$IWS.2"2S'GD@'C'2I]2\-66K6]E'=2
MW7FV,@D@N(YRDJMC!^8=<C@^M:]% '.2^!=$EMM1ML72PZFP:Y07+G>0!ZD\
MG:"3U..M7'\.6DFI6&HR7%T]QIZ,D#&3HK8W C'.<#.?2M8Y ) R?2LCPYKK
MZ];WLDEI]E>TOI;1D\S?DQD G.!U- $<?@_14M]1MFMY);;4G=YX))6:/+'+
M%5S\N3SQWHT;PCIFBQND375T'C,(^V7#3;(SU10W"KP.!UP,]*L:IK!L;ZQT
MZWB6:]OS)Y*2.40!%RS,0"<<@<#J15C2KJ\O-/2:_L#87)+!X#() I!(R&'4
M'&1TZT 9>B^"=(T&Y$UD;LI&28+>6Z=XH"<Y*(3@'DC/7DU?US1+3Q!IQL+Y
MI?L[,K,L3["Q4@CD<\$ U.\UX-32%;-6LS"S-<>: 5?(PFS'.1DYSVJAX<UZ
M375U+S;,6KV%_)9E1)OW; IW9P.N[I0 _6?#6G:_IL5CJ*RRB%E>*99"LL;C
MHP8=#447A6PAT];5)[TNLRSFZ>Y9YV<# )<Y)XXQTQQBMNB@#%N/"NGW=A?V
MEPT\G]I$&\E+@/-@  $@#   & !^IS@>)M-/]KZ;'<6>MO96=HR0WVERMYRN
MQ *L$(.-JKS@YS[5W-0W=W!8VDMU<R"*&)=SN>PH Y6P\+_VII=]I^HW6L2Z
M5="/9%J$^9\J26.[[RJ?DX)SE3T!YVG\.VLFK6>J27%T]U91F.)C)QM.-P(Q
MSG SFM:B@#&L/#%E8FR'G7-PFG BT2>3>(<KMR#C).W(Y)P#QBMFBB@ HHHH
M **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@
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
M39V-R9-+!%JQN7R@(P<\_-D<<YXJWK6DV^NZ-=Z7=Y\FZC*,1U7T(]P<'\*
M,/XAF6W\+K-;7$UL\5W;@>3(4RK2HI4XZC!Z5'\1Y'M](TRZA_U]OJUL\6.Y
M+;2/Q#$?C6G-HR^(-%CT_7XI"\3+YOE2LBRNN"'!!SC(S@]*74M);5M1TZ*9
M6%GILRW)+G)FE4$(/H,[B?4#WP 1^.(;JX\$:S#9!FG>TD"JO5ACD#ZC-'@N
MXM[WP+H\EDX$?V&- 5P=C*H4CZ@@_E6]6/%X8T^UFFDT][C3Q<,7ECM9BL;,
M>IV<@$^H H X74];U?4_ASXGOKB^:*XL-0>VA>TS"<(Z+DX/.02".E=)J>G6
MVEW=E;KJ>I32W]XTILS.7-V5C.1DD;$'#$#CC&.@K1D\&Z))H4VBFWD%E<RF
M6=1.^Z5R02S-G))(!Z]JGU#PUIVJ162W7VAI+!MUO.ERZ2H<8/S@AN1P>>:
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
M(050[%;@[?F/&,<]*WY+-=+\?Z(D$]RRZK97*WBRSLXE*!"IP3@'YCT XXH
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
M;'1#;1>1=VTLPF\PELIMXVXP/O>I_"MN@ HHHH **** "BBB@ HHHH ****
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
M @8X[5U2^%M'2VOK9;:01:BQ:Z7[1)^^)X)/S=QP?44K^&-(D6Q#6\I&G?\
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
MTYK5_LME()+>/[1(!&PZ$?-GCMZ=JOW>GVE_%%%=P+,D4J2H'YVNA!4_4$4
M<=J*/I<WAW2)G@MH]3N)I+OS$+Q/,5W+$0",KEB ,X^51[5G^*M$?1/!'BB-
M=6:12([B&U@#PK:9."!\Y^5L$[>@YXYKO-7T73=?L&L=5M$NK=B&V/D8(Z$$
M<@^XJF/"&@KHCZ*+ "QD;=)$)7_>'CEFSEN@ZD]!Z4 8.N6=MHFK:3903&&W
MUF\<WDMT[RI-(L9V*P+#[Q[# ) XQQ5'6X;CPAIU]'#K %O?WUJKPP1F)=/B
MD8K(R'<=H;:>F,'I7:7_ (?TK5-(&DW]H+JS &$F=F(QT.XG=GWSFH[;PMH=
MKHTVCQ:=%]AG_P!;$Y+^9[L6))/ Y)XP/2@#GY],LM.^*.B&RMT@$FGW.Y4X
M4D%.<>O/)ZG ]*[:L2S\':!8W5M=06),]HI6"26>21HU/8%F/'''IVK;H **
M** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHH
MH **** "BBB@ HHHH *JZEJ-KI.G3ZA>RB*WMT+NQ]!V'N>@%6JY#XJ00S?#
MO4VEB20Q!'0LH.P[U&1Z'!/YT =?17&7:6I^(.F^'I;6!-)&FS3P6P0"*2?>
M <KT)"Y./]K-3>$%EL_$?B;2(BW]F6=Q";12<B(O'ODC7T )! [9H U-9\0#
M3KZSTNTM_M>IWQ8PP;]BJJ_>=VP=JCZ$D\ 4VYOM<L&MC-96MS%-<1Q2/!(R
MF$,P7=M(.X<^H^F,US]XS:9\:+2\O.+;4M*-I:R-]T2A]Q3/J0/QW5H>.=1U
M/3&T)M.U"2U%[JT%E,JQQL"CYR?F4X/% '5T5P<&@:=JOQ#\06]^DEQ$D%G*
M$:9@-_SG=P1@@CMQR:RM2>WDM++6--RRMXB0+?SO_I$I,Q5T& ,1@94 GD#H
M.M 'J-5KO4+6Q>WCN)0KW4HAA7N[$$X'X G\*XF+0]/U;QQXMMKZ)KBW-M:-
MY;2L5R5DYQG\O3M63:0P:KX>^'EQJ,$5U*]P(G>9 Y9!')\I)ZC@<>U 'JM%
M< ;.'Q/KGB/1[J:RC>U*1V\<MN7>" Q*5DB.\;?F+'('7'/04V#%]XCM= OM
M1M=0A32(WMGOK8R+=G<RO(!N +8"\\G&2.IR >@UA:!K=WJFJZU9W=O##_9M
MRL*>4Q;<"@;))QSSZ5)X4T_^R=$73AJ;:BMM(Z+,RXVC/W,Y.=O3KVQVKE;7
MPYI/B#7?&*:JC-&EXFUO-91$?)7YQ@XR/7VH ]#HKR^*.\'@?PSXTNXFGOM*
M59+G<,M-;$E2Q]6"D."?0GO7:>'8X+V:]U^-$_XF$F(' Y,*#:I_X$06^C+Z
M4 :4VHVL&H6]@\H^TW(9HXQU*J.3].1^=9GAS6[O5[S6+>[@AA.G7IMT$3%M
MPV*V23CGYO05D:WI]A/\4=#>XL[>0O8W)=I(E.XJ4VDY';)QZ9K#NM)LM0T[
MX@7-S&9)+6XFE@)<XB=8%8,!G[P('- 'J%%< MX^K:]HVEZA-:O'<:''<1)>
MP^:D\Q/S_+N +!0#WX+>]=)X4TT:/I+Z<NI-?K;SNJL5($0.#Y8R3D+G'7CI
MVH J-XBU5O&5QX=@L+-C%:"[69[AEW*6V@8"G!S5G1/$C:CJ^H:->V?V/4;
M(SHDOF1R(P^5E; /X$#%84EM+<_&*Z6&^GM"-$0EH5C)/[T\'>K"L[3I[SP]
MXP\5:?$?[5OFTTWZ7SC,Q91A(7 ^7OP% X[>@!Z717F-['''\,-*\3:6<ZVH
MM95NE.9;B9W59$=NK EF!4\<>U3^,%M+VV\6SVR^?/96Z^9/<N,6CK'N58 !
MD'N3D<GOT !Z/4<QE$+F!4>4#Y%=BJD^Y ./RK@K[3K;6?&>@17WF3Q7>CS&
M=/-8"3_5]<'W[59T.UL-6\1>(-*U"!9$TOR;6TMY26\B#RQAESR"3D[NO YX
MH WO"&M3>(O"UCJ]Q$D4ETA8I'G"_,1W^E;5<G\+_P#DG&C?]<6_]#:JNDV]
MKXFUOQ1;:W LTMK=BWA23K!#L!1D_NDG<VX<YQZ"@#MJ*\HL?M.LZ;X$EU66
M:66:ZGA>0R,#-$JR!2>>Z@<]3GKS7I=AI5CINEIIEI;JEG&I186)<;3G(^;.
M1R>M &-XC\5FP\(:AKNCI!>?8V9#YC$(2K;6QCK@_3ZUTBG*@^HKR3['9VWP
M5UZ2"V@BE::X0LB!6*K<$ 9'8<8%=+)80:-\1M(>P1D>_L+G[3ER3.4V%2Q)
MY.2>: .WJ&\N[>PLYKRZE6*"!#)([=%4#)->=Z)8IXC\,Z;K\FK6UI?03B6>
MZCMC]H$H;#1,V_)!)V[<=-H Z5TGQ'L;K4?A_J]M9*S3&$,%7JP5@S ?4 T
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
MYYQG.,UD>+-;N] TV"[M8(9O,NHH)/-8C:'<+D =3SZBN9L;R-CX&TG4-O\
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
MD\RX09 E;.<D ^O..F>:G;0=-:]MKUK=FN;1=L$K2N60=P,GOW]:T"0H))
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
MS6J"",@Y!K!L-<NY_&&K:1<I;I;64$,L3KG<=Y;.XGC^'L* -!=%T]=475!
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
M]O<$Y:$BZ'W#_#GOCK7JEGI-C8*XMK<(7&UG+%G(]-Q.<?C54>%M"&GR:?\
MV9!]CE?>\&/D9NN2O0G- &-J44:?%71)57#R6%R&.>N"F/YFN?T6U@\2>&+3
M5+O5K:TU"VNO-GFCM_\ 2HYPY!0L6R<_="XY& !TKT Z'IAO8+TVB&YMEV0R
MDDM&OH#V%0CPOH*ZS_;(TFU&H$[OM'EC=GU^OOUH P;?3=//Q9O6-E;%ETN&
M8'RER)/-?+]/O=.>M7_B&0/A]K9)Q_HCUJKHFFIJ;:HMH@O7&UIQG>1Z$^GM
MTJ74--LM6M6M;^W2Y@;[T4G*M]1WH P-/TL0:1H^J3ZS=K!90I/(DKKY97RB
M#G SQNR.>U87CC3X++5_[<TZW8L;5DUJ.&($FT<@,^#TD&#CN0&]*Z\>%=""
M)'_9<!2,@HA&57'3 Z<5:_LC3]UVWV5-U\,7)_YZC&.?PXH Y37KJQMKOPK9
M6DMG;Z)=^;L9XMUNS! 8@1D YRQ&3U /6L[6+>+PKI-VL.I"2QN=5MFU"*!/
M+BM(G;]X%P3M# #(ST;WKM6\,Z(^D?V0^EV[6&=PMRF44^H';\*EMM"TFSTH
MZ3;Z=;QV+ AK<1C8P/7([Y]Z .=UK1=!ALM;GLEC$MWI+EK:+'DE54[9-H&
MW. ?0<=#64YMC9_#B7,9G8P@-QN*_9SD>N,X_&NUTKP_I&AVTEOI>G6]K%*<
MR+&F-_U]:K0>#_#=LB)#HMFJQR^<B^4" _.#SZ9./3/% &!X7TO3&UOQ:CV=
MNI^W^6N$"D*85) (Y /)X]ZR+#1#K'P7TFX@@274-.C%W:[EW;F1RQ3W# $8
M^E>@G0]+-]<7WV" 75RGES3!,.Z],$CGI_*I=/TVSTJT6TL+=+>W4DK%&,*N
M?0=J .1N-1&K>'-6\8Z5"/.&F,EA($^=<(6=@?4,=N/6/WI-(TS3;JYT'7K/
M5K2,A2D:VEOL:Z#+\R2'<2V,$G/(()-=G:VEO96J6MK"D,$8PD:#  ^E4--\
M,:%H][+>Z=I-K:W$W#R11@''<#T'L* .?^*=M-)X>L;Z-&>+3-3@O+A5&3Y2
MY#''MN!^@-=3>ZE9VFD3:E+,AM(X3*9,@J4QG(/?-6R RE6 (/!![UF1^&]&
MC9"FGQ!$;>D7)C1NN53[H.>X% 'F\&A'3_A!H46J6J&X%_ X65 6C22X!V\]
M,J1D5TOB_2=,&N>%(QI]J$.H&,KY*X*>6YVXQTSSCUKJM2TC3]8B2+4;2.ZC
M1MRI(,@'UQZTRZT+2[Z2WDNK1)GM>8&<DF,^H.>#[T <R\(L?B?>&Q@42?\
M".ATC4<%A*0!C\ /PJ#PQ;Z%K/AC0-:GGQJ$4R/)<1N!-)<GY71SU())ROIC
ML*[!='T]=3_M,6J?;=GE^?D[]G]W/I[57MO#&A6>K2:M;:3:Q7TF2TZQ@-D]
M3[$]R.M '$6]I;^*-+UC^TM4M;*]M=0F,\Q@_P!)M=DA,95RW "@ 8&.O7FK
MT&@:9JWQ"UF#4+<7,9L;24H^5!?+_,1V/'X9/K74W'A?0KO5TU:XTFUEOD(*
MSM&"V1T/N1V/:IX]&TV+5'U1+2-;V0;7G_C8>A/I[4 8OQ+_ .2=ZU_U[_\
MLPK*U#0[31O%_AF]T6$PWEY,\=WM8G[1#Y9+,^3\Q!QR>Y'M7<7%O!=V[V]S
M#'-#(NUXY%#*P]"#UJM8:+IVF-NL[1(FV; W)(7^Z">B^PXH \^T^U@\3>')
M[N_U:VLM0M;V22XG6W_TJVE24X 8MGIA0,=#@5TEF%?XH:NC<@Z5;@C_ (')
M6L_A?09-9&L/I-JVH*=PN#&-V>Q^OOUJPNCZ>FHR:BMJBWDJ['G!(=E]"?2@
M#S6UNQIG@V*,2)!8OXFE@NGD4LB1>8^-_(^7<$!R>AYXKI8/"6F7%[JMM)>P
M31ZK:#S;.V@"11D<+*!D[6]#WQGM701>'M'@L+BPCTZ 6MR29H"F4D)ZD@\9
M]Z?I&AZ5H-LUOI5A#9Q.VYEB7&X^I/>@#DO"&W6+33M'OK6+S_#;M'=#RQCS
M4RD9'LRY?Z@5FV=K;^)] OI]0U:VL;^UOI7N)Q;_ .E6KI*2N'+=-H  QTXZ
MUZ1#:V]O+/+#"B/<.'E91@NP4+D_@H'X50E\+Z#/K"ZQ+I-J]^I!%P8QNR.A
M^H]>M ''^(3-I6H:CJM[96^LZ+)<1-<2)Q=:>Z!!P#U4$!L#^\?7GN-8ABN-
M&O(IHDEC:!\HZ@@\>AJ-] TJ2ZDN6LHS),ZR2]=LC#&UF7HQ&!@D<8%:! (P
M1D&@#RQK:S7X8^$TACCB:>]T\RF+Y&8EL9)'.>#SUXK4,6F^'?&7B&.%6L-/
M.A+=7 M1M(8-("ZC^]COZUU \)^'UM4M5TBU6".7SDC6/"K)_>P._H>U6#H.
ME->O>O8Q/<21&%Y'&XNA&"ISU'M0!Q&GPP6OBOPGY$,%M;W6F7"F,,&DDB"1
ME3*PP&)R3TQG/)K5^'5I96]GJK06\$4O]JW<>410VP2\+QV'''TK;MO"GA^S
M-L;?1[.,VKF2$B(9C8]2#Z\#\A5NTTG3K&[N;NTLH()[IMT\D: -(?4F@#D-
M:+:5\7M'U2\^6QO;!K".5ONI-N+ $]BPP!ZU>^(%[J&G6.F3:=?S6CS:E!;2
M>6%(9')!^\#S[UTUY96NH6KVM[;17,$@PT<J!E/X&J4?AS2(Y8I#9K*T!#0^
M<[2"(CH5#$A3]* .7/A[2]4^)&K6E_;"YA;3;:1HW8X9][_,<=^!S61XF>TE
MT36-3T\#=!K<8-W<,&G\Y98U*QXQL11D#)/&[C!S7HJ:-IL>J-JBVD8O6&UI
M_P",CTSZ>U5IO"?A^XENY9M&LW>]_P"/AFB&9.<\_B : .=;1],U+XGZE!=V
MT=Q!+I,+O$_S([>8XR1T/0?2N>M[>WN? /@T7,4<_EZ^MNIE4,1&)Y5"Y/;"
MJ,>PKTE- TF*\-Y%8Q1W!C\KS4RK!,8"C'0>W:HQX8T)=,;3!I5M]B9_,,!3
MY-V<YQV- '+2QVVK>,-8T*ZDL(XHK2%;."XM@ZF$H=QC&X 8;(./1?2H%*6F
MJ^'="N-6BN[$V4ZV]S?0^8EQ,KJ ,;@"0F0IR>#QU%=AJ7A?0=86!=1TFUN1
M; +#OC'R#T'M[=*EU+0M)U>Q2QU#3[>XMH\;(G083 P-OIQQQ0!1\):5!HUG
M>65MJ'VN);MV"*FU+<L QB09.%&<XSQFL5=)T_6?B1K]OJ-LEU#]@M<Q2<J3
ME^2.F1V/;M7865C::;9QV=C;QVUO$,)%$H55_"H!H>F"^GOEM$6ZN5VS3*2&
M<>A.>10!P?A^ZM[KP7X,M;SS;J[FE<6T#R!8I#&''[TD'*JN" !G(6F:5:7-
MWH^N:;97ME#<1>(G-K#(I^SRE51S$5!.$)R<>M=NWA/P^VGQ:>VD6IM89/-C
MA,?RHWJ!V_"G'POH1\S&DVJF5UD<I&%)91A3D=".WI0!F^"KR.<:K;/I']DW
M\%T#>VRL&CWM&N&0CC#*H/US6?>Z387_ ,6?)N[9)HI="9I(WY60^>H^8=#]
M#Z#T%=?:6-M8HZ6T03>V]SDEG;&,L3R3@ 9/H*ADT73I=2_M-[1#>A/+$_.\
M+_=![#VH \VL[I[/PQI6G,672SXDDLYP2<"$2/MC)_NDX![8XZ&NBFL(K3XC
M)965O&+&_P!+D>_M0@\HE6 1RO3)R5]P/:NBB\.:-#8W%C'IMN+6Y.Z:$IE'
M/J0>_O5BQTRRTX-]D@$;/@,Y)9F Z L<D@=AVH YKX606T7@#2WABB266'=*
MR* S_,P!;'7OUK.\80W%M>ZMJ4EC;ZWHY@6.^@R%N;(*FXM&3P1AM^.N:[73
MM)T[2(Y(].LH+197+N(4"AF/?BHKC0-*NKJ6YFLHWEG $QR<2@< ..C >AS0
M!SEG]CE^)U[((XQ#=Z%%,P90 X,C9+#OQ@'-<S8117'P]\*PY_=/XCV_NV*_
M*9YNA'3CTKTJ^T'2=3O(+R^T^"XGMN(I)$R5'I[CV-1CPUH:Z>VGC2K46SOY
MC1^4,%\YW?[WOUH Y"71K71O&6IV6CRG2["ZT*26\,6=EO)NVI*!V;&[Z[32
MZ7&T&H7&B:]H5I#?_P!ER".YM%!M[V%2N<KC(8';P?4^U=K%H^G0VD]JEI'Y
M5RI6<-\QE!&#N)Y;CCGM19:18:>^^UME1M@C#$EBJ#HHSG"^PXH X'14TF+P
M%X3MGMPUS>2PLD,16-;B0*Q'G'!R@P3T)) Q5.^BC'A7X@6;F$K!<&1(X?E1
M&\I"=HSQR>?>N_/A+P\; V']C68M3+YWE"( ;_[WUIS^%M!=;A3I%H!<JJS!
M8@!(JC"@XZ@8''L* .8;3++3/&_A26S@6*2_M;F.[<<FX B5AO)^]@^M4M&T
MW3AX-\8@6MNDBWFHH"B!6"J20,CG ...W%=Q_P (_I)FM9C8QF2R&+9CDF$>
MB^E!\/:.6O&_LVW#7_\ Q]%4 ,WKNQUSW]: .3LFL[C3_!5D\9N+TZ8)88)7
M M]ODH&=Q@[B,_*!ZGIUK#D?_BS&LPB5'2#47CC"?=5!=+@*,G"^@KT6;PQH
M5Q;VEO/I5M+%9?\ 'NCIN$7L,]!P..G%#^%]"DMKBV;2K7R;J7SIXQ& LKYS
MEAWYYYH R-< /Q)\+@X/^CWV1_P&.L9[9/#.NZMX:M;9$B\1@3:>1&"%=L),
MI]D!\P#H!D5VSZ)ILEY;WCVB-<VJ[896)+1CT!SQ[^M4--M]6U#55U'6K"WL
MOL8DCM8HIO.+%B,R$X&/E  'NV>U &O9V=OI]G#9VL2Q00($1%&  *GHHH *
M*** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HH
MHH **** "BBB@ IK,J*69@JCDDG %.KD/BI#%)\/M0>5%)C:%E8CE#YJ#(/;
M@F@#K%EC=W1)$9T^\H8$K]?2D\^'SO(\U/-QG9N&['KBN'U'0[;1?'V@7.@6
MRP3W,=RMXL9XGC"9#/ZG>5^8\DD9-9V@P:9K_AG2;ZZUE8-0M;E)9?+C1;G[
M5NPR$GYCN)QC'((H ]):>%6VM*@;.W!89SUQ7-KKFJZQ>ZA'H<EBHTV[6W:*
MY#'[1A59R&4_+C=@<'D>_&7X9T#2+OQ3XE>XT^"0VNJ1R0!DXB;RU.5'8D]?
M7'M6=!$VGZ%X]N](MHX[ZWOIU@>*,!XU\I,[<=,#)X[T >DI/#)(\:2HSI]]
M58$K]1VH,T2OL,J!LA<%AG/7%<%JUO:QZ1X0U+0$1+EKRVCA>(8,L3J3(K'N
M"H).?3-2>&_#VCWOB?Q,;G3K>7[-J:/"K("(V\I3E1VR>OK^% '<FXA!4&:/
M+,54;AR1U ]Z598WD:-9%9TQN4,"5^H[5Y!)I=A'\'[^^2UC%U:WTAMYP/GA
MQ=8&QNJ_AZUUMQI]II/Q)TDZ;;16[W.GW0F"#;YQ4H5+G^(Y)Y/- '8^?#YW
MD>:GFXSLW#=CUQ5'7]1DTS1;NYMY+=;F*!Y8DGZ.54G& 03T[5P>A0:;K_AC
M3+V\UE;?4;6Z667RXT6Y%T&(9"3\QW$XQCD$5/;O:ZOH'CEM4CBDOH+BZC=9
M0"T42)^YQGHO&01WR>M ';Z!?2ZGX=TW4)PHFNK2*:0(,#<R G'MDUG1Z]=Z
MOK=YINBK L6G,([J\G4NHEQGRT0$9('4Y&/0U8\'$-X*T,@@C^SK?I_US6N=
M^'9.DZIXB\/7WR7PU*2]3=P9X9,8<>OW>?3- '36MQK*:S]COHK:2V:W:1+J
M!67+AE&TJ2=O!SU.?;%:*S1,X194+'. &&3@X/Y&N2\ZYD^*TNCR7<TFG-H_
MVHVKME#(9=A_#';I7/>'].T"Q^%L^LW]JX:%+R)I[?B98S,Z[4/;^0R3W- '
MIT4\,^[RI4DV'#;&!P?>C[1#N5?.CRY(4;AEB.H'TKA-.CAB^(UM;RK8QQ3Z
M"R-;0$,FWS4"*QZ/P3@X'6N=M=,L8/A1IFJQ6T:WUOJ:^3<8^>,?;67"MU P
M3P..2>M 'J::Q8R:S+I*3JUU#$LLB CY0Q( /N<$X]/K5KSX?.\CS4\W&=FX
M;L>N*XZTMK2/XHZU)]GM_-%A;O$650=Y9QD'U)P,UC:#!INO^&-+OKO65@U"
MUNEEE\N-%N1=!L,A/WCN)QCN"* /2GGACD2-Y45W^ZI8 M]!WK+OM0U2V\2Z
M;:006LMA=*XF;>?.C8*2& Z;. "?5A^/&Q0Z?XB@\1V6M:K#9W,.H2B4R(@F
MBC5LQ.C-R %"X(]_6O1+08M(<N[GRUR\@PS<=2.QH <;B%9?*::,2==A89_*
MI*\\N#<:/K'VBZMK;5]&N]8W1W<7RW-E<&7;M8'[RAALXYQQTP*W_B'>WFG>
M!-5NK%G69(E&Z/[RJ74.1Z$*6.>V* ':MK]S9^*=$TZUDM9+6^FEBN.ID0I&
MS#!!P.G<5O>?%LW^:FW.,[AC-</JUKH\?BSP1<:=%;+$[SK$\0 #1>0<?4?X
M^]8\ZVD7@#Q[#((4":I=[$; P2J[<#U]* /1IM9L8-6M]+>=?M5Q$TJID9"+
M@9/U) 'KSZ4^U-[]MO!<S6SP!E^SI$"'1=O._)Y.<XQVKCC;V#>//#\L\-N0
MVBR.7=5Y*F/!R>X%4G,^FI\1GTE/*FC*/&(A@J3 "Q&._)/UH ]%2>&1WCCE
M1W0X=58$K]?2A;B%Y&B6:-G4X*A@2#]*XS3;/0KN_P!$UNPUB(,D3I!':1HA
ME1DR5<#)(7&>>A'K53PX;G1]8T33M2M;:^AFCD&EZS:\-(NPL5E4\Y*C.0>2
M![F@#T$$'H:;+-%!&9)I$C0=6=@!^9JGI-EIEC#.NEK&L<MQ)++Y;[@96/SY
MY.#GMVKGY)1<_%-[#445X%TH2622#*,Q<B0@'C=C ]<?4T =:9$5/,9U"8SN
M)XH21),['5MIVG!S@^E>2:K9A/"'B&UV9L++7HDT\_\ /$&6/>J'L 68<=.1
M7J.G:3I^D1RQZ=9Q6J32&618EP&<@ GZ\"@"%-4-UKDVFVFTBS56NY&YVEN5
M0>^!DGL,=<\"G539ZB#<V)N1))]D8(VR-<?()!G)([XQQ6%X$W->^*_M S,=
M<F!S_P \]B;/PQ6%;65I_P (!X^M_(C\F*_U!HTP,(5C!7'I@@8H [6^U:;2
M+>TO+YH7M'\N*YEB! B=B '&2?D+$#VR#D\UK=.37%^)?+;X-W&_&W^R4(^N
MQ<?KBNBC@N;SPNMO*Y2ZFL@C,>JN4P3^9H S]*US4/$PFN]'-M;Z8DC10W-Q
M$TK7)4X9E4,NU<Y )))QT%:&F76J/=WMOJ=O#&("AAFASMF4@Y//0Y!&.<>I
MS7/_  LN5'@Z'2)E\F_TJ1[>ZMVX:-MY(./0@@Y[\UER//?)X_LKZZEN[6P@
M*VT4S;ECS"7S[G.,$\C% 'H:W$+@E9D8*H8X8< ]#]*(IHIX_,BE21/[R,"/
MSKSY=.T#3? ^@W4UB#<ZD+"(E'V?:),!D$K'/R9!SP>!@=A444<3WOQ!L[DV
MDBFVB<Q1+B,/Y#YPI)Y&T9/JN>* /1EGA=U1)D9F7>H# DKZCV]ZJV6L6.H7
MMY:6LZR264@CEVD$!L9(_#(S7G]MIUG8Z=\.]1MK>.*\F:WCEG4?/(K6QRI;
MJ1P.#TZ"G*HT^U\?W&FPQ17\,S_9VC0!T'D*?E[^IX]* /2$GADD>-)4=TX=
M58$K]1VH\^'SO(\U/- SLW#=CUQ7$V%GH]W<Z-K>E:K"T\<+I:PVL:(9E9,E
M) .2!C//0^]9N@0:7KWAK1K^YUE8;^UN$DD\N-%N?M.<,C'[QW$G(QR".U '
M:0:AJA\67&G2P6ITX6PEBFB<F1&RHVR#H,Y;;CLAK46XA>0QK-&SJ<%0P)!^
ME.? 1B3M&,DBO/\ PX;G2-9T33=3M;:]BFCD&EZS:\-*FS<5E7KDJ,YSR0/<
MT =^\D<>-[JN>FXXH$L9?8)%+?W=PS6'XUT+_A(/"]W:QQJUW&OG6K%02LJ_
M,N/J1@^Q-<=_;T8UK2_'L%B!8WEO_9\X2/YVE*[P1])!Y6?4'VH ]#O9;IHX
M&T^XM4_TA!,9@6!CS\RK@C#'C&:S$UB_/CR;0F%O]E&FB[C8(=^XR;,,<X(X
M[ =:P/$VBVVEZ3X70P0BY37K1Y)$0#,CR9D(]B?Y#TK37_DKT@_Z@"_^E#4
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
MTX[>U/LM$TO3G5K*PM[<HI5/+0 (#U"CL#CG'6K N[8P+<"XB,+XVR;QM;/
MP>E5;JYDF:U>PU"T2,7(2??\_F#!!12#PV<?ETH BT/0K;0UO/LT,< NYS.T
M46=BD@#CU/&2?>K5]I=AJ?E_;;2*<PMNC9UR4/JIZC\*DEO;2"=()KJ&.63[
MD;R ,WT'>L:]U>_MO'.EZ2&A-E>6T\C#RSY@9-O\6<8^;TH TI]$TJZL4L;C
M3;26UCY2!X59%^BD8JW'&D,2Q1(J(@"JJC  '85S_A_7+JZO-<BU2:V1;"_^
MSQ.B^6I78K#.2>>?6MTW=L$1S<1!9#A&WC#?3UH HII1M-=GU&U"[+Y56[B/
M&64860>^.".X ],&1= T9+>XMTTJS6&Z;=/&(%VRGU88Y/UJQ?F<:?<&VFB@
MG\MO+EF&41L<%AD<"B*=4@@%Q<PM+(@^93M$A R2HSTZGZ4 9^H:%!?6EOI*
MPQ0:7&R/)%&  X5MRQ@#@+D GV&.^1L54FN/M6F33:==V^\QMY4Y(>-6P<$X
M/(!Z\TMK<H8;>*:[@EN6B4DQD .<<LHSG!Y- $=WHNF7MR+JXL87N NT3;<2
M8]-PYQ[41Z)I45E+9)IMJMM-DRQ")=LA/7<,<_C5A;NV:-Y%N(BD?WV#C"_4
M]JJ:C=/)83#3M1LX+B-DS)-ATC!()W $=5SCGN* '/H6D2:7_9;Z9:&Q[6WD
MKY8[_=QBFCP]HJ^9MTFR'FPB!\0+\T8Z(>/N^U6[F[MK./S+JXB@3.-TKA1G
MZFE:ZMT\O?/&OF_<RX&_Z>O44 4CX=T0Q01'2+(QVQS GV=<1'U48X_"K":9
MI\>H2:BEE;K>3*$DN!&!(ZCL6ZD<#\A4RW$+RM$DR-(GWD# D?44R&^M+B5H
MH+J&61,[D20,5QUR!]: *NG^']&TFYEN=.TNTM)IO]9)#"JEN^,CM1'X>T:'
M56U6+2K1+]\[KE85#DGJ<XZGUI=6UNPT5+<WLZ1FZG2")2P!9F8#\AG)]A5F
M:^L[:%)I[J&*)\;7>0*K?0GK0!,0""",@U2LM$TO3G5K*PM[<HI5/+0 (#U"
MCL#@9Q5T$, 000>01WK-&NV-QJ]SHUM=P_;K>)78$A@I;. 1D9/RY(]"/6@#
M3JL-/LQ;);"UB$$;B1(]@VJP;<"!ZAN?K6-X.\02ZQX;LKO5)[9+ZYDG78AV
M!MDKK\JDD]%'K6W<7EK:;/M-S#!O.$\QPNX^@SUH 9?:7I^IB,7]E;W0B;?&
M)HP^QO49Z'WIO]D:;]O^W_8+;[64V>?Y0\S;Z;NN/:KE<WI^NW_B.]O1H[6]
MOI]E.;<W4\9E,\B_>V*&7"C.-Q)SZ4 ::>']&CM9K1-*LUM[AMTT0@4)(?5A
MC!_&EET'2)]+_LN73+5K'C%N8AY8QTPO05'IMQJQU.\M-1BMS%#'$\$\"LHE
MW%]V02<$;1QD]<YYP+L%[:W3NEO<PS-&<.(Y Q4^^.E %:+0-&@9FBTJS0O$
M(6*PJ,H!@+TZ>W2K%E86>FVPMK&UAM8%.1%"@11^ XH>^LX_]9=P)^\\OYI
M/G_N_7GI3UNK=KEK99XS.B[FB#C<!ZD=<4 4[_P]HVJW45UJ&EVEU/#_ *N2
M:%69?Q-2R:1ILU^NH2Z?;/=JNU;AHE,@'H&QG%2/?6<3!9+N!"7\L!I ,M_=
M^O(XIUS>6MF@>ZN8H%8X!E<*"?QH Y[7_#*G2Q;Z'I.EF-[I)KRSDC$:7:C)
MVE@IP<X.2#TYJ#1/"EO!J<.H+X=L=$,(8,MM-O:8,I7:P"A=O.>_('3'/5--
M$FS=*B^8<)E@-Q]!ZU&M_9O"9TNX&B#;3() 5!],^M %.#PQH-JL:V^BV,0B
ME\Z,);J-LG]X<<'WKE$\)7,\\RZOX1T34KF69W;43-L\P,Q(W+L+ @$# )Z=
M:[DW=L(TD-Q$$<X5BXPQ]CWJ:@#&'A;2KC1K+3-3LX-12S150W$>_! QQG)'
MY]/6K<VB:5<?9_.TVTD^R8%ONA4^3CIMX^7\*HZQ<Z];M>7%FUC%9VMMYBF>
M%Y'E<!BPX=0!@+Z]35'P_JGB76=(TK52^F^1?)OEC2WD#0@J<$$R$-AMN1@<
M9H W!HNE"XGN!IMJ)KD;9I!"NZ4>C''/XU&WAW16TLZ6=)L_L+-N-L(%$>?7
M;C&?>L[P=XAEUCP[:76J3VR7MQ+.@1/D#[)67Y5))Z >M;EQ>6MGL^U7,,&\
MX7S'"[CZ#/6@"I_PCVBG38]-.DV9LHSE+<P*8P?7;C&?>I1HVEK>QWHTZU%U
M$@2.;R5WHHZ -C('M5S/&:SM)U[3M;:Z%A<),+:9H6*L#N( R1[9.,^U %BS
MTRPTYIFL;*WMC._F2F&,)YC>IQU-)+I6G3WR7\MC;R7<8VI.T0+J/0-U%26]
M[:W1<6US#,8SA_+D#;3Z''2D%_9MG;=P'">8<2#A<XW?3/>@"H/#>ABWFMAH
M]B(;AM\T?V==LC>K#&"?K5^&WAM[=;>&)(X47:L:+A0/0"FK>6KS&%;F)I F
M\H'!8+ZX]/>EM[F"ZB\VVGCFC)QOC8,,_44 4U\/Z*EK/:KI-DMO<-NFB$"[
M9&]6&,$_6G/H6D2?9M^F6C?9/^/?,*GR?]WCY?PJM<>((;?Q5;:%)E)+BW,T
M1,3-YQ&[*AAPNT+DYZ[ABLJ/Q_9-X4CUE(WGGGN!:PV:HT;M<-TB^;N,\MTX
M/TH W+[P]HVI7L5[?:5:7-S#CRY9859EQTY(KGM=\/W=]XAGN[SP[I>NV<D<
M:6_G2".2V !W Y4@@L2<@Y[8K7=?%"6+3+/IDET$+"V\APA./N^9OS_P+;^
MK0@O572X;R^9+;=$KR^8=@0D#(.>G- &/I?@_2X=*DLK[2K)H);C[0MD!YL,
M#;0N$W#V))P.6/%:9T#1BMPITJS*W059QY"XE"C #<<@#UJ[%-%/$LL,B21L
M,JZ,""/8BH[>]M;LN+:YAG,9P_ER!MI]#CI0 ZVMH+.W2WMH4AAC&$CC4*JC
MT '2J<WA_1KG5$U2?2[22^CQMN&A4N,=.?;MZ50\9Z])H?AV^N;&ZM$OX(#+
M'%/\Q<#KA0P/XULVTCS6,4A(#O&K9QQDCTH AO='TW4I8YKVQ@GEC!5'= 6
M/49]#Z=*+K1M+O8X([O3K6=+?'DK)"K"/'3:"./PKE[#Q#XFU!-?>$Z7NT>Z
MD@6-H)%\\*-V=WF';D'T-;_A?7HO$WANSUF*%H%ND),;'.T@E2,]QD'F@"U'
MI&FQ7TE]'I]LEW*-KSK$H=AZ%L9(JG%X1\-PL&CT+3U(D\T8MUX;GGI[FM&V
MO+6\#&UN89PAPQB<-M/H<407MI=2/';W4,SQG#K'(&*_4#I0!4N?#NBWEZ]]
M<Z7:2W4D1B>9X@79",$9^AQ].*+GP[HEYI\>G7&DV<EI$<QP&%=B'V&./PJV
MM]:/<-;)=0M.IP8A("P/TZT&]M5NA:M<PBX(R(C(-Y'TZT 0S:/IEQIJZ;-I
MUK)9* %MFA4QC'3"XQQ5M$6-%1%"HHPJJ, #T%1RW5O 6$UQ%&50NP=P,+Z\
M]O>LO7M1U.WMK&XT465PLMPBR+,S9EC/_/,KQN[Y/& 30!;BT/28+QKR'3K=
M)V<R%UC .\\%O]X^O6GQZ1IL6HOJ,>GVR7D@P]PL2B1A[MC)JGIM[J\NOZG:
M7L=H;*'8UK+;EMPSG*29XW< \= 1ZBM*XN[:T"FYN(H=YPOF.%W'T&: ,[Q1
M87VI:%-::>+9Y)&7?%<YV31A@60D XW $9QQG\:PM+\(P-J%O=GPMIVAO;R;
MS);3[Y'XY4!5 VG/.>W&.<C1O=<N[;QII>GB:V.G7EI/.S;?F!0+SNSC'S9Z
M5O1W-O+;_:8YXW@(W>:K@KCUSTH AL-)T[2Q(-/L+:T\UMTGD1*F\^IP.34=
MKH>E65R;BUTZWAE)+;DC P3U(]">^.M.FO5N-,N+C3+FWE=$8HX/F)N Z':1
M_.N5F\5:NOP\TC7XVMA<W3VXG#1$@B1PIV\\=>^: .H&AZ4MVUTNGVXF:3S6
M<1CYG_O'U;WZT#0]*%VUT-/MQ,\GFLXC'S/V8^K#UZU?JN+ZS9XT6[@+2Y\M
M1(,OCKCUQ0!8HJ**ZM[AY$AGCE:([9%1P2A]#CI34O+5[IK5+F%IT&6B$@+J
M/<=: )Z*@^VV@NOLGVJ'[1C/D^8-^/IUHFO;2W$AFNH8O* +[Y -N>F<],X-
M $]%("& (((/((I: "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH
M**** "BBB@ HHHH **** "BBB@ HHHH **** "N0^*L,,WPYU9I8T<QHK(6
M.UMZ\CT/-=?4%Y8V>H0>1>VL-U"3GRYHPZY]<&@#C=7T?3(_B-X=CCL8%2YM
MKL3J$&)@H1EW_P![G)YSSS64]I:KX/\ B%:""(6]O=W#Q1;1MC;R58%1VYYX
M[UZ#_8VEF>&<Z;:>= ,12>0NZ,>BG''X4P:!HP29!I%B%N/]<!;)B3O\W'/X
MT <M<VVJ/'HMYH5Q:37]MI8#Z==CY+B%PF=K?PME0,].1GWHZ;K]@^M>%I;F
M :?I,VF2K9Q3L-D5PK*N,GC(0$*?1N.M=P^A:1*L2OI5FRP+LB!@7]VOHO'
M]A3[O2=-O[);*\L+:XMDQMAEB5D7'3 (P,4 </JPTO33HL.FX.ARZZ3>,'W1
M&1@2HSTV"0].@9?45;U&R3_A/]1B@A1K.YT-GU"(J"C2!R(V8=-Q 8?05V#:
M?9-8?8&LX#:;=GV<QCR]OIMQC'M38=)TZWM9+2&PMH[>7_61+$H5^W(QS^-
M'F=G86=MX-\!:A#;1)=OJ5HC7 4>8P8,&4MU((XQTX'I6OI]S:WY\<P:QY1O
M([B5&2;&1:B,>5C/1?O'ZDGO77GP]HAMTMSHU@88V+)']F3:K>H&, TZZT/2
M+V[2[N]+LY[B-=J2R0*SJ/0$C(H X#298 OPSN&>,*D$L32$C 8VQ 7/KGM5
M;4M06&U\>3V$@=!>VS3>0V28=L8E(Q[;@3]:](FT/2+BP33YM+LY+.,@I;M
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
MW4]A)8:O9K TS+(N5?[1A3\BG/!!Y.,]*LS:E86]REM/>V\4[D!(GE56;/3
M)R:Y3Q#INFZ=XH\)?8[*VM2;^7_51*F<Q.3T'<XKG?&6H6-QX=\8K9R06KI=
MJLR2ONGN)D\OYE!/R* ., YP3Q0!VUUJNH0>/M/TH2Q?8;FSFF*"/YPR%1RV
M>GS=@/QKH"0H))  Y)/:N1O+B&?XG:%)#*DB-IMT59&!!^9.A_ T[XD7,EIX
M:AD(;[%]OMQ?X'_+OO&_/L> ?8T 2?\ "1R7'CNQTRRO[.YT^>TFD<0X9E="
MO5@3_>Z8'XUKV5X(+6[GO]6M)XH[A_WJ[8UA3/",<D9 ZDX^E<S>7.ER_%/1
M989[5S-IDZ%D=3O!9=H]_P"+'XUS=];VG_"K/&:"&'RX-9NO*4*,1XE4+M].
M/2@#U,:E8&:: 7MOYMNNZ:/S5W1CU89X'UJ&>]BN]&GN=.U*U0-&WE7>Y9(D
M;& QYP0#[US&LZ9IJ_$3PPB6EN%FM[P.H08D"B-EW?WL')Y[\UD/;VH\,?$6
MU\J+R8;BX>./:-J-Y"G('8[OUH ]"BO((H+9;B^MVEECRKA@HEPN2RC/3&3W
MP*0:OIC68O!J-J;9FVB83+L)]-V<9KB;BTLKC7/A_P"?!#(9+68'<H.\"W!
M/J,]JSM3@BB\-_$:TM8T6*.X#B*, *N8D+' Z<@G\* /3#?6BW MC=0B8KN$
M9D&[;ZXZXK+LO$FG:[9ZA_96I6ZO;F2-9F8,%(&/,QGE0Q^AQUYKG[_4]/N?
M'O@YH;RWD'V:[!*R CYHX]HS[\\52TXV,O@OQG:2^0\J7>I.8FP2H!)!QVQQ
MS0!WD%U';Z3!<7M_;NOE(7NLA(Y"0/F'. ">1SWJ2._LI;/[9'=P/;8SYZR
MICUW=*X.SN6AOOA_]J(&GR:=MC8_<^TF%=N>V=NX+]3BJVNV:J_Q \N-#IYL
M%D92 46Z\MB2O8-C:3WR10!Z)%J-C/<FVAO+>2<(',22J6"GHV,YQR.:;JK2
MII=RT%[#92B,[+B90R1'U()''XUQ1M+*S\1> IK:&&%YHIU=T !D!M\\GO\
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
MW.F>(I(SJ<.I2/=6[2;)Y)Q*6C*@$,21M QV&.E;=H5;XJZFN03_ &1!D?\
M;23_ !H Z$ZE8!(7-];A;@XA;S5Q(>F%YY_"FZE?P64!5[ZUM)I 1";AA@M]
M,C/;H:\LM;^RC^%?A>W>ZA$T.IV_F1EQNCVSG=D=L>_K[UT^CZA9R^+/%EMK
M$L E;RQ$)V 5[3R^-N>JY+$X[MS0!=\.ZSJ&L^#=$U.?4;6TN;J5&F,D8Q*-
MY!C49&"> #S]#70W&IZ?:^;]IOK:'R0&D\R55V ]"<GC->7:>;67X=^!)08G
MDAUFU3?P60^8V1GMVXKI++3--N?B=X@CN+.VE!L;9BCQ@@D[PQ(]2._O[T =
MDUU;I;?:7GB6# ;S2X"X/0YZ4VWO;2\7=:W4,XYYBD#=.O2O,-,N$A^'/@N]
MEO(E6VOU/DS2A%F ,@QN/ *CD9('RXZXKJ_"MA:R>(=<UZ*2S<ZA)'Y<<,B2
M/$JH%)9E) +$9P#V'>@"[XK\1Q>'[.W F@2XN[F*WC\U@ @=PI<C/(49-26-
M[)I\,\^KZW8S6<DF;.Y9EC)3'(8\*2#G!':LWX@&-;;0C)M'_$]LQEO3S.:9
M:S%/BI?6U\  ^FQ_V>&'!0,?-"^^=N>^ /2@#J7O+6*!)Y+F)(I" DC. K$]
M,'OFBWNK>[1GMKB*=%8H6C<, PZCCN*\HO+*-/"5XDB(;"/Q0%T\MT2$S*&"
M'LN=_3WKU6SL++3HFBL;2"UC=R[+#&$!8]20._ H Q)_%=G>VNLQ:/?6S7FG
M(X&XAPSJFXX4$$@=,YZY]*L>&M<BU+1-):ZO+<ZC=V,5Q)"'4.=R DA>N,FN
M;L+BT@D\=PO+%'-Y\CA"0&V_9UYQZ<&J$%K9VF@_#J[@ABCGDN+=6E50&8-
MVX$]3GC]* /0+:28ZK?*^H031*(_+MD4![?@YW'/.XC(X'0]:EMM2L+UV2TO
M;>X91EEBE5B!^!KB8[>P_P"$@^(%O+*+.VDM+?SY(@ 8PT+[G^O>KOANXU2U
M\3#2-;AM;JX2P+VVJ6@VB:$.HVNG\)R01CCKB@#K9;F"!D6::.,R'"!V W'&
M<#/7BH$U?3);1KN/4;5[=6VM,LRE ?3=G&:Y?QS:65QXA\*?:X8G62_:)BX'
MS*8V^4^H)QQT-9&IZ3'9ZKXVCTF!8K*703Y\42X07)5\  <9V8)Q_>'K0!Z'
M]NL_.BA^UP>;,NZ-/,&YQZ@=Q]*:=3T\3"$WUL)#(8@GFKN+@9*XSUP<XK@9
M-4TZ2Y^'Q2]MVV#YB) =F;<@9],GCGTJ]X0T71KK5?$PFTZTF,.LOY8>)6\O
M]VG0$<<ENE '7C5M-::&%=0M3)/GRD$R[I,'!VC/.""./2G7>HV.GA3>WMO;
M!SA?.E5-WTR>:\FM]'TVY^"5O=6]M%_:HD_T6:,#SA.)R$53USVQZ5U^A2F3
MQSXFL]7"-.T-OY*R#Y7MMA#;<]5WEL^YH ZV>[MK6$37%Q%#$<?/(X5>>G)I
MHO[(V?VT7<!MN3YXD&S@X/S=.O%><Z%8:G)X<T<:=J<=K?6UU=2:5'=J7CN+
M<$J%;O\ =.01SMZ<4LFO*L'AZZOH&T2RBU*[AO6C*O%%<Y;# L"-I<R<XX)]
MLT >CVMW;7T GM+B*XB;I)$X=3^(IEWJ-C8;?MM[;VV[[OG2JF?IDUC>&+/2
M(+[5KG2=1DO_ +7*DEPX=&B$F"#MV #=C!;ZK61XAOK!O$&M6JM!;7::2$GF
MNGSYL;;]J1H2!U/+>I P: .SDN[:)HUDN(D:7/EAG +X&3CUX!-0KJ^F-:?;
M%U&T-MNV><)UV;O3=G&:\YT]-/U"+X;F407#>2\,A.&)Q;'Y#]#C@^M;.C:1
MI^H:QXWT-X8ULIIX@T*  *7@7+ =CGG/J* .Q;4+)$A=KR!5G.(F,@Q(?]GG
MG\*L5Q'A&:\U26VTW4XCYWAHM#.Y7"RS8*1NOK^Z)8^[BNWH **** "BBB@
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
M><)6" 2E<LHS[Y_*IVU73DL!J#:A:K9D9%P9E\LC_>SB@"RJJBA$4*JC  &
M!5:ZTO3KV42W=A;7$BC:'EA5R!Z9(]S31K6E&>X@&IV?FVB[KA//7="/5AGY
M1]:$UG2Y-/\ [134K1K+_GY$ZF/_ +ZSB@"X  ,#@"J4NBZ3/<27$VF6<DTH
MVR2/ I9QZ$D9/2GV^JZ==WDUG;7]M-<V_P#KH8YE9X_]Y0<C\:1-7TV6\^Q1
MZA:O=9(\E9E+Y'7Y<YX[T /GTZQNF@>XLK>9K<[H3)$K&(^JY''X4?V=8_99
M+7[%;_9Y26>+REV.2<DD8P>:@GU[1K4.UQJUE"(Y!&YDN$7:YZ*<G@^U3/J>
MGQ7<=G)?6R7,H!CA:90[@^BYR: %.G6+3QSFRMS+$ (Y#$NY .F#CBD;3-/:
M_%^UC;&\48%P8E\P#TW8S4D=Y:RW,EK'<PO/$ 9(E<%T!Z9'44V\O[/3XA+>
MW<%M&3@--($!_$T ,.E:<;O[6=/M3<YW>=Y*[\^N[&:MU6;4+)+-;U[R!;5@
M"LYD&P@],-G'--CU33I;#[?'?VSV@_Y>%F4Q]<?>SCK0 6^EZ=:7+W-M86T,
M\F=\L<*JS9ZY(&33H=.L;:=KB"SMXIGR&D2)59OJ0*2WU*PN[>2YMKVWFAB)
M$DD<JLJ$=<D'C%1#5;"[M[G[)JEJ6A3+R)*KB'(.&89X'!Z]<4 6+JRM;U E
MW;0W"@Y"RQA@#^-)-86=Q9_8Y[2"6VP%\EXPR8'0;3Q56RU"V@TVP%YK%K<R
MSQJ$N RH+EL?>4 XYZX&:L6.I6&IQ-+I][;W<:,49X)5<*P[$@]: $;2].>S
M2R>PMFM8_N0&%2B_1<8'4UC>+?#]SJ?AAM(T6WLX=\T<A60F-%"R*YP%4\G;
MZ=ZUH]:TJ67RH]3LWD_NK.I/7'3/KQ3M6U6ST33)]1OYEAMX%+,Q[^P]2>PH
M =8V%K91DV]C;VC2 &18$"@GZ@#-(NEZ<M\;Y;"V%V>LXA7S#_P+&:AL]<T^
M[TB+4_M=NENZJ6<S*51B!\I;IGG%6K2]M+^#S[.YAN8LD;X7#KD=1D4 ,;3-
M/:X:X:QMC,X(:0Q+N8$8.3C/2HSHFDF(0G2[,QAMP3[.F ?7&.O K'UK6KO3
M/&>BVCWD,.FW<-R\X=0-OEJI!+D\#YO;I6[::C8W]I]KL[RWN;;G]]#*'3CK
MR#B@!)-,T^6WCMY+&V>&+_5QM$I5/H,8%)=:5IM\(Q=Z?:W BXC\V%7V?3(X
MHL]4T[46D6QO[:Z,6-XAE5RN>F<'BI;J\M;*(2W=S%;H3M#2N%!/ID]Z &W%
MC9W<:QW-K#.B?=62,,!] :3^SK$W"7!LK?SD "2>4NY0.@!QD4^UNK:]MUN+
M2XBN(7^[)$X96^A'%076LZ78O(EYJ5I;M$H=Q+.J%%) !.3P,D#\: )(=.L;
M<2""RMXA*,2!(E7?]<#FF-I.FM%%$VG6ICAXB4PKA/H,<?A1<ZOIEG-'#=:C
M:P2RXV)),JEL], GG-)=:QI=B91=ZE:6YA4/()9U78I. 3D\#- #[G3-/O+B
M*XNK&VGFA.8I)8E9D^A(R/PI+C2M.NYQ/<V%K/*!@220JS ?4BGB^LS9"^%W
M ;4KO$XD'E[?7=TQ3;;4["\@DGM;VWGBB)#O'*K*A'7)!XH BGTBWN-9MM3D
MCB,UJI$3",!\D$<MU(PQ^7IDD\\8N2Q1SQ-%+&LD;C#(XR&'H161?^+_  _I
MUC-=RZM9NL4)GV1SJS.N< J <G)X'O2OJL&H6VF7%GK5I:K-.A9<I)YXQS$I
MSPV2.1SQTH NQZ1ID-D;*+3K1+4G<8%@4)GUVXQ3Y-.L9I8YI;*W>2( 1NT2
MDH!TP<<5#<:YI%GYWVK5+.#[.5$WF7"KY9;.T-D\9P<9ZX-6)+VUAMEN9;F%
M(&QME9P%.>F#TYH 8=,L&OQJ!L;8W@&!<&)?, ]-V,TY;"S6[-VMI +@]9A&
M-Y_X%UI+74;&^S]DO;>XQG/E2JV,'!Z'UIUU>6MC#YUW<Q6\><;Y7"C/IDT
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
M$T21<,T@60 @#OR,?A7<MIM@R*C65N43.U3$N!GKCBG)96D<WG1VL*2_WUC
M;\Z .&T&X\-Z]_PC]S!K4]S?60'V>R0Q+) =NUPRJ@(4 8.>.!C.1GT"H(K*
MTMYY)X;6&.67F21(P&?ZD=:GH **** "BBB@ HHHH **** "BBB@ HHHH **
M** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH *Q?%^MR^'?"]YJ
ML,8>2 *!N4E5W,%W$#D@9R1[5M5F^(-2L])T>6[U!$:TWQQ3!QE=LCJA)'<#
M=DT 9]JVJO/I=W8ZW'JFFW#G[0QA3.WRV(*,F !N"C!!/OZZEWK6EV$ZP7>H
M6T$C$ +)(%.3TSZ9[>M<&VDVOACQ3I%QX.U'-OJEV$NM+CF\R)HB"6F49.W:
M!UZ<@>Q:E[HLD_B/P_XHU*:TEFOY7^S,0/M,+D>44^7+':%7 .?E% 'H-]JE
MAIBAKZ\AMPP)'F.!D#J?H._I1'JNFRW$-O'J%J\TZ>9%&LREI$QG<HSDC'<5
MQD&KV'A_QM>V^ORBSMKS3;9;&6\;Y=B!A)&6/&[+9///Y4RZFTG1_$?@VXB"
M:=I*0WL433'8B@A2N2W3< 2,\T =BVOZ,EG->-JUE]G@<QRR_:$VH_7:3G@^
MW6J>H:WIUQ \5IXDM+*6&Y2*1P\;D-N&8\$]6''J*\]U.^LKCP7\0 L\;,VH
MF1%8X)!$04@'GG!P:Z7QVNEP>$;.>V%JD<E_9LDB;0& D7D$=<*/RH Z!O%.
MEKXG_L W,0NA!YK;G P2P"H,]6.2<#T]ZETF[BECOY_[:AU"%+E_G38%ME !
M\LE>NWKD\\\UA27=M;?%T>?,D8N=#CCAW''FMY[<+ZG!!X[<USK3$>%/%[6
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
MNCDC\@: ''4IKCPH^JW>JQZ+]LB$D$LH0BU4\KG=PS$=0>_ Z<WKFY0:OID
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
MY(D=HSE"R@E3ZCTJ2B@!J(D2!(T5%48"J, 4TP1,S,T2%G7:Q*C+#T/M4E%
M#3&A*DHI*?=..GTH=%D0HZAE88((R#3J* (S;PD8,*$;=N-HZ>GTIOV2V( ^
MSQ8'0;!4U% &+:Z9JLNLM=ZM>6TMO;R.UC#!$5*!A@,Y).6"DJ,8'S'VQM44
M4 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110
M 4444 %%%% !1110 4444 %%%% !1110 5ROQ&2Z/A=9K>)YHK:\@GNHD&2\
M*."PQWZ _05U5% '&WTD&L^.O#=_H]S%<+;17#W4T#AE$+( H8CU;H#Z$]J;
MX*U*Q;5O%>+VW.-5:0_O!]WRT&[Z9!Y]J[)(TC!"(J@G)"C'-.H \ML+^QD^
M!.I*+J%BL5XI&\9#--(5'U.016A)KEKHOB;0=4U&=5TBYT;[-#=?>CBFW*QR
M1TW*H&?]GZUZ%3719%*NH93U!&10!Y[KEWINGIHFLV<$UMX?COYGN)K967F1
M"!/@#.W<6&<=#QU&>A\*IH<UWJ.I:))+<K>&,SW;2,R3.H(PN>X&,D>H[@XZ
M(@$%2 0>"#0JJBA5 4#H , 4 <?)=C2_BC-+J<BPVU[IJ1V4\IVIN5R7CR>
MQR&QW KE-6CAM?".M33/''IU[XB2:S60@*\?FIO9<_PDACQQCGH:]:=$D7:Z
M*R^C#(IU $4'D&(26_EF.7YPT>,/D=<CKQCFO/;IY;[7OB%9Z7.C7TMC;I"B
M.-S,(G! ]^<>Q(KT>B@#SF_N;77_  EX8MM(=/[0BN[4QQ(?WEL8^)-R]5"@
M,#GV]14EEK6DZ=JOB;0O%)"2WM\TT22QLWVN!T545,#YB NW YKT 1HK,ZHH
M9NI Y-!1&96*@LO0D<B@#S_5]3LDU;5-+\I-)N/[(C"C9NFNP5?$2#D;4Y!P
M"3GMC-4;+4K.*U^&]_+.J6MO"\,DS?=5S:[0N?7=Q]>*]/P,AL#([T8& ,#
MZ4 <!-*UUXT\7VNFW""_FT>)( K@-YNV3'X@E?I5*ZGM]:^&>B:9IC*NKPR6
MD45N.);>:-E$A*]5V@.23V^M>FTT1H'+A%#-U8#DT <)97>F?\)SXV,T]KG[
M+; [G7.T1,''T^[G\*U_AQ/%/\/]&,4JR;+94;:V=K#J#[BNFHH X"TU"TL=
M9\<V]U<)#*S"8(YP3']G W?3/&?7 ZFLF*\TZW\$_#]OM%M&4U"V+$.HV_NW
MWY].2,^YYKU3 SG'-+0!Y-XIU>RNM!\4VT3I8R6^I*9+*-,R3%9(\SN2"0I
M!!&!P,DYQ73#4;2/XJI*\P5+W1(TMF(/[YA.Y(7UX(/TYZ5V6U>?E'/!XZT8
M&<XH Y7XGR11_#K6/-=5WPA5W'JVX8 ]ZS_$$H.JQZCHGB"VLM4ATU9##<E6
MMKR#<Q /.1@@_,.F1ZUW=-:-'QO16P<C(SB@"AX?N6N_#NG7+V9LC);1L;<_
M\LOE'R_A7GZ76G-X,^(96>V+/?7F/F7+9C7;]?FSCWSBO4:* /.[J]T^*^^'
MS)<VR ;L$.H !@*_JW'UJMI]Q OPWU[0=7*_VNC7:36[_P"MGE=F:-E7JVXL
MNTCT]J]-IIC0N'**7 P&QR* //K+R;?QYX>L=6G@DOXO#YAE$C@DRY0$<]21
MO^HS4+WVC6>N^(M$\47=Q9B]G\R%=SK'=6[1J@5=HY(V[<#GTKTFFLB,59E!
M*\@D=* *NDP16NCV=O!#)#%% B)%*2710  I)[@<5Y=<ZA:1?![Q#827")=0
MW5PDD1.&1FN"5!'8D<C\?0UZ[28 [=: .(O[W3XOB+X:^SSV^TZ?<HBQ.OS
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
M44 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !111
M0 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%%
M!1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %
M%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 44
M44 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !111
M0 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%%
M!1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %
M%%% !1110 4444 %%%% !1110 4444 %%%% !1110 54U+5=/T>T-WJ5Y#:P
M XWRMM!/H/4^U6ZK7:A%^UI:&ZGA1O+1-H8YQD L0!G ZF@!;#4+/5+..\L+
MF*YMY!E)8F#*?QJQ7(?#F:U?2M1BBM9;*[349GO+24 >1(YW;5QQMVXP>^":
MZ^@ HHHH **** "LBY\5^'[*6:.YUBTA>!MLH>4#8?0^AYK7KB?BI;PVWPPU
MI88P@=HY&QW9IT)/YF@#IK'7=*U.Y:VLM0@N)D3>T:/E@N<9QZ9K0K+U^_MM
M$TZ?6Y8/,EMHBB8X+;V4!?Q8+V-9EOK.O'7([)K-;FUN(&9;I;.:W6"0<A7W
MD[@>Q&.>U '3T5P=EXJ\57?@R3Q1]ETE;>.RGG,),F\O&3^&W"GCKG!SS@6G
M\2>(8;K03);Z<\&M)M5%WJT,GE[P2V2"O!XQD>IZT =?+*D,3RR-M1%+,3V
MZU'97MOJ-E#>VDHEMYT$D;@$;E/(/-<W8^(=99O$5A=QV4M_HZH\<D0>.*57
M0NN02Q!&"#S5;_A+=8;1?"U[#:V3/K3QQS*Q90C,A;Y>N!\O?/TH [2BN5T_
M7]=:Y\0Z=<6=K>:AI21R6ZVI,2W D5BJG>3@Y4@G-)IWB2_NO$K:&UQ83F33
MC<I<6\3;(Y%<(R$;R' + \$=,4 ='?W]KI=C-?7LPAMX%+R2$$A1Z\5,CJZ*
MZG*L,@^HKS[2O$&NZ?\ "JX\0/-:WMQ&9Y0)HV7I.X;)#'/L %P.*Z2;7;F?
M7+70['R([J2Q^VSRS(76-,A0 H(R2Q/?@#OF@#?HKA=0\<:I9:!KK_9+0ZIH
M<Z1SJ=WE2(Y&QU&<C(.<$\8ZUK0:UK$'C*'1]2BLS;WEK)/;M;[M\90J"K$G
M#<-U 'TH Z2BLCQ%K9T:"T2)%DNK^Z2TMU<_*';/S-CG  )]\8XS5--<U&T\
M4KX?U VS/>6SSV5U%$RKN7[R,A8],@Y##(]* -&Z\0Z397B6ES>".225802C
M%!(PR$+@;0Q!! )!Y%/U#7-+TJ6**_OH;9YCB-9&QO/H/4US7@**ZG77?MLM
MO/$-;N@4\@@[U<88$L< 8X&,CCGBD^(CM'=^%9$B:5EUN(A$(!;Y6X&2!^9H
M Z6VUW2KR[6TM[^&2=E++&&^8@=2!^-:%8]O>75]JS17&CR6HMX1+!).Z$LY
MW*0"C-@ =<^M<O)XT\1IX3O?$)MM-$>G7<D4\&)"94238=IS\I]R#GT% 'H%
M%<R-;UFT\66>E7T5BT&I6\TEOY.\/$T>TE78G# ANH ^E8A\8>+'\-W>OPV&
MEM;Z=<3+<PEI-\J1N0Q0YPN ,Y.<\\#N =HVKZ>NK+I)ND^W/&91 .6VC&2?
M3J.M7:XUKJ._^(N@7D.?+N-'GE3/7#-&1_.AO%FJ7/A:X\5Z?%:2:="TDBVS
MJWFRP1L59M^["DA68#:>,#- '945S"^)KH^)=)@/V?\ LC6;4RVDWEL)#(%#
M;"=V!E3D'';'O575_%&LV&COJEO#930OJ2VL(=74F(R"/=U.23G!X& #SG%
M'8T5R?\ ;7B1?%<OA]DTPR2V7VRWG"R;8E#A"K+GYSDC&"OX5%9>,[I]"CDO
M((AJ3:G)IA$*.T9D0MEPHRQ&U2<=<\9'6@#L:*XRZ\4>(+&QUV633XY5T^U-
MS;7;VTL$4H )9"C$G<,=C@^U2VWB/6TUK08+Z&Q^R:W"Y00A_,A=8_,Y).""
M,\ #'J>I .NHKD_!-QJMU<Z\^H7L-PL6JS0@+ 4(VK&!CYB N!TP3WS764 0
M7=Y;V%L]S=S+##&,O(W11ZD]A45KJNGWM@;^VO(I;0 L9PWR8'4[NF/>HO$
MSX<U,'_GSE_] -<%J'V@? "W,$J1K_9T0D!0DLI*C ((QU]Z .^L-=TW4[J:
MTM;@M<0*K21/&T;!3T;# 9!]1Q5B^OK73;.6\O9T@MXEW/(YP%%%M!(@\RY,
M$ESC:98H2F5SD#!8G]:X:TN-5N_#_CEK^]AN$AGNX0JP%2-MNF,?,0%QVP3G
M)SS0!W=K=0WMI#=VS^9#/&LD;X(W*1D'GV-35PFA:UJ^F6WA&UN(K,Z=J=K'
M @0-YT;"'<K%LX(..1CCU-6;OQ;JTUG<:AHME]K2WN6A2T^QS,]PJ/L<K*/E
M4Y#$#!X'/)P #LJH7&N:9:W36LEVAG0 O$@+L@/0L%!('UJ/7M2ETWPOJ.IP
M1GS;>SDG1&'1@A(R*R_A[;QP>!M.N5)EGO(OM5Q*3EY97^9B3W.>.?04 ;UC
MJ-EJ<3RV%W#<QH^QGB<, V <9'?!'YU9KAI/%<=MHWBC4M$TF2"YT^X=KH7@
M01O,JJ&QL8D\*OIGUK3&I>)X]/%Y-;Z9Y<[PF-E=@+:)AF1Y=Q ;;Q@*1G-
M'345Q+>,M271_$T\4=G<3Z&=T<H5TCF0QAP=N2<XXZX/459M_$6MQZ[H=K?Q
M6/V76H',8A#^9#(D>_DDX8$9X &/4]2 =;17!:)X@U'3M+\3:MJES%>+::I-
M L:0LA9P8XT .XX7H,8)YSD]]-?$>J66J,M_:F?3!:R3O=Q64L'V=D&2K!R=
MP(!P1CGM0!U55+?5=/NM0N=/@O(9+NUQY\*L"T>>F17.6WB76YKG29TT_P"T
M6>H,HGCCLYD:T##*L9&^5P.AP!ZBMTZ=!;:C=:PL(DN6AV (@#%1SC/<D@<G
MT ]<@&C17+^%O$T_B,P3Q7=C+"86-U;QQLD]I+E<(P9B2/O#.!T]ZT=>UHZ4
MUC;1+NN;^<Q1?NVD" *SLQ5>6P%Z#N1R!DT :]%<1J'BSQ#IVBZ]<R:=$S::
MJRVUU);RP17"$<C8QW!E/'7!]JLW&O\ B&UU_2[!X=.>/6(93!C># Z*&)8Y
M^<8)X '/&>] '745PUQXQUJQ\.^(YY[>QEU#0IMA9 ZQ2J55@=N20<-TS^-6
MF\1Z]IOB'2H-7M+'^SM78Q0M;E_,@DV[E#D\-GV _3D Z*PU?3]4DN8[&Z2X
M:TD\J;9G"-C.,]_PJ[7 V>MP>')?'.KW"%TMKY&V*<%V,2!1GMDD#\:V+W7-
M6T/4M)CU86DMKJDXM=]O&R-;SL"5'+'>IP1GY?7VH Z:BN4LO$]]&_B&VU86
MT=UI/SQ+#&V)8F7*/@MR2<C Z$8SS1-K?B*'Q!IFC/#IPDO+*29Y,/A)%VYX
MSR!N]><=10!U=%<)_P )5XG;P]K5\L.EB?0;B:.XRLA6X$:ASL&[*?*1R2W/
M:M:X\327%W;65@/)EFL4O6D>UDN BN<(NU,'DAN21T[YX .EHKB7\6^(H['1
MGFTB"VN;W4?L4T<^] >&(=,\A2%SSDC/0T]_$&O>1XHT^X>RBOM)MEG@N8(6
M*,CHS#*,WWAL(SG'(X[$ [.BL3P:UV_@_29+N=)GDLH6#*A4X,:_>RQR?4\9
M]*H2>(=5AU?7=,G-C%)96BWED[1L%EC.[);YNQ7:<>N?:@#JJJVNHVE]-=0V
MTXDDM)/*G4 _(^ <?D16#HOB2^UO2=#N8#;+<7Q8W<9B;]TJ B0 ;L@A]J\_
MW@<5GWGB/6KCP_XP9&MK.YT=I%ADB1GRJQ!\\D?-SUZ#T- '5W>KZ?8WMK97
M-TD=Q>-M@B/+.<9Z#Z=:NUY]JGVY;7P0[-#<7)O$\OY3&N#;MC=RQ^I_2NA\
M.ZSJ-YJVL:1JJVIN-,DBQ+:JRI(DB;E^5B2",$'F@#H*I6FKZ??WUW96MTDU
MQ9%1<(O/EELX!/3L:Y_Q)<ZJGC7PU9V=[##!<-<L4> OEDB/+889&&.!Q@\\
M\8SXY-7B\;^,'TC[&)DALW+W09EXB? VJ0>?7/'H: .]HKD;3QE)J=EHXMHQ
M#=:C9&\D/V>2X6)054C:F"<LW!R!@'V%:OAK4]2U*RG.JV#6MQ!</$&\MHTG
M0?=D56Y (/0\C% &A>ZC9:;$LM[<QP*S;5WMC<WH!W/L*AM];TRZN%MH;R,W
M#9(@8[9,8SG:><>^*Y?1)6U;XJ^(9;OYO['@@M[-&_Y9B12SL!ZDCKZ<5U=Y
M9V;7,&I7"A9+$.RR]U4J0P^G0_@* +E%<7/XOU6/PFGBY+>V?321*UIL;SA
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
M\K">?Y@DX3/"Y4#&>E3V_AS5W\3QZY?ZG:LYL&LY88;=@N"X;Y26R.@Y.>_
MH Y30M;U_P -_#O1-9"6,NCPQQI<0;7\\1L^W>&SC()'RX_&NDG\57#>);O1
M4NK6RO(9HQ;VUW$1]KB(4LR/N )Y8 #."O.>R67@V[7P[:>&K^\MYM+M70DQ
MQE9+A$;<JL"2%Y R1G.,<9J;7/"UWX@AN+&^FM9+62X6:WF,9\^U ()"'U.#
M@\8ST.* )3XBNK;QAJ6G7OD+86>FK>JZ*=X&Y@=QSCC:>@KG/$]]JFL>#-+U
M>5[>.UO;VTE%L(SNCC:12GSYY;IGC'/MSTTGAN:X\57NJ7,T+VEY8"Q>W"D-
MMRQSNSWW$8Q6,?!&O'PY!X>.M6C6=G/$]M,]JQEV(X95;# '&,<8S[4 ;46L
MZA_PGESH<B0&U335NXBBD.29"F"2<?PGMWK,MO%.JQZUHEE??8V?4GEBNK>!
M2WV1U0L%\P,58C&"/QXK1D\.WLWBJ?6'O8E2?3?L!6)"KK\Q;>#G@Y8\?K67
M9^"M8MX-!CDUBTSH<I\K99D>9&4*DM\_W\'KTSDG- %C1M6\3ZQJ.H1JVF1P
M:=J;VTF8GW21A%(Q\W!RWXY[8YBL?&-\?#8O+R*$WTVJ/I\2PQL4!$A7.W)8
MX52<9YQCC-:OA_1+[1[K5Y9KFWF74;MKM51"IC8@+M)R<C"CL*RE\"W,GAF?
M2YM36.Y^WM?VMW!&08)2Y<':3S@DCZ&@"1_$/B&R&KF32Y+R&VM/M%I.MJ\)
M=AP8V0DDD=>,9&1UK1\,ZW_;OG75MJ=GJ%CY:>6\$921'.[<KJ6)'&W' []>
MM1V^E^)GL96OM;MS?[ D#6]N4B3# EF7=EB< =AC('4T_2O#GV3Q'=Z[*MO!
M<75NL,D5JI".0Q)D;/5CD#IP!U.: *7B>;4U\8^%[>SO8X89YK@E'A+@LL#\
MMA@2,$X''//-,OO$NK7 U0Z)"))-.F,$<1LY)!<2*H+ N" F2=H],9/!Q6GK
M^A76IZCI.HV-Y%;7.F3.Z^=$9$970HPP"#G!XYK//A?7-/UV\O-"UJ&VM-1<
M2W,%S;>9LDP 9$P1R0!P>,T 0S:]XFN_$46D6,-C9O<:0+X"[C=F@?>JE6P>
M<9(XQUSSC!(]9\3WFJ>(--AETR&32DA:.4P.X??&7P1N'TSGC'0YXT8_#UY#
MXOM]:2\C:"'3_L)CD4M(Z[@V\MGKD#MZTEMX?O[;6M>U$7-NPU=8PB%&_=%$
MV#)SSD'/:@#'@\6ZY)I?AW7'2Q6RU6X@MI;58V+J9#MWA]V.&_AV].YK8M]8
MU2?QAJNB_P"BB.VLXI[=MC9RY8?/SS]WMBL\>#=13PMHFC)?VP?2+J&X$QB8
MB3RVW*-N>,]^:TX=#OX/%E]KBW%N1=6J6ZPE&^4H202<\\L>,4 <[8^,?$4W
MA[0/$%PNG_9=0NH[>>W2)]^'D*!U8M@8X^7!^O/&AXI\3:OH<.JW2_8XTLE2
M2U@93(]TF!O9MK909)4$CJ,G.:BB\$:C#X.TOP^NH6I;3;J.=9S"V'"/O V[
MO7J<T[4?!6J7R>(+==6@2UUL!VW6Y:6-P@7:&W8V<#MG&<8ZT /GN]3G^)>G
MPPWL:6KZ5).L+PE@,R1AN0PRQ['H/3K44WBO6KO3SJFBV1NXUN61+,6CDS1+
M(48B7(4-P6'&!TY-:)\-ZB-<TO5DU* 3VMHUI<@VYQ(A96R@W?*<KCG/XU5L
M?">MZ3=7-IINNQQ:)<S/+Y#09F@WG++&^< $DX)!QGIGF@!;CQ5<-XCN]%2Z
MM;&\BDC^S6]W$1]KC(4LR/N SRP &<%><]NKF$K0N('1)2/E9T+*#[@$9_,5
MS.N^%;KQ!!<V%[-:R6LDZRV\Q0^?: ;<A#ZG!P>,9Z'I73OOV-Y>W?CY=W3-
M 'G/AO6+K1/ 3ZA<M;W;2:C-%;Q&(J3.]PR@LVX\9)/3('<UT5QK6J:/XCTW
M3-0>VN8-561(9XXC&8IE7=AAN.5(Z=QCO5.W\"ROX-G\.W]\C%IVN(+J",JT
M4AD,@."3G#'UY'YUIKHE]>ZEI^HZO-;22Z:KF!(%8*\C+M+MGIQG"CID\GB@
M"CX5U?Q'KKFZN&TZ.S@O+BVG1(WWOL)52I+8'(&0<]ZU];OKVSDLQ;M;P6TC
ML+FZG(/E#;\H5<C<S-@=_H:@\*Z'=Z!9W5M<W,-P)KJ2Y4QQE=N]BQ!R3G!-
M)KVAW^H:QI6J:??0P2Z>T@,=Q"9(W#@ G 8$, ..>YH P)O&NLKX-N=5BBM#
M=6>IFQDWQ.JR 2B/<%)RI^8<'.*U;;5M=3Q=/H-Y+8MYVGF\M98H7 B(<(48
M%OG'S Y&W.#TK/F\"ZG)H>I:6-7@9;W4OMRR/;G*DR"0@X;G)';&!^FM-I-U
M%XLB\2W%Y:Q06^GM;3(5(PI8.S[B>,%>XZ4 4-,\3ZO>>&YS.+*/7H;\V+0+
M"_EK)O '&_)&P[\YZ9]*ZN;[0+1O*:/SPG#,IV[OIG./QKEM(L]+UCQM<^(]
M,N1<6HMXT9XFW127&&&X$=66,[3_ +^.H-=7.)&@<0E1(5(4OTS[T </I?B[
M7G\)0>*-02P-K/ %2VA1Q(9VE")SD_+SR,9^M:UEJVO?VZ;66R:[L9+=G6X%
MJ]MY<H_@.XG((Z'MWS4-EX*8?#__ (1._O%=439'<P(492&WJV"3R&QW[58L
M=$\12V4UMKFO1S_N'AB>T@,399=OF.<G+ '@# SSSQ@ I6/BC5!K^B:?>M:2
M-J23+<Q0(2+25$W[!(&*MCD$=<\\=*?HWBJXUC6#9+=6L%S!=21W>FS1%)DB
M&[:RDM\V<(20",'M45CX.UBW;P\TNKV>=#W1H(K0J'C:/82<M]_'?IGL:MR>
M%KN_O=+N-3FM9)M,N?.CNXHR)G49Q&2>@Y&3DYQT&<T 5O\ A)=7O_#E_P"(
M]*%J;6T>8Q6TD;%IXXB0Q+@_*3M8C@XXSF@>*-5U/7=+M=*-G'::II9O8Y)X
MV9XSE>H# -][IQ]>*E@\(WUA8:GHUC?0II>H/(R[XR9;42??5><,.3C.,9YS
M5A/"\UIXBTW4+&:".STZQ-DENR$L4.WG=GC&T=J )O"&LWNL:==?VBL/VNQO
M9K.5H 0DAC;&X DD9&.]5+>[;4?B9>6SG]SI%A'Y:'IYDI)+?7:H'XGUJ[X9
MT.ZT,:D+BXAG%]?2W@\M"NPN<E>2<X]:K/9'2O'C:N>+75+5;:5^R3(WR9]
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
M'K4J^(-8U3Q1:Z?IEQ:0V5]HW]H122V[,\>70#(W8;ANG'7OCD [&D90RE6
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
M#'OV@\' R.: ,&'6-;M/$>@0WMY;SVNLP2EH4@V&!DC#Y#9RV>0<X^@[5O\
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
MW^IY_I4=_P" KB]MM=LEUUXK/693.\?V96:.0A0?F)Y7Y1\O!XZ^H!8U(?\
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
MVC+,P[G!^[W_ "'45-+\7:EJ.@^'4=2;_53,LLD"IN AW!BH<A<D@=> ">*
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
M<0XV2G'WACC!ZU2\6ZX_A[0);Z)%>=G2&$/]W>[!03[#.?PH VJ*Y6^U+5-
M\1:1:3WQOK/56>W)EB16AF"[E9=@&5.""#R/6H?"EUXBUB>>ZN]7A^SV.I7-
ML\"6H_?JA*J=V<K@X/?W)SP =A17,^+=3U>PU#0X-,N8(EO[S[/()8=_\#-G
M.>@QT&,^HK&F\5:SX6O];T_6+B/4S:Z>+^SG\H1$@OLV.%X^]CGTS0!W]%<Q
M WBI-;M5 EET^:)Q<O=+ /(D RC((VR5)X*DDCUK)T34_%VH>$#KZWT5W.D5
MTJ6*6H'G.LC*C9SD$;?NCKQWYH [VBN%A\<6\6A:QK<&IRW\=C;*39742Q3P
M39(VN%48!)4=^AY-6]2U35_#SZ)>W-]]NM]0NHK2ZB,2*(VD'RO&5 ( /9BW
M!ZYYH Z^BO/IM7\3S6'BN>+6(8#HD\AAVVBG>J1!]AR3@'GGD\]>,5LRZM?W
MBZ5*+U;*"]L/.V6R"6X>4A2 JE6&P G)]<9(H U]:URST&UCN;WS=DDJ1+Y<
M9;YF( R>@Y/>M&O-]3UBZU[X3Z9J=[M^T37EMYA08!*W 7..V<9KTB@ HHHH
M **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@
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
MGSUF^S?/GS/-Q]['WOTXIOB$Z5XKNX?#)=KB_L[J*6Z,<3H(% RQ)/&&4E,
MG[_L:[*L6\\3VEG<21K:W=TD$Z07$UM&'6!V (##.[HRYP#C(S0!L@ # X%8
M(\-SV>LWVHZ1J(L_[2P;F&2#S5W@8\Q/F&UL=<Y!]*WZ* .:O_!D,WANRT'3
M[LV5M9R1RAC'YC,R-N!)R.K<GUSVKHE$HB 9T,F.6"D#/TS_ %K.UWQ!9>']
M(EU2Z$LL$3!6\A-Y!SM^@YXY-:E '(-X$ED\)W_AY]6S%?7#3O-]F^92S[V
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
M!D_E6?H>N6OB"P:]LTF2-9GA(F3:VY#@\9]10!I4444 %%%% !1110 4444
M%%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4
M444 %%%% !7-^/\ 4M0T?P9?ZCIER+>YMPI5_+#]6 (P>.]=)65XET-?$FA7
M&D27+6\5Q@2.B@M@$'C/ Y H Q[Z\UC2M2LM-EU*6]EU:>1T,,$2-!&D>YD3
M<<'G'+9.,]3S69K>I>+]$\,:S=RW'EBVN(38SS)$TKQNZJRN$^4$9X..:Z/7
M?#"Z_86D<U_-;WUE();>^MP%=' QG'3!'4=#7-^.]/;2_AYJ*WVK37U]=26Z
MFXE549MLJD!54   ;CT]2: +TEYXAT7QGIEA>:JM_9ZTDR*/LRI]EE1-X*XY
M*D<8))]ZS].UW7X?"-SXIOM6%PEC]K0V@MD59BKLJ%F'*X('3M[\UU4&D&ZO
M[?5KF_2\FMH72S9(PL:;P,O@$[F( &<@8S@#-0Z5X3M[#P_=Z'=7+WUG=-*6
M$B!2!(26&1[DD>E %:V/B>/6[)U,]QI\D;B\%WY"[&QE&C\LDX)X(.>,50\-
M>);C4-2@L]1U"XM-4@C<WVEW4"(&./O1$+\R@CCYCQR??2T7PE<:6J0W/B"^
MU"UME*VD$ZH!$,$ E@,N0#@9.!Z=,36OAEEO-,N=0OS>R:2C+;2&((Y++M)=
M@?FXST ZY.30!BV6J^)]:TO3=<TI9C]HE622VE\@6Y@).5!SO# 8Y]0>,<"*
M:_\ $=U)XM2+73;C2&#6Y2UC)_U0?:<@_+G\??M6GIO@?^RKAX;76[U-&:4R
M_P!EX0H"3DJ'QN"9_A!&>^<FK*>%'277'&HM_P 3L8F'DC$?R;,KS_=]<\\T
M 8-Q<WNM:UX%O3J-S:G4+26=XX=FU'\@-D!E//SD<YXZ8YJ3Q3X@U?2+/5[Z
M#4@\MC<Q^5;VT2O$D1* K,S+D.=QX#9&5([UK#P:%M="CCU6XBFT-3%!.B)E
MHR@0J001G:!S5:\^'\=W:ZQ9#6;R*RU6<W+0*J$)*2"3N(R1E1QF@!AAN7^+
MC(-2NEB71UF$0V%1F;!7!7@':"3][WZ4FG7?B+5=&\310:H1J-CJ4T%G*(8P
M,+&A5""",$DY/7GK6NWAK/B&VUI=3N5N(K46LWRIBX0-O&>./FS]W'''%2Z%
MH1T2;49/MC7']H737;AD"['8 $#VPHZ_G0!FZ)K5QX@L=!FM;Z5#)"9[[Y$R
M=ORE&^7Y3YF>F.$:LZWU?Q-KFD6VMZ*LY:6<L+>3R!;O"'*E2<^8&P.OKGC%
M=+HOAZST*XU&:TW9O[DSN#T3/.T>VXLWU8UDVG@?^S[R=;/6[V'2+B5I9-,
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
M!?7;W;!D"['?[P&.W2HM4\./>Z[:ZS9ZG-874,+6\ACC1Q)$Q#;<,#@Y&0:
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
M  R!6EX2UZ+5]0GC6_O4N(80+C3+^,)- ^>7X49!]N!QTS0!UE%%% !1110
M4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1
M110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%
M% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110
M4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1
M110 50UG2UUG36L7N)K8-)'()8" ZE'5Q@D'NHJ_10!B/X=>\O+.;5-2FO4L
M91-!$8T0>8 0KMM')&3C&![4B^%;0:OJ=ZUQ.\.JH!=6;%?*<A-F>F[[O&,X
M[^F-RB@#G;/PA%;VME8SZA<7=AI\BR6UO*%^4K]P,P&6"]A[#.<5'-X*C_MN
MZU&QU?4-/2^8->6UNZA)F QD$@E">Y4@_2NFHH Y^X\(6EUK,NH2S.R2V']G
MFU**8O)SG&,9SGWJ[X?T9M!TJ+3O[0N;V*!0L37.TNJCH,@#('O6G10!CZMX
M=BU'4K758+J:RU&T5DCN(@IW(W5&5@0R]_4'H:EL](>*^%_>WTM[<JACC+*J
M)$IQG:H[G R22>.U:=% '-KX-06>MVO]J7)36V=KCY$RI9=K;?EX^48YS4G_
M  B:_:=#G.I7)?1%98,JG[P,NP[N/[O'&*Z"B@#GV\)0_:]6GAU*]@751NDB
MC90L<FT+O4[<YP!P21GG'3$\/A\#47U.XO9)KXVAM$G5%0HA.XG &"V<'/3C
M@#G.S10!6T^U>RT^"UDNI;MXD"M/,07D([G'>K-%% !1110 4444 %%%% !1
M110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%
M% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110
M4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1
M110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%
M% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110
M4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1
M110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%
M% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110
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
MJEM!I#:J/-EMQ#YP\J-F9EQD87&?\\T 4?[!O_\ H:M7_P"^+7_XS1_8-_\
M]#5J_P#WQ:__ !FN<U;Q/-J/ASPWK5O<W.GK<:G9BX3#1HT;L"P+,!N7'<'!
MYKJ+#Q+I&IO>);7?S6(#7"RQM$8U()#?.!\N >>E $7]@W__ $-6K_\ ?%K_
M /&:/[!O_P#H:M7_ .^+7_XS4MGXETF_N8[:"Y;S)H/M$0DA>,2Q_P!Y2P 8
M<CIZU3?QWX:2(RMJ0\L3&!W$,A5'SCYCM^49XR<#KSQ0!/\ V#?_ /0U:O\
M]\6O_P 9H_L&_P#^AJU?_OBU_P#C-;$CB.-I&#$*"2%4L>/0#D_05S&F^/=+
MN="EUB]%Q9VR7#Q;I+67  <HN2%(R<<^A.* +_\ 8-__ -#5J_\ WQ:__&:/
M[!O_ /H:M7_[XM?_ (S5K^W-/_MA-(,L@O7B\Y8C XRG][.,8SQUZ\4W^W],
M^S27!G98XY_LYW0N"TN<;%4C+'/'R@T 5_[!O_\ H:M7_P"^+7_XS1_8-_\
M]#5J_P#WQ:__ !FKFGZS8:I+/#:S$S6Q FADC:.2//(RK '!['&#3K[5+/3G
M@CN92)+ABL,2(SO(0,G"J"3@#)]* */]@W__ $-6K_\ ?%K_ /&:/[!O_P#H
M:M7_ .^+7_XS2R>+M!BTI-4DU!5M9)?)#E&!#YVE2N,@YXY Q4NG>(])U6_G
ML+.Z+W-NH=XVC="5/1EW ;E]QD4 0_V#?_\ 0U:O_P!\6O\ \9H_L&__ .AJ
MU?\ [XM?_C-87C3Q+%]@L3I>HW43MJ4,/F0QNL4P\P!U\S;@\9X!['K@UVQ(
M4$D@ =2: ,;^P;__ *&K5_\ OBU_^,T?V#?_ /0U:O\ ]\6O_P 9J2'Q/H\]
MS;P)=$&[)%N[Q.L<Y'9'(VM[8//:J]UXV\/6;WB2WYW6) N%C@D<QY&<D*IX
MQU/09'/- $G]@W__ $-6K_\ ?%K_ /&:/[!O_P#H:M7_ .^+7_XS5R76+"*V
MM[CSC*ETH: 0HTC2C&<JJ@DC'.<4[3-5L=9M/M6GSB:(.4;Y2K(PX*LI *D>
MA&: */\ 8-__ -#5J_\ WQ:__&:/[!O_ /H:M7_[XM?_ (S6;XEU&73/&/AM
MWU"6"RF:Y$\(;"/MB)7( R3D\#GG&!FM:U\3Z->:7<ZG%>JMK:,R7#RHT9B9
M>H96 (/(XQWH C_L&_\ ^AJU?_OBU_\ C-6;'2[JTN/-FUR_O5VD>5<+ %^O
MR1J<_C26NLV&IW,]A;SRQW4<8=HY(6BD56R P#J,CWP1FN2TOQ+>Z;\)9M9G
MGGN[V/[4(Y9$:0EEED"EL#@# ZX'&* ._HK!\/VC,ZZG'J.HR1S6ZI);7>_:
M9."9%#C*YY&%^7T%$_C;P];K=L]^6%D^RX\N"1_+.,DD*IX'<]!ZT ;U%8\?
MBO0YM0MK&.^#RW8S PC?RY3C.%DQM)QVSFI+[Q'I6G/.MS<./LP!N&CA>180
M>1O*@A>.><<<]* -2BLJ\\3Z+87-K;W%_&LEXA> *"PD4#.00".G3UR,=:H7
MWCC2H?"U]KUD9;R.S+1M&L#JRR ?==2 4ZC)('% '245QFL:X\7B7PM=_;KF
MVLKEK@7$#HT:N5A8KE2 QYZ>IQBMZS\3:/?Z=<7\%W^XMI#%-OB='C?CY2C
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
M,(SG# @=^14UQX>M-6\$7EOHME+8-)*;RQ:7<)&F4AED(?E=S#OS@Y[UV5%
M'%3VVJ>)/A]JEZ+9H-2U>S^2W;@JH7Y8_P 3N/\ VTIFA:EH.NWMC=IIVHC4
M;$,TOVYI\6&5P^6D.WGI@<GKV..XHH \FWC_ (4]);!'^TC4MWE>6=^/M>_.
MW&?N<Y]*ZJ*X6'XGRS-',T5]I4*V\J1,R.1(Y/S 8& P//:NOHH Y3XG9?X?
MZG$BL\DJHJ(BEF8[U. !R> 3^%5M8U1)?%36GD2Q13Z:#!=6ML7DO"6;]UY@
M!VJ.N.#\V<@=>THH \LTV1X/"_@2ZEMKI8K"Z\NY_P!&<F,F-U^[C)&2!D#&
M:NR7=EIGB76[+Q':ZGY&JRK/:20"=HYU:)4,16,_>&W&"._IBO1J* .$@2VL
MO'^@PQVAM(8=)DA6+EA S,A6,MR V >]=EJ4;RZ7=QQJ6=X750.Y*G%6:* /
M+S>1OX!\'VYAG62TU"Q6='@=2GED>82".BXY/3GK6GJ-WY/C;7KBWM!?YT)5
MC@VEDN'4N3'TP3@CCK@UWM% 'FNGWJ3^*?"FH+]LEB-I<12-]C>.*%RJ815V
M@*HP>>>G).*JW#I)\.O&4"(QEGU.Z>*/8=T@>3*%1CD$#(QZ5ZI10!!9S1W%
ME#-$VY'0$'\*XOPGI\6J>"M2\-WT$T4AFNHYQ)"RA-\CE2"1@G!!&,UW=% '
MF./$9TS2/%,MG*^I:1*MB]KGFXCR8I6^K.5(]DSWK8\0V%UH[^%[\+)<VNF7
M3-?F-"Q)D0J9BHYX9F)QTW5VU% ')V,']H_$:77;%M]@FE+:O,OW)I3)N !_
MBVJ.2/[V/6G^*M1^PZYHL<D#QP3&8-?Q6QFD@.T81<*=I?IG'08]QU-% 'D<
MS;/ ^KV36]TLH\0F0)+"^YD^T*V>1\WRC)Z^_6NBU5VO/B!*MC+B2X\.RP03
MC.T2M(&0;N@..<>E=U10!Y1/JL,WPZT;2?LEW'J&FW-G%<VOV60NAC=0QX'?
M&1ZYKT+Q):7.J>%=2M+%BEQ<VDB19^4[F4X'/3T]JU:* /.[MQXC\':%I%G%
M)%JD%Q:^9"R%7LS$1O9A_"  <'OD8ZU/;SPKK_CQW.%GCA\MBIQ)MMPAVG^+
M#<<=Z[VB@#RNTN/[*T_PGJM_#?/ID6E&QNFMC*KVDGR'+!"&Q\F#]![5U%AI
M8O=-EF\,W=UH45Q=-.T[P>8]V2HRY68$C)[G!.,]#7644 <1JB36?BWP=!?7
MKWTL#W1FNFB5/O1$*6"C:N20!ZXK,FOFM8_',T&GKJ!:ZBDC@DA,B2)M16?;
M_&%.2<?W:]*HH X+2;N(_$;[:);ZXM[C10JW=Q;LBL1*6/\ " H ([ ?4GG,
MMG ^"&H6I5Q<,+I%A*'>6:9RH"]>00?I7J%% %/29H[C2K62)PRF)1QV.!P?
M0UQ=I-$)O'I8X$S$QY!_>#R OR_WOFXX[UZ!10!YK)-&GA+P"ASOMKNT:=0I
MS$%A97+#L 2 <UH:+<IHDOB;3-;1Q)<WTUU!E"1=Q2*-JI_>88V[1STKNJ*
M/,],L+C1+OX?V6HD^?9PW(GXW"$O'A58C@<G:/I3;V.2\TGXA6]K%)+)/)YD
M*(A/FJ(U!*_WN01Q7IU% '"ZAJ5M>^)O!=S$)?)5KAF:2)E" P%5+9'R@L<#
M.,XXJD?[/N;GQI#J"W!L[F]MB&MPP8#$:^8A YVO@Y&?NUZ/10!R?@Z35%O]
M1LKN_35[.!(OLVIA 'D!W9C8CAROJ/[W/)X7Q!J/V7Q=IUM-!+;P2VLF+^"U
M,LK/N7]PK!3L! W'N<#&*ZNB@#R7>T?P;;3G@N4NH]0QY+Q/O.+S><<?-A>2
M1FNIURX6+QUX<U,)+-:-;W40EAC:0;V";1\H.,X/7TKL:* /,[633K6XU;P[
MXDT_5)[B>^FE@BC\]HKZ.1RZX"G8#S@YP!CD]<;&EF*+XG7B;!&/[*@A3 +*
M&5F+(&QR0,>]=I10!A^-;>:Z\$ZS!;Q-++)92A$09+':> .YKG;W4;>\O_!,
MT:R^7',S.TD++L'DE<G(X&XX!/4@XKOJ* /,M4@N]0NO'D.FQO+/+)9S0(N1
MYXC5#(%(ZGY2O'<UN>'KW0==U6VO]/L-1>\MXV$DM[YX-J".4S(2"Q/9<]SV
M&>QHH Y'QYY]L='U86]U<V=A=L]W':LPD5&C9-XVD'Y=W;L?3-8?B'^Q[[P3
MXBO]$LKIC?01QFYF$WF73@\*JR?,VT=\8_(X]*HH XG4;F&;QSX5EMWS&+2Z
M4R*I(0NJ! ?3)!P#Z5R\]XT7P@U#PO=VURNM6H:.6#R'8R$S;@X(&"#G.?7\
M,^O44 5+C??Z3,+5WBDG@81,ZE"A(X)!&1BO.RK:E\*(_"8MGCUN-8[0VC*0
MZ.L@_>?[F!NW]/?->GT4 <==S1Q?%#2]\A81Z9+$\I!VARZ$ GH"0"<5I>.K
M::[\#:S!;Q-+*]HX5$&2QQT [FM^B@#@;_4+>\UKP3<1B7RHY)6=I(F78/)*
M@G(X!8X!/4@XK/U.&[OY_',6FQO-,]Q9W$,:97SUC6,N%(Z_=(X[UZ=10!Q_
MAZ\T'7=5M]0TZQU![NWC99)[WSP;8$<IF0D%B>RYZ$YZ9V/%6BG7O#]Q9Q/Y
M=TN);67O',AW(WYC\B:V*R]:TN_U,VZ6FLS:="I87"0Q(S3*1C 9AE".>1ZT
M <[;0:GXF\"ZKJ+P?9]2UBQ,<46?N*$*JN?0L7;/H]0^';[1==GTT?V7J1U:
MR(,D5V;C;9-C#'<YV\] !R<C@<X[B"&*V@C@A0)%$H1$'15 P!4E 'E%]J#7
M^FV4KV=U:S6?B"*2>PM[-UCMD$YRQPOSLPPQ.3DL< <UT_A^>%_B+XE?:R^?
M%:>4S(0'VHV\ ^H)&17844 <Q\1\MX U>)5+R2P;(T499V)'  ZFJ%W<P2>/
MO#$RMNC6QG4R $JK,$V@GL3@]:[:B@#D? <BFY\2J,C?K4TR94C<A5 &'J"0
M>13_ !A!>V6I:1XATRU-S<VTIM985X\R*;Y1D^@?8?;FNKHH X30=%U#2_$U
MSH4N^;3/,CU47#=&D((9#Z?O5\P#MBG65Q"OC'QK)(=J/;VRH[# ?;&X8*>^
M"0#CO7<T4 >70RJ/!/@2)@XDMM2MFF0H<Q!5<,6'8#(Y/K6I;:M#X?\ $GB#
M3-=L[F6+5+G[1:2):O.ETC1JAB^4'D;<8/'-=[10!Q8ECC^).E[X%M5CT5XR
M@'R0L70B/<. < \>E3_#YP;364Y!.L74B@J1E&?*L,]B.AKK:* .0FE^P_%4
MSSQ3"&ZT=(HI%B9D+K,Q8%@,# ()SVKE9V$GPG\10(CF>;49GCBV'>X:<,I"
MXR<@9_#VKUFB@#S[4-0M-*\:7MWJZZ@=,U6W@-I=VAG* J"#&PB.<G.1QW-=
M?X>M;6RT.VM[*P:PME#&*W?.Y%+$C.>03G.#TSCM6E10!R7Q!L+DZ;::_IT1
MDU#0YQ<QHHYDCZ2)]"O\JV-+L+BWT(QRL$OKD/+,X.=LKY)P?12<#V45JT4
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
MO&H#["-VW*X)Q[]*KZ_H>HZY+XIU/2(F*7-G;10 J5^U/&^]L ]1@; >AR:
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
MH+.[COK*"\B#K'/&)%$B%6 (SR#R#67_ ,);I(\B1I)5M;F7R8;PQGR7?.
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
M1452LM3BO9Y[<0SPS6^WS$F3;][.,'H1P>0:NT %%%% !1110 4444 %%%%
M!1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %
M%%% !1110 5@^,KJ^L]!\VQLWNF^T1"7RX?.>*/>-TBI@[F4<CCKSVK>HH \
M^L8%/B#Q*9].U5K#4-+BQ+<(RF5560/\S_=)W !3@C/0"J6AZG8N/#BZU)J4
M']EH%MQ-I4L*[V0(N^3E3@'&?E!//M7H6K:9!K.E7.FW+2+#<QF-S$^U@#Z&
ML^U\/WB[8]1U^\U&W0@B&2.) ^.1O*J"W3U /?- '':E/!;:GXHTMH]3@LM2
ME"SM%IKW():-0[)(IPN00,$'&,]\5ISW%M<^)_!MWI<%W<:;;07,?G1VLK+$
M"BHH8[?E.5(.>F.<5L0>%[JRN9SI_B*_MK6XF>9[?9%)M9CEMK.A(!)/!S6Y
M:VL5G;+!""$7)R3DDDY))[DDDD^IH XG5B=&\;WMWJ>BWFHZ=J<,7DSVD#3&
M&1 5*,J\@'.0?_KXAU40Z'>^&[RSTBYL&A2YQ#:V9N%BA8@E7C0@@DLIR#@'
M(YS7H58NJ>'I;W5H]5LM7N].NTA\AC&$>-TW;L%'!&<GJ,&@#E(M0AMO#&HG
M0X;J]O9-16[U!);!EEB\UQND2%QS@+\O7E<G.#4MC;W$GB3Q#Y%AJ9BU'2HU
M@GNHW&]@) <EONG)'RG!YZ 5V>GZ=]B+RS74UY<R@"2>8*"0,X "@  9/0=^
M<U=H \T:._/@OPK>)HM]<?V&8TO;%X&25QY)C<HIP6*DY'K^==7X:.GW4UQJ
M&GZ)+IZ2JJM-<0&*6<C/&#S@#')ZYXZ5T%% ')ZGYH^)>CSBUNG@CLIXWF2V
MD:-68H5!8# Z'O7-W-E?W7@WQ;#%IU\9GULWD43VLB--$)8VRFX#=PC<#T]Z
M]0HH XB._:^^(MCJL6G:B+(Z3+%YTEHZC<9%;!!&1]T]0,]LUB?9[W_A3T]A
M_9FH_;&O2PM_L4OF$?:_,SMVYQMYS7J5% ')7C22?$K2;I+2\-N-/FC:;[+)
ML5F9"H+;<#@'KT[UA6MI=3_#.Y\)G3[D:I+)/%Y4ENX1=\[,)"Y&W:%8-D'M
M@<\5Z510!YY<1#P_XKOUU;1;[4[#4(H/L]S:P--M9(Q&R.%Z9VY'U-6I(/LO
MBSPGY&BW%I;6T-VKQP6KM';>8$V*S*"H/!SS@'/..:[FB@"MJ5L]YIEU:Q2>
M7)/"\:O_ '25(!_6O/WM;S5?AA#X0?3[F#5D6&T9'@8(FQU_>[\;2NU=V0>>
MG6O2:* .2)D3XII,;6\-N-'-O]H^RR&/S/.#;=^W'3G.<5K^*BW_  BNJ1I%
M--)+:2QI'#$TC,Q0@ !03UK6HH \RT_1+O2?#NA>)M%TR>/5-/LXX-1L3;M$
M]W%@;UVD EP>0>_OP*T?$-TQUO2?$AT:_OM,^S26MS"+619[<L48/Y9 8CY<
M&N\HH X6]T[1[_1X0=#O],M[J^\V*XM872XAD"'$[!02N3E?F'<$^U&]@U^;
MP>#?QSZB]AK<,L<R6Q6:XMD=?WAC R3U'3D*#[UZ110!QRS22_%"UOOL%\MN
M^C- )6M) BN958!FQA3M!/)XZ'!XJ-K2YO/''B*-(+J%+O2X[>&Y:W<1[QOS
MA\8XW#O7:T4 <5X1UBZ;2M,T&[\/WL.H:>L<$K36Y$"!!M\Q9.ARHXQSD^G-
M9;Z;JESX<\6:/;Z?<B];59;V#S(RL<Z>:DBA7/#;@I&!T[XKTFB@#@X5M/$U
MA<KIGANZTW4#930_:;ZW,1MW="NU6/).2.G&!SS@5F7%]<W?@[P]IAT;4X[[
M3+VR6Z@^Q2$((B S!L;6! R,$\&O3Z* *>IW,]MHUW=6L1DGBMWDBCVDEF"D
M@8^O:N$\7Z?8^(K6&_TC3;ZS\4*\9MY!:R121MD9\QL;=H&>2<<<$YP?1Z*
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
M#HATY-1V7HLC,89+@VS!(3OV9<G[HS^(R,@9K0L_$UC>:T=)$5U!<&(S1&>
MHLR @$H3UQD=<=:X>6PU!_A)J>FC3;[[;+>2,D'V9]S!KC>#C'3;S71ZFLMS
MX^T2YBMKO[.MG<1O.+9]L;/LVY../NGKT[T :,WBW38)+8RK.MK=3_9X;TH/
M)>3) &<Y )! 8C:?6JUSX\TFW&H8@U"8Z:^VZ$5HY,8QDL<XPH'.3UYQG%<[
MX9M_LMA;>'-4\%&74;)A$+Q[)&MG53\LOFGOCG'7/Z6HH;D'QR#8W@^VY-M_
MHTG[[]P$^7CGYN/UZ4 ;&H^+?L^M:)96=E-=0:FCS":, AD5-P"Y(YY4GV_3
MH+FY@LK66ZN95B@A0O)(YP%4#))KA((+ZU'@2\.EWTJV%I);W*) =\3F%%&5
M.,#<I&>G?.*Z+QOH]UK_ (-U+2[-@MQ/%^[!.-Q!#;<^^,?C0!+#XGLGOK6T
MGAN;1[Y2UHUQ&%6? S@8)P<<[6P?:J,WC_1X;>]N!#J$D=A.8;IDM'_<X )9
M@>BC/?G@\<52U$7'BW_A'5CL+NTFLM0BO;O[1;O&(1&K90,0 Q+$#Y<\<]*H
M""[;PYXZMO[.O?-O[BY>U0VLG[X/$J*5X]0: /08Y$EC62-@R. RL.A!Z&LJ
M#Q%;74MN(+:YDANG>."X55\N1D#$\YR/N'!( /:I]!+?V!8!HY(V6W1621"C
M*0H!!!YZBN.T?3[NRUS3[K08M1LK>[G8ZEI=W"X@ARK%I(V884[L8"GG=T !
M% '12>,M,CT&ZUIH[G[+93O!<#RQNC93M;(SR >.,U?O=8@M+A;5(9KJZ:,R
MB"!07" XW')  SP,G)[9P:\^U&WU-/"/BW0$T74);NXOKB>%D@)CDCDD#*5;
MH3CL,GVZD;5W=:CH?C(:VVCZA>:?J5A' XMH?,EMI$9B R#G:0QY]: (]:UZ
MRU"Z\(ZY87=P;.XO74JA<!P(W^4QCJP88Z9STKI]&\06FMM=QP1W$$]G((YX
M+F/8Z$C(./0@Y!K UIKVZU+PO<'2KF)8KYYY4CA+^1&495WE<@,=P) Z<^F:
MLZ!'.GCOQ//):W,<-U]F,$KPLJ2;(]K8)&.#^?:@#<O]5@L)H+=EDFN;DD0V
M\0!=\#+'D@ #N20.1W(KDO#.NVVGGQ7J%]-=QVMOJ*J%N2SR(2B#8 23]XX&
M..1CBK>O"]TGQWIWB 65U>Z>;*2RF%K$97@8N'#[%Y(. #@=JR//URVA\575
MAHM[ON=0AEB+VP+-%MC5F1&^\P ) QUZ\C% '6_\)/;YU&'['=+>:=$)I+1E
M7>R,#M*D,5(.#WXQSBJ^A^*1?^&K'5+RVEAEO%01Q!03*[#("<\\ \G' ).
M#6+IUK=-XOU.6'3-22WO])1(I[L'E@7SN+'*GD?*>?8"LY+35%\&>&;D:!=7
M+Z$ZK=V$T(#3+Y;1L44_>(SD>O:@#NM*UZTU:XO+2-98+NQ=5N+:90'CW#*G
M@D$$=""12WVMV]E?)IZPSW5X\+3B"!06\M2 6Y('4@=<GM5/PV;2Y>>^L_#I
MTB.154M/:K!-,1GJHYVCC&?4^G-36KF_7Q;:VSV%]+ICVA(ELD.YYM_W'<$%
M%P >H!)Y/% %I_&NBII^F7XEG>WU5Q';.D#'+'/!XX/!XZ\< U/IOB?3]2;4
M$Q/:2:;@W*7<9B**02'Y_A(!.?:N&TZUU&W\(^$;.;2-0CET[5Q+<+]F9MB#
MS<MP#Q\Z_7MFKVMZ1J&KZMXPM;6VN(SJ&G016TSPLL<KH'W+N(QSD#\: +'B
M#61>ZYX4DMH]0@BN-0!1W)2*>/8QY4'KG:1N ..G>NH\1ZP= \/WNJBV>Y-K
M$TGEICG [D]!Z_UKD+W4;W6%\*NF@:K%-9:A&UW&]HRB+$;*<$X!7)ZCCZ$@
M5U7BZSGU#PAJ]G:QF2>>SE2-!U9BIP* .:UG5I'N_!^IS_:[;S;DB:++8DS"
MQ_U:DALGIQFNDL/%6FWUO?S-YUF=-;%U'=1E'BXW D>A'(QUKF[I[J[?P;*N
ME:BBVD^Z??:MF,"$IE@,D?,<<^F>G-5M4TC4M4OO&T%I:3*]ZMI):--"RQSF
M)067<1CDC;SUSZ4 =A;>([2;6$TF:"YL[N6(S0I<(%\Y!U*D$\CN#@CTK/\
M&FO76E0:?I^G.L>H:O=K:PRLNX0@_>DQWP.WJ:@\.W-KJE[;W$?@V32KFW5O
M.GNK)8C$2,%8VZMD]QQC.>PJ3QSX?O=7MM/U#2@KZEI%VMU!$[;5F ^\F>V<
M#GVH L7^AZ?::4XEUF\LI678+Z74'#!R.IW-M/TQCT I)/%FFZ6FFV5Q++=W
M-U 3&UI$TRS,BY;:P^\<]ASSSBJ/BC4_[<\%:C8V^F:DM[=VS1I;26,H(<CH
M6V[<9_BSCWJO+:75GK?@E7L;DKI]M+'<O% SK"6A5 "5!'WACCI]* -A_&6G
MK;RS+:WK_9[5;NZC$.U[:-LD%U8@YPK' R>.E277B[2K2ZL+8FXE?48FFMO*
MMW82*%#<'')P1P.>><5@^(SJE[J6O:;+IE_)!)8!=/:T3$<S%&W&1P1R"<!2
M<8[$FJ]A'>?VCX$DDTR_B6QL98;DO;-^Z9HD1=V <9*GKTZG% &MJ?CNWB\'
M:GK=A9W,DUBS0R6\T>QX91_?!/ &0>,]:VFUE(XK?=:W)N;C=Y5J%7S&"_>/
M7  R.20.0.I KA[[3-0OM \=VL&GW?FWMR9;97@9/.78@^7(&3E3QUJ_KSW)
MU71_$A\/7>H6 MY+:YLVM@\\08JRR",\]5P>^* .BM/%6F7NGM=PM+N6Y-HU
MN8\2B<=8]O\ >[^F.<XYJ;2]>M-5NKRS1)8+RQ95N+:=0'3<,J>"001T()KD
MM9L)9=-L=:TKPH(X;34/M,NF_9D2:YC,91G*#C?\QP#S@?A70^&VM+N6:^L_
M#C:0CJJEY[18)ICZ%1SM'OU)XZ<@%^\UB&TN_LB03W5P(?/:*!066/.-QR1U
M.0 ,DX/%<OJNJQQ^-O#6HQO>-;WMC<2"W4NV_P"5"N(P<;OF/;Z]*G\6Z;#?
MZNLL8U2PU&VM=UIJ=A"\@)+-F)PH((X!P?7KZUH5U>7Q/X2NM3L)A/!I\RWL
MD4#&..1U3 R!@<J?84 ;L'C#29]%EU4F>*.&X^RR0R1$2K-N"^65_O9(_.GC
M6+;5XM5TX+<VMW91CSXF;8Z!E)5@R$\'!Y![5R<<FL:?IWB![/2[TM/K_GG%
MH3)]F;RPTD2L,,PVG YQUQ5O1XKBU\3^(;C^RM32UO;& PRSHSLVU9 <DDG.
M6'R]?84 9IFN'^%OA6Z-U<"8W=H'<3,-X:4 AN?F_'->DSRF&!Y1$\I120D8
M!9O89[UYS]BOE^&/AVQ.G7OVJVN[8S0BV<N@20,Q(QTQ^=>DJP90PS@C/(P?
MRH \WUOQ'-K_ ,,TULQW-@WVJ%E*R%%*&X"XX/S +P<CK79:?XEL=0U:?2UC
MNK>YAB$X6YA,?F1YQO7/49XYQ7""TU-?A-;Z&VCZ@+VUN8D=/LY.=L^\D8ZC
M:,YZ'(QGFM[4K2XO_'S/'!=);W&@RV@N?L[A$D=PP!... 3^G6@#9'BS3A<V
M4<B7$4&HOY=G=.@\J=L9 !SD9'3( /;-16WC33+S4'L;:WOY9([K[+*5M'VQ
M-C.7R/E7W/OVYKG_  N UMI^D:AX(:+4[ QK)=2V2>0-F!YJR]R0,C'.3Z<U
M?\-VMQ)=>*[>2WN;;[=>R202RP.BLC1JNX$@=P>.M &J?%NG+/9+(L\=OJ$O
ME6EVR#R9G/0 YR,X."0 >Q-))XOTR.7!6<VXO?L+700>6L^<;3SNZ\9QC/>N
M:\+IBSL-$U'P2R:G8&.-[N6R0V_R8'G++W.!D8YS^=4=8&LZGIL_VK1M3:]M
M=827RX82(!"LP(9 #B0D<D\G)/04 ;VM:B]YXYM=!N+.[EL38RRR1Q\"5MR*
M&X8$JH)_$YQP*D\(:ZOV+4[6XCO(K71[B2 7-ZZLP1$0G>V>OS$_3'>EE\]O
MB997IL;Q;<:4\+R^0Q5)&D5@I8 CH#SG'O67_8^I7>F^--"6RN(9]0NYKBVG
M=,0R*T:!1N[Y*D$=N] '3IXHLO[2@L+B"[M9KJ)I;7SH?^/A5&6V@$G('.T@
M-[5'H_C#3M=FACL(+YTF\P"9K9A&A0D%6;HIXR ?:LK0+NWU&>UDD\$R:;>V
M@+7$\]BJ+"=I!\IARY)X&WMG/H;7P\CGM_#'V:YM;BVFCNIV*3PLAP\K,I&1
MSP1TH A\6W'V'Q9X6N3-<+&;B=)(XV<K)^Y8@;!PQSTXSS6E!XQTF73-0U"8
MSVB:8Y2[CN(BLD9P"/EYSD$8QUS5/Q,D[>+/#$L5I<RQ6UQ,\TD4+.L8:)E&
M2!W)K%NFUFSO/&EWINEW,LUQ);/:A[5B)55$20J&&&8<D#OCH: .LA\1V\MY
M=6+6EW%>VT"W!MG1=[QDD!EPQ!Y!&,YS3+7Q38WOAZ+7+:&YDM9G"1@(-[$O
ML'RY_O<>M8&C17 ^(8U!--U5;2YTA8A<7:G.\2ECNW'Y>"/EP/88JQHNAWVG
M^*;^P,6-%CN/[1MF[>9("#'Z85@[8[$K0!M:EXDM=-6Y=[>YG6S0/=M @;[.
MI&?FYY..<+D@<XP16C:W4%[:0W=M*LL$Z"2-UZ,I&0?RKAIHSHWBG5XM4\+7
M&L6FJ3"XMKFWLUN,$HJ-&^?NCY>,\<UVNGPFVTR");2&U*1@"WA "1\?=&.,
M#IQ0!F0>+],N);,(LXM[^9X+6Z*#RI9%SE1SD?=;!( ..*SM$1I/'GBVU>>X
M:'RK,JIG?]WN60G:<Y7GTQ7.M_;&H6WA^\N]$U7[?9ZNLEY&(=L42_.,1KD
MKR/F /NU=)HXFM_'GB:[FM+I+>XBM1%(;=]LAC1PX!QS@L/KVS0!+\-Y99_
M.ER3RO-(RR;GD8LS'S&Y)/6I(?$4E[XOO_#YL+E8;:",F9<#)<M\V0<A<#@]
M<Y]JC^'4%Q:>!]/M+NVGMKB$.LD4T91E)=B.O7@CI44*75A\1]2NI+"ZDMKV
MQ@$<\419 4+[@2.AY''4]LT 97@KQ7:Z9X4T^+4&O93+>30-=LC2(C-.X0/(
M>YX]>HSBNLU+Q!;::;@?9[FZ^R1B6Y^SH&\E3DY.2,\ G R<<XZ5P:V6H?\
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
M]J^R77V;^R?L_P!H\A_+\SS=VW=C'3G/3WKJZ "BBB@ HHHH **** "BBB@
MHHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "B
MBB@ HHK"\::[/X;\+7FJ6UJUQ+$F%P5 0DX#-D\@$C@9/\P ;M96M:#'K,EK
M.+V[L;JS9F@GMG *[A@@A@58$>HKG=?O6M_'/A:\DM[V(RQW@:UW;V8A%"X5
M6*YY/(]>3QQN6'BO3K[2[F_*7%M]DN#;3P3QXE27( 3 )R267&"<Y% %K3])
M:TE^T76H7.HW(4HLMQL7:IQD!455&<#G&>.M:-9-EXBMKO69='EMKBSOXX1.
M(;@+^\C)QN4JS C/!YS65XOUB[CU;1/#FGSM;3ZQ,XDN$^]'#&-S[?1B. >W
M- '5T5@ZAX6@DTV2+3;BYL[K;E)EN9"6([.23N!Z'.3S5J\UZWM;F>VB@N;R
M:VC$EPEL@8Q*<XSDC)."0HR?:@#4HK"F\9:)%;:;<K<230:HX2VDBA9E8\\$
M@<'@_+UXZ5$GC73Y'O($L]2:\LR/,M!:-YQ4C(8#^Z0.N?;J10!T5%<_+XWT
M.+3]-OS/,UOJC!;9T@=@3@\' X/!XZ\< TMAXTT>^342[7%E)IB>9=0WD#12
M1IC._:>2,#M_44 ;]%8]IXFLKN]%FT-U!.]K]KB26+F6+(&Y=I//(^4X;GI5
M"+X@:)-;6UVBWOV6XG\C[0;5A'$^\H Y_AR1^HSC- '3T5E0>(+>?Q'/H/V>
MYCNH(1.6=5"-&3@,ISDC/'3CO5G3=234X998X)8ECF>',@7YBC%6(P3QD$?A
M0!<HK$7Q1;M=ZK:+97AGTE%>>,*F65@2"GS?-D G].O%/MO$MM>:=IE_;VMS
M)%JCA8  FX94MEANX&%)]1B@#8HKDO\ A(=.L;'Q/JFF:?>37%A(SW<<K%-S
MK&#D!VX4*!T ]@:S-<U*:>+P;JMU%=0227T8D0-D2 Q,V0B,0<GIWH ] HK)
MT7Q#;:U/>VR6]S:W-BZI/!<H%==PRIX)!!'3FFZOXGT_1;^TL;I;EI[P/Y*Q
M0,^\JI8@$#!/&,#GD4 ;%%8@\4026PEMM/O[B00"XDMUB"2Q(<XW*[+@G:V
M,DXZ4ZV\4Z=J%M9SZ=YM[]MA:>*.%1N\M2 Q.X@#!(&,YST!P: -FBL"?QII
M-L=/6478DU*)I;>,6SEF &2, ?>Z#:.<D4[3O&.D:E87EVKS0&P?R[F"XB*2
MQ,>@*=<GH,=3QUH W:*QK?Q-:/J[Z5=P3Z?=+!]I5;G8 \8."P96(X[@D'VI
ML/BO3Y;VRM3'<Q_VBK-92R1X2XVC)V\Y''(W 9'2@#;HKG_"WB&ZUY]2,^G3
M6J6U[+;J69"%V;5*G:Q.[.3TQ[FFZSXBNM/\4Z1H\.G33)?+-(TB-'\P1>5
M9AT+*23CVSS@ Z*BL:]\3V5D;L^5<W$5A_Q^2P1[U@XR<\Y) ()"@D \UJ6U
MQ#=VT5S;2K+#,@>.1#D,I&010!+163'XAMIIHEBM[F2&6=K=+A4!C,BE@PZY
M !5ADC!(X-5_^$OL?[(U34_LUWY>DSO!=)M7>A0 L1\V" &'0T ;U%9DNNVR
MBW2&*:YGN8?/CMX5!?R^/F.2 !R!R>3P,URWB#7+'4QX4URQGG:WDU0(57>"
M<))E3'W8,N.F?2@#O**R=&\0VVM7%[;);W-K<V+JL\%R@5UW#*MP2"",XY[5
M8O-4BM+J*T6*6XNID:1880-VQ2 S<D# +*.O?B@"]17"^(-3AE\1>#]5B^UB
M*::?]SA]S#R6P#'_ 'L^V:W+;QCI<NF:C?7*W%BNF2>7=Q7,>)(S@$<*3G.1
MC&<YH WJ*R(?$EF]W=6<T%U;W5I"MP\#Q;G,9R RA-V[D$8'/M5.P\<Z/J-O
M]JA2\%J;<SBX>V81L-P7:&Z%\D?*.>W7B@#HZ*Q$\56*:E+I]]#<:=<1VQN@
M+D+AXA]Y@59AQW!P?:K-EK45[=QVXM;J%I8#<1-*@"NF5&003@_,.#@^HH T
MJ*** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ H
MHHH **** "BBB@ HHHH R];T*+6X[?==75I/:2^=!/;.%9&P5Z$$$8)&"#UI
M;#1Y+:59[W4[O4IT!$;W C41YX.%15&<=R">O/)K3HH **** "BBB@ HHHH
M**** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ H
MHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BB
MB@ HHHH **** "N=\?Z==ZKX'U2RL83-<21@I&O5L,&('O@&NBHH XZ_>ZU#
MQGX7U%=+OHK>".Z\XR0G]UYBJ$W8SC)!^G?%8UUHVJWUEXD%KITAG_MB/4+6
M&YC*I=HFSY>>.=AX/M7I5% ',^&Y8;ZZ%U!X2;1=D9626YMDBD+''RIMY*]2
M2<#ICOB+QCHE]<:AH_B'281<7NC3,QMMP4SQ.-KJ">-V.F?>NKHH R(-=:_C
M"VFG7R3MU6[M7A6/W9F !QZ*3G]:QM.%SX>\8:\][:W4UIJCQW-M<06[S#(3
M:T;;02I&!C/!%=A10!YK#HE_I.C^&;>6RN6D36S?3QPPM(+:-O,X)4$<;US[
MYK>T\R0?$+7;N2TNUMY;2W2.7[-)M=DW[@#CG[P^O:NLHH \HM1-IGA'P3#>
M6=W#-;:UB6%[=PXSYQX7&6X(/&?SXK=U2VU*?7=9\2:1I[R-%HWV."*XA*_:
M9=Y<_(V"0!@<]2<"NBUSP^-:NM.G:]EM_P"SK@7$:HJD,X!'S9[8)_.M>@#S
M_3_M)\9Z1JO]F:RT#:=+%-/=0L&$A9"<K_ .#P  ?X0:SOLE\?A-)IHTR_\
MMO\ :&_R/LDF[;]J\S.,=-G/Z=:]2HH Y'QE:WF[2O$&B[5U&"9;=5E!7S8Y
MB%*L#SP2K8/3::Z73[*/3M/M[*$DI!&$!;JV!U/N>IJFOA^ :\^KRWE[.Y(:
M*VEG+00-MV[D3L2,^O4^M:M ')^(=%U"3Q38W^F*0E] ]AJ#@XV1??5Q[C#J
M#ZL*;X2T"]TC4[ZTGC"Z9832?V7Z;)<.P_X <J#[M7744 <'%IM_=6OCNW2R
MG1]3$GV3S(R@ES!L&"?]H=Z;<B_NK+P=G2+^(V-U&]P&A),:K$4)(&?XC]>,
MXKOJ* .6T.&XB\?>)+B2TN([>[2U$$S1$(YC1@V#[$CZ]J;XE6;_ (37PM<I
M:74L-K+<&>2*W=UC#Q%%R0#W/]:ZNB@#A-6MIM)\:W>H77AJ77-.U*&(*]O
MDTEM(@*X*M_"00<T[5M'MKM=/CDT^]T.Z@ADDM+K2H6;[*6;)C81@@Y&"1T)
M#8///<T4 >=M=ZE!JW@6XUV%_MNR\$XAA);_ %8 )1>^,$@#C)]*35_#>HZT
M_B;5;"V*M=M:&U@N$*?:3;D,=RMC /W1G'3/0UUNHZ!_:&OZ;JYOI8GTWS/*
MB55*MO&UMV>3P/PK8H X5;3_ (271K^VL_"3:%<2V4L+3W5ND;!V4@*A7DKD
M\MP,#WXO^%]<O[ZTL=.N?#U]9WEJBI<R7,.V%-HP2C_Q9[8]>>G/5T4 <OX.
M@O;"\URSN[">$2:I<74<[ >7(CL"NTYR3C/;C%)XDM[U/&'AO5+>PGNX+474
M4OD $H9%0*3DCC*GGM74T4 <1HXN_#TGB+3;^PN[C[7>S7EI)#;O(EPLH^X6
M (5@1@[L>O2MSP=H\^@^$=-TNZ<-/;P 28.0&)R0#Z#./PK;HH \^M;"[M=?
MMK[0(]1LC=7Y&IZ;<0/]F*9.^96884G&1M/.0,=14%Y:ZK:Z5XUT9-&O9YM2
MGGN;:6- 8G22)0!NS]X%2-O7I]1Z110!P EU3P]X@T[69M&U"YLKG28K.:.W
MB\V6VD1B1E5)^4[CTJYKQOKZ;PW<+I-S$D6IBYDC6(LT,6UUR^W/S$L#@=,^
MU=G10!RVB0W$?C_Q'<R6MPEO=Q6H@F:(A',:L&P?JP^O:F^+M-M=3O[-9EU*
MTN88W>UU/3XW9H&R,HVT'AAV/!P>E=710!P")KL]UX+N=5LIY+FUDGDO98H#
MA R,B,P'0MD$@=#GI3+LZS97'C*\T[2;B66YEMWMMUL6$B*B)(5!&&88) /7
M'>O0J* ."L/.A\;RZBNF:P;.XT98Q/<1.S%Q(S'(/*G!'RX'L,5!8Z+J5_\
M!RVTF&SDBU*U6-OLUW$8P[QRB380P&00,9Z<UZ)10!Q=A-#?V=S<Q^!7L'AM
M9/.2XM41Y25/[J/;RP/K@#';GAGA>PO-(UM8-+DU&706M&<V^H0LK6DF1M2-
MG )!&?EY QUY%=O10!4TR]?4=.ANY+.>R>5<F"X $B<]" 35NBB@ HHHH **
M** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHH
MH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@
M HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "
MBBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **
M** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHH
MH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@
M HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "
MBBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **
M** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHH
MH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "J>JZ
MG!H^GR7LZ32*A $<$9>21B<!54<DU<K&\1^'5\0P0)_:=]I\EM(98I;.4(0^
M",G@Y&"1CW- $^B:TNN6TDZ:??V2H^S;?6YA9N,Y /..>M:5<[X0O=5DBU#2
M]:E2XO-+N?(-TB[1.A175B.S889%=%0 4444 %%%% !6,_B6W3Q,OAXV=V;M
MX?M 8*FSR\[=V=W3/;&?:MFN-G&?C-  2,Z _([?OQ0!V5%>87&I>(%\)>(=
M8'B"Z\_1M3N$@7RXPLBQN  XV\C'88KJ6U&;6/%<^BK=2VD%M81W#>2P5Y'D
M) YQT4*.G4MS0!TU%<<U_J]KJ6@>&+[4Q-=72SO=WD*!&D6,950/X201DCT.
M,9JEJ&L:OIK>*](749F.GZ:=0L;HJC2(-K9C8D88;EX.,X[T =]17GFJ2Z_I
MWA*RUF+Q'=//>M8AHWBC,:;RH8#Y<X.[USQUYJS=:CJ_A+Q7'%=ZG<:MI]]8
MW-QLF1 \4D*ASM*@84@XQ0!W5%>?7NLZM9?#^S\:)J$DMQLAN;BV./)DC=@#
M&%Q\NT-P1SQSG-7 -8U3QOK.F)K]W:VMM#;3Q+'''E2Q8E>5^[QSGGISQ@@'
M:TSS8_-\K>OF;=VW/./6N"US6M2L(YKZWU.6YDAU>.$F!0+>.%I%3R6S]YL$
MY*Y(/<=*N6%K*_Q3UDF^N@%L;=@N\$#)?Y<$=!UQZ^M '56-X]XDK26<]J8Y
MGC"S  N%. XP3\I[5:KSN#Q1JMEX8O&FO6GO)/$#Z9%<R(O[I3($#;0 .%!/
M3&:V+NZO]$\8Z1IJ7UQ<66L1S1LLI#/!*B;@ZG'0C((.0* .LHKR_P#M77X_
M C^)'UZY>XL=09/*\N,1S)]I\LAQMR>#VP!@<=Z]&U.]&FZ5=W[(7%K \Q4=
M6VJ3C]* +59NI:REC=1V4-M+>7LL3S);Q%0Q1< DEB .6 ]R?KCD;_6=6T_P
M%8^,TU"2:<I!<7-M@>5)'(5!C5<?*5WC!'/R\YS5R>R:3XMPD7MRF=&DDPK+
MQB=/EZ?=_P YH WI=?BA\-G79+&]2%(3-+"\06:)0"6W*Q'3!Z?AFJ=MXVTR
M8Z<;B&[LH]4"_8Y;F(!)BPRHW D D= <9JUXO_Y$O7/^P=<?^BVKE;+P[J/B
MGPCX2MKAK6UTZSAM+IF21GEEV1C:N"H"9SR<G_$ ZVRUZ&]U_4-&6VGBFL$C
M=WD"[7#YP5P3_=[XK5KC;5WB^('BF1)8X733K4K)+]Q"!)RWL.]5M.U;4(_$
MGAZU%_=W,&IV<YGFE51'-(BHWF1*1E1ECV ((QGK0!W=%>7W&J>((_!>M:Y_
M;]T;C2=2F2)/+C"RJDH7#C;R,>F*]/!RH/J* %K&/BBPB\21Z!=)/:WDT9D@
M,R@).!_=8$\]>#@ULUR'B?PW;>)M:DM)7:">.Q66UN4^_!*)#M8&@#?OM66P
MOK.T:SN9FO'*1O&$V[@I8@Y8$?*I/X5H5P&D>([G4=9T?1M:00:[IMXZW*#I
M,OV>7;*GJK?H?PJ]8W>H>*(M?GM]2FL9+"^EL[18L;4:,#YG!!W;F/(/&,8P
M<F@#KGECC9%=U5I&VH"?O'!.!^ )_"GUYG!J-SXHU/P)JDMS<6KWL5T9(X6
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
M110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !16;_;UA_PD?\
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
MV8MXDW[^#Y>,;AG&*ZFB@##N="$&M?\ "2)<WMQ>6]BUNMNIB"S+G=M^YU+
M<Y'Y5Q>CI<+IT<6E^(_$4.HA2W]GSV)=8Y3DE6+Q_=W$\EOQKU"LG5->CTO5
MM,T^2UF<ZE*8DF4KL0A2W/.>@]/QH N7EF;_ $R:SFF>$SQ&-Y(,97(P=N01
M^8K&/@NU.F:/IXU/4%BT:5);9@8MQ9 57=\F#@$C\:Z.B@#F9_ ]LVM7.HV>
MJ:E8+>MNN[:UF"QSMTSTRI/<J0?I5V'PW;P>)/[<BO+E9?LRVOV<>7Y0C4D@
M8VYX)SUK9HH YF7P/:G6;G4+35-2L([UM]W:VTP6*=NYZ94GN5(/TJ\?#D'_
M  D4>MQW=S%-%:&T2%/+\H1DAL8*YSD ]>U;%8MEXC%_>:S:1:?<"?22JM&Q
M3,Q9-P"X)'(QC)[]J *+> [)O#=UH#:GJ)M+J<SN<Q;PQ?>0#Y?3=STKI8D:
M.)4:1I&48+MC+>YP /R%0P7@>TMIKF,VLEP%_<R$;E<C.SC@D<]/2D6ZF;5'
MM#92K"L*R"Z)78S$D% ,YR,9Z=Z ,2#P+I<7AZXT&2>[GL96+1))(,V_S%QY
M9 &,,<@G)[=.*OVF@K%?07][>SZA=6T31023!!Y8;&X@* -QP,GVXQDYUJ*
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
MVT^QR7!\M7$/)*C"@#.XY.,_I36\(VS1Z.G]H7H&C$&V(,>>%VC=\G/R\?\
MU^: .;\0ZO?V5K?:C::E<7,UMJL<8DA.VW@C,B(8&4G#M@G) )!/48Q6PW_)
M7H_^P W_ *4+3KCX?:7<6]_:F]U%+:^N/M)@2<!(I=P8L@QZCH<CT%:*>'($
M\01ZVM[>?:([7[(%9U93'G=SE<DY&<YH S/ /^K\0_\ 8?O/_0A535[*6_\
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
ML;8(I39Y9.XC!4G[P!SGMZ<4 <CI_B+5$T"QL'NVGN9M;FTW[5*X1V1"Y&6
M.&(4+G'?UYJ?5K_Q%X0TO6;Z>Y@>UD$0L(Y;AIY+=V948EF4%D&X-R3TQWK7
M/@+2I-%N=)GN+R:&XNC=AV=1)#,3DNC*HP<GWJ>+P=I[:1=Z;J%S>ZJMY&(Y
M9;Z;?(5'( (  P>>!UYH QM4TXV/Q"\(,+VZGW&[#B>0OEA ?F&?NY[@8'3
M%7OB9G_A -1P<'=#C/\ UV2I8/!5O'=Z;=3ZQJMW+I9;[,9YEX#+M(.U1GCN
M>?>M?6=(M==TF?3+T.8)P-VQMK @@@@^Q - ',7*:IH?C32;8ZS>7]GK0FBG
MAG*YB=4+!X]H&T<8Q5>QU'4+>VUCPS=ZA<2:PEVL5I<,_P [Q2\QR#M\BARP
M''R'UKJ+?18[:[34;JZNM1NK>)HXI)PF8U.-VU451DX&3C/&*S-)2#Q%XBC\
M3'2[FT^S6IMH6NX3%*Y9LL=IY 4# /?>U '2*H@MPOF'")C?(V>@ZDUP=EJF
MH1:MX89-0NKR/4)98KJY;B"Z_=LP,:$Y4 C@@ $>N:[R:&.X@D@E7='(I1U]
M01@BN:M_ &G6\6G1?VCJD@TR7?:[[D?NUP5V< ?+@XS][WH K:5_R,GCC_KI
M#_Z3+5_X>?\ )/\ 1/\ KT2K,'AF"VN]5NH[Z\\S5L>?DIA2%V@K\O&%X[U:
MT32(=!TB#2[:::6"W79&9B"P7L,@"@#G/#MICXC^*G-Q<-Y?V0A6E)4[HV."
M/09X':N:\.OJ&E^ O"6J6VJ7*[[V&W>V! A:)Y2K C&2><Y)KT!O#5L-<N]7
M@N[RWN+R)4F6*0!&*@JK8(/(!/M[9JBO@6Q3P_8Z(E_?K:V$ZSP$-'N#*VY<
MG9R >: *$\^M>([G7H=-N/LTMA<&VM6%VT7E.(U8.R!#O!9CUXP,  Y)ZJP%
MW)I-NM_)&;MH5$[V['87Q\Q4^F<XK&OO!-E=ZT^K0ZCJ6GW,ZJES]BN/+6Y"
MC WC'7'&1@UT$$,=M!'!"@2*)0B*.B@# % 'FV@WT^B> C<V]S*9[K5WM!)-
M*2L>^Y*E^0<'&>2#SR<UNRV7B.PGU&;^T!!I\E@YC0W1N)HIUYW(73[I'4'/
MMBKR^"-(_LS4-+E-S/8W\C2-;R2Y6)F;<=F ,?-SSDBG6'A""RLI[=]6U2\>
M6$P+/=3B1XHSU5,K@9P,D@G@>E ')7CZW!\*CXF7Q)J/VR33(7*Y38#D<C*Y
M!(/)SG^5;&H)J=GXTT>QCUR],.KV]QYZG80AC",#&,84_,1WX]^:U9/!UG-X
M0'A>2]O6L0BQAMR>9L&,+G;C' [9]ZL3^'(KG5].U26_NVN-.1TA_P!6%(<
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
MG7]U@$!<A02,'N21C .,YO#PM;K?:M>+?7@DU>-8[@9CP JE5V_+Q@$COUH
MY6SO=7MM+\%ZS)K-W/)J4\%M<P2%?*=9(F.<8SN!4'.>Y[<59UC5K_S_ !1#
M-?3V=]9QJ^D11-CS!LRI5>DA9P5((..G%;1\%VATS2M/&HWXBTB5);4@Q[@R
M@A<_)S@$C^>:YR:-9?$&JRW5[XIT:ZFNCLBL8'EAF15"JX(C=>0,GD8Z=LT
M=QHJ7B:-:#4)9);LQ*TQDVY#D9(^4 <'CIVJ]6?H<=]%H\":E*\UR-V7D"AR
MNX[-P7C=MVYQQG-:% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M %%%% !1110 4444 %%%% !1110 4444 %1W$\5K;R7$\BQQ1(7=V/"J!DDU
M)7(?%.)9?AYJ;%I%,:HPV2%<_.HYP>1ST/% &Q>Z^++Q+INBM9RDZBDK)/N7
M8/+7)&.N>1V'6M>N)\0V'_%;>$K.&ZN(E*7P\WS"\F-B$X9LGVSV[8JA%KFH
MZ/H^LV?VZ6<V^NQV,%S=2[GBBD,>=SD'H&;!(...N,4 >BT5SFEZ;K-AXC>6
M6\0:9/;X^R27DEPXF!^^K.H(&W@C/O57Q;)?CQ'X;M;34[FSCO+B6*98MN"!
M$QSR.OIG('!Q0!UM%>9:EKFK^"7\3V:7]SJ45M90W=G)=MYCP-(_ED%NX!^;
M!["MO67NO#>H>'KFSO[NZBOKV.QNHYYVD$H=21( 3\I!7/RX'/2@#LJ*\[NY
MM2MQXD\.KJ-Z=2,D<^DR?:&WE)!A5&3RJLKAL]N>U:6D:X-8TZTUBW>X\NQT
MQIKB$3-AYCD;&YY*E'SGGYEH [*BN&TR+7]3L-"UZVU**(S&*:\:2]D>.>-Q
M\R"(KM1LD 8Z$8)-'AZUU'4;O6YYM?O\Z;K$R6Z-*!&0(TPKC'*_-T&,8)[T
M =S17#>%M6E;7+;3=9_M*PUF.V<2V]S,TD%X?ES+&<[>,$X &-Q':M7Q9JD]
MI=Z)IL,K0+JE\(99D.&5 I8J#V+8 SU'..>: .DK!3Q)+<W2_8=,EN[(7C6<
MMQ&XS&ZG#-L[H&X)SG@G&.:SX9+K3_'K: +JYGTZ_P!.:Y59)W>2W=7"G:Y.
MX*01WX/3%1_#6TCBT:\E5YBQU&Z3#S,RX$I[$XS[]: .N>>*.6.%Y%624D(I
M/+8&369H>OC6KC4X?L<MLVG71MV$C*2QVAL\9 Z^M8>LV4<WQ1T-FDN!OL;D
MD).Z@;2F, 'CKSCKWS6+):W#VOCR]M]2O+.2RNY9XA;2;,ND"L"Q')'&,=.M
M 'IM%<9_:]]J^J:3I>0!<:0+Z55NGMC*Y*CAD!;C).!CJ/2MKPQ:ZK9:=+:Z
MO?17DT4[B)TD+LL1P55V(&6 /7'(P: -#4;^#2].N;^Z;;!;1-+(?8#--TK4
MK?6-*M=2M6S!=1+*F>H!&<'W'2LKQ#/)<:A8Z7#937J!Q=74<)0$(A^0'>RC
MF0 ]>0C"L;X?32:5J&K>$[BWEM1:2FZL8IBI86TA)Q\I(^5LCKWH ZCQ!JXT
M'0[O56MI+E;6,R-'&5!P.IY-6[6<75I#<!=HEC5]N<XR,UYUJ-Q)XF^&FOZW
M/=W*2$7*Q0QS,J11H2H0H#AL@9)()^;C&!C2_P!-E\5:%8+JEW#:7.CNTD,3
MA1E?+&1QD'GKU';% '<U5N+FYBOK6"*R>:&8OYLX=0(,#(R#R<GCBO/,ZF_A
M#Q1.=>U,2:#>726;B?#8C4.N\]7ZX^;C%;=UJ%\_BGP9(+V9(=0BG:XMU($;
MD0;@2.IY/<^E '955N+FYBO+2&*R>:*9F$TRNH$ "Y!(/)R>.*X"9=4N-)\9
MSMK^I(^DW,SVICF"[2D*N <#E<\;>G)[UJW&I7\NN^")OMLR1ZA'(;F!"!'(
M?LY;)&,GGWQTH [2HTGB>:2%)%:2+&]0>5STS7#RZO<V7B7['KK7]F9]1'V"
M_AF9K6:/=\L+*#A6Q\O(Y()SZLTBQ\K4?&TD%W=PRQ7'R2"X9B#Y"G.&)!]L
MC@=,<4 =_17G^G)=KX$LM;NO%%_#<7MG;([.?,7+,OW$ SYC#*Y!SDY^BK/=
MS7_BS2IGO8K1-.CGAAFNF:2)BKYPX8D [1QN/ZXH [N">*Z@2>"19(I%#(ZG
M(8'H14E><Z5>26'AKP3I4$\\*:PD8GF\UB558=Q123\FXX'&,#.,'FM">XO]
M-\5ZAH,-_=-9W&D->PN\ADDMI%;:0&;)VG@\YP>F* .VHKE? EK=3Z%INM7F
MKWUW-=6$8>*67,0/!W!<9W=B<\U!XNU&\TO5!<W5OJ$NB?9=LDVG3,LEI+N;
M,C*I!9<;>>0-IXYH [&HYIXH AED5-[A%R?O,>@%<='J,^L:S!H]K=_:;:/2
M8;I95O)+9K@N2OF;D!8@!1QD<MSGC&9J>FZC')X2MM;U$W=Y%JK0M+;W#C*>
M6[+NQM^<#'S8S^9H ](K"C\22W5TIL=,EN['[8UG)<QN,QNIPS;.Z!N"<YX/
M&.:V6A5[<P%G"E=N0Y#8_P![.<^_6O,=,OY/#OPZOM1LYIEN)-3EMED>5G6(
M-<%=^UB1D YSCD]<T >I45R&IM=^'O%&A16=Y=RVNIR/:W$,\S2D,$++(I;.
MTC!R!P1VK.T*PO-6T[5;J^U[59/L5_>VZ1I<;%=!E1NP,DCJ,$8QQWR =-KG
MB6#1M*AU&.W>\AEG2'=$Z@*6<*"2>V3V!K:KRM[<1?!;1VCDDWRR61R\C.%/
MFKT!. /88KI]/-WIOQ&FTK^T;NZM;G2_M92YDW[)!*%RO]T$'H,"@#H[^YN;
M:*-[:R>[9I41D1U78I."_/8#G'6K5<OX[N;NTL=,FM+V>V)U2VCD$3 "1&D
M(/&<?0U4FAO=1^(6I:4^L:A#9G38IA'!*$*,78?*0..@]_?'! .SK'FU\G5+
MC3M/L)KZ:S5&N2CHBQEAE5RQ&6(YQTQC)&:J?#^_N]3\%6%S?3M/<9EC:5_O
M/LE= 3[X45G:YX=U3^WKKQ#X0U1(-2^2*]LYQF"Y*J"H;^ZVTKS[CD<T =+H
M^JIK.G_:TMI[;][)&8IU =2C%3D GN#WJ_7 )XSN+_P[:E+/^S+Z;65TR]B:
M3:(I.6?#@'&[@9QQN]>:?K-QKWA#3]:U,WD1M&MT-M;RW+W+P2EU1G!=02@W
M@D$G! ]: .\JE=:@ZZ9-=Z=;'49(RRI#'(JF1E;:1D\#!!_*L]-#>+48IDUN
M[-G/;M#+;RSNYF<\AT?=E&P&^[@?3%<-8_:=/^!#ZA87]W;7*Q.XD28G&)F&
M!G.W.>=N#0!ZJ#D D8]J6N6N+Z74O'8\/R330VL&F"[9896B:9V?9]Y2&PH'
M8CD\]*YG5]8UFU\)>++-=3NA-HETB6UXK8D>-RI"LV,D@-C(P>E 'I]4M4U)
M-+M/.-O/<R.P2*"!=SRL><#.!T!.20  37.K]LTKXB6-I_:=Y=0:C93/-%/)
MN170KAD&,+]XC XKK)7CCC,LK*B1@L78X"@#DY[<4 8N@^*H=:OKK3IK&ZT[
M4;0*TMK=*,E#T92"0P]Q2ZKXGBT_2]2U&&TEO(--5O-:-E&67[P&3SM[GL>!
MD@XIB&1;C5_%QB*2FQ\FSC9<-Y2;G#$>K,<X[ +T.0,:! OP&D;<6:31Y)78
MG)9F5F8GWR30!W=K.+JTAN NT2QJ^W.<9&:AL=1CO)9[<J8KFV8+-"QY7(RK
M ]U(Z'ZC@@@<7/'J7A^Y\,:E;ZQ>W,>H7$-G<V<S@Q%70D,B@?+MV]NW7OG2
MOY7M?BMI0B/%[IDT<P]0C!E/X$G\S0!UU%<WXJU2>VU+0M*BE>!-4NS'-,AP
MP15+;0>Q8X&1SC..>:JVTEU9>/)O#OVFYGTZ\TTW:"2=VDMW#[& <G=M.0>3
MP>E &A#XDEN[F-K'3);JP:[:T>YC<9C=25+%/[@8$9SVZ8YK:>XBCFCA:11)
M+DHF>6QU_*N3^&EI'#X;:97F+->72D/,S+Q,_8G /'7K3-4LHY?BMI3-)<#=
MIL[$+<.H!#IC !P/<=^^: -S0=?&N/J2"SEM6T^\:U99&4EB%4YXR/XO4UKU
MY@]O<_V7XZU"VU.\LY;'4)YXA;R; 72%&RW]X<8P>*W#JE]K6N6VE X4Z1%>
MNB7;VS.SL5)#("V%QTR!\W.>, '9USLOBXIX@N=$BT._N+FVA$[>4T.&0G (
MW.,\]JM^&;?5;/2!::S>Q7MU#(R^;&Q8E>JAB0/F ([<\'O7.?Z;_P +<U/[
M#Y'F_P!CQ?Z_.T?O#Z4 :5QX\T\>%)/$5E;3W4$4HAEBXC>%RP4AP3P06'3/
M7TKJ*\XU[PT/#'POUB![HW5S=WB75S-LV!I'FCSA<G X'>NAUQWGU[[&E]=2
M'["S"QM)#$R,6QYSR!A@<8 .>Y .. #IJ*\TL=5U?5+#P+,^KW43ZCYD=R8R
MH\S;&QW'CD\=^.^*Z'PE+=0:_P")-&EO;F[@L+B$P/<R&1U$D0<KN/) /2@#
MJJBNKF"RM9;JYE6&"%"\DCG 51R2:EKB?BZ)O^%?7?E[C$)8O/V]?+WC/ZXH
M W+7Q!<7UHM]:Z+>26;KNC<E%DD7LRH6S@^^#[5?TK48]6TNVU"%'2.XC#JL
M@PRY[$=C5B%HWA1H2IB*@H5Z$8XQ[5SVL/&=8L+."\F*-',YT^R8QO*<@;S(
M&&U5);/(R3W/% '245YA#JVM7/@SPU/_ &O<Q7,VMBSED!!,B>;(HW<?-PH^
MO?-;-A%J6D>/9="_MB^O+&_TYKE6N)!));R*X4E21P"#TQC- '46FH.^F1W>
MHVITZ1VVM#+(K%"6VJ,KP<\?G5ZO*Y7N-5^''A>ZO[RYGN'UB%7E,[ OFX8<
MX/. !CT[8KI];W#4IK*#4+V4PZ<2EI;S,C0MD_OI)=P)Z  ')X)P>: -;7-?
M&B7&F1/9RS+J-XEHLBLH6-FS@GOT!Z#\:NK<W)U22V-DZVZPJZW6]=K,204V
M]<@ '/3FN#N;^YU3PEX#OKN3S+B?5;1I'(^\VQ\G\:VXI+Y_B'JFG_VC/Y#Z
M5'+$C$%879W7*@8_NCKS[T =717#VJ3:MXL6UTK4;]=,TA\7]RUW(_VF;_GB
M,G&!U8@>W%06[Z_XFT-]8TV^CL[Q;N0I))>R"*)$E*^6\(7:1M7DGG)SGM0!
MW5S,UO;23+"\S(I81H0&;V&2!^M4O#NLIXAT"TU>.%H4NDWK&QR5&2.OX5A6
M=S+XFU/Q#'+=W%O'ITHM;>.WF:/:=@8R'&-V2> V1A>G)S/\-/\ DG>B_P#7
MO_[,: .D6>)YY(%D4RQA2Z@\J#G&?R-25YU:R?V'JGCW58#/++8;98T>=V5C
M]G#?,">1GUZ#IBM6RL=<>YTG5+?4T2UDC'VOS+YYA<JZC:R*R!4;)R-N!SC&
M* .PHKS[P[:ZEJ6C7^I7'B+51-9W5[%$JRKM*@LHW J<D=1TQQBJ<5QJJ>%_
M!^L+KE_]KOKJVMIMTNY&24$'*$8+#J"<G/Y4 >FT5Q5N=3T_Q3KFCV>ISSAM
M*2ZMC>RF00S$NN<GHN0"1TI?">KBYUH6%\NI:?JL-H?/L+R9I4E^9?WL;$D$
M=1QZ].* .JO[FYMHXFMK)[MGF1'5'5=BDX+\]0!SCK5JN7\=7-W:6ND2VE[/
M;[M6MHI%B8 2(S@%6XSCZ&J<D%[J7Q U32I-9U"&S_L^*58X)0A1F9A\I XZ
M#W]\<4 =I4$ETBO-%&#-/%&)#"A&X@Y"]2!R5;J>U8?@#4+O4_!.GW5],T]P
M1)&\K=7V2,@)]\**S_#]E&/B5XJD\RX)C%FP!N'(^9'R",X(] >!VQ0!O^&]
M;C\1Z!:ZO% T"7(8K&YR5 8CG\JM+<W)U1[8V3BV6$.+K>NUF)(*;>N0 #GI
MS7F&A?;-,^'WA?5[;4[M'%]%";=9,0M&\Q5E*=^N<GD'IBNMCNKY/B+J=F+^
M1H!I*3Q12M^[B<NPS@8X^4=>>M '645P_A;5I3K=MIFM#4K#64MG$L%Q,TD%
MZ?ES+&<[>,$X &-Q':NXH **** "BBB@ HHHH **** "BBB@ HHHH **** "
MBBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "J6KZ5::YI-QI
ME\C/;W*;7"M@^H(/J" :NT4 8?\ PBMJ=1T[4&OKY[C35=86DE#YW\.6R#G(
M ^F.,5&/!FEO;ZK;733W<&KOYEU',PP7X^88 *D8'3T%6O\ A([#_A*O^$<W
MG[9]E^T^V,XV_7OCTK6H QM"\,VNA$M'>7][)L\M)+VY,IC3CY5SP!P/K@>@
MK'\9V\USXD\,"*&^V074DDL]K [B$>60I)"D#YB.#^/%=C10!E1^'=/\F^2Z
M5KUM14)=27&"TJ@8"\    G  '4GJ<U'8^&;6R:S+W5U>)8 BT2Y=6$'&W(P
M 2<< L20*V:* *$NC6,^MV^LR19O+:%X8W]%8@G\>#C_ 'CZT:7HUCH\5S%9
M0A$NKB2XE']YW.3^':K]% '-Z7X%TG1[SSK2>^%NLGFQV+7+&VB?.=RI['D9
MR >>U6].\,VNFC4A'=74BZG(TMPLC*0788+#"C!P /3CI6S10!DV?AVWMKJT
MN9;JZO)+&-H[8W+*3$& !Y"@DD #+9/YFIM9T6RUVR6UO5;"2++%)&VUXI%Y
M5U/8BK<MS##+#%)(JO.Q6-3U8@%B!^ )J6@#-M-%BM;B6\:YGN+V6(0FZFV;
MU09(  4*!DD].3US3-"T"W\/6TEO:W%S)%)*TI69E;#L<L00 >34^LZB=(T:
M[U$6[7'V6%I3&K!20HR>3["GZ7>_VGI-G?\ E^7]J@2;9G.W<H.,]^M %;4O
M#]EJFI66H3//'<66\1M#*4W*V-RMCJ#@547P?9I;:M;B\O2FL,S7>73+%AM;
M'R\97CBM^L8:^?\ A+V\/FR<$6)O%G\P88!PFT+]3U)'2@"K?>"-,O['3K>2
MXO8IM,7;:WD$WESQKC&-P'(P .1VK8TW38-+LQ;0-*XR6>2:0O)(QZLS'DG_
M .L.@JEX=UXZ_!?2-:-:M9WLMHR,X8DI@$\>Y]Z)-?,?BZ#0#9L!-:O<K<&0
M8.TJ" O7^+OB@"Q::0EIJUWJ0N[F66["B1)"I4!<[0N!D 9/?N<Y/-5KKPQ:
MW7B2#Q ;J[CO((O)3RW4)LZE2-O())//X8XK9HH YBX\!:5-_:,<=S?VUKJ9
M9KFU@GVQ,[=6 QP3WP<'N*N1>%K.#4K&_CNKP2V%N;>$-(&&PXR#D$G.!W[<
M8K;HH Y]?!UDNG:I8?;+PPZM*\MT"Z99G&'P=O&0 ./PQ4G_  BMJ;K2;DWE
MX9-(5DMB63HR[3N^7GY>/_K\UN5AZQXFBTVUTVZM[<WL&H7D5LLJ2!53S&VA
MO4CZ?G0 P>$+,6^K0?;;TQZP6-V"Z?,6&TX^7C*\<4X>$[3S=(D-[>%M'4K:
MDLG *[3N^7GY>/I[\UNT4 8I\+VCL5FNKN>V^UF\%K(ZF,2;R_\ =W8#'.,X
MI'\*V)O]1O8I[N"34E G6.7Y"=NW<%((W;>/_K\UMT4 8#>#M.D\,Q>'Y)KI
MK6W*&!_- EA*$%=K #ICC.:?;>$M.MM2FU RW<TUQ;BWG\ZX9A*HSRP[G#$>
M@[ 5N44 <\G@G25T.#22]V\5K(LEM*\Y,MNR_<*-VQT'ZYJVOA^ "ZDENKF:
MZNX1!)=N4\SRQG"C"A5')Z#J<UK44 4-%TB'0M*ATVVEFD@@&V+SF!*KV&0!
MQ]:BO=#2\OI;M;Z\MVFMQ;RI"R[70%B.&4X/SMR,&K1GNQJB6XLB;0PEVNO-
M'ROD )LZ\C)STXJU0!SNH^!](OUL#"UUITVG1"&VGL9C%(D>,;,\Y'U]_4U/
M=>$]-NM/L[,M<Q_8IQ<0SI.WF^9SEBYR23N.<^M;=% $?E;8/*1V0!=JL#DC
MCKSG)^N:Q;3P=IEMHEWHLC3W=C=L[2Q7# _,QRQ! !!SSUX/2MZB@#(L_#T%
MK/;SS7EW>S6L;1VTERRL801@XPHR< #<V3[\G*Z-X>M=$BNXH)[B:.\F>>59
MV5AO<Y8C &,^G2M:B@#F3X$TO^PH]%6ZOUM(I5D1?/R5VG*J"0< 'G'YYK0'
MA^ >(8]=:[NFNTMOLW)78T><D$!?[W.?Z<5J2%EC9D3>P!(7.,GTS6;<:U_9
MOAW^UM6M6M'6-3+;JXD978@! PX)+$#/3F@!=<T*WU^W@@NIIXT@G6=?)8 [
MU.5)R#T-1KX=A379=:6]NQ=RP"W8Y3;L&2.-O8DG_P"MQ3+;5]7EUG[!-X>E
MAA4YDO!<*T04J2I7@%CD8(QQD'D5M4 9F@Z%;>'=,73K.:>2W1V9!,P8J6)8
MX( ZDD\^M1/X=0:E>:A::E?6<]ZRM-Y3HRG:@085U8#A1R!GWK5E9DB9DC,C
M 9" @%CZ<UF>&-<'B3P_;:N+8VPN-_[HON*[79>N/]G- $,O@_1KC0)M%FMV
MDMIY#+*[.3(\I.3(6Z[L]_PZ<4EEX1TZUT^YLKF:\U-;J/R97O[@RN8_[H/8
M?3'//:M-)[MM2EMWLBEJD:M'<^:#YC$G*[>HQ@<]\U:H P]"\)V6@,IAN[^Z
M\M-D O+DRB!/[J#H.@'K@8S5?_A!M*'A^YT%)[U;"Y8EH_/SL7<6V+D':N3G
MCGWKI*PM7\3Q:=!I5S;VYO+?4[R&U25) JIYC8#>I]>/S% $MWX;MKNYL[W[
M3<PW]DACCO(F42%#U5@5*L#Z$=>1BHKSPCIM]H5SH\KW"PWDOFW4BN!).^02
M6;'J!TQP !@<5NT4 9#^'89=9LM6EO;M[FRC,49+)@JV-VX!><X'],5+KNB0
MZ_8BSN+J[MX@X<_99?+9B.1DXSC//X4NOZO_ &%HUSJC6SW$=JADD1& ;:.I
M&>#67%XU@2;2TU'3KFPCU;:+2=V1XV9@"J$J258YXR,>] %C2_"EKIEV;EM1
MU2_8QF,+?WC3*H.,D \ \8SZ9J'1]!CM= G\*WT+S6*K)%$^3B2!B<*2.C*&
MV^^ 1WQ;TO7SJ6OZOI+6;0-IAAR[.&\WS%+ X'3@>O>MB@#(LO#EM:2VLLUU
M=7K62E;7[2RGR01C(VJ,G'&6R<9YY-1VNF-=>*)=?N$*".V%I:1L,$+NW.Y'
M8DX '7"^^!MT4 9^LZ)9:[:);WBN/*E6:&6-MKPR+T93V(IMIHL5K/-=FYGG
MO9XQ$UW+L+A!G"@!0H ))Z<D\YK2HH R]!T"W\.V;6EI<7$D+2-)MF8-AF.6
M(( /).:-0\/V6I:I9ZE*\\=S9AD1H92FY&QE6QU' K4K'T_7C?>)-4T9K-H3
MIR1/YK.#YHDW8P!T^[Z]^U %=?!MDMEJMG]LO3%J[O)=Y=,LS##8.WC(&./P
MIE_X(TV_AT\-=7T%UIR>7;WMO/Y<X3^Z6 P1CV_F<]'10!6T^P@TRS2UM]Y5
M<DO(Y=W8G)9F/))/>L^'PU;P>))=?6[NS=S1"%P6784!R%QM['OU]ZV:* ,W
M7M#MO$6E2:;>2S);R,I<0L%+;2&')![@'CTJM<^%;*ZU>/59+F\6Y6 6\K13
M>6)T!R X7'<GIBMNB@#F;7P)IEE%ID=M=WZ+I3M); S!MI88/4'C!QCI^/-6
ME\+6JW.K7"WM\LFKH%N&64*1A=JLI !4A>!^N:+#Q#-J%_K=E'IK+/I+*JHT
MJYG+)O49Z+GCN>M6;S65TW18K_4+=H)9/+0VRN'82N0HC!Z'YCC/3O0!?MX1
M;6T4"N[B) @:1MS-@8R3W/O1<6\-U;R6]Q$LL,JE'C<9#*>""*P_^$FN(KL:
M?=Z3)!?33^3:H908KCY"Y97Q]T!3GC(X&#FM+2;ZXU"R\ZZT^:PF5V1X92#R
M#C((ZJ>QH H6'A6+3(1:V>JZG%8KPMIYRLB+_=5BID4?1ABGWOA73[S4+._5
M[FTGLXC AM9C'NB."4;';([8/O6U10!Y[XE\-0:1INC:=I4.IRQ?VY%<R&%9
M)C;IN9F88!V@%L^O/>NPM=&BAN9KXW-Q->SQ"(W,NW>B#)"J H4#))Z<GKFM
M*HKFYAL[=[BXD6.)!EF;M0!A1^"=+C\-1Z!YUV;6"430/YH$D3AMX*L!_>R>
M<]:DF\(:=-J8U#S[U)3;BWF"7+ 7"#)&_N3R><BMZB@#FT\#Z;%IFFZ?'=7R
MPZ7.MQ;_ +X,0Z\*3D'@ D8Z>U7'\-P-K-SJPO;Q+FYMOLS%'4!4Y(Q\O!!)
M(/K6Q10!@:?X1MM,L(-/M=0ODLX'5UA#1@,0V[YB$W')Z\\U%_P@FDKJT]_%
M-?0)=2>;<V<5RRV\[]RR#KGN.A[BNDHH PKCPE83:U-JT-S>6<]R@2Z6UFV+
M< # W#'4#C(P?>KFA:):>'=(@TNR:9H(!A?.D+M_];Z# J?49[NVLVELK+[;
M,&4"$2B/(+ $[CQP,GWQBK5 &0OAK3EUB]U/$Q>_0+<PF0F*3"[,E.F=O'I5
M/1O!&FZ%,&M+O4'BBR;>WFNB\5L3D913QGD]<]371T4 8NF^&+;2].O;"WO+
MLQ7CO(Y=E+*SYW%3MXSG_#%0'P98G2=-TP7EZ+?2YDFML.F59/N9.WG'O^.:
MU[^>[MX$>SLOMDAE163S1'M4G#-D]<#G'>K5 &'<>%;2ZU.[U"6[NS+>6ALY
M0'4*8B#P,+P06)SUS5FTT*&WOXKZ:YN+RYAA,$4EP5)C0D$@;5&2=HR3D\=>
MM:=% &9KFA6^O0V\5S//$MO.MPGDL!\ZG*DY!Z'M4:>'88]=FUE+V[%U/ ('
M.4V[!G'&WL236O10!FZ!H=MX=TM=-LY9Y+=&9D$S!BNXEB,@#N2>?6HG\-V9
MUNXUB*>Z@N;F)8Y?*EPC[00K%>A(!.,\>U:]5;Z>[@$'V2R^U&2=4E'FA/*0
M_>?GKCT')H Q%\#:<F@6FAI=WJV=G,)H0'7<K!MPYV\@-S5QO#-J^L3ZJ]U=
M//<6OV20%EVF/GC 7@Y).?Z<5+J6L_8[V'3K6W^U7\\3S1PF0(-B8R2V#CE@
M!QU/IDT:)J=]JD,DUYH\^F*"OE+/(I=^/FRH^[@Y'/7KWH 99^';>UN;2XEN
MKJ\DL8VCMC<LI,08 'D $D@ 9;)_,UKT5C^)=>/AW3X[S[&URKSQPD"0*$WL
M%!.?<]A0!L4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 44
M44 %%%% !1110 4444 %%%% !1110 4444 %175S#9VLUU<.$AA0R2,>BJ!D
MG\JEJCJVE0:S8M97,DR0N06$3["V#G!/I0!Y[KZ:E9:=9>*SHE[%J&GWK7US
M(S0D&%P%>/ARW$81>G\%=5XKU&X_LG2KS3YI#8W%[ ;J6 G>;=NZXYY)7..<
M$UN7NGQW^F2Z?<22-%/$8I&! 9E(P><=Q7(Z_P"'H]-T;2=)MK+5+O2K:X\Q
MWM)R;BVVJ=FS!#$9/O@=!TP %O;W[7GB>XBOM132XX%^P,9WP'\LF0H6Y(!Q
M@]!D@>V=;3WFF>!=(UQM6OIKK4HK.VF:XNCY4:NR[G'!VM@D;^3SGDUKZ+HL
ML\LRQWOB$:=/;O%,FJ3%F8DC&P-\RX&[)XZC&>HVD\+Z6/#9\.RQ/<:=Y?EB
M*9RQ"CH >O&./2@#G=5_MSPM!J^LQW4:VPTYVCL7NY+DB=>DBEP"!@\KT[U<
MM-,U7^T]-U&#4EALI(V2X5M0DN/M89?D90R@*P/.5[<=*T])\):9I-O+ K75
MXLL1A8WMPTY$1ZH-W 7V'7OTJ+1O!>E:#+OLI+PJ@(MXYKIY([;/!\M6) .#
MUY/YF@#B'EU&/X97.O#6M2-_87TGDR&Z;! N=N&7HX(X^;/MBNF=;C1OB!8P
MQ7][<0W]C<//%/.TBL\90AE4\*?F(PH ]JT#X)THZ!-H1>Z-A/*99(_.Y+%M
MQ^;&>6YZU<E\/VLVL6FJRSW+W5G&8XF\P ;3C<" ,'.!F@#D])_MSQ!H.E>(
M;74(K69I!<3S-?R-&R9.^(Q;=@ Z>HQG.<FH9;>[O!XV$FM:HHTZ0O:^7=,G
MEL(0XZ=L_P /3VKI+3P+HECJCWULMU&KR^>;1;EQ;>9G._R\XSGGT':K"^%+
M%3JA$UU_Q-@1=_O?OY&WCCY?EXXQQ0!RSI_:^N^ KZ[DG,]YI\SRM'.\>3Y"
M-QM(QR3G&,]Z[/7TOY-!O(]+E2*]>(K SMM&\\ 9[$] ?4U3;PAI;VVF0,;G
M&D@K:NMPRNB%=I0L,$@@ ?A6IJ%A#J5C)9SEQ'( "8W*L,'(P1R#D4 <*FK0
MWFA^*;:6'4=/U&/26\_3KV5I1'A)/WD;$D,K;@"1C[HI+!+C2I/ ]S#J%X_V
M^)8+B%YB8F3[/N4!/NC! P0,^I-=7-X8LKJ*[%U-<SRWEO\ 999G<!S#S\@(
M  'S') R<\GI3&\*6#1Z7&9KK;I.#:8EQLP-HSQ\WR\<YXH Y3Q%J%U;V.H:
MG8:E>7,EMJT:BY65HX81YB(8 F[$F,D$XP23SD8K<;_DKT?_ & &_P#2A:FG
M\ Z'<1WT3B[$-[-]H>%;IPB2[@Q=5S@$D5H)X=LX];CUA);@74=M]E4F7(\K
M.=I!Z\\Y/.>] &3X!_U?B'_L/WG_ *$*KZU:?;OB;IEN9YH4;2KC<8'*,1YB
M<!AR/J,'WKH='T*UT070M'F(NYVN)1(^[,C?>;VSZ=*;-H-K/KT6MF6=;R&$
MPH5?Y0A.2-N,<GG/6@#D=-OIU\-7-G=:S=I]FU^2QA<$R7%S&LGRPAL@[F&1
MNSP 3T%6M(AOM2O_ !9HCWEY:)$83:XNW:2V:2+/#YSUP=N2.HY%:K^!M'DL
MYK9GN\2WOV_S!.0\=QDYD4CH3D^U7=-\-:=I6IW.I6PN/M%TB+,TD[N'VC 8
M@GEL=Z .?\,:A-KVFZ1933W,=YIS.-3Q</N\R+*;7.<G<QW<]E(JI;G6_%&B
MSZG8WZ65Y'>R[+AKZ0) (Y2-C0A=A&P#.3SG/M7:66D66GWE]>6L(2:_E$L[
M#^)@H4?RS]2?6LE_ NB-K$VI*MU$;E_,N;>*Y=()V]7C!PWN.A[B@#4U>);G
M0KR.0G:]NV3&Y7^'L00:\]^RB/X9>$?*EF1YK[3SN,A?82PY4,2!] ,>U>GN
MBR1M&ZAE8$,#W!KGAX&TA=,M=.5[P6]G.L\"FY9BC*<I@G/"Y.!T^M &)/?W
M?AC7_$D5M=75W#!HHU"..ZF:7;*"X."3D [1D#BK>G6.KRSZ-K,&I)';LBFZ
M+W\DRWBN!C"%0JMDY&W'7'2MX>';+^VI-7D>:6YFM_LT@=@4>/D[2N,=235/
M1O!.CZ%=":R-WLC8M!;RW3O# 3G)1"< \GGKS0!7^)4US:^!-1NK.[GM9X51
MED@<HW+J",CGH35+4;.XM?'NEV46K:D(-4M;C[4AN6()3805'2,_,1\F..F*
MZ;6]%M/$&ERZ9?&3[--CS%C?:6 .0,]>H'2HI?#]M/JUEJDL]R]U8HR0L7&
MK8W9&,'.!0!QD>MWVCZ+K-FM[-(EOKR6,4]S.2T,+F/.9#D\!F 8Y(R.N*UY
M;/5-'N-1O9M9BTW3Y=/<;)+J2[,$J_\ +9?, . #RHZG'K6HO@_2#;:G;3I+
M<PZJYDNXYI,AWX^88QM/ Z8Z#TJ.S\$Z/:Z=<V,AN[V*YA,#&[N7E98C_ I)
M^4=.F.@]!0!BZ7->0^,=,LUGOTM;W2I&<75PS/*RE,2[23L)W'OGGD#%8?FZ
MC%\.Y/$']M:D][8:DPB+7+;67[5L*LO1@0>^<=L#BNWM_!>EVUU97:RWSW-C
M&T<4TEV[MM..#DX(&!@=/:F_\(1I1T*71#)=FQFE\YXS,<EMV_KU'S<]: *\
MLMR/BE':"]N/LTNC22&#S#L5Q*B[@.F<=ZY*6748OA]?Z]_;6IM>Z=J4@@)N
MFV[1<!=K#HX(XYS[8KT(^'K8ZU'K!N+DWD5O]F5]XQY><D$8P<D9SZU2/@G2
MFT2YT9I+LV5U*9I8S-RS%MQYZC+<\4 5=5N9?^$T^R:E-<Q:6^FEH#;NZ9F#
MX?)3G<%*[<_AS5OP-!JL7A6U?6I;E[^7<T@N6RRC<=N1V.W:2/7-86N:>7\4
M227UKXAC2.VB@M;[29GS*HRS"38<@[F[CWS72^&+.\LK"5+FXO98VEW6XOY!
M).B;1PS#_:W$9R0",^@ .;\2:E=:5K-[)K OTTB9HQ;:E8SMMLCM7*RQJ1P6
MR<\Y# ?23[!<:UXYU[39=;U.&S2UMI(TMKDQ[&;?]TCH..@Z\9SBNANO#-E>
M2WGG37)@OV5KJV\S]W*0JKTQD#"C.",]\UA6FGSW/Q&UJ?&HV4,EK!%%<1Q,
MJ2;0V\ LI7C(P>OH: ,G1M?UBYL]$T:\N//EEO+RVDN'G: W(@X4;U!()SVY
M.SKR<W+V;6/#5L;2ZU-?L^HZK;PQ8N&EELX9"=X\QP#@[2%)Z9/I71W_ (/T
M34=$@TB6U9+>U8/;M%(5DB<?Q!^N[)))[YYH_P"$0TB30Y]'NHYKR"YP9I+J
M9I)9&'0ER<Y&!C'2@"*71Y+!]3:#6KQ8;FT)BMGF9VA=1S(CL21G*Y'3//>N
M2UCS-1^#.DWEU<W$DY%H6<S-ERTL>2W/S'W/2NTT_P +V6FV4]M'<WLS7">6
M\]Q<M+*$[*&;.T<G@>M0S^#=.G\.0>'_ +1=QV$!4HB2#=\I!4;B"< @&@"C
MJHGT_P ;>%+6"^N_L\QNEEB>=F63;$6!;)RQ!/?V]*SHO[:\5Z?J-U8WHL[R
M#4)8HI_MTBBV\N3 5H0NTY4<Y)SNSZ =5=>'[:]U'3]0N+BY>YT[<8'#!<%A
MAB0  <CBJ5QX&T6XUB;4\74+W)#7,,-RZ0W)]9$!PWN.A[YYH I:9=/XE\2:
MW9W=U,D6FK!%$EK.\0RZ;VDRI!.3P,\ +[FG_"X%?AWI@)+$><,GO^^>M*\\
M*Z==ZS_:ZO=6MVT8BE>UG:+SD'0/CKCUZ^]6="T*R\.Z8FG:>)1 A) DE9SD
MG)Z].2>!@4 8=H;F7XAZW8-?W1MVT^"1$\TXB9F<$H.@Z"N8TR?45\%>%?$#
MZQJ,E[+?P0RA[EC')&\I5E9>AX[G)]^F._'A^U76;G5DGN4N[J(0R,'&-@Z
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
MBTPF6T2[=8HV#;OE / S^7;% '4T4U%"(J#)"C W$D_F>33J "BBB@ HHHH
M**** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ H
MHHH **** "L;Q9KTGAKP[<ZO'9B[^S[2T?F;."0,YP>Y%;-<G\4/^2<ZO_US
M3_T8M '645QDD<FB?$*RCM[J\G2_T^X>XBFG:02.A0JP4G"GDCY0![51T>'4
M_$'A_2/$<&K1VMQO6XN)_/D97&3OA9/NA<\ =L#'- 'H-%<'HU@]YX@\12SW
M^I2KI>HI);0B[?'$2MM(S\RG.,'CTZFH]'@U/7M!T;Q%!JT=M.72>XG\^1EE
M!/[R%D^Z!G@#MCB@#MH)KQ[ZZBGM%BMH]GV>82AC-D9;*X^7!X[YJU7"1FX.
ML>.[;[=>;((8'@/VA\PDPLQV'.5^;G JA8I<6>F^!=834;Y[J^D@M[GS+EV2
M1'A8D%"=O!4<XSW))YH ]*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 **** "L_6M%LO
M$&F2:;J*.]K*071)&3=@Y&2#GJ!6A10!EOX>L9-6M=4D:X:[LT,<3F=N%/4$
M9P<X&<U2M? ^@66K/J-M:R1N\OG&$3OY/F==_EYVY_#CM70T4 9FG:!8Z5?W
ME]:^>)KUM\Y>9F#MTS@G .!CCM5*S\#Z!8:JVH6UK)&S2^=Y G?R1)_?$>=N
M?PX[5T%% &/_ ,(OIOVG4[@?:!)JJ!+LB=_G &T8YXP..,<5$?!VDFRT^SQ=
M>3ICB2T47+_NF P#G.3@$@9K=HH IVFF6UE>7EW#YGFWKJ\NZ1F&0,# )P.!
MVJY110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M%%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4
M444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !11
M10 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%%
M !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M%%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4
M444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !11
M10 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%%
M !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M%%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4
M444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !11
M10 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !7+^,/$4VFW&FZ/
M92&*]U21E$RQ&0P1*,NX4 [FQPHQU/M745S&O:?<0^+=&\0PP27$-JDMM<I$
MI9T1P-KA1R<$8('.#[4 7_#EWI%W:RG2KF2X,3^7.9R_G!QV<2?,#[$#VK8K
MD["VGTW6/$OB=;"YDBNUA$-K''B6;RD(+;#C!). #@\>]=3#(984D,;1EU#;
M'&&7(Z'WH ?1110 4444 %<!\1=/DTCP3K.KV^IZBM]YBR)(E],BQAI5&U4#
M;0 IQT]Z[^N2^)]K=:CX#O\ 3K&UGNKJY\L1QPQEB<2*QR1P. >M &A+::?X
M9\_6Y;Z\CM(+9O/CFNI9UZ@A@'8X(P1QUS4UMXBAN=1ETTV5W#>QVPNE@E"9
MDC)QE2&(Z\8)%1^([O4F\)7ESHEJTMZ8LPPRQ8;J,_*W<#) /4@=:Y[34N8/
M'46L+I&KBSET=HFFN5W2>8) QW#)(XZ#\AB@#<T_QE8:I'";2UO'>6Z>U,)1
M1)&Z#+;U+?*!ZGV]1G;N($N;=X)"ZJXP3&Y1A]"""/PKA8X-0TKQ);>*K?3;
MAUUDF+4+*.V.^V48V/TSN&!N_O9XS@5WP.Y01G!&>1B@#S/33=2?#_Q#I%WJ
M=^-6T>>:(7(NI/.D;[T+ [LX;(4#O6KINH#7_AUHZ13W,=U?-';,ZW#K*DBD
M^:=V=V0$D;D]A4U[X;O&^)$6H6XQIE[;K)?C'#2P,#%SZY9?P0T>&_#=YI?C
M'6'<8TI9C<V2XX\R8#S,?[NP@#_;/K0!I-=Z5#XOMM/$=XVI16#M$2S^68MR
MY&6.&;..>3ZFN;UCQ#=>(?A[XEN9+2ZL3:M.D3+*%V^6=NTE&R3G)(Z>YK;O
M(;@_$S3[I;6X:VBTZ6%YQ$Q179U(&<>BFN?EL=4B\#^*M&.D7K7$]W=- 5CR
MLPD?*%2.O!R?3'- '4:7XFLI[NST9X+R&6XM=\$LL12.<*!NV-G.1G/0<<BN
M<\.>)[7P[I^M-?)?SV\&N7,<EPJM*L";PJEV)SCITR:T;U;B3Q/X0NTLKPPV
MD,XN'%N_[HO&JJ&X]0?I6-+8ZA+X \6V8TR]^TW^HW,MO";=MTBR."I''H#]
M* .[O-:AM;U;"&">\O#$9C!;A=RQYQN)8@#)X'.3SCH:Y;QMK%IK7PUOM1TZ
MXF7RI8T(#-&\;B559'7(Y&2"#_A4\"7>E>-9-:DL[N73M4L(HRT<#N]O+'G"
ML@&X @GG'7K63JN@:BG@?Q)Y=E.]SK.I_:H;6-"SJGF)C<!T)5"QSZXZT =S
M?:M!:7<5BL4US=SHSI;P8W;!@%B6( &2!DD<GBN$TO5=,MO!OBBYUE=2>P&L
MS(Z R&9!^[PI;.1@X')Q[ULW[7NE^/H=?&GWEYIM[IPM&-O"SR6[ARP)3[VT
M@^G7K6#?6.JW/@?QA9KHU\MQJ&IR2VT9BR9%9DYX)_NGGI[T =M?^*+'3M93
M2'@O)KN2!IHTA@+;P"!@'N>?H.Y%,M_%^E3^'Y=:8S00PRF"6*6/$J2AMOEE
M?[VX@8]ZH71FD^(FEWZ6=V;5=/EB>;[.^U&=D*@\<<*?I7/SVDO_  B'B6*Y
MTR^$L^MM<6JK'LD;?*GENF[AB",[>IQCC- ':0>);677?[$DM;R"^\L3>7)$
M"/+/&[<I*XR".O6MBN*T+4K:Z\6"]U"SU:WU*YMA:0/=Z>UO"57,A53EAN."
M>3_#Q74Z7?/J5BMT]E<V3,S#R;E0KC#$9(!/7&1[&@"Y6=J.C1ZG>6TTUU=Q
MQ0(X\FWN9(0[-MP6*,"<;3@?[1K1IKN(T9V#$*,G:I)_(<F@#@/!>EMK.CW\
MT^IZG]IM]4GCAE.H3G:J.-JE2^&'8@CD4NE>((/#E[XJ>XBU"[AM]1+N8U:8
MPQ^4A+,6/"CGC.>#QQ6C\.H+JTTO4(;RSN;62349YU6:)ERCME2">/PZUGK;
MWC:9XZB.GWBOJ#S&T4V[_O@T(08X[L* .NGUJW3R%MHI;V6XB\Z**WV[FCX^
M;+$ #D=3SGBET76K+7].6^L68Q[V1T==KQNIPRL.Q!KAY+2[TZYT/5[GPY<:
MK9?V1'8W5LML'FMI$.0P1NH.2#CTSZ9[708D33R\6DQZ5'+(72V6-48 @<N%
MXW'&?I@'F@#"AOIO%/C74],\^6'2]%6-)(X9#&;F9P3\S#!VJ!C;W/7(XJY+
M#I.G>(;(0ZTEI(A82:?)>G$H92 1&3]X''0<@GVJ@FFWWA?QOJ&L06LMYI6L
MJAN1 N^2VE08#;!RRD$_=R<GI2WT,^L_$+P]J5G977V33HKG[1--;O"%+H H
M < MSZ T :%KXVTZ]NY+>WM-1?R;I[6>3[*P2%E4,6<_PKVR?2I;+Q=I][=:
M?"L-U&NJ1O)932(-DX4;CC!)'R\_,!D5E^%UU"UC\4[+"=+B?4I[JT%Q$R),
M"BA.3ZE>G6L>S35;C4_">J7&BZJUQ:O*M^TR!0CM"RX1,X5 QZ@ 8QU- '03
M?$'28K2[N_LFI/!8W+6]TZVIQ"5QEFSVY^O'2IKOQ+/%XPL=%@L)9H;BU>X,
MR,F& *@8RPX&3G\,9KG&M;Y_"/C2S&FWOGW][<R6J&W?,JNJA2./4'KT[UH^
M5>Q>*O#VJ)IMW+!_9DEK)MCP8I"4(W@XVCY3S0!L:AXNT_38I+J>*Y-A#/Y$
MUZBJ8HGW;3GG=@-P2 0#QG@U+J7B2VTU;IQ;75VED@>Z:V56$(QNYRPR=O.%
MR<8..1GD-+LY=+DN]!U'P8=2F-S*]K??9HWAF1W+J97/W2-W/4X'&:FDM7T3
MQ1JB:AX4EUJSU*59[:XMK5)2C;%1HWW'Y5^48R<<T =W9W=O?V<-Y:RB6"=!
M)&Z]&4C(-9MKX@MM0:V6&VNC;WQ=8+H!?+? )SD-N&0IQD"K^G0F#3X(C;0V
MI5 /(A "1_[(QV'2N(T/3;JPUG3[O1(-1L+6Y9WU32[F)_(@.TDM&6'!W8X4
MG.>P!H C\,>*+70-&OC?)?S01ZO<127(1I%@4R[5WN3GTZ9/3/45UNH^([73
M[R6S%O<W5Q!;?:IH[=5)CBR1D[B,YP>!D\=*X>XT_4IOAEXBT]-,O1>7=_-)
M# ;=@SJ\H93TQT_*MO6)]3O];N;5],U"73Y]/'V0P)Y:M*=VX3$D$8R,*>.O
M!.* #Q->PZ@W@_4[&XE,-WJD.TJ[*KQM&[<KT[#J,BK&GAH_BEJT8EE9&TV"
M38\C,%)=P< GCH.!6'#:ZB/"W@FWDTJ^273KV![E# 28T2-E9B!GC+#CK[5N
MVR7$7Q(U.]-E=&V?38HDE$+;7=69BH/3H10!U=<]<^,[""^U&QCLM1N;G3E1
MYHX+8DD,"<KG&1A>OTQFK^A:PNN:8+P6=S9OO9'M[E-LD; ]"*PK%9[?QQXF
MNY;.[%O<VUNL,HMW*R&-7# 8'JP^O:@#87Q-ITNG:?>VS27 U,#[)%&O[R7C
M<>"0!@ DDD 8ZU4N?&%M'I6KW,5G<->:1&7N;&3:DB#;N!)S@J0,Y!/ .,GB
MN3T32]5TW3/!VIOI]TW]CI-;7UKY1\U!(,;U7JP&!G;DXZ=#6M>Z)>:O?>)M
M5M[>6-+W1S86L<J&-IGVN2Q5L$#+!1G'?MC(!TWA_4)]4T*SO;F!X99H$=@V
MWYB5!+#!/!SWYK"TV9+/XA>)GFGD%O%9VTK>9(S*@Q(6(!)P..@K7\*23-X8
MT^.>SN+22"WCB:.=0K950"<9Z9SU]*P]FIP>+_$]Y9V$KR3:=$MFTL3"*65%
M?Y<],98#WH V++Q797MW96XMKJ$ZC;M<6;2HH6X0 $XPQ(.&!PV.M5-!\7'4
M+/5;[4+.6RM[*[EAW/M; 0A=ORDDL3G@ CG )K!L8]2G\0>%=3?1]5+Q13QW
MLMPH!61T4?=SA4!!Z #TR:8VB:Q<^&O$NCQ:=*MT=6EOK<S "&X7SED10<\[
M@I'H.^* .M7Q59IJ,FG75K>6EVEN;E(I(PQFC!P2FPMD@]NOM2:%XLLO$31&
MQM+X030&9+F2W*Q'#8*[NF[V^OH:S-&N;>\S=Q>#)=)D@A;S9)[)4DR1C9'M
M^9LGOC&![\6_A]#<6G@C3;.[MIK:XMHO+ECFC*D$'WZCGJ* 'ZIXCN;+Q;IF
MBQ:=-*EU%+*TJE/F"@< %AT+ G..V,\US^E>((?#NH>*Y+B+4+N&WU#>WE*T
MQAC\I26)8\*.>,YZX'%:^O07D7C?0=3AL+BZMXH;F"0P*#L9PFW.2, X/-94
M=O>&P\=(=/O VH/*;53;M^^!A"#''=A_6@#JKCQ#:136=O;I+>3WL+3P10!<
MM& "6RQ  ^9>I[U2?QQHZ:3IVJ?Z2UOJ5P+>(K Q*N6*D-Z8((_#C-8UO-JT
M*^';.;3-1;3QI@CG%M&4E%PH4;')(*IP><@$XR2*R+33]3MO!^@V$NCWR36&
MOK<2JL);$0F=RPQG( 8?7MF@#N])\1VFKZA>6"6]U:W5F%9XKJ+861L[67DY
M!P??UJOXE\0W&BWFDVT%A+<?VA=B$NA3Y1@L0,D<D+].O.<54LHY_P#A9=_=
MFTN5MIM.BA2=H6"%U9B1DCT(I_C*WNVGT&]MK.>[2RU-99D@7<X0HZYQWY84
M 9D6I_V5X_UV0V^H76^QMI5M80974Y?=@$X4?B!Z5TD'B73[O2['4+3S+A=1
M&;:)%&^0X)(P2 , ')) &.O2LC3C<1^/]8OIK"[BMY;*W1)# S!F3<6 (!SC
M<![]LUR]AI.J6/A;PO>3:!/?'2&N(K[3GAS(4D.0Z*W#$8!X]<>N #T+1]=M
M-:^U) LL-Q9R^3<6\R@/$W7G!(((Y!!(-+?:O!!=_P!G1P7%W=M"96AMB R1
MYQN)+*!D\#G)P<=#BOX<$,D4]W;:"-'BF*X22!8II,9RSJO0<X //7U%9$GV
M_0?B#?ZC)I]W>:?JUM"B2VL1E,$D>1M8#D [B<]* *O@C7+>P\)+-<M<RM=:
MM/;V\;Y:61C(VU3N/7 .=QXP<UIZIXTCMO#>L:C:6-P]SI1:.:VDVJT;@ @L
M=V"N"#E2>.E<[IIU_3O#L48T;4(HWUN9[H1Q@SB!W<@H 2>I )'."<>M#:/J
M<^E>-["'1[R(WZB6U\X@^9^Z48W;CEB0?7W.: .SBUS%G9^;9W+7ETA9+9=G
MF. !N;[VT+R.21U ZD"IM%URSUVUEFM/,1H)F@GAE7:\,B]58>OT)%<AJT=X
M+K0_$#>&[G4+.*T>TNK%X%>>,-L(D6,GDY7![XKJO#R1?9))X-%72(II-RP&
M)8Y&&!\SA> 2<\=< 9]  1ZEXILM-FOHS!<W)TZ!9[PP*I$"')!.2,\*QP,G
M J:37[7S((K6*:]DGM_M2) %SY7&&^8CKD8'7VKF/$J:OJ%[XATV72[Z>"6P
MV::;<!8G8QG<9&R,L&. ISP.!FH)=*34M+T=;NQUC2K^STZ,6^H6L3F2)P,-
M&P3/!P#@]L],T =W8W<=_86][$KK'<1+*JR## , 0".QYK)N_%UA:0W-T8+J
M6RLY3%<WD2!HXF!PV>=Q"G@E00.?0XM^'3J9\/6)UE574/)7[0% 'S8]N,^N
M.,UR.FV>HZ3X1UCPK<:==3W3FY2TD2(M%<K*6*L7^ZO+'.XC&.] &CXKUB7^
MU_#^GP6T]S97UPS2^24*W"")F"#+#(S@G. 0._2MBUMK;PSH<[V\5Y+;QEI_
M(+^8\8/)5<GH.<#/TS7.W6F7.E7?@JS6WN;I-)!2YGBA9U4>08P>!W)Z>E=Q
MU'UH P?^$PL#;:1<+;W31:RRK:N%7&X@D!OFX) S_P#7XK*^(6H"X\'^(;:)
M+J&2QA5C,C[%+'! !5LG@\@CN/:LJ3P?JTFC:KI2*T<6CW#W&AL#]YR1*G_?
M/* _[3>E:?B.PU&X^&.H1&REEU34T\R2"%"S"1R#M^BJ N3V6@#:L/%%E<:K
M%I!@NX9I(#+!)-"52=5P&V'J<9'4#UJ#1];T.*PUG4;<W,$%O?R+=FY#Y\["
MYVJ22 <J H YZ"J=^)Y_&WAF]CL[LV]O;W"32?9W C+J@4-QQRI^G>L5]'U:
M]\/>)HK.RFCO#KAU"TCGC,:W"*T;#D^NP\?3.* .IN-=MK^2]T2:"\LKS[$U
MRJ2$(SQ]-RLC'&#@8R#[5B^"_%5K;>&?#=E=Q7FZ\B2%+MHB8FE()V%B<DG!
M[8SWZUK6^O7FL:=<R?V!J%BB6S^8MU#B1W(X1%!RW?YN!T]3CFDLK^/P3X.M
M#IU[]HT_4+:2YC%NY:)4SN)X]QTZ]J .[UK46TC1KO45MGN3:PM+Y2$ L ,]
M2<?Y[UQ6M:M->:-X-UFZ2YMI)M2M?-56.V4-$SDA$)R"0,9&>.E=GKUM+?>'
M=2M;==TMQ:2QQJ>,LR$ <^YKC)DOY_#O@R Z1J$<FG7MLURK0$E%CB*,V!GC
M+<=SC.* .JTWQ18:@^HQO'<64NF@-<QW:!"B$%@_4C:0#^5)%XHLVU.SL)[:
MZM'OT9K1YT 6? R0,$E3CG# &N<U#2+W5M>\76L4$\*:GID5O;SO$RQNZJX(
MW8Z?,![\XS5GPU*+V6TCG\$'3;^VQ]HN9K2-8T(&"8G'+$GICIDY/'(!VE%%
M% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M %%%% !1110 4444 %%%% !1110 4444 %%%9GB'7K;PUHTVJWD4\D$.-PA0
M,PR<=R!U(H TZ*Q8_$T4A9#INH1RM/Y-O'+$$:Y^7=N3)QMP"26QC&#SQ4=O
MXPTV6"^:9)[:XT^98)[65090[XV !20V[(Q@_E0!O45BQ>*;,7=]:WT%QI\M
MC;BYE%P%P8CGY@R%@<8(QG-(GBBW75[;2[NRO+*>\C>2U\Y5Q-M&64;6)# <
MX(% &W17'VGBO0=(\-7VL6]E?16D=_(DZ%2S^<7 8G+< L?4?2K]KXRL[G6S
MH[V&H6UT\32VPN81&+I5Z["3U]FP?7% '0T5SW@[Q!=>(]+>\N;&2V_?RJI+
M(5PLC*%X.<@#DD 9Z5?O=:BM;]-.AMYKR]:(S>1#M!5 <;B6( !/ YR>?0X
M-*BN3UGQ:LW@75=7T>.?S[:.:)U8*LEK*JG.\$]5..F>HQD5:\,Z/9Q)!J\=
MC/9W4MHD4H:08GX!\Q@K$%NOS'YN3F@#HJ*Y"/7;K6[KQ+IEQI]Q!!8KY2N)
M$&/W>[)*MG)R,8SQUQS5/P;XHM[+PUX9L;JTO56\AC@CO&C'DF7:3LR3NR<'
MG&/>@#NZ*YVVU;1HO$6O/Y%Q;W5C;Q/?3R@[&C <J5&3T ;D =>]7[#6A?7,
M4/V"Z@$UO]HBEDV%'7*CJK'GYAP: -.L:7PKI<TKRN^H[G8L=NJ7*C)] ),#
MZ"M>1TBC:21@J("S,3@ #O7#^'-:U*+QK-;ZH["VU^W%[IRMQY>SY3'C^]Y>
MQC[YH W_ /A$=*_YZ:G_ .#:Z_\ CE'_  B.E?\ /34__!M=?_'*FN=?@M?$
M%KHLEK<^?=QO)#( OEN$&6&2V<C(XQWJM;>+;6ZTW4KY+*\4:9,T$T+*GF%U
MQD*-W/48YYSQF@!__"(Z5_STU/\ \&UU_P#'*/\ A$=*_P">FI_^#:Z_^.4V
M_P#%=M8/=Q_8;R>2PMENKM8@F8$()&<L 3A6.%ST^E,O?&6GVD^G0I;7MTVJ
M0--:^1#GS %#8&2.<$?GSCF@"7_A$=*_YZ:G_P"#:Z_^.4?\(CI7_/34_P#P
M;77_ ,<I/^$BBNU6VATV_EN7MEGFM5"QRVZ-G ?+ *QP< '/!^M9OPO?S/ M
ML_SX-Q<8\S.['G/USSF@#3_X1'2O^>FI_P#@VNO_ (Y1_P (CI7_ #TU/_P;
M77_QRN;MM6&A^.O%CII^HZA\EFXAM4,K*-CEC\Q  YZ9R>PKI;7Q3IVH:98W
MVG^;=C4,_9X8P [;<[L[B -N#G)Z\=2,@"?\(CI7_/34_P#P;77_ ,<H_P"$
M1TK_ )Z:G_X-KK_XY3+;QAIMQ97<[K/!-9W(M9K611YHF) 5  2&W$C!!P?S
MJ6#Q/9M=WUK>03Z?+80"XF%R%V^4<_.&4D$<'/.>* &_\(CI7_/34_\ P;77
M_P <H_X1'2O^>FI_^#:Z_P#CE-3Q7:"XL([JSN[.+4B%M)YU4)(Q&54X8E21
MR P&>G7BJTWCFT0:IY6E:G<'2GVW*QPJ"HV[BPW,,C';J>PH M_\(CI7_/34
M_P#P;77_ ,<H_P"$1TK_ )Z:G_X-KK_XY4,?C.PEN]-C%I>BUU0A;6]:("&1
MBNX+R=P) .#MP?6I-4\66FEP75TUI=W%I9/LNKB%5*Q'C/!8,V,C.T''U!
M'?\ "(Z5_P ]-3_\&UU_\<JK?^ M'OX!&;C5871@\<R:G.SQL/XEWNP!Y/;O
M5J[\4VD NVMK:XOULX%GG-ML.U6!9<!F!.0,\9K9=UC1G8X51DGT% '.:1X'
MLM+N([B;5-8U*:%]\37M^[!#@CA5P#P2.0>M=+6!8^,+&^NM-B6UNXH]61WL
MII%79*%&X]&)7*\C(''OQ4GC'6Y_#OA6^U2VMC<2P1DJ,@!2> QR>0#V&30!
MMT5C/XA$,EE:/I]VU]>1O(EL/+W;4QN8G?M ^8=\\]*J3^.-.A\,1>(A:7LM
MB[%9"D:[H"&V'>"PQA@1D9% '245EQ:];2_;Y#%,EM8+NDNCM,;84,=I!).
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
M4'!K8H **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ****
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
ME=ISS@D]ATS9MK:_T#QMJFH7%M-=V6L0P'SK:(OY4L2["I49(##D'IZUU]%
M'F\WA[4K+1K'_0II)[CQ,NJS01+O^SQ>9N()'&0N.!W)QFMV..X7XE7.I-9W
M(LSI*0+-Y+8+K(SD=,]#Z>U=710!Y?;:)K,7AC3;E=%>YN=*U2XN)=/N% \^
M&1GSMSP6 <$>]=IX=<7 ENH_#YT:%PJJDT21S2'G)8(3@#C&3GKT[[E% '+Z
MQ;7T7CK1]3@L)KJW6UGMY&B*_NV8H5+9(X^4\USFKVOB#5-/N1>:)?7%_;:K
M'*C*R^3Y"S KY0W<G;U.,]<GH*]*) &2<#WI: .*\4Z=?>) \T%K-9W6BA;F
MP=X0QEN.NWOE!C:<=2<]%&>GT:^N-1TN&YN[&:QN&4>;;RCE&[@'N/0U>HH
MXC2-0^Q>./&(-G<SEI;8H((B^YO(7Y>/N_4X'O5&W\/:EX8TWP?(+&6].DS3
MM=PV@#,GG*_W1D9"E\?A77Z9X?@TO5=0U*.[N99=197G64H5RHVC&%!&!QUK
M6H \]DL]6EM_'7F:-=1G58<6@^5M[&W"!>#USU/0<\\4_P 4-+%\,]*62UF2
M:">Q1H'7:^Y9$!'/'4>N*[^LO7] @\0V<5K<W-Q#'',LP\@J"64Y7.5/0C-
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
M6EI;94.0JD;FYP,ENYR /?% &G=>.TL[/[=<:#JB69>%5N"L80B3[K<N"!G
M.>F1ZUN2:F$UB#3!;3.\L+3&1=NR-00/FYSDD\8!SSZ&JT>FQZOX273-1MI(
MDGM!#-%)C<ORX/0D9!Y!^E9W@2UOQHPOM5F2XNY0(%E7H\,650^^[YGS_MT
M3^+->O-$.DI:6;3_ &[4(K9G#*-H))( )ZD*1Z#UZ5:FU_%Y)8VEA/=WD$*S
M3PHR#R0V=JEBV-QP< 'MU QFCXUL;Z[M](N+&T>[:PU6&ZDAC90[(H8';N(&
M?F]:K6MMJ6B^,M3U5]/GN+/688&;R=KO;RQIMV$9Y!'<9&1^- &_HNLV>OZ9
M'J%BS&)R5*NNUT8'#*P[$'BLBSUR[U+QCK&ASZ<_V.TA@ 8.G\>\EFYS@@
M#/3G&:G\'Z-/HVF77VI0D]]>S7CQ @B+S&R$R.#@8SCC.:JVUKJ.G>/M8O?[
M.FGL]0MK?9/&R;4,8<,I!.<G<,8'Y4 8/@;Q-'HO@K1(;C3[QK6:X>W:\ 7R
MXW>9PH.3N(R1E@"!ZYKK-4\30Z=]M\JSFO!IZ![KR60>6-N[ W,-S;<' [$>
MM<?#HNM)\,-,TAM(N/M]O?)+)"&3A1<&0G.['W??K6A):ZGHWBG4I_\ A&3K
M-AJKI/%(GE^9;R;%5D?>1@?*#GM[T =EI]_;:II]O?VDGF6]S&LD;8QE2,BN
M<\>'5+[33I6AS-%?>6UX77J%B(*J/0L^T#V#5TEFDD-A$LT<:2*F6CA'RJ?1
M?8=*P]-TLZK>W^HZK9WEK/)+Y<2FX9,0KP@_=O@Y)9N>A<B@"_H&NV^N>&K3
M6D94BG@$CY/$9'W@3[$$?A7)^+=535[7PY>1:?<K:S:S:-;W3%0&4R#!*YR
MPY&1]<<4[1]!U*TC\4>&%LKBWTB_\TZ?=.RD1F1,.I&XL &.1QZ^M5Y8O$-U
MX7T+2I/#EVMYI-[:&9@\7ER+$P^9&W<Y SSC'Y9 .DD\7K_:.JZ=:Z-J%U=:
M6L;2(@C <.&(*DL!C"].ISP.#B*+QW930:7>)IU]_9^IR1Q1WC*H1)'X52-V
M[KP2!C/<U'IEO?VWC+Q)J,NFW"V]Y#;"W;Y3YAC1PPQNXY8=:PX]&UF/X<^'
MM+.DW!O;&]@DGA!3*K')N)SNP>.G- '3QZAIQ\9WUO'IEQ_:D-@C/-QB6+<=
MJK\W][/7%4[;XA6=U8Z=J(TK44L+Z<6XN71 L3ERBAANSR1U (&>N<BI(;>]
M3XBW>J-I]P+-]+C@67Y?F=79B,9ST/I7.PZ+K2?#'3=(.CW/VZWODEDAW)PH
MG,A.=V/NGUZT =6FH:7_ ,)O<V[6,L6HPZ<)'NGQM:#>< 8/][=V'2IK#Q'_
M &BEM-;Z=<M;WD#3V\P9"K@ $*?F^5CG@'WR1BLTVVH'XAW&JIITWV5M&6V2
M1]NTRB1GVD9ST(JEX>T*YT[Q#9W>DV=YI-C/'(VIZ=,P,"2$?+Y8R1G=W7C
M[=* 'Z=X]EC\$R^)-5TNY\M)Y ?),; #SF10/F!X^4$D>]:__"4XFC@?1]0B
MGN+DP6R2HJ^< F\OG. N >O/;&>*Y*31=='POU#PV-&G:\6X<1D21[9@;@R;
ME^;IM]<<UTWB.76)9=(DL]/NYM/>1O[0MH'5)\;?D&2P&W=][#?IF@"IK/C:
M2+P?J.JZ=8RBYL[DV<T<I4>1(&"D]2&'S C'7(Z<UMS:Z(KFWL5LIWU"XC>4
M6NY-R(IP69MVT#) ')R3]<<6_AW6G\'^*=+BT;R)+G4C=VL8D3;(FZ-@JX/7
M"'K@9QC/;;N+?4X?&-CXI73;AK>>P-E=6P*M-;CS-Z/@'#>A )Q[T 6+GQWI
M]KH%]JSV=YG3IO(N[4*OFPOD#GYL$<CD$Y!K8TS4I-1-QOTZ[LUBDVH;A0/.
M7&0RX)X^N#7$Z[X:U2[T'Q7=6]A*UWKLT/D6@90RI&% +'. 3ACC/IWXKT&"
M0S0)(T3Q%ADI)C<OL<$B@#C=3F?5/B&NC7^DR7>GKIC-Y+F,H2TH4RX+=@,#
M^(9.!S5V'Q'I^BZ&9+2RO)]&TUC;O=JPDVA#M9@"VYE4Y!(]#C(%*;>^'Q,_
MM#^SYS8_V7]E^T?+M\SS=W3.<8[XK(T[2=7TOP7J?@]M.EGD87$-G= KY4D<
MI8AW.?E*ESD$9XXS0!NW_C&"TU1=-M]-OK^>2S-Y#]F5&69 0/E);WSSCIQD
MD ZM[J:V&C2ZI-;3E(83,\*J/,  R1C.,@>]<U8Z/>:5XQT@1V<\UC9:+_9[
M70VXWAD()!.<83T[UO\ B;_D5=6_Z\9O_0#0!CP>/[.2;2_/TS4+6TU;8MM>
M31J(C(ZY"'G(] <8)Z9'-6;SQE:60N)WL[IK.TO%LY[D!0$D)49"DY*@L 2!
M],UA6=E<^)/!?A734LIH5@%G//-( %5(U!^4YY+8 &.F3G&,54\0:;XCU?3=
M9MKK1;BZO$OUDLYO.C\K[.LJLHC!;A]H.>!GG)Z"@#LX?$,4OBB7P^UE<Q7$
M=O\ :%E?9Y<D><97#9//'2J5UXTMK.&VGFTV^\JYU#[!&ZJC OO*[N&)VY#8
MXR<=.E5?&5E?2PZ5K.F;;;5[:X6*-9"#N6;".AQP<9#>@V&CQ/H]PFF^'K'2
M[*:YCT_4K:9]I7*Q1GYF))&3^IH M)XP:34+O3!H.HC4;9%E6U/E9EC;.'#[
M]@&01R<_6I[/Q;87VB66IP1S$W\ABAMV 60R+NW*<G QL8DYQ@?2J<-M>I\1
MKO5&L)Q9OIB0+-\N&=79B,9ST/I7-VN@:];>%]*G31O.O=)U&XG>PG9,7$4K
M/G:<D9 <$9[C\P#I9?'=C;V6KS3V5VL^C;3=VR[&8*PRKJ=V"I'OGVJS;>+(
MIM9MM,ETV]MC>PM-:32JH6?: 6 &[(."/O 5CZO;ZCK'@O6(K7PVUA)=V_DP
M6V(Q,['.6;!VA>F,G/7VJ>ZM=0G\2>$[Q-,N?)L8IUN2=G[HO&JC/S<\@],T
M 7O">OWNN_VDUW8O;BWOIK=?F0JNPA=O!R3D$YQCGK6CJ&L165Y;6"1/<WMT
M&:*",@':N-S,2<!1D#ZD8S63X0M-0TVYUJTO+"2*.74[BZBN"ZE)$D;<N #G
M.,YR!CWINM:??VGC33O$=I;O=VZ6KV=U#%C>BLP974$\\C! YQZT /NO%@F\
M/ZU/96LZ:AI:2+/;/L#P.$+!C\V"N.003D?E4/@S2K.;3-*UM]/DMM0-A&CS
MLXS<AE5B[;6.[)YRW/)JM-HM\\?B[5ELY?.UJW6WMK7Y=Y"1% S<X&2QZG@
M9YXK?\+QSV_A?3+:ZMY+>>WM8H9(Y,9#*@!Z$@C(H J:IXPMM+&HRM974UOI
M;(MY,@4!-P!^4$@M@,"<>O&:?>^*H[77AHL6F7MU=/:&ZB\H)MD4,%P"6 ')
MZM@<>XKF/%&F^(=9MO$NGSZ1/=O(/^)9*)4$"1[1P%+9\S(;G&><9 K5@@U(
M^.[#5)=)N8[9=(:VD8LAV2%U8 X;T7G&1DT 3R>/;*+PVFNMIU\8!<&VN(P$
M#VSA]AWY8#&[N">HK;DU,1ZO;::+69WN(7F,BE=L:J0#NYSR6 & <\^AKGO#
M&B2S:#K>EZQI\L$5]?7,FV0J=\4K$@C!.#C\C4W@.SOX])-UJDZW%S_QZQ3+
MT>"$LJ-]6.YL]]PH J_%<"/P+<W*DI+#+#LD4D,N9%!P1Z@U;L(O#5]KD"Z4
M=MU9@SDP[E7:<IA@>#G)^F*9\2+"_P!6\(3Z=IME+=W$TL1"H5& LBL22Q Z
M"NFBVS!+@PM')M( <890<9'Z"@#!NO&MC:)!=26\W]G3W MUO04*AB2H8KG=
ML)&-V/?IS4?B/68KO2-;L[:QGO4M('2YDB90$?9NVC)!9@""0/7UXK%\-6&K
MZ/;1^'+GPO%.]LQ2'53Y9A:+/#M_%N _AQR1VZU);VFM:(_B;2SI%S?0:I<3
MW=I=0,FT&5>4?+ K@CWSVH T?"^K1V7@WPY:)$UQ=3Z;&Z1*RK\JHN6)8@ 9
M91ZY/3K2GX@Z:--BO/L=Z=VH#3IHE12UO/N (;#<]<_+G-8,.D:WI5GX;U,^
M'S?FRTT6%]I[M&9%'RD2)R0>5Z9S@_EHZ[9ZI?:/ILEOX?:!DU>WNS:0^6'C
MBC()+G(7<<'@$]AV- &VGB9B;2&31[Z"\O)98XK:4(#B,9+E@Q4+C&.3G-<[
MXTU6U\0_#>[OXH98GM[R*)HY>&BD6X1&!P2#W_ UM>(VU=M3TG[/875WI;>9
M]L@MI%20M@>7NRR_+G.1GZY'%<M+H.N+X$UO1DT.19YM6,\"1R1[6C\]9/EY
M& %7OCZ4 >G45DOK4T?B"UTQ]+G6"ZA+K=EEVAQDE"O7H,YZ<@=ZUJ "BBB@
M HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "
MBBB@ HHHH **** "BBB@ HHHH **** "BBB@#.UW1;?Q#I,VEWDDR6\^!((F
M"E@#G&2#Z5=MXC!;I$97EV+C>^-Q^N !4E% !1110!EZEX>LM6U"VO+M[EOL
MXP(%G98I.0?G0'#<CO\ CFM2BB@ HHHH **** "BBB@ HHHH **** "BBB@
MHHHH HZOI%EKE@UE?1LT197!1RC(RG*LK#D$&J]AX?@L94EDO+^^>/F,WERT
M@0],@=,^Y&>O/-:U% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M %%%% &;K.AVVN10Q74UU&D,F_%M<-%OX(PQ4C(YJ_%%'!"D,*+''&H5$48"
M@<  4^B@ HHHH ***S=9URWT6./S+>[NYI<^7;V<)ED<#&3@= ,CDX'(]: -
M*BLS0?$&G^([!KO3W?$<ABECE0I)$XZJRGH:TZ "BBB@ HHHH **** "BBB@
M HHHH **** "BBB@ HHHH **** "JNI6$>J:;<6$LDD<5S&T<AC(#;2,$ D'
M'!JU10!4TO3H])TRWT^&222&VC6*,R$%@JC &0!G %6Z** ,M/#UDNO2:RSW
M,MPV-J23LT41V[=R)G )'&?<^IK4HHH **** "BBB@ HHHH **** "BBB@#.
MUG1;?7((H;F>[B6*42#[-<-$6X(P2I!(YJ[!!%;01P01K'%$H1$48"J!@ 5)
M10 4444 %%%% !1110 4444 1^1%]H^T; 9=NW>>2!Z#T_\ K"I*** "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 *@N9;:TC>\G*HL:?-(1R!Z>O7M
M4]8NO>'I-<EMG&L7U@+9MZI:^7AF[,=RG)';TH 9X9TI[(:AJ$\1AN-5NFN7
MB/6-<!44^^ "?<FMVLO1M%DTEIGFU:^U*2;:-]VZG8!GA0J@#KSQSQZ5J4 %
M%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 44
M44 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !111
M0 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%%
M!1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %
M%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 44
M44 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !111
M0 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%%
M!1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %
M%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 44
M44 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !111
M0 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%%
M!1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %
M%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 44
M44 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !111
M0 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%%
M!1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %
M%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 44
M44 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !111
M0 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%%
M!1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %
M%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 44
M44 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !111
M0 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%%
M!1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %
M%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 44
M44 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !111
M0 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%%
M!1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %
M%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 44
M44 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !111
M0 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%%
M!1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %
M%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 44
M44 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !111
M0 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%%
M!1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %
M%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 44
M44 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !111
$0!__V0$!

end
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>GRAPHIC
<SEQUENCE>21
<FILENAME>cgnxformofrsuagreement003.jpg
<TEXT>
begin 644 cgnxformofrsuagreement003.jpg
M_]C_X  02D9)1@ ! @   0 !  #_VP!#  H'!P@'!@H(" @+"@H+#A@0#@T-
M#AT5%A$8(Q\E)"(?(B$F*S<O)BDT*2$B,$$Q-#D[/CX^)2Y$24,\2#<]/CO_
MVP!# 0H+"PX-#AP0$!P[*"(H.SL[.SL[.SL[.SL[.SL[.SL[.SL[.SL[.SL[
M.SL[.SL[.SL[.SL[.SL[.SL[.SL[.SO_P  1" 55!!\# 2(  A$! Q$!_\0
M'P   04! 0$! 0$           $" P0%!@<("0H+_\0 M1   @$# P($ P4%
M! 0   %] 0(#  01!1(A,4$&$U%A!R)Q%#*!D:$((T*QP152T? D,V)R@@D*
M%A<8&1HE)B<H*2HT-38W.#DZ0T1%1D=(24I35%565UA96F-D969G:&EJ<W1U
M=G=X>7J#A(6&AXB)BI*3E)66EYB9FJ*CI*6FIZBIJK*SM+6VM[BYNL+#Q,7&
MQ\C)RM+3U-76U]C9VN'BX^3EYN?HZ>KQ\O/T]?;W^/GZ_\0 'P$  P$! 0$!
M 0$! 0        $" P0%!@<("0H+_\0 M1$  @$"! 0#! <%! 0  0)W  $"
M Q$$!2$Q!A)!40=A<1,B,H$(%$*1H;'!"2,S4O 58G+1"A8D-.$E\1<8&1HF
M)R@I*C4V-S@Y.D-$149'2$E*4U155E=865IC9&5F9VAI:G-T=79W>'EZ@H.$
MA8:'B(F*DI.4E9:7F)F:HJ.DI::GJ*FJLK.TM;:WN+FZPL/$Q<;'R,G*TM/4
MU=;7V-G:XN/DY>;GZ.GJ\O/T]?;W^/GZ_]H # ,!  (1 Q$ /P#V: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*** "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@ J&YNH+.!I[B18XU(!8^I. !ZDD@ =R:FK
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
M#?-81_O&5WB'SC&02.O((KC_  =XTL3H-A#KNN0G4[F>9!YS!6?$SJN<  <
M =.G%=;ILJ3Z9;2QG*-$I!QCM7F5HME=?">]\/\ EQR:O+/.BV6!YPF,S%&*
M]1@%3D] /2@#TJ+6-/FU272X[I6O85W20 '<B^I]![U+:7]K?"4VTHD$,ACD
MP"-K#J.>XKDO$\%[X?N-)\3VL+7ES;(MC>QI]ZXC? 4_42;3_P "-=1I%BVG
M:7!;2.'E +S./XY&)9V_%B3^- &/:WUZ/B1>Z=)>226:Z9'<1PL% C8R,IQ@
M GA>^:T[;Q#I-W<QVT%ZCR3*S0X! F"_>*'&'QWVDUS4E[!%\3]4(VSNNA(!
M K#=(RN[% /7!''O6!8ZQ975]X(O8K@+#'++&UM;PD169,# 19QDOGCDY.,@
M &@#T#_A*-$%A/?G48A:V\GE33<[8W_NL<<'I^8JV=3LQ/;0&;$MVI:%"I!<
M#DD<=JXS4-(G/B?5O#D<3C3O$D0NGE4#$!7"3_BP\OZ%L]JT/ K:A>V:SZM$
MR7.FQMIH+?QLC8DD'J&VQ_BIH UO$7B.T\.06CW(9FN[J.WC55)^\P!)(Z8!
M)]\8JS<:UI]JD32W&#*AD1%1F<J.K;0"<#(R<8&:P?B*XATG2[J3Y8;;6+2:
M9\<1H).6/L*K6VI0Z?\ $6_N]2G6&SU.P@_L^YF^1,)NWH"V,$EMV.XYH ["
MTN[:_M8[JTGCG@E&Y)(V#*P]B*Y+_A)XM&\9Z[%K6L".P@@MF@6;: A?>6"[
M1D]/<X%6? -G+:V&JR[2EI=ZK<3V2$8 A8C! [ D$CV(/>JD5U8:;\2];EU.
M:"U6XL+<0O<$() -^\*3U[9 ]J .I&KZ>=/BU!+N)[6;'E2(=PDST"XZD^@Y
MI=.U2QU6%Y;&Y298W,;@9!1AU5@>0?8UYE!!+X:TS1-2OX+JWT5-2O)62+>K
MVD4N1"Q"\@ 9SZ!_7BNV\++H4\U_J6A++)'>,AFNWDD99W4$?+O/88R1P<XZ
MB@#4.LZ>-1DT[[2IO(H_-> *2X3^]C'2HHO$6D3:8=3BOHWL@^SSU!*;LXQG
M'KQ]:Q/%ZW&DZSI'B6QMGN)8G-C<1)UECEX09]I G_?1K/\ #^F7^F^(KGPS
M<;IK)9DU43[<*V[J@';]\N\#T!H Z2/4[$:W?L-:,QM[=#-8J PM\$_-@#=N
M/IUXZ5SNL^+I-4\$0ZYHUY-:$W<*E0@RT;3!,'(XRO/!JYIUS;M\5]8C6:,N
M=.@7:&&2P9R1]0"*Y 7]D?@MI]A+*HG@N8(IHI%(*L+C+*<]P 21V'7J* /3
M+37-+UF6ZL]-U.-[B ?/Y)!9,]&&001[\BN?\$^+[6Y\.:1%K&KQOJEZ7&)"
M SMYC #C@$@<#C/:FR:A80_%E)&N[=(SH+#=Y@ _UP8#/^[D_3)KE;2ZLHOA
M#H)\Z%)$U2)VRP!4BX))/H0O/TH ]/U#7=,THD7MVL.U0SG!(C4G 9B!\HZ\
MG XK(UC4;N+QKX8AMKYOL5_]I\V%0I23;$64YQGJ?7'2L";4]'L?$NOZ=XGG
MN(8M3D66UD624174+1*FQ=G4C!&.IS5F]-CIWBCP):Q+]CAA2Y"0329:)##M
M0-DYST'/?B@#:\8:_!IV@:H+?4C;7UM:NZO&@?RWVDH&)4JNXX !P3GBM/0)
MY;GP[IMQ.Y>66TB=V/5F* D_G7GT>KVUCX7\9Z)J\RP:LSWLHBE^]<*Z$HZ#
M^(8P..@7L*[OPI*DWA/270DC[%$.01R$ - $EQXATFTN#!/?1QLL@B9CG8CG
MHK/C:K'(X)SR*2\\1Z-I]V]I=ZE;Q7$<7FO$7^94R!DCZD8]<\5PEA<0Q_#?
M6_#FK%3K2&[C>V?_ %MQ+(S-&Z+U;<67!'I[5=L"ECX_T"UU*YA-Y;>'O*E9
MW&?-W)GGU(#'Z9H [?3M2LM7L8[[3[F.YMI0=DD9R#@X/ZU#?Z]I>F2.EY=K
M&T:"20!2WEIG&Y\ [5X/)P.#6!\.KBWFL=92"6-PFL73!48'"M(2I^A'2LOQ
M-JEL^J^*-+Q]AN#IHQY<.Z;4<QOC'!^1<E3@9ZG( H [BYU.RM(HI9KA=LW^
MJ" NTG&?E"Y+<<\=JCCUO2YM-34HKZ%[1SM256R&;.-H[EL\8ZYXK@=/U^VT
M:_\ #.L:A(R:1-H26:W11BD,X*LP/'&X*!GU7V-6]9O['3)= \06=BT.@07\
MTEPT<) S)&5$Y7&<;BW..AR.HH [.VUO3+NTGNHKV+R;4E9V<[/)(ZAPV"I'
MOBDM=<TV\FE@@N<S1)YCPLC+)L[,%(!(]P,5QWB>>TU7P]<ZMX>M/M%NM];7
M-[-!$1]L2-@6 XR^T!>>G4=C5^\EM]>\<^&]0T6YCN8[2*X>ZG@8,JQ.@"JQ
M'<MR >>">U &^?$>C#34U+^T(OL;OY8GR=F[.W&>QSQ]:;>>)]#L)Y[>ZU2V
MCEMTWRQ[\L@]P._MUKS.ZU.T@^%NIZ-)*?[0MM3/G6X4EXQ]L5@2,< @C![Y
MQ75PWU@WQ;N)3<0#_B21A69@#GS68CGOMP3[4 :^J>,=*T_3].O8YA<Q:E<1
M0P/$"RD,P!;(Z8&3]1BMR*1)HEEC.4<!E.,9%>365U;I\/-!G$J>18>(UDG9
M3D0Q_:'.6QT&&!_$5ZA=M)>Z/.;"0K+- WD.05PQ4[3STYQ0!"/$.DF[2U^W
M1B220Q1DY"/(.J*^-I;@\ YK&UK7U?Q9:^'EO)K2*2UEEFEA4[]P*JB@X.!\
MQ.?8>X/,22PZI\([?P];@)KD0AMELR<313I(N6(ZCH6+=,9-;]W>6T7Q8TZ.
M6ZB\P:3+&V6 ^<R(0/J0"<4 =):^9I.C1_VKJ(N7@7$MTZ"/?SP2!QGH..I^
MM1/XDTB*WN)YKOR8[4J)S+&R>5GIN!&5S[^WK4'C".PE\,W$>I7,MI;-)"#<
M1-M:%O-38^>V&VGZ"N.O9=8OO"?BW3;N2WU9[:S00ZE:IC[2N&;:P'&]1SQ_
M>% 'H#:K8I?P6#7*+<W*%X8SD&10,DKZX%13>(-)M[M;66^C21I1",YV^8>B
M;ONAO]G.:XZ37M-U/QCX+GL;D7$(ANE,B*2NXQH-N<=<]1VR,]:B\+:SI8T)
M/"VN6WG:W:73[[*2$LTTGFEUD!QC!SG=T')/% &I:>)X])\4^)8=<UC%G:/;
M?9A,%&P-&68 *!GGOZ8S7812QSPI-#(LD<BAD=3D,#R"#Z5P5M=V!\4^/7>>
M#_CW@7<S#D"$AA],X!]ZWOA_,DW@+1=DBOLLXT;!SM8  @^X]* )M*\5Z?JU
M_J5K"Y06$OEL[J5#84,QY' &<?AGI5NTU_2KZ?R+:[5Y#%YR+M8&2/\ OID?
M.ONN17(6VHP6%QXZMY[1KN?S7N/L6TYFB,"CT^Z<$9JGI^KV<WB[PK>KJ"S0
M26%Q&#%"5AB;$?[M>.V.<DD8YQ0!V\?B?1)K9KF+4(GB2<6[,H) E/\ !T^]
M[>X]:FO];TW3'*7=T(W6,RLH4L4C'!=@ =J^YXK@[B]L=*\31>,83$VA7]U]
MGF"OD+, 5%T%Z?WE/?'S=^+VNZQ9R^(=4L59;22;2U,4\4?F2Z@I#X5#@C:N
M><#)W=0!0!?U[76T_P 5>')1JPCTF\CN7G!*>4ZK%N5MV,]_7!XJY?\ B"TU
M7P?JFI:!JJLUO;RLLT&UBCJI."&!QVX(Z5R&FW=H+?X<WL[JEI;6\L4L\J[8
MXY/(4*"QX!W# ]Q[5>N(HE?QUK5N4CTV[L!$DH.$N)5B<,R^O+!<CJ<T =3H
M^K(GA32+S4;@F6YM(6)P6>5S&"<*.2>IP!ZUH:?J5EJMJ+JPN4N(2Q7<AZ$=
M01V(]#7GC:E;:9:>#=6OY9O['72OLLUQ;NP%M*RQ8+%.1G85]JZ_PK%HWV>\
MN]#BE^S7EP9FGD=V%PY W.N\YQVSW(- %_4-;T[2L_;;I8MJ;W^4ML7^\V =
MJ]>3@<4G]NZ7]NM[(7L;7%TGF0(N294QG<N.HQWKC;[4M,TGQIK=KXFFN;6W
MU)8GLY1)*L<R",(T?R=PP/'^U[U8UW38M*\*Z3K6CV4T'_"/N)XH'+&0VQXD
M0[N1E#G!Y&,=J .N.JV :Z5KE$-GC[07^41Y&1DGCIS5=/$FC/'=.=0BB%F
MUP)LQ&('H6#8(!['O7.>)H+V#P?'J)MIY)/[0AU"_@BSYAC#@E1CNBA!_P
MS5>2\\*ZI8ZOK6D2RW4O]DRP2WLDLI1%(RL9WG&XDDXZC'N,@'4VOBG0KV]M
M[*VU2WDN+F(2PQAN74KNX]\'..N*BTCQ18ZSJNH6-L6W64HBRR,-YV@DC(Z#
M./?Z5Q@O;"+P]\.BMS;H8IH-^'4;/W#!\^GS'!]ZV_#=_;6'BCQ9;W4ACE^V
M"YVE"3Y7DK\_ Z<'GUXH [.L[Q#J%QI/A[4-0M8//GMK=Y8X_P"\0,CIVJS8
M7]MJ=A!?V<GFV]P@DC?:1N4]#@\BHM8U :3I%UJ#1F1;:,R,BC)('4#WH YW
M2KF^U?2]/U71_$SZBCS0_:XVBBV[2PW@ *"A )X)/'OS71)K&GR3W<"7(,UD
M ;B,*=T8.<$C&<'!KSW6M/T:UU2RUSP/?1PZO<74:R65I("ETA;Y]\8^[@9)
M) Q@YYYK:AU&TT?XFZRM_+Y37]G:FU4J29]N\,% ^\<D<#F@#IUUK37TV+44
MO(GM9B!%(IR)"3@!0.2>.@YKG?&/B$MX,NM4T+5"DEM<Q1.8U&03*B,C!AE3
MAO8UR6A:HFD^&O VLW D.EV0N(;R0(2('<81R,=!\PS_ +7O6OXUO]$N_ 6J
MW6FQQ+#>W5N3<!-HNG$L98C(^8!5Z].#Z&@#M;'7])U.]GLK*_AGN+<9DC1L
MD#IGW&>XK1KC)KRR'Q7TT17$'SZ/)&-KCG,B,JC\ 2!79T %%%% !1110 44
M44 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !111
M0 4444 %%%% !1110 4452U75[#1+3[7J,_D0;@ID*,P!/ S@''/% %P  8
MP*6J UO3SJRZ3YS"]:/S1"8G!V?WNF,9XSZ\=:S]4US29K--VM2Z>/MJ0!T4
MHSR*PS& R\@G@X% &_2$ ]1FL*?Q1:KXL7PX$N%F:U,S2K Q"DLJJ <$$<G)
MZ# YZUB^%?%UI:Z=)#KNL%[EM2G@1YADX$A5-Q484'&!G H Z^XLH[J>"25F
M*P-O6/C:6[$]SCMV[]ABS7(7>MMI/Q$GAO\ 4I!I_P#9(F6%AD"0RE?E51EC
MA?<]:WXM=TN?2(]7BO8WLI0/+F&<,2<  =2<\8ZYXZT :%%9]IJMEJQN;:SN
MG2>'"RH8S'+%D<$HXR/8D8-8G@C67?P!::GK-\9'WS"2>8\L?.=5''?H ![
M4 =40#U -+7'66O-<?$B\MAJ$YL(=)$SP3QF(0R>9@G#*#]W!R<]>N*T-/\
M$&B6'A^VO)-?-W:SSO'%=W!RTK&0C:, 9 /'3H!0!T-(  20 ">M9VF^(=)U
M>[N+2PO4FGM@#(@!! /0C(Y!]1D5%/XJT.VP9]02.-I3$LS*PB9QU4/C:3D$
M8!['T- &M@9SCGUI:C:XA2V-R\J+"J;S(3A0N,YSZ8K*N=8MKVRO+>RNYX+I
M;5IE8P,C!>S#>N",_6@#9HKD?!_BVPN=#T.SOM3$FJ7=LI._)+OMR06QC=CG
M&<UM77B71[.=X;B\"&*18I'V,4C=L;59P-JDY'!(ZCUH U**YBYN[V/XEV5D
M+V4V<VFS2&WXV!U= #TR>O<FE\%7EY=-X@CO+R6Z-KK,T$32XRJ!(\+P ,<G
MH.] '34F!G..37):UK3:/X\L?MFIO#ILFGS2/"V-F]60 @ 9).[IS[5N6/B'
M2-2TIM5L]0AELU)#2@X"D=B#R#R.#SR* -' SG'/K2U0L-:T_4KF>VMIS]HM
M\&6&2-HY$!Z$JP!P?7&*EO-1M;%HTG=_,E!*1QQM([ 8R0J@G R,GW'K0!:I
M  !@# %9Q\0:6+:UN!<[UO 3;K'&SO+@9.U "QP.O%9^J^--,L-$MM4MW>[B
MNYT@B,4;,-Q<*=V!\N.>#SD8ZT 2ZAH5W=^+-*UF.XA2'3HY4\DH=S^8 "<Y
MXQM':MS SG K&?4M/N/$.GQ)JTT5RT,CI8 ;1*IQ\SJ5R,8XSCK5E==TU[N.
MU6=C)+*T,;")]CNH)90^-I(VMD9['TH T:*X=]8;Q#KNMZ<FJ7NEK8"$6L\4
M3J$;9YCO(&&".@PW! XZYK=T34M/3PW%>IK,FHVI=PMY-RTA\PC:, 9^;Y0
M.<#&: -K !)QR>M& 3G S5"SUW3+Y;HPW2@V9_TE95:)H>,Y97 *C'.2,5SM
M]X@^T^._#5M8:A<"VN?M!FMVB,:2J(B4<;E!89[@D=* .RI,#.<#/K7,_$2[
MO-/\%WE[87LMI/"T>'BQD@R*I!R..">F#5^R\5Z%J-]/8V>HQSW,"%WB16+%
M1W7CYQ_NYH 272-1N]<-Q=ZFLFF1NDL%DL 4AU'!9\_, WS 8ZX].=FLNV\2
M:1>:1-JUO=^98P;O,F$;87;][MGCOZ5>-U$+/[6=_E;-_$;%L8S]W&<^V,T
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
M6 !B#W ((/I7,6$DL'P\T2^2&XGM]-U>6:]AMRRRK$7F&["X/&]6^G->L44
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
M2>]F)E9KR.)LE0).3M&.1P>G8UZ910!PCZYINK_$/P]=Z?*US"UG<IYL<3$
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
M36K9K"Z91Q$RY9)3[A?,'/H!0!OQ^(--EL[*\CFD>"_8+;.L$A\PD9'&W(&
M3DX&*RQXBTK3[/7]5@OKW4DLI"UQ"%9Q P0?(@V\+@9)Y R235'P;IE[8WMQ
MI%U$XL="GD6QD8Y\U9 &0Y]41F7_ (%[5GQH]W9_$."WC>22Z$OD*JG,O^C[
M?E_O?,,<4 7-7\02R#PIJBWEQ9P7-VJW43*T2,#$SG.X D9 QV-=/I.O:;K@
MN/L$[.UL_ES(\3QO&V,C*L 1D=.*XR[U"WNK+P0564+!=Q&0R0LNP+"5+'(X
M 8@9Z9!]*UO#\J_\+%\4X)VS):>6V#M<JC!L'H<$@&@#H;[5K+3IH8+B1O.G
M#&***-I'<*,L0J@G R.?<>M4Y/%V@Q:=9Z@^I1BUOI!%;R%6PSD[<'CY><@Y
MQC!S6;XBU+[+XKTRWF@D@@EMY<7\%J992V5_<J0IV;@,GC)P,8ZUQ\#B+P3H
M]I+;W$<EKXC5Y4DA?*H+AV)Y'("D9/(YH ](TOQ#I>LW-S;6-R7FM"/.C>)X
MV4'H<,!D''4<58OM4L]-,*W4I5[A]D,:(SO(V"2 J@DX )/I7.6D\3?%6\9#
ME)-)B17 ^5G$CL1GID @XJ;Q9J)L-6T17@9()990]_';&:2V.S 5?E.TODC.
M#P#]0 :T7B'29M)EU5;Q1:0LR2NZE2C*<%2I (;/&,9IL'B+2[C4O[,6=TO<
M!O(EA=&VGH<,!QUY]L=:\^\N/_A"?%$$T.H1-%K37$3-;NS F1#&Q!'S#/+
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
M96@^'WB[2Y+>X6[-Y=XC,#?-ODRFTXPV0<\9X!- '<:7XFTJ]NXM+BO"][Y
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
M;:@U@EQ,]PERMLZ+;2'9(W3/R\#W/% &GI]@MC%(#*TTTS^9-,X ,C8"YP
M.%4<=@*MUC>*[W3['P_<2ZI?75C;'"M<6I82(<C&"H)&3Q^-.OO$^DZ;J8TR
MXFE^V-"9EA2"1V=1@?+@'<>>@R: ->BJ.CZS8Z[IZWVGRF2$LR'<A1E93@J5
M/((/K4&H^(]-TR:>*>21GMH?/G6&)I/*CY^9MH.!P??@T :M%4)M:L(8+683
M&47H!MEA4NTPQNRH';'.>@[US7A'6D:Z\4W5W?SFSM+WY6O&8>2HC4L,-]T
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
MUQ>GW#2^+O#FI"'4YHFL9XI9I+1XTC<A/E"8 11@\XQQU8BO1$18T5$4*JC
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
M[ACC#''-,LVMK&YU7P_K^B:C>33WLTMOY<<CPWD<CEUY!V@C.#NP!CK7I-%
M%2:Q2ZTB33Y%$<<MN865#D*"N"!7)^#-1/AG18O#>O136MU8%HXYO)9HKE-Q
M*LC $=" 0>:[>B@#CO&'V^_L-,U.SL;B2#3=4ANI(0A\V:)<AF"8SD;L@'DX
MZ=*<ZIJWCK3]<L]_V+3[&99Y_+91(7(VH,C)(P2?3CN:Z^B@#RN.*<?"#3+,
MV=T+F.]C+0?9GWJ!<[R2N,XV\UTTCEOBK:W"Q3& Z.\7G")MF\RJP4MC . 3
M774R42-$PB=4D(^5F7< ?ID9H \KTY(]<^#%OX?M86DO[D^7''Y9^4^>3YA.
M,!0.=W3C'7BK_B>:ZNU\5:6]A>K*+3%JMK:MB\_=?ZQY%'S$'C:2.F,,>*['
MPOH3>&]!@TG[7]J2WW!)#'L8@L6YY.>2?2M>@#@[6<R^,/#-S]ENDB32I(W9
M[9P$9MF W'RD[3UQ5CPI8Q:C8^*=.OK:807NJW+;98F3?$X #*2.0<'D5VE4
M-8L;O4++R++4YM-E#JWGPHKG ZC# CF@#GO ]OJ<@8ZOAI-(#:;!+G/G!6^:
M3\0(QZY5O6IOB"'?1K)(X99G&I6TA6*)G(59 6. #P *Z'3[&+3;*.TA+LJ9
M)9SEG8DEF)[DDDGW-6: .1+_ /%U5NO+E\C^Q#%YWE-LW^=NV[L8SCG%<_8W
MMUIWA]R-/N C>(I7EE:R:22VA=V83(A4\] #@XST[5Z=10!Q'A6W67Q%XIMK
MBRO3;7K0NK7<3@2QF$*<LWKS\O4=,#& _P &6&H0WDNGZA\\'AYGM+.4G)F#
M@,K'T*QE5_X$U=1JUG<W^G26UGJ$NGSMC;<1(K,F"#T;CGI^-+IFGQZ99+;I
M)),VXO)+*07E<G+,<<9)/;@=!P* ,+XA6M_<^&EDL+=[E[2[@N9+>,9:9$<,
M5 [GC./:LR?4XM:\=Z!>V,-[Y'V.ZC:8V<JB-FV8SE>.1UZ>]=W10!YIX:^R
MG2[/PUJ_A^_EU:Q98]DB2-;DJ?EF#YV!<<YZ^@/%7-(U)M$N]9\/ZOH]Y=2W
M-_-<6NRU,L=W'(VX MC:".AW8 KOZ* ..F6=OB?$_ER1@Z$\'G+$QC24RJP7
M=C&< FN5FN9X_A)/X8GTV^76+,I%) MK(^_$ZMO5@,$$<YSUKUNB@#S^]NX]
M)\9:A<ZMI^I3:=JT4+VL]M%,=C*FUHW1>03U&1W-=AH=M#::-;P6U@-/A4$Q
MVW>-220".QYR1V)-:%% 'G;^8;7XA 6UQF[5Q;CR'_?9M]GR\?-\W'%2RR$M
MX#<6]SBV/[[_ $=\P_N"GS<?+\W'-=_10!C>+\MX.UF-$>1Y;&:-$1"S,S(0
M  .N2:YF4RVP\!Z@]I=-!9HT=QY=N[O&S6Q0 J!D?-QTKOZ* /.]=BN(-6U#
M5/#TMW;ZKYR)/IDT1>WU$849 (P#@X+*>-ISCK79^(!;MX?OUN[62[MV@998
M(@2\BD8(7'.<=,5HT4 >=6VFZQ-;:QH-AJ<VIZ;/I3BTNKI,2V\K?*(2^!NR
M,DYY&!G'&770D\1^#-%T2"UG@U.">U$T;PLIM#$1O<DC &%.#WR,5Z'10!Y_
M<V%WJ6M>/+.VCECDO[*"*VD:-E21A$ZL Q&#R0#]:G\.WNG:U-IZOX?U"+5+
M,YE^V1RA+1@,,0S<'/0 <G/89KN:* .=\:7MQ8:9:2PVC3H;Z(32I;^>]K'R
M3*J8.6&  <'&<X-<E*LH7Q]&EGJ3"_L8S:M-;R%IOW!7N.I8_=ZCT ''I]%
M' S.3>> Y%@N"ML&\XBW?]UF I\W'R_-QS66MS<:?X%\2>&;^SO#J@^ULA6V
M=UN5D+,)%8 COW/:O4J* *&AL7T*P)CDC(MT!26,HRD* 05(!%7Z** "BBB@
M HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "
MBBB@ HHHH **** "JFIZG::18O>7LOEPJ57(4L2S$!0 .222!5NL'QE=7UGH
M/FV-F]TWVB(2^7#YSQ1[QND5,'<RCD<=>>U %?6=:M]1T#Q!:V\EU:7VG6CO
M(F6BDB)C9D8,IY!QV/;!JKX:\9:7_9VA:9=37*W-U9PK'/- XBFDV#*K(1AF
MS[]>.M945I=3:OXJ2VT[4V34](1;:6YC<>8P24')?[I)8#:<'GH!4OV677?#
M'AC1X+6YCN;&:TDNFFMWC^S>2HW<L!\Q(V@#.<YZ<T =6WB&R6?RU2>2/[2+
M4S)&3&)<[=I/L3C/3/&<\4V]\3:=8FZ+B>6.RQ]KEAB+K!QGYL>@.2!D@<G%
M<I):75MK[:AX>^WVT\^J;+[3)X'-O.OF8:=2PPN5&_<#CH.O!LZ.9] _X2/2
M]2LKJ9KJ]GNK5XX'D6Z24<*" 0&!X(..W;F@"YXAN_,\2>$KBSO)#;W5RX(B
MF/ES)Y+,I(!P?4&M9?$VG-%J;CS\Z4<7:>2=R?+NX'?CGBN1AT>^T2V\"6$]
MO<W$FGRLUT\$#RK%NC8<LH( !8#\*DN7N-/U;QG:/IU]*^IQ"6T:&W9DD'D;
M3\_W001T)!],T ;5[XSACU'P_!:6MQ<0:RC3+*L1/[L1%Q@==V=IQV&:OZEX
MGT[2EN))Q.T-H0+J6*$NL&0#\Q'L03C. 03BN2MX[RUM_A_>R:9?E-.MV@N4
M6V<O$YMP@RN,@;AC)XHC6/2];UC3=;\-7VHI?W;W%I-!;F6.9' _=L<X4@Y'
M/&/;J >A1R)-$DL3JZ.H964Y# ]"*X;QUXAAN/#\4NG37J WT,4=U!O2*0^:
M ZY!Y&-PR?E..":ZTV<AT V,"1VDAM?*18S\L)V8 'L/Z5YS-<7C_#2T\/OH
MNI)J>GS6T4T*V<C*1'*OSJX&U@0,\'/X<T =VE]IK^,I+47%T-0BL=SPMO6$
M1;_O 'Y2V3C(SP"*FL]?L[Z:V2&.?9=H9+>8QD1RJ!G(/;@@C.,CD5B,96^)
M[78L;LVYT/RA*ULXC,GFEMA;&,XK*T'3[RTU&RM]"EU"+2+R&4W-A?0N/[-;
M8=NQF (^8XV\YY/3D '5-XLTI9[9&DE$-W<?9H+GRSY4DO(VAO<@@'H<<&HH
MO&>D7&HM80?:Y)DNA:R!;23$;D9&[CY1[G@\XZ&L3P?J=W;:/8>&;[0+Q=1T
M\K"SO;G[.%4X$HDZ'Y>1CDGCWJSX9BFDU?Q9$UO=VWVN[+PRRVTD:LOEJNY6
M8 'D'O0!KMXKTM+BUC=I4BO)?)M[EHB(99.<*&]\'!Z'L3573/%D>I7&M1S6
MEW!!ITQBW^2Q8@(I)^7)S\QP!SC%<YX82#[!8:!J?A*Y_M73RD9DEMR;?Y.!
M,)#\O09XY)X%:VBM/I^K^*H+BPO!Y]V;F*1;=F1T,2@;6 PQR",#)]J -/2M
M8TBT\+Z=<V]U<S6DX6.U:8M)-.23@<\D\'Z 9. *FC\3Z8\=^9&FAETY0]U
M\+&2-2,AMH!W CNN17$:;8ZE9^&_!6IFPO"-%D=+VU-NXE574H7"$9;;G/ /
M7BMB]M9+_P 2ZKX@MX+@VB:&UDO[AP]Q(7+?*F-Q &!G'5O8T :]IXUT:]N-
M/BB>X"ZDH-M,]NZQ.VW=LWD8W8[>Q'7BM#7=570]#O-4>"2=;6%I3'&,D@#/
MX#CK7$%;A?"?@6$Z=J'FV-Y;-<H+&4M"$B96+#;D $CZUV7BBVFO?"6L6EM&
M9)I[">.-!U9C&P _,T 16?B.!]%L+R[25)[Q46.$1'?+(5W$(O<=3GH "2:M
M:9K5GJLES! SI<6CA+BWE0I)$2,C(/8CD$9!]:XXF]#>#]>73[[[+ID3VUY"
MUNPECWQ*OF"/&XA6!!XZ<CCFMG2;*2Z\=:EX@CCDBLY+**U0R(4,SABQ;!P<
M $ 'OSB@#;O-4@L[F.UV2S7$J-(L,*[FV*0&;Z L![YXS58^); Q6)C$TLNH
M(TEO L9$CJHRQ(.-N,CKCKCK63XNT^VU#4K/=+J.G7D,3O:ZG91NPC.1F-\
M@@\'!ZX/XYT.HZZ!X>76].ND$UO+]IGL;5C)YFX;$.T9B#+ACC'/&1@T :FJ
M>-[2WT.PU/3X9KN._O([92(B/+)D"ON!Y!'S #N?:KCZCILWBJPMWEO8M0:U
MD>* JZ1LAQDL/NDC ]Q7$066H1>!8(6TG4%DT[7UN98C S.8Q<%B5')? (.1
MD'U/-=+>/+<_$30KM+&]$"V5PKR-:OM0N4VAFQA2<'@GCOB@#;A\06=Q<V\4
M23LEU*\,,XC/ENR!BPSV^XW)X..,URLU^/$&O^(+&[.KP0V*0+;-9K)&\)V%
MV? _B)QC(.0 ,<\QZ5:75CKEA<Z!]O@MKNZ8ZAI-W _E6^0Q:6-F V\],'#;
MOPK6\.M)_P )SXHD>TO(HKF2W,$LMK(B2;(MK88C'!&* -.U\3Z;<>'8M;A>
M>:RD(5'\H[W);8/EQGEN.E6]7U2'1]%N]4N%;RK6%I67N<#./J>E<MI6D7=G
MXPN]%55.BQ3#58L'[CON BQV'F!I!]!73Z]I4>NZ#?:5(^Q;N!HMX&=I(X/X
M'F@#&\/6EQJ^A0:WKE]<^=>Q"X\N"ZD@BMXV&Y5 1AG"XR6R<YIT6M6/AG2-
M0O-1UI]0MHIRZRJ?/>.,A0JML'&&R,GCIDY-0^%-4GTC0;;1]?M;BUO-/C$&
M]87>*=%&%9'4$'( XZY[5R\FDWT7PU\6Q)I=V)=3U2>6TA2V<R21LR;3L W*
M, ]0,4 =ROB[2W)51<[VN!;PHUNZF=RNX;,@;EP"=W3'.>E-F\9Z-;Z+=:M-
M).D%G.;>X7R&+Q2 @%6 ''4<].1S53Q'J5S&NB2V]E=M933G[3/#9N]Q;KL.
MW";2RY)P3C(&>Y%<C>6E\O@[QGIZ:/JAEN]1\VW1K>21I%;RL8/)8_*<\G&.
M<&@#OK;Q3IMUJTFF1_:5N%A,Z"2W=1,@."T9(^89(Z=<\9JIX?\ %\.K:3=:
ME=02V<,%Q)&/,C/17V <9RQ/89Y.!FJM_*T_Q"T&[BL[TVZV=PCS?8Y0J%]F
MT,2OR_=/7&.]<_'IVJOX*O\ 3H=+NFO=/U=KPP2Q%$N56X\P*K'ALKSQGI[B
M@#N;3Q%87.HSZ<_FVMW!")VBN4V$Q9QO!Z%<\'GCOBF0^*--EU"TLV\^%KY2
MUH\L15+C R=I/?'.#C(Z5SJV]GXHTO41I/A^YTZZFT^:W^U7MN875F7 C&>2
M,Y)(X&/>D\-3VFI-I\$_A*[MM4LROG275L5C@91@LCG@YQQMYY].: -ZRM;C
M2-2UK4;W4KE].D E5;J0,L&T,7*8^ZF-O!Y^4_C=L]9@O+M;407,4CP^>GFQ
M%0R9 R#^(XZCN!3]9\O^Q+_S;1KR/[-)NMD!)F&TY0 =ST_&N7\*6E[IFNBS
ML;N]O-!-H707\++)9ON&(PS $@C/RGIM'X@'57^I6VFI$;AFWSR".&-%W/*Y
MYPH'L"?0 $G K!UW6[;4O"OB&.TGN;6^T^TE:2/+0S0N(RR'CL<9!!(--\60
M7D'B'P[KL,$MQ::=+,EU'"A=U65 HD"CDA2.<9.#6=J6DW6LZIXDU:Q@E\FX
MT)K"!70H;B4ASD!L' RJY/7)]* +_AWQEI;6NBZ7<2W*W-S:1K%-- XCG<(-
MP60C#'\>OO3-%NC:^+/&*W%S=26MLULRJ6>4QAH=S;1R1R2<"J36TFOZ'X6T
MRWM;F.:PN+6>Z>>W>(6XA7YAE@/F)^4 9ZYZ5<TAI8/%_B^YEL[U89_LYA<V
MDF)=D.UMIV_-@\<4 :.E:UH]GX5TZ[M[JXFLYRL5JTY9YIF8D*.>22<]>@]
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
M&:#9(8PFXX*KC#,<GE<]*Y"WT^YU3X76/A(65U%J7[J*42V[HMOMD#,Y8C&
M <8)SD8K?A,D7Q.U"Z>TNQ;G2XHQ,+60HSJ[,5#!<$X(Z4 6;;Q[H-TEC+#)
M<FWOY?)BN#;.(@Y8J%9L8!)' /XXJUJ/BO2],DO%F:9UL AO'BB++;AN5W?A
MSQG Y-<+;P7B?"K1K)M,U$75OJ$3R0?89=Z*LY<G&W.-ISFKGBB74=4@\4Z>
MVEZCO:WS8I;6SJEPOECYW< ;F[;">P 4F@#J+OQ0(/%MEH<=I/(D]L\[3+&6
M! *@;<=1\V2>@XIVEZII#W^N307ESFVD4WOVHNJ0D)_"'QM&!DXX[UBJUS%X
MK\.:FVFWQ@?2Y+8XMV+1R$H0''\&0#RV/?%9]]H^H:TOCVRM;:YADOVB-J\T
M#QI-LC4$*S  Y*D=>_I0!V,'B;3IKRUM7$]NUZI:T:>(HLX S\I/?'.#@X[5
M1G\?:%!%>2YO'2PF,5R4LY#Y) !+,,?*HSU/7!QG%9NHF;Q9!X<BM[.ZMKBT
MU"&[NA-;O']F$8.Y<D $DD* ,YSGI5%4N#HGCZ'^S[_S+V6X-LILI<S!H0B[
M?EYRPQQ]>E 'H4<B31)+&P='4,K#H0>AI]9GAPL?#6FAXY8G2UC1DEC9&5@H
M!!5@".16G0 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4
M444 %%%% !1110 4444 %%%% !1110 4456U#4+72[&2]O)1%!$!N;!)Y.
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
M %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110
M4444 %%%% !1110 4444 %%%% !6;KVMP>'M)EU.Z@GEMX.9?(4,4'K@D<?2
MM*H;NUAOK.:TN$#PSQM'(I_B4C!'Y&@"L^JHMQ8P"VF=KU2RE=I"  $EOFZ<
MCD9ZCU%4)?%^GP-:/+#<K97DXMX+XJODNY) 'WMP!(.&*X/K@@U1\&Z1JEMI
MLD&L$^;9HVGVLF>6A5CB3V+#:/\ @ -8WA>SGLK.V\/ZAX+5[^S(C&H-;1FV
M=%/$N_KG'..I/IS@ Z]O$5KYVU(+B6(70M#<(@,:R[MI4\YX)P3C&>,YJAI/
MB>YO]9UNUFTNYB@TV18@5V.?N;LD*Q))R,  \8S@YK#EL+N'7SJ/A^+4;*[F
MU/9?6,L#FUN8Q)AILD;5)4;MP/MC-:NBQWFE^+/$AN-/N3!=SQW$5PB;D91$
MJD#!R6R,8Q0 :7XH\.Z7X5TBZMENXM/O9A!:^8CR,"SD?,Q)QSD\GI^5:NF>
M)K#4[V\LU2XMI[)5>2.ZA,1V'.'&?X>#].]</:V6H6GP]\+64VF7PN;+5H);
MB%;9V:-$F+LQP#Q@CI6\T9E^(.I336-TUE/HZ0>8T#JCL&=F7<0 /E8=2* -
M$^--*1+*5X[P6^H$BSF6W9Q.>N%"Y89'(R!D58OKB-M<C\Z0);:9;M=SL> K
M,"J'Z!1+G\*X31=0M%T[08M:MM:M[/2F6: RZ8XC0[2$WS#(95#?> 7/!/I7
M;I%(NCZO>SV3W$MT9G^RE>9$5=B)CK\RJ#CU<T 6+77K>YG2)[>XMUDMS<I)
M,H"-&"N3D$X^\.#@CN*K#Q99"\L8);6[@34L_8YY$41SG&0!\V5)'(W 9KF-
M/T&^5KO1]'N=0&AWVF3Q^5J,+J;&1@%549@&(Y/R\@;>O(JUX7$DB6-A>>"1
M9ZC9[!/>26T8A&WJZ..68XXP.">N!R 2Q>.+]O#_ (@U9M$N/^)9<3QI&9(L
M+Y8 (8[\Y!R3@'C@9J/Q%=3W=IX1O98[BVFDUBV5T:0 ."C$DJK%2"0#SS]*
M@ATK56\-^,]&_LV=9[NYO9K>1MH282<H%.>2?T[U-JXO;_2/"C)I5\C6FI6\
MT\;0DM'&B,&8@9QR>G4^E '1ZEXB@T[[5MM+J\^Q1B2Z^S*I\E2,\[F&3CG
MR<8XY&:Y\::,US9P0O<7#WUL;FW\JW=A(G'0XY//3MWQ6!=6TNC^+]4EO?"L
MNMV.JM'-;SP6Z2O$X149'#$8'R@@YQ^N+;6\\/C7P\XTM[>&WLKA)1;6[&&!
MG*%4W 8['GI],T 7#X_T@:;-?"#4&2UD:.[1;5B]J5^]Y@[8Z]^/H:U;C6X(
MWCBM8)K^:2'SUBMMN?+[-EF4 $].<GG'0XXZ*"Z_X1OQW!_9][YM_<736J&U
MD!F#PJBE>.<L#4(M;K3;_3-6N?#=QJ]C/I,%I/"+4//:RQYYV/@[3N(_#/ID
M Z9/'>A26FG7*27!34G:.$"W<D.N<JV!PP((V]3VS22^,[9M&UB]M+&[>XTA
M6,]G,@BD7Y=P)W'[I'.1DXZ ]*R=3@E2X\,RPZ%+9Q1:DUQ)!;6I;R(RC*"_
ME@C<203CIGOC--EL;R\UCQW!%9W(.I6,<5H[PLB2L(&0@,1C[S =?I0!U7AZ
M_N-3T&RO+J!X99H$=MVWYB5!+#:3@'/?GVJ*]\26=G)=JL-S<BQ -VUO'O$&
M1GGG)..<+D@8XY%)X4>=O#.GQW%G/:206\<31SJ V54 G )XSG\JQ-%-SX;U
M3Q#:7]C=W$5[?/?6LL%N\JRAU ,9*@[2"H'S8X]J '^,-??^R=(?3%EN+74[
M^VC,T#*!)$S@E 2P.6 QZ8)R16WI6EVVD6]S-96MQ$+EO.-F74B-L<J@SM7.
M.@.,UQIT'4=%\$^%-):UGN;FRU*"YN5@0N(D$C.W(X.W=CWQQ7HJ,'0,,X89
M&00?R/2@#S;7]>N?$7PEO]4GM;BR=93Y;+* I N2FWY6R<*,'(P3TS7967B:
MTO=<;2#;7EO<>29XFN(=BSQ@@$KSG@D<$ \]*XF;3]77X47WAXZ->F]CN'50
M$!$N;DR94@\C:<Y.!VYKH-2@GO?'NG7,=M=BU.G3P/.(& C9RI7.1QT/T[T
M:,GB_3X9+-I8;E+._F$%O?%5\F1SG:/O;@#@X)7!]<8J[X@C$GA^_P#GD0K;
MR,K1N492%)!!!!%<9X7M9[2TM- U#P4O]H616+^T&MHS;,BGB7?U+8&< 9SZ
M<X[37BW]@WRI%)*[V\B(D:%F9BI &![T >9?VA/%X#T.\T35[RX\33>45MUO
M))C.2?G\R,L1MQU) QQR*]0O=2CL6@B,4D]S<$B*"'!9\#+'D@ #U)'4#J17
M!V'AW4K7PCHFKZ7926_B#1H!'+;2(4^U1_QQ'USU4\X/Z7_$?VN\O-%\21^'
MKC4+>V26&\TZ6 &9!)L.Y5;AB"HZ=?7K@ W;3Q=IMY;/(BSI/'=_8FM'4"43
M]=G7;T!.<XP#S537_%TNG:'->6FFW+31W:6CI($4Q,Q49.6Y'SC&,@G';FJ-
M]8Z?J6B(MSX8NM/L[J[0J+6#9=0$*Q$["+)4AL =2 >>N*H7>G^(KCP3J%I,
M+G5#;:C#)9R2Q>7<7$"/&Q+*<9(PP!."<?2@#IK[QA8:=>)8W-K?B]>W:=;9
M+<R.RJ1D#;D,>?X2<=\4W3]4TF^\5S"&"\CU#^SXY':=71/)+$J-I.,Y)R<=
MB,U1FEGG^(>D7QTZ^C@_L^:)W:W8K&SNI4,P! X4]^.^*;=V%U>^.]4VP7$4
M%UH@LTNC$VP2;W)Y]@P.>E &JOBW36N+)")UAU"0Q6ET8_W4[\G .<\X."0
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
MBN7\];":;R4ORG[@OG:.<Y )X#$;3ZUG$M#\67V&:0-H1D\KS"06\X#@$X'
M'I6(MCJ%[\,?^$-FTVYCU1$6T.Z!O)PKC$HDQM*[1NZYR,8S6]':W$7Q,CN?
ML]RUJFC?9?M)C)4R>:&P3].<]/QH M'QKIH\.1Z_Y%W]C:;R6^1=T;>9Y?(W
M=-W'&:EN_%NG6FJ7&EB&]GO+>$3-#!:NS,I)'R\<].O3WSQ7#SV6L1_#^\\-
MIH5_)=P:AO+J@\N1#="0%#GYN#^&#G%=/;/,OQ)N[V2QO([=]*BB$AMG*[U=
MV*[@""<$=#ST&: %U3QJJZ1HNHZ1:RWD&K7L5NKC:NP%\,I#$?,=K+Z ]2.^
MC>^*;.Q:X22WN7DL[9;F[CB56-M&<X+<X)^5N%R>*XRRT_4AX#T)5TJ],^F:
MX+J>W,#+)Y?GR-E0V-W#J>/Z5HZ]+JNHWNMV$^D:B(IM. L1;1X25RC;A+(I
MQE2<!2<8S@$D4 =!?>,-)L9K&%C<S/J$+36H@MW?S5"[OEXY.".!SSSBETSQ
M7::IJRZ8EG?6]PUJ+L"YB$>8R<9P3GKQC'!KF;$78OO CR:7J$:V-E)%<EK5
M_P!RQA1!NP#C+ CVZG K7\;V=[$=-UW2/+_M.RN%A17.!-',0C(?Q*M[;30!
MOZ;J2:G'-)'!+&L4SPYD"_,R$JQ&">,@C\*JZAXBM;!KL>1<7 L8Q)=&! WD
M@@D9!()X&>,X')Q5W3K*/3=.M[*-BRPQA=S=6/=C[DY)^M<5XIT^:75=0U'1
MTU.PUNW15AD@@>2WU!=H(1QC8>25R2,=>W !TFI>*M/TR2]1TN)AIT:RWK0H
M&%NK9(+9()X!.%R0*R];=9/'7A"X@F<QSFZX$C;'7R"0=N<=^N,UE>(#K6HC
MQ%IMWI-\SR:?BR%G&1#,QB.XLXQN(8D!6/0# )JT$O)M3\$W/]F7J1V<4OVG
M= <P[H=B[AVRW;J.^* -S4O%MCI<,]U+;W4EE:R^5<7<2*8X6R <C=N(!(!*
M@X/T.-OS$\KS=Z^7MW;L\8]<UY[86<VD7^HZ1J'@UM6:>\EGL[Y8(WBD21BP
M$KM]W!)SUXZ#IGLM7TZ74/#5[ID3I#+<6;P*R#:J,R%00.PYH JIXMTTM9NZ
MSQ6M^XCM;N2/$4S'[H!SD9QP6 ![9J.7QGID>J7.FI#?S7-K)%',D5H[;-_1
MCQ]WWZ<C&:YR>UOM>\!:=X9;3KNUU*)K:&<R0,J0B)EW2"3&T@A>,$YW8]<;
M&AB9/'_B262TNHX;I;;R9GMW6.38C!L,1C@D?7MF@"]XSUV?PWX7N]3MK5KB
M6,!5P5 0L0H9LGD D<#)_F,77KUK;QWX8NY+>]C,L-Z&M=V]F*J@7"JQ7/S'
MD=CR1CC5\?Z==ZKX(U*SL86GN'12D:]6VNK$#WP#5&_>ZO\ QKX8U%=,O8K>
M"*Z$S20G]UYBJ$W8SC.T_3(SB@"Y_P )SI*:!>:S/%>016,S07,+P$RQ2#'!
M"Y ZCG..>M64\5Z>\<CF*\3$ZP0K);LIN7897R\_>!&3GH "3@<UQ>K66H2^
M&/&ULFF7S2ZC?>9:(+9R95(09'''W3UQ70^)H;R:Y\.>(+*UN+B'3;AGN+81
M,)?+D0H6"$9)7/3&>: -1/%%FRWZF"Y2ZTY/,N+1U42A,9##G:PP#R">F.M(
M?%=A]FT:Z\JX\C6F1+:3:,!G7<H89R. ?7I61+I4^M^*[_6+>*6&W.BMIZ-/
M$T1ED9BWW6 .%&.2.IXZ5BPIJ\V@>#K(>']1672+ZW%T'C5<;(W4E<GE>^[@
M<B@#L[[Q3I]@;XLL\T>F@&]DA3<MN",\\Y/')"@X'6N?UK5+>3Q;X2U6W-X\
M$XNL1A) 9/W7RXC..>>#CH<YQ6=JDPM];\36"66KK9:EMCN7M=/:Z4L8@'9&
M4_(2K 88'H#WQ6DSPW>N>#KK2+2ZETRR2XC>3R'_ '(\ORE5@1D'<I!],<T
M=)H>O6VO0W#00W%O+:SF">"Y0+)&X ." 2.A!!!I;_7;:QO18B*>ZNS UP8(
M%!81@X+') ZG &<GL*R?"L-Q#XA\2R36MQ#'=7BRP/)$RK(HC5203[BFZS<W
M_P#PEL5I)I]])ILEE\DME&<R3;C\DD@P44#!&2 <G)/2@#H=,U*UU?3;?4;&
M3S+:Y0/&V",@^QZ5:KE_AS#=6G@;3K.\LY[2>V0QNDZ;3G<>0/3FNHH ****
M "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH
M**** "BBB@ HHHH **** "BBB@ HHK+\1Z_;>&=%GU:[@GF@@QO6!0S<G'<C
MN10!J45STOB^"'6!I<NE:DD\T32VN8EQ=!2,A?FRIY'W]N!UQ1!XST^31+S4
MYK>ZMS8W/V6>VD0&59<J H )!R67!SCGK0!T-%8:>*;?S=3@FLKN&XTN)9IH
M2JLS(P)#+M8@]#W'2JMGXYLKM]))T^_AMM7 %M=2QJ(RY7<$/S9S@'G&#V)H
M Z:JVHV$&J:=<6%R&,%S$T4@5BIVD8."*P/$VM07.B:Y:6UI=7:VD#I<2VY
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
M9UC18R002%C51G!(R<GDXQFM2N>A\96,SV+BUNEM-0N6M;:Z95V/("PQC=N
M.QL$CMVJAHH^S_$/Q88XY)2+>S<1A\DDK(<#<<#\P* .PHKA/"%M%XF1M6U.
MPG6]M]2GDBO-ZJ0%D*B+*MNVA0 5(VG'>M[5/%=MIFLII!L+ZYNY8&GB6"(,
M) " 0"2.>>_'O0!NT5RT?C_3'T*;5C:7J);7(M;J!HU$MO(6"@,I;U8=,UJR
M:_!%X@_L1K:X^T&U:Z1@JE'12%('.<Y(X(% &I17*V?Q T^\T\ZB-.U**P6.
M9Y+F2$!(S&Q!4_-]XXX[<]<YQH3>(Q:Q7LESI=[&+.V%RW^K;>GS9VD/@D;3
MD9';KF@#:HK$/BFS7^Q3]GN?+UH+]F?:N%+)O ;YL@X] 14-QXRL;8RR-:W3
M6D%Z+&6Z"KL24D+T+;BH8@$@=?6@#H:*Y^Y\70P:O>:3#I>HW=Y:0K,8X8U^
M=6)QM)8#L>N/;)JAJ/C<MI.@ZCI%E-/!J][%#N.Q60$G<F"?O':P]!SSTH Z
M^LH>'X#KS:O+>7L[<&.UDG)MX6"[=R)V.,^O4U?>:1;0S+;2/($W" %0Q./N
MYSMS^./>N:\/^,OMOA&VUO4K66 W4FV%%VMYS/(51$ .2>@^8#UZ9- '5T5D
MV?B&"XUE]'N+:>ROA%YR13;2)8\X+*RD@X/!'4?3FJOB_7KK0+"TEM+-YWN;
MR&W+!E 0,X!X)&21D#MGJ10!T%%<-=7C6?Q1BNEL;R6:;07/V5"&<MYR<?>V
M+P.N0/>K>J^*-#U+P-+JE_87DU@T@BN+8+MDC=9 N&PPQAP.AH ZZBLJ]UV.
MUO9K*&TN+RXM[<7$L<&S<J$L!C<PR25;@>GN,Z%M.MS:Q7"@A94#@'J 1F@"
M6BN>M_&5C<26#"UNEM=2G:WM;IE78[KNXQNW ':V"1V[5*OBJU>VUB86=WG1
MF*W,>$W'"[R5^;!^4YZB@#<HKE+SQ?/_ &MX<@L=-N)K;6(GN-P,89E$6X*
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
M">>UE/\ =,T>$/\ WTH'XBNI1%1%1%"JHP !@ 4RYMH;RW>WN(UDBD&&5N]
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
MFC$*P!E*JBELA\!LG'.>N,"MV&#4C\1/[7DTJXCM'T@6Y??&=L@D+[2 V>A
MR,C/?O0 ]_'=FOAZRUL:?>-;74XMY.$!MI-^S$F6&!N&,C/ZUMMJ6-:CTQ;:
M5F: S-*"NR,9P ><Y)Z<=CZ5S?AKP]+<^";_ $+6[&6V%S-<;E<H?ED=F5@5
M)Y&0?J*N>!;>_P#[#34-5F2>]NE5?-7HT2#;&1_O<O\ 60T :^IZO!ICVL+(
M\US>2>5;P1XW2$ DGG@  $D_UP*RY_%PCM=8C%A*NI:5 9I+.1U&],$AU8'!
M7@^XQC&:C\4Z9?OK6A:]I\!NFTJ6436RL TD4JA6*Y(!9< @9&:K7&@WFL:Q
MK.L>0UM]IT@Z;;1RD!G)+,78 \#) &>>#[4 9&LZA-J'A_P3K%]:R+<MJ5FS
M,H#&3=$S$J%)X)[=>*ZBR\66TTFJQ7]I/IDNDHLMPMP4.(F!(<%"0>%/':N=
MDL-;G\-^$+0Z'<I+I5Y:M<J98B52*,JS<-@@D\#KCL*FU3P]J.LZYXGB^RRV
M]OJ>FQV]O=,R[?,3=U .X#+#MZT ;4?B^W_M>STVXLYK>2_C=[4ET;S"HR4.
M&^5L<X/'O3=%\7C7;E([71M06'SY8);B14"0O'G(;#'KCMD<CGTK>'KC6+AH
M(]0\*1Z;/;C_ $FYS&RR$#_EEM.>3SS@ 9Y-2^!;._L--OK>_L);1WOYYT\Q
MD(='<L"-K'MUS0!>UGQ)#HVI:=8R65U.^HNR1/"JE=P4M@Y.<\>F/<8-4$\:
M/+_:,$?A_46OM-8?:+7,650KN#;MVTY'0 D^W>G>)K.^N?$7ARXM;&6>&RNG
MEN'0J BF-E'4@GD]JKV5GJ,'BCQ5>R:;<>1?10"V8%/WI2,J1C=QR>^* -*/
MQ3:W5KI,UC;SW+:O&9+=  NU0NYBY/"XZ=^>E5)?'5E#H"ZNUA>%!=_8Y8U5
M2T,H?80>>1G^[FL/2[+Q'I^A>&;";2+N2SMHGBU"UAFC5R^!L).\ IUR,_4=
MJJMH.NQ^$K[2UT)UD.N?:HDBECVF+SA)E<D< # S@^U '86?B@7.L76DRZ5>
MVUW#;BYBCD\LF>+.W*X8@'/&"1UK/M?B#:W5EIFH#2;^.PU&<0+=.$"QNS%5
M##=GDCJ 0,]:<\&H#XBQZN-+N6LQI!MS("G$AD#[<;L]!C/3-8,.BZXGPXT;
M2FT:X^VV=_%++"'CX19BY(.[!X/KUH ZO5O%=OIOVTQVLEV-.7==>6Z*4^7<
M0 Q&Y@I!P/4<YXJO<>.+5;FQ@LM.O;]M1M&NK4P*F)5 !QRPP>>^/SXK+-KJ
MVB^)M2D7PU_;%AJLJW,4BM&'@DV*K(^\]/E!R.GO5R>QU-?&N@WATUF@MK.6
M&XE@*".-WVX !()4;3VH Z07K?V4M\UI.K&$2FW(7S%XR5/.,CIUKF(OB/9/
M:Z?J$FDZC#IE^RQK?2(OEQLQP PW9Q[XQ[FNLN?^/6;_ '&_E7F^BV5SXE^$
MVDZ!'931BX6(27#[=B1K('+@YY)"X ZY/.!S0!UVK>+;;3%OG2VDNH].&;LQ
MN@*?*&(4,06(4@D#U]>*KS^.+87L-I8Z9?:A)<V'VZW,"IB:/(Z988//?'3
MR2!69]DU;0O$FJ*OAL:U8ZG<?:8)T>,-"Y4!D??T7*Y!'Z]KJ66IQ>/M/O7T
MYFMH]*:UEGA*"-)&=6X!.[;\I[>E $X\9F6ZU*SMM!U*6ZTY(GEA_=J2'4L,
M$OCH.F<DG@<&F1>.[2:#2[U-.O?[.U.2.&.\94"I(_"J5W;NO!.,9[FF:?:Z
MA:^+_$]])IL_V:]BMQ;N"A\PQHP8 ;LCDC&<5BQ:+K4/P\\.Z6=(N&O+"]@D
MGB#Q_*L<FXG.[!XZ<T =+'J%BWC'4+>'2IO[5@L49IB5 FCW':JG=ZYZXK /
MCC5S\,)O$8TXBX;=L?>FQ TK("!G)V_*.1S^=;-K:WW_  L:ZU%["9+*738[
M=9V*X+J[,1C.>C>E<_%X>UR3X2W?AIM,:.]MP5CW2IMN,3%\J0>!C'WL<F@#
MK[GQ +>6.U^QN;YXC,;=I8UV(#@$MNQR>F,]_0U5LO&FFZCIEE=V<<TLU],T
M$5I@"3S%SO!YP H!).<8Z9R <G5(=8A\26_B2+PX]_;75F+:YL6>,SP%79D<
M9.T_>((!_&C5=.UM+_0?$=MI"EK"283Z9 Z;UBE4+D'(5G&W)&>^ 3C- #_"
M3%O'_BXM:/:.5LM\;$'G;)R"#@@]?\#1XL=;/Q[X5O$M9;B;%XOEPC+R?NA@
M#) ZGJ2 .>15KP_#J1\::YJ5SI5Q:VM_#;")Y7CR#&K @@,>?F'3-2^)+*]/
MB;P]J]O9R74&GO<"X6$KO421[00"1D9ZXYH CC\=P-I>J7,FD7\=UI!'VVQ(
M3S8U(R''S89< G(/8UJ_V[&T.E216LLPU0CRPC*=BE"^YN>F!U&>WK5+1](F
M?Q!K&N7D'DKJ"1016[X+>6@/+XR,L6/'8 9ZX%#P3HUQI]U>PS3":STR62ST
MT]2L3$.P)[X.U/;RS0!H^.-;N_#WA2\U*R@\V:-0JDL (]Q"ACGK@D<5C:_.
MT/C[PM?'3I_M,D%ZI@3:SMA4VC.=HZGDD 9Y-;/CO2[S6?!FHV%A$);F5%,<
M>X+N*NK8R>.U4;V+5-0\8^&]3_L>YAM[6*Y$Y9XR8C(%"@@-R?EYQG&: +UE
MXOL[G2;N^N+>>TDL[K['-;2;2XFRH"@@X.2RX.<<U+IWB>WO==ET26![:]2
M7"*75UDC)VY#*3R#P0?UKE)_#NN7EEXA\BP,-R^L)J5BMPR&.<)L^4X8XSM/
M7'45TWAZXO;V;S[CPV-%1$*L)#&7=SCA=G\(YY.,\<4 9'Q/C@73M'FDPG_$
MWMXY)-VW]V2=RD_W3WJOIDB#XE&S\/SM<:*]@3?HDADMXI<G;M.2 Q&,@=JT
M_']CJ.HVFE1:=I\UVUOJ<%U)L9%VHA)/WF'/M74AR8@^Q@2N=IZ_3ZT </X-
MU*#0_"$TC0RR@ZO/;PQ1+EF9IRJCG@#GJ36TWB^"*#6FGL+E9]$4/=0H48E"
MF\,IR 1M!]#QTKG;.R\3:=X2D@MM-N8YSK#S7$*2HLLEJ\A9A&P; ;!'<'KC
MUH71M6AF\8>1X?DAAU>PC6U598\[Q$Z%6^;[V6!/4=>3W -^T\90W.H:7;2Z
M9>VT6K1[K6YE"['8)O*X!W#C/) SCCUKI*X>2PU4Q^#,:3<DZ8P-V-T>8L0F
M/^]SR<\9XKK+*[NKF:[2XL)+58)MD3LZL)UP#O&.@YQ@^E %RBBB@ 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 **** (+2SAL8?(MUV1 DJF>$]AZ#V[5,1
MD$9(SW':EHH AMK6&TA\J!-JY+'G)8DY))/))/<U-110 4444 %%%% &;K.@
MV>NI EX]RJ0OOVP3M$'XP0VTC(QVK0C1(HUCC4(B *JJ,  = *=10 4444 %
M%%% !1110 4444 %%%% !1110 4444 174'VJUD@,CQB12I>,@, ?3(-5=$T
M>WT'2H=,M))6MX!MB$I!*CTR ,_C5^B@ HHHH **** "BBB@ HHHH **** *
M6K:7#K.GO8W$L\4;D$O;RF-Q@@C##GM4MC96^G6<=I:Q^7#$,*,DGKDDD\DD
MDDD\DG-6** "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 ***Q]<\0'1G@BBTJ_U*:8,
M?+LHPQ11CELD #)P/7GTH V**Q/#_B3^WIKV$Z5?:?)9,BR+=JJDEAD ;6/;
M!_$5MT %%%% !1110 445D3Z\3JEQIMA837T]HJM<['1%CW#*KEB,L1SCIC&
M2,T :]%4-&U5-9L#=I;3VV)9(C%.H#J48J<@$CJ/6K] !115*ZOW73)[O3K<
MZA)'N"0QNJF1E;:5R>!@@_E0!=HI 25!(P2.GI2T %%%% !16/I'B6RUK4]4
MLK4/_P 2QT225N%<L"?E]ACK^506_B^SN%M;GR)DT^]G^SVUXVW9(^2%XSD*
MQ! )'/'3(R ;]%8UWXB6*YO8+.QN+YM/4-=>25&PD;MHR1N;;S@>HYR<5H:?
M?VNJ:?!?V4HEM[A!)&X[@T 6:*R](\06&M7>I6MG)NDTVX^SS#_:P#D>V<CZ
MJ:U* "BBL[4]76PNK2QBB$U[?%Q!$7V A%W,2V#@#@=#R10!HT52TN^FO].2
MZNK&;3Y<L)()R,H02#R.".,@]Q5+4O$D-A<Z1&EL]Q%JTZQ13HRA%RI8$]SD
M#T_&@#:HHHH **J:IJEGHVG3:AJ$XAMX1EG//L  .22> !6=-XANK;3I-1GT
M&^6V2,R%08S*% SDH&_3)/M0!N45'!,MQ;QSI]V1 X^A&:DH **R4UX/XL?P
M^;25'2S^UB=F7:Z[]N !SUSUQTK6H ***CGE6W@DF?.V-2QQZ 9H DHKEYO&
MLEO<:;;S^'=2CFU0D6R,\&20NXY_>?+QZT^Y\8M:?9EN-%O8'GU./3V$KQ_(
MSA2'RK'(PW;T(.* .EHI*K:=<W-W813W=D]E.X.^W=U<ISZKP?7\: +5%%0W
MEW#864]Y<N$AMXVDD8]E R30!-15'1M6MM=T:TU2T),-U$)%!ZKGJ#[@Y!^E
M7J "BBB@ HHHH **** "BBB@ HJ.*>*??Y4BOL<HV#T8=14E !161-KRP^*K
M;06M)-US;O.LY9=N%(! '7OWQ6O0 457OKDV5C/="%Y_)0OY<9 9L#H,D"L%
MO&<8T'1-6&G3-'K$\,*@.O[DR$ %CU/7L/RH Z:BH;RX-K9S7"PO.8D+>6A
M9L=AD@?K570=637="L]5CB,*7<0D$;')4'MF@#0HHHH **JV-S<W*S&YLGM#
M',\:!W5O,0'AQCH#Z'FK5 !14<4\4^_RI%?8Y1L'HPZBI* "BBB@ HHHH **
MCAGBGWF*17V.4;:>C#J*DH **R->U\:$^G*]G+.M_>Q6@=64"-G. 3GGUZ#\
MJU7)5&*J6(&0H/7VH =15>PGGNK"&>ZM&LYI$!>!W#&,^F1P:L4 %%%% !11
M3)7:.)G2)I649"*0"WL,D#\S0 ^BLOPWK<?B/0+75XH&@2Y#%8W.2N&(Y_*M
M2@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ****
M "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH
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
M[FK6FVVO7<>AZU;ZE&L<HC>\,M])(ERC@<+&5"HV2,;<>G-,M-,GMM6759=
M\07EV+;[*7N;ZV8.F<X*B0 _ECVSS4.CZ#_8ET)+3P[X@-O&Y>&REU&W:WA8
M]U3S??C.<=>M '>TE8V@+<Q2WBS:=J5NL\S7&^]N8I0"V/D3:[%5&.!T%;5
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
MS8.W@$@''M]:N2>'(9=8L=5EOKM[FQC:.,EDP5;&[< O.<#^F* .(T2[?0?
M<UU:S2K+<:P]IYLUPS+&K7.TO\V0#@GYL$YY.:Z"73==L+J_G&I?9["6Q?;!
M]M>XE29>0Z-(O QP1^-:">"]&%AJ.GR1S36>HNSR6\DQ*(6.X[!_#\W/UI-/
M\'VFG6<]NNH:E<-+$8%FNKGS7BC/54R,*.!VSP/04 <==_VM;_"<>)5\1:I]
MNET^ D><-@)9>0,9#8."<Y-;5Y%JF@>-=&$>M7UY;ZPTT%S#.P948(65XQC"
M8QTZ8I/&.AG3/A==Z%ID5]?81(K>)8S-( '7CY5Z  \FNBM=&@:XAU&2ZN[F
M:*)DMWN0 T ;&<+M'S' Y8$\>YH XW3;G4K7PKJGB6;6-0NI]*EOEB@>0>5(
M%9E7S%QSC /&,8K:M=.UIK_3-0BU)18RQE;P/?R2BY#K\K("H"-GD;<#G%:V
MD^&K+2+"[L$DGN;:[=WECN2K E\[^@'!SR.E5M#\%Z;H$Z/;7.H2Q0D_9[>X
MNFDBM\Y'R+VX)&3D\GUH Y+1+Q_#_P /+V_M9I5F?5)+?S)IV98PUSL+_-D
M@$G.#D]<UMWW]M^&'O\ 6S<(VGQ:?(YLI;V2X9ID!964NH(&!@@'&.<5K1>#
M='CLM0L6CFFL]1=WEMY9244L=S;!_#SSZ@TFD>$-/TF*2)KF^U!'B,*B_N#,
M(XSU10> #@?D* .6UJU>71_!VJ2W]S<7%SJMC),6F)CD+_-D)G:N#TV@<>M=
M]J*N^FW*QS/ _E-MDCQN4XZC((KGH_A]I<=K;6?V[4VM;.X6XMH#=';"RDD!
M3C.!GN21V(KI+BW%Q:26_F/&)$*%T(W 'T)S0!YY'J&JS^#?!-TNKW<<][>P
M0W#A@3(&#DDY')^4=>/8UO>'&NK/QEKND/?W5W:Q0V]Q%]JD,C1E]X8 GM\H
MX[58'@FP72],TU;R]6#2IEFM<.F4=<[23MYQD]?6KUMH$%KK]SK2W-RUQ=1K
M'*K,NPJN=HP%XQD]^] &;XON]2L9K&Z@LKN^TZ,2?;8+&4I./N[74 @L!\V5
M![@]JRI-5$EMX1N]*U>ZN;>\U$PO(\C9ECQ(=K@]P5 /TKK;[2A>7UO>I>W5
MK-;HZ*8&7#*Q4D,&4@_=';BJ%SX/TNXT>VTQ6N+=;2?[3#/#)ME27))?=CJ2
MS9XQS0!SFK^(;[0KOQI-%<R,EE'9&W65BZP-+E68 ]@3NQTXKI[;2);+68+N
M'6;AK62$QR6MQ(91-)U#J6/RG .0HP1V&*BB\%Z0D^HRRBXN3J<*PW2SSLPD
M"@@$^_)Y[9XQ1H_A&TT6,K!?ZC,5C,4#7-R9/LZ'M&",#H.<$\4 <+H?VS3/
MA]X8U>VU.[1Q?10F!9,0M&\Q5E*=^N<GD'IBO3M5F^SZ3>3"[2S*0.PN)!E8
M3M/S$=P.N*Q5\#:<F@6NAI=WJV=G,)H0)%W*P;<.=N2 W-;=]I]OJ>F3Z=>*
M98+B(Q2@G!8$8/3H?I0!Q^EWUY;^+]$MDN+Y[6^TZ5I#=RD^>R;")0A),>=Q
MXXZ]!BM'XCW%Y9>"KR[L;V>TGA:(AX2 3F15()Z]">F*L6O@O3K6[TZ[-WJ$
MT^G*R0R2W3$E3CY6]OE''&>^:OZ]H=MXBTJ33+R29+>4J7$+!2VTA@,D'N >
M/2@#G+RWO;;Q[9::FM:B;;4[*9YT,V<,A7!3CY,[L';C\#S573M0NT\.ZU9W
M&N7$7V+7#907,F99WCS&1&#U+G<5!Z\^U=1+X>AFUNTU>2]NFNK2)HHSE I5
ML;LC;WP/Z8JC)X%TR6UO+>2YO6%W>"^9Q*%:.<8_>(0HP>![<=* ,:*]U);G
MQC9+<WMK':645Q:K+.)9(&:.0G#$MU* XR<=L5!9SZC9V_@?5&UB^GDU,0P7
M44LNZ.17@+9V_P!X$9W=3W-=)_PA>G>?>W NK_SK^V%O<.;@L9% (R<Y&<,1
MZ#/ %*?!UF;32K7[;>B/1V5K3#IE2HVKGY><+QS0!R\PU*ZL_&DC:]J2'2YI
M'M?+F";2L(< X'W<_P / Y/?II0ZQ?ZUJ&DZ86'[_14OY56Z>V,KL0#AD!/R
M\\#'WO:MA?"-HL>K1B]O-NL9^U#<G.1M./EX^7CC^?-0WG@;3+RRTZ!KF^AF
MTQ=EK>03>7/&F,;=P'(P .1_6@#!U&/Q'I>G:):7>O.;AM<CMC);R;B8&!8+
M(2H)8#'7@C&0<UVVEZ>=,L5M3>W5YM9F\V[DWR<DG!.!D#.![5F7/@^PN;.R
MMC=7J"RN!=)()@TCS#.'=F!+'D]>/;@5O 8 !)/N>] "T444 %%%% !1110
M4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1
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
M8U82;44ALL3U/1<>N0#MZ*X'Q(VL:+I>DZ]%J,E]?V?R7=I!-)Y-\ I#L$'
M*X+=,<'/:K-_J']E>$]&_L_4I;U-4O((6O9KE\LLF22'.XH#C:,?=SZ\T =K
M17#:CIVM:78:_<'5&MK:339)K>WCO9)I8947)=7< A3D9'KCUJF8[V"/P9>1
MZSJ0FU,1P76ZX+*ZM 6^X?E# C[V,]R2: /1:*\\DDO-/'CO3K?4[[RM/LH[
MJU>2Y:22)VAD8@.Q+8R@.,^M131ZGI-IX3U^#6=0N)KV>UMKNWFG+12I*H!P
MG0$=CUZDDF@#T..XAFEFBCD5G@8+(H_A) (!_ @_C5;5M5M]'LOM-P&;=(D4
M:+U=W8*JCZDBN;\$6,,.M^)W1I\IJK* UQ(P(,<9Y!.">>IYH^(]JD]CI#M)
M,I_M>T3"2LHP9!S@'KZ'J* .BTS4+N\ENH;W3)+*2W<*&+AXY@1D,C<9]\@8
MK0KA[_3I[KQ^FC#6-4@LI=%DD9(KI@P82HH(;J#SUZ]NA-2Z.LGB6Z\06]S?
MWL)T^Z^Q6WE7#QM&JH,2':1N9F).6STQTS0!V=%>9Z?J^K:Y:>";NYU"YMY;
MR>X@NA ^Q9@BR ,1TR=N?QX[5=LM.FN=7\5:*^L:K]CL/)DM@+V3S(VDBW']
MYG>0",@$XYY!H [^JL]^D:70@7[1/;(&>%& /(R!D\#.*S?!5_<:IX+TF]NY
M#)/-:H9'/5CC&3[FL3PW8PQ>)?&$B-/E+I<!KB1@<P*3D$X/7OT[4 =)X=U@
M>(/#]GJRP& 7<?F",MNV\^N!6G7E.BI<:;X/\$ZG;ZA>++->V]J\7G$0F)RP
M*^6/E/KDC.>_2MQCJWBF77X;2Y^S7%G>-;6\BW\L)M]JKM8QJN&R23R>0<=!
M0!W5%5+(32Z3;BYN$EG>!?,F@.%9BO++[$\BO/--N+^Q^'D_BI]7U&YO;1;N
M.-99RT>/.90S+_$5QD$_3H * /3J*X[[+JNF7UOK45XBV*6TAN+=M0EN?M?R
M%D*;U 5A@G(ZCZ5D:C<7<OPZT[Q&-3O!J%U);22/%<NJ8DD4-&$!VA0&QT[>
MN: /2*JW\]W;Q1M9V1NW:5$=/-";$)PSY/7 YQWKG]/>:7Q_KVGR7-RUK]CM
MY%B,[X1F+[BO/RYP.F*YR'4=2E^&_AB_;4[S[0^IPQRR><=TRF<J0YZD8% '
MIM%<1=6-SJOQ"U'2WUG4[>T_LV&<);7)C*.9&&5(Z?='U[U"HUGQ5%K7V&[^
MRW5IJ$MM!,M])']G\M@%S$J[6! R=Q.=WH!@ [VBN'CBNM0\?OI]SJUVUM-H
M<5PZ6URR1F0R%24*X*@[0<@@^^.*P9)]1C^&L^N'6=1>^TJ\:*!S<L RI<;,
M.HX?*\$MF@#U:BN.NY[W7/%.L:/&Q"6,$(C5;^2V8%U),@V*2W.!R<#;[U0E
MAUF+6O"&G7^O3RRS+=PWDEI*528QH<'']X=">H.<8.#0!WD\\5M;R7$[B.*)
M2[NQX50,DFG*P=0RG(89!KRW6%E_X0GQOI<]Y=W,.FW/^CM/<.SJI1&VELY8
M D\'-=#KO]H:2FFS6EI?:EID4#_:[:VO)/M*EMNV0?-N<###;GOGMP =G165
MX9N[6^\.6-S97DMY;O'\D\V=[X.#NSSN!!!]Q7,V,USXFT+7M2?4+NUO+:[N
M(K;R9V1;;RON J#@^K;@<YQTQ@ ZS5=5ATJ.WWJ7ENIUMX(P<;Y&S@9[  $D
M^@/7I1I-_=7\,QO-.EL)H9FB*.P97 P0R,.JG/7 [UPNH3R>(=.\":K>-/%<
M7EW%YBQ2LBY,4AW* >">N>N#BO1XT$42Q@L0B@ LQ8G'J3R30 ZBBB@ HHHH
M **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@
MHHHH **** "BBB@ JGJNEVFM:7<:;?1^9;7";)%!(./8CWJY5#6M7MM"TF;4
MKH,T<6!M0#<[,0JJ,]R2!^- %0>%K$7^GWQGO'N-.5U@=YRY^?[^[.=Q/O\
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
M9X!B-9'W%1Z9]*K'PSI_]I7VH1M<13WZ!9_+F8*2%V[MO0-MXSBM>B@#G_\
MA"]+&DV&EB2Z%KITRSVRB7!1U.5.<9."3U]?I27_ ((T>_UAM58W=O<RJ%N#
M:W3PBY X D"D9XJ8^)[8^+X_#D43R2FW>:28'Y4*[?D]SA@3Z9'K4-UXK6,Z
ME+:V375II#;;V99,%2%W,$7'SE5()Y'H,F@#=$2I (8OW2A=J[ !L&,# Z<5
MF:9X:T[2M(FTF%9);*;?OAG?S =^=PY[')_.DG\01/>6ECIB)>W-W;FZCS)L
MC$(P-Y;!."6 & <_A4NB:W#K5O.5B:"XM)VM[F!R"8I%ZC(Z@@@@]P: *>B>
M#=*T"0-:M=RJ@*PQ7-R\L<"GJ$4G"\<9ZX[US7BKP;9Z1X?:+1K;4I_,O89(
M[.-Y)HH )59RJ#(7@'\\#K76#Q+8GQ:?#>3]K%K]HSVZXV_[V"#]#6Q0!C77
MAK3M1U:/66:ZBG:$12"*9XA-'G(61>,X)/!^AJLG@?1XM$M='C-TMI:3B>-1
M.Q(D!W Y/3!R<# ]JZ*L_6M7AT33C=S*7+2)%&@.-[NP51GMR>3V&: (XO#]
MK%K[:V)K@WCPB%R9/E9!R!MQCJ2:HWG@?1KS69=4/VJ"6XQ]ICM[EXH[G'3S
M%4_-_7O6EIEWJ5Q/=0ZCIJVGDN!%+'/YB3J1G(X!!'0@CZ9JEXB\3IHWAN_U
MFS@6_%BQ62,2;!D'##.#T- %D>'[1=<;68Y)TNVMQ;95AM$8.0H7&."<U2/@
MG2FT&?0R]T;&XE,LD9FY+%MQ^;&>6YZUOHV^-6QC< :=0!@:KX,TO5KRWOII
M;V&]MX_*%W;7+0RNG]UF7&14\GA?3GO--ND\Z)]+#"U$<F FX8;/][(ZYS6K
M--%;P23S2+'%&I=W8X"@#))-8NGZ]?:Q:+?Z9I0>QDYBDN+CRGF7^\J;3P>V
MXKGVH 4>$=+,>JQR^?,FKY^UK))PYQC(Q]TX Z4^/PU;6[6SV][?Q2V\1B67
MS][.I()W;P0W0=1QVQ5K1M3_ +7TU;S[+-:DR21F&;&]"CLASC(_A[$U?H K
M:=I]KI5A%8V<?EP0C"KDGJ<DDGJ2223[UFR^%-.DNKR:-KBW34/^/R"&7;'.
M<8)([$C@E2">].UK7I-(U32+,68ECU*Y\@R^9M\L[2W3'/3VK9H R-2\-VFI
MR:>S33VZZ;()+:.W*JJ,!@'!4]CC'3VK6 (4 DD@=3WI:* "BBB@ HHHH **
M** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHH
MH **** "BBB@ K,\0V&FZIHD^GZL,VET4A;!P=S. F#Z[BN/>M.J>JZ7::UI
M[V%]&9+>1D9E5RI)5@PY'(Y44 <5;2^(_!&KZ9INJ72ZWHE[<K:VUU(,7%M(
MP(4-_>'49^O3H9$AU'Q;'K?D7XM+NTU&6WAF6XD5K41L I"#@@@9.>NX]L8Z
MB+P[9+=P74TEU=O:DM;BYG:18CC&0#U;!(R<GGK52]\$:#?ZP^JRVTJW$P G
M$4[QI.!TWJ" WX]>^: ,VSG/B#Q-J.D:C>.R6EA;M"+>1HUE,BL7E&#SSM ]
M/QJC=:1$GB_PA!<:A<W\J07L,ET9F1Y"BJ.=IX(.0?7OFNEUCPCH^MWL%[=1
M31W4">6D]M.\+[/[A*D9%2W?AC2+P6 DMF3^SL_9O)E:,H",,N5(R"!R#UH
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
MR0W:[;AY+EVEE7&,%R<XQQC..OK4EWX8TV^\/KH5R)Y+%0J[#.^XA3D MG)
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
M444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !11
M10 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%%
M !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M%%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4
M444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !11
M10 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%%
M !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 445RG
MC;49-*FTJ\NEG.AI,XU$P$Y3*XC9MO)0'.1].O2@#JZ*P/"CS3Q7UTDKOI<]
MQOT[S'+-Y6Q03D\[2P8J#T![<"M^@ HHHH **** "BBO/O$%UJ_AKQ=<:QI[
MW-WI=M:0R:C8M,\GR.\H,L88D*5\L$@8R,T >@T5S<T]KJFMZ#?6=Y+);7,<
MK@Q7#K'( H*Y4'!Q[BI[OQ;86D5U<F"ZFLK.4Q7-W$@:.)A][(SN(7N5! Y]
M#@ W:*8DT<L*S1NKQ,H974Y!!&<@UQW@Z9O&NG3>(-2DF:"XG=+.U65D2&)3
MM!(4C+D@DD_AB@#M**X*34+BQUS7/"5Q=7$MNVF-?6,K3-YL:\JR%\[CAAD$
MG.,@DT[PGXRL+/P]X=L;Z*^C^U6T,*7LD!\AI2H^7>>Y/?&/>@#NZ*Y'2G-O
M\1?$N7G>-;2UDV%FDP3YF=HYQ]!5C1=>T*T\'VVI67VE+"69HH$FW-*\AE9=
MHW$G)?.,G@>G8 Z:BL6'Q38OJMQI<T%U;75M'YTJRQ95(\$ABRDK@X/?J,4R
MR\66-[=6,"V]U%_:4#3V4DB*%N%4 G&"2#@@X8#@T ;M%<EI_BH:II6NW&IZ
M;=V]I9SSP/L 9@J *P^1B=WWCD<#UXK1LM:TVTT+1OLB7#I?01BQMOO3.NP,
M,Y/9>22<>] &Y16"?&&FI8ZE<S1W,,FE<WELT698AC<#A2001R&!Q[TEGXQT
M^\U.QL1;WL1U"(R6LTT&V.;"[BH.>H'/3![$T ;]%8OB[6Y?#OAB^U6"U:XD
M@C)500 I[,<GH#UQS4KZ['!':1S6EQ]LO-WE6@"&1]HRS?>V@#CDD=0.I H
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
MS=F*J ?PXKG?"=I/X*M+C0KNVN9+**X>2QN;>!Y@T;'.U@@)5@2>HP>U:_\
MPB.E?\]-3_\ !M=?_'*/^$1TK_GIJ?\ X-KK_P".4 8\6A7NJ:_K'B2XMV@:
M?3S86%O)@.4Y)=A_#EN@/('7%4(M-O-7\"Z+X8-A=6]U;M;+=O/ R+ (B"Q#
M$88G;@;2>O89KI_^$1TK_GIJ?_@VNO\ XY1_PB.E?\]-3_\ !M=?_'* ,_3D
MG@^(6NWDMI<K;36MND<WD,5<IOW ''/WA]>U<Y#97%M\*K*UNM-OEOK?4?,B
MB2/$T;FY9U=5;AR%.<#KSTY([/\ X1'2O^>FI_\ @VNO_CE5-0\ Z1?Q(HNM
M6MY8VWQ3QZG.SQG!&5WLP!P2.G>@#*T_4Q-JFHWPT_4H]>N[(Q6JW]BUO"_E
MJS+&O)&222<M],8JI8QZG/K?A34Y=&U9I8%F2^DG4+LD:(#A<X5 0>@ QCJ:
MW;'P!IUJH^U:GK>HR*<I)<ZG*&3C'&PJ.]7O^$1TK_GIJ?\ X-KK_P".4 8&
MGV]_::1XNT^;3+L//=7D\#K'N699?N!<<DG/IQCG%5[;3]2L8?!>L"QN9$TN
MQ^QWUL(CYL6Z-5+A.K89><9)'3-=/_PB.E?\]-3_ /!M=?\ QRC_ (1'2O\
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
M/$$?]EQB*"6>T00Q,RA-SLK$G X!(&,Y(SS3->M/$&K:;J<5WHM[<7L&I))
MRLOD_9UE4KY8W<L5!R<9ZY/04 =3!XBNYO'%WH?]G3"WMK:.3S0T?)9C\Q^;
M(7Y< #GKD=*DE\86,+64DMM<I8W\X@M[XA?*=SG;_%N ;'!*X_ @U0%GJ \=
MW=T^G7 M=3TR*'SE*8@96;<&YZ@,.F<UF>%K6^L;2UT"^\')]MLBL7]I&*,V
M[QJ<"3=G<6QVQG/4CG !I^+];AN?#.OP6MK>7*6EO+'-<6[!5BD"$XSN!.W(
M)P#C\"*V/# W>$=(!)YL(<X.#_JQ7(16VL:1HOB?P]+H]Y=M>-=S6=U JLDJ
MRJ2 Q)X8$\COVSW['PS'/!X8TR"ZMWMYX;2*.2.0@E2J@'H2.U '%^'?%%OX
M9TS6#<6&I7-M!K-T);B&(R) @? +,3DX [9('7M77KXFLWUZVTA(+AGN[<W-
MO< +Y,L8QD@[LD\CC&>_3FN;L[/4[31/$FB-I=PUWJ-[=O;,5!A=)B=K%^@
M!R0>>. :L^(=#FTKPAI$NGNLFH^'A#]E9N/.P!&T?T<'&/7% '46.I)?SWD<
M<$R"TF\EG?;M=@ 3MP3D#(ZXYX[&J]WKD<%_)86UI<7]U%$)I8K?9^[4DA<E
MF49.#@9SQ4^D6)T[2X+9W$DH!::0?QR,2SM^+$G\:Y^.WO=!\=ZKJ3VL]SI^
ML0PD20(9#!)$I7:5'."#G.,9]* +,WCK1XM*L-35;J6"^NEM5\N'+12%MNUQ
MU!!SD<GCC/%:^EZ@VIVAN&L;NR(=D\J[C"/P<9P"1@]CFN#N?#^I6.CVKBPG
MEGN?$RZO+;PKN,$7F;B">F0H' /4G&:](5MRA@",C.",&@#GW\96"2*WV:Z-
MJU__ &?]J"KY8FW;<8W;L;OESC&?;FK-QXC@AFNXX;.ZNELI%BN'A"8C9@IY
M!8$@!@20#^AQQFI6WB#4['=?:)?3ZA::O',6#)Y7DK,"ODC=_=QDXSUR>E6]
M>TF\NM3NM4T>SO\ 2_$"21K%+$"8+Q,+Q+U0A<L#G!^7C/ H [NZN8K*TFNK
MA]D,$;22-C.% R3^0K(L/%-K?:A9V;6EU;/?VQN;5IE3$J#&?NL2#A@<''6K
M^L-?IHMZVEHCWP@<VZOT,F#M!S[UQ5A::G+XF\-ZJVBZB#';SQ7DUTZ%Q(RI
MR?FX7(; &/84 ==XA\06OAK3#J-[%.\*NJ'R4W;2Q"@G)&!DBH8O$L<B8;3-
M0AG>X:""WFB"//A=Q=<MC;CN2.F.O%4OB':W5]X2FM+*UFNKB2:%ECB7)PLJ
ML?8<*:K^,;.]GGT77;+2CJ<=BTGVBP=0'>.10"0&XW*5!Q0!?@\9:=-#<[H;
MB&ZM;I+26TD"B02N0$&=VT@YR#G&*=?>+(--TR[U"]TZ^ACL[A8)E*QE@6"8
M88?!4^8HX.>O'%9EQ:VVJ:'*MSX/>'3[N6-'M1$J7&T9_>D(>,'&!G/!]0*R
MKS0->F\$:_I44EYJ%N)HGTP7G%PZ*R.RG.#U4A=V#QZ8H [.36[=?$*:#)#.
ML\UNTZ2<;&4$ X(.0<D=JXBQUNX\,^!?$NH6EN]Q);:O=QQ[G!\O]YM5F+')
M XXY)_6M>.34=0\>Z9K T2^@LET^6%FF"JR,S*?F7=QTZ<GVQS63)HFJWOP_
M\5:='I\Z7=WJ,]S;Q2+M,J-*'4@GC) /'6@#T2WE>>%9)+>2W8YS'(5+#_OD
MD?K6+=^+[*UM[J\%I=SV%E*8KF[A12D94X8XW;F"GJ5!Z'T.->RN7N[1)Y+6
M6U+C/E38WJ/?!(!_&N)TVPU32/"VL>%I=.N+B:1KA;*95S%.DN2"S]$(+'<&
MQTXS0!=\5ZO+)JOAVR@M9;NQO[@O)Y;1E+E!$S!>6&1G#'. <#KTK9@M+?PO
MH%RVGV<[QQ[[A;3S1E2>2BDG"@>@.!SBN>N](NM+N?!=I#;7%W%H^5N9XHR0
MH\DQ@^_/89XKL;Z)KG3KB&/[TL+*N>.2"!0!Y]K&L3ZQX/\ "^M7D$]O*^J6
M4C;6RKAF!.%0G(] 1GVKKK#Q3:7E[?V<]M<Z?-81B:1;M57,1SAP02,<'K@C
MTKD?L>K'P1X8T]]%O4N-.O[0SH5!(6(Y=Q@GCICN<\"M#5M(O-8\5ZU'';W$
M5MJ&A?8H[EHR$$N7.#WQAA_*@#<3Q7:_VC86=Q9W=J-2!^QS3*H24@9QPQ*D
MCD!@/SXJ#X@[D\"ZM/'))'+!;M)')&Y1D8="".:SO##7<WV2TN_!BZ??6NT7
M%Y)%%Y7RC[T; Y8MCTP,]3CG5\=P7%YX,U.RM+:6XN;F Q11Q+DDG]!^- ')
MR7AL=3\(#P_J,\]W>M&M_:BZ>9'@*C?(RDD*1S@\=^N*U]'NK?2/%?C>ZN)7
M6UM?LTSEF9]J^06;'4^IQ71^'XPFB68:V:WF6!$E5X]K!@H!!]:Y@Q:Y;ZOX
MUO-,L91<W<<)T]Y8_DE9(MIQGCKTSU^E &]9^*+>ZU%+![*[MIY;3[9"LJJ?
M-CR <;6/S#(X..M9\?Q#TV6PM]0&GZDME-<?9WN&A4) V\H-_P V<$^@.,\X
M/%9FGVU^OB_2=8_L34DA.GRPW$MRRM*'+(Q+#<3C@X _ 8J@VFZHWPMETG^R
M;P7QO_,$'E\E?M7FYST^[[]>* /2W=8T9W8*JC+,3@ >M8/_  F-BL5G=2VU
MW#I]](([>^=5$3%ON$C=N4-V)4#Z9%:6IVG]L:#>62LT/VVU>(,P(*;U(R1Z
MC-<9)INIZUX L_"-SIT]M>Q?9[>>5E_=)'$ZDR*_1LJG '.3R!UH WY?&5JF
ML7FE0Z9J=S<V3PB40VX("R9P_7[HQS]>,X.)/&NNW/AOPG?:I:6QGFAC^7D
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
M9Z8-/OK%HU,L1&TAT5N&Y4C@]#^7<:"I-D\O]DII22ON2WV*KA<#EPN1N//
M)P,=Z ,*.\D\4^.M3TEY9$TO1(XA+%&Y3[3-("1N(Y*J 1MZ$]<U<N+?0]-\
M0Z<(M4AT^=';-C]IVK.&1@,1YQN!(.0/6J;Z3?\ AWQQ>:_96LEYIVKQHM[%
M#@R0R(,*X4_>7&<@<\DT:A;W.M^/?#6I6=E<BSTL71N9IX6A ,D850 ^"QR.
MPH O6GC2TO;^6TM],U-S;W9M9Y/(&R$A0=S'/"\]>O'3IE]EXQL;VXTV-;6[
MCBU8.;*>15V2[1N/ 8LN5&1D#-4?#$6H6UQXG(L9HI+J_DN;1IT*I*"BJOTY
M7H<'%8EO:ZW=7GA?4KK0]1>]L[A_M\DS)G<T;+\@W86,$]L#&.IH WIOB!81
M6NH72Z7JDL6F7#07;) O[K: 2YRPR.>W/&<8YJ:]\3W$?BS3-)M;"6>VN[:2
MX\Y&C^<#;C 9A@#=DYYZ8SS6"++4#X<\;VO]FW8EU*YN'M%,1_>J\:HI'IR#
MUQ5Q;74H=<\+ZDFEW,L<.G26DZ@*K0N0F-P)&!\IY&?Y4 ;&I>+[+3+>:\EM
M;J2PMIO)N+R)5,<3;MIR-VX@,<$@'!SZ'%B_\0PV9N!!9W-^;6(33BUV'RU(
M)'WF&20"<#)QCU&>3TVRO=&O+[1[OPA_:AENY9K._$<;1,DCEOWK-RNTDYX)
M]!TS-=V=WHOBZ_NKCPPVN6&II"T<EK#&S02(@0J5<C"G:#G.!0!V>F:C:ZOI
MMOJ-E)YMO<H'C;&,@^W8US]KXBT6PM?$.J6]C?(+*Y8WP*$L[JBDLJEN!MQZ
M=*Z#38GAT^%)+:&U;&3!"!MCR<[1C@X[GN>:X>2QU!]'\<P#3KOS-3EE-F/*
M/[X-$$!'IR.^* .BL_&%G=ZK8V#6-];_ -HQ&2TGFB"QS;5W,HYSD#GD ''&
M>*Z"N'G@O7U'P5.NG792P5_M7[H_N<PF,9_X%Z9XYKN* "BBB@ HHHH ****
M "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH
M**** "BBJNHZC!I=F;FX)V[E157EG=B%51[DD"@"U17.'QE;0W=]975C=17=
ME:?;/)4HYEAS@LA#8.#P0<?C4*^.[;R]*N)-*U".TU95%O<%%(,C)N";0V[)
MP1G&">AQS0!U-%<]!XOB?^U8[G2[ZUN=*C6::W?RV=HR"0RE6*G[IXSVJI!\
M0;*5]*>;3-0MK/5MBV]Y+&HB\QQD(><CTSC!/3(YH ZO(SC/-+7&Z*UO8>/O
M&4\CB*&."SED=CPHV2%C_,UI#Q=;(=/ENK*ZM;/4W6.UNI NTLPR@8 Y7=VR
M/K@T =!16/IOB.+4=7U/3!97-O<:;M\SSM@#A@2I7#'(('4XJE_PFMN'TA#I
M6H ZPKM;?(AR%4MSACC(QCMSDD8- '2UE:IX?MM7O;>XNKF\$< (:VCN&2&8
M$@_O$'WNG^.:RU\;[X=0":#J37>F/BZM0(]T:[=P;=OVD%3D $D^G>M$>);.
M>TT^>S1[A]2A\^WB!524P"6;)  &Y0?<B@#8HKE&^(.G)IOVQK*\RE^+"XA5
M59H)MP'S8;D<Y!7.:N6OBG[3J%]IK:3>6]]:6XN$@F,8\^,D@,I#$#D8YZ4
M;]%8'@O6[OQ#X:M=2N[9H7G4N#E=K L<!<'. ,#D T[5/%,.FRZ@B6-S=#2[
M=;B[:,* B$$\;B-QPI.!^>>* -VBN?NO%]K;W^G6<5C>73ZG;M/:M"BX<!0<
M<L,'YAUP.>319^,;"XT6\U*YAN+,V-P;:XMY5!D64$ (-I(8G<N,'G- &_D#
MOUJKJ>FVNL:;/IU[&9+>X7:ZABIQ]1R*Y&>:2;XJ:(TVGS6<AL;DDR.K!Q\N
M/NDC(YR/?O71^(O$$'AO3EOKFVN)HC*D1\A02I9@H)R1QD]LT 1V7AJ.V=#<
M:KJ=^D9#)%=W 901R"< ;L'GYL\\]:VJP['Q/#=:W<:1<V-U83PV_P!J0W.P
M++#G:6!5CC!Z@X/-0_\ "9V:7&FB:UGBM=4D$5I=,5VN[#* J#N7<.F1]<4
M=#02!U.*Y$>(+*RM?%6HZ9H\RWFGN7NUE95\YUC!#?>/&T#IS[5E:U?2W=CX
M)U>\M9EN6OX-V &:3,+,2%4D<GZ'Z4 >B45@6/BVTG751?6UQILND!6NH[C:
M2J,I96!0L#D ]#U&*%\5PKK%OI5U87-O<7D+RVH9HV\[8,LG#'# <X/'O0!O
MUE3^'K:YUQ-5GN;R0QA=MJ;AOLX9>C^7TW#/7\>O-4_#_BZ/Q']GEM-)U".U
MG63_ $F5%"(R.5VG#$Y.,\<=LY!PWQ'X@O=*US1+"UL7G2_G=9'5D!(5&;:
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
M&,O+(QPJJ/4G\.YXJG;^(XY-7ETBXLY[:_6#[1%"Y4B=,XRC XR#P0<8^G-
M&QD @9Y-+7!>&K>+Q3>:I<:OIDQGM-9E,%TSH&@\HJ%C!5MPP,Y ^4Y//-=[
M0 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%%
M!1110 4444 %%%% !1110 5SWC;2;[5M!4::D<MY:7,5U##*0$F*-G8<^HS7
M0T4 <C!)?:CI%^Z^%&TMC9R1"-O+\V61A@!=I^Z.>3C/'I6?)INJ_P#",>#+
M,:5<&?2[JU>[0%/W:QQLK'[W/)'2N\+*" 6 += 3UIU '$:A:7J>(?$]_)8S
M)9W&D"*.<[=I9%<GC.?XAVJII]E<^)/ ?A?2DLIHEC6SFFGD "K'&H;*G/);
M   Z9YQBNYU&R34M/GL9))(X[B,QNT9 ;:1@X)!QQ3-)TV+1]+M].@DDDAMH
MQ'%YI!(4# &0!G % ')SZ!?ZIK?C*"2VEMK?6+.&"VN6QM+(CJ20#G&6';GF
MDFT[5=?\,:3H-YILUI<6TT'VR9ROEJL1!+(P/S;MHQCIGG&*[FB@#CO%NCW,
MWB'2[O3IEBEOP^G7HS@O;E2Y8>C+M.#ZM5G7K&[?Q5X8GM+"22UT^28S/'M"
MQJT11>"1GD]NU:EAX>LM/U.YU)'N9;BY9CF>=I!$&.65 3A02!P/0>@K4H X
MZUM-1CUGQA</IMP(]06+[*?E_>[81&<<\<COCBL:#1M;TO3/#.I#0C?/IUBU
MC?:>Y0OM.T[TR2I(*^O(_''I5% '#:]9ZGJ7A^U-MX?:V<ZE;W M(O+#I&C!
MBSD$+N.#P">WOB^+2^E^([ZC]AG6RDT@6HG;;@2>87P1G/0]<=:ZJB@#F?A_
M:ZAIOA*STS4;"2TFLD\H[W5A(<GE=I/'3KCZ5F>([/7=3OM?L)=*FO;6XL=F
MF.LJ+#&QC(8N"P._>>#@]!C')KN:* .$L['5O[7\'7$ND7,<>G6,L%R2R'RF
M9$49PW/*GIGC'TJA=^'=<O-/U[[-8217/]MIJ=FDS*%N%39\N03@G:>N.WX>
ME44 <87U75?&NA:K_8%];6T%M<1SF=HP8V?9C@-R./K[5>\?65[J/AO[+86<
MEU,;F!]D9485)%8G)('0&NEHH X[4-,O=2\<-<?8KB.RN=#EL6N/E_=R.X;D
M9SP!V[U7\+1:Q;P6>CW_ (4A@N;+9')J7[LPNB8^=<?,6('3'!.3CI7<T4 <
M1%H^IW"^-X38R0_VLK"T:0J!)F#R^QXY'>H)K36+G2_"$9T2ZC;3+J%[E2T9
M**D10GAN<D\ <X';I7?44 <#J7AW4]7U3QC MK);QZK:VR6ERY78SQ!L@\Y
M)([=,UI>'[K4KEXFN_"*Z5+;J3<2D1D.VTC$6TY.3SDX&..<UUE% ',_#ZSO
MM-\)06&H64MI<0RS$K(5.0TKN""I/9A1XKLK^35_#^I65C)>I87;M-'$RA]K
M1LH(W$#@D9YKI RL2 P)4X(!Z&G4 <A86VHP>+/%%]-IDX@O;>W6W8%2)&C1
MPP'.1RPQD#-8-KH>N:9H?AB_&A&\FTJWDM;W3I&0NR/M.]#DJ2"H^M>F%E!
M+ %N@)ZT4 9FA&:2V>>72DTM9"-EOA?,  ZOMXR?0$X ]\#%U*TU"3XE:5J4
M>G3R6-M:2PRSC;@,YXX)R1QZ=ZZP2(0I#J0_W3G[W?CUIU &1XK@N+OPEJUI
M:0//<7-G+#%&F 2S(5'7 [U@NFN1G0+>32;NXTQ;'R[JVAD166<!0/,RP!3
M;@$@]\\5VM% 'F-OH>N6_A/3=-;1)A+9:\MTRQO&08EF9RR_,.,$ 9P3Z5TU
MM:WO_"R;G4FL9ULI=,CMUG.W&]79B,9ST([5U%% ',>,+6]NKS0'L[&:Y6SU
M-+F8QE?D0(ZGJ1DY8<"L?5?#>HZWJOB^V^S2V\.JV=O%:W+E=C/&&R#@Y )(
M[=,UW]% '&75GJ7B:RT*SN]-GL9;&\ANKQY2NU3$#PA!.[<V,$=!G.#Q5SPK
M;7UMK?B%[JPFMXKR]\^"1RN'78J]B2#E>XKIZ* .<\<Z?>ZAH,0L+9KF:VO8
M+CR48!G5) 2!D@9Q[U6$.HR?$2VU9]*N([0:2\#.60[)&D5PI /HO.,C)ZGK
M7644 >:W.BZU-\/O$.F+I%Q]KO-3DG@B+)\Z-,'!SNP. >M:WBK2!K5X9O[+
MU"WO(+4-8:E9,%E20ELQ-ANGW>OR_,>179EE7&Y@,G R>II: *>F"]BT:T&I
M,);Y+=/M!C'#2!1NQ^.:QM*TK^TY;W4M5L[RTNKB<@1FY9-L2\1C]V^#Q\Q]
M"[5TM% '#>%;*[\/1:[H]YIDJ:(DLLUE+/(@01,"6C;YB5 .<$^IS65H\SV-
MAHYUOP_KRVVE8EB)6)X;<[2 QVG>512<9Y ZY(KT:^LK;4K&>QO(A+;W"&.1
M"2-RG@CBLNR\*6EF45K[4KJ&/&R"YNVDC7'3C^+'HV: *>@6M]!XT\274]A-
M%;7SP-;S-MVN$B"-P#D<CN*QO#5AJ^CVT?ARY\+13R6S&.'53Y9A:+/#M_%N
M _AQR1U'6O0:165U#*P93T(.0: .#MK/5=#US5+1_"ZZQ;7UY)=6EXK1@)YA
MRR2;N5 .>1GCH#6C;V6H0_$(:A)8N;1=&2U,\:J$,HD+$!<Y P>./:NLHH \
MUFT369?AEK.D+I-Q]NNKR62*$LGS*TV\'.[ X]ZTM4MM2L/%CZW%X=?5['4;
M6..: "/SK:1"V#AC@@AN<'K^O<44 <;?V6IR:OX8NET8HEI<337$=N4VVZNC
M*H/(W'D9Q[^U5+G1=5O9/'42:?*@U:%19N[*%E*P;,=>.?7%=[10!F^'WN6T
M.T6ZLI;.6.)4,4K*6&% R=I(ZY[]/3I7*7>AWDNO#5=)L;O2M6^WA9WC8"VO
M+</C>XR024]@V>W<=X652 6 +' R>II: .(BL-3%SXUD;3+@#4E'V3E?WN(?
M+]>.?7'%0V4&OVUKX;L;G1[N?3H-,6"YMHI(U(N%"J#)E@&CP&XR1SR#P*[V
MB@#S./0]<B^&\.B'1I1=0:D)-B.A#(+DR%ASTV\#."3VKI+FUO9/B)IVI)8S
M&SCT^2%YOEPKNRD C.>B^E=110!B>,[6YO\ P?JEE9V[W%Q<VSQ1QH0"6(P.
M20*QQ9ZB?%'AF\_LRY$%G82PW#G9^Z=P@ /S<_=/3-=G10!YQ<:%K-WX5\86
M*:9*D]]J;7=JKL@$R9C(P<\']V>#CJ*OZU!JJ>(++Q+'X=?4+>6S-K=6#F,S
M0@.61P"2I/)! -=Q10!Q&MV>J7=IH<L&@M"8-8BO)+6 QYAB56!W'(!;G.!]
M.<9J]XMMKZ[U+P]):6$]PEGJ"W$[)M&Q-C+W(R?FZ"NIIADC$@C+KO(R%SR1
MZXH XFZM-2T?Q=J-X/#9UNPU;RY4:/R_,MY%0(58.1\I"@YSQ5F:QU,>,O#]
MX=+(@MK:>.X:WV^7"TFW &2"0,8) ]\5V%(&5B0K E3@X/0T <1?V>I:/XRU
M"_7P[_;EAJHB8&+R_,MY40)@AR/E( .<\5U^G)+'81+/#%!)C+10_=CR<[1Z
MXZ9[]:LT4 <"^F:J^F>-X1I=QOU5I/L8RG[T-"$'\7'([XXJQ)9ZFUYX,E&E
MW)73587?*9BS"8_[W/)SQGBNVHH Q?%IU@:!*=#1Y+KS$W+&P61H]PWA"> V
MW.#_ %Q7-VNFZC;^(-9O(= N8;6_TM(X]TL;/O7>,/\ ,<N21W/')/:N^HH
M\^_LS5U\*>#K3^R+DW&EWEO)=1@IE%C1E8YW8/)&,5H>*]&N)_$>F7.GRB)]
M11]/OUZ%[<@N6'H5PP!_VQ78UEZ?X>LM-U*YU"-[F:XN68EIYVD$88Y*H"<*
M"0.!Z#T% &DJJB!$4*JC  ' %<KJ?AV[G\9?:(%4Z9J=J(]34_Q&)@4X[[@Q
M0_[(-=910!R?@_0M2T:TNH+IE<V9>UTTN<_N Q92?KN53[1BL&+3_$5TWAZ_
MO-!NY-1LKXM?32SQ$OE7&8_FP(P2.!C'& >37I5% '&^)-$GF\6V$MC(J)JL
M+6FI1G^.!/GW?7&4S_TT%=B!@8%9FE^'K+2;RYNX7N9I[AF)>XG:4H"<E4R?
ME7/8>@ST%:E ''WGA:>Y\77JLBMH>JP)+>H3]Z:/*A1Z;@4)_P"N?O5GP5I.
MI:1I#C5SYMS /LL17DM;Q%A&?J<D_B*Z>B@#SB/0M:/PSET_^S)5OHM0^TBW
M9TS(OVGS>#G&=OOUK:EBU*Y\>Z7JC:3<Q6L5A+%(S,AV.[*0I ;KA><9&3U-
M=;10!S'@JSO;)=:6]LI;;[1JUQ<PF0J=\;G*G@GTZ&BZM-0MOB+#JD6GR7%G
M-IGV5I8W4>4XEWY8$@XP>V>:Z9F51EF &<<GO2T >;W&C:S/\/O$NFC2+A;R
M_OYYH(BR?,LD@8'.[ XZYJ]?6VIZ=XIDUA?#CZO8ZG;1)+"/+\ZUE3('#'!!
M!YP>H_/NJ* *>EI,FGQB>VBM9#EC!%C;'DDA<C@D#&2.,YK#\.6]];>)?$<]
MSI\\,%Y<)+!(VTB0+&J'@'(.1W%=110!YPVFWD/P^UVROM)E,]UJ4DEO \JJ
MTADF!C*D'[PZX]1BM'2+\+XCCO-5T;7(KZ:#[)#<W<<7EA1ER@\LX!8C.2.<
M <=*Z?6-%LM=LUM;U9"J2++&\4C1O&Z]&5@<@BHM/T&"PE69[N]O94SL>[N#
M)LXQP.@."1G&<$\\T <3_8VM'X73:0='N!?O?>:(=R?=^TB7.=V/NCUZUT*6
MNHP_$1M373I9+.]TV*'S0R 0NKLQ#@G/1NP//YUU-% '-^-=)OM2LM/NM-03
M76EW\5ZL!8+YP7(9 3P"0QQFF?8KC6/%^GZZUI/:V^FVDJ*)E"R2R28&-H/1
M0#SW)&,UT]% '+^";6^LEUE;ZPFM3<ZK<747F%2&C<@KT)P?:NHHHH ****
M"BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH *
M*** "BBB@ HHHH *Y_QSK5YX?\(WVI6,(DGC0!6+ "/<=N[WP2.*Z"L#QSI5
MWK?@S4M.L$$ES-&/+0L%W$,&QD\#.* ,7Q!*T/CWPK?'39/M;Q7JF&/:7?"+
MM&[.,<DY)P,FM>S\8VD^DWM[=VTUG+8W7V2>V=E+>;E0JJ0<'.Y<'..:IWL&
ML:AXN\-ZH=%GBM[1+G[1F>(F(R*JJ"-W/W><9Z]ZRI_#FO7EKXA\JQ-K<R:M
M'J-@9Y(V24ILPK;6)&=AZ^HH Z73?%5O?:_+H<T/DWBP"YCVRK(DD><'##H0
M>H/ZUG>,M2N9-<T#PQ:SR6XU>:1KF6)BKB&-=S*".06Z9'/%:.@W>K7\@EO]
M 71T1"&5Y4D>1^/N[>BCGD\GCBJ_B[0+W4+K2]:TD1MJ>CS-)%%(VU9T88=,
M]B0.#_C0!8U#P?I%QILEM9V<-C,5^2>W7RV!'(W$<L#W!ZU-<:\WVZ[LM.L9
M+^:Q16N KJ@4L,A 3U8CG' Y&2,TL&J:C>QB--%NK*5N&>Z:/9'ZGY7);VQU
M]16596.I>'O%>LW26$U_8:LR3QM R;XI57:RL&8<' ((X'>@"9_'6GM8Z1>V
MMI=74&K3^1$R*H,<G.58$Y#?*1TQQUHB\7W,]W?Z='X>O3J5EL9K;S(\,C E
M6W[MO8C'7/XXQ%\+ZMINE^'K>&Q:ZEM]8.H7ABE0+$&WY4;F&<;P..N#6S8V
MNI6_CK6=2?2Y_LEQ:P1PR"2+YVCWY&-^1G<,9Q^% "-X\LO[*T;4HK"]FAUB
M011!%4E'P?E(SG/RD<<<=13[+QM!++JEMJ.F7FG7FF0?:9+:0+(TD6"=R%"0
MW3'UKDEL]2T3PQX+LK[398[NUUH!H/,C8OD2M\I#$=#W(Y%=!J6E:W>ZKJWB
M#3(39WHTK[#8+,5W.V\N7/) YP!GODG H UK3Q,9M6CTRXTZ:"XGLC>0+O5M
MZ @%3R-K@D<=/>LR+XA12:7;:L=%ODT^2Y^SS3N4'D-YAC!(W9/.,XR!GJ3F
MJ>G:7JT7BO2]87P]+;Q+82P7)ENHWFWDJ=SG<=V<$ Y)]=M4O[!U\_#&31/[
M%G%\;[S1'YT."OVGS<YWX^[Q]?SH [&'Q LGBF;P_)9RPS1V_P!H25V79+'G
M;E<'/!X/I5K2M1.J6TDXMWA19GB4LP._8Q4L,=B0<5@>-+"\N(])U72W%IJT
M%RL4/F $E9?E=" <' ^;J?N&NFLK2*PLH+. 8B@C6- ?0# H S+CQ"WVJ]M]
M.T^6_?3P/M/ENJX8C=L7/WGQ@XX'(YS5*7QU8FVT>YLK.ZO8=88I;O$%&' )
MV$$Y#94CT'.2,5#IUEJ?ASQ%K;II\U_9:I,+J%X'0-')M 9&#,,#@8/3UK+@
M\,:KHUEX6MH;![UK"]DNKQH9(U5"X?(7>RDX+^G04 =OIEW/?:?%<W-E+8RN
M#NMY2"R$$CD@D=L_C6-#XPBDETUI-/N(;75)VM[:9R V\;L;DZJ&VG'7MD"N
MA?=L;9C=CC/3->;KI'B:ZAT.ZO=">74[#4UFO+B2ZB)E7#C*<\(,CY>,=E/)
MH W[CQRT8U?R- OYSH[XN0&C7"[=Q8?-@\<@#)^E7'\5P+J.C6RVDS0:TF^V
MNLJ$^YOVMSD';T'>L:+3-87_ (3,-H\X_M3)M/WL.)/W(CQ]_CGGG''Y4[4-
M(N&^%EK!=1M8:CI-I%+"SE6,4\*C!!4D$$@CCLW2@#J+343=ZC>VBV[JMFRH
MTQ8%68J&P.^0",_45RGCF[.EZ]I^I:OIDFI>'4@>.=$3S%MY2PQ*Z=&&!@9Z
M9/?&>HT*SFLM)B6ZVF[E)FN2O3S7.Y@/8$X'L!4%[>:I:ZT0FF2WNFO;KN:)
MDW))N;/RL1D$8S]!QUH RM*N=%TO1]4\1:#(M[IKQB?RH)/]7L4[E4'[O'.W
MC!)Z5H'Q1 'T,&TF\O6U'DOE?W9,9?##/H.V:PM.\(S+_P )7+:60TNVUFW\
MFWLV*C#[&4R$*2%R6Z#TYQTJ""S\0W$7A$/H$L']CR*ESYEQ%DXA*%EPQRO/
MU]N] $&AZTWAK_A*7M="N[RV@UF:28VNQ5A39'D@$C<>IPO0=<<5U:^*;:[E
MM8=+C%Y)=6?VV-?,$>Z(G QGJQ].V.2*R;&RUC2G\26J:5).^IWLEQ:S+(GE
M8=%4;\MN&"O/!XZ9JM=>#HDTO3M%N-+NKI=/LD%KJEE(L<T,_.[&6! /RD=1
MZT :]YK%C+K'AI;S1YC<WV^2UF?;BV;RBS*><[L<=,>_%5O%.L1ZCX=\06UK
MIS7UO9P2PW$FY0%D"9(4'[Q7()Z8[9(Q5>32_$)N_!TMY;/>SZ=O;4+B.2,
M,T13^)@6.3S@56BTW7M'L_$NB)I$M]!J4ES<6=W%+&%'FJ<HX9@00>X!SF@"
MSI=_86^F>!K6\TU[B:XM8OLMS\NV%Q!D]\YQ[8K3U'QA%IT=Y=/I]PUC8W26
MMQ.2%(9BHW*I^\H+J"?K@'%8Z:3K2V_@E&TB4G20HO-LT7[O$/E]VYYYXSQ5
M+Q%HOB76-/UZTGT=KNY:[$EA<M<1B,0*ZLJ(I.5?"D'@9R<GH* .DU'Q=)9Z
M[/HUMH=]>W<-J+H+$8P)$+;<@EO8]<'CI5G2_$BZCJ&J6+V4MI/IFWS5F=?F
M# E6&"?E('6L^WM=5;XC'5IM)FBLY-*2U,OFQ,%D$C/R-V[&"!D#K[<U#XJT
M2:Z\3:7/8S+$VH(]CJ"=Y+;&\GV(P5S_ --!0!TNE7YU/2[>_-M);BXC$BQR
M$;@IY&<>U<]HGBV>6+Q#>ZQ +2STR]ECW[PPC5$C^7CDDDD\>N*ZP *    .
M@%<#-X4U6_TOQ=H,MMY,6J7DEW;7AE4HV1'M7:#N'*<Y XZ9H Z'_A)Q;WVG
MV^I:?-8IJ9VVLKLK#?C(C?'W6(Z#D<=:D\7ZO=:%X5U#4[. 336\+,H9@ O'
MWCZX].]95U9:IXGCT*&_TV6P?3[V*\NWD=&4O&#A4VL2=S$'/'&>_%:WB[3;
MG6/"6J:=9J&N+BV=(U8X!;' SVH C_X2+[-:V$5Q !?7<1=(I)D4;5 W.S=
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
MNG;KN+49YX[LR .'$C*%R#G 4!<'C K6L]-N9_&%UXFFM)8%&GK906[%?,D
M<NS'!P.2 ,GL<XIO@*QU'3/#YLM2T^2SF6YFD >2-PP>1F&"C'L: %N-=U ?
M$"+0DLM]H=.>X9O,7+GS$7=@] OS#'4Y]JYO0=>7PMIWB.=-)N)[*UURY,SP
M;56"/*C@$C=CT'0>E='?6&I0_$&SUFVL3=6KZ<]G(RRJOE,9%<,03DC /3)K
M".B:[)X.\6:>=&F6YU2^N)K9#-#\R28VDG?@=.<_K0!U>H>(H+2Z^QVR)<7/
MD"<HTRQ*$)(7ENY(.!['.*F\/Z[9^)-%@U6QWB*;(VR##(P."I]P17,3VFO:
M3KL.LVFA'4;>\L8K>[LS+&LL$D>[:P).TCYB.#[UUVF?:C9(UY!';S.2QAC.
M1&">%SW..I]<T <IH,B>,_$.MW>HJ)[#3+LV-I:2#,89/OR,O1F)(P3T'2K\
M::!IOB^-+)A;W_V21#I\,;*)%+*0X7 4<IC=T.>3Q5>QT?4?"OB;4[NQM&OM
M)U>7[1)%$RB6VF_B(#$!E;KP<CTI\5AJ%Y\0D\0?V?-!9P:8UJ/.9 \CF3=\
MJACQCUQ0 ZP\<#4+9[U-#U!+*'[0)YR$/E&+.5VAB23CMD9(&>N+EIXG,VJ0
M:=<:=-;S7=F;NW!=6WJ,90]-KC<..GO63H5CXBL?!>KVD-BUCJC37,MH99(V
M#&1V9<%6(!&>_?VJMI^E:NGB?1=7'AZ6!([.6&[:6ZC>8N=AW.=QW9P<<D^H
M44 75^(43:5'JQT2^2P%T;>>=C&/(/F>6"1NRW.,[<@9ZGFKBZ[J+^/Y=$^Q
M?Z)%9+.'$BY;<Y7<?8;2,#FN:?0=??X9WVB#19Q?2WQE2,S0X*FX$N<[\?=&
M/K70-9:F/'PU1=-=K*\TM+:1S*@-NXD9CN&>>&XVYY]N: "?Q[IUO]EN&CW:
M?=7 MTN5E0D$DA6*9R$)'7K[5+J_C2TTM+V98#<PZ<VVZ9)D5@< ML4G+8!&
M>GH,D&LGPS;>)-&M(?#EQH,,B6A\N+5O-3RVA!X8I][<!QCN1U YI]M;>(/#
M^N:G;P: FK6.H7375O<B=(_)9\;D<-S@'G(!_'H #L;>ZANK**\@??!-&)48
M#[RD9!_*L.S\7QW-UI22Z?/;PZP'^R2.1G*J6PZ]5RHR.OOBMEDNETTI&\9N
MQ#A6VX3?C@X],]JX&UTCQ%+=>&]0NM!D-]8W#_;YYKJ-GE+1LN\$$_N\G..W
M0+0!T7A77M0UF_UJ.[LO)CL[][>,B16V!43@^I))/ISBM/4=6:SO[6P@M)+F
MYNUD=.=J*J 9+-V^\ .#UK+\,V&I:7K6O17-D1;7E^UY#="52K*R(-NW.[(*
MG.0!2^(8M8DU[3O*L)-0TCRY!<013(G[TXV,X8C<@&>.?7!P* (W\=VBZ%8Z
ML-/NWCO+P6;(H4M#)O*'=SSR#C;G/MFK-IXHEN-1U#39-&NH+ZT@6XCMW>,F
M>,D@%2&(!R",$UR<7A[Q!;^%;/3?[#8RVFNB[VPW$6#$)B^1EAQ@@ <'U KI
M(+/4?^%D2ZHVFS)8R:6EL)S)'@.)&<Y ;=C!QTZ_G0!8L_%D-_X9MM<M[*9E
MNI5BCM]RB3<7V8/. 0>O/ !K2UF^FTW1+N_AMQ/+;PM((B^T' SR:YS2-#EM
M?'&HI'*K:5"XOXX0/]7=2J58?3:&;'_30&NEU:UDOM&O;2+ DGMY(USTRRD#
M^= '+-KT<_@K0;[7](DN_MCVGS H5$K;2LAYR!N/0 UK7/BEX_$%QH=OH]W<
M7<-L+E<-&JR*6VC!+<#(/7!XZ&N?N-,UZ?P!H>F?V'*+NPELUDB^T19VPE=S
M9W8P=O SGUQ6O'::DOQ%N-6.F3"R?2DMUE\R+F19&?&-^>AQG'7\Z (!\083
MHD.M#1[X6'FB*ZE8H/LS;]A!&<MANI''/U U-4\2Q6%S/:P0BYN+:(2RH9EC
MP#G"@MU8X/'YD9&>2?0=>;X8ZAHHT:;[?/=O(D1FAP5:?S,[M^.GZUIW4&NZ
M3XKNM6M-!.J66K11>;!YT:2VLJ+M[G:01C.">1^8!TVB:Q::_HUMJMBS&WN4
MW)N&".<$'W!!'X5?K+@N-4@?3H)=,1UN/,-U+#*H2TXRHP>7SG;D>F>]:E !
M1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%
M%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 444
M4 %%%% &9JN@VNL7%G/<R3J]C*)H/+?:%<<;NG/![\5I4M% !1110!EQ>'M.
MBUV76MDKWD@'+S,R)\NW*J3A3CC('KZFM2BB@ HHHH **** "LN]\/:=J.KV
M^IW22R36R@(GG,(^#N!*9P2#R"1Z>@K4HH **** "BBB@ HHHH **** "BBB
M@ K+TWP]IVEW]U?6Z2M<73LSO+,TFW<<D+N)V@GG ]!Z"M2B@ HHHH ****
M"BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH 2LW2M!M='N+R>VDG9
MKZ8SS^8^X-(>K=..!T'%:=% !1110!EWOA[3M1U:WU.Z262:V4!$\YA'P=P)
M3."0>1D>GH*U*** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH *
M*** "BBB@ HHHH **** "H+RTBOK*>TFW^5/&T;[&*M@C!P1R*GHH I:3I%G
MHMB+.R1EC!W,SN7=VZ99CDDX '/8 =!5VBB@ HHHH **** "BBB@ HHHH **
M** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHH
MH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBL[
M4=8CL;RUL(XC<7MYN,4(8+\JC+,Q/11D#N<D<4 :-%9NCZW#J_VJ(1/!=64O
MDW-O)C=&V,@Y'!!!!![C\JTJ "BBB@ HHHH ***PW\2;/%R>'/[/E,[VYNA-
MO79Y8;:3USG/;% &Y11437$*W*6QD432(TBIW*J5!/X%E_.@"6BBB@ HHHH
M**BFN(;?R_.D5/,<1IG^)CT J(7%T=4:V-D1:B$.+KS%P7R04V]>F#GIS0!:
MHHHH **** "BLR^U6YMM06SM=*N+UC%YCO&Z*J#. "6(Y.#T]*R=)\:OK&G6
MVI6VA7OV.XG$(E,D64._R\E=V<;J .IHK(\.Z]_;\5\YM'M6LKV2T9'<,24Q
MD\<=_>KLUQ=)J%M!'9&6WE5S+<>8H$)&-HVGDYR>G3% %JBBB@ HK*N/$5A;
M>)[3P](^+R[MWG0=L*1Q]2-Q_P" FM6@ HHHH **** "BBB@ HHHH **BFN(
M;?9YTBIYCB-,_P 3'H!4M !1110 4444 %%17%Q#:PF:>18XP0"S>I( 'XD@
M5%+<72:C;P1V1DMI$<RW/F*!$1C:-O4YR>G3% %JBHHKB&=Y4BD5VA?RY /X
M6P&P?P8'\:EH **BBN(9GF2*17:!_+D _A;:&P?P8'\:EH ***BGN(;:,23R
M+&A94!;^\Q"J/Q) _&@"6BL==?)\8'P\UFZD6)O!<%QA@'"8 '/4GKCI6Q0
M4444 %%%(3@9- "T51GOY6L+>[TRU_M!+AHRNR54'EL1E\GJ #G'4U>H ***
M* "BBB@ HHHH **** "BBB@ HHHH **B@N(;J,R02+(@=DW+TW*Q5A^!!'X5
MF1:_YGBZ;P^UF\;168NQ.S@AU+[< #W!Z^G2@#8HHIDLL<$+S2N$CC4L[,<!
M0.230 ^BFHZR(KJ<JPR#ZBG4 %%%% !1110 45%/<0VR*\\BQJSK&">[,P51
M^)(%9BZ]GQ>?#QLW4_83=BX+C# .$P .>I[XZ4 ;%%%% !1110 445%<7$-I
M;R7%Q(L<42EG=NB@=30!+156YN+J*\M(H;(SPS,PFF$BKY "Y!P>6R>..E6J
M "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH
M**** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH *YK7='U,^)],
M\0:4L4[VL4EO<6TLFSS(WP<JV#@@C//6NEJK?6(OXO)DN)XXF!#I$^S>/0L!
MN'X$4 <KX(-QJ'B7Q1KKQI';W=Q#;Q>6Y97,*%68-@9&3C..Q]*[2J,^D6DN
MC/I,:M:VK1>4JVS>68UQCY2.E6X8A#"D2EB$4*"S9)P.Y/4T /HHHH ****
M"N-G&?C- ,D9T!^1V_?BNRKD;BQNSXG.N+H>J-=QQFW21;NW"&+=G;M+=">>
M>: .9N7U,>#/$NJC7=3%SI.JW*VI%R0 (W  8?Q#'&#QZ <YWFM8KGXMVTS-
M."^A-*0EQ(HR)DXP#T]1T/<5&=#E.E:AI;>'M7-KJ4S37*F^M\N['+'.[(R<
M9QZ59DL;F74++4'\-ZJ;FRB,*R"_A4R1Y!VOAQN&0#C\Z ,^T;7/$WA]=;L;
M]+*[6Y=Q-)?2".-4D(,;PA=N-HP<\]\U9U>[O&UKQ':WES>0>59Q/I(M7==Q
M*-D@)]Y_,&,'/ '&,U$OAU4U>;4(O#.KQ"XD\V>TCU*);>9_[S1B3!^G0^E9
M6J'4)/$5[=77A[Q9:3W+J$;2+K]VZ*H"ERK%=W7V''N2 :5]%K5M8>#XKK5;
MZ"\N[I(KX"7J6B9F!QZ$<=0*NW5D;2]72(M8U2_:&P=A;FY99$+.2)I)@02!
M]U1@GC(!YJM'INKW=I8KJ>DZS<2:?.TUK*;VV$B\G:7(;YF"G'I]>IM7NGS7
MVLKJTGAG5([CR?(D\G4(HUFCR2%<"3D9)H P5DEUS2OA]?7\\\EQ/<;9)%F=
M"W[M^?E(YXZ]:WI;ZZTWX@:A&+FYN+6'01=);/(2H<2,.!ZD*.3D\U63P^(M
M(LM,C\,ZND5A.)[=QJ40DC;D<-YG P2,?UJ[%;WD.O'65\.:G]I-N+;!O+<K
MY0.0N-_KSGK[T 8UW?ZA'\,[?QE!J5RVIHD=U(#,QADW. T1CSM"X.!@9&!S
MG.=!+:ZU;QUK.G3ZKJ4-I]AMY5BAN#&8V8OG:1RO0=.O?-%OH[VL?V6/PSJ?
M]GB;SUL#>6Y@5]V[(&[.-W.W.W/:K"V]_'K=SK$>@:JEW=1"*0B\MMNT9V@
MMCC)H N?#_4+K5/ ^F7=[,T]PT;*\C<E]KLH)]\ 5T=<QH7AR&'2;2Q-MJ.G
MPZ?=">")[M6)/)P2A.5)8_*:Z>@ KC?A1_R3ZR_Z[7'_ *.>NOE0R1,BR/&6
M&-Z8R/ID&L[0/#]GX;T[^S]/DG^S!BR)*^_8223@D9Y)SS0!Y[)!<Q>%O&.J
MVNI7MK<6.LW<L @F**&4J?F ^^#TPV1[5U-[>7?_  GGAD+=SK!>VER\MN'Q
M&2J(0<=S\QZU='@S31I6HZ89KLVVIS--=*91EW;[QSC(S@=/2K!\-6AU'3K]
MKBZ:?38VCMR7& K !@1CG( 'X4 <U::I<V?B2VLO$'V^UGFOG-G>QSL]I>HV
M[9&5!VH<$8!'5<YYY[MW6-&=V"JH)9B< #UK(A\,6<30*\]S/!;3FYA@F<,D
M<G)##C/&XX!) [#@5=U738=8TV;3[B25()U*2>4^UF4]1GT- 'GGB&/4;G1#
MXHM]&O!J%K>#4X)BT07R%& A&_> 8ADC;G<3Q72^)-9GN/#&FZII4DGV*ZNK
M9KF2'/F+;.PW;<<YY XYY.*Z%[,2:>UF\TA5H_++\;B.GICI[5QVM>&H=&\/
MZ?I%C::K=:7%=B20VLY:XM0 2ICQAC\Y&>N!G SR ":RM[Z;7==DM]0U :2E
MNGV5S,S+YI4[]A;)('R\YP"2![8]A=W^G?#W3_$LNLW\UW>0P6TAN+C,,8>5
M09,$'# $_-SUZ&MK0])GDNF-MJ'B(6,D3I.-5D)))QC8'&X$<\],>O;:MO"V
MEV_AMO#KQO<:<4,?E3ONPOH#UX/([B@#%NHM:\.S:AK*W*?8H].E?[!+>RW)
M>9%+!E+@$<#! ^M-TZSUFX_L36;?5$CA=4:[:2^DE2Z1P.B%0J-DY&W'7'2M
MG1?">GZ(K+'+>7>8S$OVVX:;RXSU10>%7@<#K@9Z5!H_@C2-#NA-9O>^4C%H
M;62Z=X(&.<E$)P#R>3GK0!RDJZA)X4\77K:YJGGZ5J%T;5UN679L52H./O#M
M@\>V>:U3)>67B7PK=#4KR4ZNLB7<4DQ,3?N=X*I]U<$=@..N:VE\(:>NG:G8
M>?=&#597EN@9!EV?AB#CC( X'X8J23PO9S2Z7*]Q=%])S]E/F ;>-ISQ\WR\
M<]O?)H YFW;7/$^A3:K87Z65XEY+LF>^D$<*QRD;'A"[2-@YSR<Y]JL16=WJ
MWC#Q+I\VLZC';1VUK)$EO<E/+9EDR5(Y R.W7OG%:K>!=&.KSZBANX?M+^9<
MVL5RZ6\[_P!YT!PWN.A[BKJ>';:+5K[5([FZ2YOT6.8AQ@JH(7 Q@8!.#[T
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
M"%BB.Q7:"VTKR >N1^-:UUX0TJ\TN2PF$Y\RX%TUPLI68S \2;AT(P ,< #
M&* .;AN]16Z\9V7VB]M8[6RAN+9'N3+) S1N3AB3C)4' ) [5FZYI3R_"E-7
MN]5U*ZN+FRL69);IO+#%H^0H[X;G.<]>O-=D/!FEB>\G66]$M];BWN'-RS&1
M0",G.><,1GL#QBK#>%].E\,?\(Y-YTMAY0B57D.Y57&T!NO&!CZ4 96L^?I_
MC'PI;6U[=K;32W*2PM.SK)B)F&XDDM@^I/;TK/3^VO%5GJL^GWOV2[MM0E@@
ME%](@M_+? #1!=K9 R=V<[OICI)/#%G+<Z;<O<79ETPLT#M-N.YAABQ.=Q(.
M.?PQ56Y\#:/<ZS-J8:\@>Y(-U#;W+QQ7)'_/10?F]_7OU- &%XBU2]T^[N)]
M7-[_ &5<01+#J>ESOLLGVC<712,J6.[<<\$"N^1UD171@RL,@@\$5DW?AJTO
M)+WS+BZ6"_ %U;+(!'( H7&,97*@ [2,UK*JH@1%"JHP !P!0 ZBBB@ HHHH
M **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@
MHHHH **** "BBL3QAIUYJ7AB]BTVZN;:^2,R6[V\S1L77D+E2,@XQCWH VZJ
MW\]Y! KV5F+N0R(K(91'A20&;)'89..^*X+_ (2B)M>T/Q$ES<IHUS MM=AK
MIS##.Z;TRF<9&,$G^^.]6O$,=Y9>$["\%[?PW%QJD$KJ;J0E5DE'[HY/0*0N
M.G% ';27<*7*VF\&X>)I4BSRRJ0"?S91^-9WAG76\0Z=+=O:?96BN9;<Q^9O
MY1MI.<#TK#>QA?XQ"0F8,=%$IVSNH+"< < ]./N]#Z5S!AEM/ 6L:W;7UY#=
MV.KSO!Y<[(B_Z0 04& V03G=F@#UNBF2()8VC)90PP2K$$?0CI7F.E3WEA\,
MCXK;5-0GOXHIX@9;AG0 SE=Q4Y!*]<G/Y   'J-%<G%I6HVFK6^HV^JQ6UI)
M;O')$]U).L[;2R."_ (P22.HS6=X<NYEUFVT?7H=0T_5_LLB;Q<O)!?_ '29
M$;/#C&>@(#4 =[17D21ZFGPJM?%L>N:DVJ69,J;[EFCD F*E&3HV1W.3T&<8
M%=,[7WBC5O$&GK,;>2R:.& "[DB:WW1*PD 3J=Q/)[+CUR =O4,]U!:^7YT@
M3S9!&F?XF/0"N0L+BYO_ !+#X>U;4#<_9=)29F@D:(74A<HSG:03C:..F6)]
M,4M;T=;:7PE:7.IW6HRP:J83<M,ROM*2-@E3]X#:-W7B@#T*H;6Z@O;=;BVD
M$L3YVNO0X../RJ'4;:.72+BV?>8S"RG]XP8C'][.?UKSS1KN33? O@ZT@FN(
M4U>YB@N)1,^57#':I)^3<0!\N._>@#T^H;BZ@M$1YY!&'D6-<]V8@*/Q)KF(
M7N-(^(L.E6TTTFGW]@\[P22,X@D1@-REB2 0P!'3/-1?$&TBN)_#+.9 W]MP
M1Y25DP"KYZ$<\#GJ* -FWUYYO%UUH#V?E^1:+<K/YF=X9BN-N..A[U?U">\M
M[=7LK,7<ID13&91'A20&;)'89..^*Y";2H;_ .)MW9RSW20C1(01%<.CN/-<
M#+@[OUY[YK*^WZA-\+-'O)-1N_M,>HI TJS,&E071CPY'WOE ZT >G45P?B^
M[O-/U"^N+^&]FT62!8Q=Z?.PDTY\'+,BD9!W!B?3@\5W,,L<\*31.'CD4,K#
MH0>0: ,O7_$MAX=-@+UB/MUTMNF/X2?XC[#C)]Q6O7#:]82^*UUF+^S)[JW:
M$V5I,CQA4=6R[C<P/^L50?\ KD*N>'[R?QAX \J6YGM-26-[6XDBE:.2&X3Y
M2<J<]<-CWH ZVBO+?^$AN?[/\.:NT]Z#I3B'7(_M<FU?G\G+KGYCO#-SV'-=
M#>NO]D2ZA)JM[;+JFHQB".*1G:6/<%6*(%@$\P*6R,8#\\"@#L:*\[\^^CC\
M=6AGN;5+.TCN+:-+IF:W9H78[6ZC)4' .,YI)Y)]$\'Z3J,>IWS7.M&QM9YI
M;@LL"N!N= >%."1GZ'KS0!ULVNO#XMMM"-F=MQ:R7"W'F?W2H*[<?[77-;%<
M6^G0:?\ %+2O(>;;)IEQE))FD (:/D;B>3W]<5L>*IDCM+*)KVXMS->QHL-L
M/WEUU/E Y&T'')R, &@#<HKS.YNM0BT+QW;?:KFV_LXB2V6.Z=F@W0A\!^N,
M\XZ#)Q6C%'/IOBSPG)%?WLG]J6\R7:37#.DFV$.I"$[5(/\ = H Z;Q+K+^'
M_#]WJR6ANOLL9<Q>8$R![X/\JT;>7S[:*;&WS$#8],C->9:A*?$WPHUG7KN>
MX%W)]H(19F58%20JL>T'&-H&<CG.?2O2=/\ ^0=;?]<4_D* +%%>?Z#?7$.M
M6&E^(4O;?49/,\J\BN6>UU(%2200<*V.0,<8XQD"L^>^OQ\)=1O!J5\+JVU"
M1(IQ=2>8%%R$ +9R1MXP: /4**XB[L9=4^(U]I<VIZA%9-I4<QA@N60;C(PX
M(^[T'3&<<\<5DZ=K6JVND0:/=7LDP3Q%)I0O)I2CRQ*I907'()8!<CG@CWH
M]-HKSGQ/I^JZ+X;\1SKJ\D,+VZSVUM#=2%[=E(#%7/.UL\CIFM+5-*U/3;&"
M[TJ2[U5Y9EGO+*:]*M.@C((C/\/)#;1@' 'M0!VE%>?#Q%#)HNF1:;/=Q1WV
ML-:7"WTCI+;MAG\EFY93D*HP>AQ2:[)J_A&QU&X74UC@OY((X(?-:4V6YPDD
MBL_;!SCH#B@#J;W7GL_%.F:(;/<FH1S.MQYGW?+ )&W'^T.];-<1J&F0:?\
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
M=W<+$JRSQC"RL!@L![FKE !1110 4444 %%%% !1110 4444 %%%% !1110
M4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% &1
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
M7:'6!J^QOM8M_LX?S&QLW;L;<XSGOC- %RBBB@ HHHH **** "BBB@ HHHH
M**** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ H
MHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BB
MB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ****
M "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH
M**** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ H
MHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BB
MB@ HHHH **** "BBB@ HHHH **** "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@ HHK%\8B7_ (0[
M5Y(;F:WDALY94D@?8P94)'(YZB@#:HKC-8UVZT/X40:E;/F\-C;QQ.W.'<*N
M[GKC=G\*=?%O"WB'P[';33/!J$CV=V)9&<RMLRDAR?O9!R>X/L, '8T444 %
M%%% !117#3VBW/Q=>PEFNOLK:)]I,*74B)YOGE=V PYQQ0!W-%</?W-YX/\
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
M_7BMV@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH
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
M@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ****
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
MPLUY'&&C@S.P!;)W$<C) /Y\5V-[XF@MI+R.VM)[]K&!9YQ;E,A6!(P"PW'
MSQ^IXKE[32=6'@?4/"C:9,EY=37""9]IA$<LC-YFX'LK=/O9'3O4GB#PZ\TD
MAT^RU"UU>PMTBTW4K1L>?A!A).<8W==P QT/6@#H);W3/^$ZMK*2QG_M(6,C
MQ7)_U?E;EW*.>3G';M7-_$76H=4^'^KO:V5S/:(3&MVC*$WJX4D#=DJ#E<XQ
MGVYK6>SU-O'NEWLUK(\46F207%S&!L$K%3QSG'RGG'I7,OI?B"V^&E_X+;0[
MJ>[A#1P7,13RIT,FX-DMD'GIC^N #LY;W3/^$TL+*6QG.HFSD:"Y_P"68CRN
MY>O)SCM3%\96;/:/]DNA:7EZ;&&Z*KM:4%E^[G<%)5@#CM5:>WOY_'FC:A_9
MMPEM#8RQ3.VTB-W*D X)S]T\C(KGI['Q)J%KIEQJ&A7<^J6.LQW%S*98]C1*
M[8$(+<+M*_W>G))YH ZD^,8FUB[TN#1]2GGLYHHI_+B4A!(,A_O?=Q@^OMP:
M9H^MZ+%:ZY?P6D]DMOJ#I>"4?-)/M09 !/7*@ =3VIN@07T7C3Q%=7%A/#;W
MOV<P3-C:VR/:PZY'/3(YK$D\/ZOJ.A^*K2.S:WN+K5?MUE]HQLF"F,J#SQDQ
MD8..HH Z0>+K.'4Y=/U&VGL)H[5KM?-*,KQ+]X@HQY'<?EFK>GZT=0N(8_L%
MQ#'<6_VB*9RC(RY7C*L<'Y@<?K6)IUQ>WEE<3+X+33I8;:3?'.L?[^3:<1IM
M/*D]6./3!SQ%X9T2?2?$"MI$=]9:++;LUQ879RD$V1M$62?]K."5Z<], '2:
MGJ\6F2VD!AEGN+V4Q011@98A2Q))(   )K)G\<V%MX?O=8EL[S9871M+F$*I
M>.0,%_O8(RR\@]#4GBI]76YTL65I<W6GF9A?QVCJDQ7;\F"2/EW=<$=/3-<E
M/H>M+X0\4:5%H4R27NJ?:+6.-DVLA:(X'/& AST'3&: .TL_$T-UK[:-+87E
MG,T!N('N%4+/&" 2,$D$$CA@#[5R_P 0-:AU?P3+<6EE<R6ANH5AO RA"1,H
M+8W9VG#*#CG/H0:U-2L[V_\ &^GW:65REH=-GMY)L >4\A4C(SGC!Z5STUCX
MA'PT;PF_A^ZDOK-X8UEB9/)F1)E8,K%A_".F..^* /3994AA>60X1%+,<9P!
MUK#L?%UM>WFF0-975NNK0M-92R!<2*H#'(!)4[2",]O?BM6[>\;2IWLXPEX8
M&,*2D8$FWY0V#CKC/-<)966M3:OX7U2?0KW[3:^<FH37$L9<N\6W</FXCW9.
M!C /"T 3*J^)_%'B.PU?1;JXAME@2!=\0:V_=E\J?,^5F8\%?;)&.*5@+'6M
M(UG4_$&BWMQ]@U"Y<3HZ>8L<9V^4"K[N%!!'W3SR2:Z/0HKRW\8>)+RXT^XB
MMKUX&MY64$2!(MK< Y'(XSUK/TBQU*'P?XDLYM,N8[F\N+R6"(A<R"7.SD'
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
M>$@@;@VW@'('N<"SX.TO4-)MKVVN)[F2R%QFP2[</-'%M'#'TW9P#SBNCHH
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
MZ5)-)=RPN@5#(K9 W,"0&?TZ#\*]"HHH **** "BBB@ HHHH **** "BBB@
MHHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH *R?$VOI
MX9T2759;2:YCB*AEB*@C<P4$Y/3)'3)]JUJY/XH9'P\U,J,G,.!_VV2@">#Q
M>W_"0QZ-?Z-=V,EW&\EB\C(1<A1DKP?E;'.#^.*ATWQQ_:%L]^^C75KIL)G%
MS=RR)M@,6<@J#DYQVR,\9/.)KJPO-9\2:1J,UA+:0:2)9<2/&7ED==H5=K'@
M#)))';WQFZ3X9U"[\":MX?U&W>QFNY;AHW9T<8D<LI^4GID9% &J?%9MI--?
M4-.DM+35'6.VG,@8J[#*+(O\);M@L,]<5D2&;6/B'J6FZCIL5S9)IT<?ER2
MJB.[[G QU.![_*.:FETO6-?TC1M*U+3FLWLKF&6[G,J,CB+_ )Y[26^8@=0,
M GN,&U;Z=J!\>ZG?3:?*MA=64=LDPDCZJ6).-V0/FXX[4 5XO&^DZ=;:8D,2
M?V5/(EI;RK<AY$'W49D/.PXZY)Z9 K5A\1M>7$HLK,7$%O>_8YG68>9&X;:6
M*8^Z#[Y[XQS6+X8@\5Z1:0>';C2(&AM,11ZL+A=C0@\'R_O;]O&.F>]1WGAV
M^N]>CU6RTR;2M5CO\27D,R"&YM@Y_P!8H;+$IC@KG/?'0 W8O$C75Q,ME9BY
M@M[T64[+,/,C?<%+%,?=!/KGC.,<U!9:UIB>(?$9DT_[#-IT4+WEW)M_?)M<
MJ?E)X"J>O//2LF^\.WUYKJ:K9:7-I>K1WP#WL,R"&YM@_P#RT4-EB4XP5SG'
M..DTWAN^U/6?%T=Q;/;VFLVD,$%QO0\HCJ25#9ZL,<=CTH T3XN%NNG75]I\
MEM8:FZQV]P9 Q1G&4$B_P[O8G'?%07'C2=)]9@M= N[B71RIG!EC4%2F_(.?
M[O( R?7%4I-(UC7/#FE:!J6G-:M:30&ZN?-1HW6(@YCP=V6P.H&,G/3F>'3M
M6CU7Q=<'2Y?+U-(_LI$L7SE81'@_-QSSSV_*@#57Q(+N/2SIME)<MJEN;F(N
M?+C1 JGYV .#\P &#7,^+=5M/$OPWCU:.V*$7L*A90"T3K<*C8(^AY'4&I++
M2_$5M9^&[.?2&N;&TL?L]W9FXC4"8!0LC<X=, \<]<XR!53_ (1OQ GP\FT+
M^R5^TKJ/FQB.XCVLGVCS<\D8&.!W]0* /1R0H))  Y)/:O._'.K#7/!T5_!I
MH>Q>]@^SW;.-X_?*-^W'"M@@'.>1D &N]N8/MVGRV[AHO/B9&Z;EW#';C(S7
MGDNC^*CX!C\+/H?F7%E+"L=TES&(IXTE5@1D[@<#D$#H>>U '5ZOXH?3/[3>
M/399X=*A6:YD9_+W*03B/(PY &3R!T&<U6O?$]X/%&BV%E8O+:7]M)<^8'4,
MX"C P3P!N!/<]O?,U[2/$6K3Z_;3Z4EW#=V6S3I'N4$=LQC(8;3SOW$_-CG@
M9 J5=-UN#4_"NH'26D-E92VMS$DZ9A9E0*Q)(!'RG.W./>@#3O?& L5EN9--
MF%C#?K8R3,VU]Y(7>J$?,FXXSG/7 -=)7F^L:#XFU.PU.&XTA;N\&HK-;73W
M28:!9594C!/R$*.0=H/)R3780:O?MXC_ ++NM)\B!K7SX[I9U<,P*AUVXR,%
MAR>N* (/%NH66GV=D;_2VOXIKZ&-?N[8I"XVN<G/!] :;=>*9X]>NM$M-$NK
MJ[M[9;A?WD:+(I) Y)X&0>O/MWIGC?3[_4],LX-/M&N7COX)W =%VHCAC]XC
MGBF0VFHQ_$"ZU5M-E^QRZ;';K()(\[U=FQC=G^+'U]N: )[/Q?:7V@Z=J<-O
M*9=2D,,%J2 YD!8,">@"[&)/H/H*S_$6H'5O"'BJRO\ 2WMYK"RE)WC?%(?*
M9E>-R!NQCT!!K(M/#?B.S\+:-+;V 75=$OYK@6LLR;;B.1W+*&!(!VOC)[@U
MT&H_V]K?A+6(IM)^RSW=G);V]GYZ.^YE8;F;.T#D< G@>^  &E:X+&+PQI$E
ML6_M*R'E3*_"F.(,01].F*FC\86B0:S->P/;+H\PAEP=_F$@%=OJ3N  ]365
M=:7K$"^$=1@TM[B;2(VBN;19HU?#Q!"02VTX(]:S[OPIX@U2R\41/:Q6<U[>
M0WEFQF#JS1A"%..<?+C)QS0!<U%[B7XF>%9;K3%M)&BN\2+('+#RQ\K$ 8(]
M.1SP3S5NW\3V%AI7B/5;?0IH3I]XXNXU,8>5U127/S8Z$=R>*BEC\0:MXH\-
MZI-X?DLDL!<"Z$ES$VTN@7*[2<C/X]>!WK2Z)K4N@^,;0:7()=7N)7M 9HOF
M5HU09^;C[N: -JU\6--K6GZ?<Z3<6L>IPM):3NZD2%5#,I4'*\'(S^0J*_\
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
M]/NK@6ZSI<*9%)) <Q]0A(ZYS@]*GM_%UQ>:S=:;:Z!>2-974<%S(9(P(U8
M[_O<C!S@9..N*S?#-OXJT2TB\-S:1!);VI\N'5OM"[3#G@F/[V\#C'3/>M'P
M[8ZC:>)_$-S=6$D-O?SQRP2F1""%C"$$!B0<C/3I0!8\;:C9:7X4O+O4=+;4
MK-%'FVXVX(R,$[CTSCID^U6KW5Q%J<>CVEN+J]>$SM&S[$CC!VY9L'J>  #G
M!["J/C[3;[6?!FH:9IUL;BYN55$7>J@?,"22Q'852O+/6=/\:Q^(K+3)+VVO
M+);6ZMEEC66!E8LK#<P4CG! /O0!F^"]5M=%T/6[B>W^RA_$$\4=ME5VNQ4!
M,YV@#US@ $UJ_P#">VT9U:&6S,ESI=K]K:.UG2598L<LK''3'((SZ9K%7PUX
MD?2=1EBLXK>_BU]]5LXY)@R3#IL)'3(+=?;I6U=MXBUSPQJL4^@C3Y;BQEMX
MK7[3'(\DCJ1N+ A54?7)R>!@9 )K/QB;C4-)@GTBXMH-7BW6UP[J07";RI4'
M(XS@GKZ5!H_B:_U(>(6O-(E:&PNI(5B1XR=JQIE#EADG)/ISC-5I-*U=E\'$
M:5-_Q*2/M8\V+Y/W1CX^?GDYX[>_%3Z18:KIMSXGMWTR22.]NY+JWG66/;('
MC50H!;(.5.<@#WH SM?U<_\ "HDO=#LOL5M<6\:JBR!3 C.JX&.N02./6K\T
M.CZ9XKT>6?PRD.HZB[1I<1LI2(HC8X!^]MR,[>AZ\51N=!UMOA';^'X],=M1
M2.&-H_.C"C9(K$[MV,84^];&NV>HW^O^&[VWTV4PV4\DMQF2,&,-&4 QNY.3
MGC/% $]]XI:"&]NK+3)[^VT^;R;AH6^<L,;A&F/GVYYY'0XSBGZGXCDLY+M+
M;39;@65H+N9W;REVG.%4D'+X4\' ]ZQ],M?$_AS5-3L+328[^QOKR2[MKLW*
MH(#(<LLBGYB ?[H.?Y+K.EZ_>ZQJ$$U@NI6,]BL=G(\RI';R[6#LR=2Q)!#
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
MBS.DM9RNDJG$C.KG R"5&W&<9]JZ6*6.>,20R+(C=&1@0?QI] '!6OAS6X?
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
M=G'/M6QI]I</<W]Y?0B.2Y*Q*@?=B)5X&1_M-(?HPKF+3PSK5IX-N?!GE1O
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
M %QR" 3FM>@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@
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
MUC=Q7 B?9)Y; E&]".QJW0!R>C>&'L_%(UJ"QATE9+9H[RWMY=T=Q*2"&"@
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
MYBH3N [KP 2?[P[]>EJM=7=G8F.2ZFB@,\BP1M(0N]R?E4>I)S@59H ****
M"BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH *
M*** "BBB@ HHHH **** "BBB@ K$\8:[<>&O#5UJ]M:QW+6X4E))"G!8#/ .
M>O3CZUMU@^-M&OO$'A2\TG3S;K-<A5#7#LJJ P.>%)/2@"&X\0ZG831VVH65
MM!/>3E;,)*T@$83<S/A<Y'3 ZDCG'-4V\;SV6CZQ=ZCI;K)IDL<<;(K)%="0
M@(REAQR<-UQ[U;\1Z+K&III>J:;+:VNL:;(9$21F>!PR[70M@'!&.<=OQ%+Q
M"VK'PC=Q:S+ID5YJ31VEO;_,]NK,V,%F ))R3G'&!@''(!?77M4B\71^'YK.
MTE,EH;L7"S-'A0VTKMVMD@D<Y&0?PJC;^,OL_AW4]4N;""T-IJKV4@C8M&I\
MQ4,C,%!(!))XYQ2:2NL:3K5N-1T6PW7@^S"YAU&6>554,P&)5SLXYP>^<&GZ
M5H6OZ9INIQ>5ILLEYJLMYY33.T;Q2-EHV)CX..,X- $/BK7=9M_ NL:A:2V>
M8XQ]GNX&++)&P +KUPP)(')'&?:M6\U^XL[FUTQE@%]- T[MAWCC0$ ' &22
M3[=#ST!Q7\ RMH'B33K/R-/BU<(;>T5RT4#*.3TXW'J . !]*MZEHOB9K_3O
M$&G2:>FJP0-;W-K([F"6(D' ?&<@C.<#K[<@$+^-]432[.Y;0MD\NJKITL<D
MC("2V!)'N4;E(Z$XQ[XKJ-+DU*2SW:M;V\%SO8;;>4R(5SP<D ]/:N?UG1?$
M>JZ?II9]/>[M]2BOI4,KI$BQGB-#L8G/J0.2>.U=8NXJ-P ;'(!R : .3O\
MQ=>Z;/;/=V4,$5QJ0LUMY),3E"^P3#L1GG&.AZTZ7Q)KL^N:UI.GZ79M)IL<
M4B237+!7#ACSA<@_+C'3KSTSE2^$/$LFFO:-+ILLD>JI?+=222>9<A9-P5_E
M^7 X&-W  XZULV6C:U:^)];U1X["2+4;>&.,"X=6#1JPY&PX!W>IQCO0 EGX
MQ&I:;H3V=LHO=;0O'%(WRQ*JYD8D<D#H!QDD=.2*OA3[5_PG?BW[9'$LP^Q@
MF(G:P\ML'GD<8X[>IJC9>#->TS2_#D]L]@=4T(21&,S.8;F)_O#=L!5O3@UM
MZ%I.L6OBC6-6U!;-(M22 +'#*SM&8U(QDJ,CGKQTZ4 1^(M1U>W\7^';&R:
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
MF[BFFN2J_?"_. I('7IG.1TY(BTKQ=J&IZ5(5T?9J=MJ'V&[@\S,<![RENZ
M<_I[U2+:A#\3[,);6\DZ^'R)HQ.0H'G#[K;>><=0.]/N_"&K?V>\MM+:/>W.
MK#4+RVE=A!,F,"$L%)( "G)7DC..U $I\;W"Z3XBN([:TNYM".2T4Y$4Z%-X
M8'!P<9&.>1UJQ:^)]3_MS1[2_P!/MXK;687:!XYBTB.J;R'&,8(ST)^M9]SX
M4\03IXJ7?IO_ !/H46,"211$PB$9!^4\#U[^BU=ET'6Y=2\+7?EV &CK(+A?
MM+_-NC\OY/W?.!SSCT]Z "V\6+;P>(KJ]T^*W_LNZ$)6!]QG8JNTDX')+*.G
M%20^*+Z/6!9W6G-/!);/,EQ:128C91DQMN4<D=#QD\8JFW@W4+ZU\3V=]+;0
M1ZS<">WE@E9VB90NW<"HZ% >#[>]7]-A\92VSIJT^FPRPQ,L;VA<^?)M(5FW
M#"KSG !Y] ,$ D\-^(9_$"V]W UE-8SV[2.T#DO;RY7$3 ]\%N>/N]*T-7OK
MRS2V%G:"9IY@DDKG"6Z8),C>PQC'')'(K%TWPO/%XI@UYK2TTV86[QWJV<K,
MMV[8P2-HP!@G)Y)/MFK?BG2=4U)],ETXVTJV=SYLUI=.R1W"[2!D@'E201P1
MD9[4 8NH^(/^$@\ >+%D2'?81W%L9('W1RXCW!U],ANG.,=:-: ^Q>!#CG^T
M+?G_ +8/3SX5U[^R_%5F9-.<ZVSO$V]U"EXPAW?*< 8]\^U6M1T#6;NT\-1Q
MI8A])N(YIPUPX#;$*84^7SG.>0* .L(!!!&0>U>*Z7-;ZI\)=&\+V]F9-7U
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
M'S@RDJ>O7(VD#OWJQ+K6I6WBC1=)N[2TS?6TSO,C,2CHJEE (X&2.<G..@H
MW+V^M-.M'N[VYBMH(QEY)6"J/Q-203QW-O'<0N'BE0.C#HP(R#7GXO-6OO"/
MCMM1N()DA:^A4)&5V[85 QDG"X[=<\YK0T;7=4L'\,6%W:6HL=3M1'$R2,98
MV2$,"W&,$ \#IZF@#M**RO$^JW&A^&[[5+6"*>2TA:79*Y4$ 9/0'\OUK(_X
M275[9+4W]G:H=39!8K!YDSJ/+9Y#(JC)P ,!<]<9Q\U '645QK^,[^PL-6FU
M+3)8UT^6$1WGV66*&6.1@"^UAN^3)+ $].#S4FK>*=1TSPIJ.N6XT[4H;=5>
MWFAD*QRJ>"< MR#VS^/:@#KJ*Y0^)=9L/$^GV&L:=:Q66JEDM98)69XG W;9
M,C&2/3C/KUJO-XUU![2/5--TR:]LS<>7]GBLIVE>(.5,BN!M[9VXZ=\T =G1
M7-SZ[JMZNJOH-K;W']ES&#RIB=US(JAF53D!,;@ 3G)SP!R:@U#69OB3;61D
MBAMO[(-P;=U)*DRH&!(."PQ@'H.?6@#H3HVGG5?[5-LOVX)Y?G[CNV9SMSG[
MN><=*O5S/Q#O;_3O!.H76G3)#*JA6<J20K,%.WG@\]:L3ZQ>KK5KX?A-L=0D
MMGNII2C>7%$&"@A=V222!C<.A/M0!O4G2L3P]K\NJ7>IZ9>P)#J&ES+'.(R2
MCJPW(ZYY (['IBJ-_>ZM_P +'L+"&Y@6S;3Y9O+:,G)#H"2<\GGCTR>N: -^
MPU2PU5)GT^[BND@E,,C1-N"N "5R.^"*MUYM8:MJVB6/C#4=.M+6:&SUJXGF
M$\C NH2,E5 '!P,Y/Y&NFO/$SO>QV.GKB5K-;MI'M99PBN2$7;'SD[6Y)&,=
M\\ '1UF3>)= MYW@GUS3HID^]&]VBLOU!/%-\-:K=ZSHL5W?:=-IUSN9)()4
M9<$'&1N .T]1QWKDK[6;70/B/KVH7=O<2P1Z1"T@@BWD ,W)'I0!WT,T5Q"L
MT$J2QN,JZ,&5A[$5)7%>"+5_#/A/4]5OVCBL[B>;4HK>!Q(MO 1N"@C@\#/'
M%6;;Q1JTFI:8KZ7+-::AQ(8K.=39DC*EG8;77L3\N/>@#H;#5+#5%F:PNXKI
M8)3%(T3;@K@ D9'?D5;K@]$U:/0K3Q??R1F39KSHD:YR[NL2J. 3RS#H#]#6
MI:Z]K<NLOIIL#(DEL98+W[%/#$D@/^KDW^O9@?PH ZBBN5TGQ/?ZKX:MKQ(K
M>+4IKPVKVK!B(W5R'4\YRJJS?05%XD\6ZCX?M=0OI;>UC@LG0103-^]O4^7>
MZ$'Y0-V.0?NG.* .OHKF;[7M97Q@WA^QL[,AM/-W'--*W!WA?F '3D\#KQR*
MP]3\4ZQJ'@VSO(?(LKHZLEC=JH+KD3;#M.1P<<YYP2/>@#T$D $DX [U3M-8
MTN_G>"RU*TN98_OQPSJ[+]0#Q5F$2B%1.4,F/F* A<^P-<+H-U-I^I>/+VVA
MCEE@N_,".Y4-MBS@D T =]5+4M9T[2(_,O[N.!=I;YNRCJQQT R,GH,US-GX
MNUAAX;O+RQLTL=<$<?[N1C+'(\9<'GC:<$8Z].>U,MFOI/B7K*W,EJUO'I\
M=71B/*+2''7&>N>U '9QR1S1)+$ZR1NH974Y# ]"#W%/KC#XLN[7PE%XGM;&
MV_L9,$6B*5E6WW;0X.=N0.=F.G&:L7OB/6Y?$CZ-H]E82[M.6]@GGF<*P+[?
MFP,CZ#/7.>U '5T5Q_\ PDGB*XNM?M+;3].2;1]AS),[*X:/?C@ Y(/MCWIL
M?C'5&M_#^J/86J:;K,T,&SS&,T;2*2&SC;C(QCKC!]@ =E17(>)/%NH:!;W]
M]+;6L4%G,BQ6\S?O;Q#MW.A!^4#=W!^Z<XJ62]U=OB:NGK<0"S32S.(BASS*
MJMDYY;Y>#T'I0!T5K?VEZ]PEK<)*UM*89@ISL< $J??!%6*X^'QFUKI/B'4-
M0L88CI=^;98K=R?.;"!<L0.27 SC@?2KEQKVHZ/K.FV6JQ6LD.J,8HIK<,OD
MS 9"-DG<#SAACITH Z2BN#G\:Z^FAZOJR:98"+1[Z6"=&F<F1$(!V''7G.3^
M5=<TVH2:A:&WB@.GR1,TTCN1(K<; HQ@CKF@"]5.YU;3[.!I[B[BCB240L[-
MP') "Y]<G%97CO5[C1?"-W<V;[+J0I! _P#=>1@H;\,D_A3/$=\_A3P[9_8+
M.">".>"W*S.?E5G50P&/F.3GJ/6@#;:_M$U"/3VN$%W)&94A)^9D! )^F2*C
MAU739%F\J[A*VT_V>4@\1R<?*?0\C\ZSIM9N8_'5MHIM(/(FL9)TGW$R95E!
M7&.!SZG--\.:I)X@AUJ"_L;:(6VH2V3QQDNLBA$R22!G.X]A0!NRQ1SQ-%+&
MLD;##*PR"/<4X#  ':N:\":C->:-=6=Q(TDNDW\]@TC')<1M\I)[G:5Y[TSQ
M)XEU+18M3N5@M8;>QB62$7+?-?';N=4P1MVCC.#SVQ0!TTD4<NWS$5]C!EW#
M.".AI]<]'XBN)/$VGZ:L47V?4+!KM&(.^,C;P><'[WM7/Z_XGUB?P/KMS T%
MM<6&HFP9T5CO3>B%EY^4G?[X_6@#MGU2PCU*/3&NXA>RJ72WW?.5'4X]*MUQ
M.NG4$\>^&MB6\UX;6]&<E(Q]SD]3@#MW]NTUOXVGBT.\FO[2'^T;74_[,6*%
MR(YIB5V$$\A2'!.<XP: .PI"0JEF(  R2>U<Z^O:AIOB2ST;4HK:7^THI&LY
MX0T:^8@RT;@EL<<A@?PJGH'B+Q)KEE]O33=.2W1[B*16N'#%T8A=IVGY<C!)
MY]J .GL;ZUU*RBO;*=)[>8;HY$.0PJQ7,Z%K6I:SX7TO5+:"RM5N8FDG,F=D
M*CH  1_AP:I6'C6]FTBXU:>TB>SDNDM=->)7#7;,VW?MY(3/3&20#QT% '9T
M5R)\6:I9S:FEUI,]U#:6#7D%S%9S0)(5ZQ$.#AN^03D=NU:?A_6)=9_TB&[L
M;ZP>(,D]J"I#YY1E).,#'H>O Q0!MU4MM5L+R^N;*VO(IKFTV^?&C9,><X!]
M#P>*Y_Q=>ZK;ZYX=MK&XABANKPK(KH26(C9AD@CY>.GKBLZ.35HO'WB8Z5#:
M/<_8[-BUPS! 0K\8')S^GZ$ [";2--N=2AU*>Q@DO;==L4[Q@N@]CVZG\S5R
MN3MO&OV_2-$G@@,=UJ\+2A?*>80J@&\[4&6^8@#IUSGBM'PUK%_JJ7D>HZ=+
M:RVLYC60PR1QW"=0Z!P"/<<X]: +KZ/I\FJIJCVRF]1=BSY.Y5_NCGI[=*O4
M44 %%%% !1110!!>6=MJ%I+:7D"3V\R[9(Y!E6'N*6TM+:PM8[6T@C@@B&U(
MXU"JH]@*FHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH
M**** "BBB@ HHHH **** "BBB@ HHHH *PO&>C7?B'PM=Z19/"DMR%7?,Q"J
M P;/ .>E;M5[V^M-.MFN;VYBMH%^])*P51]2: ,7Q/H^IZ[I%E;PBTBGBNX;
MF4/*VS]VP;"D+DYQU(%8NL1:CK'C.Y&D/I4LUA9I!/%<S2PR(7RY :/EE(V]
M1@=N<UU5IXBT2_G2"TU:RGFD&Y(XYU+./4#.31J'AW1-6G6?4=(LKR51@//;
MJ[ >F2.E ',MI^K:_I6FVT-GIEF=%U6*1E@G8P2+$ 0(R$X'S;3D<%2.:TQH
M&H2>*M3U*4VRVM_8K:861C(FW=\V-H!^]TSVK6O-1TO0;:!;J>&SA9UAA3&
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
MG4I+58+R^DO@\<C'RU95!#94= O7WKHJK7UQ:6T"R7A78'&P%=Q+]@H&26]
M.: ,;P3I<^GZ/<7%U&T5QJE[-?R1,,&/S&R%/N%"Y'KFL[5?"FMWMYXB$-W8
MFVUFV\J.2<.98,)MV #C:3DYSP23@UU&FZI8ZQ:?:M/N%GBW%"0""K#@@@\@
MCT-6Z .1D\.Z]#>:%J5K+I\EY86KVMS'(76-D;;RI )R"O<#/M51_!.K3^&/
M$&E3WUH9=3OVO()%1@ =Z, P[#Y.V<9ZFNYHH YF;1M:NO%&C:Q.;';8PS1S
M(CN"3)C[N5/3:.N,\]*S)/ ^H7FGZS;W%Q;037>J?VG9S1,S^3(-NT,"HR/E
MZCU/I7<T4 <]_8^HZCK.G:MJL=I%)ID<GD0V\S.KRNH4L6*C  ! &#][.>*9
MX7T75-#T"YL+@6DDK332Q-'*VT^8Q;#97C!/;.:Z2B@#A1X0UY? ^F>&!/9B
M&$[+XI.Z&XB!SL5MA*[LX/'0>]:.K^'=3UO2'L,VFE"V$,FGFU<R>3+&V03E
M%XP%&![UTMQ<0VMN]Q<2I%%&-SNYP%'N:CL;ZUU.RBO;*836\R[HY%SAAZ\T
M 8EK;>,);&=M0O-,BO5A*6ZV@D,1?CYW+<]L8 [GKQANC>&&L/$]QKGV:UL#
M<6HAEMK.0LDK[MWF-E5&1T''<YKH);B*%XTD<!Y6VHO=C[#_ #BH[+4;/41.
M;2=9OLTS02[<_)(OWE_#- &5XET6^U.YTF\T^6W6?3;OSMEQNVNI4J1D<YYJ
M"RT75[3Q1K.K-]CD2_@ABB42,I!C##)&T]2Q[G'O72$[02<\>@S3(+B&ZA6:
M"19(VZ,IR* .&MO!6NV&@Z#]@O;*+6-#\R.-G+M!<1/]Y7X!'0=,XQ[\=;I$
M6JK TNL36[W,A'[NU#"*,#L-W)/4DG';CBM"B@ HHHH **** "BBB@ HHHH
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
ME6.*YA7(N87*J2J[R8V^;!R3TX]1?U;6O$%AKVE:-;1Z=/+J$-PPG=715:,
MC*Y) ^8=R3CMV?JGAW5]>\*W^GZEJ%NM]>*FTP1L((=C!@ "<G)')]^G%+<Z
M+K=UXBT35II;$G3DF695WKO\T*#MX.-H4=3S[4 %IK.LZE?W>E6[6$-YID$7
MVR5HWDC:=UW;4&Y2% '4DGD<<5F-X[U"?2-*N[33[=9[C51IEW!-(W[J7)#;
M2!T^7K[C@UK'0;_3O%-[K6DO;R)J4:+=VUP[(-Z#"NK 'MP1CGUJA<>"[N+3
M-,MK*>W>:VU4:I<RS;E\Z3+$@  X!W8]@!UH N:7KFLRZUK&C7T-BUU9PQSV
M\D.]4=7W8#9R005ZCKZ"JVD^,+G4?#_A^400)J.N,RQH ?+B"AF9B,Y.%7ID
M9)'2KD.C:I#XLU+6E^R-'=VJ0)&9&RI3<02=O?=61#X&U.W\*:+9V]_;P:MH
M4IDM;D*S1R YRK#@@$'!QZ4 =/I,VLM/>P:M;0*L,@%O<P<+<(1G.PLQ4@\'
M)Y[5@>+OMY\8>%8X+F"-'NIBBO"S880OR<.,\$X'&/4UT.D0:LD;S:S<V\ES
M)@>7:JRQ1@9Z;B22<G)^@QQ5#7=&U'4-?T74;5K81Z9+)(RRNP,F]"F!@'&
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
MW$,.R3*E@-V[GGJ",=.G/4Z.M^*3IFLVFG375MIJ75MYD-W=Q,T4DN<>7D,
MN!SR><CIW .GZ5EQ^)M'ETZ^U".]#VNG2-'<R*C'RV4 L,8R< CIFJ7]M7\^
MKV>A1&WAOC8"\O)2I=(QD*%4 C)+;N2> O?-<QI6IZIH?A7QIJ<0M9;VTUBX
MD;<K"-L)'D@9R/IG\: /1XW66-9$.58 @^H-.K ?6KJZU>UT:S:&*X>Q%[/-
M(A<*I.U0J@C))SR3P%[YXQ->U#Q1'8>'UNWM;&YN-9CMIUB0R+*-S,C#YLA3
ML!*YSSU'((!V!U&T75%TPR_Z6T)G$>T\H"%)SC'4CC.:M5SJZWJ$/C==%NOL
MQM/[*:\,J(RMO615/4D!>2<<_6LR7Q;JS>$/^$OMHK9[%2939,C>8T ;&=^[
M ? W8VX[>] ':T5R3Z_K=]XK?1],:P2"32TOH)YHW8J&<J,J&&>G3CKWQ@Z7
MA#6KC7_#D%_=QQQW)>2*98L[-R.R$C/.#MS^- &B-1M#JC:8)?\ 2UA$YCVG
M[A)4'.,=0>,YJU7/+K.I-XXNM"*VP@735NX7VMNW&0IAN>GRGI7/VOC'Q(_A
M;3O$<\>FBWDO?L]S B/O93.8MRL6PI''!!SUR.E 'H-%0W8N3:2BS:)+C:?+
M,JED#=L@$''XUPS^.M3B\,Z-K$K6,33WHM-2C:!R;<[RKD?/P%(&<^H/M0!V
MFIZI9:-827^H7"P6T0R[D$X_ <FK$4B31)+&<HZAE/J#TKD?&-U=W7AGQ6C-
M ;&WLVCCQ&0YDV;FRV[! R.@'.1VY=8ZSK%CKFA:;>BS:SU6U?REB5A)"T:!
MN6)PP(SV'^(!TMIJ-I?3745M+O>TE\F8;2-KX!QR.>".E33S1VT#S3.$C0;F
M8]A7(Q^,KRUT_P 176HP0.VE7PM8$ARHD+! FXG/5G&3V':MF!O$$6K>3>+:
M7&GO;%C/"IC:.4'[NTL=P(YSVQ0!?TW4K35]/BO["836TP)CD (W#..AY[5:
MKS#PGK&L:+X(\*W"BS;3KB>.SDB*L9<2.0'#9P,'^'!X[^GH.MS7-OH=[/9R
MI%<10.\;R)O (&>F1G\Z #4-8T_2I+6.]N5A>\F6"!2"2[L< <"KU>9W<NH3
M>!/!=S<3174\NI:?(F5*9)&<,V6R<]2 /I6\GBF_TF_UVUUS[-,NF62WT<EK
M&T>Y#NRA#,><K@'/.: .NJIJ.IV6DVINM0N%MX%^]*X.U?J>U8-KK>NG5].1
MK3[597:D7)CLI83:-C*G<YPZGH>!Z^U.^)'_ "3S6O\ KV/\Q0!IVVOZ'J=S
M':PW]K-.P\R.)F&YL<[E!Y./45J5YM<L_BO7/#NBQP/ITVC^1J,DUR5#RQ@8
MQ%M)W GJ21CCBNJU379DUPZ-9OY4J6HN))3:27&-S%5 5,?W6))/8>N0 :.I
M:OIVEM;1W]PL1O)EMX5*D^8[' 7@>_TJXJJB!$4*JC  & !7 :UJ&HZEX?\
M#D^K6!LKP>(;1)(]I"MB3AE!Y (YP>16QJ/B+4);O5;71PHETW" /92SB>4H
M'VY0@*,,HSUR2>@Y .IHKDF\2:S!J?AXWMI!966K Q31RQL9;>XVY";MV,,0
M0#CM[U<GU36?L=]=6B6<D278A@:0>6(XPP661R7^8*=_ QG;[T =#17&1>+-
M1>+Q/'$;2XDT:!+BWG\IT296C9\%<^JD9!P00:+7Q)KR77AN:]2Q:SUM K1Q
M(XDB<Q;PVXG!!P>,<>IZT =G17)^$+K5KO6?$7VZ]AFCM]1,*JL!4@"-,;3N
M.!STP<G)S764 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 5B^*M$N->TA;6UND
MMYH[B*=#(F^-RC!MKKD94XK:I"<#)Z4 <O#X5U!]8U6]OM1@DCU:R2WGCBMR
MNTJ''RDL<##]\DGTZ52A\'Z^;70+>XU:QQH<R&(QVS?O$5"@W9;[V".A '/7
MMT"^)]'=6D2Z9X$)#7*0R- ,=<RA=F!W.:T+6Z@OK2*[M95E@F0/'(O1E(R"
M* .=7PWJ=OJ'B![:[M?LVL?.H>-B\;F,(<\X(XSZ]N.M5V\(ZE_8?AS35N[7
M=H=Q%-YA1L3>6I4#';(8^M=A10!S%MX;U'2;S5O[(N[=;3596N&29"6MYF&'
M9<?>!P#M..>]1KX.DL;SPX=,GACM=!CD0)*I+3;UVL<C !ZGZFNKHH P;G1+
MV7QE;Z['/ (H+-[40L#N;<P;=GZ@<50TKPWKFF+J$_VZRFU'47+SWKQ/N'95
M5<\*HZ#-=;10!R2^&-=TS6KZ;0]9M[?3]2F,\\%Q;F1X9&^^T9R!D]<'@>AJ
M76_#%WK%E>Z7.]I<V%S&J0M<JS2VK! I<'^(Y&>HYSSS6]>:C;6,EM'<,X:Z
MF$,6V-FRY!/.!P, \GBK5 $5M +:UBMP[.(D5 SG+-@8R3ZUQ9\$:NW@B;PN
M=1LQ#Y^Z&;RF+;/.\WYAGKG XZ>]=S10!S\VAWMQXOM=<>6V$4-F]K)!AB6#
M$,2#]1TQ5#0_"VO:(!I46N1/H43DQ(8#]I1,Y\K?G&.V<9QTQQCKZ* ,WQ%I
M)UWP[?Z4)1$;N!HA(1D*2.#BL>;P[K5U<Z!=S7=B)M(9F=4C?;)N380.<CC)
MSZGIQ7544 <W?>'=2F\3S:I::C#'!=68M9HYH2[Q@$G,9W #.><Y&0#STK.L
MO!FJVEGX;@.H6DAT.0L#Y++Y@*E O7C@DY]>U==>WD.GV4]Y<%EA@C,CE5+$
M*!D\#D_A4D,J3PI-&24D4,I((.",C@\B@#FD\/:Q!J^N:E:W]M%)JCP/'F-C
MY1B &#S\P8 YZ=:ET_PW+8ZMJ6L0I:6UU?0)$88,^464L?,;@98[O0<#J<YK
M5T[6;#5I;N.RF,C6<ODS HR[7P#CD#/!%7J .,C\#W?_  A-AH+:DD-YI<JS
M65["A^6122"5/LQ!&>]7FT;Q!?Z'?VNK:G:2W5W;/;)Y$+)#&&&"Q!)+-^0X
MP,9.>EHH H:%97&F:'96%S)'+):PI#OC! 8*  <'ITK.GT"[MO%,NOZ5-"'N
MX%AN[><$+)M^XX8<A@..A!'I7044 <C?^"I9_!^I:);W<2W&JSO<75RZ'!=V
M#,0H/3@ #/0#K74VPF%N@N-GF@88QYVD^V:EHH Y9?#6IP7GB$V]W:_9M8RZ
M!XV+QN8PASS@@8S[]..M0MX2U+^QO#FGK=VN[0IHI=Y1L3>6A0#'\.0?>NOH
MH Y*+PQKVF:Q?/HNM00:;J,[7$L,]N9)()&^^8SD#D\\Y ]#74A&BMQ'%\Q1
M<+YC$YP.YZU)56YU&VM+NTM9F<2WC,D($;,"54L<D# X'?% '-Z1X),/A[4]
M#UF2"\MM0N)9R8E*%"YSQG/(/(-%QX3U?4/#$&EW^LHU[8RI-9:C'$0ZNGW2
MZDD,<$@\\YKKJ2@# M]+\03Z9=IJVI6DUW- T$0MX6CA0$8+$$DLW3T Q@8R
M369)X+U%-$T)+'4XK;5M"3RX+CRRT<J%0K*ZYS@@#Z8KLZ* ,W2[*_2UD.LW
M45W<3\2+%&4A5<?=522>YR2<G/I@"AX>\*C0= N-*2\E<RF14FS\T49R(U!_
MV5Q^.?6NAK#;QGX?58V.H#;+)Y4;>3)AW_NJ=O)X/ H Q;+P7K5O%X?635K+
M.ANPC\NT8"2,H4);YOOX/TSDG-3_ /"):D=&\2:<UY:_\3R>68.$;]SYBA2/
M]K 4>E:<WC'0;>WDGDO2$BD2)QY+Y5V^Z"-N1GWK<H Y9O#>J+JFAZA#=VHE
MTZU>UG#1L5=6V_,O/7Y>A]:Z#4(IY[">&W*++(A16DS@9&,\=:LT4 <3%X*U
M.'PAI.@K?6N[3+J.<3F-L2!'W@;<\<]\UKKHNH+XQDU_SK8H]@MIY&&SPS.&
MW?5L8QTJT/$NDMYABN))HXV*O-#;R21*1URZJ5X[\\=ZNV5]:ZE:1W=E.D]O
M)G9(ARK8.,@]^E '+0>!I9O"FHZ!J5W&RWES)<I/ I5HG9]XX)YPWOR.*T5T
M/4+^^TR[UN>VD;2RSQK;J0)92NW>V?NX!/RC/)Z\5T%% '/^'=$U#1/[6,D]
MM-]OO9+R,*K+Y;/CY3Z@8'/%9,?@G48_ ]AX;%];%K.X27SRC8<+)Y@&W/'/
M'6NVI* .<O/#E_>>*'U?[7%!')ICV!5 V]=S;MZMZ@]!BLZR\&:U /#WFZK9
M9T(LD8CM& DC,90DY;[^/PSD\UVM% ',6'AS4M/;7X8[JU:VU2>6XBW(V]'D
M55(;G&!CMU]JK1^"[N'2/#ZPWL*:GX?^6WFV$QRH5VLK#.1N '(/&*["J&I:
MU8:0]HE[,8VO)TMX,1LVZ1C@#(&!^- &3<>&;F];5KZ>: :CJ-E]A3:"8[>+
M#?BQRQ)Z= ..I@;PMJ9LO#< N[7=H;(Q;8V)MJ&,<9^7@Y[\UUE% &=X@TLZ
MWX?O]+$OE&[MWB#D9VDC .*Q9?#&IRG1M2-Y:IJ^E H"L;>3+&RA60\Y[9![
M'M6I%XHT>:QO[U+IC;Z;(T=T_DO^[90"W&,G (Z"M"SNX;^R@O+=BT-Q&LL;
M$8RK#(.#[&@#/TO16M=6OM8NW1[V^"(PC!V11H#M4$\GDDD\9STXJMJ6A:E-
MXJM-;L+^"(1VK6LD5Q"9 %9@V],,,-P!]!6CIVLV&JS7<5E,9'LI?*G!1EVO
MC..0,\'M5^@#A[?P-JEMH6DZ6NI6L@TO4OML;M"PW .[!3@]3O.3[#CO6J-/
MDTKQ/J/B6^O;6&RFM4BD#9'EA"2&+'CG<:Z.F2Q1SQ/#-&LD;C:R.H(8>A!Z
MT <MX:TVPG\3:OX@TZ?SK.Y8+"4;,32%5\Z1,<')5!GU5JV-?OK2WTN[MY[J
M&*:6UF:.-Y &<*IR0#UQD9K1BBCAB6*)%CC085%& H] *CN+&TO'C>ZM89VA
M.Z,R1ABA]1GI0!R%IX;U"\\%>%3;2QVNHZ4D$ZK<(60GR]K(P!!'#?I4X\):
MN;CQ'/)J=J[ZY;)"1Y#*(R(RFX?-T^8\<YP.:Z^B@#F+_P ,7U]\/AX9:ZMU
MF-LEL;@(VW:N!G;GK@=,U/J6CZCJ$;V]P-/N[*>T6&2VN%;:L@+?O%//8CC@
M\#D5T%% ''1^"KW2;O2;_1-2C^U6%BNGSB[0LES$#D=#E2#R.O8?5@\&:J=!
M\1:;)J5JS:W<23;U@91%O"@_Q'/"CCMZFNTHH Y/4?#&K-?Z=K.DZA;6VJVE
MK]DF$T3/#<19S@@$$8/(Q4NK^&]3U'3-/QJ$,NHV6H1WQDEC*Q.R@C:%!)5<
M'CKTYR2373TG6@# _L*^?Q?#K<UQ;O$NGFRDB"$%]S!BPYXY&,<\=ZSK?P9>
MVWAV?PJM]$VC2,P20J?/CA9MQC]#U(#=@>E=C10!ST>@7=OXP;6X)+86XT];
M%+?# @*Q8'=]3C&.E2^$M$NO#VCG3[F>*<B>257C4K]]RQ!!)Z$UN44 8/\
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
MU[TWXL?\D^O?^NUO_P"CDH Z^&59XEE0.%89 ="I_$$ BE=UC1G=@J*,LS'
M ]:YG5M3UI/&ECHUE<VL-O=V<LNYX"S(RE1G[WS=>!Q[YZ5D7.J:KJGPY\41
MWEU']KTQKRTDGBBVB=40\[<_*2&'3IB@#J;'Q)IVH:@MC"TRRRP?:(3)"R+-
M'D#<I(P>H]^16M7&V>J7EC:>&-#CNE:YU6'<)VB'[F*.)68 ="W0 GU)P<8I
MMSXBUC3KS7M'DE@ENK'3CJ%E<O#_ *R/D%74$#(88R, ^E ':45Y_J&N>*[#
MP,/$IU"P?SK:U=8/LARA<J&^;=U.\'ICMCO6E<:AXBM_&$&C&_M'BU"TDFC?
M[,0;9D90<#=\^0W<CGGV(!UU%<=IVO:W/X<U@O-9-?Z9J#V9NIAY4112A,C#
M. 0K$XSC(J.'7M1NKGQ'ID5\Y6SLH[BUNWM]D@W!LY! !'R\''?O0!U=_J,&
MG6HN9A(T9=4'E1F0Y9@!P.V3UJU7GL&JZSHOPQT+4+>]BE>5;-7\Z')"2%%(
M!SUYZD&N@.JW>K>)]2T6QN19IID$32RB,.[R2 E0 >-H5>>YSU&.0#HJ*\_?
MQEK<NBVTL2VD5];ZZNDWRF,E'.\ LAS\H((['K[5M:/J>K1^,;_0M3NH+M%M
M([N&6*#RM@9F4H1DYY7(.: -^>QL[F19+BUAE=1A6DC#$?B:;?\ V46;O>0B
M:%!N9?),O_CH!)_*K--?_5M]#0!S]EXP\,?8[>2VNUM[.9MD,K6TD,+-GH'9
M0O7/>NBKQC3+B;4OA?H'A)K=;2+62T2:A<$&)2LI;: ,G><8 .W/K7H^JZC+
MHYT?1;/S))KO=&),!G"1IEB 2 6Z=?4GG&" :>K:M::)IDVHW[.EO NYV2-G
M('T4'\Z?;VUC(R7T-K"LDJ[Q*(P'.1Z]:XO7KG79/ _BNWUBV988;=OL=RP1
M6G0J<AE4D J>,\ Y'%:CZQ=?:[#1+(2J_P#9JW4LL*([@9"J &..H.3ST'KD
M '545PM_K?BS3?"T>JZA$EH]G>B.] C5C+:[@/.4 G:V#G!ST/%;\][J$M[J
M#Z=+%+%:6H\N-\!'G*E@"_90NPG_ 'QZ4 ;=%<=IGB#4)/$UGI9OH[R*\TYY
MS-Y&$292H/EL,!X_F]3T^]62/%/B9/!Y\22WED5M+XPS6ZVQ_?IY_EGYMWR\
M'CKTY)SP >C9&<9Y]*K:EJ5II%C)?7TC1V\0S(ZQL^T>I"@D#WKF8SJ$GQ6N
M83J#?9XM,CE6$QC"AI""H^NT<]?RK3\<?\B+KO\ V#Y__0#0!J6%_;:G917M
MH[/!,H:-VC9-RD9! 8 X([U9KAAJNK:=H_@NVTZ6V6/4(H8)!+$6(_<;@<@C
MCCICGU%:&B:CK%SJ6OZ)>WT4D^G/"T-W' %RLB;L%,D9&"* -*/Q/I<NHV]D
MDDI-T[QP3>4WE2NF=RA\8R,'ZX.,UKUYMX5U>[T3X;^'MDZ2SZI/%9VHDC^6
M%G=LL<'+8 )QQR .]=$=6U+3/%UMH5U<)<PZE;226EP\0#QR1X+*P7 9<$$8
MP>WO0!T]%<%I&L^+-1\*3:^VH:>GD1W>8#9L0[1LP4YWC'W<8Y]>>SO[>\21
M6?A;4&N[.1-:\J"2 VY 1Y(BX?<#DX(.1P.WO0!W=%<E8:OKD6I^(=)FFMKZ
MYL+>.XM)&C\E6+JV$?DX *]?0U'IGB"_F\3V^D_;TNXKO37G\\085)5903&<
M .GS>_3K0!U-[>PV%C/>3;VB@0NXC0NV!UP!R34L4BRQ)(N=KJ&&X$'!]0>E
M>>:/J6MZ?\,-2UF/44GN87NY5-Q#NY69\G@CDX^@]*Z#^W;J]UK3="MYA!-/
MIOV^YG" L%RJ@(#QDL2<D' '3G@ Z:BO/]4\7ZW8:)XH@#VW]IZ T;"<PDI-
M%(,H=N>&QG/49'3FM=-4UJR\:6&FWUS;W%KJ=M+(D<<)0P/'M.-V3N!#=P.1
MVZ4 =316#XSOM4TKPY/J>E.HDL\2RHT8??$#\^/0A<G\*H?\)++'XZM-/:^1
M]+O;$SPN(P/W@&[:7Z8V9;U_"@#H[[4(=/6!IEE(GF2!/+C9\,QP,X' ]SP*
M@77+%];ET97D^V0V_P!H=#$P&S.,@XPW/IGH:YZ_UK7;#2M"O/M,+?VEJL$,
MBO;X802O\H'. VW&<@\D],5.O_)7I/\ L +_ .E#4 ;FD:U9:Y;27-@[O'%,
M\+%XV0[U.",, >M7ZY3X??\ (.U?_L-7G_HPU:EU6ZU'Q5<Z#97'V1;*U2:>
M8(&<LY.U0#P  ,GCG('% '0TUV"(SD$A1D[02?P Y-<!<^,M<30+EU^RIJ&G
M:NFGW),9V3 NH#KS\N0PZY[UM:;J>KP>-[C0M1NH+N*2P%["\<'E&+]YL*=3
MD=#D\T ;.CZQ9:[IZW]@[/;L[H&9"A)5BIX/(Y!ZU>KS?1[K5]/^%\VH:,Z>
M=:7EU+)$T>_S(Q.^X#T(&2/IBNMMM3DU/5K(:==B2Q-D+F9M@.\.<18/;.')
M_P!T>M %O4];L=(ELXKQY%:]N%MX-L3,&D8\ D# _$]C6A7(_$/S?L_A_P C
M9YO]NVNS?G;GYL9QVJM)XFU?PSK-_8Z]-!J$":;)J-M/!#Y+?(?FC*Y/J,'/
M_P!8 [>BN4M+_P 3MJ6F2_97N+*Z4_;0R1HMOD95HR&R1G@@Y.*M^-=5O=$T
M#^T+&15DCN(4*N@965Y%0_HU '045SLNKW\/CT:0K++:R:6]VL94!A(LBJ!N
M]#D]:H>%_%+ZS<)YVI!+F&%CJ.F3P".6WD&/N#J4'///4<CI0!V-5-3U*UTC
M3I]0O6=+>!"\C)&SE0.IPH)KE;;7O$NI66F:SIME)/!=RJTMJR1JBV[=U?=N
MW@8//!YX%5]9U2_\1^"/$VH6MTEO:0175O%#Y8;S4165V8GD$_-MQC'&<T =
MO:7,=[9PW4))BGC61"1@X(R/YU'9ZA#>RW4<2RAK67R9-\;*"V >"1R.>HJO
MX<_Y%G2O^O*'_P! %<P_B774\/\ BVZ,]H;G1KF1(&^SG846-6QC=G//4D_2
M@#N:*Y"#6-<MO$>@0WMU;3VNM0R9AC@VF!TCW@AL_-GD'@?2M[7[F\M-'FGL
M'MHYE*YDNGVQQJ6 9C]%R<>U &C17$)XSFTZ7Q+]I=[RVTFUBN8'>'RI'WAO
ME/ !&5&" .#WK9C;7[2[M;NYNK:XT]K=WO1LV&%@N5,6.J]00Q)[YH WJ*Y;
M3+[Q#K&G:3K=G-;>1>R+)/9R+@1V[9Y5AR9 ,=>"<\"HH]:U?6]-U?4])N8H
M!87$L-M \099_*ZESU&XY QC QUH ZZFNXC1G()"@D[5)/X <FN(?Q7J^K7'
MA8Z3+;6L&NP3,XFA+M$R1YZ[AN /; SCKS6A8:CJNHZO=Z'_ &A''-I-O#]K
MNHX!F6:0%AA3D!0!D]SG@C% &UH^LV6O:<M_I[L]NSNBLR%"2K%3P>1R#UJ_
M7GGA"[O[/P)9-'<6T ?4YTNYWXV)YLF?+4YRQ;  YZ]#3[GQ=K47A#Q+>P31
M&YT:[:**6>V*F2/"$;DR,-\_7&..E 'H%%<K'JFM67C+3M/OKFWN+75;::1(
MXX2A@>/:?O9.X$-W Z=NE-T[5->U_2+37=)FMA%/<\6<JX4VX<J26Z[\#=Z=
ML'J0#K**XZ\US7=175GT&)S)I]PUO!'Y:,D[H!N#EF!&22!C&.N3G ZB![FY
MTR)Y8S9W,L(+(<.87(Y'H<'^5 #DLK2.X:X2UA69OO2+& Q_'K4KL$1G.<*,
MG R?RKSRY\7ZU:>#WOYKF,:EI^HO:W\26X(95;+%!VQ&-X)XZ^U=0][?W-W?
MR:?>PFVMK5?++Q;U:8J6Y(()&TH<#^_[4 :EA?0ZC80WL(D6*=0RB5"C8/J#
MR*@AUNQN-:GT>-Y/M=O$)9%:)E 4G ()&#T[9KB;O5=7UCPOX,U!K_R)-0U"
M!9UCC&UR=S X] 5'%7Y8-2E^)-Y#97L5O.=%@#W+P[SGS9.0F0.3ZGCT] #M
MZ*P_!FL7.O\ A2RU*\5!<2;TE\L84LCLA('OMS^-8WBOQ%JVC0:Q=1W4$9L4
M22UMHX_-\U, LTV!E 3D Y7IWH [6BN1O-6U^Z\8QZ+I]W:6T%QI1NUDDMR[
M1-YBKTW -UX' YSSC!R&\8>(X-#NDE^QG4]-U>.PN&\L[)T=E"LO/R$AN>#]
M* /0W8(C,<D*,G )/Y#K63!XHTRZT*;6K=IY;.%G5BL#[R5;:<)C=U]JRK75
M=>TOQM;:+K%S;7MMJ<$DMM+! 8C$Z8+(1N.1@]<YK"L=4U#1/A9JVIZ9)"EQ
M;7UTX\V,N"//8'C(YY]_I0!Z2#D COZBH[BVM[N/R[F".9,YVR(&'Y&L2;5;
MJ^\1#0K2X%J8K%;J><(&;+,555!X'W222#V'O4+WGB&UT[3%U6>RM99)72]G
M@^9B #Y?E(0<LQ"\8..<#T -35-7T[P[9Q276Z&%Y%AC$4+, S' 'RC"\GOB
MM%F"J6.< 9X&3^5>::SK-[K/@&Z:YV//9ZXEJKE#'Y@2X0*67^$D8R/TKH(-
M4U[2?&=EI&KW-K?6NK12O;R0P&)H9(P&92-QRN#P2<T ;NCZS9:[9M=V#N\*
MRO$2\90[E.#P0#U]:OUY[X?UB31_"\Y@CWW%YX@GM801D!FF;G&1G !.,C)P
M*Z+1KGQ!_;EU:W]M))IODB2WNY5C1P^<-&P0\^H.!W% '04444 %%%% !111
M0 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%%
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
M(3GMGD\@\UUM% '*R>$M2MM=O+_1/$#Z=;:@XDN[8VRRCS,8+H2?E) ]#^/
MKIH(5M[>.!"Q6- B[CDX QR>]244 82^%+'_ (2'4M5D)D74;=89+<_<S@JS
M?5E"C\#ZT_1O#O\ 8?A9-%MKHNZ1%/M$J;B2>,D9&<#  ST K:HH Y,>"9T\
M+Z/H\>JJL^CW,<]O<_9LABF0 R;N>&/0BKMOX>O8/%$VN'5(Y6ELTM?+>VZ!
M22&R&'.22>!^%;]% &-X5T*7PWH<>ER7BW:Q22,DBP^6?G<N01N.>6/X5DZC
MX'NKW^WH(];,-GK?SR1&V#/&^T+PY/*_*/EP#Z$5U]% '!>7=V_Q0L+2+48&
MNH= 8.\L7$G[Y>-H88Z9')^[WZU%XRTJ+1?";;KQ?M=_K%O/-<,H4-(9%Y"Y
MX5548&3P.O>N]^RVYE\[R(_,SG?L&?SI9;>&?'G0QR;>F]0<?G0!E1:+--K,
M>L7]U#/<6\#0VJQ0E$CWX+-@L22=H'48 _&LG_A![D^#+_PVVKQE;V9Y#.+0
M@J'?>PV[_7H<UURJ%4*H 4#  Z"EH YC5/"E]<ZI9ZSIFLKI^J06_P!FFD^S
M>9%/'G."A;C!Y'-+>>%;V:ZTF_M]:9+[3VE9YIK<2+/Y@ ;*@KMP  ,'@<<U
MTU% ''GP'(VD:GI\FM2.+W4/M\<A@7,4F\/\P!^;E>VVM>#1)Y=6AU;4[J&X
MN[:%HK810E(XMV-[8+$DG '7H,>];-% '(+X#W^&[K2+G5"7DO6OK>Z@A\M[
M>4OO! W'.#]./SK7T32]5LV,VLZS_:<X3RT*6X@15R"3M!.6.!S[< <YV**
M"BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH *
M*** "BBB@ HHHH **** "BBB@ HHHH *Y_Q[_P B%KG_ %XR_P#H)KH*S?$&
MDMKNA7>E"X^SB[C,32;-Y"GK@9'- &3+=WD,6D6Z7RVEK+99/DH)+F20*NT*
MA5OE ))./3I6/'XJUF3P)H_B:2X6-%NA'J:I$N##YIC9QG.", ^G)K;;PI=#
M5;#4X-9:WN+:R^Q3;+=2LL>0> Q.UL@<\_2I-(\(PZ=X5G\.7%W)>6DPE0;T
M52J2%B1QU/S'G^5 &>GB6>T\7ZSIU]?.]G#9_:+0K$HY4 RJ#CYF&Y,?4@Y(
MKIM+2]CTRW749A-=^6#,P4 ;CU  [#I6+_PA-B;;08GFD=]&E\T2G[TY(.[=
MS_$V&/TQ6S<6MW+J5G<0W[0V\._S[81JPN,C"Y8\KM//'6@"Y1110 4444 %
M%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 44
M44 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !111
M0 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%%
M!1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %
M%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 44
M44 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !111
M0 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%%
M!1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %
M%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 44
M44 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !111
M0 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%%
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
MW8BV>0QK*9UVEAU'U&1^=6[G6=+LY(XKG4;6%Y4+QK),H+*%+%AST !.>G%
M%VBL^TU_1[_3Y-1M-3M9K2+/F3K*-B8Z[CV_&EBUS2IX[ATU"WVVN#.6D"^4
M#T+9Z ]B>M %^BLR#Q+H=S=P6D&K6<EQ<IYD,2S*6D7&<@=^.:FM=8TV^GG@
MM+^WGEMCB9(Y QC/^T!T_&@"[14%G>VNH6XN+.XCN(6) DC8,I(X/(JO)KFE
M17@M)-0MUG,@B"%Q_K",A/\ >([=: +]%8L7BK3)O$T^@I.GVF"-68EL98D_
M(/4@#)^M3^(+J*UT>9I-8CT<M@+=R;#L.>P;@D\C% &G16+=^*=,LO$=MH4M
MPBW,T32DLV @!  /N<\#V^E73K.FB\6T-[#Y[/Y:INY9^I4>I [=: +M%%%
M!1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %
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
M%&TMK&^&FV^9N7CG[I'/8&J^G:K8S>,_"UPFI6TT<NGSQ(MN,11'$>(E/))
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
MV/QKTSRH^?W:<]?E%8.M:#=ZAXCT74(!:BVTQIFDBD)S+YB;". 0, D]\^U
M'(:N;'3=1\6:HEE%<Z3+]CCE7)$)N _+DKV3*EL=^/6K-IJ=DWC?6GDU6&[6
MYT1&68!5CDP9-VS'!4=,Y/IG->B+#$L7E+&@CQC8%&,>F*/*CQCRUZ;>G;TH
M \L@N-.A\!> I%FMXRFIVNY@RC!PV_/]:W_$"WWA_P 5)J6E0EUU^(64NT9$
M=R ?)E/MC<#[**[3R8L8\M,?[HK(MM+U236FO-5OK>:VMY':Q@AA*%-P(!<D
MG<P4D#&/O$^F #2L;.+3[""R@!$5O&L:9ZX QS[UY;KFLZ=<Z+?F&:&P^SZ\
MCS62\R BX7?-*3DJ">1C &0,GI7K5,\J,ECY:Y?&[CKCUH X^QOK6+XI:@))
MU0WNFVQME;@R@,^=HZG&>?2I?BH\2?#G5?,91E8PN[N?,7I[UUNU2P;:-P&
M<<TC*KC#*&'N,T <?JE]:VOQ,T6ZFN(TAGTV>.&0MQ(Y="%7U)'0#K69:W,^
MEZM:MIM[!JVC7VK-&UE*!]HL9F=B[*1U4-N)![?7->A[$^7Y1\OW>.E-6WA2
M4RK"@D(P7"C./K0!)1110 4444 %%%% !1110 4444 %%%% !1110 4444 %
M%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %5-1U2PTFV^TZ
MC>0VL.<;Y7"@GT'J?:K=<E\4=O\ PKO5"PRH\G/&?^6R4 ;-GXFT._O;BRM-
M5M9KBU!,T:R#* =3]!W/:H8_%_AR=UBBURS+2*[(1*,%4SN;/3 P>?8UB:C'
M8ZAXX\-W>DR0,+"*=[F6!AMC@,>%5B. "QX!]&(Z&H_AW<::?"M]+YMMB*^N
MGE;<OR!G;!/IE<?A0!NZ?K>EV6C:<;GQ!%=_:2(X+J5E5KELXX QG\!5S3-=
MTK63.--OX;HV[!91&V=A/3/L>Q[UYE:7=@/AIX(2XN(-J:M;^8'<84!WW9ST
M !YSZUJZVYO?%/BRRTNX0WUSH2)$D;C=(X\S('O@CZ9% ';V^OZ3=7:VL-_$
M\SH7C7.!(HZE2>& [D9JE9Z]I%GI]]J%QXC@NK1;MQY\CH$A/!\I2/O8[=3S
M6;X=\0^'/$*Z1]E@674;*+'E&(A[#Y-K[B1\O3;[\?AR=]<6\_PW\>+#+')_
MQ-[A\*P/!D3!^A]: /2;/Q'HNH:G-IEGJ=M/>09\R%'!9<<'ZX/7'2G)K^DR
MWB6B7T1ED=HX^NUW7[RJW0L,'(!R,5S6IQ6.J>+O"\^BF&1[(RR2O;XQ%;^6
M1M..@)( !]_0US)UNQO--\,W,4B6<=OKR&73H8CML@3+Q(<9WDGU .3@<9H
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
M4M5=,@2VTJTMXH7ACB@1%BD;<R * %)[D=,U:H **** "BBB@ HHHH ****
M"BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH *
MP_&&B77B/P[/I-K/% 9V0M+("VT*X;@#KG;BMRJ6J:O8:+:?:]1N!;P;@OF%
M20">F<#B@"S"K+&-Z(KGEPG3-250&MZ>=572O/87K1^:(3$X.S^]TZ=L^O'6
ML_5-<TF:S3.MOI_^FK"'0;6>16&8P&7G/0X% &_16%/XHM$\5KX< F69K4S-
M*(F(4EE50#@@]22>@P*Q?"OBZUM].DAUW6=]TVI3V\;S=2!(53.T84'&!G H
M [8*H)( !/7 ZUB^,-$N?$GAF[T>VFB@:Z 5I9 2% 8'H.O3%;$LJ00O*^=J
M*6.%+' ]AR:X+6_&$FK_  ZN=<T>YN;&6*=0,1[2R&X\L9++W7GY3D&@#NX%
M=8AYJQK*>7\OH34F!Z5G6/B'2=3OYK"ROHYKF!=[QKG[N<;AV89XR,BD;Q%I
M*7L5H]X%DFE,,;%&$;R#J@?&TMP1C.<B@#3K \0Z)>ZMJ6D7-M- D>FW/VAD
MD!)D.TKCCIP3SS5OQ+KL'AKP]>:Q<*72V3(0'&]B0%7\20*JZ;I^L76G176H
M:Q<0WLR!VCMTC$4)(SM"E22!TR22?:@#=50JA5  '0"C&>M9-E>S:9H]O_;U
MRK7C2-&61#F9MS8V(N2<J,X&3CZ4_P#X231O[-GU%M0BCMK9BDSR90Q,.JLI
MP0WL1F@#3H55484 #T K'7Q=X?:Z6V_M2 2O$95#$J&4#)P2,$@=1G(IT/BO
M0I].N=074X5MK5RD[R93RV]"& (/X<T :P55)( &3DX'6EK'M/%N@7^J+IEK
MJD$MXR[UB!.6&,G!Q@D=P.1S4K^(](2[6V:]4.T_V8-M;9YO_//?C;N_V<YH
M TE547:JA0.P&*6L:[\7>'[&6ZBN-4A62SQYZ+EBF<XX /H>G3'-2R>)-'B-
MB&O5/]H@&T*JS";/]T@<T :;*KJ58 @]B**KC4+9M1;3Q(?M*QB4IL;A2< Y
MQCJ#W[&B]U"UT]4-S+M,K;8T52SR-C.%4 EC@$\#H* )PJKC:H&!@8'2E"J"
M2% )ZG'6LL^)M%72I=4?484M(6*2NY*F-QU5E/(;V(S4VFZYIFKS7,.GWD=P
M]J5$P3/R%AD?R/Y4 7Z*9))'#$TLKJB("S,QP /4FL+3=?T:RT"SN9?$'VRW
MN9FC@NYV&Z9C(1@8 S@\=.@H W]J[MV!NQC..:-J[@VT9'0XK.TWQ!I.L7-Q
M;:??1SS6V/-1<@@'H>>H/J.*MW=Y;V,(EN)-BE@JC!)9CT  Y)]AS0!-M4L&
MVC(Z'%+6#?>(-&NO#]]<#6_L,,6Z&6X'R26[^FUAD-[$9IM[XKLM,U72M)8S
MS/?1L_F^2Q&Q4SG@<DDKP.F><<4 ;^ .U+7$Z=XI@TC6_$D>NZPQ@MKN-(/-
M&2BF-6/"#H"W7'IDUU=SJEE:PQ2R3;EF&8A$K2-(,9RJJ"6XYX% %HJK8R <
M'(R.E   P!@5DGQ7H"V=K=MJML(;N7RH6+8WOG&,=00>N>G?%6]+U:PUFS^U
MZ=<K<0;V3>H(^93@CF@"V54L&*C(Z''2EK,N?$6DV=SY%Q>+&WFB$N5;RUD/
M1&?&U6.1P2#R*+WQ'I&G2RQW=XL9@VB9MC,L.[[N]@,)G_:(H TL9ZT52OM9
ML-.9EN9BI2/S7"1L^Q.?F;:#M'!Y.!P?2BYUBQM88I9)F(F3S(UCC:1V7 )8
M*H)P,C)QQD4 7J*KV-_::G917MC<1W%O*,I)&<AJDGGBM8)+B>5(HHE+N[G"
MJ!R23V% #U55SM4#)R<#J:-J[MV!NQC..:S;?Q#I=U)+%#<,98H1.8VA=7,9
MZ.JD L/<9J'PQXDMO$^E_;K9)$4NX"O&R_*'95.2,9(7) Z9Q0!LT50O];T_
M3#(+N<KY4?FR;8V?RTY^9MH.T<'DXZ'TI4UFPDU!]/6<FZ2'SS%L;<8\XW#C
MD9XXH O4F .@JA!KNEW&FMJ,5XAM5<QF0Y&&!V[<'G.>,=<\5B^)O$$<_A#7
M)]'U&2"]TZ!F<"/9+$VW(#*ZY ([X'L: .JI&4,"K $'J#6+HWB32[U[;35U
M!)=0^SK(T?.6P!NP>A(/7!XK6N+B"TMY+BYE2&&)2SR.V%4#N30!(0",$<>E
M 55Z #MP*S[;7M-NYY;>*X83Q1^:T,D3QR;/[P5@"1[@$5R6N^,&U;X?:QJF
MC7-U8SVA<1N(BI(5]O)9>,\G Y'M0!WI (((R#VH "@!0 !T K+T_P 1:3?W
MS:;;W\<MY''O>,9R1T)!Z-@\'&<4Y_$6DQ7D=I)>!9)93#&Q1A&\@_@#XVEN
M"-N<YH TZ0JK8W '!R,BL:7Q?X>AO&M'U:W$ZS) 4!)(D;[J\?Y'&:T[R]MM
M/M7NKR9(88\;G<\#)P!]22!B@"8  8 Q0JA0%4  =@*IV.KV&HR7$5M/F6U(
M$\3HT;QY&1N5@" 1R#CFN8\0>)5DUGPY'I>IS".ZU!8Y(UC(CN(]K$LK%?F
M('W3CD>HH [2DQFN>\6:];V&B:HD.H26]Y;VS.'ACW^2VTE-QVE5R<?>QUXJ
M/3/%>EV7A_1_[7U2)+NXT^.=A(V7?]V"S''^2: .E(# @@$'J#0  , 8 K+?
MQ+I"64-[]K\R":'ST:*)Y#Y?]\A02%]R *E?7=,6&&9;H3)/'YL9@1I=R<?-
M\H/R\CGIS0!?(# @@$'J#1@ 8QQZ50;7-.6WMYQ<&1+J'SXO*C=RT> =^%!(
M7YAR1W%6K6Z@O;2&[MI!)!/&LD;CHRL,@_D: )%55^ZH'&.!3JS&\1Z0MVMJ
MUZH=Y_LRMM;89?\ GGOQMW?[.<T^ZUW3;.9HI[@AD=4<K&[*C-C:K, 0I.1P
M3W'K0!>95<890PZ\BG4G3DUFP>(](N;J&VBO%+W&?()1E2;'78Y&U_\ @)-
M&G16)=>,O#EG]I\_5H!]E8),%RVP_@#T[^G>M";5+*"VAN&G#1SX\GRU,AER
M,C:%!+<<\#IS0!:*JV,@'!R,CI2U4T[4[+5K7[387"SQ;BA*Y!5AU4@\@CT/
M-4;_ ,7>'],EN(KS58(Y+7'G("69,YP,#//!XZ\4 :[HLBE74,IZ@C(I54*H
M50 !T %9XU_2FT^VOTO8Y+>[(6W>/+F4G/"@9)/!X SP?2H9/%.APZ5)JDNI
M11VD4AB=WRI1P<%"I&0WMC- &O28 [5S.H^/]$M'ABMK@W<DE\EFPBC9A&QY
M)) _NY(QG/;OC6M=>TR]U%].@N"UW'&)'A,3JRJ>A.1P#F@#1HJM9:A;:@LK
M6LA<0R&)\HRX8=1R!TJA<^+-!M);N*74X?,LMOVA$R[1YS@8 //RG@=,<T :
MX50Q8 9/4XZT;5+!L#(Z'%9"^+= :XM(%U2!GO=OD;22KEAE1NZ D= 2":EO
MO$6DZ;++'=W@C, 4S$(S+"&^Z78 A,_[6* -.DP/2J)UO3EU=-)-S_IKIYBP
M[&R4_O XQCWJ:VU"UN[FYMX)"TMJX292C#8Q&0,D>A!X[$'O0!9HJA?:UI^F
MLZW4Y4QQ^;)LC9_+3GYFV@[1P>3CH?2B/6M/EOS8)<9NA!]H\K8VXQY W#CD
M9(''>@"_2,H8%6 (/4&N.\5^(1)H=EJ.C:J\<2ZI#;S% %# R!75MPR,>V*W
M=+\3Z)K5Q/;Z=J4-Q+;#,J*2"H]>>H]QQ0!JTF!G-4+37-.OKI+:WG9I)(C-
M&#$ZB2,$ LI( 8?,O()ZBF)XBTF2^BLEO!YTY80[D8),1U".1M8CT!- &D55
M@ 0#CGD4  #  Q69?>)-(TTR_:[P1K 0)I!&S)$3R [ $*>1P2.H]:ECUK3I
M;Y;%+C-R\'VA(]C O'Q\PXY'(Z4 7555^ZH'&.!3JS[?7=,NK&:]AO$,$$AB
MD<@KL<'!4@C.<D#'7/%0CQ1HOD7<SWZ0K98^TK.K1/%D9&Y6 (SVXY[4 :H5
M5S@ 9.3@=: J@DA0,]<#K65:>*-#OM0BT^VU&*2YFC\R.,9^=<9.#C!('4=1
MWK/M?%4&O6^MP6+W%M+8O)$DODD'*HI+?,I ^9B,'G SB@#I0J@D@ $]<#K1
M7+>&O$UO'X4T"36+UC>:C FQG1F,SD=!@=?:NA_M"V_M'^S_ ##]I\OS=FQO
MNYQG.,=?>@"PJJBA54*!T &*6N;\9^(6T.QM8X7=)KV\AMQ(L9;8C. S#@C.
M,X'KV-2:+=VUOJ%W9#6+J\9T%U#;7,3>9#%T."1EUW=.XZ4 =!160?%6A+8Q
MWK:G"L$LWD(S9!:3."N",Y!_*HHO&OAJ9D6/6;8L\CQJ-V,L@RWX =^E &Y2
M%5)!(!(Z''2L<>(]%U'1;V\M]72*V@WQ37 .PP-CN&'!&01D5)::I8VVD:<Y
MOI;Q;B!##+Y;/+<+M!W[5&>003QQF@#5HKC_ !!KVR_\-7UEJK1Z==7C)..%
MC= CG))&1@KZXKH=*UO3=;CEDTZZ6<0OY<@ *E&]"" 10!?HHHH **** "BB
MB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ****
M "BBB@ JAKNDPZ[H=[I<_"74+1Y_NDC@_@<'\*OT4 >7FYUY[#1_&$MG,UYI
MDBZ?/:C[TZDF*5OQEVX'^QGO6QXTMUTSP?IMK+*K2KJ%L\C?WV\T/(^/J68_
M6NXHH XZ[NH;+XJVUS.66"YT4PPR!25=_.#8!'MS].:Y6::W?X3>(E1E,DNI
MRNJ ?,V;@,IQU/ R/85ZW10 R*6.>)98G62-P&5E.0P]0:\E>ZA7X)SZ7('%
MW!=>7+"T; JWVO=MY')V\_2O7:* .,N[BW;XGZ<8)X@7TB:-74@C)="H_($@
M>U87ARXT*\TBQ\.:Q9W[ZY82*K6#RW&/-0\2@@[0O\6[IU]L^H44 <YX_P!
MG\2^"]0TRUQ]H=5>($XW,K!@/QQC\:71_&>D7MC"+J[CLK\(%FL;@[)D?'*A
M#R>>F <UT5% '%Z]=36GB[P[KE[&\.EJEQ#(\G2V=P-CO_=! QD],X.*RM7B
M67_A.M7MG4Z?>:8L$;J<K<3B-AE?[V,JN1WX[5Z310!Y]>3V9N? )\R+;&V3
MR,(/(*\^GS8'UJIJD\+3_$I5D0^981E #][;;D,1ZX. ?2O3*S/$6ES:UX?O
M=+@N$MVO(6A,K)OVJPP>,CG'O0!R$Z6>MVG@N#27BENK*Y@GD\K&;>%8SY@;
M'W<G:N#C)^E9&K:M#>:2S!'LWM-?C>:PAMR!"!/S)(VW)9OO9R!S@ XS7IVE
MVLMCI=M:32)(\$2QET4J&P,9P2<=/6K= '$:7>67_"P_$LTDL:*]E:X,GRY
M5]PY],KD=N,UGZ%I4NM?![3([-P-3T]1/:D]8YXV)53Z9''/9J]'K)UK2]2U
M-X([36&L+3#+=1I K/,IQ]US]PCGD9Z^U %?PG-+JFGGQ!<0-!+J@1TB;K'$
M!A%_5G_X&:S?$$SZ7X^T75KT[=*^S36S3-]RWE8J0S'^$,%VYKK8HD@B2*)
MD<:A54#@ =!3Z /,-<A#V7CS5(&!L+^VBBMV4_+<2K&0S)Z\D#(ZD'TKL3XA
MT;1/#FGWUU<I%:3"*".2-"RY*\#Y1P!@]>F*WJKWMG'?VYMYBWDOQ(@QB1>Z
MGV/>@"9W6-&=V"JHRS,< "O)H)[8?";2(I&3*ZPI>-NH7[6S'(]-IS]#7K=%
M ''QW5LWQ;)2:-A)HBH&5@0S><6QGN=O./3FCQW.VG7FAZO<1W+Z99W$@O#;
M%PT0="JR?(<X!SG'8^]=A10!YUK#:#<>"?%&I:)%,RW]J%>[D>4_:I I "B0
MY. 0,CKG';BUJ-W#!XB\$ZB[,;46US&940N-[1Q[5X!Y)4@#VKNZ* /.X;BT
M:?XA,9(_WHP"<?.!;[>/4;LCZU1M]2M])C\*ZKJK7(TEM#2SDN+=Y +:<;"0
M^PY&=N/JOM7J5% 'FFMKH=OH^DRZ;;M!97'B2"Z9IV<F89^>7#\A?<\<9[UZ
M2I4J&0@J>01T-.HH \Y\.ZQI]MIESX3UZR:XU:*\F;[)+;E_M9:4R)(#@C&2
M/F/3&353Q=J,=W9^,=/6-[.X1 1;PVY+W8"+^]=L'Y>,#&,;>2<UZC10!YUK
M-S$]R-5T;7!IVJ1:;&6@NT_<7\0WE5*M@YSNY'/S#UI+S58])\0Z;JGB*VNM
M.T^^TB&)6A>55M)PQ9HVV'(R& Y_N^U>C44 <MI>J>'/#FG64,$<UA:ZG=LM
MH)5E8RNQ^\=V2H)Z9QU![UH>+[G['X2U.X_L\:B$MVS:L,B0=#D>G<^PK1NK
M..\$:S,QC1PYC&,.005SWX(!_GFK% 'GNDW\$_Q'TZ[CO9KV*YT:2*.<6Y2,
MMYJ':@"\ #U)QW-:?PRG0>$(M/8.MS9S3I/&R%?+8S.0#D=<$'\:Z^B@#@?%
MK?9M9O\ 4-)UE+'5(+51-8W2AX-0C 8JNWKNY8?+SR!WJ235(].\>Z7J.K1-
M8)>Z%Y*J5+ 3>8K&(8'+ =N]=U10!Y-;7DUOX<MM42VN)+;3?$D]Q>Q")MRQ
M%Y!OQCG;N!P.GX5N^(]6T75_!GB+4-)B607-D8GO1"4-P^"%0$@%\9_#./7'
M>44 <%<W-HOB+P&T<L0C2&=25(PH, 4 ^F6&![\5J?$."\E\,K+9PO.+6\@N
M)X(QEI8D<,P [] <>U=310!QMW+;^(?&WAO4-&N([F*R2X>ZGA;*K&Z!51CZ
MEOX3R,$]JYFYNXH_A1XCTQPZW<5U<(T1C8$%IR5'3DD'/TR>U>L44 <1?W-J
M?'WA8P3Q!/L5R@9"-HW!-@_'!P/:L7P[/H=UH]KX:URTOY-<LI0K6+2W&'D5
MOEE!!VA?XMW0<_CZC10!QOAN:V?XB>+</&7D:U*'C+A8@&QZX/!]#6AXXOTT
M[P\+B2SCN8_M,(9I8S(D WC]Z5')"]<>N*Z*B@#RN\-Q?7WC&WTN>ZN[F_TF
M V\K0E3. )-VW"@8(. >AR.M6M1\1Z3JMOX.>R<EK?4H1-"L3%[?$3@JP X(
M/;OC(X%>E44 >91:M!INC>,]$U=S#J4TUY/&CH<W,;H=C)Q\PP,<= .:?9W5
MJVJ?#HR,%\G3Y4?S%V^6QAC49STR00/7M7I5% ' :IJ-AH/CK4#XA:ZM['4;
M> 6=S$\JQY0,&C/EGKDY /J?6H+FPTZQ%A_8&I/X9O+6T9K1+PEH9X6D8['#
MG.<C=C[R[NG''HU% 'G4\TE];:/J"ZBOA?7DTU61)0!;R(3S$RMVRH('4 ]\
M<=AX8NKF]\,Z=<W=D+*:2!2UNH("<8  /(&.W:M6B@#R;4]6@O=*C<(]D]IK
M\;S:?#;D+;@3\R2-MR6;[V<@<X XS6CK5R]EJFHZGX?U$27#SQB\T*[3(NV(
M0!HP?F5BNWD<97GI7I%% &5XHM+R^\+:I:6!(NIK21(L'!+%2 ,]L]*XZ\N(
M/$?A#P_INFD+JD%S:$VXXELVCQYA=>JA0&&3UR,=17HU% 'G\-Q9_P!M^/R9
M(AYD46TDCYP+<*<>N&X^IK,@OX=+TOP;JVH&Y;28=,-G<RV[N#:RE8\%]AR!
M\A4^E>IT4 8/A6+2/(N[S1+>9+:\G,K3RM(?M#D#+@.<X[9[X/U./'?:?8_%
M35WOIX(-VF6X229@H^\^1D_AQWQ[5VU85IH5W;>,+[7'O(GBNX(X?($1#($R
M0=V[GJ>U '%Z<P\.Z9I@N+46EI>ZS=36MW+ 6-A"P;R\+CY6<<#/ W<@U1U"
M>(>!/&]F3.TTNJF1!-$RO(&\G!Q@<G!.,=CQ7K]% '&^-Y[<6'AW4(2K6<&L
MVTSRQ#<J1[7&[CMR!1XM-SIE]IGB_2K9[B5 +2X@ VM-#*0$&#R"LA7C_:-=
ME6,^CW]SKIN[S5?-TZ-UDM[!8%78X&,L_5AG+ <<X]* +NDV/]FZ7!:L_F2(
MN99/^>DA.YV_%B3^-<SI5S:1_$?Q.\LL2C[-:C<Q !VA]XS[9&?PKLJ* /);
M>:WB^#_A^/<B21ZA 63HRE9\L2.HP.3[5<\5:G#>0^+[!$:UF^S!DC@@+/?#
MRAB5FP<H. ,8QCD\XKTZB@#A]>W+X<T;Q;IR/)/HZ+*RA2K36Y 65<'V^8?[
MN173:%:RVVF*]TNV[N6-Q<#T=^2O_ 1A1[**@O\ 1[_4-61Y=5VZ4H0O8+ N
M9'5MP)DZ[<XRN.<8[FMF@#@O%K"WUN\O]*UI-/U:WM%\VTN@&@OXQN*KM/.[
M)897GD>M#ZE'IWCK1M3U:(Z?'>:"8%0J2%F,B.8N!U SQWQ7>T4 >2AA<>"+
MMO(F*0^)S-,&A;Y8_M&23QT Z^E='J"V>K^,;?6+#9=65EIEPM[<0,"LH8#9
M$&'!/#'';CU%=O10!YQI U""X71](U=-:TZXTZ<6D[@?:-..T;4=AV)P,'!R
MO^S2>&KSP[JUGHVEW5G?MK6F/#NLI9)Q]FECP#)R=H4#)'8].IQ7I%% 'DYU
MJ"U^'?B/P]J/FIK<(O&GC:)B9=[LPE!Q@K@CGV^E;<U[;Z1XP\.7]^YAM9M'
M>W24J2IDS&P7CN0#CUKJ?$FDS:[X>O=*AN$MVNXC$963?M!Z\9'/XU;T^WEM
M-.M[:9UD>&-4+HI4-@8SC)Q^= 'E\<\Q\/ZE>PVMW+%9>*YKNZAC1TD,&\Y(
MQ@Y!(. >-O:M>]N?#6IZ!X@U?15GN'ETB:WDO97F(;*G;$!(?F;/IR.!WKT*
MB@#SN2ZLU;X?,LT06/AB"/D'V<KSZ?-Q]>*LZ'=PV<OC.SN2T4YOY[C:Z$#R
MVB0*V<8P2#BN[HH X'2](;7OA'I=M:.$O[2WCEM7[Q7$?*Y].>#[$UN^$;B?
M5[!O$-W;M;S:BB;86ZQQJ, ?BQ=OHXJYK6FZGJ+6Z6.L-IT W"Y5(%=Y5('W
M6/W".>>>OM6C!!%;6\=O"@2*) B*.BJ!@"@#E/B)/%#9Z+YDBJ5UFUD()Z*K
MY9OH!U-1:CJ-II?Q,M+Z\E\NUN]':""4*6623S0VP8SDXY [UVE% 'D;W5N_
M@&:.964_\)&7:.6,C*_:=QX/7"YSCI75^*;BT_X2OPC(TL1C^U2R;L@C!A8*
MV?0DC!]:[&B@#ST75J-1^(0\Z,"2%"@S]_%L%./7YN.._%1*EK<>&?"'E:XV
MC:I!IG^C71P8@52(212!N#D[>#S\I]*]'HH \UFU*6^C\&3ZK!!;7']IRR2B
M,8C8 2 2C/16)##/]ZMOP[/"WQ$\6(LBGS/LA4 _>VQD-CUP< ^E=?10 444
M4 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110
M 4444 %%%% !1110 5C^*O$$?ACP]=:K)#),8EPB(A8%CP-Q'W1GJ3_/%;%<
MQ\2+>:Z^'^K16\3RR&)2$1<D@.I/'T!H V)=:L8(H))7F0W!(BB-O)YKXZXC
MV[N.O2I--U2RU:V-Q8SB9%<QOP59&'564X*D>A -<I=Z@L/CO2_$4GF?V-=:
M=):+.\;*L,AD#AFR,J&"@ G XJYX5LY/^$E\2ZO$"MAJ$\/V;C D*1X>0>Q8
MXSWVYH NWOBB"T\56N@F"X:2:!YFD6W=E !4  @'/7D]!CGK6%H7BRUTE]?7
M7M7F<0:Q)%&\JLYCCVIC.Q<(N2>2 ,U<UB3[%\2M'NYHIC!)83P*Z1,X,A="
M%X'' /6L 2PR>%/B @Y>XO+DPKCF4&)54K_>!8'!% 'H%YJUG8;/.D=FD4NJ
M0Q/*[*,98*@)QR.<8Y'K4FGZC9ZM8Q7UA<)<6TPRDB=#V_ YXQ7G\VH6^E:U
MIFJ:H+[^R;S2(;=;JU:8""9&8E7$9SSN[]Q[&NR\,VUA;:2/[,L9+.TED:2-
M)=P=\G[Y#<KD\X/.,=,XH DOO$6EZ;),ES<,#;J&G,<+R"$'H7*@A..><<<]
M*IZIXLM-.U;1[%8YK@:F799887D7RUC9LJ5!W$D+P,\$DXK&T2[CT+4/$^GZ
MZ"K75_+>6Y=21=0NH 1/[S +MVCGIQ638:?>^&[3P =4BF_T)KE;@I&TAB,D
M3;$(4$YY"_A0!KVGB:'1O%?BA-8U2=K6V-LT",C2&-6C+-A47( )Y...,FNJ
MDUBPCM;>Z\_S([H!H/)1I&E!&<JJ@D\<\#I7(65S;_\ "3^.)9"%26" (6&-
M^V$JP'K@G!QWK%L[D:7I?A'5;Z*]?3(-->RNFMC(KVDAV$,P0AL?)@__ *J
M.\;QAX?2PBOGU*-()9_LX+*P(ES@HRD94@GG(&.]7=+UBPUJV>XT^?SHHY&B
M9BC+AEZC# &N"U]=('AJ.XTNRGBM[O6;>X9Y1(7N<.I>7:_S8QW/7&>F"?2$
M=9$5T8,K %2#P10!@7/CWPO:)(\VK1A8IC!(5C=MCC&<X!P/F'/3WK1N==TV
MT,*O<&1IXC-&D$;3,T8QEP$!.WD<].17&:7>Z;"GC:TN]K23ZC,!#MRTX,2
M*H_B.<\#/7WINEF?0)M T34H9;:1-("M>06YDED?<,VZN =H &3CKQ@CN =;
M+XLT&"TLKN34X1!?D"VDY(DS]!QT/7'0UGKX\TNYU;3;*Q6YN([U97\Y;27
M"':0!MSG=UXX'7J*XRPFCC\$^#+>>*6.2RUM6G22)@8U4RY8Y'0;EYZ<UUGB
M"7[)X_\ #M])'*UN;>ZBWQQ,XWL$VC@'&<''TH WM/U[3=4:[6RF>5K)RDZ^
M2ZE&'\."!D^PJS87UOJ5E%>VCF2"90\;E"NY3T." <5R&OV%_8>+%;3%;R/$
ML7V.Z*G!AD09\T>_E;Q]56NTBBC@A2&) D<:A54= !P!0!@VFO:);1ZQJ!UR
M2>WM[C_2#*24MF"CY$^7IWXSR35FS\5Z'?ZC%I]M?![B>,RQ+Y;@2*!D[6(P
M2.X!R.]<;)-&VC_$10<M</+Y(QS+F *-O][+#'%6I+FW%_X =6&V%'$A _U>
M;<I\W]WYN.>] '9ZMJ]CH=BU]J4Q@MD(#2>6S!<],[0<#WIAUS3QJT6E&5Q>
M31^:D1A<93USC''?GCI4FK:;!K&DW>FW(S%=0M$WL",9^HZUYWM\0_V1I7B6
M:TF?4- F%DUL.MS'DQ3,/7<=I&>FPGO0!W$_BS0[4 W-]Y :Z^R R1.N9<XV
M\C]>GO50^(M"U6\TLV^MSQ.]RZ0PQJR?:&4$,CJ5S@=>W('-9/BZW33M!\/V
M]P1+(FL6T]P54MN/F;Y7QZ9))^M6O%T\7_"1>%'#@JE\TC,.0JF)@&)[#) S
M0!H6GBRTNO$6J:48IXETY(]\KP.%+$,QR<8 PHP3C.3C/%1Z?XBT+3O#-I>O
MKLMU932M'%>7.6>5C(1CA0>#QG&, ?6J6ESKI_Q&\2+=))&+N*UDA<QML94C
M8,=V,  \<FN6C9!\'-.MF5O-745+0E#O %T7.5Z_=Y^E 'HVG>(M)U:]N+*R
MNQ)<6ZAI(S&RG:>C#<!N7W&14,OBW0H1&TE]MCFD:.*4Q/Y<CC(*J^-I/!Z'
ML?2L<SP2_%>-U<-%+H9B$B_=+&4,%W>NW)QZ5RNCZKH)T?1='U#5_L=MI5^+
MF+S[66.4A'8QHY*[%ZC+ G.,<=: /6E8,H93D$9%+5.'5;.XU2XTR*4M=6R)
M)*FQ@ K9VG.,'H>AJY0 4444 %%%% !1110 4444 %%%% !1110 4444 %%%
M% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110
M4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1
M110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%
M% !1110 4444 %%%% !2?2EHH P_#V@W.B7.J2S7\=TNHW;715;<QF-F &,[
MCD845N444 %%%% &/IVBWEOJ4M]J6K2:BX+BU1H4C6W1B"1\OWCP!N/8=LG.
MQ110 4444 %%%% !1110 4444 0W=N+NSFMC))$)HV0O&VUER,9![$=JP;+P
MWJT-BNEW>OBYTY8O)\M;)8Y6CQC:7W$=."0H/TKI** $50JA5   P .U+110
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 4455U#4;+2;
M-[S4+F.VMXQEI)&P!_GTH M455_M*R&EC4VN$2S,(F\Y_E4(1G)STXJCHWBS
M0_$%Q-;:9?K-/"-SQ-&\;@>NU@"1[CCF@#8HHHH **** "BBL>X\4Z1:ZF^F
M2S3_ &Q$\QH4M)7;9G&[A3E<\9Z4 ;%%5--U2PU>T%UIUW%<P[BN^-LX(Z@^
MA]C5N@ HHI,@YYZ4 +15;4+Z'3+":]N/,\J!=S^6A=L>P')JPK!E##.",C(Q
M0 M%(2!U.*K?VA!_:O\ 9N)//\CS_P#5MLV[MOWL8SGMG- %JBBB@ HHK/N]
M;T^RNQ9R3.]R5W^1!"\SA?[Q5 2![GB@#0HJC8:S8:E<3V]I/OGM@IFB9&1X
M]V=NY6 ()VG@_P!:O4 %%%% !1110 4444 %%)D9QGFEH ***AN[J"QLYKNY
MD$<$$;22.1G:JC)/Y"@":BL(^,]#%Q%;F>Y$TREXX_L,^YU'4@;,D>]2+XLT
M:1[)$N9&-_,T$'[B0 NN=RDD?*1@\'% &S1110 44R66.")Y9I%CC12SNYP%
M ZDGL*RCXKT<6QNVGG6U W?:6M)1#M]=^W;CWSB@#8HJ.&:.X@CGB;='(H=3
MZ@C(J2@ HHI.E "T4G6EH **** "BBB@ HJ&ZNH+*UENKJ58H(5+R.QP% ZF
MLR/Q5I32W,,DDT$UL8]\4T#H[>8<)M!&6W'@8YSQ0!LT5C:;XITS5=2DTZV-
MP+N'=YL<MNZ>65QD$D8_B!'/(-;- !1110 4450U'6K'2KBSM[N1TDOIA!!B
M)F#.>@R!@=#U/:@"_12,P52QS@#)P,U7T^^AU.PAO;;S/*F7<GF(4;'N#R*
M+-%(2 ,DX K+T_Q)IFIZ@+"VDD-P;5;K:\+)^Z8X5LD8.?:@#5HHHH ****
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
MIDL4<\3Q2H'C<%64]"#VJMIEO?6UGY>HWRWL^]CYJPB/Y225&T>@P,]\5<H
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
M<1K)&V",J1D<'D5/7#KXBUC4O!EUXNTZY1$A,TT-DT:E'AB9@0Q^]O(0G((
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
MAQZX/2JVF:_IFKW-U:V5R7N+-@MQ"\;QO&3TRK '!]>E0^$/^1+T/_L'6_\
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
MFV4>RWMD"("<G'J3W)ZF@"W1110 4444 %%%% !1110 4444 %%%% !1110
M4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 5F:_KMKX<TM]
M1O(IY(495(A3<06(4=P!R16G7*_$S/\ P@&HXQG=#C/_ %V2@#JJ*XRXOM;\
M.^+],AO=5.I:?JHF5HV@1#;NB%\IMY*D C!)QZFH;#4_%&L:=I6MZ<)L7,B2
MSP2M +<P-U5<?.& Q@GN#GT !VX="[(&4LN"R@\C/2G5PN@6FHW&L^+T@UJ[
MCG6["1.ZQN%;RE*D@H>!TP,#'OS5!_%^IQZ#X>U*749T=+CR-:B$47RA7\N1
MS\ORX=DX'9O;- 'I-%<EJNMWVGVU[?Q7,DL=QJ$5A9QE(]L9+*CN#@9(;?@,
M<?*.QJ"\U3Q%X>&J:G<QS7&E06#3(MXT7FK<+T \OJA'KR#0!VE%<I;?\)1_
M:MA+')/)8S1LM[]J,&%)'R/%LYZ]CGC'?FN>.N>)(O!$GB-];9Y;'4&B: 6\
M82=!<>60W&1P>-N.G<\T >F5EZWX@L]"TX7UPLLT/FK%F!0V&+;>><#YCBM"
M:-I87C65XBRD"1,;E]QD$9_"O+$6X;X(0SR7DT[S7$+ 3;2%/VP9.0 3D\G)
M- 'J]%<>-4U+1?&-S97VHR7]HVDR7^QHD0Q.C@%5V@?*0>AR>.IJ+3[WQ3J$
M.B:M:>:\5T8Y+R*9H!!Y+C),>WY\KD8SU[T =H2%!)( '))[5D6_B6VO8VGT
M^SO+VU4D?:8(QY;8Z[<D%Q[J"/2LGXIW%W:_#G5I+,L'*(C%>H1G4-^A(_&N
M@T](XM"M4TQ8S$MN@MP3A-NT;>G;% #M+U.UUBP2^LV=H)&=5+H4.58J<@\C
ME3UJY7G#>*]6OO MIK>FI#I+3ZHL1B3$H8--M?)(&,G)XYYZUO72ZMIMQ9VM
MSXA>>.>69F"0*+F3@;$154C:IW%F.,<<XH ZFBO.AXDU^7P987JW_EW@UD64
MKO"A\U//V?,!P#CKMQWQ6M;SZM!XNU+0;G6)[F"73%O(I?+C22!B[(0N%QCC
M(R#C]: .M1TD7<C*PR1E3GD'!'YBG5YQX:U6]TWP!X;6.YN)[C5IEA!/EEHO
MONQ4L "3MQ\Q/)[]*TKO5_$7ARPUJ^OD:6RC2,V+731&5'9@A#>7@%06!!X.
M,C- ':T5S5BOB2+Q% 7-Q)I4D+"X%XT&^.0<JR>7V/0@_45=\175Q;1V7DW\
M=G')<A9CMWRR+@_)$NTY8D#MTR: -BBO.+SQ)KL7@GQ1=1WTD5WI%\T4$LL4
M9D\O"$!@!MS\YYQZ5LF^U72O&UA:7>J-=VFI6<\K1-"BB%X]IRA SC#$8)/U
MH V_$&NVOAO2)=3O(IY(8B PA3<W) '<#J1WK3KS#Q'>7WB+X376OR7TD2W1
M61;140QK'YP 4G&[. "3GK[<5Z;(I>-D5VC+ @.N,K[C((_.@#,U[Q#9^'M&
MFU6Y6::W@.'%NH<@YV^H YXY-:M>32I/_P *-U2::]GN#)++Q+M."+LY.0 2
M3U.2?PKK/M^J:3XW@L;S4WO;2\L)KAHS"BB%XROW,#."">&)/O0!UM(2%!)(
M '))[5P]AJ7BC5]/TG6]/$V+ETEN()6@%N8&ZJN/G# 8P3W!R.PO?%">YMOA
MQK,EH6$AB525Z[&=5?\ \=)H TH/$MK>QF>PM+R\M%)!NH(LQG'7;DAG'NH/
MM5[3-2M=8T^.^LG+P2E@C,I4G#%3P>1R#UINC100Z)8Q6H40);1B/;TV[1C]
M*Q]5OVLM?T?P[8-]D&HM<3RRHH+!5^=@N<C+,W7!P,^V #I:*X6]UO6M.F\3
M:/\ ;S)-8:=_:%E=O$A<+M;*.  IPR\''3K3'U'Q! WA6Y&M,XUE5AGA>W3R
MU)AWAUP VX$=R0?0#B@#O:*X-]6UNPC\96/]K27$FCVJ75K<S0Q[QNB=]I"J
M%(RGIWJ.74_$FDIX;UF?5Q>6NIS6]M=69MT54\U1AU8#=D'KD\YZ <  ] HK
M@M:U[5]/\VZBU/SWBU>.$Q6\2FWCA:14$;L5!\S!R=I)!]!5QI=;U'QKK&C1
M:Y):6T5I#-$8X(R\98L."P.1QSG/MB@#L:*\\'B+7IOA]HWBD7SH('4ZG'%#
M&?.A#E'<94X(QNXP,9KJ[&ZGU#7KN6"\9M.MXXXUC4(5>4C>S!L9P%9.^,D^
ME &C=W<%C;M<7$FR-2!G&223@  <DDD  <DFGK,I5=X,;LI;RV(W8&,\#.<9
M'3UKE_$%P\WC_P ,:8Q_<?Z1=NO9G1,)^6XG\JCGAN'^+4*C4;E(QH[2",;"
MH_?("H!4\' R>O'6@#=T37;77HKN2UCGC%I=/:R"9-IWIC/&>G-:=>6K/JVG
M>'?%VL:=JC6IL-:NI5A6%&64AER'+ G!''RXQZGMT]UK%]J>NW&E6?VN);>S
MBF9K0P[R\F['^LXP HZ#DGGW .KJD=5M1;R3AF:-)?)! _UC[MNU?7YN/P-0
M>'&UEM#@&OK$NHKE93$1M;!X;C@$C&1ZU2E\#Z'+9:A9M#,(=0G%Q*%G<;9,
MYRG/R\Y/'K0!8O/$]G8ZU'H\EO=M>31F6-(XMP=1U((..*M6.KQ7UW+:BWNH
M)8D5RL\13*DD @]#T-<EK"7$'Q3T&.Q6-G33)E43NV, CJ>3FMUY-;32-9FN
MVM[:ZB+FTDA&\!!$I'W@,_-NS0!OT5YW'JWB)-$\)ZO_ &T9)-5E@MYX'MX_
M*/F(3OX ;<",_> /H*O)J&LV.J^(]);5Y+K[+IZ7EM/-#'OB8A\KA5 (RHQQ
M0!VU9ECKMK?ZUJ.DQ13K/IPC,ID3:K;]V-O.3]T]JXHZQXGL/#GA[Q3-K NH
M;G[,EY9&W159),#<& SNR0?3GH!P=**_72O&/C;4G0NMII]K.5'5@L<K8_2@
M#MJ*X2_UO6=*\'Z;XM;4&N!)Y$MY:>6@B:.4J,)@;@5WC!R<XYS5XZQ>:)XR
MO;36=2=]-N;-KJQ+QHHC\O)E3(4%B!AAGMZF@#K:*XB\O/$=E+X7ADU5TEU*
MX9+I)((R5S&SA> /NX ]R/PI+)M?N]9\1:&?$=PJ:<(98+K[/#YW[Q"VT_+M
MV@K_ '<G/44 =Q17"Z;XLU'5=*\,Q8D^U:K:R3SO;B,.?+"@A=_RC);/L <>
MHAU?4/%VC^&KN:XN_)DBU"%+6:1(GDD@>15VR!?E!&3R,9H ] IJ.D@RC!@"
M1D'/(."/S%<I:W&K0>.I]"N=7EN;>ZTLW:-Y4:-;N) A"87IAOXL].IH^&2S
MGP39SSWD]P9C*V)=IVGS7R00 23U.2: .L9@JEF(  R2>U5-)U6SUS3(=2T^
M42VTX)1_7!(/Z@UG>*[M4L(M._?$ZC)Y+^3$\CK#UD.$!/W?ER!P7%8'@FZA
MTGQ3K'AJ))8K29O[0T]9H'APC<2(%< X#=,>] '>45QFJ:Y?#5_$5K)J)TQ=
M-LXYK$[4_?95BSG<#N 8!<#^9%5#J7B9Y/"$,FIO:S:PDANT:V3*'R2_ QP0
M>@/<#.>10!WU%<:MYK,VI7>@I?7L\NFVT7F7=LD"/)))N(9@_&  , #DYSVI
ML&L^(7FTO1-2B:/4GLY;B\:Q:++;7"+M+_* <Y..0< 4 =I17 ZAJ'B[2]%L
M_MEVL,[:U%;)(T<;M/;.X"^8%X#=0=N/ZU;1M<_X36Z\/'Q!.;>73UO5F,$7
MFPGS"A5#MVX. ?F#'\>: .SHK@=.\5ZI)H&F6\TK3W]UJ<U@UQ&B*S+&7.X!
ML*&(0#GCG..U.U>\\6:1H'B&Z>YDB@MX1/83SB%YE('SHP7Y2,]#UH [RJ6I
MZK;:5IUS?3"66.VQYB0(9'R<<;1SGD'Z<US27VLV/BS0K>XU5KJWUFVF\R$P
MHJPNB*P9"!GN1\Q/^!X$MIY;;71/J5W,O]KW</SLH.%?&[<%# X&.#@=@* -
M=/%FFRWUE9PBXEDU"T^U6K+$0DJD%@H8X ; )P<=*U+.\M[^V6XMGWQL2.F"
MI!P00>00000>A%-33[6-[=DB"BU39 @X6,8QP/7'&?3ZFN<T.X>W^(GB335/
M[B2.WO%7LKLNUOSVJ?PH ZRJ>IZG#I4"2S1S2>9((D2",N[,>F /H:N4THK%
M2R@E3E21T.,<?@30!@1^-+"6\N[..RU)[BR"M<1+:,6C##*Y'N!5FR\3V-_K
M,6EP1W'FS6(OD=X]J&(E0.3SGYO3L:Q?#O\ R4_QE_N6/_HIJCO[6>?XI16]
MG=FQ_P") P\R*-2RKYZ\*&!4'IU!X[=P =M17 Z=XJU1M T^WFE:XO[C59M.
M:X1$5F6,N=P!PNXA .>,G.#TK?T :_%J=_%J6]]/.UK-[AH_.4X^=6\O@C/(
M/6@#3U/5K+1[99[V;8KN(XU52SR.>BJHY8GT%4YO$D%IY!OK"^M%N)DAB>2(
M,K,[!5!*$[>3_%BN>U24R?&?1;:Y/^CQZ9++:@]#,20V/?8!6MXTUN?0["TE
M2P@O8[F[BMRDLI3:S-\K< ]"!0!T=%<9<2>(;_QI?Z-!KIL84L(;A&CMD<QL
M78$#<.0=O?\ 2JNO:]JVF1W-Y%J?GR6^J1Q&*WB5K>.%G5?+D8KGS,')VDD$
MCH* .]IKND8W.P4$@9)QR3@#\2<5R,DVMW_C?5=&BUN2TM8[**:(QP1EXV9F
M'!8'/3OGVQUK"EU+4M>\*^#-0N=0FBN+C5HX9C"$59"ID&\@@C.4!QTYZ=,
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
M7]*F*/--YIBEE00&'<08R,$@@#KUR#VXKI-.\/+IVO:CJZWUQ+)J10S1.$V
MHNU<84$8''6L^S\"6NGWTK6NJ:A%ITTIF?3%D'D;B<D=,A2>J@X/?CB@#(\7
M:UJ>FV.NWUIJ<DD]@\;01VR#RK=<+E9=PPS-DY )(!4@"M/4SGXG: ?6PNOY
MQTZ]\ V=ZFKP'4K^*TU=S+/:QN@02D#+@[=W\(XSCVJ\?#*G6]/U9M2NWFL(
M6A4-L(D#8W%OEZG Z8QVH S= GU74I?$=E-JTVZUU,10S[$#1Q!48J!MVYP2
M,D=\U2T_6=2N)]5U^WU&YG\/Z7;R^2LBQYOI44EF!"@A!C QU/Y5K-X+C:TU
MFV75[^,:S+YEPZ>6&4D $*=O *C'?BK=KX<6VAM;4W\TEE;(46T,<2QLI0I@
MX4$C#'O0!D:>?$UR^BZI!<[X)PC7R32IY4D;J#F, 94@GCGD=<UAZW>W7B?X
M5:MX@:_FA699O*MTV[%B20H%88Y)"Y)Z@GC XKI]%\$PZ)*B1:OJ4]A V^WL
M9I08HCG([9(!Z G Z]>:KS?#ZV:SU'3K?5K^VTS469Y+*/RRB,QR=I*E@,\X
M!Q^'% '3V7_'C!_UR7^5>8:<NM:=\-GU_3=:D@.GS7,RV9B0PRJ)WW!\C<2>
M>01CCC/->H6EO]EM(K?S9)?*4+ODQN;'K@ ?I6#!X+MH;%]+-]<R:4\QE-DX
M3!R^\J6 W%"QSC/MG'% %1]7O=/\7:;/>WTHT?6+4B**0(%M[@ -M+8!P5SC
M)Z@UM>'6NI]+%Y=SRRF[=IHED !CB8DQKP!SMQG/.<UD>)/L/B>Y_P"$5:QN
M97BN(9II6@98HD!#DA^A)'R8'.6/8&NK  & , 4 <=HUO*?B?XB9KZY98[>U
M81LRE<$2?+TX [8QUYS7-:)/J>D?#[1=7M=4F1$U'RC:!$\IXWNF5@V06)YZ
MY&...Y[YO#D8\0SZU;WUU;S7,*Q31(5V/MSL8Y4G(W'H<'N*S4\!6R>%[?P\
MNJWWV6WG$Z/B,R;@^\9.W&-QSTH ANK[5]<U#7+/3)IK=].=8+<Q2(H$AC5]
M[A@2PRV,=,#UKI=*:^;2K8ZF(A>^6!<>2<IO'!Q[9K&OO!D=SK3:O9ZOJ&FW
M4\:QW;6KJ!<A1@%@5(#8XR*Z"VMHK2VCMX5(CB4*H)).!ZD\D^] '%_">5I_
M#^HS7'_'^^J3F\S]X29'!_#%7XM8O;SQKJ6A^7!!]DLUE6\B&9"'/ PP(X([
MYZ=.:OMX9A@UB?5M,NYM/N;K'VE8PK13D=&9"/O>X(/KFBS\-):ZE>ZJU]/+
MJ%[$L+S%4 15Z!5 Q^>: .8T&ZUZ[\!Q>([CQ0(9YK)@?M,2""-M_$G R6P"
M .A)'':K^GZCJ#^+-0TA+N^CM6TM+N!KI$\Q'+LI8 C(!P/E8<'L*NQ>![)/
M!A\+/?7<EHN/*E)42188.N"% X89Y%21>$1'JW]K-K.H2WIL_LDDCF/#KDD'
M:% &">@P/7/.0#EM/U?7E\,^%?$$VMSS27M[!;W%N8T$4B2.5)Z9W#KG./:K
M]E-+IOC'QKJ+W=U,EA!!-Y+,I#CR7;;TX .<8Q[YK37P);IH&G:*NJWH@TVX
M2X@?$>_<ARH/R8(!]JOKX9MEUZ[U;[3<$WT21W5L2OE3;5*J2,9Z$\ X]J ,
M?3V\371T75;>YWPW 1[Y)I4\IXW4',8 RI!(QSR.I-58+_Q+K^BQZWH\QCG:
MX9DCEE06YB60J488)SM')ZY]!Q6MHO@F#1)42+5M1GL('WV]A-*#%$<Y';)
M/(!.!UZ\TV#P):VNHW$MKJFH06%U*9I]-20>0[G[W;(4]P#STZ<4 :WB*6XM
M_#FHW%I<-;SPVTDD<BJK%6521PP([5Q;:AXBTS2/#/B1];ENX[YK6*\LWB01
ME95 W+@9W G.<\D]AQ78>*9%C\*:L6/6SE50.K$H0 !W)/:L;PKHJ7WACP])
M>7LMS'900RQV[*H"2J@ W8&24). >F.<D9H K)JVJ'3/&F=1F+Z5))]DDVIN
MC"PAP/NX(SZBF3ZAK5U<>#(HM7FMQJUJYNBL<9RPM]^X97@Y)]LXXXK6O?!<
M-U=ZK+'JE[;0:O'MNK:(KL9]FS<"1N'&,@'!QSQQ3AX.B271)$U6^!T1"EOD
M1G<"NP[ODY^7CM^?- &'KFJ:AX>F-EJ^I:C#9M:)':ZS'$I1)_F!,P .,DKC
M(Q@>N36Q#J%Y)\0I=,6^=[&31UND0;2%<RE=RG&>@]2*NZAX>.H/?JVHW$=M
MJ,?E3VX5"N-NTE<C()'!//;BHKGPG ^J6>H6-]=:=):VOV,BW*D20 @A#N!Q
M@CJ.: ,/2M:U.[\)VMQ=:QY<C:K)!+*8P99HED<".-57[Y  X'3)]ZJ7.NZU
M%X8\7E+ZY@FTB;-J\JQM*J&-6V,<$'J>>OO6U'\/[.#3K:U@U34(GM+UKRWG
M#(6B=L[@,J00=Q^]FGS> [6:#6(3JNH;-8"_:<NAY"@$C*\$X'L.P% %5+G5
MK#Q;H,$NKSW4&LVTWG0NB!8G1%8,F!D=2.2:=\.X)4@UEY+VXGVZO=1[96#9
MVO@,3C.<#UQ[5IR>%Q+J6D7[ZG=&724=(OECPX8!6W?+W  XQ4^C^'H=%O+Z
M>WN[EX[VX>X-O(RE(W<Y8K@ \D=R<=L<T 8NOV\LGQ'\.A;ZYB62VNSM1EVJ
M5"<@$'D[CDTVSOM2\2V&N7UKJ4UE+97<UM9I&%VJ8AU<$'=N/4'H,8P>:W-6
M\/0ZKJ>GZC]KN;6XL/,"- RC<K@!E.0>#@<C!'8U7/A.*.[U"6QO[FRAU0E[
MN"(*59R,%U)!*L1U(_GS0!8\+:P_B'PMI^JR1B*2Z@#.J] W0XSVR.*Y31+>
M5- \;/)?7,^R\O8]LK @XC7#$XSG''7&.U=Y9VEO86<-G:Q"*"!!'&B]%4#
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
M.QR/0U;M?"JVNM-K']KW\MX]J+>1I"FU\$D,5"@ C<>!@>Q/- ')^&=8GL/
M?A/3K:0PR:K>/ 9P 3&@>1FQGC<< #/KGM6W)?:EIOBZ70!?S2VUYISW5M,X
M5I+:1#@C)&&4Y!^;/-68/ EA#X9MM"-Y=NEE,)[2Y)4302!BP8$+CJ3U!X-7
MXM  N)[VXO99[^:W^S"Y**#%'G.%4# R>3G.>.P H XVPU?75\.^$]>FUJ>:
M2_O8+:XMS&@B=)&*D\#.X<'.<>U:>KZW>+J?B2VN-1?36L+6.73%4J/-)0DO
M@C]Y\_R[>>G3)S5Y? L"Z%IFCKJMZ(=+N4N+=\1[]R'*@_)@@'VK#O)0WBC4
MY)];US1+EI5CCBCM#-'.B* KI^[8<DMP#^&: .R\.&_?P]8RZI)*][+ DDXE
M55*.0"5PH X/'2N6NM1UBTN?$NC/JUQ]M2..XTF39'N99/E5,;<'$GRDGL1R
M*ZK0!J TB,:E,\\^YL2R1"-W3<=I91P&VXR./H#Q27>@V5YKUCK,JG[38QR)
M&0>"'QU]<8X^M &+X=U>X\16VC30WT\>RT,M^N$R9,[ C97CYUD/&/N>]<WK
M5YJ-_P##/Q;]LU*XEDLM1N+=)!M0M&K*H4[0!C!YQC-=]I.@V6BO?O9*4:_N
M6N9">S-U ]LY./<UFIX)LO[$U?2)[VZG@U>:2>8L4#([G)*D*.X!P<T 4/$-
MI<#QCX3MH[^82'[:/M#JK.!Y8SC@+G'3(/T-7O!U[?23ZWIM[>27O]FWYABG
ME"ARA16 ;  )&3SBIV\+>9J>E:C-K%]-/I8D"%_+Q(7&&+ +Z #C&*L:/X?3
M1[_4;Q+V>=M1F\Z5) FU6P!\N #T '.: *-SJ4^H>-V\/1W$EM!;V NI6B(#
MRLS[0,GH!C/'4D=ASR7B+4M2N_!WB+3;V]F:?1]1@A6X3"&XB>2/;OP,$@,<
MXP#@<5W>I>'HKW5[;6+>YEL]0MXS")H@")(R<E'4CD9Y'0@U7NO!^GW>@7VD
MRRSG^T)?/N+D,!*\NY6#=,#!5<#&,#% &1K=I<-X^\.VL>H31N;*\!N"JF3'
MR=.-H/O@_2JMIXDU2RT2[M)KM[FYCU_^RH;J0*'V$J0QXV[L$@'&,XR#TKH_
M^$7#:U8:M)JM[+<6,3Q+O\LB0/\ >+87J<#I@#'%53X$L)M-U6PN[NZN(=4N
MC=N6**T4IQ\R%5&,;1UST]S0!4NE\3Z=%K4WVUXK%=/>:V:5XY)H9T!) ^7!
M0CUS@],5H>#XM2FTBRU6_P!7GO#>V$#F%T0)&Q0$D8&<G/.3US[ %OX29--N
MK2[UO4;Z6Y@:W^T3LA>.-NH4;<9/&202<#TK4T;3!HVD6VFK<RW$=K&L4;RA
M=VU1@ [0!P!Z4 8NK:I-'XQATN\O&T_39-/>:.<.(_-G#X*[S_=7YL=\\Y K
M%L/$.NQ^'-$%_>S&]UO4/LPGDAC3RX@6PRJ% RRJ,;L_>S[5-XFE1O%Y:YU/
M5]%$-JL=O<6\!EBN-S%F'W& ((7T)_ 5?M-"FU_19+;5[^[NHXKE)]/O9(!;
MW$;* 0^W Q@YQE1D9XQ@D KZAKU[X5\17%K--+?V#Z7-?1++@R1/$,LNX#E2
M,=<D&J^H:OJ^E^"],\7C49+B1Q;S7=L57RI(Y2H*H,94KO&#G/'.:Z>WT"'[
M9)>ZA,U_=26_V8O*BJHB)R5"@8Y/7UP.PQ5*T\&VUM96^FO?7-QIEK*LL%I+
MM(7:=RJ6QEE4X(!/89R* *D=[=>([CQ$D=]-9PZ9*UI D.W)<(&9VR#GDX Z
M8'J:L_#K_DGNB?\ 7JM/F\(1?VU=ZG8ZG>6!U!0MY##L*3$# ;#*=K8XR,?U
MK0\/Z+%X=T2VTJ"XFN(K9=J/-MW8]. .* -*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 ***H:KJ\6E1*S6]U=2OG9!:Q&21@.IQV R.21U'J* +]%9
MVAZY9>(=-6_L&?RRS(R2(4>-U."K ]"*T: "BBB@ HHHH **** "BBB@ HHH
MH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@
M HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "
MBBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **
M** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHH
MH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@
M HHHH **** "BBB@ J&Z^T"VD-H(C/M_=^:2%S[XYQ4U9^HZ?>7=Q;S6NK7%
MB(LAXXT1UE!QU# \C'&* ,3P!<3_ &+4M/OK..VU&SOY/MC1,2DTCXD\P9[$
M-T[#'TKJZJ:=IL.FQ2K$SR23R&6:60@O*YP-QP .@ P    !5N@ 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 ***
M* "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH
K **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** /_V0$!

end
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>GRAPHIC
<SEQUENCE>22
<FILENAME>cgnxformofrsuagreement004.jpg
<TEXT>
begin 644 cgnxformofrsuagreement004.jpg
M_]C_X  02D9)1@ ! @   0 !  #_VP!#  H'!P@'!@H(" @+"@H+#A@0#@T-
M#AT5%A$8(Q\E)"(?(B$F*S<O)BDT*2$B,$$Q-#D[/CX^)2Y$24,\2#<]/CO_
MVP!# 0H+"PX-#AP0$!P[*"(H.SL[.SL[.SL[.SL[.SL[.SL[.SL[.SL[.SL[
M.SL[.SL[.SL[.SL[.SL[.SL[.SL[.SO_P  1" 55!!\# 2(  A$! Q$!_\0
M'P   04! 0$! 0$           $" P0%!@<("0H+_\0 M1   @$# P($ P4%
M! 0   %] 0(#  01!1(A,4$&$U%A!R)Q%#*!D:$((T*QP152T? D,V)R@@D*
M%A<8&1HE)B<H*2HT-38W.#DZ0T1%1D=(24I35%565UA96F-D969G:&EJ<W1U
M=G=X>7J#A(6&AXB)BI*3E)66EYB9FJ*CI*6FIZBIJK*SM+6VM[BYNL+#Q,7&
MQ\C)RM+3U-76U]C9VN'BX^3EYN?HZ>KQ\O/T]?;W^/GZ_\0 'P$  P$! 0$!
M 0$! 0        $" P0%!@<("0H+_\0 M1$  @$"! 0#! <%! 0  0)W  $"
M Q$$!2$Q!A)!40=A<1,B,H$(%$*1H;'!"2,S4O 58G+1"A8D-.$E\1<8&1HF
M)R@I*C4V-S@Y.D-$149'2$E*4U155E=865IC9&5F9VAI:G-T=79W>'EZ@H.$
MA8:'B(F*DI.4E9:7F)F:HJ.DI::GJ*FJLK.TM;:WN+FZPL/$Q<;'R,G*TM/4
MU=;7V-G:XN/DY>;GZ.GJ\O/T]?;W^/GZ_]H # ,!  (1 Q$ /P#V: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*** "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 ****
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
M$?SK)E\:>&H(WDDUJT"),8&829 <8R,CTW#)Z#-:6G7UMJ5C%=V<HE@D7*.
M0&'J,]:\W%U8-X5^(@$]N9);RY*C<,N#$H7'K\V<>^: /2+S4[.P$?VB;#2Y
M\M%4N[X&3M502<#K@5E:SXPTO2_#3ZY%,MW ?EB\G+!W)P 2.G/!ST^O%<YI
MNH1V/BW2-2OKA!IMYH26UO=,X\I)@P9D+= 2!WZ[<=JS-9LY1X1\:7UNC'3[
MO489[8*"0X5X_-D7U4D$Y[[<T >HV\\5U"LT+;D;H<$?SKD]$U6?RO%(U;66
MCALK]X8[J78GD)Y:$=@O!/IS756EW!?VJ75K()(9!E' (##U&>WOWK@=/OK,
MZ;X_S<PD&ZG;[XY!A50?<9!'UH ZNWUW2;*PTR.YUJ*5KJ!6@FF<*]PNS/F8
MXX(Y)P!3?^$R\.?8Y;O^UK?RH7,<AR<JV,XVXSTYZ=*XY;NQ_LKX;B2> F/R
MMVYA\N+<J<^F&P/K6II5UIZ>/O&3R3VXS!:Y9F7D"-@W/MQG\* -_4]3T]XM
M+===2S6ZN8FMS&RG[6">$&0<JV1R/SIMEXHL;[Q+?Z'%N\VR6/<Q0@,S;R0.
M.P4<]\^U<!:WMJ/ASX&#W,6Z+5[7>"XRFUVW9], C/IFMN9Y/^$O\96$$ACO
MM2TV#[!P?WA$4HW ^@8CF@#KH?$&DW%]'917L9GE!,2G($H'782,/CO@FL'Q
M]XDCTWPOJ;:?JC6U];+@/$@8*_'R,Q4J"0>F0>F*RO#=_P"&==BT:V,5[)K&
MG,G^A223 VDBC#$@G:% SUX/ ZG%8DFKVT/PGUK0-2E6/78&G^TV\@_>2NTI
M?S .K @@[AQ0!ZS'*%LUFE;@1AF/X9-9.A>+-.US3)]0CD\B"%Y S3 H%1&*
M[B3C&<9]N]:EA,EQI]O+&<H\:D'&.U>71O._PXN+.UCDFN-,U=IKZU1"6\I;
MDN5(QZ8;'< T >EV>M:=?W+VMO<@W"(',+J4?8>C!6 )7W'%6;BYAM(&GN)5
MBB3JS' '8?K7(WLUOK_C7PU?Z+<QW*6B7$ES- VX+$R *K$=RV, \\$]JL?$
M%Y;;2=/OQ%/+:V6HQ3WBP$[Q" P+#'/!*M^% &L/$VBFVNKA]1AB2S(%QYQ,
M;1$]-RM@C/;CGM34\5Z!)<K;+JUMYKQ&90SXR@&2<GC@<D=17):C<^&+_P .
M>)-7T:22Y>?298);V264JQV'9&-YP6SZ<CCUIMU=:<%^'V9K?:CJ?O+A1Y!&
M?;YL#ZT =A!XHT*XT^XOX]4M_LULVR:1WVB-O0YQC^M):>*M!OM373;75;:6
M\9-ZPJ_S$8SQ[X[=17%:E<VSWOQ*C2:)F?38R%##+;;=PQ'K@X!].*GGCLM8
MT[P3!I+0R7EI=6\[>3C=#"J9EW8^Z#P"#U) H W_  Y?WDOB3Q-:7EZ\\-E<
M1+#Y@4>6K1!B. !U-:MKK^E7MTEK;WJ-+*I>)2"OG*.K(2,./=<UP5ZL^J?\
M+%LM)E$EY-Y7EI&V6<"%0P'KT9?KQ6AJ=W:>)K;PJ-$D1KN#4()V2,_/;1*I
M\T./X1_"0>I(% '7V6MZ;J0N#972S_96*S!%),;#JIXZ^W6J_P#PE6@YA']K
M6P-Q$98@7P60?Q8]/0]^U<[K=I?Z3XM=--C?[/XGC%O*R?\ +O.HYE_[];C[
ME!4NLFQMOB/X3ME,,:P6UTBID#9E4"#VS@@?2@#8;QIX;6Q6];6+80,YCW[C
MPPP"".HQD9STR/6M*ZU.SLHDDGG&)>8P@+L_&?E"Y)XYXKSZ"ZL#I7Q%*SV^
M9)9R,,OS P #Z_-D?6HXM7L],G\-:GJEQ,FD3:(EJ+N"1PL,XVEE<H>,@ <]
MU]C@ [H^)]"%M:W)U:U\J\?9;MY@_>-G&!]#U].]-B\5:)<6-[>6VH1W$5A_
MQ\>4"S)Z< 9.>V.M<5K2Z!::7H3:>GD6-QXDBN=UQ(Q$H(.^7YSD+GOT[]^=
M SP3>//%$$$L;RS:1$JHC EV DR .Y (_,4 =3X?UJ#Q!HMMJ,*E!/$KLA!^
M0D X]^M<]#XHAT;Q9XCAUW60EE;BU^RK-M&S>KE@ H!/3WX R:T/A]>V]WX'
MTE()-YM[2**7@C:ZJ R_4$<UG6MWIVF_$+Q,VJRP6XN;:U\HW!"^:@1@X7/W
MAG ('M0!T<GB'2(VLPU_"?MXS:[3N$_^Z1U_"K0O[8W[6 E'VE8Q(8\'(4G
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
MYN8+.VDN;F9(88E+/([851ZDT 2T5G6VO:;=W$MO'.XGBC\UH9(7CDV?W@K
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
M:TW5-1>&*RU86-J0RW2K 'DD4X^ZQ/R$<\X/7VK3ABC@A2&) D<:A44=% X
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
M'WG#2@H0.^0.#[>U;D6L0:3\0)[W4YMMCJ>G0)8W9!,>5+%H]PZ$ELXKO**
M.0^'$R2:1J*HDB :K=, \3)P9"1C('_UJR_%#M9ZOJVHZ)J@BU&-42ZTFZ7?
M%J*[!M"+UW$';\O<8.,UZ'10!Q+ZE%I?Q*DGU%)+?[?I,*P (S[Y%D<L@V@Y
M8;AQ7-M<(?@3);E9%G,[ 1,A#,?M>[@?Q?+SQFO6J* .,\;7UH]QX7D2XC=!
MK$4I96! 0(X+$CH,D#-+<S1R?%:#RIE!;0Y(U<'(#F52HSZX!./2NRHH \\\
M'ZSIYT*P\,:GITDFMZ?($:SEMV;$BL<3;B" /XMV?7&<C*74,VHZU\0+.P<&
MYNK&".#!QYC")PP!^I /IFO1** .#T'4_#>OW&FRI:7S:I8?,\5R\X%@=N'+
M%CM XP!WX]\84TUNWPDUJ%"IE;4I&$8'SMFY#*0.I^49^@]J]9HH XXW<47Q
M5BN26:&]T5(K>1$++(PF8D @8X!!^G-3_$ W4.DV&H6]O)<1:=J4%U<Q1#<S
M1*3G [X)#?A7544 <%XBN+7QCX3UN3PM;F>YGLPC7:P&-I0&!\H%@"QV[N.V
M0.]2:K=VWBN3PNVC,&N;?48KJ95X:UB56\Q7'\.>%P>I^E=S10!YF)[5O#/Q
M"0.ADGN;DQCO(#"JJ1Z@L"!CO4UZ\,B:=?:7KXTK5[?2(BK38:WND^;,; ]P
MRGIR-W3T]&HH X">]>?7? -Q>6RV,WESM-;@8$&ZW*@'^Z,\ 'Z50BU2+3O#
MWC'0M6+Q:G+)>S(C1L?M*.IV.O'(QQ[ <XKTZB@#S"/48-'N/#NIZLM[%I,V
MAQ6GVB+S4^SSJ02'"X(## ^JU-K*:-:Z=H#Z=:O;64GB**[_ 'Q<F1=K;IB'
M^95SW/L>]>DT4 <EKNJPVOC#3[:5#:)-9R%-0B@,DDA++^Y0X.,XW'@D\8P:
MY*PD\GX>>'#)'.HTWQ KW1:)OW2^?*<GCL&7/UKUJB@#C9KJ&;XH6#QR;=^C
M2J"RD$,TB,H(/0X!.#S6!:.#\*;WPI>QYUR-);<V;?ZR65I"4=0>64DAMW3J
M<\5ZC10!PUB4L_B7;1WEPC2P^'4@DF8\&02989/? )QUQS5OX;2(WAN>-6&4
MO[D[>A"M*Q7CT(.17744 <??W4"?%;3=TJ#;IDT;$G@,SH0I/J0#Q67I=U%I
M_A[Q+H.M<:@]Q=,L+CYKU9<E&C'\><XP.F,'%>B44 ><Z?;OI7B3P39:E(IN
M;32Y8I2QSY<A5 JY]>"!ZXKT*=2UM(BCDH0!^%244 >3?;+=_A1H5DX<36]Y
M:QS1R1,-I67+@Y'8#GTX]:V]7S?>/M2M[&=!/=>&F@@=6X,I=RHSZX(/TYKO
MJ* ///#=]X>UJ+2+.6QU!M9TYH]UI,UP/LDB##.<G:%'./7@8K;^(>@7?B+P
MG+;:?@WL$J7,"DX#LASM_$9_'%=110!S$GB?1-6\.S"^EAM9G@(FL;PA)4?'
MW2C<DYZ$#GM7'PVZ:=X"\$Q7L'V>9=6@GN$E3#  OEV!YP,CD^U>KT4 <EKV
MJPVOB_3K:5#:)-:2%-0C@,DCG<O[E#@XSC<>#G  P>:X^TN($\"^&K68.CVO
MB-6F26,@HHN)&).1T (R>V>:]=HH X9Y(Y_B#KT4+J[3Z-'&@4_?<%\@>I (
MK'CNV7X>>%KR.WNYX-'FB_M"*%721%$;(Q&,$E2P)Q7J-% 'FVKKIFJZ->ZW
MX7L[R^97MI;J;?.&N4BE5O+7><D@ G(Z<#KTW/#MWX;US6$U71XKNYN8[<Q2
M74[3_N5)!\L^8<$YYP,XP3Z9ZVB@#%\7QV$WAJYBU.2:*U=XE:6 X>(F5=K@
M]MK8;\*S?!MSJC7^I6=]>0:M#;+$(-5B0*9@=QV-C@LOM_>YZUUE% !1110
M4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1
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
MGMWG:5('9< J  0#G[W)Z#OUKDO%=X]]#XNT[[)<03" &&*UM6_TP>6/WKR
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
MYAM+=[BXD6**,;G=C@ 5YYX9GTF_LM)T>_TG4VUG3'B#6LYG\N!X\#S0Q.P
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
MMR9+="S*[*$VX1>6;YCV)H Z#1M+DTRW?[3>R7]Y.P:>ZD14,A  &%7A0 .
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
MNQC(# UF^&9K*[L]+T;4/#M__:^FM$'CN$D,,31X'G*Y.P#&2,<\X'K7HM%
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
M?-A<#([G':MC7-!DUF\TRX6\$']G7(N$7RMV]L$<\CC!-;- 'F&FV]]9^'?
M^J&TN6AT=G2^M_);S(PZ%-Y3&3MSG@=#726%J=1^(5QKULK?8%TM;,R,I59Y
M#(7XSU"K@9_VL=C75U6U"WFN[":WM[N2SED0JD\:@M&?4 \4 <CX9TJ\LM?G
MT*1,Z5HTS7-F^<Y$H.Q/^ 9E_-/2H[1F6]\=,T$X6X(,),#_ +T" )\O'S?-
MQQ76:1I@TNU:-[F6[N)7\R>YFQOE? &2  !P   . !5^@#S=_,3P?X$B-K<F
M2TO+1KA!;N6A"1LK%AC( )%+#);:;JNM:-X@T?4KO[;>RSVK01R2174<AR$X
M.T$=#NP/4UZ/10!Q<"?9/B5:$VCP01:#]GRD;-%&_F*VS?C'"@US\4=PGA6.
M3[%=D6?B@7DJ"V?>(?/+;PN,D8YX!KU2B@"%+E&M1<E71"F_#H0P'NO4'VZU
MS6EZ>?$,%]J<UW?VHU!VC>V,2IB)<JBD.A/*_,>V7-=710!Y[X6<KX-UOPOJ
M=O?/#IZW$$,GDLIN;8AMI1B "V"1^55="U?2[JX\-#5K^>&;2X_+MTDTZ:$/
M(Z",;W8;>!QQ@$G/M7?ZQI<6M:1<Z;-+-%'<IL9X6VNOT-4;?0]0;8FJ:[-J
M$"$-Y1MXXPY!R-Q49/(!P,9[Y'% &/X822;4O%L*I- ]U>L\,KPLH93&JAE)
M&#@@]*RO#$EG/IVFZ#J?AV_.KZ<T:-',DA@0QX F#D[ ,#(Q]!7I%% 'FM@;
M:S;4?#>OZ%J-Y<O>320!(Y'AO$>0NIR#L')YW8 Q6UIA^S?$75I)(9(X?[.M
MXUD$3>660L656Q@XR*["B@#RN..=/@Y:61L[K[4E\K&#[,_F "[WYVXSC;S6
MG=74.D^+]6.LZ=J-Q8:N(I;2>UCE=3B-4:-E3H?EX!'>O0:* .%$"6?C+PPL
M.F2V=M!9W*>4D3,MOO*[%9@" >#WZUD7=M=7/@[QO;P6=T\TNKM<Q1^0X,L>
M8CN7(^;[C=/2O4:* (+.[COK5+F)95CD&5$L;1MCU*L 1^(J>BB@ HHHH **
M** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHH
MH **** "L3Q?KY\,^&;O54MWG>)<(JC(#'@%O1<D9K;KFOB'976H^ ]5M;.!
MYYWB4K%&,LV'4D =S@'B@#/UW5/LOC7PS=&6]A@N([P26QW_ #E47;^Z'5LD
MXP,\UO6/B?2[_2[C44EDBBM93#.DT3))'("!L*XSNY& .N16'J-U)J'C?PK?
M0Z?J MXX[HR2/9R 1[T4+NX^7)!ZXQWQ6)=6&I7=EXF-GIMT\J:W%?PP36[Q
M"[C3R\A2P .=AZ<\#UH [0>*],6>[M[@7-M<6<'VF2&2!MYBSC>H4'<,\''3
MOBH;/QMHM[/I\437(74ES;3/;NL3MC=LWD8W8[>V.O%9%M<:=J5G>W]AX9O;
M25+&2-YKBS9)LD<1(.6;G)..!CWK-*7*^$? T/\ 9VH>;8WML]R@L9MT*I&Z
ML6&W( )'UH [;Q'K47AWP]>ZO,F];6(N$SC<W11^)(%9ND:;+<Z+#J6NZE=-
M=W$0FE,5W)!%#D9VJJL!A>F3DGN:O>*M#7Q+X8O]',@C-U%A'/16!#*3[9 K
M/\/:[):Z+;V6NV=U9ZA:1+%*OV=W24J,;D900P.,X'(]* %@URQ\-:))+JFL
MM?QI<LHN5_>L%=_D#E1A<9VY.!Q5J/Q;ILS)&B7?GRSO!# ]LR/*RKN)4,!\
MNTYW' KAETJ^LOA3<69TJ\$]QJ@GCMX[5VD*?:%;)4#(^5>^.E=9XDU&YCU+
M13'9WAT^<R>?<VUH[SQ':-BX"[HPV3DX!XQD4 6Y?&FB0Z,-6EGE6V\\V[$P
M/F.0-M*OQ\N#QS@5+:>*=.O;^ZL(DNA=6T/G^5);.C2QYQN0,!N&>*X&2UOH
M_!FKV']D:H)CX@\]$-M)(S1^>KYR,[OE!).2/<UU):1_BG;W:VEY]F;1FA\\
MVL@0.95<*6*X!P#U^G6@"WX?\70:MX<76+J&6U1Y&55:,G=F1E15Q]YN ,#N
M:NVOB33;B>]MY'>TGL$$MQ%<KL*1D9#YZ%>#R#QWKA+:RU4?#O3K9-'O)+K0
M]0\^YM'B*&X02295"?O?*P8$9'3J>*T[NQM_$_A_5CH6@SV%S/9-$)[R PR2
M-D,(ANY*\')Z9(QGG !U%OXDL)]4ATUUN+>XN8S+;K/"4$ZCJ5SW&02#@^U7
M+[4(-/6(S;F>>010QH,M(^"<#\ 3] :Y;P[=6&L7UG,/"EW97UKN,TMY;%!;
M$J0P1F^\2<#CMR<=*TO&5G97]A:6U]#>[&N@4N;(.9+1PC%9<J"0/X<XQ\W-
M &5XTU=9_#T%[;3W=F;;58(906:'_EHNX,,\K@_3N*W['Q/IM_>W=FK3P36D
M8FD6Y@:$F,YPXW 97@\UQ>HKKLGA);:_BN]2DBUN'[/<1V3^9- CH?,=5'&,
M$9/7 ^IU;^2\3X@W=[::;<W _P"$?:*(O:R"*282%UC+$8&1ZGOZT ;MEXIT
MR_N[.WC,R&_B::S>2(JMPBX)*GZ$'!P<'-<W8/<'3?',9O;L_9KF7R'-P^^+
M$*L K9R #5*Q>[N=<\(:DVG:NS0K/'=F2U>-(':+ 14P B@\9 QC&6)!J[8K
M<+:>.=UC?*;F>5X ;20&8&$(-GR_-R.U '2^$9))O!FB2RNTDCZ=;LSL<EB8
MUR2>YJC=_$#0;0W@9KR0V,FRY$=G(QAXR688X7GJ>#VS5SP<KQ^#=&AEAFAE
MAL88I(YHVC965 ""& /45SVC:C;VFO>,HI[>><O>+B..!I/-_<J-HP",^Q]:
M .F?Q)IV+,6\CWCWT1GMX[==QDC !+=@!R.N.N*K/XST9=.T_4%DF>VU*40V
M[K Q!D+;=AX^4Y!'..AKF-)M-3\.6_AS1+^SNS;I8.)KBQA,DGG%P?)+J,HN
M.X(R0.0 :G\,Z!)JOPSG\/WUK<V4ZRSA6G0J8Y/.=T92>3@[3D<'U/- '9MJ
M,"ZJNF[9#.T1FX0E0H..3T'/:B_U*VTU(C.S%YY!'#$B[GE?&<*/H"?0 $G
MK&\%-?W^E_VUJT:I?7B(A53D!(Q@8]F8N_T<>E5?%PO+'Q-X>UY+6>ZL;%IX
MKI+>,R/&)% $@4<D#'..U %;0M;AA\4^,+J\NKJ&RLH[5V2[9S]G^1R^ <X!
M//R\'(QVKH;3Q'8W=Z]ELN(;E;870BEA(9XB<;E SGGC'7VKCYKS41J7C+4-
M-T6ZN6N;2U-HMQ9N$FVJP8;6 R0&SM/)JQI;R?\ "P+35%L]8EM9M'>$W-U;
MN"9/-1CE2!LX!X  /8'/(!LKX_T!K&&_$MS]CEE\HW!M7$<3;M@WL1\N2._/
M(SC-7K+Q-IU_J[Z5']HCN1%YR":!HQ*@."R%A\PR17"O!>-\'[NP&EZC]K:]
M9EM_L4N\@W7F [=N<;><UT.I/,_Q$TB[@LKN2)-/G0R?99 @=BI56;;A<X/7
MIWH U;;Q;I-W/9I$\OEW[O':7!C(CF9<Y /X'&< XXS3K[Q3IFG_ &QY6E>'
M3RHO)HHRZP$@$;L<G@@G . ><5P\<U_>Q>&KZ?2-5%U:ZEF[A6T>.*WRK@*B
M< KDCY^?=AG%2:E/!;ZCXGTIH]4M['4I@)VBTU[D$M&HD9)$.%R"!@@XQGO@
M '='7K,P020I<S/<HSQ0K RR,J]6VL 0.1R<=1CJ*BMO%.EWUE;W-G)).;F1
MHHX50B0NH)92IQM(P<YQ^HSRFHS6UMK&E:];Z;=:KH$FG?8LVT3/);LKY5BG
MWL=5/&01SZ&S?:7I5YIUHG]D:AHT4US)<6US9Q,DUM)M \R0*#MW<CYNV,X/
M0 [#3[^'4K07,"R*N]T*RH48,K%6!!]P:RK#Q-]M\6:GHOV.=$L4AQ*8SAF?
M>22>RX5<9Z\T[P>VKMHA766\R:.>1(YS%Y33Q!OED9/X2>OZUCO:79\8^)[7
M[-=1C5["!+:Z6)C$I5)%8E^@(+#CKZ4 ;7_"6Z3FW=GE6UNI?)@NVC(AD?.
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
MH **** "BBB@ HHHH **** "BBB@ HHHH ***P_&6OR>&O#%YJD-L]Q)$N$
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
MK&)98P$AC/1I&.%S[9.3["FVVAQ6VF";6=3NI;O8&N+IKQXE5CUVA6"HN>@
M^N: -R**."%(846..-0J(HP% X %/KEX/$6F^'-$LUOM5?4A)=&W6ZB_?;BS
MG;O9> <$9^AQ5R+Q7:3?9XTL[\75R\JPVDD'ERL(_O-AR %Y')/.: -RBN?D
M\;:+%H]IJK/<?9[NX%NG[ALI)NVD-V7!!Z^G&:DMO%=G=SW]M':7RW5C$)C;
MRP&-Y4.<,@;&02".<8[XH W**YOP_P"+%U/PS:ZO>6TL#71 CC"Y\QF)VJF#
MSQW..A)P,U;M_%.FRG4(YS+9SZ:%-S!.N'0,,J1M)# ]MI//'6@#9HK)M/$5
MK<:P=(EAN+2],/GQQ7" >;'G!92"1P>HZCTJQJ6KVVF26T,H>2>\D,=O#& 6
MD8 L<9( P 222!0!>K'UG0&U2\M;ZVU.ZT^\M ZQRP[64JV-P9&!!'RCWXI+
M?Q3IUSI[WB>:#'=?8V@9,2"?<%\O&<9R1SG&.<XJ[I^HKJ!N%%O/;R6TOE2)
M,H!SM5N""01AAR#0!#::0\6Z2\U"YO;ED,?G/MC**2"0H0 +G R>O YX&+T,
M,5M D$*!(XU"JHZ "L_4/$%KI]ZUD(9[FZ2W-T\,"@LL0.-QR0.N0 .3@\5;
MT[4+;5=.M]0LY/,M[F,21MC&0?8]* +-%<^OC/3)=3ETZ&WOYIX+E+>;R[1R
M(F;HS<?*O/4_AFI)O%NFP26QE6=;6ZG^SPWI0>2\F2 ,YR 2" Q&T]C0!N45
MDGQ#;>>4CM[F6);H6C7$:@HLN0NT\YX)P3C&>,U&OBBR:#591!<YTAL74>P;
ME^7<2.<$;>>#0!M45QFN7RWNL>#-1LYYU@O;G<%\QE5T:%F&Y,XST[9K2TCQ
M++J?B;5M+.GSQ1V#1QAV QDJ6)// ((P/SQG  .AHJGJ&IVVFK")MS2W$@B@
MAC&7E?!. /H"23@ #)(JK9^(;6]:\@C@N%O+$@3V;H!*N>5(YP01T()% &M1
M7#^"5_X273K'7[S[=#?I--(TPDVQS*7=1&1D@J !Q@8(^N>D.OVJ^(UT%H9U
MNWA,ZL4&QD!P2&SZG&.OMCF@#4HK,_MZU$-Q+)'/&L%Q]F&4!,LF<;4 )SR?
MY^AQ63Q;I@.H1W0FLY].57N()T&\*WW2NTD,">!@GGB@#<HK!U+Q0-/TS5+E
MM+O/.TVV%P\+A1N4AB"&#$8^0YYX^O%4I]=L;K2-!GUB&^@EN[JW$(C5E#3'
M!7)4XV$D\,>0.AQ0!U=%8%UXQTZVU&]TY;>_N+NRC622&"U9F(.>5]1QUZ=.
M<FK">*-+ETFPU*&5I8M194M45?GE9LX4 ]#P<YP!@YH UZ*R=-\166J:C=:=
M%'<QW=F<7$<L# 1D\C+#*\@@C!Y%6=0U6WT^2WA=7EN+IBL$$0!>0@9.,D
M#J20!QZB@"[16-%XEM;JQOIK:&=[FP8I<6C(!+&V,C(SC!'.02".A-8O@>#^
MV=,TKQ#<M?1W_DEII#)B.ZWYSE<D$ ].F,#''% '9T5SB^(Y+CQE<^'OL%R(
M8;57:9<#)=B-V0<A1@\]<Y]JP/"'BJTTCPY&FHM?3*=1GA>Z9'D2(F9E3?(?
M7CUZC/44 >A45B&]TQ_&RV6;K^TTL&< [Q#Y6]<GGY2V2.1GO4MIXAMKV6U$
M-O<F"]+?9[G8/+DP"<Y!R,@'&0,]J -:BBN'B\17\/Q @DN)/^))JPDLK3T6
M:(GYC_ODN!Z@+0!W%%9FI:[;:5?V%G<13E]0E\J%U4%-^,X)SP< GW[5':^(
M[6[O-3M$@N%FTL W"NJC&1N7'/.0,@]/>@#7HK$/BFT(@2*UNYKB>U-X+98P
M)%ASC<02 .O SGVZU'-XUT6&STR[\R>2'52!:M' S;B03@\=>#\O7VH WZ9*
M':)A&X1R/E8KD ^N.]9$7B:UN8;816=\;JZ1W2S:+RYU56VLS!B HSCDD9R,
M9K*^'5RUU8ZTYDN'4:S<+&+EF:1%&W"G=SQTP: -CPQH7_"-:'#I*737,4!;
M8[H%;YF+'..#R36O2$A023@#DDUAV?B[3;VXL(XTN%CU,/\ 8IW0!)]H)..<
MC@$C<!GM0!NT5S$WC_1X8+V<0:A)'I\YANBEH_[K !+-GHHSWYX/'%:UUK5K
M!);P1"2[N+J,R0PV^"S(,9;)( 7D<DCJ!UH T:*Y#X>7+7-OKS&2Y95UJ=4%
MRS,Z *GRG<2>.E=?0 4444 %%%% !1110 4444 %%%% !1110 4444 %%%%
M!1110 4444 %%%% !1110 4444 %%%% !1110 5SGQ!L+K4_ NJ6=E T]P\2
ME(T&6;#*2!ZG -='10!QVH33ZAXT\+:A'IM_';PQW7FM);,/+WHH3=C.,D'K
MT[XK%NM+U2\LO$IM--F>9=:BU"W@N(61+M$\O*@L,'.P\?3UKTNB@#F/#D]G
MJ5Z+VU\)R:2T<122>[LE@ER2/D7N1U)/3@=<\)XPTZSU.YT^&YAU&*1!+);Z
MCIZ.TEK(-HP=@/# GJ,?+7444 >>7$>O)I/AC5-5M+F]GT_47:X^SVY,K1$.
MJR&-><X*D@<C/UI'2_GNO'<QTC4(UU&RC6UW0$F4B K@ =\D?3OC!KT2B@#@
M;B"Z.G^!E%C>%K&6)KD"VDS"%A*'=QQ\QQ6IHD<\?Q!\23R6MRD%U%:B&9X6
M".8U<-AB,<%A]>U=510!RGB"WO++QGH^OQV\US910RVMRL$9D>+?@JX49)&1
M@X&14-M83_VMXGU_[/<)!?6\4$$7DL))=B$%MF-W5L#(SP3TQ78T4 <GX8O)
MM$^'FF>?I>H27%K#%#):QVY\T-D*<*<9 SDGTKJ9H_.@DBSC>I7([9%/HH X
M3PP=2L?A(UK96BSZI817%N;9UW R*[#!'?CG'?(]:CTQ+N3QMH^IC3-8,,FG
MRPRSW<94B0LA^92<(.#P  ?X0:[:*PA@O9;N'=&T^/-53\LC 8#$?WL#&1U&
M,YP,6&!*D!BI(ZCM0!REA;O<_%+5K]!^YM-.ALV/8R,QDQ]0I7_OH4_QE!=?
M;O#U_!9SW45EJ.^9;>,NZJ8V7.!SC)%=#9V4-C"8X5/S,7=F.6=CU8GN?_U=
M!5B@#B].^T)XK\6W<VGWL<5U;VPA+6[$2%(V# 8!!P6 ]^V16#:65_IFB^%-
M2N- N=0AT^TDL[ZQ-MNFBW;2'5&'S8*=NU>I44 8_AU;=K>:ZM=$&D13ON$;
M0+#+)QR[J.GH >>/>LN>"[A^(\T_V.Z:WO=*CMTN8DRD;K(Y.X_PX# \]>V3
M7644 >;VMCJ(^&D_@R?3;C^U$1K1#Y#>1("_RRB3&W;@Y.3GCIG%;$5G=Z5\
M0+:3['<W-L^BQ6:W")E1(DK$[S_#P0>>O;)KL** /+W_ +9U"TT&[O-$U7[?
M9ZRDMY&L)6*)!O&(US@KR/F /NU=-HL<Z?$'Q%<26ES'!<PVJQ2O"P1RBON
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
M<M&\4J'!5L'G\R#3+N>]M!I;6OAR?3]-NKJ1KE+*U!N8EV (6"9VECG)7D*
M,@UDC3M2_P"$*\8Z8NCZ@D]W?S/;(Z%C(KA-N&R=W0Y.2..M '5W-]I<>M>'
M;2[BNFOI5<V;IN$:D1'=N.0#\H/!SU_&GZGXOM])LY;VZTV_%K%.8!*!'^\<
M.4PJE]S9(XP.>M9VJ1W,_B'PA<Q65TT-H96N&\AOW0:$H-W']X_UZ5"6N-4\
M62:IK&G7ZV>EL5TVT6U=_,?O.V!C/903QUX- &_>>(X;2.9EL+RY:VA6:YCA
M5"T"D9PV6&3@$X7)_,9%\3:?<0V+6/F7SZA$9K>* #<T8QECN("@9 Y(Y..M
M<M+%<Z=XHO;[4O"4VK6FL)#-&T-NDTEM((U1HW#$8' YSC]<3O:ZCH/BZPUL
M:,[6$VFFREMM/C#FS;S#(/E'4<X)'<9]* +'P[F,P\1MBX4#6I0$N&+.F$C^
M4DD]/J:BU&_&D_$\S"&]N_,T0D6UN&E+-YP^ZI.%X'7@?C5SP3#>PW7B![O3
MKFT6ZU22XA,P4;D*H!T)_NGVIU^EQ8?$*'5Y+.YDL7TMK4RP1-+MD\T-@JN6
M P.N,4 ./C[2?[!76E@O&MA<?9IE\H![:7(&V0$C;R1STY%;4FI)%JEMIQMY
MFEN(GE#*%VHJD [N<]64=#U^M8&D>&/M6EZ^FJ0&*/7KJ24P'&Z.,J%7.. W
M&[V)'I3O MOJ3::U[K$BRW:C[&DBG(>*%F4/]6;<V>XVT /\;:Y=Z;#INF:=
M((K[6+M;6.8C/DJ?ON >I Z?6I=2T31;'2)/M.I3:>679_:$M\R2!B.I=FY/
ML>/:HO''AZ\UFUL+[2RG]I:3=+=6R2'"RX^\A/;/K[57\3:A+KG@W4-/@TK4
M4U"[MFB6V>T?Y7(Z&3&S'ONQ0!=;Q7I>F0Z5:S7#WDM[$1#):1M,DS(F3M8<
M$G' '/(IQ\9:?Y#2):WSM%:B[GA\C;)!$<\NK$<_*W R>.E8]W:W5EJW@A7L
MKEQI\;K=-# TBQ$V_EC)4$?>/]>E.\02:E=:WJVG2Z;?R6TE@!9-9QD),Y5M
MWFR C&"1A2<$9X)(H VKGQ?I%M-IL1>>0ZK$9;0Q6[L)%";^#CJ1CCKR.*H:
MCXXA3PGJNL:?97,D^G%HY;:=!$\3@=6#'IR#QG(Z5B:;'>)+\/S+I>H1#3[:
M2*Y+6K_NB8!&-V <9;CGZGCFB[TR_P!1LO'EK!8W0DOV#VOF0,@F B5?E+ #
MJ"* .P36RMM:"6RN3>7*%DM5\LR,% W-][:%Y')(Z@=3BHK/Q9IM[I[W<8F6
M2.Z-F]JR 3+.#CR\9QGOG.,<YP#7-ZQ'?&\T7Q"?#=QJ%I%:O:W5A)$CSQAM
MI$BH3R<KC'7%.UK2[J\T.UU+2_#$4(M-02[_ ++>)$DN8PA1MRC*A_F) Y.
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
MD3^,.2Q(;(# * !D\<XS0!=U3P\NH:G!J<&I7NGWD,1B$ELR$,A()#*ZLIY
M[9JU8:8+)GEEN[B\N' 5I[@KN*CH %"J!R>@'OFN(\">)X=)\&:#;W5G>M#<
M3-;_ &S8#$LCROM!).XY]0",]ZZS4_$L.G+>O'975XFGKNNVM]G[H;=Q'S,,
MD*0V!G@CU% &S15>TOH+_3H;^S;SX)XA+$5XWJ1D=?ZUE67BRTOM&U#4TL[R
M--/EDBFAD5!+O3[R@!B,_CSVH W:*R;O7Q;F2.'3KNZG@A$T\,7E[HE.< DL
M 6.#P">GN,P6OBW3]1BLGTR.6]:]MVN8XX]JL$4A3G<0,[CC'KGZT ;M%<K>
M^+;M=5\.P6NE7+0ZJLDKAC&KX6(MLP6&&!()R1TP,U9L]2TQO%&M)!870U&V
M@A^TN1Q,OS; @W8/?G ZT =#17*6GQ!T^[MM,O%T_44LM3F$$=T\2A$D9BJJ
MWS9Y(Z@$<]>N-*]\2VUK=7UM#:W%Y)IL*S78@"_NU8$@?,1EB 3@=OJ,@&S1
M5'1]5@UO3(=1MHY4@G4-'YJ@%E/(/4\52N_%$%O]N:WLKN^BTX[;N2W"D1D#
M<5&6!8@$$@9Z^O% &W17&>+M?,VF:$^FQRW5EJFH6RM)$R 2QL2QC^9@<MMP
M0>,9!/:M[2]*M-%L[F33K"6'[0QG-F'7"N0,JHW;5SCL<9H U:*\QUS7+CQ)
M\)9M7N[26V?[3&R,'&TC[4$P-IR<+P=P&>U=G9>)X+O6Y=(DL+VUN%M_M,7G
MQ@">,':67!)')'# 'GI0!:UG1QK,$4)U"_LA%*)"UE.8F?@C:Q'53G^57+:W
MAL[:*VMXQ'#"@2-%Z*H& *YS1]?T2VT&ZU"SM;BV@.H/"\4GWWN&D"GJQ R[
M=R /:MNPU%KV>Y@DLI[62W*AA-MPP(R"I4G(_J#0!=HJCK%^VFZ7-<QH))@
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
MF!9@I!(&>OKQ6-XM\0^?HVB3:6DMS9ZKJ%JC21,H$D;/DQ_,P(+ 8.>.H)%
M'9T5E:5I5IHUM<S:?82V_P!I;SVLPZX5\<A1NV*3CL<9KAM=URX\2_"*]U2[
MLY;9Q/E&#KMP+K8%&ULG"C!R!F@#TZBL6R\307>O-H\EE>6DY@-Q"UP@59XP
M0"5P21@D<, >>E0R>,;*%K&66VN4L=0F$%M?$+Y3LV=O&[< V."1C\* .@HH
MHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB
M@ HHHH **** "BBB@ HHHH *P?&?AL>*O#-QI:S"&<E9()3T213D$^W;\:WJ
M* .=@UJ^DT9H-5T>]BU'RBCQPP^;'(V,95U^7!_VB,=ZYF/0]6TSP3X1TY]-
MFENM/U&&XN8X<-Y:*SECG."?F' ->D44 <OK3ZJ_B:SC.G75YHTEJV4MV5?W
M^[_EKE@=FWMTR>0>W,66E:Q:^$O#&GRZ-=+-IFLB>=4"MB,/*2PP>GSC'<\\
M5Z?10!QAL+ZX\7^(I%LIU@OM-CMX)W7",ZA\CU'WAS64^EZU_P (MX9NET!Y
MY]!58KC3K@IFX3RO+=EY(X(R,\G^?HY( R2 !W-+0!PFJZ9?:YX;FGTSPY%I
MLL,\%Q;V=S'&CW)C;<RN%) !' !/KG&:V/#<SWD_V@>%CHB)&5<SQQK([DCA
M=I^Z.<DXSQ@=:Z.B@#F/%MI>OJGA_4;2REO$L+UGFCA*[PK1LN1N('!([U7T
MZ.\@\9^)+Z?3KE(+JVMTA<)N$C1JP8#'NP SC-=?10!YG9Z;JMOX2\'6;Z3>
M&XTO4$ENHP@RB*'!.<X/WQT]ZZ&_L[W3?'L/B&.VFNK&XL/L<ZPKN>!@^]7V
M]2IR0<9(KJZ* //-6\+ZG>>'O%-W#:M]JU:[AN(+0D!MD+(1GL&;:QQ[CO6C
M"VI:AX_T[6/[$O+>R&G2P,T^Q61F=3\PW<=.V3[8KLJ9+$DT3Q2*&1U*LI[@
M]: /+]/=8M,CL[SP_KSZ3#?/>0QVL4<T&T2%TPX;<R=&X'/J1Q72V)FD^(-Y
MJZVEP=/GTN*.&X$9*R,&9S@=>C#M5ZR\'6=C$MM%J&IM9(-JV;W9,87^[_>V
M]L9QCBM\ *H50  , #M0!S/P\M+O3_!UK8WUI+:W$,DNY)0.C2,P(QUX84RT
MAO\ 3/'>N7;Z;/+:7\%NT<\6TJ/+5PRD9SG)&  ?PKJJ* /,H-*U:+X::)IC
M:5=_;K74(Y98 G*JLY<G.<=".]7WM;S1_%&IO-X5?6[+595N;>>*.-GA<HJL
MC[R-H^4'/0?R[ZB@"O8QO%8PQRQ11.J#='",(A]%]A7-'P_>P^.9I8%']CZB
ML=W=#/2XB.% '^U\C'U\LUUM% '#:I9WFD^,[S49/#;:[I^IQ1<PI&\EO(@V
MXPY'RD8.<U)K&BPZG'90ZAI%S8R0Q-+;7FE [[*0L?DRG7(QGC;D'ID5VM%
M'"FS\1QOX/U+4;.6_N['SUO1"4#@R1E5)R0/3<0<=:OZ?'=6WCW7=0EL;D6T
M]K D4HCR)&CW;@._\0QZUU=% 'F5MI6K0_#;P_I;:3=_;;*_ADFA"#*JDN\G
M.<=#ZU<U::>#Q7K,EGI.KR07MM#!<RZ<D4I9MIZAV&QPK =^#DCD5Z#6"WA2
MT-_<7UGJ&HV1NW\R=+:YQ'(V,;L$'!( Y&.E %CPQ-8R:#;0Z=;3VD%JOV<6
M]PA62(KQA@>_?/.<UA:1;ZCX;N]?LI=.N+R*^O);VSEA4,LAD S&QS\I!'5L
M#!ZUUMI:0V5NL$"D(,GYF+$DG)))Y))ZDU+D9QD9/:@#SZ?P[?Z-X6\(Z1%;
M37LNFZA!<730KE44%BY!.,X+<#KCM7H"L'4,,X(R,C!_(TH()(!!QP?:C(R!
MD9/04 >9-I6M)\*7\.'1;HWL-RJ@#:1(!<^:64@]-HZG')P,UT=Q'<O\1;'4
MDLKHV::;)"\WE'"NSJP!'7HOIUKJZ* .!TO3IAX3U2QU30)[J*ZU6622U=<,
M\,DN0Z\]0.>N1CZ5K^#M.U#2Y=1MGN;R?2%>/^S_ +=GSD&#O7GYMH. ,\\'
MZGIZ* .>U6%]6\16=A/:WBV%LK3FXC9HU:;H@W*0PP"Y],X]*Q]3TFYT+QUI
M6L:/97]Y%+"]MJ697F(C)!1LNQ.0V3@=OKSW-% '*>(-#O[GQ-8:AIHVQ7D#
MV.HMG!6$_.&'^UPR@]BXIOA/P_>:/J=_;S*!IMG-)_98'9)<.XQ_LGY1]6KK
M,C.,C/7%+0!YG>V?B+4K.UEO]#O9]2LM:BN)7WIY9A67($(W=-NW/ Z')KHM
M#BO(_'6OW4]A<0V][';"&9E^5C&K!A^;<>N*ZDD $D@ =S2T >8C3]=L/ &K
M^#GT6\N;A1.MK=1;3%.CN7#$D\-\QR,9KNK*]NQ-964NE7,2O:[Y)F9"L3C
MV'!/)Z\5J44 %<_XZM[B]\&:G96=M+<7-S T<4<:Y))_0#ZUODA1DD #N:6@
M##A,W_"$K&;2<7"V/E& I\^_9C;^??I7+?V?J2^$?!MI_9=V;C3+VWDNHQ'S
M&L:L&/H>HZ5Z+10!Y_;V=]HFN:I:7/A+^V(;Z\DNK.\C6(A?,.2DA;E0ISSS
MQVKLKFQDNM"FT\ND4DMJT):)<*A*XRH[ =JO44 >930:_+X#T_P])X=O?MVF
MSVR.R;/*D2)UPRL6&<J/P[XK1N[6]TGQ=J%[/X6?6K'5O*EC:)(GDMY%0(4;
M<0,':#G.![UWE% ''7MAJ=OXE\.:E'I.^.""XAFAM"H6W:3:5ZD<#!!(],XY
MQ6?865_HNI:AIESX1&JK<7DMQ9WZK$4*R,6Q*S<KM)/."3V'KZ#10!R>GVUY
M#\1;NY>RF%K)IT-NMPL>V,NC,2 ,Y YXJC;VE^MMXU#:==!M1DD:T'E_ZX&(
M(,>G([XKNJ* ."GL]0.D>"HAIMVTFFS0-=H(^8@L11OKR>V:L1VUZFO^,K@Z
M?=>5?6\*6K"/_7%8F0@>G)'7'KTKM:* /.S8:D/"O@NT_LN[,^EWEO)=QB/F
M-8XV5CUP>6'2H?$ECXAUG2M>L[G1KNYNUO%:RD5T\D6ZR(5V#=]\J#GC/)YQ
MQ7I.0,9/7I2T <H(-1B^(B:J=+G-K=Z4EN7#(?(<2LQ#\^C#IG)XK"D\/:OJ
M?AOQ':PVDMO=R:TVH6:SC:LZAD91GMG:>#TXS7I%% ')W=O<>)-;T&^-A<V4
M6F/)<W'VA-K!RFT1K_>Y.21Q@=>:Y^?2]5F^'?B73%TJ[%Y>W\\MO$4Y=7DW
M*<YP. <YKTRB@"H\?]H:4\1$D/VB$H=PPR9&.GJ*X9-)U>Z^'/\ PA=QITL=
M\JK:^?MS 8PXQ*']-HSM^]GC'>O1*0D*"20 .I- ')W=M<Q?$+2KF.RN9+.U
ML);>2X"9568J5]SPO) [UJ>+]/N-5\(:K86B;[BXM72-,XW-C@5LTA90P4D
MGH,]: .(U%=2O1X3E&C7D?V*[66X5E4M$@C*Y.">YZ#)P*IZOH.J:OJ/C"*V
MM)(_M\=F]G+,F(Y7@^8J?0$@#G@UZ)2 @]#F@#E_#<\U[<1R-X0_L1X5/GRS
M1QC+8QMC*G)'?<<# QSGAOC;3KZ6;2=7L=.35/[-F<S6+;<RQNNTE=W&X<$"
MNJR 0,C)Z"EH YBUO;J#2[B]LO"[V+3%(X;8PH)2><O($. HSTSG@^HJGX9T
MZ]\):W<Z)%:SW.BS 7$%TL8'DRG[Z$#'!QD8&!G'T[.B@#@=/TZ8Z#KUIJ>@
M7%U!?:U+,;9DPSP2."'7GJ,9QG(Q]*@G\.:U)X/\3:/:RWEY8RQH-*2].)NF
M77+8.W. N['0]N3Z+2 A@"""#T(H X368-2_M72O$@\-RZA;"U:UNM/D6-IX
M@6#+(JDD$Y!&,]#^3]=M;V[\/69M?#[VK'5+>Y%I#&@=(D926?:=N[@\ ^@[
M&NXR,XSR*6@#B=6TN\U?Q?J2I:W$5K?^'VL%NF3"K(S.<'OP&'..M6O"VI:\
M]E9:1?Z!<6<]FBQ7-U(R&!E48RA!RQ;'I@9Z\8/5@@]"#VI: /._#VGZAI$/
M_"/7?A%+J>&1EM]4,<;0/&6)#N2=P(!^Z 2<=NM=9XMT>7Q!X5U'2H)!'+<P
ME8V/3=U /L2,5KD@#)( ]Z6@#B[NVU#Q19:#9SZ;<64]E>PW5ZTJ@+&8@<A&
MZ-N. ".V2<=*M:7%=1_$/6KR2RN$M;JWMXH9S'\K,F[=[C[W4\<5U5% '-^-
M["\O]*LVLK9[E[34;>Z>)"-S(CY;&2 3CM43VLVI>*X/$!M+B&UT^RDBC5XR
MLL\CD9PO7 "]\9)]!FNIHH \_P!-\/:I>_!Y?#[6SVFI10A1'.  763>HSR"
M#@#\:OZ3<:A>0/);>#H]'OH('S)<)&%:7:0JQE3D@MC+' QQWKL:3(.<'IUH
M \ZLK36I]6\+:I<:%J!N;5I5U"6XDCW%WB*Y W<1ALGC P> :N^'W\0>'?M7
MAXZ'/<C[5+)97Z,OD>7(Y?,A)R""QR "3V]:[FB@#D[".ZMO'NO7\UA<_99K
M6".&41Y$K(&W =_XN_6I_A[:7>G^"-.L;ZUEMKFV0QR1R#D'<3QZC!KI:0$'
MH<T <?H\.H>&=3U^WETZXO+?4+U[ZTE@4,'9P-T;?W""!@GC!ZUF2^'-0T7P
M?X4T>*UFO9]/U*"ZN3 N0BAV=\$XS@M@#J:]$HH :C!T# $!AD9!!_(UYG)I
M.M)\*KOPY_8UT;V.Y8)C:5E!N3+N4@]-O<XYXYKTZB@#D=2M;F^\=Z?=)9W0
MM/[.GMY)_+P(VD*D9SSV_"LWPM:ZA86MKH-]X/C%Y9;8O[3\N,P/&IP)-V=Q
M;:.F,YZD<X[\$$9!!^E+0 44A(! )&3T]Z,@DC(R.M "T444 %%%% !1110
M4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1
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
MJDQF)HL\.P^]N _AQR1U'6K,-AJB7OC-VTNXVZDH^R'='^]Q"(\?>XY]<<4
M6[_Q7<?VMX;BTVR>XL]71Y]X90SJ(BP4 D8ZJ23CICFNAU'4+?2M,N=0NF*P
M6L32R$#)V@9.!7%V^EZS:6O@FY&D322:1"]O=P"2,.A,(C#9+8*Y'KG':NQU
MCSCHUV(;)+V0Q,!:N1MFR.4.>.>G- &7J-^=3TG4;.YTZ2*-[!YDD+JZ."#P
M"IZC@^G(P361X2\3)8Z!X6T^XTZ[C@O+6*WAO&"B-I1'G;C.[G!P<8/;CFHM
M.T"]TEM531[:_CT>?3G$>G7$@)2Y)X$>6.U<9SSC)&">S&TK6!X;\&6HTFX:
M?2KFWDNT#1_(J1LA.=V#R1TH WK[QC;6*75P]E<M965VMI<7&  KL5&0I.64
M%U!/Y9JE)#&OQ?A=5 :30Y-Y]?WR"L7Q%I7B36-,URTN=&FN[L7JR64YFC$0
MMUD1E6,%N'VJ<\#.3EN@K?-MJ,GQ%M=5;39DM!I36[R;T(21I%?!^;)P!R1D
M9H C^'T20)XBBC7:B:]<A5'883BJNLS?V=\4;.ZM[">\GDTB8"* #<Y$B8Y8
MA0,=R1^>!6EX,L[ZQ;7/MME+;?:M6FNH2[*=\;;<'Y2<'CH:35;2]MO'-AK<
M=C-=6B6,MM(8-I9&9U8$J2"1\IZ9H EL/&NG7NDS7K0W%M-!<BTELYE"RK,2
M $ZXYR#G.,<G&#5C2O$UOJ6LW6CO"]O?6T:S%"ZNLD9.-RLI/?@@XKF-2\)Z
MO<6FH:Q;6\1U*;58M0BL967:R1+L$;'IN9<D\XR0,]ZZ3P_/=WDC7$WAX:-&
M$V[)"ADD;(Z;.BC'?DYZ#'(!)JWB2+2=8T[2WL;N>74?,$+0JI7*(6*\D'/
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
M,='N!?F^\WR?,C^[]I\W.=V/N^_6N[U6R;6- O;$%H&O;62++=8RZ$<X],T
M<9XPU5=8L/#U[%ITXM9M8M6MKIRHRID&"5SD!AR,_CBNCU;Q;;:8M\Z6TEU'
MIPS=F-T!3Y0Q"AB"Q"D$@>OKQ7+36_B.Z\*Z)H\OARY%WI-Y:F5UEB\J1(F'
MS(2W.0,\@8JZMIJ^A^(M3 \,C6++4Y_M4$RO&&@<J R/N/"Y7.1G\: -&/Q7
M<7GC"PL+&T:;3KK3#>+,K*#(&9 K8)!  )XZG/3BI-0\<Z?IT!O9(9&TY+C[
M/)=JZ80[MA;;G<5#<9Q[@$<U!+I^JVOC;2]473Q<0G3&LYFMV54AD+JV<,0=
MG!Z GVK-T2QUO1!-H$GAJ*\59I#::H6C\ORV8L#(#\V5ST YQCWH VY/&'_$
MYO=*M]$U&YN+%X1+Y8CQMDSAP=W0 ?7GIP<5I/'\*:;?Z@FB:D\&FW+P79Q&
M#%LQN;[WS=>BYZ<XXJ;1[6_M_'7B"[FT^9+2]CMA!.63:QC5@W ;(^]QQ6.-
M*U@^$?%]B=)G%QJ=Y=26J%X_WBR !3G=@=.<T =#%XKBDURRTV33[N"/44=K
M.ZD"[)MJ[B, [E^7D;@,U2MO$.EV2^)=0@T>[BDT^7=?@!-\I6,'</FQ@*!W
M_"H+RRU.75O!]RFEW!CT\2?:OF3]UNA,8_BYY],\56;3-6:W\<*-*GW:J&%F
M-T?[W,/EC^+CGUQQ0!L6GC&*YU+3+673+VVBU6(O:7$H78[!-Y7 .X<9Y(&<
M<4LWC&VA82M8W/V/^T/[/-Q@#$N[;G:3G9NXS^F.:RI;'56/@QAI-S_Q+3_I
M8W1YB_<F/^]SR<\9XK,U/3/$FHV,OVS0Y[K4+;5HYUG,\>QH%E!5806^7Y0,
M@A<X)))XH Z:S\07]QXTU326T]_LUE!"R,KIDEMYW')[X  ]N<9J'1O$.B6O
MARXU&UL9K*#[=)$;<@&66X,FT@ $C+.?7'T%+9VNIV?CS4+]]-=[74+.W F2
M1-L31[]RL"<D_,,8!S[=L"/PSK<_A1T2Q:#4++76U2V@FD0"<"0N%R"0,@]^
M^* .NB\1J-8_LB\L9[6]>$SVZ%E9;A1U"L#C<.X..N>G-9<7Q"M9=-M=4_LC
M4$T^>Y^SR7#J@$#>88QN&[)&0,E00,]<\5++9W.M^*='UI[&XM(-(AG;;,%#
MR22*%V  G@ ')Z9(QGG'/C1M<_X5@=&_L:X%\+[S?*WQ\K]I\W.=V/N\?6@#
MT2YN(K2UEN9FVQ0H7=L9PH&2:R[/5EUKRH)-.E6UO;4SQREU9&3*C:=IX;YP
M<=.O)J_=O,VESR0VWF3&!BD$F/F;;PIYQUXZUR.@Z)<Z+K@NM'LKZQTN2VD:
M[TR:12BS9!41#<0#][)!V]/P */@3Q.NE>"O#=O<Z==FVNG%M]L 7RUE=VV@
M@G<03_%C'O72ZKXO@TL:E*;"YFM]**"[E0*-NX _*"?FP""?KQFN6M]#UN#X
M<>']*.D7!O;&^AEFB#Q_*J2ER0=V#QTYJ;Q+IOB'6K?Q'8SZ/-=F9/\ B62F
M:,0QQ[1QM+9$F=W..^,@4 :FKQQ?\+-\,7$8&Z6UO,M_> 5,?S/YT[P9%'!X
M@\61Q+M0:BN />)#39K35+CQ7X8OSI4\<%G:SI<,70^4TBJ%!PW/W><9Q[U:
M\,6=]:Z_XBFNK&6"&]O%F@D<J0ZA%7L21R.] '34444 %%%% !1110 4444
M%%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4
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
M[, &R#\RG/! )]JT+3Q--<:W=:/+I%Q:WD=K]JMTED0B>/=MSE20IW8&#ZT
M;]%<[X&UN^\0>&H-2OH!&\[2,I5@01YC# ';  '/6NBH **** "BBB@"EJ^E
MP:UI<^FW3RK!<*4E\M@"RGJ,XJ:RM5LK*&U21Y$A0(K.06P.!G ':IZ* "BB
MB@#+U;P]8ZU<VTUZ9V%ONQ$D[+'(#C(=0<,..AK4HHH **** "L"/P=IUO<2
MR6ESJ-I%-(9'M[>]D2(L3EB #\N3Z8K?HH CAABMH$@A18XXP%55& !4E%%
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
MGHH X[PK!K_AOP6FGOH9GN[*0HD8NHU$X:4DN#R  K9YP3@C%=C110 4444
M%%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4
M444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !11
M10 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%%
M !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M%%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4
M444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !11
M10 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%%
M !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M%%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4
M444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !11
M10 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%%
M !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M%%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4
M444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !11
M10 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%%
M !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M%%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4
M444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !11
M10 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%%
M !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M%%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4
M444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !11
M10 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%%
M !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M%%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4
M444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !11
M10 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%%
M !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M%%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4
M444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !11
M10 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%%
M !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M%%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4
M444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !11
M10 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%%
M !1110 4444 %%>:6FL7GCOXC:CI'VR>UT31@RO#;2F-KF0-M^9EP=N=W /8
M>M=:V@_8-3LKZROKJ&TMRYN+5[AWC9=C , Q."#C@<<YZB@#>HKS;P!JMW\0
M-0U;6=2N+A;&"40V=E%*T:(,9);:1N;&.3ZGVP_3/$-[H'Q5F\(W%U+=:;=Q
M^;:&X<N\!V%BN\\E?E8<Y[>^0#T:BO,_!>JW/Q&UW5=3OKB=-)LG$5G912M&
MC9S\S[2"QP!P>.3Z5U\/AZ6SU^"[M;^Z^P>3(DMG).SH'.W:RY)(X!&,XYXQ
MS0!NT5XYJ>J>(? 7B<Z^;N\U#P[<7<MO+;RSO+Y&'(P-Q.#QD'OR*] TO[%J
MFNW=[:7EQ/:7-A;RQ[;J3RQO:8$JN<*2%7IC&.W- '1T5XMX UFWNFU2#7M9
MOYYFU"&TLXFU29'.]ROR@/DXR"?I7H-[X4O;CP<^CPZW?1WL1D:VO1=2"3EV
M9 [ Y8;2%.?P[4 =117DG@C6]1UW2KGP1J,U[;ZW;3-Y]VURXE6(-\S!MV2P
M/R@#CD'D UZK:VR6=LEO&TC(@P#+(TC'ZLQ)/XT 345YI9ZQ=^._B-J.D?;+
MBVT31@5>&WE,;7,@;;\S+@[<[N >P]:ZUM!^P:I97UE?74-G;ES<VKW#O&R[
M& 8!B<$'' XYSU% &]17FW@#5;OX@7^K:UJ5Q.ME!*(;.RBF:-$&,DL%(W-C
M')]3[8=IFOWNA_%2?P=<W4UUIM['YEH9Y"\D!V%BN\\E>& R>./>@#T>BO(_
M#%RMUX_\5V&KZU?)86;L(!)J<L8B&\C@[QT%;'PJU35]<TO5HM3N+F\L(;G9
M97<K$/*G.?GX)QA>?>@#T2BO!=)UFY'@?Q'?W7B/4H]1L[L)8LVHR%CR/EV%
ML,#[@UOZQXT\2?V)X4T-Y&L=9UPHMU<! KQH7"*0.S,#D^GMV /6Z*X3QY9S
M^&?"+ZUH=_>07>G-&Q,ER\JSJ6"D.&)#=<YZ\5SGQ%\3W=_\--#\2Z;=W>GW
M%W.B2?9KAXP/DDW+P>1N7KUXH ]>HKROQ5J=UHWBKPY#X6U2[NKFZDQ=V)O'
MN$9,KRRLS;>"W/'3/:O2-6OCIVFS7*1^;* %ACSCS)&.U%_%B!0!<HKA/A3X
MHNM>T.ZLM5=FU33;AHY]_P!X@DD$_0[E_P" U4^(NGW.B>"M8UB#5=26^>Y5
MXW2^E58E:50%50V -I].I- 'HU%<=X3T9[O0_#VL'4=0:5[)6NDDO976??%R
M2"Q (8@@C'?VKF_AOJ5RWB;Q?)J&HWMQ;Z7,1"DUU)(L:!I,X!..BC\J /5:
M*\X^'=_>>/?[3U_5[B?R%N3;VMG%,T<<*A0Q.%(W-AAR?>ET'Q!>Z9\3M1\$
MWEU-=V,B>;9232%I8LH'*;SR1@MR23\HH ]&HKQN[U?Q!X!\2C6Y[N\U#PW>
MW<]N\4LSR_9]LKJ -Q.#A<CUY'O7HFBFUNM?O;ZTNYKBWGM;>6+_ $AWCPQD
MR54G SM'04 =!1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%%
M!1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %
M%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 44
M44 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !111
M0 4444 %%%% !1110 4444 %%%% !1110 4444 >:V>@ZEX(^(VH:U!87%_H
MVKAC(;5/,DMW+;N4')&<] >#[5V]MJ3:G,(X=/N5M"I\V:ZB:#/'W51@&)]2
M0![FM.B@#SCP/HU[\/-1U72[RTNKC3+F436=W;0--Z@JZH"P.,=L<'FI-)\-
M7VM_$VY\9:A:26=E;IY-C#.NV27Y-I=EZJ.6.#@\CTKT.B@#S?P;H=[\.M:U
M2PGL[FZT>]=9;6ZMHFF,9&?E=%!8'!'.,<>_#M$T_6[CXI:AJ1&JIX=2(&W6
MXEE1/,VIG$3D,>=_;'Z5Z-10!SNG6EMK>D:GINHV$X@GN9]T=Q"R;T9R589'
MT([@^E8GP]\+7O@N\UVSNGEGL@8FLI=I;='F0D #N">0.YSWKO:* /(?A]H\
M^EKJXU[0M1C\V^BN[4BT9SE'+#! .#G'IP:[C_A(]371+F_.A7WVB2=DM+,P
MDN$& &?'09RWK@X&:Z:B@#RCQMX3U/3]0TGQ9X96[N]:23_2<1-F<8R68?PC
M^';Q\I 'W:]+TJ^?4M-ANI;2>SE=1YD$Z%6C;N/?ZBKE% 'FEGH.I>!_B-J.
MLP6%Q?Z+JX8R&U3S)+=RV[E!R1G=T!X/M7<6VI'5)O+AT^Y6T*GS)KJ)H<_[
M(1@&/U( ]S6G10!YQX'T:]^'FH:KI=Y:75QIES*)K.\MH&F]BKJ@+*<8[8X/
M-2:3X<OM8^)ESXTU"UEL[.VC\JQAF7$LGR;2Y7J!RQ //(XXKT.B@#R#2?!S
MZUXO\61ZUI5W#8ZLS_9+E[=A@[\A@<?*>AYQZ5O_  ZF\0Z!;7'ASQ#I]TT-
MBQ%G>QQ-(DD8_AR 3[CVX["O0** /-/A)HMWI:ZJNK:1-:SS77G0-/ 1\N.S
M8X^F:O?$?PEJ&JWVD>(M&B$]_I$RR&W+!3,@8-@$\9!'3OD_CWM% '">.)[_
M ,6>%VT+1=+OOM-^\8E:ZMG@2W0,&)9F !Z8PN>]8?Q#\)7L/P[T7PQHME<W
M\MG,KN8HB00$<,V>@RS=,YYKU>B@#RS6O#VJ>'O%%AXR\):=-,ER!'J&GI&4
M9AW.TXQG'X, ><UUMU/-KFN6-ND>IV%O!&;@3_9=N9B-H0[U(X4N3D8R1@Y%
M=-10!Y6NC:MX4^+7]J:?::AJ&FZA'B_E$'W68G)PJ@'!"MP.Y'6NC^*=G=ZI
MX%N]/T^TGNKJX:/9'%&6/RNK'/IP.]=C10!A>#A):^"]+@N8)X)K6TCBECDB
M8,K*H!&,<_A7&?#O1KZU\2>+/[4TR[M[;5IB86EA8*Z%I"><<<,.N*]0HH \
MZ\!:9?\ P^;4]$U*TNI[&2X^T6EY;6[S*X("D,J E6PJ]1CKSTR[P]X;O[_X
MBZCXXU.UDLX-OEV-O(/WI 0)O91R. >.OS>W/H=% '.:?8VNN^'K_2]3L)U@
MFN;G?'<0LA97F=U9<CT(([@UD_#?PKJ'A&;6=.NY'FMA+&;.8]&B^8X'H02<
MCU/O7<T4 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%
M% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110
M4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1
M110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%
M% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110
M4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1
M110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%
M% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110
M4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1
M110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%
M% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110
M4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1
M110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%
M% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110
M4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1
M110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%
M% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M %%%% !1110 45E-XHT)+F6V;5+=9X?];&7^9/J.WXU>L[VTU"V6YLKJ&Y@;
M[LD+AU/XB@">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 X2
MQNIK3XI^)C!IUQ>%K6TR(&C!'RGKO9>O]*K^#);J74/%T]GY-CJDURLBZ5<(
MV+<A2 SXP#YG4E21T.3TK:MM!UJS\6:IKL,MBPU".*,0N7_=A!@'('.<^E/T
MO0DT+5-6\3ZUJ4#75XJB60+Y4,$2#  R3Z#))_*@"+3/$]_JWAO2[F#[,FIW
MES]GFA>)ML3*6\T$;L@J%8\GGCUK?M_[2_M*[^TBU^PX3[*8]WFYP=^_/'7&
M,=NM<_X:TRQE\4:OKVGW'G64[@0[&!B,I5?.=".#G:@SZJU=!;IJ*ZE>/<30
M-9,$^RQHA#H<?/N.<')QC% %RBJU_J-GID GOKF.WB+!0\C8&?3]*SO^$P\.
M?]!JS_[^"@#:HK%_X3#PY_T&K/\ [^"C_A,/#G_0:L_^_@H VJ*Q?^$P\.?]
M!JS_ ._@H_X3#PY_T&K/_OX* -JBL7_A,/#G_0:L_P#OX*/^$P\.?]!JS_[^
M"@#:HK%_X3#PY_T&K/\ [^"C_A,/#G_0:L_^_@H VJ*Q?^$P\.?]!JS_ ._@
MH_X3#PY_T&K/_OX* -JBL7_A,/#G_0:L_P#OX*/^$P\.?]!JS_[^"@#:HK%_
MX3#PY_T&K/\ [^"C_A,/#G_0:L_^_@H VJ*Q?^$P\.?]!JS_ ._@H_X3#PY_
MT&K/_OX* -JBL7_A,/#G_0:L_P#OX*/^$P\.?]!JS_[^"@#:HK%_X3#PY_T&
MK/\ [^"C_A,/#G_0:L_^_@H VJ*Q?^$P\.?]!JS_ ._@H_X3#PY_T&K/_OX*
M -JBL7_A,/#G_0:L_P#OX*/^$P\.?]!JS_[^"@#:HK%_X3#PY_T&K/\ [^"C
M_A,/#G_0:L_^_@H VJ*Q?^$P\.?]!JS_ ._@H_X3#PY_T&K/_OX* -JBL7_A
M,/#G_0:L_P#OX*/^$P\.?]!JS_[^"@#:HK%_X3#PY_T&K/\ [^"C_A,/#G_0
M:L_^_@H VJ*Q?^$P\.?]!JS_ ._@H_X3#PY_T&K/_OX* -JBL7_A,/#G_0:L
M_P#OX*/^$P\.?]!JS_[^"@#:HK%_X3#PY_T&K/\ [^"C_A,/#G_0:L_^_@H
MVJ*Q?^$P\.?]!JS_ ._@H_X3#PY_T&K/_OX* -JBL7_A,/#G_0:L_P#OX*/^
M$P\.?]!JS_[^"@#:HK%_X3#PY_T&K/\ [^"C_A,/#G_0:L_^_@H VJ*J:?JE
MAJL;26%W%<HAVLT;9 /I5N@ 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 *CF
M@BN87@GB26*0%7C=0RL/0@]14E% #(88K>%(8(DBB085$4*JCT '2GT44 5K
M_4+33+-[N^G6"!" SOT!) 'YD@5F_P#"8^'_ #FA_M*/S$7<R;&W*/4C'2M>
M:"*=565 X5U< ]F!R#^!&:Y'3?\ DKNL_P#8,M__ $(T =''K>FS2V,45R)#
MJ,;2VQ16*R*H!)SC X(ZXJS=W4%C:RW5S((X8E+.Q!.!^%85YJ=WI?B_1=$M
MX[9=/OXKAB-IWJT8!X.<8^8=NU97AZ;5+BR\7-?7L=PL=]<Q8$)4Y6) ,'<0
M% XQC/?- '86%_;:I807]G)YEO<()(GVD;E/0X/-6*X3P_K;Z?X0\)Z=;J?/
MOK(,'$+2[$1%+$*O).64>G.>V#JZ=?\ B>^TW4X#;007UO+MLKJY@>.&X0\A
MBF=P(Y!YZXH Z:BD7.T;L;L<XZ4M !1110 4444 %%%% !1110 4444 %%%%
M !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M%%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4
M444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !11
M10 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%%
M !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M%<[:>'[^W\;7GB![JW:*ZMTMS (VW*%.0=V>3U[5T5% &%J6AW=[XKTC6([B
M%(M-293$R$M)Y@ )SGC&T=JKVGAJ_L7UU(=0@:VU6:2>-'A.Z.1U"G+;N5&W
M@  ^]=+10!QC^";]-!T.&SU6.VU70AMMKH1$I(I4*RLA/1@!GGM6Q'I^OKI%
MSOU:W.K3 ;)A;GR(<'H$)R>_).23Z "MNB@!%R%&X@G') Q2T44 %%%% !11
M10 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%%
M !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M%%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4
M444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !11
M10 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%%
M !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M%%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4
M444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !11
M10 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%%
M !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M%%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4
M444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !11
M10 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%%
M !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
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
MY7"C)]S7-P^- =6T^TGMK?R=05MDMO=B8P,!D"50H"Y'<$C/'O6%XUU:;7?
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
MAQ*H-NVT;R5Z!3C/!XP/PP-,BU:TTF"]E\+PWFFPS/J,)AU0)$N27#I$RC&
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
M8 5"!MSQDD_0#.1#X>TC5M-\+ZI87-H@N)YKB2$),"&\UF(!/;&>?TS76T4
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
M-_9K7*7N[+E1(JE,8X&3GJ>@K,N/',Z:$=>MM/CET_[:;4!YBDF/,\L2'Y2
M-W;KCGVJX=*U&+QQ!K+^2]E#I;6DDKR8<L75R^W&,?+Z]ZYG3[?5GM'U.+0=
M.U+39KM[^(KJ;PQL-Q*OY14J#@ \]^3S0!TD_B36/^$DET&VT>V:Y6P6[5WO
M"$Y8K@G9D8(/0'/'2F6?C>*Z\/Z=?O;I!=W\[VX@DE^6-T+;R6 ^Z-A[<Y [
MT6=GJ5SXR7Q,EI&ME<:2ENL;RXE5MQDY7&!]['6LBV\(>(;7P_8_9GLX-7TO
M4)KNWS(SQ3)(6W(QP",A\?A[\ &I%XZ6*WU4W]D1)I\D:1-;L6CNS)P@1B!S
MDX([>M5+TWY^)WALWUK;1$VMV5>"0MN^5,J<@=/7OGH*LZOH7B#Q1X<GBOWM
M-/O@\4MI%"YDCC>-MP+M@$YZ<#@>M']G>)=1\4:%K%[8V%LMA'/'.B7;.3Y@
M497Y/]G('ZT =?15/3GU%XI3J4-O%()G$8@<L#'GY2<CKCK5IB0A*KN8#@9Q
MF@#SOP=>6]A'XJ+Z3<W?EZ]>,/(MA)P"ORCW]O>KOBJWMD\&Z.\%ND*-J5I,
MB*.(R\P8@>@^8U8\+:7XBT!=6$]A93'4-2FOE*7A&T28^4Y3MBI=<TC7]7T"
MV@:*T%VM_'<M&)B(XHXW#*BMMR3A1S@<D]L"@"SJWBHVM[>V5BEM)/8QJ\@N
M)BF]F&X(N%/.,')Z;AUYPEEXK?5Q80:?9&.\N[0W4D5T2GV= VWYN,DEL@#C
M@$_6K=Z7XDTSQ1=:QH<=E=0:I'&+NUNIFC,<B+M#JP!R-N 1CM3=2T/Q%;:W
M8>(=+DM+R^2U:UO;>9C$DJ%MXV$ [=K$XSGC]0"'6/$7B :?HCKIR:?-=:M'
M:7$4TIR<,2-K!?N-MZXS@XQWJY>>)=<37Y]$LM#MY[J*R2Z4F\*HP+%2,E..
M0<>OM2ZWHVNZGI>G3%K1]0L]2BOF@\QEBPN1Y:OM)Z'[Q')SP.E26VEZNOCM
M]9GAMOLLNG):L4F.X.KL^0-O3YL=<T *_B:]N;?4[K2=/BNH-+E>*0/,5:9T
M&9 F%(XZ GJ0>@YJN_C62YO-"CTK3TNH-;@EE@D>?RRI102&&TXY(R1GH>#2
M6&AZSH,FLVFGQ6]S9ZE<275O))*4-O)(/F5A@Y4'D8Y[>]0V_A*\TK4?"JV"
M12V>B0313/))M>0R* 6"X/<$XSWH D/BRYF\+Z]<WFCP/<Z.\L5U:>?NBE54
M#$ABO(*GH16BFO-(^FZ?8VT1O+NS^U%&;;'!$ HSP,GE@ ![],5CMX<UMM-\
M76OD6H;6WD:W/GGY=T83YOEXQC/&:==:!X@M+G1=:TI+1]0LK+[%=VDTI"31
M\'Y7 X(89Y'_ -< Z/1+^]U"Q:34-.>PN(Y7B:,MN5MIQN4\94]1Q63XA\57
MFAPZG='34%KIP0A[B;RS=DC<PBX(.!Q[G(XQFMO3%U 6I?4VB^TR-N,<))2(
M8 "@G!/3.2!DD]*Y+6O#'B#49O$<*BQGBU.#9:74TK;[==F/*";> 6YR".N3
MGI0!T$VNO-J4.F:;#')<R6HNW:9RJQQDX7. 223GCV)ST!K0^);N2WTV"?26
MM-5U!Y$6UFD^6,1YWN6 Y7&,<9.X=.HS9]#\26.JZ?KVF1V,UVMBME?64DS*
MC*#N5D?;U!)ZBIM:T+Q#<MI.M6D]HVLZ;+(Q@8L('CD #1@XSP%7!(Y.3@=
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
M !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
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
M( )+B$&3'3>/E;'X@UGIXGD@U#Q2)]+C4Z+#'+F!]SW(,;.,G P< #'..>M
M'4T5B:%K$^L;+B.6RNK&6'>EQ:N3A\C*$'H0#]>O Q5C5M0O+.:UBMK=#',7
M\Z[F.(K957.6Z9R< <CZT :=%<G8>-OM>B)<FVC:\DU)M-BCCES')*&(W!L?
M=V@MT/ [U:G\0WVCP:M<:Y8A+6PB66*ZMS\MP"/N!2<A@<#KCD=* .BHK!.K
M:O8WBG5-/A6P:V>>6Y@D)%L4&2K9^]D=",=.E4(?%]_)<Z6ZZ9YUIJ3!2(DD
M+VNX95G.W:5[$C&,]Z .MJAJ>BZ?K'D?;X#-]FD$L/[QEV..C#!'(['M7*/X
MU\1/I6IZG:Z!:/#I%W-#=(;L[G6(X8Q_+R0 3SCV!JPFO:EJ7C725L)(/[,N
M]):\C1]P9@S1\MCN >![F@#L0-J@#/'')S5:VU*QO+FXMK6[AGFMB!.D;AC&
M3G ;'0\'BN<O_%U[IMQ;/=V4$$5QJ0LUMI),3F,OL$P[8SSC'0]:SXI=9@\=
M>+#H=C:W,Y6S9OM,QC7B)N!@$DGWP/4T =G=ZE8V,D$5W=PP27#B.%)' :1B
M< *.YY[5$NB:6NLOK(L8?[0= C7.WY]N,8S].*XW5]=B\2Z!X4U1(&@:37[9
M9(7.3$ZLZLN?J#6YJGB>XBNM1M=,ABEETY5WK(KGS7*[_+7:#CY2O)[GI0!T
MM%4M(U ZKI-K?M;36K3QAV@F4J\9[J0?0U=H **** "BBB@ HHHH **** "B
MBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ***
M* "BBB@ HHHH *R/%6FW6L^&-0TRR,(FNX&B5IG*JN1C/ )_2M>B@#E9=!UB
M36_#5_LLA'I,$L<Z^>^6+HJY7Y.<;<\XSGM4=GHGB"QDUJ2./39/[1OUN5C>
M9RK1X571OW?&57J,\FNNHH X9O 4AT/Q)868@T^+6%3R+1'+10.!RW3C<<9
M'  ^E7KK1M?O-9\.ZG+'IP;3#*9XUN'&=Z;,*=G..O.,]/>NKHH YK4-'U>/
MQI%KNF"SECEL?L4Z7$C(8\2%PZX!W=3QQVY%8D/@C7;?P[91PW=E'JVF:A)>
M6KY8Q2!V8LC\9&0V.,UZ!10!R^HZ+KOB'PKJECJDUG;W5[!Y444!9HHCUR6(
MR23UXX &,\Y9J6BZ]J0\/RR)IZRZ;=K<3J)WP0$*[5.SG[V<D#T]ZZNB@#E[
M+1-6T'6-7FTM;6YL]4F^U!)Y6C:"<C#'A3N4X![$=/>J</@R]TO_ (1>'3GM
MIH-$>62=IY&1I6D5@Q4!6'5B>3[>]=I10!R<.B:_::KXAO[==.)U.6"2%7F<
MC"!597^3@,H;D9QG\:G\-^&?[%UC4;^&WAL+:]6/_0;=RT8=<[GZ  G(& .V
M>^!TM% '/:]HVHWGB'1-7TY[;=IWGI(EPS %9549& <D;>G&?455LM"UC0KK
M6(M,%K/9ZG.]U&9I61K>5Q\^0%.Y<C(P1Z>]=710!G>']&A\/:#9Z1;N7CM8
M@F\C!8]2?Q))KG_^$9UN"T\4V-N]@\&LR330/)(X96EC"$, I  QGC.?:NQH
MH X^3PYK+0>%4"V.[1"IGS</A\1F/Y?D]\\X]/>FV&A>*M#O;NQTNYT]](NK
MAYXI)]_G6F\EF4*!AL$DC)'O7944 0S6T5Q:26LZ^;#+&8W5^=RD8(/U%<[X
M?T?6O"MD=)MQ!J6G1,?LCR3&.:)2<[&^4A@,\-D?2NHHH X@^#]6/ACQ+9>9
M9B\UZYEF"^8WEP!P!C=MRQ&/[HJ_K6C:W?Z5HZP?8C-93I)<VDLS^1<*JD8W
M!<\'##*XR/:NHHH X.[\(>(+FP\46OFZ<?[<97C.]UV'8JG/RG@;?QZ_+TK5
MN=%U>X\0>'=2\NR5-+BF2=/M#DL9%5?E^3G&W/.,^U=/10!Q)\%ZG/HVNZ/-
M=6T,-Y?27MG<1%C(CM()%W @ ;2,<$YSVQSI6-AXDU.RFL_$SV$<+P/"RV#.
M3-N7:6)8#:,$\#/)[8Q7244 <GX<TSQ=IT5MI6HW>GR6%EM5+J'?Y\T:_=4J
M1A3@ $Y/'N<U;\<Z1<:SX6N(;--]W Z7,"?WWC8-M_$ C\:Z&B@#FO$EC<^*
MM LCI#V[*US!=;IY&0;48-CA3SQCGI3TTG54\<3ZYY=F;:33UM0GGMO#*S/G
M&S&"6QU]_:M^.&.'?Y<:IO8LVT8R3U/UI] 'G\'@K7[;P_I@M[BQBU?2+V:Y
MMV\QWAE61F+HWR@C(?'&>GOQM:AI?B'6?"NJ6=ZUC'>W]N8(X8Y'\F$$$9+%
M<L>>> . /<]-10!R5]H.M>;X;U&S2RDO-'1XI8))F6.170(2KA"<C:#RM9\_
M@?5[_3]?@N;NTBFO[Y+ZTFBW'RY$"XW CI\N.IZ_A7>T4 <C_97B;4/$F@ZO
M?P:9!_9R3I.D-P[[_,51N7*#'W<X/3U.>*LGA/6Y/#OBC33]@$NM7DL\+>>^
MV-7"KAODZC;V]:[BB@#E[C1-8N-=\-ZAY=DJ:5'*DZ_:')8N@7Y?DYQC/.,^
MU<[96VJ7R7FL65AHFHZ9=7KW:%[Z6%7"M\K/& 8]WR@Y/.0">:]*K''A'PXM
M\;T:)8BX+;RX@7EO7'3/O0!?TZ[-_IEK>-"T!N(4D,3')3< <'Z9KBYO!WB!
MO VI^&8Y-.(GG=K>9I'&4:7S"6&W@C.,#/UXY[VB@#F[S2-7N?%^EZTL5D(K
M2VEBD0W#[B7V]/DZ#;[9S4&A^%KN+PIJ6@ZQ]G"7LEP0]M*S_+*6/\2K@C=[
MYKJZ* ./7PUK%_H.G>']7-H;:REB,MS%(Q:X2(@H-A4;2<+NY..<9SPR[\-Z
M\EYXEBL#8M9ZY&6$DLC"2)_*V%=H&"#CKD8ST/2NSHH \^OK#5$_X1G0;<Z7
M-JFF6AEDC>>2+*JHB#)(HW#)SD8P>_3E\^FZQJOAK6?"R:7IUA=RHKF5+MY8
MV\QB69V*[M_RYYSG(YKKM4T'2=:$?]IZ=;W9B^XTL8+)]#U%6+'3[/3+86UC
M:Q6T(.=D2!1GUX[T 8-SHNK7'B;0=4V6:Q:;#-'.OGN6/F!1E?DYQM[XSGM5
MGQ=I.HZQI4,.FR0"2*ZCFDAN&*QW**<F-B 3@\=CTK=HH XE_#&OO<>)I2VF
M@:Y9)"BJ[@1.L;)C.WD#=G..<=!GB>3P[K3)X5PECNT4CSQ]H?#XC,?R_N_0
MYYQZ>]=?10!C^*] 'B7P]<:8)S;R/M>&8#.R12&4X],C\JIMI&IZQJ.DW>LQ
M6L']ELTVRWE:033%=H/*C:HR3W.<>G/244 <._A37)/#/B72F%@)=8NYIX7%
MP^U!)CAOW?48[=<]JT9=$UB;Q!X>U%DLECTRWFBG43N2QD51E?DYQL[XZUT]
M% ''-X9UEHO%J8L?^)Z&$!\]_P!WF+R_F^3\>,^GO3I/#NM,OA7"6.[12//'
MVA\/B,Q_+^[]#GG'I[UU]% '&Z?H7BK0[N[T_3+K3VT>YN'FBEFW^?:[R690
MH&&P22,GZ^E=+JMI<WFBW=G9W36UQ-;O'%/GF-BI ;\#5VB@#B;'PSK\>H>'
MKJ:/2H$TN&:":*%W;<'"@N"5&22O0XQGJ<U)X=T'Q/H,*Z$EU8OHT,A\BZR_
MVE8BV=FW&W/)&[/'H>E=E10!Q]MH7B;1-9U)='GT^33-3N6NB;HOYEM(_P!_
M  PX)Y R/\7WVA>(=.\2-K/AZ>SG6[@CAO+>_9EW%,A9 R@\X.",?_6ZVB@#
MAM<74;?Q?X-#O#=7NZ]9\DQH<Q@D+P2  <#.>@SZU;O?"-UJEGXCEN)(8;W6
MH%@C56+)"B*0@)P"2223QWQSC)Z"YT;3[R_@O[BV62ZML^3*6.Z//7;SQGOC
MK5Z@#D9M%\2RWNB7K?V9*;&)HYK1Y9/+5B%"RJ=OS,,'J!C.!ZUG?\(=XA7P
M]_9GF:;(R:Q]N1_,D0,@E,F#\IP3G&.<>IKOZ* .5OO#5_J?B>\O+E;9=/O=
M'.FRA)F,JY9B6 V8_BQU]_:E\-Z=XLL(+73-5N=/:SL@$6Y@+^=<*O"@@C"]
MLG)SC'?-=310!QFB:#XJT(-HEM=6#Z*)&,%R^_[3#&S$E N-I(R<$GCK@]*W
M/%IQX.ULG_H'S_\ HMJUZ@O;*VU&TDM+N(2P2C:\9)PP]#ZCVH Y+2](O]=\
M-^&(;R.WAM+);:Z9DE+-,40%% VC S@GD],#.<UHZ+HNHVFMZ]<WR6AM=4E6
M1!%,S.H"!,,"H'(&>#6Y9V=O86L=K:QB*&(;40$X4=@,]![5/0!Q%MX2U>#P
ME-X/:6V?3V+11WOF'S5@9LE2FW!< D YQT/;!L77A[6])\2MJWADV+PW5M';
MW5I>.R >7D(ZLH/0'&/\CKZ* .2U70/$"W^G:YI-Y:2ZI;1/!<QW(98;B-V#
M%1C)7:1QUXQD^MR>QURYL(DOH=-OO.D)O+-R1#Y>W 5"5.2" <D#.3TXQT-%
M ''Z;X6OM'T8Z;!;V5U937LLLNGW$C-'' PXC1BIR0P#<@#DCWJ72M,;P9X5
MU)1]UII9K6TC<N(MV D*$\G+?JWXUU=,>*.1T=T5FC)*$C.T],B@#)\(Z,WA
M[PGINE2$&2W@ DP<C>>6Q[9)K/AT77+77/$NI6[62-J<40LR96)1XT*C>-G0
MDYX)_&NIHH Y?1/##:?XHGUJ.TMM-2XM?*GM;64LDTNX'S"-J@8 (!QD[CG'
M>?Q%I.K7NL:1?:>;6:&R>0S6EV[(CE@ K@A3\R\XR._:NAHH X ^!]<;2KN(
M7UE'?1:RVJV$RA]I<DG:X/0$$C S]36Q=:)K'B7P]?V'B"2UM6NH/*CCLBSK
M&<YWDM@DY X[ 'DYXZ>B@#F-/T[Q-?V#:?XEEL!;^0\+O9LY>YW*5W-N "C!
M)P,Y..@&#%X<TSQ=IT5MI6H7>GR6%EM5+N+?Y\T:_=4J1M4X !.3Q[G-=92$
M!E(.<$8X.* //O#MOJFH:3XJT^SCMA'=ZQ?1"X>4YC#-ACMV_-@'(YY[XZUL
M_P#",7FG:]HUWI+6QM;#3SI\B7#,&"94AEP/F/R="1]:W-.TC3])65;"V6W$
MSF20(3AF/5C[GUJ[0!Y_+X/\2R::]FTNF2R1ZJE\MU)))YER%DW /\ORD#@8
MW< #CK6U%I6M:=XEU35+6.RNDU.* $23-$8GC4KTVME3G/7(_6NFHH XRX\&
M7MOHFAZ=I\MO,^GZFE_<RW#M'YK!F9L *V,ECCT '6IKG1O$FF>)[S5- DT^
M:VU,(;JVO&=?+D50H="H.00!D>U=;10!FQ1ZQ#<V49DM9[;RW^V2ON60R<;=
M@' 7.>">!BM*BB@ 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@ HHJCK.J1Z)I-QJ4T$TT-LADD6$*6"@9)
MPQ'0"@"]17.'QE#%I,6KW.CZG!I\L:R_:3''(%0C(9E1V8#!STXK=M;JWOK6
M*ZM9DF@F4/'(AR&!Z$4 345'--%;P23S.L<42EW=C@* ,DFI* "BBLFTUZ.[
M\1WVB?99HI;**.4R.5VR!R0-N"?3OCZ4 :U%%% !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 5B>-?\ D1M>_P"P=/\ ^BVK;JCK.EQZUI5QILT\T,-RACE,)4,5(P1D
M@XR#0!3\,^5_PA&D>?M\K^S8=^_[NWRQG/MBN%\"33Q>"-+B%]+;VL^IS"WM
MX@?.NH1N(1",%?F!)/& #R*[,>#[=]*BTFYU34;G3XHUB%LTB(K(!@*Q158C
M Q@GGO4^I>%K#4%T[RGGT]]+;-I)9L$,8*[2H!!&TCC&* .#UN[O;_X;>+(;
MNXNLZ=J;0PAY<N(\QD([ _-C>>I/;K75W]Q=-XFM_#=M+(T2V+7;E[QXI)29
M-H^=5+87G@8ZCL,5/_P@NDFPU:Q>6\>#5G\R=7N"VU\#+*3W^53DYZ>G%.U/
MP79:I%9-)?ZC%>V.?)U"&XVW'/W@6Q@@^F,>F* ,<7NOZ;)HWAS5-0C>XU"_
MF3[7!(6<6Z)O",Q5<2'(7('3D<G-3Z+9FT^).NPK<SR*VGVQ0ROO:,%I. QR
M3SD\YZUIWG@S3;[2X+*6>\$MO,+B*^$W^D++_?WD')QQ@C&,#' Q)8>%K>QU
M>;5CJ%_<W<\"P2/-*N& S@X50 >>W'MF@#1TRSET_3H;2:\FO9(EPUQ/C>_/
M4XJW533+$:9IT-D+JYNA"NWSKJ3?(_NS=S5N@ HHIDKF.)W6-I"JDA%QEO89
M(&?J: 'T5B?\)!??]"IK/_?5M_\ 'J/^$@OO^A4UG_OJV_\ CU &W16)_P )
M!??]"IK/_?5M_P#'J/\ A(+[_H5-9_[ZMO\ X]0!MT5B?\)!??\ 0J:S_P!]
M6W_QZC_A(+[_ *%36?\ OJV_^/4 ;=%8G_"07W_0J:S_ -]6W_QZC_A(+[_H
M5-9_[ZMO_CU &W16)_PD%]_T*FL_]]6W_P >H_X2"^_Z%36?^^K;_P"/4 ;=
M%8G_  D%]_T*FL_]]6W_ ,>H_P"$@OO^A4UG_OJV_P#CU &W16)_PD%]_P!"
MIK/_ 'U;?_'J/^$@OO\ H5-9_P"^K;_X]0!MT5B?\)!??]"IK/\ WU;?_'J/
M^$@OO^A4UG_OJV_^/4 ;=%8G_"07W_0J:S_WU;?_ !ZC_A(+[_H5-9_[ZMO_
M (]0!MT5B?\ "07W_0J:S_WU;?\ QZC_ (2"^_Z%36?^^K;_ ./4 ;=%8G_"
M07W_ $*FL_\ ?5M_\>H_X2"^_P"A4UG_ +ZMO_CU &W16)_PD%]_T*FL_P#?
M5M_\>H_X2"^_Z%36?^^K;_X]0!MT5B?\)!??]"IK/_?5M_\ 'J/^$@OO^A4U
MG_OJV_\ CU &W16)_P )!??]"IK/_?5M_P#'J/\ A(+[_H5-9_[ZMO\ X]0!
MMT5B?\)!??\ 0J:S_P!]6W_QZC_A(+[_ *%36?\ OJV_^/4 ;=%8G_"07W_0
MJ:S_ -]6W_QZC_A(+[_H5-9_[ZMO_CU &W14%G</=6J326LUH[9S#-MWKSCG
M:2/?@]ZGH **** "BBB@ HHHH **Q&U^^#$#PMK!P>H-M@_^1J/^$@OO^A4U
MG_OJV_\ CU &W16)_P )!??]"IK/_?5M_P#'J/\ A(+[_H5-9_[ZMO\ X]0!
MMT5B?\)!??\ 0J:S_P!]6W_QZC_A(+[_ *%36?\ OJV_^/4 ;=%8G_"07W_0
MJ:S_ -]6W_QZC_A(+[_H5-9_[ZMO_CU &W16)_PD%]_T*FL_]]6W_P >H_X2
M"^_Z%36?^^K;_P"/4 ;=%8G_  D%]_T*FL_]]6W_ ,>H_P"$@OO^A4UG_OJV
M_P#CU &W16)_PD%]_P!"IK/_ 'U;?_'J/^$@OO\ H5-9_P"^K;_X]0!MT5B?
M\)!??]"IK/\ WU;?_'J/^$@OO^A4UG_OJV_^/4 ;=%8G_"07W_0J:S_WU;?_
M !ZC_A(+[_H5-9_[ZMO_ (]0!MT5B?\ "07W_0J:S_WU;?\ QZC_ (2"^_Z%
M36?^^K;_ ./4 ;=%8G_"07W_ $*FL_\ ?5M_\>H_X2"^_P"A4UG_ +ZMO_CU
M &W16)_PD%]_T*FL_P#?5M_\>H_X2"^_Z%36?^^K;_X]0!MT5B?\)!??]"IK
M/_?5M_\ 'J/^$@OO^A4UG_OJV_\ CU &W16)_P )!??]"IK/_?5M_P#'J/\
MA(+[_H5-9_[ZMO\ X]0!MT5B?\)!??\ 0J:S_P!]6W_QZC_A(+[_ *%36?\
MOJV_^/4 ;=%8G_"07W_0J:S_ -]6W_QZC_A(+[_H5-9_[ZMO_CU &W16)_PD
M%]_T*FL_]]6W_P >H_X2"^_Z%36?^^K;_P"/4 ;=%8G_  D%]_T*FL_]]6W_
M ,>H_P"$@OO^A4UG_OJV_P#CU &W16)_PD%]_P!"IK/_ 'U;?_'J/^$@OO\
MH5-9_P"^K;_X]0!MT5B?\)!??]"IK/\ WU;?_'J/^$@OO^A4UG_OJV_^/4 ;
M=%8G_"07W_0J:S_WU;?_ !ZC_A(+[_H5-9_[ZMO_ (]0!MT5B?\ "07W_0J:
MS_WU;?\ QZC_ (2"^_Z%36?^^K;_ ./4 ;=%8G_"07W_ $*FL_\ ?5M_\>H_
MX2"^_P"A4UG_ +ZMO_CU &W16)_PD%]_T*FL_P#?5M_\>H_X2"^_Z%36?^^K
M;_X]0!MT5B?\)!??]"IK/_?5M_\ 'J/^$@OO^A4UG_OJV_\ CU &W15+3K^:
M^1VFTR[L"A "W)CRWN-CM^N*NT %%%% !1110 4444 %%%% !1110 4444 %
M%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 44
M44 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !111
M0 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%%
M&1<^((DU9M)L;:6^O8T#S)&0J0*?NEV)P">P&3WQCFG6NM/+JXTNYTZXM9S
MTX=BK1NJLJG:P/)RPX(!_,5S7PXD;^T_%L-W_P A!=9D>7/7RR!Y?X8!Q[5I
M2ZOJ3?$1?#X-HMLVFM=B80GSD'F;"H);'H<X[=* .HHKSWP\E[-X4N-<O?%%
M[!+;&]C669PT* .ZJ[ICYBN,CIV%6=+NKV+QI96"W&H):WFDN[?:I2[.ZLH$
MH5BVPD,>./<<4 =S4?GQ?:!;^8OFE-^S/.W.,_G7ET=WJT?P]@\1MKFHO>6N
MHE%5IODD3[5Y95U_B&#WZ8&,5T,5K#'\4]4N"UR?+TN&;:+B3!.]^,;L8X^[
MT]N: .THK@]-D\2:WH^D^(+&\ABDF=9[@2W;&%H3G='Y>S"D#@'KD<DT[SO$
M'B:SU*ZTB[6VNK:_EM[9C=,J1>6^W#QA"&W 9.<GYN,4 =-?:V+#6[#37L+I
MTOBRK=(H,4; $A6.<@D ]JU*K10K.MM<SI&TZ)D,A+*I(Y*_X]<?6N+N]6N;
M#Q&;;76O[..?44-AJ,$S-:NFX8A=0<*3@J<CDDG- ';7U[;Z=8SWMW((X+>-
MI)'/\*@9)K'/B>>..SGGT.]BM[V6***3=&VSS&"J9 &RO4>OIUK3U>WLKO2+
MNVU''V2:)HYLG'RD8//:N#DD\0_#M;>+4)5UWPR)HXUFD&+BS^8!,]F ./TZ
M<"@#OOM-S_:OV7[$_P!F\CS/M>]=N_=C9MZYQSGI5JN7CN;M/BE)9&\G>T;1
MQ.(&;Y$?SMN0![#OD]:YT7FM7^BVVR]O8_$1U8PW,$4C;4B\U@WR<J$$>#OQ
MU'7)- 'I5%<4;6\O?'>HZ1)K>I)9C3(90L4P1@Q=UR"!Q]T'(Y/KCBJNBZK=
MW_A#PZU[JMPUQ-<RQO%"#Y]\(VD4*&!&W[H9FR.G)YH [N>>*UMY+B>18XHE
M+N[' 50,DFI*\JU>:ZOOAOXKAOIKECI^JM# 'N&9D3,1"LP/SXWG[V>WH*ZF
M],NG>._#UC;75T+:Y@NS-%)</('*A"I.XGD;C0!UE%>9:GJ.IP^#O&LD&J7D
M<FG:BR6T@F)=$VQ_*&.3CYCWS6YJ'VS1]1T[3HM3N[J36[EFD:YN-H0)$6*1
MD*=@8XZ>^,'F@#L:*P?#MIK=C>:C#J=U%-9LZ/9(9VEEB4@[E9BHR,C@G)Z\
MUO4 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !11
M10 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%%
M !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M%%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4
M444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% &3>
M>'+*ZU5=6ADFLM0">6US;,%9T_NL""K#Z@XI+;P[;6^K2:O)<W-SJ#V_V87$
MK+E(\[MH55"]>>F:UZ* ,*U\(:;;:!>:&SW$]C>%S(DL@)!<DL00 1DG/UIE
MOX,L+>]L[X7FHR75G$T232W19F4XX;L0, XQCU!KH** .;_X0?3?^$?;0OM5
M[]A:;SBGF+G=OW]=N?O<U>;P[9MKD.LM+<_:XX%@=EEVK,H.1O48!P23VK6H
MH YG3_ FFZ9?-+:WNHI9F7SAIOVC_1E?.<A<9QGG&<>U+-X%T^36;C48+[4K
M,7C;KNUMKG9#<-W+#&<GO@C-=+10 BJJ*%4!548  P *QF\+VDA>.:YNIK62
MZ^UM:R.IC\S?O_N[L;N<9QQ]:VJ* *NI:?!JNFW.GW.[R+F-HY-IP=I&#@]J
MSG\+V\X@BO+^^O+6!UDCM9Y%9-RG*EB%#/@@'YF/2MNB@#)ET2)->?Q!&\\E
MZ+4VZQ[U",F=P7&./FYSU_"N'TK396M%CAE\8Z=J3%G:U3>+9)6)8[6<%"FX
MGJW(]Z].HH Q;;P\(]5;69;VX_M"6V6"9D*["!Z*5XPQ)%4X_ 6E0V-C:Q7-
M_'_9TSS6LJ3XDB+YW@,!R&R<@^M=-10!SO\ P@^C?8=4LB+EX-5;?<(]PS8;
M ^89/7Y0<G)XJ6]\)V=ZFGE[R_2YTYF:&[2X/G'<,."QSD'C/TXQ6[10!S3^
M ](;3]2L!+>"#5)?-N5\\G<>/7/H,GJ<<FK>L^%[+7=)@T^]FN2ULZR0722!
M)XG7HP8#K^%;5% &=H^C1Z/"Z_:[N]FDQYES=R[Y& Z#.  !D\ #J>Y-:-%%
M !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M%%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4
M444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !11
M10 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%%
M !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M%%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4
M444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !11
M10 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%%
M !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M%%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4
M444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !11
M10 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%%
M !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M%%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4
M444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !11
M10 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%%
M !1110 4444 %%%% !1110 4444 %%%% !1110 45Q^CWLWC'7-6EDN9XM*T
MNZ-E#!!*T?G2*/G=V4@D<@ 9QCJ#5^".ST_Q#NAUIFB%N\;V$EV96$FY2&52
M2V<!ACZ8'7(!T-%<W:>/-%O(O/C%X+94F:2Y>U<1Q>5G<&;'RG R >>GJ*N6
M?B:RN[U;,PW,$TEK]KB62+F6+@;EVD\\CY3AN>E &Q17,1?$#1);:VNT6]^R
MW$_V?[0;5A'$^\H Y_AR1^HSC-68_$PD\8S: +2X @MUE,OE$ABS$#Z*,'D]
M3]* -ZBL27Q9IL,MMYHG2VNY_L\%X4_<O)D@+G.>2#@D8/8TNI>*M/TM)YYT
MN&M;:01W-U''NCA8XX;G)QD9(!QWQ0!M45BW^FW-YK^EZE:7]W'# &\V-)AY
M$J%3U3^)LD8/0 'OBI'\0VJSE$@N)8ENEM&GC0%%E+!=IYSP2 3C&>,YH UJ
M*J:GJ5OI&FSZA=^8(+=#)(8XV<A0,DX K,L_&.EWNH6-FB7<9U"+S+666W98
MY<+N*ANA('/I[T ;U%85QXOTRWDD+"=K>&[%G-=*F8XYB0-IYSU8#(! )ZT3
M^+M.AU&]TY(+ZXN[)%>2&&U=F(;.-O'(XZ].G.: -VBN;C\=Z++!8W41NGM+
MYTC2Z%NWE([' 5F['/'L>N*OZEX@M=-^T9AN;G[)&)+G[/'N\E>N3R,\ G R
M<<XH U:*@L[RWU"RAO+259;>=!)'(O1E(R#62/%^EF:$ 3FWGO#91W6S]TT^
M2-G7/4$9QC(ZT ;M%<]<^-M+MKK4;58+^>?30IGCAM'9@&!.1QTP,YZ<C&:N
MGQ%IS6%C=P2-<#40#:1Q+EYLKNX!QC Y). .^* -2BN.\'W;W7C#Q6I-VL<<
MML%ANG9FB)C)8#).!G)X./3BN@O]:M[&]AL1'-<WD\;2I;P@%BBXW-DD #)
MY/.>* -&BLB'Q/I=QHMKJT,KO!>.(X%"'S)')(V!>N<@Y],$G@9K!T74#)\1
MM=\TW=O%#80N\5W(2(CN8DCDJ!C!^4X_6@#M:*X3Q+K:7U]X7FM%OX8KG58O
M+E)9(KB(AB?E!]=I&X D<CC-;8\9Z6^J2Z=##?S3P7"6\PCM'(B+]&;CA?<_
MAF@#H**Q+GQ9IMHT3S"=;26X^S+>[/W/F9VX)SG&1C=C;GO4LOB*UCG:-(+B
M:..Z2TDFB0%$E8J IYSP6&2!@>M &M165+XAM8[AXT@N)HX[E+62:) 425BH
M"GG/\:Y(&!ZU9BU**;5;C3EBG$MO&CL[1$1L&SC#=">.: +E%%% !1110 44
M44 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !111
M0 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%%
M!1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %
M%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 44
M44 %%%% !1110 4444 <3HME=^"_$.KPRVEQ/H^J7)O(+BWB:4P2-]]'506
MZ8.,<<U)!#)>_% ZY#9W L8=&-NT\EN\>9/-W84, 6^7/(!':NRHH X3P^=4
MLOAUJ<=KI<QU&*2Z>*VNK=E$F^1F7A@-V0>GX5#I_P!I/C/2-5_LS66@;3I8
MII[J!@RR%D)RO\ X/  !_A!KT&B@#RTVE\?A-)IO]F7_ -L_M#?Y'V23<5^U
M>9G&.FWG].M='^^3XC3S&UO!!J&DQ10SI;OM5@[DACCY" P.&Q^?%=?10!YQ
MX8A$%A:>'=4\&2/J5BRQ?:GM%:V8*>)O-/'3G'7/Z.LX?[+U#5-&U?PC<:J;
MF]FGM+F.U66*=)&+!7<\*03@Y_\ U^BT4 1V\?E6T4>Q$V(%VQC"K@=![5P5
MU87<.NOJ7AZ/4;*^DU$)>64D#FTNT$F#+DC:IV#=N![8ZGGT&B@#(\6))+X1
MU>&&*2:6:RFCCCB0NS,R$  #W-<Q*EP5\"L+"^_T(C[3_HDF8?W)3YOEX^;C
M]>G-=]10!YAXA&L:II.L03Z-J;7<&I(\,<$!$!@69"'7&!(Q49/WB#V KH-+
M>9?'^LW\MC>Q6\UC;JCO;/@LNXL 0""1N'3\,UU]% 'ET=E?I\)-.TXZ9?\
MVR*^1W@^R2;U47)<G&.FWG_Z]:-Q_P 2KQ9JDFI>&KO5K#5S'-;3P6?G%"(U
M1HW!Y7[HQG_&O0** *FEP"VTRWA6SBLE5.+:( +$.NWCCCVXS7G5XVKZA96,
MUYHNJ?;K+78IIX8H"((XEF)S&HX?*X);!.2<D#%>H44 <7IYGC\6^++F6PO4
MBNK>V\EC:N1(4C8, 0""06 XZ]LUB:5;ZGI%IX.U:32[Z6#3K66SO;=+=S-
M7 PX3&6&1R1GCUKT^B@#D/"[7$GC3Q-=OI]Y!;7AM6@EG@,8<+$ >O/X=?7!
MJ?7KJ^C\4V-NUC>R:9);/F:QC)<S;AA'<<HF!G.0"<9.!7444 >4Z98ZSIF@
M>&KTZ/?-_8>H71N[419D9)&D =%ZOM# \=<\=ZOZA:7_ (BUOQ(+&QOH(]1T
M5(+>>X@:%6<%_E.[!&<XY&?PKT>B@#SF[U"]U/2O"T2Z#JL=SI^IV[7<36;@
M1!$=6(8\,O<$$C'7&16UX969/&'B>26TNHH[J>&2"26W=4D"Q*K88C'!'^%=
M910!YMX?MOL=BOAG5O!TMW?VTA2.[>T5[:9=Q*RM(>!@8)'7CCGBK&HV%W'K
M<^J>'H]1L=3:^5+BT>!S:7J!P/,)(VK\G.X$'CU()]!HH \^U*PNX];GU3P]
M'J-EJAO52XM&@=K2^0,!YA)&T?+SN!!X/<@GM8=0\W5;BP^QW2>0B/\ :'CQ
M%)NSPK9Y(QSZ9JY10 4444 %%%% !1110 4444 %%%% !1110 4444 %%%%
M!1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %
M%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 44
M44 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !111
M0 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%%
M!1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %
M%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 44
M44 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !111
M0 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%%
M!1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %
M%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 44
M44 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !111
M0 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%%
M!1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %
M%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 44
M44 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !111
M0 4444 %%%% !1110 4444 %%%% !1110!B-XF16(_L?6#@XR+)L4?\ "3I_
MT!M9_P# %JVZ* ,3_A)T_P"@-K/_ ( M1_PDZ?\ 0&UG_P  6K;HH Q/^$G3
M_H#:S_X M1_PDZ?] ;6?_ %JVZ* ,3_A)T_Z VL_^ +4?\).G_0&UG_P!:MN
MB@#$_P"$G3_H#:S_ . +4?\ "3I_T!M9_P# %JVZ* ,3_A)T_P"@-K/_ ( M
M1_PDZ?\ 0&UG_P  6K;HH Q/^$G3_H#:S_X M1_PDZ?] ;6?_ %JVZ* ,3_A
M)T_Z VL_^ +4?\).G_0&UG_P!:MNB@#$_P"$G3_H#:S_ . +4?\ "3I_T!M9
M_P# %JVZ* ,3_A)T_P"@-K/_ ( M1_PDZ?\ 0&UG_P  6K;HH Q/^$G3_H#:
MS_X M1_PDZ?] ;6?_ %JVZ* ,3_A)T_Z VL_^ +4?\).G_0&UG_P!:MNB@#$
M_P"$G3_H#:S_ . +4?\ "3I_T!M9_P# %JVZ* ,3_A)T_P"@-K/_ ( M1_PD
MZ?\ 0&UG_P  6K;HH Q/^$G3_H#:S_X M1_PDZ?] ;6?_ %JVZ* ,3_A)T_Z
M VL_^ +4?\).G_0&UG_P!:MNB@#$_P"$G3_H#:S_ . +4?\ "3I_T!M9_P#
M%JVZ* ,3_A)T_P"@-K/_ ( M1_PDZ?\ 0&UG_P  6K;HH Q/^$G3_H#:S_X
MM1_PDZ?] ;6?_ %JVZ* ,3_A)T_Z VL_^ +4?\).G_0&UG_P!:MNB@#$_P"$
MG3_H#:S_ . +4?\ "3I_T!M9_P# %JVZ* ,3_A)T_P"@-K/_ ( M1_PDZ?\
M0&UG_P  6K;HH Q/^$G3_H#:S_X M1_PDZ?] ;6?_ %JVZ* ,3_A)T_Z VL_
M^ +4?\).G_0&UG_P!:MNB@#$_P"$G3_H#:S_ . +4?\ "3I_T!M9_P# %JVZ
M* *6G:D-11V%I=VVP@8N83&3],]:NT44 %%%% !1110 4444 %%%% !1110
M4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1
M110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%
M% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110
M4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1
M110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%
M% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110
M4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1
M110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%
M% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110
M4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1
M110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%
M% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% &(VAZF6)'B
MS55!/00VG'_D&C^PM4_Z&[5O^_-I_P#&:VZ* ,3^PM4_Z&[5O^_-I_\ &:/[
M"U3_ *&[5O\ OS:?_&:VZ* ,3^PM4_Z&[5O^_-I_\9H_L+5/^ANU;_OS:?\
MQFMNB@#$_L+5/^ANU;_OS:?_ !FC^PM4_P"ANU;_ +\VG_QFMNB@#$_L+5/^
MANU;_OS:?_&:/["U3_H;M6_[\VG_ ,9K;HH Q/["U3_H;M6_[\VG_P 9H_L+
M5/\ H;M6_P"_-I_\9K;HH Q/["U3_H;M6_[\VG_QFC^PM4_Z&[5O^_-I_P#&
M:VZ* ,3^PM4_Z&[5O^_-I_\ &:/["U3_ *&[5O\ OS:?_&:VZ* ,3^PM4_Z&
M[5O^_-I_\9H_L+5/^ANU;_OS:?\ QFMNB@#$_L+5/^ANU;_OS:?_ !FC^PM4
M_P"ANU;_ +\VG_QFMNB@#$_L+5/^ANU;_OS:?_&:/["U3_H;M6_[\VG_ ,9K
M;HH Q/["U3_H;M6_[\VG_P 9H_L+5/\ H;M6_P"_-I_\9K;HH Q/["U3_H;M
M6_[\VG_QFC^PM4_Z&[5O^_-I_P#&:VZ* ,3^PM4_Z&[5O^_-I_\ &:/["U3_
M *&[5O\ OS:?_&:VZ* ,3^PM4_Z&[5O^_-I_\9H_L+5/^ANU;_OS:?\ QFMN
MB@#$_L+5/^ANU;_OS:?_ !FC^PM4_P"ANU;_ +\VG_QFMNB@#$_L+5/^ANU;
M_OS:?_&:/["U3_H;M6_[\VG_ ,9K;HH Q/["U3_H;M6_[\VG_P 9H_L+5/\
MH;M6_P"_-I_\9K;HH Q/["U3_H;M6_[\VG_QFC^PM4_Z&[5O^_-I_P#&:VZ*
M ,3^PM4_Z&[5O^_-I_\ &:/["U3_ *&[5O\ OS:?_&:VZ* ,3^PM4_Z&[5O^
M_-I_\9H_L+5/^ANU;_OS:?\ QFMNB@#$_L+5/^ANU;_OS:?_ !FC^PM4_P"A
MNU;_ +\VG_QFMNB@#$_L+5/^ANU;_OS:?_&:/["U3_H;M6_[\VG_ ,9K;HH
MQ/["U3_H;M6_[\VG_P 9H_L+5/\ H;M6_P"_-I_\9K;HH Q/["U3_H;M6_[\
MVG_QFC^PM4_Z&[5O^_-I_P#&:VZ* *6G65S9(ZW.JW6H%B"&N$B4I[#RT7]<
MU=HHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "
MBBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **
M** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHH
MH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@
M HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "
MBBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **
M** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHH
MH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@
M HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "
MBBB@ HHHH **** "BBB@ HHHH **** "BL9O%NAJQ4WV"#@_NG_PI/\ A+]"
M_P"?[_R$_P#\30!M45B_\)?H7_/]_P"0G_\ B:/^$OT+_G^_\A/_ /$T ;5%
M8O\ PE^A?\_W_D)__B:/^$OT+_G^_P#(3_\ Q- &U16+_P )?H7_ #_?^0G_
M /B:/^$OT+_G^_\ (3__ !- &U16+_PE^A?\_P!_Y"?_ .)H_P"$OT+_ )_O
M_(3_ /Q- &U16+_PE^A?\_W_ )"?_P")H_X2_0O^?[_R$_\ \30!M45B_P#"
M7Z%_S_?^0G_^)H_X2_0O^?[_ ,A/_P#$T ;5%8O_  E^A?\ /]_Y"?\ ^)H_
MX2_0O^?[_P A/_\ $T ;5%8O_"7Z%_S_ '_D)_\ XFC_ (2_0O\ G^_\A/\
M_$T ;5%8O_"7Z%_S_?\ D)__ (FC_A+]"_Y_O_(3_P#Q- &U16+_ ,)?H7_/
M]_Y"?_XFC_A+]"_Y_O\ R$__ ,30!M45B_\ "7Z%_P _W_D)_P#XFC_A+]"_
MY_O_ "$__P 30!M45B_\)?H7_/\ ?^0G_P#B:/\ A+]"_P"?[_R$_P#\30!M
M45B_\)?H7_/]_P"0G_\ B:/^$OT+_G^_\A/_ /$T ;5%8O\ PE^A?\_W_D)_
M_B:/^$OT+_G^_P#(3_\ Q- &U16+_P )?H7_ #_?^0G_ /B:/^$OT+_G^_\
M(3__ !- &U16+_PE^A?\_P!_Y"?_ .)H_P"$OT+_ )_O_(3_ /Q- &U16+_P
ME^A?\_W_ )"?_P")H_X2_0O^?[_R$_\ \30!M45B_P#"7Z%_S_?^0G_^)H_X
M2_0O^?[_ ,A/_P#$T ;5%8O_  E^A?\ /]_Y"?\ ^)H_X2_0O^?[_P A/_\
M$T ;5%8O_"7Z%_S_ '_D)_\ XFC_ (2_0O\ G^_\A/\ _$T ;5%8O_"7Z%_S
M_?\ D)__ (FC_A+]"_Y_O_(3_P#Q- &U16+_ ,)?H7_/]_Y"?_XFC_A+]"_Y
M_O\ R$__ ,30!M45B_\ "7Z%_P _W_D)_P#XFC_A+]"_Y_O_ "$__P 30!M4
M5B_\)?H7_/\ ?^0G_P#B:/\ A+]"_P"?[_R$_P#\30!M453T_5;+5$=K*;S1
M&0&.UEQ^8%7* "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ****
M "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH
M**** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ H
MHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BB
MB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ****
M "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH
M**** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ H
MHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BB
MB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ****
M "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH
M**** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ H
MHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BB
MB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ****
M "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH
M**** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ H
MHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BB
MB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ****
M "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH
M**** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ H
MHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BB
MB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ****
M "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH
M**** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ H
MHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BB
MB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ****
M "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH
M**** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ H
MHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BB
MB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ****
M "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH
M**** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ H
MHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BB
MB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ****
M "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH
M**** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ H
MHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BB
MB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ****
M "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH
M**** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ H
MHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BB
MB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ****
M "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH
M**** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ H
MHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BB
MB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ****
M "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH
M**** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ H
MHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BB
MB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ****
M "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH
M**** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ H
MHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BB
MB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ****
M "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH
M**** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ H
MHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BB
MB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ****
M "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH
M**** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ H
MHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BB
MB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ****
M "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH
M**** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ H
MHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BB
MB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ****
M "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH
M**** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ H
MHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BB
MB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ****
M "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH
M**** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ H
MHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BB
MB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ****
M "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH
M**** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ H
MHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BB
MB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ****
M "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH
M**** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ H
MHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BB
MB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ****
M "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH
M**** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ H
MHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BB
MB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ****
M "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH
M**** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ H
MHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BB
MB@ HHHH **** "BBB@ HHHH **** "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 **** "BBD)"@DD #DDT +16;
MH>O6/B&SEN]/=G@CG>'>PQN*G!(]O2M*@ 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 *Y?Q5K^GVE[!I&HRRPVTR>;<,D$DGF)G C&U3]X@Y_P!D
M$?Q9'444 <1\--6L;ZWUB"UD9G_M6ZG ,3J-C2':<D ?AU'<5V]9VCZ-!HL5
MU';R2.+J[ENG\PCAI&W$# Z>E:- !1110 4444 %%%% !1110 4444 %%%%
M!1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %
M%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 44
M44 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !111
M0 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%%
M!1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %
M%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 44
M44 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !111
M0 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%%
M!1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %
M%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 44
M44 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !111
M0 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%%
M!1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %
M%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 44
M44 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !111
M0 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%%
M!1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %
M%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 44
M44 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !111
M0 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%%
M!1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %
M%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 44
M44 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !111
M0 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%%
M!1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %
M%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 44
M44 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !111
M0 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%%
M!1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %
M%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 44
M44 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !111
M0 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%%
M!1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %
M%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 44
M44 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !111
M0 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%%
M!1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %
:%%% !1110 4444 %%%% !1110 4444 ?_]D!

end
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>GRAPHIC
<SEQUENCE>23
<FILENAME>chart-1bf0ef3173995f79bb7.jpg
<TEXT>
begin 644 chart-1bf0ef3173995f79bb7.jpg
M_]C_X  02D9)1@ ! 0   0 !  #_VP!#  $! 0$! 0$! 0$! 0$! 0$! 0$!
M 0$! 0$! 0$! 0$! 0$! 0$! 0$! 0$! 0$! 0$! 0$! 0$! 0$! 0$! 0'_
MVP!# 0$! 0$! 0$! 0$! 0$! 0$! 0$! 0$! 0$! 0$! 0$! 0$! 0$! 0$!
M 0$! 0$! 0$! 0$! 0$! 0$! 0$! 0'_P  1" (5 IH# 2(  A$! Q$!_\0
M'P   04! 0$! 0$           $" P0%!@<("0H+_\0 M1   @$# P($ P4%
M! 0   %] 0(#  01!1(A,4$&$U%A!R)Q%#*!D:$((T*QP152T? D,V)R@@D*
M%A<8&1HE)B<H*2HT-38W.#DZ0T1%1D=(24I35%565UA96F-D969G:&EJ<W1U
M=G=X>7J#A(6&AXB)BI*3E)66EYB9FJ*CI*6FIZBIJK*SM+6VM[BYNL+#Q,7&
MQ\C)RM+3U-76U]C9VN'BX^3EYN?HZ>KQ\O/T]?;W^/GZ_\0 'P$  P$! 0$!
M 0$! 0        $" P0%!@<("0H+_\0 M1$  @$"! 0#! <%! 0  0)W  $"
M Q$$!2$Q!A)!40=A<1,B,H$(%$*1H;'!"2,S4O 58G+1"A8D-.$E\1<8&1HF
M)R@I*C4V-S@Y.D-$149'2$E*4U155E=865IC9&5F9VAI:G-T=79W>'EZ@H.$
MA8:'B(F*DI.4E9:7F)F:HJ.DI::GJ*FJLK.TM;:WN+FZPL/$Q<;'R,G*TM/4
MU=;7V-G:XN/DY>;GZ.GJ\O/T]?;W^/GZ_]H # ,!  (1 Q$ /P#^_BBBB@ 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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
M_&;]A?69?V3_ (L^$_A!X\UO6_@E^T-X7^)OQ+^%/@_XV6&@W7@S6/''P_\
M&7PU^#^G70DO_$FC^'+^+PIXTUY;/Q!J%G;2SI83/J4/SS_P=NW$-U_P1H\>
MW$$T5Q!/\</V?98IX'26&>*3Q5>O'-#(C,DD,J,LD3JQ5XV5E)!!K\(?V[?V
MY?C)/_P2U_X)5_\ !*OXU_"[P;^RO^S=^VA^R]^Q6M]^WUKGC76OB]X#MOAE
MX'T?X8:]<(_@'2? ?@/4/"WB_P -^)--\%ZS\4-*N?%.NQ^%_">IP/I>HZUI
MVK-XBL@#^S3XV_\ !1;PWX8_X)XZG_P4C_9T\):!^T7\%-*^".H?M"FQN_B#
M>_"C6]6^&^DZ0=9U1-&-[\/O&L:>,=,BM]2L=2\*>(H/#\UCK&EWNC7%]'J4
M9@7Q#_@FW_P5TTW]O']C7XB_MZ^//@[HW[,7[.GPY/Q3EU?6-?\ B^_Q(\46
MVE_!W2['6O&_B35]#T3X7^&M.TKP]8:<^JO \.O:IKEW-I02+0O)U"UN#Y!^
MUQ^RE\/_ -A__@W8_:=_95^%^OZAXK\%?!O_ ()]?&WP]IOBS5&MOMWBV^U#
MPCXB\3>(O%LT5E-<6-HOBGQ+KNL:_!86-S<V.G6NHP6%E<W-K;17$OYY?\&W
M?P^^$WQ<_P"#>[XD?"7X[:I'HGP@^*_CG]J[X7_$35GOXM*DT_PM\0VTCP=J
M5W::I/%/#IVHP+K4<FEWTL,L=KJ2VDTD;HC(0#]J?AE_P4$^.?Q@_9<TG]M[
MX<_L;W_C3]GKQ7X-O/BEX%\$>%_C5X?U+]K+Q=\*(6U:^T[Q3IOPCG\'6'PH
M;Q7KWAZP@UK2_A7'^T%)XI N5T.>\'C /X93T?XS?\%-_P!F?]FK]@WP'_P4
M#_:*UG4/AA\*O'_PR^&'C_0O"K6Z:[X_UG7?BQX/T_QAX6^%_A70X6L#XD\=
M7-M>S6S6R/I^G6<&EZOKVM7VC^'-)U35++^,O4? _P#P79_X-C)]7U?X<:A9
M_ML?\$P?#7B*[U2ZL+N*]UOP9X3\.:IJB>?=^(-!CEN/B/\ LS>(;VXO9IK[
M7_"]SXB^#4GB?4%U'5GUZ\O#8/YW_P './[4>@_MD_LC_P#!%+]H3X4Z'KO@
MK]D+XP>'_C%XB7P<+6&SMO!OC31KSX4^$M1\&:O;Z<!H[ZAX#TC3_'/AGP_<
MVD2V-W9VGB"ZT91IMU+& #^QCPW^W5^VWXN_97M_VRM%_P"">^FI\.=2\ ?\
M+9T'X(:E^TQ;VW[66N?#&:T7Q'IVN0> K;X*WOPILO&VK^!G7Q)IOPIO/C"-
M=DFDM_#U[K%AXDG;2H/8?V2?^"C/PG_X*&?LC7/[4G["L.F_%N]3^T-'/PK^
M(GB9_A'XA\._$+2+>SOM3^&OQ$U.U\/?$-/!OB..POK2ZT^_ATCQ#X;UBTU#
M2=6T[5YO#^HC6(?O?1X-+@T+2K;1H[==&AT[38-,C@6(6PTN.VMX[-84C58A
M +$1!%11&(\!1LP*_@W_ .#.U_%$'[4?_!5;3?!KWS_ 2#6OA^\.X2KI2>*T
M^)_Q>M_!36D8"64>H3^ X]?^WBU19#:6^FK.!%':J #]L_\ @E;_ ,'%?P-_
MX*0?M$>-?V3O&OP5\3_LE?M!:-IDNK^ _ OC_P >:-XRA^*5OHT%Q>>,-,\-
M:Q8>'/"L<7B?P[I:6OB2WT VEZ_B7P?)J'BC0;NZT_1=2\O]5- _:.^/6J?M
MI>+OV8-1_9S\*:9\-?"OPI\-?& ?'^W^.L^HIJWA[QGXO\;>#/#OAVS^&3_"
M#3]2B\<Q:EX%U2]\2:;/XL7PWI&CW.GW=CXKUN\NH].K^5#_ (*0?\$>?'?[
M07[ G[#?_!3;]A4:WX1_;W_9;_9F^ OBS4D^'Y?3_%_QD\&_#CP;HFJZ%J?A
M\V$:SWWQJ^%$%DMYX+G EU+QIX2M+OP!.-6O;#P/ID/Z5_\ ! W_ (*F1?\
M!5W6/'7Q9\2Z(/#7QW^$7[,WP%^$W[1.CV.FS6'A:[\?I\4?CWJ^F^-/!<DC
MNG]@>/=#*Z]+H.$N?!NM'5?#4K7EA::3J^J ']'?C#Q?X7^'_A3Q+XZ\;^(-
M(\)^#?!N@:OXI\5^)]?O[?2]"\.^&_#^GW&K:YKFLZG=O%:Z?I6DZ9:7-_?W
MMS(D-M:P2S2,%0U^1_[)'_!4CXA_\%&K+XE?$C]A#]FC2?%/[-'P_P#&M[X
MT#]H']I#XO:O\"[#XU^)_#\,$_BF/X2_#SPK\(/C#XR'A?3$O]+">,_'R>#X
MIKF^_LU=!.JZ?KECI'C?_!SM=_$2S_X(I?MB2?#MK^.66W^$-IXSDTHR#4$^
M&]Y\;?A];>-U0PD2FPGTR1+;7E^:%O#TVJK=C[(TY$W_  ;$VWANW_X(B?L4
MMX=\MOM-C\;KG77"QB:3Q+)^T3\5UUK[4556:5)DCAC:7=(;6.WRS*$- 'U#
M^P[_ ,%6?A#^V!\:?CK^R/XI\%>*?V=/VV/V9[^[M/C'^S9\1-2T76=032[6
MZLK5?'?PP\<^'F&A?$[X<71U;0YX/$5C9:-JL%CK_A_4M2\.6.F:]H][??$'
MC[_@N;\8_"G_  5(3_@DQX>_84\.>+OVA-3TQ==\->+C^UQ:>&_A9K6AGX07
MGQI:^FU?4_V>9_$6ESIX9TW4--:PF\-W$S>(K=;.!YK">+4V_$WXU'Q+9_\
M!ZG\*#\(VO/[>O\ 1_AJOQ2BL1(MJ_A63]CG5%\=C6!;A8Y;)? 5MH]V&ORZ
M#58]-93]HCM%7-_:5_X7'_Q&2>"/^%"'X8CXM_\ "F]-_P"$5_X7(/&)^'7F
M_P###?B_^U!KX\!$>*@QTG[<-+.G$QKJQLFOU;3Q<J0#^KSX5_MH?M6WO[6'
M@K]FC]HS]AJS^"GAWXC?#WXB>,O!?QV\#?M,>'?CI\/]2\0?#9/"USK7PZU+
M3;/X6_#SQ)X<\52Z;XHBU:S77;*QM-2TZPO[C0Y-973]6_LOZ%_;@_:LTO\
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
MCBTU#P!HWB?PDBZ;X9TM!X\7Q+J&N1Z']E\.Z'. ?V^T4=** "BBB@ HHHH
M**** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ H
MHHH **** "BBB@ HHHH **** "BBB@ HHHH ***;N&<<GG!P"V#Z$@$ _7%
M#J*0,#G!S@D''."."#C/([CJ/2C/U_(_X4 +7YF_\%1O^"5G[-W_  5<^!NF
M?"/X[KK_ (:\1^"-8N_%7P@^+_@>6SM?'WPN\5W=G'9WMUI,E_#/9:MX=UZ"
MVL;?Q7X3U)!I^N1:?I=Y#<:7KVBZ%KFE_ICGZ_D?\*,CW_$$?S% 'Y>_!WX/
M_P#!5/X?>"= ^$GC?]JS]E+XHV7AKP[;^&+;]HO6?V=?BI9?&GQ#;64 L+3Q
M'XL^'EO\<5^&.I^.S91QW%_KEOKEEH&JZTW]HWOA*2(75IJ/K?QU_P""?7P.
M_:E_8Z\1?L7?M-7_ (]^.G@3Q98W,NO^/O'?B&UN?BQ)XTFUV]\4VGQ)T7Q)
M8:38Z3X7\5Z!XCOI;WPK8>'?#VG>"_#>CQV_@?3/"L7@*-O#4GW129'O^1_P
MH _(3]GW]D7_ (*#?LH_LQ^%_P!D'X4_M2_ CQWX4^&WA&7X<?!?]H'XO_!K
MQQ<?%[X;^ ;& 6'@33O$_P //#/Q @^'/Q9U[X9Z,Z:)X?UE]=^'>E:QI^A^
M'5\1>'+QX=4;4NK_ ."=O_!+/X5?\$O?@)\0O _[/6IS^/\ XY_%C6I_'OQ=
M^/GQE6:Z\2?%[XDL;R2SU'Q:GAIH;C2O".C3:GJS>'_"6B7$BZ6VJZMJ-SJ&
MJ^(=;UO6]0_5#/U_(_X49^OY'_"@#\I_!7_!/_X@>.?V!OCS^PC^U_XZ^%'Q
M+\/_ !BT/XUZ%!XV^%GP\\4>"#I2_&GQGX\^(?\ :LGA/Q=XS\9P)K?PU\7^
M+].U'P7J-GK@:YF\-:9?:G%'J DGE\V_:@_X)7:_X^_X)3>'O^"4_P"SC\0O
MA[\*?AS%\&O GP7\0?$;QOX&\1^+=9_LKP1JO@[7KWQ-I'A?PUXI\+V$OBKQ
MUKN@:SJ_B.]U75WM[?5/$-QJ,%M?2*\,G[0Y'O\ D?\ "EH _#G]B[_@FQ^U
M#^QO_P $P-4_X)SZ)\;O@3XSNM-\(?%GP-X"^,.H?#+XC:2+#2?C3K7Q$U[Q
M%J7BGP-#X^O4UC5/#-_X[,6@0:5XET:QU6QL(X=6%K<E[R>'_@A[_P $J?C!
M_P $B/@M\0OV=?$7QP^&_P =/AWXU^)NN?&"S\0:+\.O%OP^\9Z/XJUOPMX&
M\'W&BSV^H>-/%N@ZEX>&G^";?4(;A$L-5@O[VZA<W=H8/LO[F44 ?G[^TC\
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
M0 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%%
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
MM[K!%),RB-&8?O9_P3<N(+G_ ()V?L%W%O+'<02?L8_LMO%/;NL\,J?\*/\
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
M&OBKX@^*)_$_Q]^!U[/\"?CGJ6IW9N==\0>(O"=G:7GA#X@:I),1>7MS\0?
M&H>']9U75YT":CXPM_%T<3.UG,%]5^+/B3]I#]I+]LG4KK]D34?V:];\+_L*
M1:K\.?%TOQTG^)NJ:+'^T_\ &+P9H6O>(X=$M?A3JL8B\2?"7X"Z_H7AN\E\
M1(RP-\?O&>B06\6HZ3J C_ES_P""=>M>//\ @AQ_P<(_$[]C+X\W'PW\#_ O
M_@HKI6D>(/!UI\.[OQ'IWP?\.^)?'?B#Q1XA^ S^$HO'%P_BBWTCPWX^C^(_
M[-]@FO33WDTVM65[=7<MI;VTP /=?^"JGCSXO?#7_@Y(_P""=G[+OP]_:%_:
M=\#_ +//[0UC^SMXD^+_ ,'?"G[3GQ[T+P%XNU3QC\=/BQX>\5%M#T_XAP1:
M+8^(=$\,Z-INJZ3X>?2M,G@M7,5K;RW=U)+_ '$:%I-EH.BZ1HFFK<)I^D:;
M9:;8I=W^H:I=+:65M';6ZW&I:M=7VJ7\XBC42WFHWMW>W+YFNKF:9WD;^$C_
M (+)ZGIUG_P=<_\ !(N[O;^RLK:T\)_LG?:YKV[MK..T,W[1OQS$*W3W,L2V
MSS-)&L*3F-IFDC6(.9$#?U\_M8?MJ?"S]F#0_A1IU[XJ\&ZE\4_CS\;O@Y\
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
M9#<3.R%Y9&;S?X1?LO\ [.'P!U#Q%JOP-^ _PA^#VI>+YI+KQ9??#+X>>%O
M]UXIOIIX[F?4?$<WAS3-.?7-3N+B&*:XU/5#=7]Q)%&TURY1<>[44 >0>/\
M]GWX%?%;P)9_"WXF?!WX8^/OAEIYB%G\._%_@?PYX@\"P)#!/;10+X1U+3KC
M0#;1V]S/"EJ^GM;".5U\K!KF?@Q^R5^RY^SC>:E?_L^_LZ_!'X&W6LV\EMJ\
MGPA^%_@WX<+JL,KVDD@U*'PAI&D07SNUA9;I;F*68K:6Z>9LA15^A:* /E;X
MO?L-?L:_'WQMI_Q+^-7[+'[/_P 4?B/I:VL5C\0O&_PF\$Z_XZAM+*$6]KIY
M\7WNCR>(9]+@@40QZ7<ZC-IPB'E?9C& H][T7P!X&\->#H/AYX;\'>&/#G@*
MUTNZT.S\%^']!TO0_"MEHUZMPEWI5EH&E6MGI5GIUPEW<B6TM;6*%_M$S,A>
M5V;KJ* /A>__ ."8/_!-[5=2N]:U7]@;]C75=:U"[N+_ %#6]4_9I^#VHZUJ
M&H7;O)>:A?ZM>^$9]1O;^\DDEDN[VZN9;JZDEE>>61I'+=G\//V!_P!AWX1:
MQK/B+X4?L>?LP?#'Q%XB\,:UX*U[Q#\/?@3\,_!FOZSX0\1V\=IKWA?5-:\.
M>&M.U.^T#6+6&&WU+2;BZDLKR&&*.>%UC0+]:T4 >(?!G]F?]G?]G.SU73O@
M!\#/A+\$M,UV6&?6-+^$WP^\+_#W2M3N(&=H[F]TSPKIFEV%Q=!I'9KF2W,\
MA.9)'PN/)K[_ ()W?L$ZIXQ_X6-J?[%_[+6I_$3^U;771\0=1^ _PTO_ !V-
M<L9(I;'65\97?AR;Q(NJV$D%NUCJ*ZF+RR^SP"UFB6&()]D44 ?//QG_ &2?
MV6_VCKW3=0_:"_9T^"'QRN]&MTM='E^+WPO\&?$<:5#&]TZ+IL7B_1]7AL64
MWUX!+:QQ2[;JX0OLE=3TO@?]GOX%_#+X>:C\)/AQ\(/AQX!^%VK0W5O?_#KP
M7X/T/PQX)GMKVSBT^ZMAX8T6SLM'AMI[*"*UDM[>TBA,,:H$ %>PT4 ?(/@K
M_@GY^PM\-?&-G\1/AU^QS^S%X ^(%A?#4[3QUX)^!OPW\*>,HK_[;%J+W?\
MPE&@^';#6Y)YM0@AOKAY;YS<WD4=S<>;,BN/JO6M%TCQ'I&J^'_$&EZ?K>A:
MYIM]H^M:-J]G;ZCI6K:3JEK-8ZEIFI6%W'+:WMAJ%E<3VE[9W,4D%S;32P31
MO%(RG3HH S]*TK3-#TO3M$T73K'2=&TBPL]+TK2M-M8+'3M-TS3[:*SL-/L+
M*V2.WM+*RM(8;6UM8(TAM[>*.&)%C15'R[\3_P!@S]B/XW>*;OQQ\9_V1/V:
M?B[XRO<BY\5?%#X(_#GQ_P"(9$+>88AK'BOP]JU_' 92TIMXIT@,S/*8_,=G
M;ZRHH ^-+/\ X)U?L"6'B#PYXLM?V*OV5$\4>#M6L->\(>(W^ 7PPFU[PIK>
MEWEOJ&FZQX9U>?PU+?Z#J=A?6EK>6E]I4]I<V]S;6\\4JR0QLOV7@#H,=3^)
M.2?Q/)]Z** /G'XR_L>?LG_M%:K8ZY^T!^S5\"/CAJVEVRVFEW_Q=^%/@CXC
MW&F6Z[QY6FMXOT75QIZL)&60VBPM(I"2,RJH'IOPQ^$WPQ^"WA2U\"?"'X?>
M#OACX)L)3+I_A#P%X=TOPIX8TYC;V]J%T[0M%MK/3+")+6TM;>*"SMH((H+>
M&&*-(XU4>@T4 >)_%O\ 9M^ /QYETBZ^,OP:^&?Q-U'P['=1>&M8\:>#-!U[
M7O#"WT4D%]_PC'B&\LGUWPXU[!--!=MHFI6!N89IHIBZ2R!M3X3_  (^"OP(
MTO5-&^"_PG^'?PJTW7M1_MCQ!:_#_P ':!X3'B+6MKJVM>(IM%L+2Y\0:U()
M'\W5]:FO]1E+L7N6+-GUBB@#RWXM? _X.?'OPT/!GQO^%GP_^+O@_P"T"[?P
MG\2O"6B>-?#,]P$*"6YT'Q#9:AI5V0I&T7-I*JL%8*'56'(_!G]E']F+]G-]
M6;]G_P#9Z^"WP/778GAUN'X1_#/P?\.;75TD:U:1M2M/".DZ3:WLLGV*S#SW
M$,D[I:6T;2%((E7Z HH ^?OA/^RA^S'\!_$.N^+/@G^SY\&?A'XG\4_:F\4>
M(/AK\-_"?@G6/$\M]<I>7ESXDU#P[I>GW6O7MU=1K<7%]JTEY>33;I))V=W+
M<+\0?V /V&/BWXOU#X@_%7]CK]F'XF^/-4N&NM0\:_$+X%_#7QIXLNIVN9;P
M/)XB\2>'-2U?Y+N>:ZB1;M4AN9I9XE265W;Z[HH ^)O$?_!-?_@GIXRU237?
M&?[#G[)7C/798[>&77O&/[/?PL\5:Y+#:(([.&36?$'AC4=2DALXU6.TB>Z,
M=JBA(%C4 5=\&_\ !.C_ ()__#OQAX<^(7@']B']DGP7X]\'ZI:ZWX3\;>%?
MV=OA-H/BWPQK%C,MQ9ZIX>\1Z9X4MM7T;4+6X1)[>\TZ\MYX9D25'61%8?9E
M% '"?$?X7_#CXP>%+_P)\5/ OA/XC>"M5VC5/"/C70=.\2^&]4C6.6'R=2T3
M5K>ZTZ_MWAGGAEMKNWFMYH9I898GCD=3Y-\'?V-?V2/V>-8O/$'P"_9D^ ?P
M1UO4;8V>I:G\(_A)X&^'%YJ5L4:,0ZE-X0T32#J$:1O(D0O/.\E))5B*++(&
M^E** /E2Z_86_8MN_B'X@^+LO[)G[.$?Q7\67>M7_BCXGVOP7^'MC\1/$=]X
MD#CQ%>:YXVLM M_$NJW7B#>S:Y/?:G/+JTC&6_:XD^>N(M/^"9?_  3HT^_F
MU73OV$?V0--U:Y\_[5J^F_LY_";3]6NOM,HGNOM6J6?A6"_N?M4ZK/=">XD^
MTSJLT_F2*&'W%10!\^?!K]DO]EO]G75_$OB#X!?LX_ OX)Z_XSAMK?QAKOPH
M^%'@?X?ZUXLALKB6[M(_$VJ^%M$TN_UY;:ZFEN8?[5N+LQW$DDRD2,6.#\7?
MV)/V.?V@/$G_  F/QW_96_9X^-7BI84MHO$/Q9^#G@#XBZQ;VZ6]K:""TO\
MQ?H.KW%G"UM96<,L5J\*3):6PE5_(B*_4-% ''^ _A_X'^%WA;2_!'PY\)>'
MO W@[1$EBT;POX5TFST/0-*AEE>=X--TK3XH+.R@,CLRP6T,<*9VHBJ H\:^
M.?[&O[)O[36HZ'K7[0G[-OP/^-&O^&(XX?#/B/XE?#'PAXN\2^&X(KB2Z6WT
M#Q)J^E7&O:-;-<2S2R6VG:C;6\C33>9$PFE#_2M% '$?#[X:?#OX3>&;3P7\
M+O OA#X=>$;!YI;/PQX'\.:1X6T"VGN6#W5Q%I.B6=E8K=7DBB6\NC";F[E'
MFW,LLGS5\UW/_!.O]@>\\6OX_N_V+OV6KKX@/?)J;>/[GX$_#:?QV=3CC$,>
MI?\ "9R^'6\2_P!H10*MO%>C5!<Q6ZI;QRK"JH/LNB@#Y_\ C3^R?^R]^T@O
MAI?VA/V<_@9\=!X,BU&#PA_PN#X4>!OB2?"T&L"Q&K0^'6\8:'K#:-%J@TS3
M?[1CT\VZ7QT^R-RLAM82F'H7[%G[(OACQ]I'Q6\._LR_ K1/BCH%O866B?$G
M3/A=X/L_'^DZ?I;Q2Z=I>G^,8-*3Q%:Z392PPRVNE0ZBNG0RQ1R):AT5A].4
M4 <_XH\*>&/&^A:AX7\9>'M$\5>&]6CCAU/0?$6EV6LZ/J$<-Q#=P)>:=J$-
MQ:7 @N[:VNX#+$Q@N[>WN82D\$4B=  !T ')/'').2?J223ZDYHHH **** "
MBBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHK\C?B
M)^W!\0_%/[>7B+]B/X7>)?!GPD\6_"V^^!.N3Q^/?"C^--<^-?A?XQ?";X^^
M,-0\2^&O#+>+?!5W-\(?A[XA^'_A;PMXNU_PEJ%SXE3QC-J%A?:GX4TZRL8_
M%8!^N5%?GY\6OVPO&OP;\&_LN_#C7_A]X;UW]MK]J8IX5\&_!G2?%%YIW@#2
MO$_A'PG!XI^.WQ+\2^,]0T^YUK1/@#\%=%6Y\0^(?$AT34/%>K1ZCX-\%:'H
ME[XU\9Z5;"_^U'^T_P",OV6OA]\#='O5\+?$;X]?M.?M%?"S]F3X2VUKHFK>
M%O $/COXE-J&J:UXIUO2XO$/B'Q&O@7X9_#WPGX^^(^J6<6ORZUXC@\/6?A6
MVU?2KW7;?5K( ^]**_'[XQ_\%1+#]D>W_;N\._M#Z!:>(O&O['/P4^#_ .T%
MX);P5;3^&(OVA?A_\?=1USX<?##1M)T?4M1\3OX/\:2?M ^%]3^$'B!GU/6-
M BCUGP=XQM6A75]3\.:+[UH/[3WQ.^&/[57P%_93_:0A\ 7GB+]I[X'_ !-^
M)?PR\7?#>PU[2-"T[XF_ :?P1<_&;X-W5EKVK:[>:U9Q>%OB+H_C#X=^,S-H
MU[K6E>%?'%KXA\/:;=6VCR78!^@]%%)G'K^1/\A0 M%&<_\ ZB/YT4 %%%%
M!1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %
M%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 44
M44 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !111
M0 4444 %%%% !7X,?\%-/!O['G[4/Q+\!>%_'/Q!U7]F[]I[]F#XUZ1:^#?V
MF/"E[!\-?CW\*-!\6_L[>//BOIGC;X.^,-1M _Q!^&^I:W:6/A_Q?X+M(O$G
MA[Q-K_ASQ3X$U+2;37;B"=_WGK$U;PWX?UZYT2\UO1M-U:Z\-:POB#P[<:C9
MPW<VAZXFG:CI":QI$DZ.VG:DNEZOJFGB]M3%<"TU"[@\SRYY 0#^:CX>>&OB
MYXY_:9_X)>_M9_\ !3GX8^&TTWXA_P#!-?XU_L__ !!C\>>#[6R^'?PY_:S\
M5?$+X4?$S1;_ .*'A;6T;PI\,=4^.7P>\*>*K>UTGQ-!:Z+IGC?3+SX:S1:;
MXCD\*:5<>5>'?V:_BEX \ _!?XT:7I'BO4/V5OV0_P#@N_XT^-WP%\.3_P!I
M:K%\/?\ @G7X^\%ZC\$]0\4^#-$N+:;6H/@]\+_C'X]\:?$;PG%%'/9Z1\ [
M:^\8Z 9?!]KHDM?UARPQ31M%-&DL3JR/'(JNCHP(971@5=6!^97#*>I!(%/V
MC&.?KDY^N<YSCC.>G'2@#^4[_@HO^R?\6?VZ_%?_  51^,GP&\.W/C;0/#?[
M&G[#7P.^#K:*BZE8_M _$S]F#]JG6OVY_BCX5^&MU$\EAXIDM-,A\)?"[3]2
ML#<:)J7Q#\0ZAX3MM1&J^&_$4%G^B_C2"R_:_P#^"G'_  3B^,_P8OO^$G^$
MW[*'P$_:[^+OQ&\<VMK>IHVG^(?VG/"?PR^%/PA^%U]+-%$=.^(.J:3:_$7Q
MEK_@Z_CB\0>$=*\&POXHTW1Y=<T!-0_9B...)%CB18XT18T1%"(D:*%1$50%
M1$4 *J@*HZ 4D<446X1QI&&9G;8H7<[L7DD;'WI)&):1SEW;ER3S0!)7DGQ"
M^"/P^^)VIVFL>+K3Q)<7UAIXTVV;1OB%\1O"%N+1;B>["RV/@WQ;X?L+F;SK
MB4F[N;6:\*%(3<&&*&./UND;H?H?Y4 ?B5_P1QU_Q9XWB_X*>>'/'/CGX@^.
MM)^#/_!7']KCX,_"R#QO\0/&OB^?P)\*?"&@?".Z\,?#_P .ZAXBU[4M2L_"
MV@W6L:M<Z7I;WDT5I-J=ZT9 EVK^R_\ PC.D_P#/.[_\&NK_ /R?7XK?\$2_
M^0O_ ,%B?^TWW[;G_J,_!*OW(H P/^$9TG_GG=_^#75__D^C_A&=)_YYW?\
MX-=7_P#D^M^B@# _X1G2?^>=W_X-=7_^3Z/^$9TG_GG=_P#@UU?_ .3ZWZ*
M,#_A&=)_YYW?_@UU?_Y/H_X1G2?^>=W_ .#75_\ Y/K?HH P/^$9TG_GG=_^
M#75__D^C_A&=)_YYW?\ X-=7_P#D^M^B@# _X1G2?^>=W_X-=7_^3Z/^$9TG
M_GG=_P#@UU?_ .3ZWZ* ,#_A&=)_YYW?_@UU?_Y/H_X1G2?^>=W_ .#75_\
MY/K?HH P/^$9TG_GG=_^#75__D^C_A&=)_YYW?\ X-=7_P#D^M^B@# _X1G2
M?^>=W_X-=7_^3Z/^$9TG_GG=_P#@UU?_ .3ZWZ* ,#_A&=)_YYW?_@UU?_Y/
MH_X1G2?^>=W_ .#75_\ Y/K?HH P/^$9TG_GG=_^#75__D^C_A&=)_YYW?\
MX-=7_P#D^M^B@# _X1G2?^>=W_X-=7_^3Z/^$9TG_GG=_P#@UU?_ .3ZWZ*
M,#_A&=)_YYW?_@UU?_Y/H_X1G2?^>=W_ .#75_\ Y/K?HH P/^$9TG_GG=_^
M#75__D^C_A&=)_YYW?\ X-=7_P#D^M^B@# _X1G2?^>=W_X-=7_^3Z/^$9TG
M_GG=_P#@UU?_ .3ZWZ* ,#_A&=)_YYW?_@UU?_Y/H_X1G2?^>=W_ .#75_\
MY/K?HH P/^$9TG_GG=_^#75__D^C_A&=)_YYW?\ X-=7_P#D^M^B@# _X1G2
M?^>=W_X-=7_^3Z/^$9TG_GG=_P#@UU?_ .3ZWZ* ,#_A&=)_YYW?_@UU?_Y/
MH_X1G2?^>=W_ .#75_\ Y/K?HH P/^$9TG_GG=_^#75__D^C_A&=)_YYW?\
MX-=7_P#D^M^B@# _X1G2?^>=W_X-=7_^3Z/^$9TG_GG=_P#@UU?_ .3ZWZ*
M,#_A&=)_YYW?_@UU?_Y/H_X1G2?^>=W_ .#75_\ Y/K?HH P/^$9TG_GG=_^
M#75__D^C_A&=)_YYW?\ X-=7_P#D^M^B@# _X1G2?^>=W_X-=7_^3Z/^$9TG
M_GG=_P#@UU?_ .3ZWZ* ,#_A&=)_YYW?_@UU?_Y/H_X1G2?^>=W_ .#75_\
MY/K?HH P/^$9TG_GG=_^#75__D^C_A&=)_YYW?\ X-=7_P#D^M^B@# _X1G2
M?^>=W_X-=7_^3Z/^$9TG_GG=_P#@UU?_ .3ZWZ* ,#_A&=)_YYW?_@UU?_Y/
MH_X1G2?^>=W_ .#75_\ Y/K?HH P/^$9TG_GG=_^#75__D^C_A&=)_YYW?\
MX-=7_P#D^M^B@# _X1G2?^>=W_X-=7_^3Z/^$9TG_GG=_P#@UU?_ .3ZWZ*
M,#_A&=)_YYW?_@UU?_Y/H_X1G2?^>=W_ .#75_\ Y/K?HH P/^$9TG_GG=_^
M#75__D^C_A&=)_YYW?\ X-=7_P#D^M^B@# _X1G2?^>=W_X-=7_^3Z/^$9TG
M_GG=_P#@UU?_ .3ZWZ* ,#_A&=)_YYW?_@UU?_Y/H_X1G2?^>=W_ .#75_\
MY/K?HH P/^$9TG_GG=_^#75__EA6W#$D$4<,88)$BQH&=Y&"HH5=TDC/(YP!
MEG=G8\LQ))J2B@ HHHH **** "BBB@ HHJ-YHHWB221$>=S'"C.JM+((I9BD
M:DAI'$,$TNQ S>7%+)C9&[* 244F1C/;MCG/TQG/X49&,]!G'((YS@=<=3P/
M4]* %HI 01GL.N001WY!P1QSR!QS0"#Z_B"/Y@9'OTH 6D;H?H?Y4M(W0_0_
MRH _#C_@B7_R%_\ @L3_ -IOOVW/_49^"5?N17X;_P#!$O\ Y"__  6)_P"T
MWW[;G_J,_!*OW(H **** "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 **** "OYR_VW/C7??!O_ (*.^"M$_;N7
MQ/X8_8F^*GBGX%V_[+7[0)U[Q!X7_9_^$GC+2OA7\>_#'QC^'GQ:\8^%M?T&
MY^$_QE\>^.O&'@S7_AS\2]<,-AJWA:RL]#TSQ)X<3PGKTDO]&E?F#^UEX8^-
MGQ/\4R?"WQ_^RKX3_:'^ 6K?%O2[KPK8IXC\'ZAX;\4_#_6?V9_B-X:\7>"O
MC[X4\<Z;#!X6T^U^*5[J/V3QAIMKX[T^Y\.^)O#;VFGV/C#2;?3;X \%_P""
MEOA7]KWPW^R+\#?@Q\ O ?[6_P"T]X*L$TFW_:3^*?[,/[4/@[X%?MCS_#GX
M;Z%I\_A_5? /C?Q69_$/COQSXZ\1KINM>,;7PG-:^(/&VD>'==\/OJD)\<21
MS_.-E^T5X&TC]C'_ ();?"G]C7X]?M*^/? 7[=_[;GAGX->*_C%^T+\2_'/C
M']JG0_A[H]Y\4OBG^T;X#\6^./$%X/%'@_XF:9=?"N__ &>+R+3WLKKX>Z/?
M:U=^$-0AU+2-)\1O]T_L\_#_ /;$_80_9W_8S_91\(?!S0?VMO#WPZ^".G?#
M_P")7QB;X_:=\-M6\%>,_#SVJ:'IMEX2^(/A34]0\4_"FQTJYN- T?Q)8>(K
MCQWI>F>'M#@N? =\UW--9<S\1?\ @G!K_P#PI_X%ZSX$O?"EQ^T)\!?V_=5_
MX*.)8+/>:)X$\8_$/XF?$3XC>)?CU\(](U>^LK^_T#PWXF\ ?&#QUX+\">(]
M1TQG@\4Z5X+\7^*;&&-M9MX #X0_;L_;J^,W_!/S7_\ @II\&_A-KEW=0:)^
MR#^QU^T#^RY_;LEWXI7X%_$?]JC]HC6_V)/%%OI?]OR:G=ZOX2T7QI%X*^-'
MAOP?J5Q>:3IWB)O%^GQ(-#UZ+2=/^]-?\6ZW^R%_P47_ &"?V>/"'BKQOXH^
M%7[9'P4_:G\'^-M%\>>+];\97Y^+W[,/AGX<_$WPC\:3J_B&YU"_7QAXQ\+:
MS\1?#'Q,N;2XM+;QA<7/@_5-0LS>>%[.2O-OVB_^"7?B;]MI/^"A7CKXIZI:
M_#'QI^U/\!?@+^SS^SUI%S<V?B>[^#6A?LP^--?^.OPZ\:_$&;0+J]T/5]6\
M2_M)Z[#XJ\0^%?#.I:I8V/@+PEX?L;;Q!+XAUS6X=.^H+#]GCXJ?'?\ ;*_9
MG_:S^.7A#2/AC:_LF_ KXR>$?!7@/3?%EEXPN]=^.?[2"_#W1_B=XUMM6TC%
ME'\.O!O@?P#=>%O 4FK1:?XM\5S^/=:U37O#/@Z/P[86FM@'Z3UY)\0OCM\(
M?A7J5IHOQ#^(/AOPCJNH:>-4LK'6KQ[:XN=/:XGM%NXD6&7=";FVGA#9!WQ.
M,<9KUNF.H()RP.#T=U]>RL!GWZT ?@E_P0Z\:^%-6/\ P5RUW3=>T^\TC7_^
M"U7[:&M:-?P2LUOJ.E7_ (6^"4MG?6SE%+V]PF6B<A2P4G XS^Z7_"4>'_\
MH+6?_?S_ .M7XJ_\$2\_VO\ \%B1EB!_P6^_;; RS'_F6?@B.YYX '/8 =A7
M[CX'O^9_QH PO^$H\/\ _06L_P#OY_\ 6H_X2CP__P!!:S_[^?\ UJW<#W_,
M_P"-&![_ )G_ !H PO\ A*/#_P#T%K/_ +^?_6H_X2CP_P#]!:S_ ._G_P!:
MMW ]_P S_C1@>_YG_&@#"_X2CP__ -!:S_[^?_6H_P"$H\/_ /06L_\ OY_]
M:MW ]_S/^-&![_F?\: ,+_A*/#__ $%K/_OY_P#6H_X2CP__ -!:S_[^?_6K
M=P/?\S_C1@>_YG_&@#"_X2CP_P#]!:S_ ._G_P!:C_A*/#__ $%K/_OY_P#6
MK=P/?\S_ (T8'O\ F?\ &@#"_P"$H\/_ /06L_\ OY_]:C_A*/#_ /T%K/\
M[^?_ %JW<#W_ #/^-&![_F?\: ,+_A*/#_\ T%K/_OY_]:C_ (2CP_\ ]!:S
M_P"_G_UJW<#W_,_XT8'O^9_QH PO^$H\/_\ 06L_^_G_ -:C_A*/#_\ T%K/
M_OY_]:MW ]_S/^-&![_F?\: ,+_A*/#_ /T%K/\ [^?_ %J/^$H\/_\ 06L_
M^_G_ -:MW ]_S/\ C1@>_P"9_P : ,+_ (2CP_\ ]!:S_P"_G_UJ/^$H\/\
M_06L_P#OY_\ 6K=P/?\ ,_XT8'O^9_QH PO^$H\/_P#06L_^_G_UJ/\ A*/#
M_P#T%K/_ +^?_6K=P/?\S_C1@>_YG_&@#"_X2CP__P!!:S_[^?\ UJ/^$H\/
M_P#06L_^_G_UJW<#W_,_XT8'O^9_QH PO^$H\/\ _06L_P#OY_\ 6H_X2CP_
M_P!!:S_[^?\ UJW<#W_,_P"-&![_ )G_ !H PO\ A*/#_P#T%K/_ +^?_6H_
MX2CP_P#]!:S_ ._G_P!:MW ]_P S_C1@>_YG_&@#"_X2CP__ -!:S_[^?_6H
M_P"$H\/_ /06L_\ OY_]:MW ]_S/^-&![_F?\: ,+_A*/#__ $%K/_OY_P#6
MH_X2CP__ -!:S_[^?_6K=P/?\S_C1@>_YG_&@#"_X2CP_P#]!:S_ ._G_P!:
MC_A*/#__ $%K/_OY_P#6K=P/?\S_ (T8'O\ F?\ &@#"_P"$H\/_ /06L_\
MOY_]:C_A*/#_ /T%K/\ [^?_ %JW<#W_ #/^-&![_F?\: ,+_A*/#_\ T%K/
M_OY_]:C_ (2CP_\ ]!:S_P"_G_UJW<#W_,_XT8'O^9_QH PO^$H\/_\ 06L_
M^_G_ -:C_A*/#_\ T%K/_OY_]:MW ]_S/^-&![_F?\: ,+_A*/#_ /T%K/\
M[^?_ %J/^$H\/_\ 06L_^_G_ -:MW ]_S/\ C1@>_P"9_P : ,+_ (2CP_\
M]!:S_P"_G_UJ/^$H\/\ _06L_P#OY_\ 6K=P/?\ ,_XT8'O^9_QH PO^$H\/
M_P#06L_^_G_UJ/\ A*/#_P#T%K/_ +^?_6K=P/?\S_C1@>_YG_&@#"_X2CP_
M_P!!:S_[^?\ UJ/^$H\/_P#06L_^_G_UJW<#W_,_XT8'O^9_QH PO^$H\/\
M_06L_P#OY_\ 6H_X2CP__P!!:S_[^?\ UJW<#W_,_P"-&![_ )G_ !H PO\
MA*/#_P#T%K/_ +^?_6H_X2CP_P#]!:S_ ._G_P!:MW ]_P S_C1@>_YG_&@#
M"_X2CP__ -!:S_[^?_6H_P"$H\/_ /06L_\ OY_]:MW ]_S/^-&![_F?\: ,
M+_A*/#__ $%K/_OY_P#6H_X2CP__ -!:S_[^?_6K=P/?\S_C1@>_YG_&@#"_
MX2CP_P#]!:S_ ._G_P!:C_A*/#__ $%K/_OY_P#6K=P/?\S_ (T8'O\ F?\
M&@#"_P"$H\/_ /06L_\ OY_]:C_A*/#_ /T%K/\ [^?_ %JW<#W_ #/^-&![
M_F?\: ,+_A*/#_\ T%K/_OY_]:C_ (2CP_\ ]!:S_P"_G_UJW<#W_,_XT8'O
M^9_QH PO^$H\/_\ 06L_^_G_ -:C_A*/#_\ T%K/_OY_]:MW ]_S/^-&![_F
M?\: ,+_A*/#_ /T%K/\ [^?_ %J/^$H\/_\ 06L_^_G_ -:MW ]_S/\ C1@>
M_P"9_P : ,+_ (2CP_\ ]!:S_P"_G_UJVH98YXHYX762*9%DBD7E7C=0R,I[
MAE((]C3\#W_,_P"-+0 4444 %%%% !1110 4444 %%%% !1110 4C=#]#_*E
MI&Z'Z'^5 'X<?\$2_P#D+_\ !8G_ +3??MN?^HS\$J_<BOPW_P"")?\ R%_^
M"Q/_ &F^_;<_]1GX)5^Y% !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 5X7\5OVEO@?\$M9\.>'O
MB=\1-#\+ZSXGN$CL=-G:YOKVRLI-+\3ZK%K^OVNEP7MQX:\*/;^#_$4(\6:]
M%I_AT7FF75FVI">&=8O=*_GG_;G\(_M'_L2?MM:9^W]\,/!^O?M0_LZ_&?Q1
M\'+;]HG]G7P)9WM[^TSX&\2? #X+_'CP[X=^(/[-MDUW!H7Q!\)3?#?Q7XPU
MOXC_  :OS9ZY>:SX>;6/!-XVI>*-7:S /W^T+Q)X=\4^'M'\6^&=>T;Q'X5\
M0Z1I_B#0/$N@ZI8ZQX?US0=6LXM1TO6]'UG3I[G3=3TC4M/G@OK#4[*YGLKR
MSFBNK>>2"1)#Y[X<^/GP3\7?"*R^/OAKXK> -8^"6I:)-XDL/BQ9^*M(;X>W
M?AZWNY["77(/%DEU'HTFD"[MIK=-06Z^RRRILADD+Q[_ ,NO%W[;O[ OC/P)
M^SI\"?!W[3W[/'PA_9M^*_P/\&?&O5=0\<_%SP;\'!KG[+VO3ZGHW@;X7^#=
M&\<ZWX8UN"3XM:MX>\0>$?%UO:V4<W@CX=>#OB'X9U$>'_%/B#PA)'^//[+G
MQ7\/>/O^";G_  ;H_"3P7XX\,>*?!6M_MZ_!3P1\?-+\(>)=*UFQTOQ)\(O!
M/QU^/_@'X4>/M.T*YO8=#OHO&GA;P!\0+?P=K<-E=*?#'AN[:Q33?*DH _KM
M\%_$WP#\0]"O_$G@SQ;H?B#1])O[W2=:N[&^CSH6K:;;V]YJ&DZ_;7'D7F@Z
MK8V=W9WMWINLV]C?6]C>6=[- EI=VTTN5\.OC3\)_BW_ &B/AI\0_"7C<Z5;
MZ9?WJ^&]:M-29=(UT7;>'O$,"PONO?#'B1=.U)O#7BBQ6Y\.^(ETW46T34[\
M6%WY/\HO_!9+XD>/?A5\5_\ @KKX-^&.MZGH/AKXT_\ !.G_ ()HZK\59-)N
M[F,1^(/BC^W1XJ_9)\=ZX9;3,^E:SXD_9GUV]\*ZUJ4 34[WPYX<T$S3O;:!
MI8M?UO\ VE[V7X9_\%>O^"1^E_#VWMO#EA\4/@?_ ,%#?@Y\0=+T6V@L[&_^
M$_P[\ ?!3XF>!M,NK&U1(H]+\%?$'0M'/ADJB0:(_B+5K&P6!==O(YP#]FJ1
MNA^A_E2UY!\1/%OQ9\/ZI9VO@#X2V'Q TN;3A/>:G=_$K1_!3V=^;BXC:P73
M]1T#5I;E!;QP7'VU)XXRTY@\D-"SN ?DM_P1+_Y"_P#P6)_[3??MN?\ J,_!
M*OW(K\#O^"'6I^*+C_A[A=ZAX6AT[5KS_@M3^V?=:QI*>([*_CT?5)O"OP1:
M[TN/48K"&+4TLY#L74(8+>*Y#92"/8P/[H_;M?\ ^@!'_P"#FV_^1* .@HKG
M_MVO_P#0 C_\'-M_\B4?;M?_ .@!'_X.;;_Y$H Z"BN?^W:__P! "/\ \'-M
M_P#(E'V[7_\ H 1_^#FV_P#D2@#H**Y_[=K_ /T (_\ P<VW_P B4?;M?_Z
M$?\ X.;;_P"1* .@HKG_ +=K_P#T (__  <VW_R)1]NU_P#Z $?_ (.;;_Y$
MH Z"BN?^W:__ - "/_P<VW_R)1]NU_\ Z $?_@YMO_D2@#H**Y_[=K__ $ (
M_P#P<VW_ ,B4?;M?_P"@!'_X.;;_ .1* .@HKG_MVO\ _0 C_P#!S;?_ ")1
M]NU__H 1_P#@YMO_ )$H Z"BN?\ MVO_ /0 C_\ !S;?_(E'V[7_ /H 1_\
M@YMO_D2@#H**Y_[=K_\ T (__!S;?_(E'V[7_P#H 1_^#FV_^1* .@HKG_MV
MO_\ 0 C_ /!S;?\ R)1]NU__ * $?_@YMO\ Y$H Z"BN?^W:_P#] "/_ ,'-
MM_\ (E'V[7_^@!'_ .#FV_\ D2@#H**Y_P"W:_\ ] "/_P '-M_\B4?;M?\
M^@!'_P"#FV_^1* .@HKG_MVO_P#0 C_\'-M_\B4?;M?_ .@!'_X.;;_Y$H Z
M"BN?^W:__P! "/\ \'-M_P#(E'V[7_\ H 1_^#FV_P#D2@#H**Y_[=K_ /T
M(_\ P<VW_P B4?;M?_Z $?\ X.;;_P"1* .@HKG_ +=K_P#T (__  <VW_R)
M1]NU_P#Z $?_ (.;;_Y$H Z"BN?^W:__ - "/_P<VW_R)1]NU_\ Z $?_@YM
MO_D2@#H**Y_[=K__ $ (_P#P<VW_ ,B4?;M?_P"@!'_X.;;_ .1* .@HKG_M
MVO\ _0 C_P#!S;?_ ")1]NU__H 1_P#@YMO_ )$H Z"BN?\ MVO_ /0 C_\
M!S;?_(E'V[7_ /H 1_\ @YMO_D2@#H**Y_[=K_\ T (__!S;?_(E'V[7_P#H
M 1_^#FV_^1* .@HKG_MVO_\ 0 C_ /!S;?\ R)1]NU__ * $?_@YMO\ Y$H
MZ"BN?^W:_P#] "/_ ,'-M_\ (E'V[7_^@!'_ .#FV_\ D2@#H**Y_P"W:_\
M] "/_P '-M_\B4?;M?\ ^@!'_P"#FV_^1* .@HKG_MVO_P#0 C_\'-M_\B4?
M;M?_ .@!'_X.;;_Y$H Z"BN?^W:__P! "/\ \'-M_P#(E'V[7_\ H 1_^#FV
M_P#D2@#H**Y_[=K_ /T (_\ P<VW_P B4?;M?_Z $?\ X.;;_P"1* .@HKG_
M +=K_P#T (__  <VW_R)1]NU_P#Z $?_ (.;;_Y$H Z"BN?^W:__ - "/_P<
MVW_R)1]NU_\ Z $?_@YMO_D2@#H**Y_[=K__ $ (_P#P<VW_ ,B4?;M?_P"@
M!'_X.;;_ .1* .@HKG_MVO\ _0 C_P#!S;?_ ")1]NU__H 1_P#@YMO_ )$H
M Z"BN?\ MVO_ /0 C_\ !S;?_(E'V[7_ /H 1_\ @YMO_D2@#H**Y_[=K_\
MT (__!S;?_(E'V[7_P#H 1_^#FV_^1* .@HKG_MVO_\ 0 C_ /!S;?\ R)6Y
M"TCQ1M+&(I6C1I(@XD$;E0702*%#A6RN\*H;&0!G% $E%%% !1110 4444 %
M?"OQ4_9@^-?B7XI_\)S\/?VC+K0/#>K?%;P[\3[GP?XR\!^'_&,7PSU;1?@5
MXG^#-YJ7P=U!9-)DAEUEKOPUXINO#'Q A\6^%[7Q5!KOB*SCBBU6^\/:C]U4
M4 ?.'P-_9.^!7[/GP7^%GP'\!^!]*N? _P (?!FF>"/"DGBRQTSQ/X@ETW3S
M-<W-]K&M:CI[37VK:UJUYJ.O:S<116EK<:SJ=_<VUE9PS+;1_+7PZ_X)>_!S
MX=?L5?L^_L>:=XG\1W$G[,/B?X:_$SX/?&<:-X2T_P"('A_XQ?"+Q;/XO\#_
M !(N=/L=*3POJ=\)+B[\+>*='N]/?3O%G@/5_$'A3462TUJ>>+]-** /@C6/
M^">OP9^)'A_]KJR^.XN/BMXC_;>\&Z#\-_CIX@^RCPK;Q?#?P3X;U?PW\.O
MWPUTJUO=7G\!Z-X E\0^)?&OAR^&LZUXEB^)/B?7/&5QKDT[:38Z1W/P]_92
M32/C-X0_:#^+7Q%UCXS_ !:^&WP8U/X#_#?Q%J^@:3X8L_#'@SQ3K'A?7_B-
MXADT72)[NRO_ (F_%74_ W@AO'OBVW.E:6]AX3TS2?"/A7PEIUYK]OK/U]10
M 4C=#]#_ "I:1NA^A_E0!^''_!$O_D+_ /!8G_M-]^VY_P"HS\$J_<BOPW_X
M(E_\A?\ X+$_]IOOVW/_ %&?@E7[D4 %%%% !1110 4444 %%%% !1110 44
M44 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !111
M0 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%%
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
M* ,#^S-8_P"AAE_\%>F__&J/[,UC_H89?_!7IO\ \:K?HH P/[,UC_H89?\
MP5Z;_P#&J/[,UC_H89?_  5Z;_\ &JWZ* ,#^S-8_P"AAE_\%>F__&J/[,UC
M_H89?_!7IO\ \:K?HH P/[,UC_H89?\ P5Z;_P#&J/[,UC_H89?_  5Z;_\
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
MV]O%)-///(D,$,,2-)+--+(52***-6DED<A(XU9V(52:_GOT6U\9_P#!5O\
M:N^)M]:_$3XE^!/V.?@W8?\ "%Z7)X!\27GAR3QYJ<MRTEO/&KI/I=U>>*9H
MKSQ-?7=]I-_/HWA"S\)Z7]GMKW5%NS[S_P %+OVN(O$'@+P9^R]^S+XET;X@
M?%#]IZ\@\,+>>!M?T_6[?3_ FIWB:5>P+JVCW=S9VT_C.[EDT-IFF*V/ABU\
M6ZC=&U6&TF;]#_V3_P!G3PU^RS\#/!GP@\.F"[GT>T;4/%>NQ1>4_BCQIJJQ
MS^)/$,H*K((KJ\5;32X9=SV&A6.E::&*6:U]]PO3K>"/ASB/$+&8=83Q+X_E
MC,@\.<+CL+!XSAGAS 8B%+BCC:6$Q=*;PV.QF)IKA[A^I5I4*U.V9XZ@Z]%6
M/S[BFK1\</$C#>'F!Q+Q?AGX?QPG$'B-B\!BZD<)Q/Q'C\.ZO"_!$<9A*L/;
MX'!8:I/B#B&E1J5J-2^6X#$*C6=SP'X<_P#!+']B#X<26]Y#\&;'QIJ]O*DY
MU?XD:QK/C66YE3!WW6E:E>)X:E+,/,9/[#$9<M\@7 'W//X/\+2^%;KP1_8&
MDP>$+O1KSP]/X;L["WLM&_L._M)["]TN+3K.."U@LY[*YGMV@@BCC\N1E"XK
MI:*_$.(N.^-N+L51QO%/%O$G$.*PU3VV%K9QG689A+"5+IJ6#6*Q%2.$Y7&/
M*L-&E&-ERI61^X\.\"<$\(X2M@>%^$N'.'L+B:7L<51R?)LOR^.,I6<7'&/"
MX>E+%W3?,\2ZKE>3DVY._P"*_P#P2UUG4O@=\3_VH?V#?%U[+)??"+QS?^.?
MAN]X"EQJW@77)K.UO;F!9"NRVDMKGP9XF2*-6S/XKU*3HC&OVHK\2/V_XI?V
M6_VR/V6/VX=+BEM/">L:JGP5^-DUNK>1+HM[#=I9WM[&<I<7#^%+[7KB#>RH
M+KP-HJC9*B2#]LHIHYHHYHY8Y8I41XIHW5XY8W :.2-T)1TD4JZ,I*LK J2"
M#7Z?XZTZ?$.*X.\6L)"*P_BGPW1Q^<^RC&%.AQYPXZ>0<;8=4XJ]-XO'X?"\
M014WS3IY[3J)<LDW^6^ ]2IP[A>,O"/&3F\3X6<2U<!DSJRE.K7X#XCC//\
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
M - 32_\ P"M__C='_",^'?\ H":7_P" 5O\ _&Z -RBL/_A&?#O_ $!-+_\
M *W_ /C='_",^'?^@)I?_@%;_P#QN@#<HK#_ .$9\._] 32__ *W_P#C='_"
M,^'?^@)I?_@%;_\ QN@#<HK#_P"$9\._] 32_P#P"M__ (W1_P (SX=_Z FE
M_P#@%;__ !N@#<HK#_X1GP[_ - 32_\ P"M__C='_",^'?\ H":7_P" 5O\
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
MF26]U/P5H)U4.V=TD6LVUE;ZO!(Q.6D@OHW8X+,2!CUK_A&?#O\ T!-+_P#
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
M"*SDL5\4O%>:YXL%M<1B.[B3Q-XAN]4UFWBO$&V[AM+NW@N$S')$8OD'TY7
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
M/B7XC63R2FYU#4/%$=OIUWJ5IJ4(DA2RTRXB\'PV\21E/$EP+BZD[;X4>#/
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
MJUQJ<>I>&9]9UW4=$\9S>%;[PK"FDVVLR_HK1_3I0!^*_P 8_P#@F-\1)?\
M@BW>_P#!+7X,>//"NO\ C.7]GO1?@7I_Q*^*%[KWACPE;21:I8ZSJ^NM8:!H
MGCG7;'0;.:"[T[PIX6MXM0GTO15T;2[C6)UT^:\F^POVM_V6O$7[3?@?]G[7
M=-O- \%?'']F3]H7X2_M/_"U[_4K_5_!K^-OAX=5T'Q/X$\1ZU9:#:ZS)X1^
M(WPT\6^._ %[X@L/#QU'P]/K^F>,+;P]J=WX>BT:\^YJ* /QT^,W_!+FW_:X
ML_V]?$OQ^\06/A;QW^V1\%_@U\!/ *>$II?%D/[/7@C]GK4=:^)'PJURVU74
M+'PX/&?B\?M!>)+_ .+7BBS33]'\.SVNB^$O!EI)<G2]3\3:S] Z#^S#\3OB
MA^U?\!OVL?VCAX!TKQ!^S%\#/BA\,?AGX+^'>JZYXAT:]^)OQ[N_ T7QG^+T
MVK:YH_AVYTG33X9^'&D>#OAQX3:QU'4[#2/%7C2_\3:Q+>3Z396OZ%44 %-9
M5(.5!X/4 _SIU(W0_0_RH _FW_X)C_LM_ C]II/^"P6C?&;X>:-XM;3_ /@M
MK^W#:Z)KS"?3?%?AZ*7PW\&)2F@^)],EM=9TZW%S/)=MIR73Z3<73--=Z?<,
M\F_[,^%'_!&_X!_#[XF6GB_Q9XS\:_%_P-X:GDO? 7PJ\?1V$WAW0M0FE@FD
MN=>FL&M[?Q9;I+;Q/%I;:/HVEW311#7;36HXQ&WFG_!$O_D+_P#!8G_M-]^V
MY_ZC/P2K]R*_1N'O%WQ,X5R3%<.</\:Y[EN28NE5HO+Z6+]I1P:Q$)T\14RB
M6(C6JY'B<12J5:.(Q>35,!BJ]&K5HU:TZ52<)?F_$7A!X8\69Y@^).(>"<@S
M//,'6HUHYC6P:IUL9+#SA5P]/-XT)4J6>8;#U:5.M0PF<T\?A:-:G3K4J,*M
M.$XPP6\%K!%;6T,=O;P11PP00(L4,,,2".*&&.,*D442*J1QQJJ1HH1%"@"B
M:VM[A=EQ!#.F"-LT22K@]>)%8<X&<CG'-345^;5:=.O&I"O"%:%6ZJ1JQ4XU
M$W=J:DFI7>KYKW>Y^D1]SEY/<Y4E'E]WE25DHVM9):*VRT.8NO!/@V^.Z\\*
M>'+EMP??-HFFNY8%F!+FVW'EF)!."220236[9V-EI\*V]A9VME OW8+2WAMH
M5 S@"*!$0  \86K5%>+@.%^&<JQE;,<KX>R/+<PQ,%3Q&.P&4X#!XS$4TVU"
MOB</AZ=:M!-MJ-2<DFVTKMG35QF+K4XTJV*Q-6E!WC2JUZM2G%Z:QA*3C%Z+
M5);(3 ]!^5&!Z#\A2T5[EEV7W(Y[ON_Z_P"&7W'$_$3X<>!OBSX0UKP%\1O#
M&D>+_"7B&RFL-5T76;5+BWFAF1D$L$GRW%C?6[$3V&IV$UMJ&G7:17=C<P7,
M4<J_BGHG[ '[=?[+FN^++#]D'XW_  _U'X3ZAK,NL>&O"GQ+U/Q'I_B'3(I_
MW\EA<MIFBS:1)<[V-I=7MKJ5G8ZV8EU:[TO3]0GG6OWBHKZ++\_AA\@S?A#.
MN'>%.-.#<\S#+LYS'A'C;(,'Q%D,L^R=I97Q%@L/B5&OE/$6 I<V%PV>93B<
M%F4,)4EAGB945"$/@^*?#W)>*,URGB'Z[GW#G%.24,7@LMXJX1SC$Y!Q!1RW
M'Q:QN45\;A>:&/RC$SY:]3+<PHXK"+$05>G2A4E4E/\ %I=2_P""S&Y="3X6
M_LP1ZM<#[/%\6I]3TFZ;1H8GEC:=K9]?:_F>=6B>'?X8U0K$1YUHTK2I#SMQ
M_P $Z?VU?C1J&G:]^TS^VEXEN[FQN7OK+0/AGJVI^'-(T2\EC\IKK2UT_2M$
MTE+F*(M&)(/#EK-)&3&+U/-E8_N/17N8KQ&S_!Y+0R3P]PV1>$D(^VAB\XX&
MR3 X_BK'4*[M4PJXM\1:?'O$F38?DO2IPX8S/(I4:3=.E.$/=/E_^(*</9EB
MOK'&O$?'OB+AX>S>'RCBSBS'8?(</.DXRIU9Y+PA#A7+LSJQG%5/:9YA\UG*
M6LFVE;\;;K_@D/$\$QLOVS?VI;:_EMSBYN_%-OJ-N+TQ!?/FA,EG=W%L)%4F
MV^W12F)1$+M6Q(N/:_#G_@JY^RL5'@+Q;\,/VQO &G[Q%HGBRPM/"OQ(73XP
M0P6_N;G1;^>Z,?,1E\9>*W,NXK82;V1OVJH(!X(R/0UZ.4^*>982LZF?<*>'
M/'%.K9XK_6[@+AK%YGBJS7+5QM3BC+,!E7%T,RKWE+$9C2SZ&+Q%6<JV(JUJ
MC<B,7X&\)04:O"^;\<<!9A2O[''\(\:9_AH1A?FCAZV2YKC,VX;QF$C))QPF
M,R:O1@ERTXPB['X>>+?VV/$406[^/_\ P3M_::^&.IQ*K7OC+X<:;_PE%JCQ
MH7DN_MK:-X?TVZC23D"[NKJ18@V+I71E'BQ^/7[4W[56IOX1_8Q^$WCI_"VG
M@Z?J'QA^/&DZ7X7T;0)-R226UI9/<ZII7VVQD9GE@&I>*M6N24>3PU#&JEOZ
M*]HQCH/0$K_(BC __7S_ #_7U[U^:8_PZ^B+C>*Z_B+3^B5P5@_$"O:>(Q>%
MXZ\1,'P7G6(5:-98KC/@3+L[P&#X^G!\RI8?C+,\YR]QG*GBL'BZ+]DO4EP]
MXW8C 0X=QOTBN**O"[:C7AA>#>#,!Q?'#J'+]6RKB^C@)1R",W9UL1E&1X7'
M/E3PV+PDW*;_ !/\ ?\ !&WPYK4#:]^T[\>/B;\3O&6JS27VMZ7X)U6+P;X)
MCNIY#)+:0B?3K[6+^W1FD"W-NGAN)PY$.DV:J%/L_BG_ (([?L0ZYX:M]%T#
MP3XJ\!:U9K*]IXU\+^//$MQXE%TR_NKB[7Q->Z_HE[Y<H601OI,.T!DAD@#9
M'ZE45^L+QU\6*$\.LIXTS/AK 824?J>1<)1PO"G#>$HTZ:H4<)2X<X?P^79*
M\%1PZCAZ>%K8&K2]A%4YQFKW\VC]'WP<CAZU+'<!Y+GV)Q-)T\7G'$].MQ-Q
M!B9RDJE3$5,_SVMC\XABJM9.M/$4,;2J*K)RIRA:*C^$\O\ P2I_:7@F'PRL
M_P!M[Q/<_L[ZS+!'XHTRZTW5;3X@/H<)8R>'K&:/4-0TR[M[R(M:SR7.KV6D
ME6$EUX<OX$-A+^E?P>_8J_9V^!_A.V\'>!_ XCTR%0US<:GJ=]>ZGJMX8Q'+
MJ>K7D<MK]MU"4#B=HD2V3;!8Q6EM'%"GU;17Y;X@/)O$[ANEP;Q=P5X=8GA!
M9_4XNS#A/+?#S@O(>&.(>,ZM&&'GQGQ1P[DF29?DO$?%BP].%"AG^<8'%YCA
M:2FL+7H2KXF5;ZO@GP[X<\/\XK<0\.RSW^W99?')L%G&<\3\0\1YIDF0PG*K
M'A[A_,<^S+,<;DF1NM.=:IEN75\/0KU))XB-6-*A&EXA>?L\?"VY):+1;NP+
M')%EJ^HHI^8';MGGN5VD KC' )VX8AAZ!X5\!>$O!< B\.Z+:64A0))>E3<:
MC..XFOIS)<NI//E"185Z)&H  Z^BOQGA?P!\#^"<^_UHX/\ "+PXX7XA4)0I
MYQD/!O#^58_#QDVYK"8C!8"C/!NI>U5X5TG5BE&JYJ,4OU7&<3<19AAOJ>/S
MS-L9A6TY4,3F&*K4IM;>TA4JR511^RI\RB[M6"C ZXY]:**_73PPJHVGV#78
MU!K*T:_6,1+>M;0F[6($D1BY*><(P22$#[023BK=%85\+AL5[)8G#T,0J%:G
MB**KTH5?98BDVZ5>GSQER5:;;=.I&TX-MQ:N5&<X7Y)2CS1<9<LG'FC+>+LU
M>+ZIZ/JA,#N,_7G^=&!Z#\A2T5M9=E]R)N^_]?TD%%%%, HHHH **** "BBB
M@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ****
M"BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHKSGX
MG?%GP#\']$TS7O'^OQ:-;:]XFT+P5X9L(K6]U37?%OC3Q/<O:>'?"'A/P_I5
MM>ZSXD\2ZQ-'.]GI&DV5U="SM+_4[A8-+TW4+VU /1J*^7OA)^V!\$OBYX*\
M0>-;76M5\ V_@CX;>"_BS\1]*^*_A_5_AW??#WP'X]\+:KXR\/\ BCQ%?^([
M6S\-W/AF70= \0W,WBWPYKNN^$X9/#NOV\FMK<:1?Q0=-\*_VF/@]\8];/AG
MP9XCO!XEF\$:#\4-*\.>)_#GB/P7K_B+X7>*;NXL/#WQ)\-Z-XLTO1]1USP5
MJ=_:R6 UJQMI$TV^ELK'6H=+N]2TR&\ />Z1NA^A_E2TC=#]#_*@#\./^")?
M_(7_ ."Q/_:;[]MS_P!1GX)5^Y%?AO\ \$2_^0O_ ,%B?^TWW[;G_J,_!*OW
M(H **** "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@ KX5_;^_9,U;]K7X5^!]+\ ?&'4?@'\>_@?
M\7/"_P"T1^S9\6[+2[3Q+8^$/C+X"T3Q1H=@WBSP3?2P6OCOP%XC\(>,?%_@
M[QOX3EFA-_X>\0WD\,GVFUABE^ZJ\7^,/P2T?XP3?#K4[CQ;X]\">)OA7XW;
MQYX,\4_#[7K;2-2MM4N/"_B/P9JFEZWINK:5K_AGQ=X6UKPYXIU:RU7PQXIT
M'5=*FN/[.UBVBL]<T;2-3L0#^3W]I[]KWXG_ !*_X(L?M1_LW_&3X,_\**_:
MH^"7P#_X)Z:;\5'\+:I_PDGPX^,G[%?Q?^.7@#PGI?QE^&/BR.:RU"Y\ >*O
M FG?%C0_'G@;Q%'#J_P\U0^+O#VK7%_;2RW:?LM^UI<ZMIW_  6)_P""/Z>%
M3<6TVL?";_@IIHWQ$&FK*GG_  JM?AS\ ]8M;?6E@7RSHEO\4].^',]G]IVQ
M1ZW_ &>+=A+*%?ZM^&'[ 'P0\*?##QSX!^)MC<?'?5?C'\"/A_\ LY_&WQ3\
M1%AD/CWX1?#SP3JW@S1/AM8:%I4>GZ3X,^'5BGBGQQK.F^%O#L-M-#KWC;Q'
MXBU+5]6\2ZC-K3>H_#+]EGP%\./'NE_%6\UWQU\2_B9X>^%-E\#O"OCKXGZ]
M9^(O$7A3X4VNJZ?KM[X2T:YT_1]#@9_$^MZ+X>U?QUXJU6VU/QMX]U'PSX9G
M\7>)-73P[HT5F ?2U>4>/]2^-EEJ%JGPS\(_"WQ#HYT_S+^Z\=_$3QAX/U&'
M4O/G#V]I8^'/A;X[MKFQ%JMO(+N;4;6Y,\D\/V$1Q1SS>KTC ,I4]&!!^A&#
M^E '\PO['O[.O_!67P!X^_X*$:C^S-\=_P!@OP-X/^*O_!1W]I'XN^)O"GQ;
M^"7QW^+6NZ+X[\8Z?\/'U6PTCQMX<^(OPFMM0\.6FC6GAZUM$N_!]G>G48=5
MO#(;>]@M;3[<_P"%=_\ !?/_ *.C_P""7'_B(_[3'_T2-?JU\/OA9X/^&,WC
MR?PE9WEI)\2/B'X@^*'BDW>I7FHBZ\7>)[32+/5KNU6[DD&GVDT&AZ>L6G6N
MRTMVCD>*-6FD)]%H _&#_A7?_!?/_HZ/_@EQ_P"(C_M,?_1(T?\ "N_^"^?_
M $='_P $N/\ Q$?]IC_Z)&OV?HH _&#_ (5W_P %\_\ HZ/_ ()<?^(C_M,?
M_1(T?\*[_P""^?\ T='_ ,$N/_$1_P!IC_Z)&OV?HH _&#_A7?\ P7S_ .CH
M_P#@EQ_XB/\ M,?_ $2-'_"N_P#@OG_T='_P2X_\1'_:8_\ HD:_9^B@#\8/
M^%=_\%\_^CH_^"7'_B(_[3'_ -$C1_PKO_@OG_T='_P2X_\ $1_VF/\ Z)&O
MV?HH _&#_A7?_!?/_HZ/_@EQ_P"(C_M,?_1(T?\ "N_^"^?_ $='_P $N/\
MQ$?]IC_Z)&OV?HH _&#_ (5W_P %\_\ HZ/_ ()<?^(C_M,?_1(UC>(_"G_!
M>WPYX?UWQ!<?M/\ _!+J:#0]&U36)H4_9)_:81I8M+L+B^DB5_\ AHZ38TB6
M[*&V/MSNV.0%/[<5F:UI-EK^D:KH>I(\FGZQIM]I5]''*\$CV>HVDUE=)'-&
M1)$[03R*DL9#QL0ZD, : /PM^#__  _F^+_PF^&'Q8T[]I/_ ()@:38?$[X=
M^"/B%9:3=_LF_M*7%WI=IXV\,:5XGMM.NKB']HZ.&XN+*#5([::>&-(II(FD
M1$#;%]&_X5W_ ,%\_P#HZ/\ X)<?^(C_ +3'_P!$C7ZW_#WP+X=^%_@+P3\-
MO"-O<6GA7X?>$?#7@CPU:W=Y<:C=6WA_PEHECX?T6WN=0NWDN[ZXATS3K6*:
M\N9'N+J5&GF=I9'8]A0!^,'_  KO_@OG_P!'1_\ !+C_ ,1'_:8_^B1H_P"%
M=_\ !?/_ *.C_P""7'_B(_[3'_T2-?L_10!^,'_"N_\ @OG_ -'1_P#!+C_Q
M$?\ :8_^B1H_X5W_ ,%\_P#HZ/\ X)<?^(C_ +3'_P!$C7[/T4 ?C!_PKO\
MX+Y_]'1_\$N/_$1_VF/_ *)&C_A7?_!?/_HZ/_@EQ_XB/^TQ_P#1(U^S]% '
MXP?\*[_X+Y_]'1_\$N/_ !$?]IC_ .B1H_X5W_P7S_Z.C_X)<?\ B(_[3'_T
M2-?L_10!^,'_  KO_@OG_P!'1_\ !+C_ ,1'_:8_^B1H_P"%=_\ !?/_ *.C
M_P""7'_B(_[3'_T2-?L_10!^,'_"N_\ @OG_ -'1_P#!+C_Q$?\ :8_^B1KR
MCXQ:C_P7C^#_ (;\.^(]2_:0_P""8.K1>(OBM\%OA5;VMK^R?^TI;2Q7_P 9
MOBQX.^%.G:FTDO[1<T;V^BWOB^#6+RW/ER7=G8W%M;S1W,L!/[[5P7Q$^&WA
M7XI:/HVA>+[6ZN]/T'QY\./B1IL=GJ%WILD?BGX5>._#_P 1O!UU)-9R1R3V
MMGXH\,Z3=7FGR%K74[6*6PO8Y+6XF1@#\G?^%=_\%\S_ ,W1_P#!+C_Q$?\
M:8_^B1H_X5W_ ,%\_P#HZ/\ X)<?^(C_ +3'_P!$C7[/]** /Q@_X5W_ ,%\
M_P#HZ/\ X)<?^(C_ +3'_P!$C1_PKO\ X+Y_]'1_\$N/_$1_VF/_ *)&OV?H
MH _&#_A7?_!?/_HZ/_@EQ_XB/^TQ_P#1(T?\*[_X+Y_]'1_\$N/_ !$?]IC_
M .B1K]GZ* /Q@_X5W_P7S_Z.C_X)<?\ B(_[3'_T2-'_  KO_@OG_P!'1_\
M!+C_ ,1'_:8_^B1K]GZ* /Q@_P"%=_\ !?/_ *.C_P""7'_B(_[3'_T2-'_"
MN_\ @OG_ -'1_P#!+C_Q$?\ :8_^B1K]GZ* /Q@_X5W_ ,%\_P#HZ/\ X)<?
M^(C_ +3'_P!$C1_PKO\ X+Y_]'1_\$N/_$1_VF/_ *)&OV?HH _&#_A7?_!?
M/_HZ/_@EQ_XB/^TQ_P#1(UY7K=]_P7CT3XT?#GX,S?M(_P#!,"74OB+\./B[
M\1;+6%_9._:46TL;3X2>(?@WX?U#3)K7_AHMYIKK5I/C#87=K.LT,%M#HM\D
MPEFNK51^^=<)JGPX\+:O\2/!WQ6OK6Z?QCX$\'_$#P-X=O$O[J*SM_#WQ-U7
MX>:SXLM[G3$<6=[<7=]\+_",EI>W$;W&G1VEW#:/''J5X) #\F_^%=_\%\_^
MCH_^"7'_ (B/^TQ_]$C1_P *[_X+Y_\ 1T?_  2X_P#$1_VF/_HD:_9^B@#\
M8/\ A7?_  7S_P"CH_\ @EQ_XB/^TQ_]$C1_PKO_ (+Y_P#1T?\ P2X_\1'_
M &F/_HD:_9^B@#\8/^%=_P#!?/\ Z.C_ ."7'_B(_P"TQ_\ 1(T?\*[_ ."^
M?_1T?_!+C_Q$?]IC_P"B1K]GZ* /Q@_X5W_P7S_Z.C_X)<?^(C_M,?\ T2-'
M_"N_^"^?_1T?_!+C_P 1'_:8_P#HD:_9^B@#\8/^%=_\%\_^CH_^"7'_ (B/
M^TQ_]$C1_P *[_X+Y_\ 1T?_  2X_P#$1_VF/_HD:_9^B@#\8/\ A7?_  7S
M_P"CH_\ @EQ_XB/^TQ_]$C1_PKO_ (+Y_P#1T?\ P2X_\1'_ &F/_HD:_9^B
M@#\8/^%=_P#!?/\ Z.C_ ."7'_B(_P"TQ_\ 1(UY%X!UC_@O#X]^(/QQ^']I
M^T?_ ,$PK&\^"'C'PCX/U.^G_9/_ &E)8=:N/%OPL\%?%&WO;*&/]HM'M(+:
MR\:6^EO%/+-++<V%Q<_N8988S^_E>>^%/AAX2\%^+OB=XWT&TNX/$'Q>\0^'
M_%'C:XGU&[N[>]U?PQX&\.?#O29;*SGD>WTN&+PQX5T:VFM[)(H;BZAFOIE:
MZN9G8 _*+_A7?_!?/_HZ/_@EQ_XB/^TQ_P#1(T?\*[_X+Y_]'1_\$N/_ !$?
M]IC_ .B1K]GZ* /Q@_X5W_P7S_Z.C_X)<?\ B(_[3'_T2-'_  KO_@OG_P!'
M1_\ !+C_ ,1'_:8_^B1K]GZ* /Q@_P"%=_\ !?/_ *.C_P""7'_B(_[3'_T2
M-'_"N_\ @OG_ -'1_P#!+C_Q$?\ :8_^B1K]GZ* /Q@_X5W_ ,%\_P#HZ/\
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
M%92?LH7VBZCIGB.U\"R>$?#/A[QP ?T[44B@A5#'+  $^I Y/XGFEH ****
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
MA!O WP0\-P:.I,]YIEC??$;QM\3+K4W*6^D^(_ASX-4++<WL)@^KJ* $
M&   !Z < 4M%% !1110 4444 %%%% $<H)BD"KN8QN%4$ L2I 4$X R>,DX'
M4\5^77[!WP-_:"_9R7_@HKKGCOX=^'WU7X_?MO?'7]JWX-Z+I/Q%T>^37?"_
MCCX>?#'PWX3\*>*=472Q#X.\4W6J?#NX76&%KK^AZ1::O974&J:JT-W:Q?J3
M10!^+O[/U_\ \%9O^%SV_B+XS?L=?L>^%!\1?%&A:;\4_C5IG[8_C7XE^(?!
MOPDT76+V_MO!OPV^%X_9Z\'0/9Z/H]YJ,.AZ3-XWLK6]\=ZUJ'C[Q5<ZO/=7
M=BWZ4?L_>!?$W@3X?ZGJ'C6PLXOB1\0?&7C?XI^/++3=274X+;Q#XTUR[U#3
MO#-OK$ODP:A;^"_",'A7X?:=J 6&WN+#PM9SH$A8$>]44 ?F+_P3F_9S^-GP
M%\-_MGZ/\7-#TGP???'3]N[]K#]I?P#?^&/%VE^+GM_ GQ]\8Q>(_"<6I&*P
MM4TKQEX?M80-;TMH-3TB*_$/]GZSJMLTIA^8OAQ_P3J^*-U\,_\ @FY\+/B#
MX5\*^&OBU_P3N^,?@WQV_P"USX=\3V.HZW\3_#WA=/$=G\4F\-P)#!\0H]7_
M &QK/5%F_:#\+>/([/P]9:CXI\5:O_;WC_7= \.:MJG[KT4 (HVJHXX '&<<
M#'&23CTR2?4FEHHH **** "BBB@ HHHH \>_:#\/^)O%OP,^+WA3P;I,.N>*
M_%7PU\<>%O#VE7.J6NB6EWK'B7PSJFA:>MYJUZLEOI]E%<ZA%/>W1AN)(K2*
M9K>UNK@16TOP5\'/ /[:G[+/_!*W]FSX%?!OX3?"_P ;?M:?!+]G7X'? 4Z!
MXV^+T/ACX6)KOP_\!Z#X)\2^/%\<:?X.\3WFHZ';G1KK6/#NA-X3AU'6)Y].
MT[6(]+M?[0N8_P!5J* /QX^!&E?\%*A\/_B?\-O&G[,W[-_[/6GZKX!\8'0?
M'7@7]JSQ1\>OB=XT^-?Q$UC2M+N?B)XPU36?@I\*=/L)=!L-4\4?$#Q%JSG6
M=2\1ZKH_AKPCX<T[0=(1([7[/_:9^#&M:Y^Q#\;_ -G3X*^'K&[UGQ'^S1\0
M?@7\,]#U/6[?0](M)=>^%VK_  Y\)+J^N7<5P+#2-+6[T^35+N*SO;N.RM[B
M2SL+VZ\NUE^N** /C[]DWX?>//@W^P_^SA\&_B%X%MM5\??"C]G/X1_!_P 8
M^$M&U_PYKFC:KK?@+X;^'_ VN-I^N:K+I.DZAX<U*ZTFYGMY]0MK2YN-)N$^
MUZ-%<O+IZ^7?LE_L26WPD^-7Q<_:N^(FE_#_ $SXS_%7POX<^$G@KP'\+=#L
M-(^&/[.'[-W@?6-2\1>&/@OX!N+;1= N?$>J^)_&>L:Q\4?C%X[N='T2#Q=X
MXU/3]*T+P]HWA+P3X=CN?T2HH **** "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 **.E?FM\1_^"L/['GPL\?>,OAKXN\3^,K;
MQ3X$\2:MX5\0V]GX"UN^M8-8T6[DLKZ*WO82(;J%)XG6.>+Y)%&Y>"*^JX4X
M'XQXYQ6*P7!O#.=\3XO!4(XK%X;),NQ68UL-AI5(T8UZU/"TZDJ=)U9Q@IR2
MBY-13NTCY7BKCC@[@;"X7&\8\39)PSA,;7EAL)B,[S'#9=1Q.(A!U9T:,\34
MIQJ5(TTZDH1;DH)RM8_2FBORB_X?/?L-?]#=X[_\-OK_ /\ %4?\/GOV&O\
MH;O'?_AM]?\ _BJ^Y_XEZ\<_^C2^('_B+YM_\R_U9^5_AO\ B87P-_Z.QP#_
M .)-E?\ \T_U9^5_U=HK\HO^'SW[#7_0W>.__#;Z_P#_ !5 _P""SW[#9('_
M  EWCOG_ *IOK_\ \51_Q+UXY_\ 1I?$#_Q%\V_^9?ZL_*Y_Q,+X&_\ 1V.
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
M@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ****
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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 %%%% !112;@#CG/K@
MXY_VL;<^V<T +12%@.N>?16/\@<?C2T %%'3K2!@?[W!QRK#^8&1[CB@!:*;
MO&<8;_OA\?GMQ^M*"#T(/)'!SR#@CZ@\$=C0 M%%!(')X_\ KG 'U)X [GB@
M HIH8'CD'T*E<_3<!GZC-.H **:&!.!D\9!"L5(Z\-C:?;!Y[4Z@ HHHH **
M** "BBD)QCKR<< G\\ X''4X'OR* %HHHH **** "BBB@ HHHH **** "BBB
M@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ****
M"BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH *
M*** #I7Q=XR_;W_9W\"^+?$G@KQ!K?B.#7?"FM7V@ZQ#;^%-2NH(M1TZ4PW,
M<-S&PCN(U<865!M<<BOM&N1N_ '@:_NKB]OO!OA2\O+N9[BZNKKPYHMS<W$\
MAW233SS6,DTTLC<O)([.YY9B: /CC_AY%^S!_P!#!XI_\(S5O_BJ/^'D7[,'
M_0P>*?\ PC-6_P#BJ^O_ /A6OP\_Z$7P;_X2V@?_ "NH_P"%:_#S_H1?!O\
MX2V@?_*Z@#Y _P"'D7[,'_0P>*?_  C-6_\ BJ4?\%(?V8"0!X@\4Y) _P"1
M,U7O_P "KZ^_X5K\//\ H1?!O_A+:!_\KJ/^%:_#S_H1?!O_ (2V@?\ RNH
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
M.GD'A']F[X[?LY_MT?M2?M)?#_1=&^-7PW_;2^'_ , [KQ]HUYXNTOP%XO\
MAS\?OV=/ ]]\+=*UZSM=1TN;0]3^%GQ1^'K>'1XCDTR_NO%?@CQ3X5:72?"G
MB;2O$,LFD@&A9?\ !4SX+>,H/V$]2^#7@/XH_&30?^"@NE?%J]^"^O\ A>U\
M':+8Z1K'P=^&7B/XB^*?!?Q!M_&'BW0M1\*>,+:?PQK/A&_L;FT?2?#_ (CT
M;7X-?UNQ71V6[\BUO_@L!IGA7X%?&GX\^*?V2/C_ */X<_9'^-'B7X-_MGV!
MUSX.W-W\"+GPD_@^_P!:\5:'=)X]CL_C9H,7@OX@>$_B)%'\-?M>H#PG>W*7
M<%IXFAMO#E_Y;\(?^":WQA_9JUC_ ()!^$O T'A?X@>#OV+O&_[7/Q(_:$\9
M3>*D\,7=[XN_:P^'_P 6K#7?^%;>%+_2;NYUO0])^)7Q@UJ_M[?5M4T"[LO
MVD:>D;:IK\\UC'ROQ>_8*_:N^(G[&?\ P6>^ &G>"/ MCXS_ &]_VB?B=\2O
M@9=7OQ1L/[#M/"OQ#^%?P*^&5K-\0;Z#PY+<^&]5TFZ^$6IZ_?:5I5AXECEL
M=9TJPL]3GO4OY+4 ^[?BQ_P4)UCP?\;?CM^SM\*/V1?V@_VA?BQ\#?A'\'?C
M;=:1\/M3^#.B:+XU\ ?%[5OB7I=GJ/A3Q'XX^)>@6"ZAI,_PL\0V$7AK6QI?
MBSQ5K,MG9^$_#^JZ9%J>NZ??^$/_  4I^"7[2GA+]F[6/V;+#7?B9XI_:B^$
M/COXY>!?!&I2Z?X+U'P=\._A;XCT/P)\1]6^+=_>R:K;^"Y_"?Q0\1:7\)[G
M3K"V\2W^J>/GO[/1+>_T+0O$.OZ3\G?#S7_BYX<_X*U?M<7?ACX/P>,-1G_X
M)P?\$^(];\/O\0]!\/7.@^++;XL?ML#P]8R:QJ-A+H^I^%[FXCUNV\1>(=*:
M\U?25LM.FT;PIXC:_N;;3^3_ &=/^"8WQE_8:^(G[&7QM^%FI^%_C%X@^'/[
M/O[1/[.?[5W@>'4H_ T7B;3?VE/VA[G]KW4O'?P(GUR"/1+:7X>?'S6/$FC6
MGA3QK>Z$?$/PJUN"XCUO3_$_AV/2-; /LCPQ_P %._@MXS\.>#H-(T37M ^,
M'BS]JWQW^Q!??!SXCZGX>\$ZIX%_:@^&?A/Q5X^\6?#KQIXQ^WZYX/CBO/ _
MA*7Q5\/M<\+7WBFV^)^D>)_ \W@NVU)_$9CT_FOVA/V@O %ZG_!/_5/VA?V?
M/CSX1\7?$3_@H#:?"CX7^'M/^(.G>'4^''QQ\,:/\>M%\,>+/B?<^"/B'I=E
M\0/A9XM\"^$/&OBOPWHD-GXY\,^(+'6/"E[K^@V&J+9&S\BF_P""?^HV_A3]
MH+2?C!^SE\(/VLO!?[=?[8GC[]HC]I+X0^)_$.F62_"_PM+\*O#7@/X/)\+=
M8\266GZ9X@^(OA$?#'P7=:[K,&H>!;NP\2^+_%NM^#?&%M;^&-"&M>=7G[!/
M[6^C?![_ ()R_#A-='Q9C_9/_P""DMU^U->2_$KXO7NO>+/ '[+.DVW[07AK
MX5?!)/B%XET[5->^+WQ$^&W@'XN^$/#JZ[K5Q8:=J*>$=3L/^$DFM8-%U"_
M/>OA9_P46\61?%O_ (*9R?M#^"-&^%WP _83^(?AKP9!XQM/&/AW7KE-+F^!
M_P -_BG#>ZQ9V\=IJ>H^)/'TGQ)L?[+TVT;^S- >/2_"TUY<ZVFJ7L_O/P;_
M ."@_P +OBQ^T[J/[*0TY++Q]-\(9OCAX.\1>%/&_@;XJ?#GQ3X-TSQ)9>%/
M%/A^X\8^ -7U*S\+_$_P;JNJ:/<ZYX&UN)4O]!U>TU[PAK_BBQL]=.D?#WQ8
M_P"";WQU^,.I?\%A/A!=W_A3P;\-_P!OOQ%\*/C-\%/CKI_BV;4O$'@'XG?#
M?X(?!;P3X9T3Q3\+!X<@N9;?PS\5O@IIGB[4=3MO%D^G>(?!6HPZ7;6\.M->
MV]O]U?L?>)/^"AGBN.-?VTOA'^SA\%&\(Z*-$O#\"?BUXC^+R?&?QF5LXKSQ
M[86>O_#CP&/A#X#C6&_NM)\'7NI>.O%^I7FJ6\6J:OH5CX>:+Q* ?>M%%% !
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 8>K>&?#NO3:=<:YH.CZQ/I%Q+=Z5-JNF6.H2Z7=S1-!+=:;+>0326%
MS)"S127%FT$TD9*.[*<5N444 %%%% !1110!XWHO[/OP;\._%_Q/\?=%^'^@
MZ=\9/&FA:;X7\6?$6W2]'B?Q#X:T2:[N=#\/:M?/>.MYHFAW-_J%SHFE2PFQ
MT>YU"_N--@M9KVZDF]DHHH **** "BBB@ HHHH **** "BBB@ HHHH ****
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
M@ZU\//&7CGP-J,-S\)?CMI#^)=#US3O"BZI>1ZEI8U34/"WC&_O_  UK5I9
M'Z#@Y //(SR"#SZ@X(/L0".]%?CI_P $K/C_ .)]7_8E_P""9_PTTCP7XJ^*
M.LZO^PE^SGXR^,WQ0;Q1HZ:+\,+O5OA3X%N]#@\?:CXAOGU_Q%XZ^)"ZCJ>O
MZ+H>@0Z[K1TS2K[7_&#>'=.UCPO?^(OJGX(?MIVG[0VJ^#]9^%?PM\2>*_@O
MXQ^(OQI^%C?%W2?$OA2ZB\">+O@A=^+='UVR^*/@4W4/BOP7_P )%XC\%ZQH
MOAF!TU/48)YM''C"P\)W>M:;87 !]Q4A8#U^@5B>>F0 2!P>3@5^?O[9O[0G
MB#P7\6_V*/V4O 6IS:#X[_;/^-_BCPMJ'B:V9X-1\*?!/X(?"SQ1\;_C=K&@
M7BL/L?B?7M'\-^'OA=H.HQ@7>@7'Q&F\5Z:Z:GX=LR/@_P#;V_:-D_8V_;)\
M%_$3]L7X:_$[Q)_P3*\1? 'PAX \,?%CX=V?B[Q;\-_V5_VA].\>^+[[QMXQ
M_:(\ ^"9)/$<7A[QSX+N_AKH_@;XNW-IK<?@*Z\+ZGHFA6%I=^+/%6HR@'[Y
M%@!GYOP5B?R )_2C(QGIGID$$^V",YXZ8R>U?S;_ /!4:^TKP3_P07_:W^+_
M .S[^TQXR^*VEI9:U\:/V?\ ]HGPG\<?&'BCQAI7AWX@?M">&M5\/Z;X<^,N
MC>)O^$EU73?!.AZ_>?#G1WGU^]N+?PGI%GX;UB:\FMM0$WTA\7/BQKGC_P#X
M*,?LE?\ !+KP/XG\1_#;X1:-^Q]XV_;>_:#'A+7M>T?Q7\4/"&A^-]!^#OPJ
M^"UMX]M=37Q=X?\ "6H>.]6USQQ\49]*U>#Q%XVTO0-%\(W6O6WAW5_%=AKP
M!^W 8'IG\593^3 '\?\ &@D*,G/X L?P !)_ &OE&Z_94\.Z-\6?@O\ $[X8
M^)O&'PWL/AQK'C5_&/PV\/\ B_Q-;_##XG:'XQ\#>)/#\<GBCP&^HW'AZ\\7
M>%O$VHZ1XD\,>*C9PZA91+XAL+F6[&K6LEAM?M4?"KX6?%3X5ZQ8?'#5_B?!
M\)M!M;_7_&?ASX8^,OBOX,U#Q196EFZQ6NIW/P,O=)^+&O6E@S27MGX4\,:J
ML6M:H+1K_2M:DL["WA /I3(QGH/<$'GIP<'/MC- 8$9&1]05/Y, <>^,5_./
M\#?&?QH\=?\ !%/Q[XI_9(^/GB+]IO7_  A\6OB)K_@*'Q=\5/$?ACXU6_[,
M/P^_:F7QGK/[)/Q)^,/CUM(\;^"?V@],_91T_4_A)J_B[QH^CZ[X3\5:M9K%
MKUK86>D^,#[W_P $_/C)H_[:GBO]HGXQ?LA_$;Q)\'OV7]5^#W@?X+0?"?Q-
M:(OQ;^$O[7.DZIX[U3XF^/-;^#OBK4=:D^#'B?PKX1\2^"/!\VB>(+5=,^+/
MB3PT/':Z)JW@_2M \4>.@#]O0P.0,\>JLOY9 R/<9%&X9QS]<''7&-V-N<\8
MSG/:OPK\%_LP:[^R/_P4X_9L\/\ [,/Q?_:+\4_#'XJ? _\ :/\ &G[=G@/X
MV_M%?%K]H30Y;'PS!X)T[X'?&BS7XN^*?%MYX#^*?B_XM:MK7AN)O#%SHVD>
M,?">@^-[?2O#UK9^#]7*?$MA^US\4+G_ ((U6O\ P6@7Q1XH_P"%^WO[04/[
M0::=+KVK#PR?V>;G]MY?@E%^R^GATSG28_AF_P"S9(NAPV(T\3GXHE?C$TX\
M=DZQ0!_5?30P)P,_4JP!R,_*Q&UN.?E)JJ\T<HDM4NTBN"LD:F.2"2:-@&"N
M(GWAG0 .4>-E)!#H4)6OP5NM ^#'P-_X+$?LO_#SX6_M,?&GP5\5OB1\+_VA
M_$W[17PZ^-'Q1_:'\7^!OVM=/C\(Z1_PKW2O -G\2YM3^"/_  M[X<^*_P"T
M?B5/8_!1_"UUX,^&FA:YH$_AN#P_KFC:?9@'[Z%@#@Y]R 2!]2 0O'/)''/2
ME+ $ YR?16;'UP#@<=3@>]?S,?M;_'KQQX _:4_:T_9-^+&HZUX0_:=_:O\
M$OA-O^"3/[3-Q\2+GPG\(? T?B;X9^&?"WA7P)J&M0ZS'I'PC\=_"'XM^#OB
M5\5=9\&Z[I4NI_M9:3>7'A'PU9>.M0OK#P:?T)_X* _L8^ /BY\+OBE\;/CE
M^TG^TYX!U#X2_!S6];^'/B7X(?'?XG_ 70?@MX@\'^$=4U6_^*6D>"?AAXGT
MG1?B!\0-6\1"6^Q\3++QS81:9;^'_!/AS0K&./5+CQ$ ?J\6 &>N>1@%B1Z@
M*"2.1R!WI00>1_G_  ([CJ#7\]/A[XY?'>P^)G_!(GX'_P#!1/65\%Z+\:?V
M$OB+XH^,LFO:E%X-\*_%#]OGPOX:^!DUG\*_B=>6TND: FJZ%\/]4^-'C2U^
M'TU_9Z!XG\=PWNJZ7I.HS> =&&G?5/\ P2B^-FN_$/\ X;R^#\OCO4/BI\._
MV3_V\_BI\#/@G\0=2UZ\\77TGPJN_!'PW^*VD?#K4O&FI7FIZIXQNO@UK?Q$
MU_X::;K^JZIJ6KS>$="\*66K:CJ6H6$^IWH!^M>X$XPV?]U@/^^B-OZTNX9Q
MSG_=;'_?6-OZU^+WP5TS_C=[^VCI;ZQXNN/#_AO]BG]D/QUX>\)7?CCQI>^!
M]"\9_$CXB_M :)XY\5:+X&O-?N/!^DZ_XETKP+X6L=3U33M$MKJ6'3'*R))J
M.J27OU%IGA_3A_P4O\6ZD)-8\R#]CCP'K$&GGQ-XG;PY#K.I_&WXEZ'J&N1^
M$&UD^$D\07FC:7I^DW'B%=#&N2:79P:<=0^PQBWH ^_R0.OZ D_@!DG\!0"#
MTS^((/X@@$'V/-?C]_P5=^)7QR^"-Y^RM\:=)^$OQ4^/7[&OP[^(GCV]_;?^
M%'P,CO=2^*,W@[5/ ;Z;\+OB2?!^E7NF:O\ $OX8_"OQ=)JWB/XD?#K3[XKJ
MHF\->(=0L;_3O"TZ1>W?\$_?'W[-?QVTCXB?M)?LA?M(3_'/X!?%]O ?_"/^
M%$\<>(_$ND?!?Q+X2T;6K+Q/X0TCPCXME/B'X1?VS%JNB>(=7^&^K6>E7.G:
MY-J.JQ:79V&JV24 ?HI32P!QR>QPK-@]<$J" >1P<5R'Q"\:Z1\-_ ?C3XA:
M_P">-"\"^$_$GC+6C:Q^;<C2/"VB7VO:G]GBR/,G-CI\XA3/S2E!WK\H/^"7
M-EJ7[;?['GPU_;;_ &H+J]\=?%;]JR#Q#\7]/\.GQ'XAC^'WP+^'VO>(=>TW
MX7_"?X/^'=/O=)L/#=IX-\ 6>CP^(_&B6C>/O''C>]\1^)O$'B>[CGT:PT<
M_9"BOS]\*>+K7]C^;X;_ +*1\6_$']H7XQ_&CQK^T9X_^#>F^-_&6JZ_XPA^
M%FC>*F^(?B;4OBA\4O&=SJVH0>"O@_\ \+&\(?"O2/$5\FOZ[?1ZO\./#EGI
MFK7CZKJ%GYCXN_X*M_"GP3\ /C5\9M<^$WQ>7Q3^S5^TA\/OV6?V@?@K;6OA
M&3XA?#/XD?$KQ[\.O _A#79))O$MOHOBSX9>*+?XK> _''A'QIX.NM9E\2^"
M?$5K>6VAVVMV&OZ%HH!^J%%?FG-_P4 \;O\ '7XT_LOZ;^QS\:+WX_?#SX9>
M%?CC\._!\OCGX'V?ASXN_!KQ?XQ\6^ -/\86_P 0V\?S>%OA]JMCXP\$ZSH>
MJ>"/&<T/BA9KK1;S2[35=+N-5O\ 1>+T3_@K1\,/'7A/]A3Q1\*?@?\ '+XE
M/_P4#\$?%KQ/\&=%T:#X;Z3J.D>)/@[X&O/%_BCX;>/)?$7C[3-/\.^*(KS3
M]0\/R:X]Y+\.].N-*U;4=2\:064%BFI 'ZP45^6GPN_X*B^%?B7X+\01-^SO
M^T!X5_:$\#?M6^&/V,?B9^S3JGA[1_$'C+X:_&'Q?IEIXFT/Q)XO\8^!-2\5
M^ ;3X#7?@.\C^(4?QQM=6NO"=SX60I80WGB"YT[0[[.\3_\ !6'X8^#_ -G?
MXU?'C6/A'\4=0F_9V_;!\+_L4?%SP5X5N_ _B&\TGXJ>,/&_PG\':#XA\-:^
MOB.QTOQE\/-23XV?#O6K75-(MQXJ2VUF?2M2\&Z9K^D:QIMB ?JY2 Y (SSS
MR"#^((!'T(!KX1^'O[:%MX_^,_[2W[-/C7X&_$KX;_%;X&_##PI\9]/\)ZGX
MF^&NLS_%OX)?$B^^(GAGPMXM\%ZUX1\<7.F:!K<_B;X:>*_#>M>&?%NK^'[[
MP[?OH=Z=6N-/U,7]G\Y?LK_MR_LL>$_V./V'HOA+;W'@#0OCM^SS=_$3X!?#
M7X^?&O3+#Q)I?PL\#IX<M;^\^(WQ8^(?B?Q3/=7VGWOC;P?HLLRZKXSUV_UC
MQ%;Q6D-YI&DZQJFE 'Z^49[?Y_S[5^7_ ,+_ /@JA\%/C/X;^ ?_  @>@:W9
M?$W]H'XG_&OX+^&OAG\0-;\,^$'TKXF?L[07-W\5O#=WXZM+WQ+X,\1O'8PV
MVK> +GP#?>+HOB3H&K:?XB\.JNAVOB&_T'#_ &Q/VK_&?P'_ &2_!W_!034?
M!/CCX2'X0>-_ANW[0/P3\:SZ;>ZO<? _Q;\9-&^#OQ;TK6H- U;4/#%SXC^'
M6F>)&^,G@7Q-H5_=+/<^$XM(L]4N/#'C/7K74 #]6R<#)SQZ D_D 2?P% (/
M(S^*LOZ, :\+_:8TRTUK]GCXV6-]]J$+_"KXA3K-I^I:GHU_;W-CX1UF\LK[
M3]6T6]T_5M+OK2[MX+RQU#3;^TOK*XCAN+6YBGC21?C_ /X(V+<7W_!+S]A3
MQAK&J^(/$?B[XA_LN_!GQ]XY\5^+/$OB+QAXG\5^,?%G@K3-;\0>(-<\0^*-
M4UC6-1O]2U.^NKAVGO6C@1TM+2."SM[>WB /TUI,Y)'/&,\$#GT)&#[X)QWK
M\X/VC/\ @HWX5_9MD^,OB+Q=\&_BO<?"3]GGXC? [X8_%CXGM8Z?H%E-KGQV
ME\#+I6H_"30_$$MC=?&30/ -M\2/"=[\3+_PO?VUQHXDUO2_#5CXM\0>'-4T
M>+XN3XY_%7X _P#!27_@J=J'PR_9\^/W[6-S9_ __@GAXUF^%WPT\;^%E/AB
MP71/VIU\::OX7M?C)\0_#7A:QUG7;72=+&E?#OX?K_PD'CW6].,L6BK(EYK"
M@'[XT?Y_SZ?C7AW[-7[1'PO_ &L_@-\*OVC_ (,:O<ZW\,?C%X-TGQMX1O;^
MS?3=4BL-31TN-+UO3'>5M,U_0M2@OM"U_3#-/_9^M:;?V8GG6%9I/R&_X*C_
M +4/Q_\ @G\2_AY^TC\)-<UBW_9J_P""='Q1^$OC+]N/POI6F:SJ(^)_P_\
MVC8-1^&WCK2H4T]4CN;K]E[X.>,-*_:*UC2;A+ZSDD\:^"->G:P;PP;B@#]Z
MJ*^-_P!IS]LOPI^S(_[-7]H?#[XA_%.U_:?^-NC_  '\"7_PL3PCJ\,'C#Q%
M\/\ QQ\1O#4FH1ZOXHT6>?3?$NB^ =:ATO4M+BO-(M+EK>[\2ZKX=T+SM8B^
M,-5_X+)> _ OPK_:\\4_&+]FCX__  K^+O[$7B+X-:?\<OV?M4N?A3XE\96W
M@W]H/7=-T;X1?%GP5XK\(^/M6\ >/_ASXD^WW#W=QX3UW5/%6DW^@Z_H;^%K
MO5K.UM[X _9>BOS'L/\ @IEX<T#XZ?%CX!_'+]G/]H+X$^+O!GP!^(O[4WPL
MDU[2/!OQ$C_:(^!WPHN8[+Q[?_"W3OA!XM\<ZQ_PM#P[=76E->?!'7[/3_B,
MUIX@T*>WTR:6\GM;3KOAI^W]I?C/XMS? WQ-\$_B7X%^*&H?LCV?[:7A#PC?
M7WA#4=7UCX6S:WI7AO5/!WB.W;6-(_X5_P#&7PYKOB+PQ8ZUX*\3M%H+#7X)
MM&\;ZNNE^(5T@ _0JBOR;^#G_!4]/C5\%?AS^T#X8_8Z_:G3X5_&KP'\ O$/
MP:\3KI'P_P!9A\<^,_C]\3(/AAIG@&XT[P]XSU37?!P\!WM_8^*_B)X]\7:/
MI7@+1_ 4&K^*],UG6-/M]%/B+A?VH/\ @J7XB^'7[&/_  4D^+OPO^$:2?'_
M /X)^2:IX-\=>"/$_C7PW>^"+7Q+JOPP\'_$WPIX^T+QIH46I6GC;PC:^%/B
M%H&NW'A=]+\->,;K7])UCP%K6F>&+Q#JR '[/45\+^!_VP=3O?VD/!G[)'CC
MX2^)?#7Q9\6_LK^,/VGM,UD>+? WB'P?=Z#X"^(W@3X6ZOX?O]3T"YBO;+Q+
MJ6N?$'P]J]C)::#=>'3I$M^3J45[9?V>_FGPT_X*;_#'XK?"[]E_QIH'@S7O
M#GC+]K?XM_'7X*_"CX>?$'Q'X3\--)XX_9V\4_%'PS\0;+5_&>GWOB'PR&NG
M^$WB&]\&Z?HC:WKWBN*\TQ;31X%AUZ?1 #],Z0L!US^ +'GU"@X'!Y/%>9_!
M[QYK_P 2OA[HGC'Q5\-_%?PB\0W]QX@LM8^'OC:XT.\\1>';WP]XFUKPW-'>
M7WAO4-5T#4+74?['&LZ3J.D:C>6&H:+J6G7MO.Z3\?@'^W?^TGXKU3_@IUX'
M_9L\,:]:_$3P3\:_V5?B3^SA\%=-C^(NM^ OA1\"?^"C2^)(_B&VM?&'QOX>
MN;."R^(!_9\N=)\2^ O#F@7?B#XUZ"WAE]*\!^$])U#XJ+K4X!_23UZ45\B?
MLH?&;6_B)9>/_AEK'AKXH7NH_LT^)['X!>+?CAX^M/ NF:'\>/B+X*\(^%Y_
M&/CKP!8>%O%_B+4Y]$O+K5X'UR[U;3- CTGQE)XB\&BWDU?POK,%E]=T %%%
M% !1110 4444 %%%% !1110 445X-KOP9UO6-:U75H?BCXJTR'4K^XO(M.M7
MNQ;6*3OO6U@":O$OE19VIMBC&.B+TK\W\2>*>/>%<NR[%< >%V,\4L=BL;/#
MX_+,'Q=PSPC/+,(J$ZD<?/%<3XG#8;%QG6C##_5\-*5>+G[64?9QDSULIP66
M8VK5AF><T\FIPIJ=*M4P.,QRK5'-)TE#!PG.FU%N?/-*+MRWNT>\T5\X_P#"
MB-?_ .BO>,O^_E[_ /+NC_A1&O\ _17O&7_?R]_^7=?CW_$8?I(_](@Y[_XN
MOPE\O^IKY_@^Q[O]A<)_]%UAO_$>SS_Y2?1U%?./_"B-?_Z*]XR_[^7O_P N
MZ!\"-?R/^+O>,C_VTO?_ )=T?\1A^DA_TB#GO_BZO"7R_P"IKY_@^P?V%PG_
M -%UAO\ Q'L\_P#E)]'5\@?'WP-\3O%/QX_9"\5^#O!FGZ]X.^$?Q,\?^,_B
M%J]WXQTS0;^PTKQ5\"/BG\*=.M]"T*[T^ZE\0WZ:WXXTS4+^.6_T6VM=&M[V
M:VN=1U!8=,E^I/#>D3:#H6EZ/<:E<ZQ-IUI':RZG>;OM5Z\>[-Q/OEG;S'R-
MVZ60\#YC6W7],Y3B<=C<JRW&9GEL\FS+%X#!XG,,HJ8K#XZ>58VOAZ=7%9=/
M&X24\)BYX*O*IAI8K"REAZ\J3JT92ISBW\C7A3IUJM.C66(I0JU(4JZA.FJU
M.,FH553J)5*:J12FH32E&_+)73/R6^-7_!-J;5/^"@/[/_[<WP(\60_#YF^(
MFBZA^VC\+-R6GA3]H72? OPL^)WA'X,_%-H8K"Z$/QJ^$6K^,X] @UH&PG\7
M?#+6-0T'5M63_A&]+L=5]E\%?LUR?%KXT?'_ .*_[5'P.\#7NH7OB#PWX$^
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
MEZ* /RJ_;W^%FJV/[4__  3*_;.AMY;[PI^RE\=OB[X-^+)15$?AGX6_M:?
M_P 0?!B;XC7DA=?)T;P1\4(OA;-XJNV'V30_!^L>(/%.IR6^D^'M0NH?J?Q.
M?VB=+^+/Q$N)/ GA#XL_LY^*/ASX'TK0/"=MXOT[2OB/I/CV"X\;6GQ)@O\
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
M!JEK?:5N?L7?LE>$OV,O@C:?"GP_K^I^._%&N^+?&?Q7^,?Q7U_3]+TKQ/\
M&7XX_%'7)_%7Q0^*/B'3=%BBTK2[GQ+X@NFBT?P_IPDT[PEX4T[P]X1TV>XT
M_0K:>7ZRHH _-?Q3^SA\7?AE_P %"M>_;>^%>F:3\2?!/Q@_9?\ !_[.OQE^
M%4OB2U\)>-M&\0_"'Q_XN\>_"KXF> ]2UZ,^$/$=A?Z?X^\7^"?&GA/7=8\(
MW6G-_P ([XGT'6-3W:YHQ^A? _P[\<W/Q9^)'[0WBSPYX?T'Q;KOPU\,_"GP
M#X'C\0OJ<UCX8\'>(/'/C$7_ (R\46.GOIMOJ_B[Q1XPCAFTS0;/7-/\+Z'H
M-A<Q:OK>I:MJ-G8>K_$/XS?"CX37_P /M*^)?Q#\(>!]4^+'CK2/AE\,],\3
M:Y9:3J'CWX@:ZD\NE>#_  E97,BW.N^(+RWM;JZCTW3XIITL[6ZO)A%:V\TR
M4M*^._P9UWQ?\5_ &B_%#P/JOC3X%:7X:UKXR^&M/\1:==ZO\+],\8Z9K>M>
M%[KQU:03._AI==T?PYK>K:;'JGV>:YTS3KB_6(6@CF< \&T_6/VW+N#]FOQS
MK?P[^#FEW?\ P@7CF#]JKX.Z+\4];U/^S?%VLCP3-X)N/@OXXO\ P7IVF>*[
MKPW>Z5XFMM13QC;^#].NM&U^\2UU=M0M;&2Y^5OA!^R-\5O@3\<?^"AG[:WP
M6^#OPO\  _Q$_:<^&GPDT[X>?LROXTA\+^$_&/Q5^#>F?$6ZN?BK\:O%_@S1
M=9\+>&?&GQ.U7QSIWAG47\%:7XECLM \'0>)==\0:OXC\8:K;:%^H_PZ^(O@
M;XN> _!_Q/\ AEXKT/QS\/?'_AS2/%_@OQCX:OX=4T#Q-X9UZSBU#1];T?4(
M"8KS3]0LYH[BVG3 >-QD*P*CM* .5_LI_%O@L:+X^T+2#)XC\,C3/&/AN"\E
MUK0F;6=(%GXDT.&_GL]-GU32F-U?:='>3:?82WUD5N)+.U>4P1_E7^Q-\"?V
MMO\ @G?\,M+_ &.-!^'WA?\ :4_9R^&NN>)[+]FOXNVWQ8TSP'\3O"OPCU[Q
M#JWB;P[\,_COX.\6^'GL=5U?X92ZM=>%-%^(OPVUO6XO%_A2UT";4O 7AK5[
M'4#??K]7C7C_ /:)^!'PJ\6^$/ /Q*^,'PW\!>./B%<2V?@#P?XN\8:)X?\
M$WCN]@19+FQ\%Z'J5W;ZEXJOK6)XYKNRT&VO[JU@D2:XACB=7(!\0_&[]F;]
MH>\_:G_9$_;?\%2^"/%GCWX*>&?CQ\&?C9\';;5Y_#-AXO\ @5\?W\&:PD7P
MN\8Z[9-8R>/_ (2^._AQX*UZ%O&5CX8TGXGZ+-XLM;G4? MX?#UG;_*?[2G_
M  3D^./C_P"#?[?'B#P)HW@_4?CS^WE^UY^Q]\<=1\*:MX[_ +!\'_#OX9?L
MF>(?V;8_#_AR^\4'0=5_M;QEK7A+X$:_JVJ3:3HTND1>,O']KH%O>W?A_P -
M'Q)J/[W @@$'((!!'0@\@_C2T ?F=:?!+XZV7_!3CQK^UG_P@6A3?"/6/V#O
M W[/NF;?B!I*>-)OB7X1^-?Q$^,-S!/X;?2QI]MX9O;#QM:^'K;7_P#A)9;E
M-;L+J2?1%T>2#4C^/_P3^ 7[07[&'B#_ (-\/V?OB)X%\+:]\7O@UXA_X*.:
M)XHT#P?X_M-1T#7-%U[X*^.?%:ZAX2\7ZKHNAV;ZI%IGB33WATSQ-IOA^UN+
MVPU2QFU*R@>PU>7^K&O&?&_[/7P6^)'Q*^&GQB\<?#KP[XF^)_P;EUFX^%7C
MC5(+F7Q#\/9_$=BVE^(Y_"%]'=1-H<WB/26;1_$$MBD3ZWI!_LK5&N].Q;
M_'WXI?L/?M>KK?QA_:-^&]AX+U+QW^TY^WE\!OC;^T=^S4GQ3O/A]HOQ _8_
M^"'P#M/@!X9^!%]\5=/\.:I9WOBZ_P!3TCP_\:_B/8M8V_@GQHT6H_!>ZUK6
M/!D=SJ'BORSXD?\ !/+]L3Q#^S]^W[\&=(^''P0L;K]HO_@I;^SG^V/\+7\.
M?%JXT[PO8?#?X<Z]^QWXM\2^$]3M+[X;V-QHNMZ19_LUZQX:L);>QFLO$/B+
MQ#::E#IOA_P[;O-)_1W10!^6\'[/OQUL?^"D7[0W[62>!]"N?AG\1/V"OA-^
MSKX6LU^(&DP>++KXC_#?XE?&7XBWRZCI+Z3)8:3X<U:V^*>GZ)8:W_;&HSV^
MI:)J5S=:0-.N;*4_G_\ !C]@7]O[]DKX*?\ !,SXI? [PS\#?'/[27[%G[,7
MCK]CK]H+X >./BIJ7AOX=?'KX->.=7\ ^*3J7PU^-%CX&U]O WC+POX^^&7A
M;Q+H\WB+X?R6FJZ1?ZYHFJ&%K.S75/Z2** /S#^.?P1^*7[3/PF^'?PW_;"_
M9+^ '[1/@?QQ<^-/$/Q@^&OAWXA36UY\!O$%G;:&WP>N/@?\0O%FA^"-:\6^
M)]"0^)['Q'\2].O/@SXJLM6U:37_  4=(TFUM_#%Y\;?M1_LF?'74?\ @C]X
M2_X)M?$#XBZW\9/V@_VA?%7@O]G[3_&6MZYJGC?7-)^&.M_M&VOQ UK6?&'C
M+4;33]7\7K^SC^ROI%W8>(_B-J^GVEUX[UWP+I]W<VPUOQIIUA=?T"U1.F:<
M=176#8VAU5;)M.346MXC?)I\EPEU)91W)0S1VLMS%#<30(ZQRS0P22J[P0E
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
M"1_B[P9^S+^U5^V)_P $UO"_CW7_ !Y\+4&D_MN_LD>*?&-UXEU#Q%K/P_\
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
MOPC\"+RU\'!_%#6^JM-X \$Z(8;C7XI#;>(OMVKK%);W*Z7" =AX;_:Q\?\
M[2W[1?QT_9^^ &I>$?A_;_LV_!;]G_X@?$#Q5\0?"6I>,[S6_B3^TWX:\6>.
M_AUX M-#TWQ'X9M[+P;X5\ >%[36OB!KUOJ<^NZ[J'C72-$\*R:"_AO6;_4_
M'_\ @@&0/^".'[ 0 *C_ (4=:(5)SM)\9^+$=%88)13N2)CAM@4D!LBO2[/_
M ()V^*O O[0VG?M+_ W]I?Q!\(?'OC7X._"SX)_M0Z-:_"WP9XP\"_M Z'\%
M;"_TKX8>.HO#OB34GN/AQ\6?!^D:QK&@:;XIL-6\4^'9_#E]_9.J>"M1^SP7
M ^A/V#OV2M-_88_9+^"_[*&C>/M>^)NB_!?PQ-X5TCQEXET?0]!UK5-/DUG5
M-8A%WIWAV./3H/LCZI+:V[J]Q=R6\43WMY=W9EN9 #\\O^"#WB74_C=^SO\
MM ?M;_$B.XN_C_\ M)?MF?M-7GQ7U+6)!=>(?#ND_"7XF:Q\)/A1\';>ZE']
MHZ/X&^$?P\\+:5I'A'P8[0V&CW&J:_K<=H-5\3ZQJ&H_5WQ\\?>$OV-?&?PR
M\)_!;P?X?TOXJ_\ !1K]LS0/"$\U]:>1X+TCQS+\'M1\0_%+XRZ[HNCG1Y]:
MU=/A+\!C -+BU6PNO&OQ%N?#;ZOJMI:7>O:G'8\,?L*>(?@5\9/C!\4?V1OC
MC)\$_"W[0_CF^^*_QH^!7BSX9:3\6/@[J?QAUJ&PMO%OQ=^'VFP^*OASXO\
MAKX[^(%OI]M)X_CL?%^M>"/$VL6MKXCE\&6FN-J-[J/5?M!?L.Z+^T1\/O .
MF^*_BGX[T_XS?"/XX> OVEOA-\=-.@T1M:\!?&CX=17%AHEWIG@J6V'@^?X=
M:EX:U+7_  'XK^&TUNMCXF\%^)O$$>H:R?%U\OC&$ ^ _P!J#_@I'^T;^RM!
M_P %(_@]JFG_  G\7_&G]E#]AK3/V_/V=_']]X5\2V7A'XC_  BO[SQOX2U[
MPG\6? VD>+[>31_'G@SXB?#S6=-M]2\)^+[?0_%WACQ!X=U5]%\/WVEZQ9ZC
M[GH/[4/[4UI^V/\ #+]FKQYXD^#<GAS]J;]B#XJ?M$_"[7/!7PR\46_B'X)?
M$3X1:W\'?#^IZ1XDG\0?$B\TKXO>%?$%G\8(M=LIDT?X:ZA8:KX:;2I;232]
M7\^R]#^/O_!./1?VC?!?[7$/CWXE&W^+O[8/[.>A?LG>,_BGX?\  5A;6O@7
MX$:"WC>]B\'?#3P9JOB75FTR2]\0_$OQUXIU/5O$GBOQ/>WVMZOIXGW:5X:T
M#3+'NH_V*M1E_:?_ &9_VFM3^+!O-6_9S_9R^(/[.,?A.W^'^GV.D^,]!^)U
MY\.=1\5>(K[41XHN=0T/5_MOPM\+OI%KIRW.GZ?"^KP31WPOHGM #\>?V4/V
MXOVRO /_  2^_P""3/QEO/&?PZ^,OQ _;6_:L^ 'P;^(NM?$_P )>(;+5M.T
M']H?QU\2)?%6OV>K>'O&Z6U_XGL]>TJ2ZMKB;0[31K;0;I]&TGPY:3VMA<1_
MI%\+/V@?VL?&7QTU7]B7QIXV^!5E\>O@_P#L[:+\=_C=\;/AW\,/&!^'FJ7/
MQB^,WQ-\&_L_^%/ /PG\:_$2;6M-6#P!\,M3\2?&*\UCQ[K7DZQ>Z1H?@RZA
MCU.YU?1_-/"O_!(G4?!O[-'[(/[+^C_M2^)9?!7[$W[4GPW_ &B?@YJ.I_"+
MP3<ZM/HGP=\0>)M?^'7PO\7FUUK3X=9LX3XLU*R\7^,K,Z7K_B.*TTB;2[?P
MM<6^H2:K]H^.?V/8M0_:O\*_MG?"_P"(,_PV^-%I\&KK]GOXD6U]X8B\9_#O
MXN_"2/Q-+XY\*:?XI\*'7_#.IZ;XP^&_C.ZU;5O 'C70/$]G=V.G^)_%'ASQ
M'I_B71=1LH=* /QJ^,O[6?B#]K_X0?\ !,_Q9X^\+:'X,^,/P<_X+X?#C]E[
MXY^'_"5YJ6I>"(/C#^SWJ'[1'P\\8:MX!U'64CUB?P3XJ%A8^*O#L&K>;JND
M:?KHT#4K[5+O2Y]4OOJOX,ZQK?AW_@I-_P %M=?\,KH;>(=$_9F_X)U:UHJ^
M)+*]U'P])JNE_"']JB^L5URPTV]TW4+W2Y)[:*+4+>SU"SNIK0R107,3E&7W
M7QG_ ,$PO">J> OV:_ _@/XI:SX'D^ _[<1_X*!>*/$]YX-\/>*==^-7Q\U3
MQ9\0_''C.^\:$WGA^PTC1_&GB;XH^*KG4K7PU9VEWI&EQ^']"\,WFCZ9H<45
MSZ;H?[$VK>'?V@_VV_C]I?QAE_M#]LWX6_"+X97WAB\^'NEW&E_#B#X*>%?'
M?A+P?K>C7T?B6WOO$=Y<V7Q&\1W7B&TUL0VE_>)I7V :3:6<]K>@'P=\+?V_
M_P!IOQ=\.?\ @ABO@[P_^SYX8F_X*0?#'Q1>_%"&X\#^,D\/_#K6?#W['/BG
MX_Z(OPST#1/'.GI9^%M-UC0!IS>&=3NKJ\U#2[6ST>#Q/H'VRYUNS=H__!3O
MX\>$OV=/VCM3^(NA_#+Q'\5_V=/^"HW@[_@G%X@^+ND>&/$7@WX*:;X8^(7C
MWX$Z;IO[3/Q#\&WOC?7M7\)>'? W@CXY64_C'PY;_$*72M0\7Z%!!#XI\/\
MA_7GOM(^C?AQ_P $Q'^'.F_\$O\ 2+'X\:GJ-C_P3 TCQ+H/@!+SX;:'')\3
M]+\1?!/6?V?L>-I(/$P_LJ]TWX>:]J!L[KPXD"2^)&AUB\MI[:(:4WRU^U)^
MRUK'[*_P0_:1L+7XO?'"3PU^W9_P4%T7]H7XL?%/X5_LWZ1\7;+]F^#5_#GA
M2X\1R_$?X1VFF_$RY^*O[.7B6P^!/@KX2>+= U+PAJ(%Q\19]6\<:E'X(.MF
MS /N#]EW]HOX_P#C_P#;+_;2_9D^(2_#SQ!\//V4]/\ @'-X=^*WACPMXCT'
M6_'FK_'GP7K/C6;PGX@A/B?6/!ND>*_A;;: #XDT_18Y9=7\.>.?AYXB>U\.
M/?3V-[\R?\%)B?\ AY+_ ,$*<,PS^U5^U&O#$8!_8X^(60,'@'<P.,9!(.03
M7HO_  3FO?C&GB/5+;1?V@_ 7[2G[,FL>'-<UF+Q+X>_8:O/V-)O!WQ#35/#
M$&@VFB7]GJUIX7^*L?BK07\2S^+'T[P-8W'AV;0_#-S)KT,6JQ:/=?0_[3G[
M%NI?M$_M&?L;_M"0?%I_ ]W^QIX_\<_$;PCX4B\ :=XEL/&&M_$+P!??#/7K
M?Q1JM[XETN^MM-A\*ZKJ:Z5%H<-C<VNJW,>H75U?+:6]JH!^?7QS_;[_ &TO
M"EI_P61USP'=_LXZ/I'_  2UF\+>._"=EXD^&OQ#\3W?Q?\  <?[*'A;]I[7
MO /B:>Q^*WAI/"WB+6(->N?"]M\0M)_M.TTV2"UN(O 91+BXN?2OCK_P4@\6
M^%OB;X1^']QXG\!?LGVGQM^ OP@^('[(OQ/_ &B? /B+Q'\!OV@/C)\2H?$E
M_P")O@7XF^+>D>(_"GA7X;>-/"%G:^"M.T;PMJ>NZ3XF\4W/C)?$NA0^*+"P
M_P"$9E]=\:_\$T7\;Z5_P5#T?4/CC?VUK_P5!T*Q\.^/VMOAOHYE^&&FVGP%
MTG]G"3_A"WD\4$:O=3_#C1;&43>(UEC@\4K+K,<)LYGT>MSXB?\ !/SQ7\6_
M@/X__98^)?[0*^,OV=OBI\!/AW\!O&'@36?@WX8N]4T2Q\(^%I/!_B+QQ\+?
M$4_B>>#P3XU\7Z;!HFKVUWK&@^-=-\"^,="LO%_@NPT[6&D<@'SY\-_BM^T_
M??\ !2__ (*O>'Q\7?#FL^!_V?/V</V.M>^%'PY\3_#F9?#WAY_B!X)_:F\7
MP6)U'0?&NEZF9I/%NBVNI>./$4]O?:YXOT^+2]!LCX6T[PWI"KXQH/\ P4"_
M;^@_8!_9X_X*!^+Y?V4_^$2^/7AW_@FZ-)^&'A[X<?$]O$&E^)?VIOCY\-OA
M1\9+C6?$M_\ %1=-.B+X7^)UIXH^&T>F6#7_ (8U[35\/>)X?%MC!<:[JWZ)
M1?L(77AG]I3]H;]H/X9?&;5?!]K^TO\ L]_"KX)_$7P!J_@?1O&UDVL_!#1?
MB-X7^&7CO2_$^J:S8ZY;)IGASXFZU!KWA9U>/Q)J^FZ'JL^O6<$6JZ7J_#2_
M\$S=)OO^":G@#_@G3J/QI\3I9?"/PI\$]"^%OQMTCP?X<T[Q?X;UO]FWQSX*
M^(OP3\5ZEX4NKS5O"OB"]\/^)OA]X8?Q-IT_V+3?%^FPZA92Q:5+J#7<0!RO
MQY_;6^/GPO\ CC_P44^%WA.S^%.K67[,'_!.;P/^VA\(KCQ1X7\4K+/XY\0:
MI^TWIFI>#/B!<:-XXM#K_A!E^ VCW%E<Z%:^%=;LW\0:I'/<ZA';69KR3PO^
MVK^VIJ'Q$_X)J:1>:A^SE<^&O^"CG[.'BOQ2E@OPW^(-GJWP&^)W@C]GCP;\
M>I/%8U>/XHS6_P 8/"?B"UUCQ%HUQX ?2?A7>Z5<Q^'3:>.;FW@U:[OO=?$?
M_!-[QEXV\8?M,_$OQG^U1XGU?XA?M4?L.Z/^Q7X^O+/X3^!M+\*:+I^E:O\
M%_4(OB'X.\+B_O+W2]1L;;XR^);;0_"^H^)]6TBWNLZEXCOO%DDR6]ITFC?\
M$]-3T?Q/_P $X/$:?'.[G_X=V_#_ ,4_#[0K!OAIHL<7Q;L/%OP7TWX$7]_X
MLN%\3&;PU>VW@W2K34+*/PKY5HOB@SWUU#=:.\.@0 'S%\+/^"FWQ=3P;K_P
MW^)/A?P[X_\ VB-%_P""H'Q5_P"":^@Z_P#";P?=Z%X?\=2_#?X3ZC^T.?BU
M;?#7Q;\19?[$U(_!S2KVQU+P?+\4YM+;QY MS8ZX^A3C3EH_'_\ ;@_X*&?L
MX_L\?M!?$GQE\#/ NB#X>_M._L??#WX$?$;XF:5I^BP?&[X/?M+?%OX8?";Q
MM%X@^&?PX^,7CS4/AY\3O@[XI\;ZII,GB2\UA_"7C;3(O#_BK1_ UJUSJN@V
M7HWB'_@C]X<\7?#W]HCPMK'[0OQ"T3QQ\6/V\;G_ (*-_"/XP_#_ ,,>'/"7
MCO\ 9L_:470O#GAG2M4\#+>7GB30O%?A6R\/>&E\/ZAX>\9Z9=OX@T+Q'XNT
M[5M0E&JV,ND=[\2?^"<WQ4^./[+NI_ KX[_MH>/?BO\ $3Q1\3_@;\2/%OQH
MU7X2?#7PU 8_V>_BMX7^,'P_\'^"?A%X)D\.>!/!GAV3Q;X3LKGQ/>S/XC\5
M>(UU+5TOO$'D+X?MO#P!Y;\0OVM?VKO!_P 3?^"D?[,>O>.OA7%X[^"W["7A
M_P#;0_9]^+W@/X2:KII\%6GC&X^/7A>[\"^-/!GC/XD^,=(\>:OX1USX/6&K
M^'/%B76@:?K,&O7">(/"0734L;KZV_X)=:S\1?%'_!.W]B;QG\4O&D?CWQ=X
MZ_92_9S\<7GB%M&FTG4KC_A+/@OX&UR=?$%Q/KFNR^(O$4FHWM_>:UXH9]+.
MN7MW)='1=..8WI:_^PC8^,?VG_C]^T7XO^)=[J%E^T3^R!X?_8X\9?#W2_"-
MEH]K8>!= U?XC:]%XAT3Q0VO:CJL'B6ZU+XJ>+5G^UV5UIRZ>VD6T=LMSISW
MUW[)^QK^SYK_ .RI^S3\'?V=-<^*-Y\7;?X*_#_PC\+/"OBV^\'Z)X'N7\"_
M#WP[IG@_P587>BZ%>:C;2:I9>&M%TZ/6]8DOYGUO6#?:G#:Z3:7%MI%B ?3U
M%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 44
M44 %%%% !1110 4444 %%%% !1110 4444 %%%% !1_GT_E110 @  P,_B23
M^))))]R2:7_/Y=*** "C_/I_*BB@!%4*,#/_  )F8_FQ)_6EHHH **** "BB
MB@ HHHH **** "@@'@_Y_P ".QZ@T44 -"A<XR<\_,S-^6XG'T&!3J** "BB
MB@ HHHH **** "BBB@ HHHH **** "D(!&#G\"01]"""#[@@TM% "!0O3/U)
M+'\V)/ZTM%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%%
M!1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %
M%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 44
M44 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !111
M0 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%%
7!1110 4444 %%%% !1110 4444 ?_]D!

end
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>GRAPHIC
<SEQUENCE>24
<FILENAME>cognexpreferabilitylette001.jpg
<TEXT>
begin 644 cognexpreferabilitylette001.jpg
M_]C_X  02D9)1@ ! @   0 !  #_VP!#  H'!P@'!@H(" @+"@H+#A@0#@T-
M#AT5%A$8(Q\E)"(?(B$F*S<O)BDT*2$B,$$Q-#D[/CX^)2Y$24,\2#<]/CO_
MVP!# 0H+"PX-#AP0$!P[*"(H.SL[.SL[.SL[.SL[.SL[.SL[.SL[.SL[.SL[
M.SL[.SL[.SL[.SL[.SL[.SL[.SL[.SO_P  1" 55!!\# 2(  A$! Q$!_\0
M'P   04! 0$! 0$           $" P0%!@<("0H+_\0 M1   @$# P($ P4%
M! 0   %] 0(#  01!1(A,4$&$U%A!R)Q%#*!D:$((T*QP152T? D,V)R@@D*
M%A<8&1HE)B<H*2HT-38W.#DZ0T1%1D=(24I35%565UA96F-D969G:&EJ<W1U
M=G=X>7J#A(6&AXB)BI*3E)66EYB9FJ*CI*6FIZBIJK*SM+6VM[BYNL+#Q,7&
MQ\C)RM+3U-76U]C9VN'BX^3EYN?HZ>KQ\O/T]?;W^/GZ_\0 'P$  P$! 0$!
M 0$! 0        $" P0%!@<("0H+_\0 M1$  @$"! 0#! <%! 0  0)W  $"
M Q$$!2$Q!A)!40=A<1,B,H$(%$*1H;'!"2,S4O 58G+1"A8D-.$E\1<8&1HF
M)R@I*C4V-S@Y.D-$149'2$E*4U155E=865IC9&5F9VAI:G-T=79W>'EZ@H.$
MA8:'B(F*DI.4E9:7F)F:HJ.DI::GJ*FJLK.TM;:WN+FZPL/$Q<;'R,G*TM/4
MU=;7V-G:XN/DY>;GZ.GJ\O/T]?;W^/GZ_]H # ,!  (1 Q$ /P#V: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@ HKA/BIKFHZ)8:0=/U0Z8+F_6&>X"*VQ"#DD'TZ_A4'A2Z>]UV.-/B4
M-; 1RUFEJB%AC&=P.1@D'\* /0J*\DO_ !AXLT&YO_!LIDOM<N9U72KTHH#0
MOGYF &,K@]NN>PK7UWQ!?^$_%'A.PU+73]CDAE_M">55596"\$\<#<>,>U '
MHE%>?V_C,:O\5;'3M(U>.ZTI].9Y8XL,OF@MU.,YQMKEF\:>(F^%VG:HVM/!
M=SZW]FENS&GRQ;6[8Q@8!_"@#VFBO*](\1ZM#XUTG3;#QA'XIMKPO]KC6V1/
MLZ@??W+]?7M[BM#2;KQ%XEUCQ9ID'B&73S8:@BV\JP))Y:?/E<''7 Y/I0!Z
M)17EW@I?%NN:QJ0N?&,YAT?4S;O$;2/%RJ-SD\;<@8[XS7H&NZA>Z;I;W&G:
M;)J5UD)%;HP7))QDD] .YH T:*\_\$>(/$>H>#?$5[>%;S5K.]N8X(@!MW+&
MI5!CJ-Q.._-8_@GQ;KFH^)=(M_[?_MI+ZWDDU*V-JL?V!@./F '\7R__ *Q0
M!ZQ16;KVH7NFZ6\^G:9)J5T6"16Z,%R3W)/11W-<Y\+]9U?6]%U.;6[@374&
MJ2P_* %0!4.T8[ DXH [6BBB@ 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 X?XGZ)JNL6FCOI>F?VDUEJ"W$
ML!D1 R '@EN,'IWZT:'>ZS'JB&3X:0Z5&4??=07<#.N%)  "@G) '4=:[BB@
M#R2?P!XEUV#4/%=^SV?B;[0LNG6ZR@K D?W4R#CG^@)ZFMB^T76O$?BCPCJN
MIZ&L<=M%,-1BD:-TC8K@<9.X$\C&>V:]#HH X=O"T]K\6+#5[#3(H-+CTUHI
M)(0B*)"S\;1R3@CG%<C_ ,(3XEC^&6G:9_8QGO;;6Q=R6IFC&Z(*W4YQSD#\
M>E>S44 >5/X>\0:]XCT2YC\%V?A>+3[H3S745S$[NH(RF$ /.".0>OY])X,T
M34M+\4>*[R]MC%!J%XLELY93YBC?S@'(ZCK78T4 <=X#T34M'U#Q-+?VQA2^
MU62>W)93OC).#P3C\:[&BB@#S[0?"NLQ^#?%6E2K]BNM2O[J2V8N""CJH4Y4
MG ."/7VK+T#PSKTVM>&?-\-Q:&F@QLMU=I,A-U\H& %Y.<$G.?O'\?5:* ,W
M1+S5+V&Y;5=,&GO'<O'"HE$GFQ #:_'3.3Q[5A?#K1=1T33]8BU*V,#W.KSW
M$0+*VZ-@F&X)]#[UU]% !1110 4444 %%%% !1110 4444 %%%% !1110 44
M44 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !111
M0 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%%
M!1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %
M%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 44
M44 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !111
M0 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%%
M!1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %
M%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 44
M44 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !111
M0 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%%
M!1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %
M%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 44
M44 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !111
M0 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%%
M!1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %
M%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 44
M44 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !111
M0 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%%
M!1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %
M%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 44
M44 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !111
M0 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%%
M!1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %
M%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 44
M44 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !111
M0 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%%
M!1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %
M%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 44
M44 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !111
M0 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%%
M!1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %
M%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 44
M44 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !111
M0 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%%
M!1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %
M%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 44
M44 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !111
M0 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%%
M!1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %
M%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 44
M44 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !111
M0 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%%
M!1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %
M%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 44
M44 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !111
M0 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%%
M!1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %
M%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 44
M44 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !111
M0 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%%
M!1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %
M%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 44
M44 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !111
M0 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%%
M!1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %
M%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 44
M44 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !111
M0 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%%
M!1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %
M%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 44
M44 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !111
M0 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%%
M!1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %
M%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 44
M44 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !111
M0 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% #)(UEC:-MVUA@[6*
MG\QR*X/PM<6USX'LWU&35+F>:5H7F\RX8@M,4!W]!C(YSVKO9"XC8QJK/CY0
MS8!/UP<?E6+X1TB\T3P_%IE\+=FA=V#0N6#;G9^A48QNQWZ4 +=^)=-TGSH+
MB9G^Q(OVF3<O[O(!Y!().,'"@G!'K6;8ZC!IGB3Q(?*NIXU>"5A"C2[ T>20
M/KG@?E5V#3=:TS6M0EL#9SV.HRB=A/(Z202;%0X 4AP0H.,KWYIT.GZM9:UJ
MU];I9S+?&(Q^9*R%2B!3D!3D9[9_GP +=^+],MVLEA6YO3?P-/;?986?S5 S
M\IZ$\].HZG JPOB"W:.^/V>Y#V"*\T94!@K+N!'/IVZUEV?AF\TN304M7@FA
MTJ&5)&D<HTC.!D@!2 ,\XS[5/>Z-JAU'59+%K0P:I;JC-,S!HG52O"@88$$=
MQCWH LW7BFPMK+[6$GGC6T6\E$2 F*$@D.P)'8'@9/RG XI-0\4V5AJ2Z<+:
M]NKEK<W"QV]NSEDW <=C][\,<\D9R[_PYK=]HO\ 9!FLUMSI)M.)'&)MI7>0
M%^9<8P"1@Y.#Q5^#3-6&OV6I31V86&Q:UD1)V)RS(V1E.0-F.V<]J +,?B&&
M6.[9+.Z9K2Y6UD3";MYVXP-W3YE.?0UI2K))"RQR&)V'#X!*_ATS_GFLA-.=
M/%\]S$Z_9YK>.2>/OYJEE1OQ4G_OVM;3;@IV@%L< G )H P/"#7%SX5 ENYI
M)3<7:"=VW.,3R*#D^@ Q]*JZ0]K9>,;FRBGOX5EMLQP7C2LMPRM\\B%R>@*@
MX//7&,$WM!T[5-'\/R6C):/=++-+%B9C&V^1GP3M!&-V. >F?:GRZ?=7.IVV
MJW@MXGL(9!#$DI92[@ LS%1@ #'3N3[4 ;-<GK>G7%K<Z?<6=]=OJ\]]'P)W
M\IXMP,H,>=H0)GMG.WG)YV]!O[K4M'ANKVV2WG8NK)&Y9#M8J&4D#*L &!QT
M(K*2T\6K)/-MT<7$QVB<R2,8TSP -H' [=SR: (TNYM3L?$5\)9(Y;&>:"T*
ML1Y7E(.<=#E]Q.>HP#Q1>I#J_AH:Y>WEY LMDDT"6L\D1B9D!& I&]RQ &<]
M@!R<W7T.>.'5K2T>-8-5=Y&=F(:%G0*Y QANFX<CDFHI].UN&]B6P@TQ["TC
M5+2.>60%"!C<0%(SV'/ ^IH K:'<:AJ6I+INL$^=8:7;27*HQ7=/)OW$X]/+
MX]R?:M/PMJ$VHZ,7G8O+;W,]LSGJ_ERL@)]R%!/O4=EI>I6U]_:DQM9;VXME
MAND5F2,[79D*G!/ =AR.>/3F]H^FII.FI:*V]MSR2/C&YW8NY_%F- %ZBBB@
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@""UL;6R,QMH$B,\AEE*C&]SU)]34]%% !1110 44
M44 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !111
M0 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%%
M!1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %
M%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 44
M44 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !111
M0 4444 %%%% !1110 44R3S/+;RMN_'R[NE<C#XQOQX.3Q//:V[0"5DDMH]P
M< 3&+*L<[CD9VX&>F: .QHHHH **0D#&2!G@9I) YC81E0^#M+#(![9'>@!U
M%97AK4KC5] MKZ[2-)I=X=8@=O#E>,\]JU: "BLW4+ZX%[%IE@T*WDT+SAYU
M+(JJ5'(!!))<=^Q^AK>)-6OM \*7&K+';S7%I"))8SN"/C[P4]1STSF@#;HK
M#U#4-<TVR-^ME;ZA#&F^6&!FCE"XR2@.0Q'H2,U;L]475+?3[_3I()+&[4N7
M=B'(VY4*,<G(.0<8P: -&BD!!Z$'MQ2T %%,EEC@A>:5PD<:EG9C@*!R2:<"
M& (.0>10 M%(2%!9B !R2>U&0* %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@!DDD<,;22NJ(HRS,< #W->8:3;:?=
M?#DA#<?VQ!-<R6B0.XF68RR&-E4'H<KSC&"<]Z]2HH Y.S6<:\S>)_)(_LZW
M$!EQY/F?-Y^,\;L[??&,=ZHVT@AL;6'4UD>WGU*X33X+CB(P_,4,@()( !V*
M>N4]B.ZHH \TA-I<^'_"\5S/(IMM3>&:,R-&$C E!#*3T'R#GIG&1FMN :98
M>))],U%8H-.6TA72HY3B$K\V_:3QOSCWQC'&:["B@#G/ )C_ .$.LXXGW"-I
M4Y.2,2-P>^<8ZUD^6O\ PBFJK?J3KYDN=NT?OS)O;R3'WQC9MQP!^-=S10!Q
MOV:VE\<Z4VK1P27@TEA*6P0)@\1 '8'[Q'XU:^)$J1^ =7C9@'EMRD:YY=B1
MP!W-=110!A7'BG3;?2%GM91?SM$/)M;;]Y+(V.%VCD<]2>!WKF=%T=?#47@S
M3[]XUO+?[1YQ#?ZOS$=L9]-S;0?4<5Z'10!YQ8V$4?A?7+S2Q+<:K#<7B0NL
MS/.(&G)PA))Y49![GGO5J^%K<>'=2O?"EY<SW+6@0Q6\83"!@6&%5<2[=P&?
MFYXKO:* .&UBW\-ZCX.UU] MX)9I=-<,+:,Y.U25# ='!['YORJV4L/[:TIX
MA;G03;S$&,#R?M)*;2W;[N\#/?/?%==10!YWKL;MHGB41O)'IIN(#8"-R@9P
M%\S8!U7/..02&-7];TO3K<69TJ>PCWK<2"WO!YEM>;MF_<V>'X&&Y/+<'FNU
MHH JZ9(9=*M)#;O;%X$;R9"2T>5'RG/<=*M444 %%%% !1110 4444 %%%%
M!1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %
M%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 44
M44 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !111
M0 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%%
M!1110 4444 %%%% !1110 4444 %%%% !1110!4U:_72M'O=2="Z6=O).RCJ
MP52V/TK)\/V+ZGX?M;_5II9[N_A6>0K*R+%O&0J $;0 0,CDXR36W=VL-]9S
MVEPF^&XC:.1?[RL,$?D:RM*LM6T32(=,C6WOEM(Q%;RR3&(L@X4.-IP0,#(S
MG&<#I0!9CO(M/>WTA9+B]NT@#D$AI"@^7>[$@<GCDY)SZ'")X@L)8H6B=GDF
MG:V2 +B3S5!+*0>A 4DYXP/<9JVVE:C;:Q_:[-;S7-S9I!=QABBAE9F!0X/'
MSL,'' !ZYSC7FD7>G7%N]NB7.J7.I2ZBT<,@5XUV"-O++#:0%*J2V,[LC!(H
M V9?&.DP0R22_:U,5PMK(GV60E968*%R!M)R1T)X(]1F>W\16DD]Y!<13V+V
M4(GD^TJ%!B.?G!!(Q\I]QCD5AM9W&HV%QI5II\EG?)>V]_<?;Y5_>_O@^X-'
MN!SY17&!C X];FK^'+W6;_43*T,%M>Z7]BWI*S.C98[MNT C+>O;WH N1>*M
M/FD:*-9GF$!N$A0*SR1@@$A02<C</E.#STJQINN6VJ^2UI%,\<T*S++@; IS
MC)SUX/'4=ZBL7\1BS(OK;3?M$:8!BN'*S-ZGY!L'?'S55T71]2TC4Y'3[-]B
MO%\ZZB$K$I<G[S1C8!M;C()'//KD 3Q1JES#?:/HME*8)M7N61IU^]'$BEWV
M_P"T0, ]LYK1.BVZR020RW,3P.&W"X<^8.X?).X'WSZU#KNB'56L;J"40WNG
M3^?;R,N5/!#(P_NL"0<=.#VJ:1M8F>&-;>TAC+CSW\]G.WN%&P9)Z9)&* (O
M^$CL/L@OOWGV R>7]KVCR\[MN>N=N[C=C'?..:CG\46,.LRZ2L%[/=0B(NL-
MLS "0D!L_P!T;>3TY^N,\^&+P^#O^$4+PBU\L6_VG<=_DY_NXQOV\=<9Y]JT
M+?3;^'Q9=:F4M_LL]I#;@>:WF#8TC9QMQSYGKVH K)XXTPV*W\UO?V]H9GB>
M>2V8)$5<I\Y[#(Z]!GG'-:CZO#]KGM;>*:ZEME5IA" ?+R,@')&21S@9.,>H
MSS.DV%]K'@[4-) MX[>ZO+Z!IRY+JC7$H8A-N,\G'/H?:MJRTBYT>_U&6P2&
M:&^=)0LLA0QN$5,9VG*D(I]0<T )<^+])MTL&1I[D:BK-;"W@9S(%4L1TZ\8
MQU]0 "1))XFLHMA>*Y"EX8YF,>/L[R[=BR G()W+D '&1G&:S+7PQ?::-!CM
M7MYUTR6::=I9&C,CRA]VT!6P-SDCGIQ3M>T36]5ENUC:S, FMIK16F=.8W1W
M#@*1DE<!N<#' YR :"^(8I-:OM+%G=G['&C/*D3$$L&.!CV QZD\5'I&MV$F
MF:9%9+=3-=6HF@AD;?+Y0P-SLQ]P,D\D]Z=;V&IVFOW]^D=K+%>Q0@AIF4HZ
M!@1]PY!R.?KQ6?H/AO4-&.FW+?9I+BVT\6$Z+*VUE5MRNI*]>N01WZ\<@&E<
M>*=,M;/[3*TW%VMF\2Q,TB3,P 4@9]0?<$8SD9GT_6H;^_N;$VUS:W-NJR-'
M<( 61LA67!((RI'J,<BL:Z\,ZA)'=7$36S7E[JEM>RJTC+&BPM'M0$*221&,
MG Y/M6G#I]\OBR;5'6W%M)91VX"RL7#*SMG&W&/GQU[4 ;%%%% !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 53.J6>Z14D>4Q$K
M)Y,32!6'4$J#S[=:CUY[N/P]J3V&3>+:2F#:.?,V';C\<55\&BV'@S1_LA!B
M-G&V>Y8J"Q/ONSGWS0!JVUU;WENMQ:S)-$_W71L@TRYL+:[DBEFC)DASY<BL
M59<]0""#@X&1WP*X>;4K[1KSQS=:8L9BMFMY(Q)GRUF:/]Z1COC82/4\UNRZ
MIJ&DZ]Y&H7,5S:RV$]T!%!L:,Q%,@<G((D[]Q[T ;L%K#;EC&F&?EF9BS-Z9
M)Y-5M1UJPTJ6WBO97C:ZD$<.(78.YZ*" 1G@\50T:^UF_73[V2*+[+=P^;,-
MRXCW+N39C);T.>O7CI4_BG2'UO0+BT@;R[I<36LG_/.9#N0_F!^!- %N]U2T
MT]86N6E43N$CVPNY+'H/E!P?K4MO=P79E$$F\PR&*3@C:P )'/U%8^B:FGB>
M#3=1";!%#YTD9_Y9SG*%?JN) 1[BJIUK6OL6JR1P?:I+/4_(VVL?SK!M0DJI
M/S. Q_'MVH Z.:[@MYH(99 LEPY2)2/O, 6(_(&IJY>'7KF;^P'MKV&ZM[Z]
MFMYW\@HY"QRLH(/W6'E@,".N>G2EBUS4+SPW?Z_;F.-;=K@P6SKPZ1,RG>>H
M+;#R.!D<''(!T](1D$'//H<5S,6K:KK&LBVLIH;*TETR*\C=H3))ER1@@D 8
MQ[_X:7AK4;C5O#]K>7003N&63RQA2RL5) [ XSB@"GI6H:!IS7MEIPO=UO*6
MN8A!<RE';+$X(/WL[N.N<UK:=JMAJT+36%U'.B,4?:>48=0PZJ?8\UA>'2/^
M$W\7CO\ :+7_ -)TJI,'A^+(&FA0\^D,]ZO\)8/B)FQWZCUQ0!UMW=P6-L]S
M<R".),;F()QDX'ZFIJX>'7/$K>"9/$,EU8AF@!6%;=CM82$,=V[GCH,<<9SS
MG7NM6U"R\07-C/+#Y$EF;BQ(A.YG4X=#\W)&Y, 8SN]J .AHKG/[2U:34Y-(
MC:-KFUM(YIY8D #.Y8* &;A1L.>I.1R.^Y9-=/8P->QQQW)C!F2-MRJ^.0#W
M&: )Z*** "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 *H0Z/;6OF"S:6UCE<N\<3X0D\D@'[N3R=N.>>M6YO.\EO(V>;CY=
M^=N??%8?A;Q2NOQ26]U;&QU.W56FM6;.4;E9$/\ $I'?L>#0!>N=!TZYTB72
MFA9+6;/F*CE2Y)R26SDDGDG.33FT:UDU&"_D:9Y[>%H4+2DC8V-P(Z'.U>OH
M*?I\]U-)=QW7DY@E$:F($;AM5L\G_:Z>U69KB&WA,TTBI&,98GCDX'ZF@#.T
MKPY8:,0+-KD1(3Y4#W#M'%GLJDX Y_#MBM6JY><:@L>8/LYB)P6/F%@1T'3;
M@\GU(I]P\B6\K0A#*J$J'/&<<9QVH AL-,M-,6=;.$1"XG>XDQ_$['+&JD?A
MVUB\]EN;H//<BZ+B3!67&W<,#N  1TQVJ;0;^35O#VFZE,BI)>6D4[JGW060
M,0,]N:T* ,J3P]9O+:RB2=&M;AKE"K ;I6#!F;CG(9ACI@\"GR:#8RQW$!5Q
M;73EY[=7Q'(Q^]D>_<# .3D')JI;>(9O^$JDT*]M$AW1&2VG20E9BNTNN"!@
M@.I[\$^E+?>();?Q58:%;VB2FZADE>9Y2H39MX  .3A@>W4>M %W^Q[4:FVH
MJ94N&@$&5D(4(,D +T&"2:?I>F6VD62V=IY@A5F90[ER"3D\GGJ2?QJGXFUQ
M] TY;Q+?SU213.,_ZN'<!))_P$&M<$, 000>A% &/;>&+.TU"\O[>YO$N;XJ
M;B3SR?,VC X/ P.. *LV&B6&FK<?9(V26Z.Z:=I&>60XP"78DG';L.U,;4IK
MC4[JQL5B+V4:-*9,X9FR508Z<#)/.-PX-4;_ ,5>5X:MM;L+-KB.X\HX=@HC
M#NJX/7D%N@]* +!\+:?_ &$VB(]REDW5!,2<9S@,<D<\U=N=*M;R2REN4,LM
MC)YL+L<$-M*Y./KTZ9QZ5#JLVMQR0IH]E97 8,97N[AH@F,;0-J,3G)_*J=M
MK]Q;:1=7^N000&"X,,:V<C3><V0H"[E4EBY*XQU% %N_\/V.H:A%J#F>"[B3
MRQ-;SM$S)G.QMIY&>>>G:M"*)(8EBC!"J,#))/XD\GZUFW.JW&GZ4+R_MXTF
MEECBAMT?/SNP1%+=SEAD@8'/7&3)!J+KJYTJZ*&<P?:(WC! =0VUN"3@@E>_
M.X4 :-%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1
M110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%
M% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110
M4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1
M110 4444 ,DDCAC:25U1%&69C@ ?6N1;2$U[P_I>IZ->10:UI]N@@N%.1G:-
MT,@'53W'4=:[&B@#BH]9%YX?O;W5;"YLY/[1BBGM"V!Y@6)<.V#^ZSR3W7US
M@YD\,$OAC6[.2V4I:ZU#,(A RI'$9(6+!2.%QO/TR:](HH XN[2W3Q*?[ 6W
MBG?1+B.W:)0$\S>K(../4^XR:=X;?P\=,M+A(4CU6"S*7+21D3QMM_>>:2,Y
M+ \MU/3K7944 <'X.ECMXM$AU6"(S-ID"V4ZJ1Y>U%#QN#]UPV<$]>0,$$'L
M-,U6QUFS%YIUREQ 6*[USP0<$$'D&K=065E#8Q,D629':21V.6=R>2?\^PH
MY#Q!-'>V^HW^E2QSZCHEZEY#'&X+.JQ()%XY(92Z\=_<4MU<QP^._#KW4L<,
MSV]X\ZNX!C9Q%M4^^%P/7;7;44 8)6T\0W&H(;S-M&AM62-E(92,N3D'@YV_
M\ J'P-J(N=!73Y;A9KK3':TE(8$N$)5']PR@'/KFNDHH YZT4:1XFURXNVV1
M7WDSPM_?VQ[&4>K#8#@?WA6-?64FC?"VUL+KY+@-;ED')#&979>.N!G\C7=4
M4 5;R[\G3);N#;*1&6BP<AR1\H_$XK"UW3_L=MX?8[I;73KY)+EL9./+=1(W
MT=E8GMR>U=/10!PEW97-U=7\E@K/I=GJ%C=0*F2I*-F?R_8+M.!QN##KFMV.
M 7WC.+4X'62VMM/> R*<JSR2*V >^!'S_O"MZB@ 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@ HIDGF>4WE%1)CY=PR,^]<[HFMZYKGAZ'5K>SL0\AD'V=Y77.
MUV7[^#C.W^[0!TM%96@:]#KUK,ZPR6US:S-!=6TN-T,@ZCC@CN"."*U: "BD
M) &2<#WI: "BN<TS6=8U.[U:VCALD?3;KR,L7Q+\BL#_ +/#>]3Z5XADO[R]
MTFYLQ9ZM9H',#2;HY$/W71\ E2>#P"/2@#<HJ&VDD>UA>?RA*Z L(FW)NQD[
M2<9'H<=*FH ***8LT;RO$KJ7CQO4'E<],T /HHI 0<@'IU]J %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*** &2RQP1-+-(L<:C+.[  ?4FN+^'VNZ9;>!K87-]!#)%)/OC=P'&9G(^7J
M<@@CUS7;T4 >;E+^VLM=\220W-E::KJ5N7381+':)M1I"O5=PR2,9"UJS3:'
M;:?+=6VKO>VD]S IBADC%MN)( 9E7"J<@OST4<<X/9T@ 48  'H* /-;E[=_
M"&JV?V@V[VVLH8HX7:((IF0@*O'R[2Q Z=\<"N_TRSL-/L1'IZHELS-)E7W
MDG).23WJY10!Q7A76=,CU[Q3YM_;QA]0$B,\H4,OE(N02>1E3TJ)HDUKQ3J?
MB%XVBTF#26T])908Q<L7WLRYP=HX /<GC-=U10!YS!;Z;?Q^#(;R;="VEM#<
M1&<JG^J089<X!W CL3C';%7';3YM9U;2]5U633)XI$6P4,BN(!&NQH2P))W;
ML[<G/![5W5(0"02!D=#0!Q,3Z5-K>LVOBG8;HW2O8B?(9H-B[/)[YW;LA><]
M::]L(M9\6G3TC367026&X_.S&W W+GMN!'ID5W-% '&RB#['H/\ 8?\ Q_BY
M@\W;_K/*_P"6WG=_NYSN_BQWQ5;3=/TJ>\\37$MQ,TT%W,]O*L[/)$C6T89X
M^3DY+#O]T#M7=T4 <+8+80Z/JEOJYMGL4@@9]1TL.BW"Y(7*IDK(,#.TG(8=
MN*[JBB@ 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 **K:A/<6VGSSVEL+F>.,LD)?9YA Z9P<9^E8$/C%YH- NQ8Q"RU
MK"^?]I/[B0J6"$;.2<$=1R,4 =1161;:IJ,Z6!;3[=3=L2RBZ8F.(#(?_5C)
MZ#'&"PYK7H ***2@!:*** "BD!# $$$'H110 M%%% !14$3W#74Z2QQ+$NWR
MF60EF!'.X8XYZ<G/M5&;4[F'Q5:Z48HC;7-I+.) 3O#1M&",=,?O/TH U:*@
MLWN)+2-[N.**<C]XD4A=5/H&(&?RJ>@ HHIC2HL@BW+YK*65"<$@8R?IR/SH
M ?169X?U.?5M->XN8$@ECN9X&2-RR@QRLG!(&?N^@JY&]P;N=)(XEA4*8F60
MEFSG.Y<<<].3GVH GHHK+L]4GN/$>I:7+!&D=G#!+'(KDEQ(9 <C Q@Q^] &
MI137=(HVDD8*B@EF)P !WIIFB!C!D4&4X09^]QGC\ 30!)1129H 6BBB@ HK
M+UK5)]+-@8H(Y4NKR.WD+.04#'&0,<G\16I0 45EZ)JD^IMJ*7$$<+6=Z]L
MCE@RA58') Y^:M2@ HK+O]0NS>MIVEK;M>)")V^T,P0*6(7[HSR5;Z8K37.T
M;L;L<XZ4 +12=\5#<O<)Y7V>.)P90)/,D*[4/4C@Y/3CCZT 3T444 %%9::I
M.?%,ND/!&(5LUN$E#DLQ+%2",<=/4UJ4 %%-<L$8H 6P=H)P"?K3+5YI+2%[
MA(TF9 9%C?<H;'(!P,C/? H EHHHH **** "BBB@ HHHH ***R_$6J3Z-HTE
M_;P1SM&Z!ED<J,%@I(P#D\]./K0!J44URP1B@#-CY03@$_6L<:M?1ZYI>GW%
MO;JE[:22R-'*7*2)LRHX&5^?@^W04 ;5%073W$<:&VCBD8R(&$DA0!20&(.#
MD@=!W/<5()8VE:(.I= "R@\@'./Y'\J 'T4QY8XV17=5:1MJ G[QP3@?@"?P
MI] !116/:ZU+JMY=PZ9%&T%G*8)+F5CM:4?>55'4#H3D<\#/- &Q156PFO)H
MG^VVJ6\J2%0$DWJXXPP. ><]"."#UZU:H **** "BBB@ HJGJVJVFBZ7/J-Z
MY6"!<MM&23G  '<DD #U-5C=ZW]B%T--M]^-QM#.=X'INQC=CMTSQN[T :M%
M%)0 M%)D$D9&1UI: "BDZ4M !13#+&)5A+J)&4LJYY(& 3^&1^8J.T>XDB8W
M,<4<@=@!%(7&T$[3D@<D8)':@">BBB@ HJ"]O(;"SDNIR=D8SA1DL>@ '<DX
M '<FFP7$LD(65(X[OR][0"3.W.<9./;&<=C0!9HK-\/:G+K&BPWT\*0R2,ZM
M&C;@I5V7@X&>GI6E0 4444 %%%% !1110 4444 %%%% !1110 4444 %%%%
M!1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %
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
M64[^;/-8SM#;R-B,8QEP,9:3) 4#GKTK&N[I;_1],OXKVTU!ETE6FLKER/M
MP-SQ..DH9<9P>2.G6O0Z0@'&0..GM0!2U.X2/0[NYEFFM$6V=VE1<R1#:22!
MS\P_'FN)@U*U6YUH6MTEC%<:)%<0"&?)W@S9?=T+XV!F&><#)/->B4A4,,,
M1Z$4 <-8FRL[OP?=079$U[&8IV:Y+><OV=FP<GG#JN/0\"MCQG=-:6%C))))
M%8&]1;^6,9V0[6Y/!^7?LW9XP3GBM_RH^/D7CIQTI] '&7=MH[:'</8^(7_>
MSJ]I-'.@B6;@*B!-JLI(&Y>G))QG-4M0U&TN/!.K+-,L&I)<(E]$9]WE2>8I
M^3).$QRN.W7G-=^54XRH..G% 4 Y  - '(2C3++Q1)#'=K':WFDR/.#='$C!
MUVOG/WMK-SU(^E9>F/930^!/M5RJPC2)4<^;M4L(X058Y]<\'N*]$I" >H![
M4 >=7LB16%P&O&?38=?LVT^6:<G*"2(RX8GYD4E^N0,'TK;TF*PC\=ZV9'5;
MIVADA5I3N=3%@E03R."/;%=710!RWBJ&R/B'P]-?L$@$TR,[RE%!,38&<@ D
MBH[0VC2:[_;TBK*MPP@WMADM]B^68N_KRO.[/<5UM)@>G2@#,\,MJ+^&=-;5
MPPOS;IYX88;=CO[^OO6-X+V^'["ZT74I%M[BWO)G1I3M$\;N75U)Z\'!]".:
MZVD(##! (]Z .7U/5(=2U'2GAG$FC+=2QW<H/[IW$?[L%NA3<2/3< *S=8N9
MK=M>;3[H0:4D%L=X;$8G,A$B(1P-R;0<< MGCFNZJCJ]C-?V2P02(N)%9XW'
MR3(#S&V.@(^OT(R* .:O+7,&N:O!<RZ?:"P'D1PW>T+*%?=)M1BG(*#G)RN>
M.#4=G]BLM0\)7-O=D2WT31S,UR6\Y?(+ ')YPZC'IT%;UIX=M(-4COX]/LK%
MHXV0K:H!YH./O':,@8X&#SSQWU_*CX^1>.G'2@#B/#DUAJ MVO\ 5IH=<@G<
MW=IE!+OR0RL-N\Q8/'.  #D8X6QN;"QU^*&;43/I4]S)]@N&NB<7&/GA8[OF
M48.W/?([*3W&!Z=:38F,;1^5 '.^.]-N]2\.?Z%"T\UK<PW0@7K*(W#%1[XS
M@>M:$OB32(;'[8U]%L(^5-WSLW90O7=VVXSFM2DP,YP,^M '*VS6K7.O?\)!
M(JRK<L(?,;!2WV+L,7<<YY7G=GN*QEA:_N_"L'B2XE2YGTZ=+V!K@Q[CA-NX
M C#'G.,$G(Z#%>AX'ITI: .$@T[0#K/B:UU&<PJES$R W3JR V\9W+\V<YSR
M.:DT5M0-YI*>)V/E?V2I07/"O<;SNW@\;]FS@\\OCO70:7IU[::WJUW,(/(O
MI4D39(2R[8U3!!4#G;GK_C6L0",$9H \[U-W.B7!DNYH;)-?M_[/<3%-T/FQ
M;\<_,@8R$9R  ". *M>(H](L+.;2[-C(S:;//;0O,61#DDR)U9I"Q&,'@ \C
M//=T4 <-;S:9=^*-'U"[NHV2XT<F.9YR%D<2)D YP3UXJMIDR?9;&&.<-I*:
MY>K>$2;AMWRF(.<_<)V]>#E<\&O0:6@#A=<FDA7Q*=.NFM]-CT<OYD+[4CNA
MOX0] 2H7<![=S5B$6-AXD\/26EWAKZVE67=<E_/ 12N02<D$'!^HKL"JE=I4
M$>A%)Y<8(.Q>.G'2@#,UX9.F;O\ 5?;X_,STZ-M_\?V?CBLI8M/A^(]_)=R+
M'*]A:O#YDI7>0\P;:"<''RY';/O71WMG%?V<EK-N"N/O*<,I!R&![$$ @^HI
M]NLRP(MPZR2@89T7:&/KCM]* //;/[##X7TO4XKL+=QZNB>:)_NHUUATQG 4
MQDY'X^]7A/8WNLZK::QJTUAJ"78-JBE!(T("F,P[E)(.#D+W+9ZUW-)CG- "
MT444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1
M110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%
M% !1110 4444 5[Z\BT[3[F^GSY5M$TK[1SM4$G]!5&W\0VES>V=FDUJTMW
M;A=EP&#)S]PX^?ISCH.?3.J0&!! (/!!JI>:?%/8R6\4<<3^0\43A /*##''
MH.G3TH I:?K<^M027>E6L4EF&9(9YIB@G*G!*@*?ER" 3UQTQ@G1LII[BT26
MYMC;3'(>(MNVD$C@]QQD'T-8'@BXCL?"5GIMZ4M+S3HO)N89&"E"O&[G^$XR
M#T(-(VH1:KXFL&:42:/-:2F D_NYYQ(!SV;Y02H[@DCID '445YYJ=R1:7BR
M7LD6FQ:]9K8R^>4RN^+S5!S\R*2^.PP<?=&+T-GHQ\8ZGICW"M9G3X;A[=KI
MBHD+2!GQNZ[0I)^A]Z .TI:\YTZ:UU&'P;<7]^[B2VGB>0W3+YA"C&2".>#G
MN>]6XYHM+&J1-J-PVBB^MTM-TY;>[#YX1(Q_U>[;DYX^8>HH [NBO-I=0A_X
M1^XMVU/R!;^(84\N*Z(V1-.GRYX.S!8CIP,C@5M6]KIX\7:IHUO<;(+O38I'
MB2X)(D+R N.<AMNWD>@- '47LTEO8SSPHCR1QLRK))L5B!D M@[1[]JQ%\1Z
MBXTMDT3=]NMC,\8N!YD1 R1MV\CL#D<E0<9R(O"\2WUK;27:9NM-B:RGR3AY
M5;#D@]?NA@?20UTVT;BV!N(P3CF@".UN8;RUBN;=]\4JAT;&,@UD)KM[+XFN
M]%BT^ FV@CG\U[HC<KE@.-AP?E-3>'3_ *%=!1^[6^N0GT\UL_\ CVX5B1?9
M9OBEJ,3W.UVTNW 1)RC$AY,C@@G Q^= '3V-Q=3B87=JENT<I1?+E,BNN =P
M)4=R1C'4&K5<O?VSZ=?:'8/-(=+>><W#R.?F<Y:-';N"2W7J0N<YK%\3S21Z
M;XNBMKF2+38K!6B9)-JI<X??&A]" F5'<^YH ]"HKB=2M=*M]4\.B'492EYJ
M$KRL;]R)2;:0$_>Q]X*., 9P,9JA-#I:V'C&%+W]WIK%[0"Z;_1F-NC93GC]
MX3^.1[4 >BUEZ=K8U'5]0L!:2P_8EB8/)P9 ^[^'J/N]^>>@JWIMP+O3+6X$
MBR>;"K;U.0V0.:P](NK>3QYX@A6XB:006HV!P6&!)GCVR/SH N?\)#']D.H>
M4O\ 9PN/(\_S/FSYGE[MN,;=_?/3FM=RP1BBAFQP&. 3]>:X5;"8_#7_ (1X
MG_3_ #C:E,_-N\_[V/3;\^?[O-=>DVHK=O\ :+>TCLUSB47+%\=B5* #_OKC
MWH H:)XB;6/#ZZLUJMN)'D2*(RERS*[)CA>Y4] >*T[&6\FMP][:QVLA_P"6
M:3>9CZG:.?IGZUYYX434K7PS::]H\ZW\=NUREQITCKC9Y\AW1-_"^.<'AACI
M@5W6AZ_IGB*P6\TRY65#]Y,X>,]U9>H- "7^H70NSI^F16\MX(?.87$C(BJ3
M@<A2>2#V[5!=:S?V1TI;G3X%>^O#;2A+DL(N'*L/E&[(3GIC/>LLQZ<?B;<F
M6YVS#3(6V_:F7!$DG\.[&,8.,8[]ZR-.O+)=%\/QK?1,$\17(!:?<<>9<8R2
M23P5Y/J/6@#OK:2XD\W[1"D6V0K'MDW[D[,>!@GTY^M3UYO/=68T^]6+561!
MXHA#E+L@LI>($%LYQC/?C'M5S4)8=*U'Q)9Z5J,=D6TB.==TY(CF+2@OU)!(
M"9(]C0!WE)7.:;9/=ZY'J5NMQ:Z>MHO[GSR!)+GJ55B#A>"3UR.N*B\216;^
M*]!^V3O%'(MPAQ<-&K?*"!P1[_7I0!U-%>?72RV6FZW]DN[A]*M+VTDMIFG9
M_*&]#.%<G)0#.>2!EAV-7Y=2L+KQ+J:VVJ@6\ND*X>&YPN_?("R'.,@ 9(H
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
MTK3],>W+%C9* 905*[&PJY7G/.>5%3:IIU[=:]I5[ ELT%GYOFB65E8[UV\
M*0<=>2*V:* $P,8P,>E(%4# 48QC&*=10 UXTD0I(BNIZJPR#1L7:$VC:.@Q
MQ3J* &LJL,,H(]"*-B9)VC)ZG'6G44 )M .<#-"JJ#:JA1Z 8I:* $VJ&+;1
MN(P3CFD2-$+%$5=QR<#&33J* $(!ZC-(44@ J" <C(Z4ZB@!I1"X<HN\# ;'
M(%.HHH 3 ]*&574JP#*1@@C(-+10 T*JJ%"@*!@ #C%"(L:A44*HZ # %.HH
M *:Z+(I1U#*>H(R#3J* $      '0>E&!TI:* $"J.@ _"FF*-D*,BE#U4CB
MGT4 8VIZ+_:.HI+<VEEJ%FL05;:[7Y8GR<N/E8$D$#D<;>.IJ;1M&ATF"XAB
MAAAAGF\U;:$?NH?E4;5''&5SP!R3Q6G10 F!Z"D,:'.44[NO'6G44 -V+NW;
M1NQC..:'C21"CHK*>H(R#3J* $VJ0 0,#VHV@'.!GZ4M% #)88IE"RQI( <X
M90:<!@8%+10 PQ1EMQC4MUSCFE,:-G<BG/7(IU% " !>@ YSQ2T44 %%%% !
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!6U"[-CI\]VMO)<>3&7\J+&Y
MP!G R0,UDQ>+;>4Z*RVD_DZTN;>;<FQ3MWA6YX) .![$5OUYO/I4DFGZMX(@
M^6[M;@7NDL21LB8F12".0%</'G_: [T =I!K,LZ63C39U%Y(57+I\J@$[S@_
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
M>TX7UQ$\D?FHC;/X%)^9S[*,D_2M/K6->VHURXO;0RJ+:.$VLH*;MQ< N/\
MOG9^9KG3J-\?AK/$+Z2WU'2Y18W$L9&XE) F>0?O(0V?]J@#O**Y@02V/BU[
M*WU"\6*[TR65O-G,NR1710ZA\A3ASP!C@<5EZ6US%H_@[53J-[+<WQACN?,N
M69)5>!F(*9VY! P0,\=3S0!W=%<)J&J26_AGQ 6U*6.YM-0=(";@AT&5*CKD
MC!S@]C5CQ'J;P7$TMOJ4K2V][9*!'*8XH4>2,%& .)&969N1PI'3 R =%8ZK
M]LU;4=/-LT36)C&\L") ZY!&.G3O6C6!HY#>+=?=2"I%K@@]?W9K?H ****
M"BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH *
M*** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HH
MHH *C\B'[1]H\I/.*;/,VC=MSG&?3-.D9DC9E1I"!D(N,M[<\5S,?CNS.G)J
M4^FW]O8FY-M)<.(RL+A]GSA7) W<9 (Z4 =)%#% FR&-8U+,VU1@9)))^I))
M_&H8=-L+:ZDNX+&WBN)O]9,D2J[_ %(&35JB@""XLK2[*&YM89S&<IYD8;:?
M49Z5')I>G3>=YMA;/]H&)MT*GS/][CGIWJW10!!#96EO*TL%K#%(ZJK.D84L
M!T!([#M4D<,44?EQQJB9)VJN!R<GCW)-.) ZFEH K6>FV&G!Q8V5O:B0[G$$
M2IN/J<#FEEL;.XG6>:T@EF12BR/&"P4]0">QJQ10!5.EZ>8H(C86QCMCF!/)
M7$1_V1CC\*)=+T^>V-K-86TD!;>8GA4H6]<8QFIII&BA>18GE*C(1",M[#)
M_,UB6/BH:EX?36[+1[^6VDB,J+F(.RC/0;^O'2@#1_L32?G_ .)79_O,;_\
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
M2QJX![9&:EH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH
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
MC1O- ;(\M&9R<N0.2>!NQCJ,6;4-1D\+2/!J<\,EMKJ6X;<LC&(W2H%9CDD
M'UYQ@DC-=>FA:/'9+9)I5DMJKB00"W38&'1MN,9]Z&T/2'W[M*LF\QQ(^;=#
MN8<!CQR?>@":PLS8VBVYNKBZ(9CYMPX9SDDXR .!G ]JYKPW<7VLZ;I^M-K2
M1/+(3<0%&(W'(,."^%*G R%S\O?)SUB(D:!(U5%48"J, "JB:-I45[)?1Z;:
M)=2Y\R=85$CYZY;&30!R,-SJJ>&+76IM7NI;J/5!"Z?*L3H;SR2I4#IM/'.1
M@8J[-<SZU8^*$FO);=K%Y;>*&(@>6HB!#L"/FW9)YXQC'.36[_PC^C_9/LG]
MF6OV?S/,\KRALWYSNQTSGG-/GT72KJ?S[C3;2:8IY?F20JS;?3)&<4 <QIMW
M<7ESI6C"]%J@T2"XC7Y@9V.5;!5E/RA5XS_'DC@5=L+J[N-?&B7>J&5;73XY
M?.A C-VY=U9^"<!=@X!ZMSV%;$V@Z/<VL%K/I-E+!;?ZF)[=&6/_ '01@?A4
MMSI6G7GD_:K"VG^S_P"I\R%6\OM\N1Q^% &1X&5D\.O&\C2LE_>J9&QES]ID
MY.,#GVJOI3K_ ,++\0)D;OL5F<?]_/\ $5T5I86=A&T=G:PVR.Y=EBC"AF/)
M)QWJN?#^BM<M='2+ SO]Z4VR;V^IQDT <YJS_;OB9HQT\>=)I-M<R7Y3^%70
M".,GU+#('MFGZ%=:AJ&B:?KZ:NDLDL9DFMMC8ED*',(!?"E6P.%S\O/4UU-K
M9VMC%Y5G;0V\><[(HP@SZX%10:/IEK>R7UOIUK#=2Y\R>.%5=\]<L!DT <_H
M,\EWX:L/$3:E<W-Y):M+) LV(II2A)CV=!M((&W!^7G/-/\ #QN]2T_2]5'B
M!76[@)E54),CLF<+N<JI5LG 7L016Y!H^F6M[)>V^G6L5S*27F2%5=B>N2!G
MFDAT32;:>:>#2[.*6X!$SI JM)GKN('.?>@#C;)K_P#X1_PQJ1UJ_:XO)XH)
MRTH*R(ZMD;<8SQG=C/O3]>>6VT/QIIHN9IH+>R62+SY#(T>^-MPW-DD97/)X
MS77G1-),4<)TNS,<+;HT^SIA#Z@8X-/;2M.=YW:PMBUR-L[>2N91Z,<<CZT
M8=]<:AI.OZ4MO>S7T=\LRSV[[3]R,N)%P/E^8!2.GSCC-1>')+S5=,TO6/[>
M3_2H\SQA#\[LIR@!<JI5O1<_+@]371VVG6-G(9+6S@@=EVEHXPI(]..WM446
MBZ5;W4UU#IEG'//D2RI H:3/7<<9.?>@#%\$0WD^EQZE?:K=W<SF>(I(RB/Y
M9F ;:!][CK[XQC&-K5;%-4L9;)[R6V5A^\:%E#;>>#D'C^>,=,U-:6%G8(4L
M[2"V4\E88P@/Y4R?2]/N;C[3/8V\LQ389'B4L5],D=/:@#D]1N[R^^#UY<7Y
M#W#V,@+A HD4$A7QT&Y0&X]:[8D#&3UZ5%=6=K>P&WN[:*XA/6.5 ZG\#Q6?
MJN@6FIQV$7E11)97$<\11<&,H00$QC&<8/L3^ !>O;RWL+8W%RX500%]68\
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
M %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110
M4444 %%%% !1110 4444 %%%% !1110 4444 %%%% #)&*1LZQM(0,A%QEO8
M9('YFL73?$YU?14U:QT>^DA<.55C$'.TD$8W^H-;M<3X&T^XN? M@(M1GAVW
M#OL4)MPMPQ*_=S@@8Z]Z .SBD$L22 $!U# 'J,U1T_5OMVIZE8M;/"UA(B%F
M8$2!EW C'08]:Q#/>ZQJNN6T>KKITNGRJD*E6/E)Y:N)2 ZA@26^\",+CUIM
MI:O>^)O$H35)K3 MB'@*C:?*^]R#D>QXXH ZZBN#M[S5M='A=KC4[FR_M*TG
M^T+;!4W%5!$BDC()!SW !XP>:T)+J6VD\36TNH3!+.WBD@9YL,F8R=V?=A],
M\4 =917"ZSJMTGA9KG^TIOM<6AB[186V%) A/FR-GY@2  N.3NX/:[>QWFI^
M+;6S76;NVMI]+DE9+9E4AUDC&0<?[7?/3 QDT =;4<TT=O"TLK;449)QG].Y
M]JYJ$3C6M1T6:\NM[SQ7-L_GL"("/F4<] R2+_P-<]C74 8&* ,_3-:MM5TC
M^U(HYHX0TJE9$^<>6[(?E&>ZGCK4=AK9O-3ETZ?3KJRG2(3()]A$B$XR"C$
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
M[<'[RDY(#9YP<>F* .MK/L]66[UC4--^SR1/8B(EW(Q('#$$8/\ LGKBN?\
M%&I36LMS+!?RF:UN+7:D3;$@5Y%!5^?G9P6XP<#'3J='2B&\9Z\PP08;3!'T
MDH WZ3(SC/-<MXHN;ZSO7NPTTVG6]J'N([2X,<]M\S'S@O21<+]T_P!TX!R1
M2V\<K>--=E%_,GDVELR*[_NER)>H_NCK^= '4T@((R#FN0TB_EN-=%K'J%U+
M!=:2)_-D?F1]X E13G8&!) X'3CBJ&E7EQ9>$/"B'498TU7R4GN9F+!,PLP4
M$$$;F &<Y_&@#OZ*Y'5(M1LC86_]O2L)=61"L( 9(V0G8Q8L3R-PR>^.0!4:
M6<[7_B'3VU;4?(LXXYK?_2FWQ.R,3\WWB,J" 21R>* .RHKC+'5KW6+O1[*>
M]%N;G1H[SHR_:)&QNP593\HP< _Q].!4QBOW\0:/IMQKL]Q!)IUR9FM\1"9T
M>(;LKD@_.1P>H[9- '6$@=3BEK@9WNIO#\%M+J%V?L_B)+593)\[1BX 4,W4
MX&/K@9K1U"6^T[65DFFN+K34EMXO-@N2)+5\CB2/HZMN&3R0#TXS0!UM,D<H
MC,J&1E4D(I&6]AD@?G3@0<X.<5S<<#R?$6]S>7(2/3K:18@^$R9)@1C'3Y10
M!KZ-J::SI%MJ*0O"MPFX1OC<O/0XJ]7 Z*+JR\,>&[Z+4+C=)=10O#D>4T;N
M01MQU'7/7(].*T;*XO=9FU.<:REE+8Z@T)C96(BC1A@%=X4AUYR1_'P>!@ Z
M>[NK>QM);NZE6&"%"\DCG 51U)K..MSG3_[032+Q[?;O"_*)2O\ >"$^G.,[
MO;/%9WQ&M;BZ\&7*V\;2B*6*6:)!DO&DBLXQWX!./:N@^W6GV#[?]HC^R^7Y
MOG;ALV8SNSZ8H L45SNGRS:MJ>N+>7$UNMG.L,$<<ACV1^4K^8<=22QZY VX
M]<Y&F7VI:W+X:>\O[F 7ME<F:.$B,3;&0+)P,C<#G@\9XQ0!W-%<#))>VWAC
M5K[^UKYY](OY([9VG/W%<85QT?@XRV36HMG-J'BW7+5M7OX(UM[9XTAF"^66
M\SD<<?=^A[YXH ZJBN,TW4KR_P!&TU=2U"1I)?M*#[.?*>Z$;E5FW C8FT;C
MCJ67Z&'2[W4-77PE]HU2X5+[3'DNDA8(9'"1G)8#(^^>A'MB@#N:*XDOJ">&
M=5:*]O)7T?47*$S,9)8$*NT9;JWRE@">>E=-I@29I[Z*XDEAN'S"#(64* !D
M#MD@GZ$4 :%9^GZLM_?ZC9_9I(7L)5C8N5._<H8$8)XP1UYK%@DEUO6M>L[O
M4;FR-A+&ENEO-Y9CC,:MYI[-N)8?,"!MQCK566VEGO\ Q;<0ZA<6QB,<D;6[
M!?F%NA#$XY'MTZYSV .THKB->U>Z/AV6[^WRI=IHOVQ(K=O+\J3:3YCG/()P
M G?YN#VOR_:=1\5VUK)J5REI+I;RM!!)Y8+AT!.Y?F[^O'XF@#J**XO3M2OQ
MIVDQ7%U/-#_:5W:W#@EIY$C>5(_N_,>57<1SQD\9ID]WJ^GP6PO-1G@M[_56
MMHWN%'[F#YVCR0 X+E57+-G!'0T =O6;:ZL;C7K[26M6C:TABF$I8$2*Y<#
M[8*'K6-?W-]H\UG8OJRO'?ZDL+2[<-:H8V;9EF8DLR8!/3?@=L3:5 ;;Q]K"
M">256T^T8"1MQ0;YQC/4CJ><GGZ4 ;YFD%ZL'V:0QF,N9\KL!! VXSG)SGIC
MCK4H(/0UA3M-_P )W:PB[F$4NESDQ!AM5A)" P'K\QY.?YUA:/#J8\'6$UA>
MR7%S-=.TD%Q<F,W #2ED5P,JQ^]GOMP>": .[HK,\/72WFBPRJ+E<,Z,ETVZ
M1&5V5E8\YP01G)SC.36G0 4444 %%%% !1110 4444 %%%% !1110 4444 %
M%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 44
M44 %%%% !1110 UXTE1HY$5T8896&014%GI]CIT9CL;.WM48Y*P1*@/X 59H
MH IW.CZ9>7<=Y=:=:SW,/^KFEA5G3Z$C(HFTC3+F5YI]/M99),;W>%6+8&!D
MD<\ 5<HH JS:;87$Z3SV5O++&,)(\2LRCV)'%)<:7IUU<K=7-A;33HA199(5
M9U4]0"1D#GI5NB@"B=%TDE6.EV9*Q&%3Y"\1G.5''W>3QTYI8]&TJ&2*2+3+
M1'A4)&RP*"BCH <<"KM)0!1M8)I=2FO;NUBA>,&" J^]C'NR6)P,;L+\O.,=
M>:O,JNI5@&4C!!'!%16T[3B0M;RP;)&0"3'S@'[PP3P>V<'VJ:@"G'I&F0VD
MEG%IUJEM-GS(5A4(^>N5Q@TY-/M(()(K>T@C61-K*J!0PQ@ X'2K55[V\CLH
M5=U9V=Q''&N-SL>@&2!_^HT 5M"TB+0M(BTZ @QQL[  85=S%MJ@DX49P!GH
M!35\-: C!ET/3E8'((M(P0?7I5JQN+BYMA)<V4EG)N(,3NK' /!RI(YZU9H
MADM+:699I+>)Y5QM=D!(P<CGZU5N-!T:\N&N+K2;&>9_O22VZ,S=N21FKY.!
MDUF6>NQZE&T^G6D]W;!BJW"[520C@[-S D9[XP>QH M_V;8>1';_ &*W\F(8
MCC\I=J#T QQ3VM+9YX9WMXFE@!$+E 6C!&#M/;( Z5F7/B6&VT@ZB]C=@+<+
M;R0LJAXF+A,GYL$9(Y!/!!&:V: (+BRM+LH;FUAG,9RADC#;3ZC/2FW6FV%]
ML^V65O<^6<IYT2OM^F1Q4$^K+!KUKI+6TN;J&25)\KL^0J"O7.?F';'O6A0!
M6CTZQBN6N8[.!)V.6D6,!B<8SGUQQ]*?=6=M>QB.ZMXYT#!@LB!@&'0C/<>M
M5M4U9-*:S$EO+*+NY2V#1[<(S="V2#CZ9J;4;T:=837CPRS)"A=UBV[MH&2>
M2!VH )M-L+BV2VGLK>6!&#+$\2LJD=" 1@&H6T+1W\S=I5DWFL'DS;I\[#&"
M>.2,#'TJ32]035=-M[^**6**YC66,2XW%6 (/!..#5N@"N-/LA=O>"S@%S(,
M/,(QO88Q@MC)XJ*ST;2M.65;+3;2U6;_ %HA@5 _UP.:NT4 9\&@:-:O$]OI
M-E"T!)B,=NBE">XP.*L7-A97K1M=VD%P8FW(98PVP^HR.#5BH;J=K: RI;RW
M!W*OEQ8W<D#/) P,Y//0&@" Z+I129#IEGMN#F9?(7$A]6XY_&K"V\"6XMUA
MC6$+M$84;<>F.F*J66K+>ZKJ&G_9I87L3'EG*XD#@D%<$\<=\'VHN=62VUNR
MTM[>4O>)(Z3#;L&S&0><YY';% %BSL++3XS'96D%JA.2L,80$_04]+6WC,Q2
M"-3<-NEPH_>' 7)]3@ ?A4M9NMZU#H5FMW<V\\L1D2,F$*=K,P5<@D=20.*
M+5O8V=HVZVM8825VYCC"\>G':H_[(TP)<(-.M=MT29U\E<2YY.[CYL^]68V+
MQAFC:,GJK8R/R)%/H KV6GV6FVXM["T@M(0<^7!&$7/T%)<Z=8WLD<EU9V]P
M\1S&TL2L4/L2.*LT4 5[FQM+PJ;JUAG*9"F2,-C/7&?6ID1(T5$4(BC"JHP
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
M\2>7&RP*"B_W0<<#VJ[10!SNI^'+26XLXX])MVT^,N[Q6P6&193C:X(V\8W
MX(/(ZU/I^@PQK>07$+R:=<A ME>2FX"D9W'YBV ?E^7)'RYZDUMT4 4ET?2U
MTXZ<NFV@LCUMA"OEG_@.,4MMI.FV<_VBUT^V@FV"/S(X55MHY"Y Z<]*N44
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
MMCJ5((SWQG)K2ID4,<$8CB141>BJ,"GT %%%% !1110 4444 %%%% !1110
M4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1
M110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%5
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
M.5S_  ]0<Y/7H :?J&JMH5KXA-W%<0M9-<31*^[SSY98*@P-A!&,<\9SD\T
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
M]:/92:G% A(N([V]:=)$VD!0K,V#NVG(P, _2K]KX<T6R25+73+:%)@5=40
M$'J .P/H.*TZ* * T/2@MLHL( MG_P >X"#$/^[Z?A0=$TMDNT>P@=;W_CY#
M(")O][/7\:OT4 9B^'=&2Q-B-.@^S,0S1E<AB.F?7';/2K"Z78K?)?"V3[2D
M?EK*>6"^F?2K=% %:QTZSTV(Q65LD$9.=J# 'T]!R>*;#IEE;SM/%;JKL[2=
M3@.WWF Z G)R1UR:MT4 5[RPM-0C2.\MXYTC<2(KC(5AT(]QG@]J;%IEE#'-
M&MLA%P,3;_G,HQCYB<EN..:ACU9'U^71S;S))';K<"5MNQU)QQ@YR"#U K0H
M RX?#.B6]G)9Q:9;K;RC:\>SAE_NG_9]NE3QZ/IT5U]J2SC$_E^5YF,ML_NY
M]/;I5VB@#.LO#^D::LBV6GP6XD!5A&N.#U ]![#BK-E86FFVRVUE;I;PK]V.
M,85?H.U6** *<FDV$MW)=O:H9Y4"/(."P&0,^O!(_&F+HFF)#;0I9QK'9MNM
MT7($1QC*^G''T)J_10!F#PYHJNCC3+;<DQG4^6,K(<Y8>F<G\ZM6^G6=I<37
M%O;)%+.Q:1E&-Q/4_4X&?6GVUP;A9"8)8=DC)B50-V#C<.>A[5-0!5N--LKN
MYBN9[='FA!5)"/F4'!(SZ9 X]A4(T'2A:M:"RC\AI/-:/G:7SNW8]<\Y]>:T
M** ,ZXT#2+N]6]N-/@EN%4)YKIEBHZ ^H^N:MW5K!>VTEM<Q++#(-KHW1AZ'
MVJ:B@"B-&TT26LGV2/=9C%N?^>7^[Z4VWT'2;6_DOK?3K>*YD8NTBH 2QZM]
M3W/6M"B@"G<:3I]T]R\]G%(UW"()RRY\R,9PI]OF/YTZZTVRO3";FV27R&W1
M;A]QO4>A]ZM44 9UG;O-J<^HW-D+>4+]GB+,K,T88G=D= >#CJ,59O;"TU&%
M8;RW2>-7615<=&!R"/0BK%% &:?#NC-#<PG3+7R[M@TR>6,.1T)]Q4EOHNFV
MMR;F&TC69HA$S\DL@).#GKU/6KU% %2#3+*U=)(;95:)2L??RU_NIG[HZ<#
MX%8GAG1A';W?]H:4896U&XN4$NU@X>9G1L*2,@$=>16UJ^I1Z/I-UJ4L,LT5
MK$TKI" 6*@9.,D#@<]:LQ2"6))%! =0PS[T 0/IUG)?K?O;1FY5 @EQSM!)
M]\$DCTS4-EH.DZ=</<6>G6\$KDL61 .3UQZ9[XZUH44 92^&-#155--@14E\
MY%48"/ZJ/X>O:KM[86NHV_V>\@2>+<K;7'1@<@_4$9J2>>*V@DGG=8XHE+N[
M' 50,DG\*R4\1G^V+73KC2;ZV^V;O(GD\LH^U2Q^ZY8<#H10!9_X1_1S'=1_
MV9:[+P 7">4,2X  R/P'Y4+H&DK82V!T^%[:;'F1NNX/CIG/)QV]*T:* *,6
MC:;!:-:1V<7DN0S*1G<1T))Y)&!@]L"IH+*VMS(T<0W2X$CL2S/CIECR<>]6
M** ,RW\-Z):&,V^E6D9A):,K$ 4)[@]OPZ4[_A'](^QFS^P0_9C)YIBQ\N_.
M=V/7//UYJQJ-ZNFZ=<7SQ23);QF1DB +$ 9.,D#I[T^TN%N[.&Y0,J31K(H;
MJ 1GF@"%M)L'NC=&U3SS&(S)W*C. ?7&3^9J*+P_I$'V?R=/AC%JQ: (N!$3
MU*CMGOBM&H;BX-OY6()9O,D"?NU!V9_B//0=Z ,/6O#UO*J"VTX/'/="6\:%
M]DQPIPZMD88':"<@[<XJQI6F3V6HM)#-?"R:(JT5[=-.2^1AE+,Q4 ;@<GG(
MXXK:HH YR739+CQS)=SZ=(UJVGI MSN4 ,'=B.&W8(([8K6ET?39TMTDLH2E
MJ<P)MPL1QC*CH#@GIZU=HH HR:-ILUR]S)9QM-)'Y3R'[S)_=)]/:FC0M+"6
ML8LH@EF<VZXXA.,?+Z<<5H44 9_]@Z3]O>_%A"+F1@SR!<;F'1B.A;WZUCZ_
MH426UE#INCB6/^TX[JY2+8 0"=S$,1D\_4UU%4-*U:+51=>7!-"UI<M;R+*
M#N4 DC!/'(H =_9.GO;30-:1M'<#]\K#)DXQAC_%QQS45QX>T>[%N+C3H)/L
MHQ"67F,>@/7'MTK2HH C^SP_9_LXC58@NT(HP /3CM5)- TJ**"*&RCB2W#+
M$L64"*V-RC'8X&1T.*L:AJ%II=E)>7LRPP1XW,>>2<  #DDG@ <FJ=QKAM;%
MKZ?2K]($7>YV(65>Y*AMW3MC/M0!I$"&'$<>51?E1 !P.@':N>\':*MEX=T^
M.^TS[/>6JX*R;6VOS\RX)&3GJ.>M:.I:Y#I=U9V\MM<2-?2^5 T84AGP6QRP
MQP"<].*/[=A_MT:-]EN?M1A\_HNWR]P7=G=ZGIU]J +$&F65K<RW4%LD<\YS
M+(/O.<8Y/?CBH;/P_I&G22266G06[29W&--N,]<>F?;%.O-7@LK^"R:&XEEG
MC>0>3$7"JI4'=CIG<,?C5*#Q;IUU;)<VT5Y+$]RML'6V8 .9!'@DC@!CR: +
MJZ%I2:?+IRZ?;_8YL^9;[ 4;)R?EZ=>?K3%\/:.MD;(:=!]G+!FC*Y#$="?7
M';-)INN0ZG?7EG';7$<EBXCG\P+A6*A@.&.>"#Q4EUJL=KJUEISP3%[W?Y<J
M@; 57<0><YQ[4 .FT;3;B6&6:RBE>!&2-G7.U3C(Y[<#CVJ)/#ND11VR16$4
M0M%9;<Q@JT0;&[:1R,X'2M*B@"B^BZ9):):/90F!'\Q8RO ?.=WUSSGKGFF3
M:!I%Q?B_FTZ"2Z"A?-9,LP'3/KCMGI6C10!!>65KJ%L]K>0)/ _#QR#*L/0C
MO4*:/IT=S]I2U19O*\GS!G=L_NY]/:KM% %>RL+33;?[/90)!""6"(, $]:@
MET/2YFN3)91-]K&+@8XER #N'?( !]<4NLZI'HND76IS0S316L9ED6$ MM R
M2,D#I[U<5@Z!AT(S0!5&E6(FMYA;KYEJI6%LG,8/4#Z_TJ.UT'2;*]>\M=.M
MX9Y&+LZ( =QZGV)[D=:T*K:AJ%KI=F]W>2B*)"!G!)))P  .222  .30!9HK
M..K-&T'G:;>PI.ZH)&5"$)X&X*Q(R>^._.*T: "BBB@ HHHH **** "BJ-[J
ML-A?V5I-#.3>NT:2I'N16 SACVR <?0U>H **** "BBB@ HHHH **** "BBB
M@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ****
M"BBB@ HHHH **** "BBB@ HHHH **** *&N7TNEZ#J&H00^=+:VTDJ1_WBJD
M@?I65'#>-H']IIX@NI'FT\OE1%L+E=P=1MXQS@=,=?6NC(!&",@UF0>&M%MD
MDC@TVWC24%615^7!Y( Z 'N!P: .>\[5KVX\-6D>L3VT5_I<CS-&BF3>JQ'?
MN8$9^;N#W[\BY82WVMWNLP/JUS9-IMTMO$L0CW;0B-YC94YWEC[8''.36RFA
M:7&UNR6,2FU79 0/]4OHOH.!T]*+K0M*O+T7MS80R7&T*9"O+*.@;^\/8YH
MP;W4]0BT[Q@RZC)&VF$O:/M3,8^S)(!RN"-S'KFIB=0OO$R63:M<P0/I:3%8
M0@(??@D$J>O_ .K'-;%UH6DWMR]S=:=;3321^4[O&"67D8/KP3^=.31M,BG$
M\5A!'*(O)#H@4A/[HQT'M0!REG?ZL/#^CZM-JL\L[:A':2H501RH9_))( ^]
MCYLYZ^W%:+WU_;>)@M\T_P!BFN@EK<6[JT(RF/)E3JIW9(;GD@9'2M<>'](%
MHEH-.MQ;QR>:D03Y5?.=P'8YYS4RZ99)=O=+;J)7?S&.3@OC&['3=CC/7% '
M,:3)>6^E:Q>2:W*NS49XR]PB,L:B4+D )DMM&%'3)'%0W>K:M%H?B407LL4E
MA=1I!)<(K2(C1Q,1QQU=L$\C/M742Z#I,ZW*RZ? RW3;I@5X=L@Y/OE0<^H%
M,?PWHLGG;],MC]H"B7Y!^\QTSZ]OR'I0!DW-U?Z+X@FC6[N;^-]*GNQ!-M_U
MD3( %V@8R'QCV%-M+N\C\*1>)SJD]Y)_9K7+6P">5,_E[P  N1@C P<^N370
M#2K$7D=X+9/M,2>6DIY95] ?3@?E45GH.DZ?.T]II\$+L2<HN ">N!T&>^.M
M &3:G6)--CU"'5K79-9.P>5MZ/(5W)(. % P<@<8^F:F\-7MS--=6E_'=V][
M D;2V]PZR*,[AOC<?>5BIXXP5/ J[:^'-%L5F2UTNVB6965U6,8*M]X8[ ]P
M.*MVMC;62D6\>W("DEBQP.@R><#)P.V: ,"Y@FN?B#)'#>RVO_$H7+1*A;/F
MMC[RL/7M5"T\0ZI<RV&ESS1F62^N[9KH'RA<"'@8P#M+9YQ_<;&.W57&DV%U
M=?:YK=3<>7Y8F4E7"9)V[ASC)Z=Z9<Z)I=YIZ:?<:?;O:Q$&.(QC:A'0KZ'W
M% &'<7FJVFJ:1HMSJ"@7T]P7N(@-X5%#)%DC[QW=<9(7U.:MW:7-D+:Q;6;F
M42>:1M"?:9#P5 . H503DGK\O/.#HS:%I5Q8+82Z? ULC!UCV<*P_B'HWOUI
M/[!TG-N?[/@)MMWE$IDKNQN^N<#.>N!0!@Z1K&HWJ>$IIKL_\3*P9[E0BA9'
M$:L#TR#DD\<>U-COM:N-.O!:7'VV6WU>2$1M(D4DT*C)C1@  W4YXX!Y'6M[
M_A'=%^PQ6/\ 9EM]FA?S(XO+&U&]1Z=<?3CI3AH.DK&4CT^"(-*)B8DV'>.
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
ML917+6$0D;[D>_"%S[+NS^%6];U#6_#^EW=X]Q"T;F"*$NV\PL\@1Y&.U1M
M8'&.HZX.  =74+W.R[BM_)E;S59O,5,HN,<$]B<\>N#7->*K?4-/\+:M,NN7
MC[H5V;DB#1\X;!"#[P/X=L58O)K[3O$6FP_;[F[A>TNG>)U0&1DV%3\JCGYB
M* .CHKCGUO4H/ MIXG-T9;B5()WM@J^6PD908AQD$!L YSD#.>E/N)=7O+SQ
M)&-9EM5T_8;46\*#;F(.-VX-NY//3/\ ( ZZBJ>D74E_HMC>2@"2XMXY6 &
M"R@G^=9/B7[4VL>'H;>_GM5FO9$<0A/F MY6'WE/0K].?7! !J66JPWU_?62
M13)+8NJ2>8H ;<,@KSR,5>KCO(OVUGQ,UMJDMHT*0,LB1QLS,(<_-N4C'J !
M]14MMKFHZM>:?9Q,D$DVDQWT@#["[.<8!*MPO?C^)?H0#K*SEUF&>XG@LH)K
MUK9MDS0A=J/_ '=S$ MZ@9QWQ4MFM^NDHEU-%)>B,JTD8PK/ZXK"^&WR^!;"
M)P5N(C(ERK?>682-OW>^<G\: .AL;V/4+1;F)9$5BRE94*LI5BI!!]"#5BL*
M[U.:?Q19:/;S>5 ]O-/+*F"79&1?+!.<??R>_ Z<UD:KK6JP6NOVD%WMDTVX
MMA%<M&"623:2C 8&1D\C!P5[\T =I17+^7J@\5OI+:W=-:SV)N-WEQ"2-P^W
M"D)@*0W<$\=>M4+?4=7O8?#.[598GGOKJUN'CC3]Z(TG 8@C&?W8/ID]#@4
M=O17)+J.K:??ZKI=SJJ31VT5O<1WT\2AXTD=E9"$4*SX0[?E&2PR#5:XUG6(
M] U\PWKI-8ZA'##+<PJ7$;)"Q!"X&?WAP?3&>: .VHKFT_M&#Q1)I?\ :]S+
M%=:>\ZO(D9:&175<KA0,8;H0>E+X=N]0U.VL9+F^E\^VC>._B"1@/,K[#_#D
M#*N1C'&* .CHKG?$4VJ#7-%LK'4!9PWDDT<A6(,^1$S @GCC'0CKSSC%5X[K
M6;^^U33;.^03Z8L4*R2E5+NT2OYKJ$.02V,# ^4].H .JHKF+>ZU+7-7UBQ3
M4WTXZ>88X_LZ(VXM&',AWJ<@DX XX4]^EC3[J]U?4-8B:[DM4L;@6T*QJN?]
M6C^8<@YR7X'3 H WZAN[C[):2W'DR3>4A;RX\;FQZ9('ZUQD&M:WKD7AMHKY
M; :E'<+.8H0QW(IPZ[LC!QD @]>]:4%U?ZH-;M?[0>'^S2+52(TW2MY2N9'!
M'0EN ,< ^O !NZ;?Q:II=IJ,"NL5W DR*XPP5E# 'WP:LL2%) +$#H.IKB/#
MNHWMQ8Z#H]K(L070+>Z/[P(TA("\$JW"XYX_B'T.I8WVJ7.M'1;N\2*6TL8Y
MIIK=%S.[LZY&X$!1LYXZMVQ@@&MH^JQ:UIXO889H5\V2(QS !E9'9&!P2.JG
MO276KVUM?)IZA[B\=/,%O",L$SC<Q. HSW)&>V:S/ P=?#KI(_F.NH7H9\8W
M'[3)DX[51\+R>3XX\56MX=M]+/%/%NZR6^P!-OJ <@^A- '10ZJDFH?8)+6X
M@N#$9D611AU! .&4E<@L."<\U#9:]!J$][!!:W)EL7\N=2JC:^ VT<\\$'CB
MJTFN7:>,(=".GP%9+5[E;C[2<A%=5(V[.OS#OCWJKX6X\0^*QV_M%#_Y CH
MU]&UFUUVQ6^LEE^SN2$>1-NXABIP.O!!ZU4D\7:1# \\SW,<27)MMYM)2K2!
M]F%(4@Y;@8JC\-R/^$#L6R,;YSG_ +;/3/'3Q2^%;26 J8FO[-HRO0@S)@B@
M#2NO%5A:17LLD-YY=A"L]PS6S)M0[N0' +?</0&M2UN!=VT=PL;HLBAE#XS@
M].AK&\<JO_"#:\V "=/F!/KA#6MIQ)TRU)Z^2G_H(H LT444 %%%% !1110
M4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1
M110 4444 %%%% !1110 4444 %%%% !1110 4444 17-M#>6LMK<1K+#,ACD
M1NC*1@@_A6?_ ,(UHP)86*;F@^SLVYMS1_W2<Y/4CGL2.AK5HH S_P"P]._T
M3]P?]"_X]OWC?NN,<<^AQ]..E,/AW2C9RV9M<V\TAEDC,C8=R<ECSR2>3ZGF
MKLERL=W#;F.4M,K$.L9*+MQ]YN@)SQGK@^E0:KJEOHUB;RY65H@ZH?+3<06(
M ^@R>M #;C0],N[B*XN;..::*/RU=\DE?0_WAWYSSS42^&=$18E738%6&$P(
MH7"^6>JD="..]:;':I."<#/ S4=K<+=VL5PL<L8E0,$E0HZY[%3R#[4 4[70
M=,L98);:U$3V\9BB(=OD0\E>O0D D>H%6+W3[744C2ZB\P12"2,[BI1@",@C
MD'!(_$U9HH RI?#.BSF4R:?$WG2+*_7[ZXPPYX/RCD>E22Z!I<\,\,UH)([E
MU>9&=B'88P2,]L#\AZ"M&B@",PQM 8'0/&5V%7^8,,8P<]?QK.MO#6C6=M);
M6]BD<4BE"H9N%/51SPOL.*N:C?1:9IUQ?SK(T5O&9'$:[FV@9.!WJ6"9+FWC
MGCSLE0.N>N",T 4)])L82;V.U9KF&W,,;*S%MF/NCGI[50\(Z/':^&](2ZL7
MAN[.UCC9)23Y<@0*Q49(&>>1UR:Z*B@#-_X1_21J3ZB+"(7,C!G<9 =AT8KT
M)'J1F@^']+:WNK=K7,-XQ:X0R,1*3P2W/.1U]:TJ* *)T:P,HE,!+;%0YD8A
MPIRNX9PV,\9S4<OA_29]2;49+")KIP [\CS,=-PZ-CMG-:5% %>VL+2SFN)K
M>!(Y+J3S)F4<NV ,G\ *9?:99ZCY9NH0[PMNBD5BKQGN58$$?@:MT4 5X+&W
MMXW2-7S(,.[2,SM]6)W?3GBJ@\.Z4+**R%KBWAD\V.,2-A'SD$<\$'GZ\UIT
M4 9EQX=TFYGN)I;-2]VFRXPS*)AC'S '#''&3S23^&](N?LQFLE=K1=D+EFW
MHO\ =W9R1[$XK4HH I#1[!;R.[2W"311^7&R,5V)Q\H . O XZ<5/=VEO?VD
MMI=1+-!*I5T8<,*FJ&XN5MO*W1ROYL@C'EQE]I/<XZ#U)XH KQZ-81W45TL3
M>?"A1)#*Y8*2"1DGG) SGK@>E12>'-(FL'L9;))+=Y3,4=F;$A.2X).0V23D
M<Y)K3HH KV=E;6$'DVL0C3.3CDD^I)Y)]S27&GVMS,D\L7[Y!M65&*.!W&X8
M./;I5FB@"C'HNG1PSQ?95=;E@\QD8NSL,8)9B3D8&.>,<4X:59!9@82QG39(
M[NS.R_W2Q.<<GC/<^M7** ,\:#I@6T46H"V7_'L S8AXQ\O/'!Q].*R/%6AQ
M-H-^EAI[SW-]-"\RH<F7;(I).3CA5Q] !6QK&K0Z)8&^N(II(E=5;RE!*[B
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
M*]=NXDG&>V:BM]"TZTDN)+>!XI+DYF=)G#2'U)SDGCKUK0HH RT\-Z3'I_\
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
M]S;-/:ZC$FPR*K*K+(G0-\ZGC@UJ7/AW2;QKIY[-6>[>.29MS!F=!A&!!RI
M'!&*E&C6'DSQ/"THN8C#*997D9DP1MW,2<<GOWH N."R,%;:2.&QG'O7(Z!=
M:BOA&RO;C5RQN9?WLLJ*74%VR(P%^9V;  .>O XP>KM[>*TMHK:! D4*!$4?
MPJ!@#\JS_P#A&M)%NEN+9UBCF$\:K/(/+<$G*8;Y?O'@8'- &-#?ZW=^&;FZ
MM[TB[L+V>/$D<8-PD<I&QL A6*C *C&>U6K;5)[G0O[2CU/:D]P WGQJ'M5W
M8,04+S*#\N#GYO7H="/PYI,.[RK9H@\_GE8YG4>9G.< XZ\_7FDD\-:3+YQ:
MV;,\ZW#D3."95Z."&X(P.1Z"@#F+^_OK[PZR33,\]OXAMK>*2:-0V!<1E=P7
M R,]L=*VC>W]IXBET>YN!=V]Q827,4A0+)$595*MMP"#O!!P#P>M73X8T8Q3
MQ&Q79<3+/(H=@#(I!#=>#D \=^:G31[*/SB(W+SJ$DD:9V<J.B[R<@<G@'N?
M6@#E?#>H7TVG:%HUG(L)BT"UN6)<*S[EV@#*,,#;SQ_$OX]=9?;ETR(7I@DO
M5CQ(8R1&S^W&0#]*I2>%M&EAM(S:%19+LMF29T>)>FT,&#;>!QG'%:4=M#%;
MBWCB58@NW8!QB@#F]*U74)]=CLS?K<I<:<\_F>4/*6575<QXPS)\QZDYP,'K
M5*PU/6_['\/ZQ<:JTKWMS'#<6PAC6)E<D9'&X$<'.[''2N@M_#&CVC6[06K1
MO:Q&&%Q,^Y(SCY<[LX&!@=L<8IP\.:4ME;V2P2+;VL@DA03R (PZ$?-V[>E
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
M7&J>&=/O;LJ;B:$&0JNT,W0G';.,UK4 8I\6Z.D(FDEN$C:X-LCFUEVO)N*
M*0N&R1QCK1-XKTV"Y6W9+O>9H(3NM73#2L50G<!QD'FL_P =1JFF:.L:JJIK
M-EM4< ?O1P*L^,8R=.LVBV+*VIV0#LN>DZXSZ@$],T =#17)WNMZAH$FO+/<
M'4$L=.2^@,D:JREC*"AV  KF,'.,\GK6KIJ:P+J.2YNX+BS>#DAP6+\$%<(H
M"XW=2>WOD NW^I6NFQ))=2;?,<1QHJEFD8]%51R3]/0FHTU1#>Q6DUM<V\DP
M)B,B J^!DC<I(!QV.#P?2L'4MX^*.BM<_P#'L;"X%MGIY^5W?CLS^&:Z'5+Y
M=-TRXO"GF-#$\B1YP9"JEMH]\ T 6Z*Y:XU;4=/\.Z9K3W7VE[B2V$T 10C"
M9E4A,#.1OR,D\#G/6J-_J&NQZ5XGU&/6#&^CW$C01I;IL=$A238^X$D<D9!!
MY)ST  .WHKG5GU&U\2V5I)J4D\.HV<TA1HD'DR(8\%,#.,.>&+=!SUK$BU/Q
M!:^";?Q'_:WVJ2$[IK62! LZ^85(! W!L=,'&<#% '>T5S&HZQ?VFK6Z"Y3#
MZA';-;1IN41.."[8R'S\P /3'!ZU3O+S7'M?%-PNL&W;2)F-LD-NFTJMNDH5
M]P8D?-@X(/7GH  =G5+^U;7^VO[(/FK<F SKNB8(Z@@'#8P2"1D=>16--J=]
M'JT(DNG2VU#3C);HBI\LZXRH)4DDA@0#G[K5H75G>6VE3W%M*EQJZVICBN+C
M 4OCC@<*"V.@YP,YQ0!K45B>'-2DOA=QW#WB7,+J)+:\C19(,CLR#:ZG!(89
M[_007,FJ7?BVXTM-3:TM%L$G0V\*>8&+LIRSA@?N^G_UP#HJ*X[3_$&J7MMH
M-F9HQ=WT=PTL_">9Y+!<#Y6 +9W=.@.,58NKC7=*ETZXU&_3[(]RUO=>2JG:
M')$+EB@YR55L #)!P!D4 =317)Z-J.H:BKV+:I+]LMM0D26011C? /F5@-O1
ME9!D=R3TXKK* "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ****
M "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH
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
MQ+O9+)-&I5&EG>38#UP&) SZBKM% %&+1M/@,/EVX"P-NAC+L4B/JJDX7 )
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
M#@]3U'>K-Y9VVH6<MG=PI-!,I62-QD,#0!S>H?:++QGI$US<FYC6QO&P(@K
MCRB<8['L#R/4YJQH=WKNJ6NFZH9;0VMY#YLR;\[ RY4( @.0< Y;D9]JOP>'
M=.M[FUN4%RTMHK+"TMY+(5#8R/F8Y'RC@^E)8>&M*TR1GLK>2)2Q81">0Q(3
MU*1EMJ'D_= ZT <SI.H:AI'A26Y:[CFEGU::VC\R,*D;O>.A<GDXY)Q]!6AK
M]WXDT?P]JMZMQ:_N8T>W=_WC@YPX.%4#M@X/.<@\5KKX;TE=-N---J9+2Z9F
MEAEE=PQ8[B?F)P2QSD=^::?#&E/ITFGR13S6\H"N);N5V91T7>S%L>V<4 9F
MK2^(M.ETJ%-5MI#?:BT,C&TQL0Q.P ^;D*4)YY/'/7*I=ZW<W]YI-M>PO<:=
M;1!YG C,TK@G<5VMA>!P,<[N>E;-SHMC>"V^T+,YM)/,A/VF0%6P1G(;).&(
MY]:CO/#VF7U]'?312K=1IY8FAN)(F9,YVL48;AGL<T 5+34=0U'5[S33+%:O
MI\$)F:-=^^5U+'&[^ 8],GU&*;X$W_\ "&Z>)""X#ABHP"=[=*O2Z!ILM['>
M"%X9XXA$'MYGAR@Z*=A&X#L#G%3Z9IEII%DME9(T<"$E5:1GQDY/+$GKVH Y
MW2KK5A9ZU>2:G"YAOIHU^T*$CB564;B?15!.._KSFI;.\U?4(M<L[74#'/9R
MJ+6XN8%!(:)7PZX'&2>< XQ^.G-X;TJ>.\BDMY/+O7WSHMQ(JLV0=P ;"G*@
MY&#2'PSI1>Y?R9@UV%$Y6ZE'F8&!G#=<  GJ<#.: ,:/Q/<+X9U+76E.^V01
M_8IU4>1+A1ER "020V1QM.>_%ZZ_X2BUM;IX&MKH^0/)5I!O,NX9Q\BJ 5)Q
MDGD#L36@=!TQ[FYN'MS(]W"(;@22.RRH!@!E)P>">W<^M16_AC2K:S:TCBG,
M14* ]W*YC ((",S$H 0#\I'0>E ">'=2_M&UN&::Y>2*<H\5U"(IH#M4[&
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
MV'J"I.#G ZCKS4-AX;TK35*6L$@BP56!YY)(D!ZA49BJCD] ."10!05_$_V
MW4$UC<&2R=T#R?*9BH,>W"#"9R#EB<8YZYL>'-3?4/M4<\EVMQ"RB2VO(526
M D>JC:RG!(89[\U):^%M'L[62TAMY1;R(T?E/<RNL:L,$("QV<?W<5>M;"WL
MV=XE<NX :21V=V S@%F).!D_F?6@#'N=0U2_US4=-TR6*$V,,9^=@"SN&()R
MC?*, <8.<\U5UG4=9TF>V>YO(X[>\B$3M&@9;.<X&\Y&6BR<9.,$C/WN-F^\
M/Z;J%_'?SQ2+=1IY8F@N)(6*9SM8HPW#/8Y%+-H.FSK.LD+E+B#[/)&)G"&/
M^Z%!P!],=: ,NY?5V\61:9!JQB@;36E)-NC-O$BC=V'?TQU^M4;;Q'J[21Z/
M.T!OO[4DLC=*-B2(D7F[@"& 8@A<<C.ZK,FFQ1>,K&-(+T6L&FR0+*AFPK&1
M"%,@/H#U../I6O<^'=)O-.6PFM 8%D\Y=KLKK)G.\.#N#9)^;.>3S0!E7&HZ
MW9WNFZ3=2P)+J-W(B7,9WE(4C+X.55?,)! XQCG!-)K:ZQ9)I-N-99VN-46-
MI?LZAF0JS!3C@X*\D 9]/75G\.:7<V"V<\$DB)()5D>>0RJXZ,)-V_<.F<YQ
MQ3GT'3I;2.VDCE=8YA.KM<2&02#@-YF[=G''7IQTH RA?:WJ-WJEKIL]NLNF
MND"^<VT22>6KEW 1CM.\#"D=#[8>;^^UE-<B@FCM5T]FME79OWOY2NS-G'R_
M.  ,'@G/.!?F\-:5/?B^:&5;C8L;O'<R)YJCH) K /\ \"S3I?#VF2WLMYY,
MD4TR".4PSR1"0 8&Y58!L#@$CI0!%X2);P9HA'!.G0?^BUK T[6-6MO#MK/)
M>_:9K_59+-'>( 0YN)%+^_RKP.F<"NNT^PM]+L(+&T5DM[=!'&K.SE5' &6)
M-5H] TR.WGMUMV\F>0RM&97*ARV\LH)PAW?-E<<\T 5FU"YL?%%GI4LK7,-]
M;2RJ[* \31E,YV@#:0_IP1[\1>([S5;?4]%MM/NH8([VY>"4O%O;_4R,".<<
M%<XQR0.<9!UH-.M;>Y:Y1&:=D"&61V=MO7 +$X&><"F7NDV>HSV\URDC26KE
MX2LSIL;!&?E(YP2/QH Q$O-<N[Z^TNTO(&N-,AB1I9,1^=*R;M[+M;"=.!C^
M+GIATVHZE8ZW):7UU\MU8^=:+$JX\Y3B2,$KEOO)MSR03G.*T[OP]IE[?I?R
MPRK=*GE^;#<21,Z==K;&&X>QS5F?3+*X:T:6V1C92>9;\8$;;2O'X$_Y% &*
MUYJLFLG1(;M#-;6*7$TS%4:5G9E&T;&&T;#VS\R\]<U[JX\3OK6FZ6=0L[22
MYTV:29X8#(%E1H@67<1D?/P"!C)SGC&WJ&@Z=JEU#=W,4@N8 5CG@GDAD"GJ
MNY&!(]CQ2G0]/-Y!=B%UFMD,<3),ZA5)!(P#CDJ,^N* ,BWUB_A\0&TU1YX
MTLHMPL*M!=1A20%<?,L@"DE6/9L#T?H-]K>KVFF:N)+4VEXGG31>9G8C*2H4
M!,[@=H.6(^][8UHM(LH;CSTC<L)6F4-*S*CMG<RJ3@$[CT]3ZFH;'PWI6FSM
M-9V[Q9<N(A/(8E8]2L9;8IY/( H U**** "BBB@ HHHH **** "BBB@ HHHH
M **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@
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
MO^8&'_:':0X].>N>+OC*YO+3PU/-8W MYO,B3?MW$!I%4XY&#@]?_P!=6O[
MT_\ T(JDRM8(T=NRW$@94;&5)W9(^5>N>@JSJ%A;:I8RV5W&7AE # ,5/!R"
M".000#D4 8TMUJ\'B..P:]@=7TR>9?\ 1\#S5D0!B-V2,-C ([_AFV>J^('T
MWPO?/J$#_P!LK%'-&;8 (7@:3>"#URIXZ<]!BNA;P_I[W:W;"Y:=86A$ANY<
M[&P6'WNY _(>E,'AC25M]/MUAF$6FL&M%%U*!$0"H_BYP"1SG@XH Q+_ %C6
M+/2?$,*WJ/<Z9+'Y5RT(W,CJC8(&!N&XC.,=.*ORW.L7OBC4-*@OXK.""S@F
MB=( [Y=I <[CCJG3'3TJW<>&-)NA>B:&=AJ#*UR!=2CS"!@=&XX Z8Z"ITT2
MQCOI;Y1.+B:%8'D^TR'*+G QNQQN//7DT 8FG>(KR^M-"-T\=JM_:223W*@
M>:FT!%W9 SEFY[(:U/#-YJ6HZ2EYJ)AW2,WEB.(IE0Q 8Y8YW !ATX-9-UX>
M@MK^QM+7^T+&TLX&-O<6SO.=S'YD(<.   I!([\$8(.UHB7\<5PEY<S748E_
MT>6XC5)63:/O!0!][=C@''YD YW7M1O=:\#^)KF"2&"""*\MUC:,LS+&&5R3
MD8)(;'IQG-:EM=ZC)XAGT]+F-81I<,T ,.?+=F926YRWW1QQ_6K-QX6TJX^W
M!HYT34587,45Q(B2%AAF*@XR1U..>]31:!80W9NT%QY[0"W+FZE),8Y ^]ZD
M\]>30!QL8U+_ (5!ITGVZ/+0V9!,!R%WIQ][D].?KQSQT<U_J;:T-%BF0S0V
M8N995 0ON=E4*&#  ;3GKU7I5O\ X1C2?[$31?(E^P1[=L7VF7Y=I!4!MV<
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
M0D ./=<BM"6*.>%X95#QR*593T(/!%8-Y;/JNLVNI6X ATI)O(?_ )[S.NS
M_P!D#/U)'IR :Z:E:23B%9<LSE%.TA689RH;&"1@\ ]CZ&E.HV8U)=-^T)]L
M:(S"'/S; 0"WL,D5QL;2CX8^&W@+&X,FG,#W+F6/=_-L_C6Q/%'%\1-/,<:H
M7TR[9MHQN/F6_)]Z -6YUK3[262.>X"F$*92$8K$#TWL!A?Q(XYJ]7(:K:RZ
M+IWBB26(3VVIAYHV#9;S&B6(1%>^650N,_>QQWZ328)K71[*VN&W30V\:2'.
M<L% /ZT 6ZA2[A>\DM%8^=$BNXV$ !LXYQ@_=/2L/Q-K%[I,T;#?;V)A<M>K
M!YRPRY&WS%'(CQG)'YCO'?:[J-CJ.NF-4O(K/2HKRU@B3!9B9@03D[L^6.F.
M.W<@'345SBZIJKZPMG93V=Y"UB+II60@!B<!<J> W4<$X4]:I:=K>M26'AK5
M+FYMI(M7,:36Z0%=N^)G#!MQY!7Z8- '41WUM+'/(LF$MG9)6=2H4KR>N./?
MI5:TURRO+TV:+=1S8) FM)8@P&,D,R@'J.]<OK=_JEWX.\2B2YA\RVO6@1A
M<>4 GRXW9S\QY)/?Z#9N=0U.PUW3K:ZN8)8);6YEF$-N4+-'L(QEFXPW3U'7
ML #H**Y[1+[6=6TNPUL36WD74)F-DL7.UERBB3=PPXR2,'G@5'INM:A/K3V#
MRVUPSV!N!L1E1)0VTJ'YW+DXR.>#]  =+17':=KNMRZ9X=U>YN;9XM4DCCFM
MT@*[=ZD@AMQ.00.V,?G6EH%UJMWJVM"ZNH'MK:_,,<:P$,%\J-AAMW^T<\=<
M].@ -^BL+4+W53XIM=)M);>WMY[&:<RM&9'W(\:\#( XD]ZS[/Q)J,D-A82&
M%KZYU*XL6N!&0FV'>2^W/WBJ<#.,G/08H ZVBN8U37[_ $NYU2Q017$UOIC7
M]M)(-H(4D,KX]P"",9SCMDNMM1U>#5M&CN[J">'4X7W1I!L,;J@<$')SW!S^
MG2@#?NKJ*RMI+F<L(HQN8JA8@>N ":AM=4M+W35U&V>22V=-Z.L+Y=2,@A<9
M((]!5.\U*#4-(U&.".[5DMI,^=:2P@_*>A=0#^%,\%D'P/H)!_YAMO\ ^BUH
M U+2[AOK2.ZMV+0RJ&1F4KD'H<$ U6BUS3YY[>&.5R;G(@<PN$EP"WRN1M/
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
M%)ST!(&#CD ZJBH[>9;FVBG0$+*@< C!P1FI* "BBB@ HHHH **** "BBB@
MHHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "B
MBB@ HHHH **** "BBB@ HHHH **** (;JV2\M9;:4N$E0HQ1RC8/!P1R/J*R
M[7PIIMI/;RK+J$IMF#1)/J$TJ*0" =K,1P#Z5L22+%&TCG"H"S'T IMO/%=6
MT5Q V^*5 Z-C&5(R#0!6BTFUAD0JK;(I#)%$3\D;G.2!^)]AGC%)+I%K+K$6
MK,9A=0Q&)")6"A"02-O0Y*@_@*O44 59=/@GNX[F<-*T1S$K-\D9_O!>F?<\
MCM55-/NAXF?41=3K:FV\IK=I2T;/N!#*O1< ,">^[VYU** *-YI4%[,97DF3
M?$89%1\+(A[$?B>1@C)YK,UG1((;6^O+2WN9;BXMTM72*9QB$-CY5!_@#,P
MY/([UT-% '+V&G7MI/:VUKJM]=6CY6Y2XM(X=B;#AE98T(;=M&.3@GZUHIX9
MTZ.RL+)/M"P::RM;*)V^0@8'.>< D<^M:]% &._A?39;&]LI/M#07\OFW"FX
M?+MQDYSD=!P,=*L-HUM)?VM\[SM/:*R1,9FP V-P(Z'.!U]!6A10!D67AG3]
M/#1VS74=N2Q6V%P_E1[LYVKG@<GCH.V*;:>%=-L9+66W:Z22UM_LT;?:7/[O
MC"GG!Q@8K9HH QT\,:='I]C8I]H6#3W#VZB=OD(Z<YR<>_K5JUTF"SU"ZO()
M)E-W)YLL6[Y"^T+NQC.<*!UQQTJ]4-Q=P6@B,\FSS9%B3@G+'H.* ()=)MIM
M6AU-C*+F&)HD(D(4*Q!88Z<E5_(57B\.:=#;M"JRD&Y-TKM*Q9)222ZGL3D^
MW)'0UJT4 9LNA64\5VLXDD>]B\F>4OAW3GY<C&T<G@8ZD]31_85GYMA+NG+:
M<"+?,S?*",'/KQQS6E10 A (P1D&LNV\.V=G#]FMI;F*SYQ:K,?+4'L.X'L#
MCVK5HH HW6D6EY<++,LAVP/;^6LC*A1\9!4'';KVJ*UT&UM4MXS-<SQ6A!MX
MYY2XC(& ?5L#IN)Q6G10!6LK"&P2583*1-,\S>9(7^9CDXST'MT%5GT.V>^N
MKM9KB-KQ%6=(Y,*^T$ ^H.#C@BM*B@#)M/#6G64EE)!]H5K" V]OF=SLC.,K
M@GG[J]<]!3#X5TPZ;/IQ^T&WN)S<2*;A\LY;<3G.1EN<5LT4 9$_AG3[DWYF
M-PW]I0B&Z'GMB1 " .O'!(XQUI;S1X5$5]&EQ<75A XMH_M!7?D?=)Z<X R:
MUJ* ..TO3;[3K6U.FZG?N[/'YEK<V:A-NX;@7*!QA<X+.3QW[])JFE6FL6JV
M]VC$)(LL;HY1XW7HRL.015VB@#'?PS8R3W$TLUW))<VPM9F:X;YXP6./;[S=
M,=:D'AZQ$MA*&N-^G(8[8^>WRJ1@YY^;@ <YZ5J44 9T6AV45W>W.V1VO^+E
M9)"R2#;M VG@<<<5%I_ANRTR#R+::\$2KLB1[IW$*^B DXXX'<#@5;O]3M=,
MB\RY:3!!(6*%Y7('4[4!.!D9..XJS&ZRQK(N=K@$9!!P?8\B@#)_X1?2CH2:
M(T4C64041*96W1;<;2K9R",#!S3I/#=E/8BTGEO)D\Q)"\ERY<LC!DYSV(!P
M.,UK44 9[:)9/J,E_()))I8/L[AW)1H^?E*].Y_.H+/PSIUE:M9J;B:T,9B6
MVGG:2-(R,%0">F..<X' K7JK+J5I#J4&G22[;JX1GBCVGY@OWN<8XR._>@"C
M:^&;"TL9+)9;R2!HS$JRW<C^4AXPA)^7'8]1ZU>M+"*TDDE#/+-*%6260@LP
M7.T< #C)_,^M6J* *>H:59ZI]G^UQE_LTPFC(.,, 1^(()!'<&FVVC6%K;W=
MO';J8KV222=&Y#E_O<>AR>/<U8M;N"]A,UO)O0.R9P1RI*D<^X-1RZE:0ZE!
MITDNVZN$9XDVGY@OWN<8XR/SH IV'ARRTVW^SV\UX8@NR-)+IW$2^BY)QQQZ
M@<4A\+Z6="31'CE:RB"")3*VZ+;C:5;.01@8.:UZAN;N"T$9GDV"618DX)RS
M' '% $=AI\>GQ%$EN)F;&Z2XF:1CCIR3_*JEQX>LI]3?45>YM[B952<V\[1B
M8#IN /)'0'KCO6K10!0@T:UMM4FU*(S">=523]X2K*N=HV].-Q_.H+#PUI^F
M3M):&XCB,AD%M]H?R48G)(3.!SSCIGD"M:B@#%LO"FF6$EE)!]I#6"ND):Y<
MX1B"5//(RH./:C_A%-,;2I-+E\Z2T:3S(XVD(,#;BX*,,$$,<@YR*VJ* ,B7
MPS87%DMM</=3,DBRI<27+F5'7.UE?.1C)Z<<G/4U-9Z+;66HS:A'+</<3Q)%
M(TDI8,$+%>#W^9NGK6C10!3U/2[36+/[+>1EX_,2088J0RL&!!'(Y'\Z2VTJ
MTL[F]N+:,Q2WS!YF4]2%"C Z#@?G5VJ=_JEIIK6RW<CH;J98(B(V8%V. "0"
M!GWQ0!47PSIZ:;%IZ&<6\,XN(U\XDAPV\'/7[W..E*_AK3WU.74%-S#+<8^T
M+#<.B3D# +*#@G'&?3K6A=W<%C:R75S)Y<,0R[8)P/PJ:@#,_L"RWZ@^9P=1
M %QB9OFP HQ_=^48XJY96D5A90VD&[RH4")O8L0!T&3UJ>J]]?6NF64MY>SK
M!;PKN>1^BB@#.'A>P^P26!EN3://YXA\W 1O,\S@C!QOYY)_*K+Z+9RWK7<P
M>5WM_LSJ[95X^ZE>AZU>1U=%=3E6&0?44Z@#,TK0+/1U5+62Z:.,;8HYKEY%
MB7T4,>/3V'%6+_3;74HXUN8R3"XDB=6*O&XZ,I'(/)^H)!XHU'5++2;?[3?S
MBWAR 9'!V@DX&3VR2!3?[6LA+%&\CQM,^R/S(G3<W7 )'7B@!HTK=>07-Q>W
M5P;?)CC=E" D$$D*HR<$]<U&GA^P2&&VV.UI XDAMF;,:,#E<#T!Y .0,# &
M!C3HH RI/#FGR+J*MY^-4_X^L3M\_P H7CGY?E '&.*=_8=C'+8W!,Y;3498
M#YK':",'(_BXXYS6G10!R?A+2H+GP\D5Y#=@)=32-;7 D12?.9E.UL9&,''3
MVS6G<^%=,NI;B23[2&N+E+IMEPZ[95"@,,'@X51^%;-% &9_PC]D&OV#3YU$
M 7'[YOFP HQSQ\HQQ56?3+61].T9;:Y:*Q9+A)FW%4"[@%WGJ>Q']TG-;M%
M#77>C(21N&,J<$?C60OA;3$L;*R3[0L%A()+=1</\C#ISG)QD]?6K8UBQ;5#
MI@E;[8J;S%Y39"YQNZ8VY&,]*E%_;&_-B';[0J;ROEMC;ZYQC'XT 4;KPSIU
MX=0,WGDZBJ+.1.PR%.5QSQCV_&F2^%-)G^V^='/(+X)YX>X<[F7&UQSPPVK@
MCD8&*VJAM[N"Z:989-Y@D,4G!&U@ <?D10!0B\.V:7T5[)+=3S10/;YFF+AH
MV()!!X/W1^5&E>';'1@J6CW7E1Y$4,ER[QPCT52< >GIVK5HH S]4T6SU9K>
M2?S8Y[5R\$\,A22,D8.".Q'!!X--.@VC36<[27+2V;,T3M.Q.YAAB23SD'&#
MQCIBM*B@#(E\,Z?,+C>UQFXNDO'(F(/FIMVL/3 11CIP*8WA/2S'/'_I(CGN
M4NG47+X\U2&##GCYE!]R*T)=2LX=2@TZ2;;=7",\4>T_,%^]SC'&1W[U:H P
M-=T>(07FH0Q75Q=S6ZVSB.9P?*W<D $9*[F; Y/3O5?3M.N[2>UM[?4;N^LI
M-RW4-Y91QJ$V'D%8TYW;1@YX)^HZ>B@#'LO"^FV%J]I";IK8HT:0274C)$A&
M"%!/'!P/3MBKMIIT5I*TV^2:9HUC,LK;F**20,_5CSU.><TEOJEI=:C=:?%(
MYN;-4:9&C9<!\[2"1A@=IY&>E7* *-SI,%SJ=OJ/F317$$;1!HVQO1BI*G(Z
M94=,'WJ)_#]@\,ML4?[)-(9)+4-^[9B<GCT)Y*YP><CDUIT4 )2T44 %%%%
M!1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %
M%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 07KS1V,\EN469
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
MQ[$+,[$DDNS'+,2>223G-4;KPW8W;:D7DN%35$VW,:2[58[ F[U!V@#TXZ4
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
M%:W5M]HM6<@2^9PP#CGY>N>/3J:UI/#]E)#<VV95M+MV>>V5L)(6Y;MD!CU
M(!R?4YRH(%?QYJ2QRW%LK:?;1HT2X1BK3%E!(*Y *].1GCO0 S3_ !7>ZE]B
MLUM%BOY/M/VD)AE0P2"-MFXKG+,".>!GBK5UJFMV^GAKB.ULI0DI\QQYN]E)
MV*L:MG)4%FY.,$<]19N?"VF3P6<<0FM'L69K>:WE*R(6^_\ -SNW=\YR>3S3
MY?#EE-/!-)+=,\,4D))G8^8KD%@QZ_PCICICIQ0!G#7=5O9] CM4M;=-5L6N
M9)) TAC8*AVA<CCY^N?Y<Z'AW4+N^MKN.^:)[BSNY+9I(D*+(%P0VTDX.",C
M)YI+3PS:6;:<T5Q=$Z;&8H-\N["' (.1SPH'MCBK6FZ5#I9N3#)*YNIC-)YC
M Y<]2..,X''3B@#&C_Y*G/[Z)'_Z/>MB3>-6=H55I/LIP&; )W?*"<' Z]C2
M7NC6]Y>Q7ZR2VUY"AC2X@8!MA.2I!!##(!P0>>E30V(A60^?,\TH >=R-YQG
M&.,#&3P!CDT <S8:_K<NG>']5NI+,PZI+'%+;1PL"F]20P?=V('&.A_&I3XD
MU"W-Y#*(9;AM:73K4A"$16C1P6&<G +'KR>..VBGA>RCTZQL$GN1!I\BR6X\
MP94K]W)QDXYZ^M2+X;L0ETKM-+]JN%N7+R<K*N,.I&-I&U>G''UH @NM8O=/
MUE=,=8;AKFSEN+9^8_GC*[E?KP=XP0.QZUGZ?KFM/:^&M1NY;-X-8$:2PQPL
MK(SPM(&#%CGE<8QW]N=W^QX#/)<R2RR7,D/D>>Q&Y$)R0H P,GD\<X'H,5X_
M#5G'9Z;:)/<B+2V5K4;Q\NU2JY..<*2.?6@!/%>IWNCZ#)?6$<,DJ21J1*Q
MVLX4XXZ\_P">E5FU/5X-2M](E,$]W+'+<O);Q;0L2LJJH5WY.7Y.>W3GC5U7
M2X-8L6LKEY!"S*S"-L$X((Y^H!_"J^H>'[74GM9II[F.[L]WDW4,FR0!OO D
M#!!P,@CL* ,J26^D\1^'GU"W6.Z$5YNCC8$'&P CGC(P<9.,XR>M3:?K>HSZ
M]'IL[6NZ>QEG*Q(S"WD1T4H6SA\>9@XQRIZ9XT3H5L;RUNS/<F6T5UC+2[L[
M\;LD\G.!],<8JO8>%-/TZ:QF@ENR]C"T$1:<G,;%3M([C*J?PYS0!D:5K^K)
MX9TNZNYH+JZU6X$,.V$IL8[V8G+X;Y4.!\O85H2ZSJEG/;V5Q:QK/?7?D6DC
MD ;!&79G56/(VL  ><CIS4Y\):8VD_V6QN#;)()(!YI#6[!BRE&'(()///IT
MJ2?PW9W5DEO<3W<LD4JS1W+3GS8W7(#*>@X)& ,')R#F@"CI N5\=ZXMT\3M
M]BLBK1(5!7=/U!)YSGO4VJ76JKXMTNQL[N"&WGM;B5UD@+Y9&B'9QVDX]/?M
M=L]%AL]4FU$7-S+<3PI#*97!#A"Q4X X/S'I@<U)>:3!>WUK>M)+%/:AU1XG
MQE7V[E/L=J^_'!H RX-:U#4-+U+4[00)':33QPPR(29/*)5MS9XR5.,#@8SG
MI6QI=_'JNE6FHQ*RQW<"3(K=0&4, ?SJM)H-G(EU$&ECM[QBUQ!&^$D+?>/J
M,]]I&>>Y-:,<:11K'&BHB *JJ,  = !0 ZBBB@ HHHH **** "BBB@ HHHH
M**** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ H
MHHH **** "BBB@ HHHH **** "BBB@"*XGCM;>2XF8K'$I=R 3@#J<"DM+J"
M^LX+RV?S(+B-98WP1N5AD'!YZ&DO/^/&?_KFW\JY?PQJD[V'A_1;;9'C0X+J
M:9UW<;55549ZYR23TP..> #KZ*Y&\\3ZG;0WS*EJ/['ODBOV,3,#;LJMYB ,
M,%5?)!ST-3KK>JO?ZQIRSV/VJU>'[)_H[D.D@&TM\_/.X''0#/M0!T]%9?B"
MYO+#PMJ-W;2QK=6UG)*KF,E=RJ3]W/MZ\>]5!=:O!IUFLMW:;IH\FZ,#'YMH
MVH(]Y9V/S'(/13Q0!OT5R;^)]23PSI'B1HK<6,\$<E_&(V:2(.OWD^89 )&1
MUQS71:<UT]A%)>36\TKJ&+VZ%4.?3+'/USS0!:HKG+?7+MO$K:9>%;-C+((8
MI8&VW,07*M'(#@MW*]0,\<9.6FN^(+7P1?:RT]G=317%PBJ86CVA;ATSG<<\
M#@8&.,DXY .WHK %_K-GK&G65])92K?239\F)U**J;E&2QR>Q..?:J;^)[^*
M-X'2W:ZDUG^S8) C! -@?>R[B3@!N 1DXZ4 =717,:[/X@T_3X2-0L_,EU.V
MB21+5A^Z>5%((W]<DYP>1Z$Y%V&_U'_A()M)EDM6V6*3K*L++AR[+R-YX^7U
M_&@#:HKCU\2:W<Z?X=FMX[)7U2>2&9F#;5(CD92%SG'R9/S9XQWR+2ZMK<T]
M[8VT4,UWIT4:2LJ )+.R!^C."J8(]3R?3D Z:BN:NM>OK;78;.\1=/BF:$02
M21&2*<M]]/,!PKYX4'&<=\X'2T 07EY;:?;-=7D\=O A :21MJKD@#)/3DBJ
MQU[1E)4ZM8@@9(-RG _.K=Q;072*EQ$LBJZN%89&Y3D'\" ?J*YRRX^*&JC^
M]I5L?_(DE &U8ZSINIS/%97D5PZ1I*P0YPCY*G\<&KU<G';7=OXQU"VT=;6
M1:39JAF5F1 )+C"[00?QSQCO4EIXHNM2BT>*WM=EQ?VCW4H7#>6JE5(7<5!R
MSCGT'3F@#J**J:9)?2V*MJ,"0W.Y@RH<@@$[3U.,C!QDX)QD]:Y>3Q!KZZ-?
M:N6L8TL+Z2%[81L_F(DFP_/D8.,D?+U_( '9T5SUQK&IW.H:G:Z5;*[:<4C
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
MEJTWB-=*LOLEO$UB;D3S*TK;MP7&P%?_ $+O3KGPE8W<;QSW-VT<EC]AD02
M!HN?0<'GMC.!G-68="CAU"*_%[=M/%;?9\NR'<N<\_+USS_];B@#,TWQ)>WM
MOI,4D4$=S>RW,4LH4F,-"S*=HSG+%<@9X /7%16WBC4YDMX6L[?S[J]FM8'C
M8D.(C)ODVDC@A!@;OXNO',5_H4=K/8Z:E_<VUM&\UR+B=(Y8FD9LE""NW)+,
MP)P1R%ZG%N'1I-8MFM=1N&>.RF22POK6/[/(A"X.T#((&2,@;2#C'% &SI<V
MH30R_P!HVRP.DI6,J1^\3 (; 9MO4C&3TSWQ6!?>(]6LK+Q#*L-K-)IU['!"
M"61=CI$P)ZDD>9[=*Z2SM/LD.PW$]PQ.6DF?+,?PP!]  *S+CPM:W,6H1R7=
MV5U&5)9\,G+*% Q\O'"*/^ CWR %IJ&IQ>)SI5^]K-'-:-<PO!$T93:ZJRG+
M-N^^"#QWXIOB"]U*WU70[;3YH(EO+IXY3+&6R!#(X'!'&5_E^-T:0G]KQ:HU
MU<//% 8 #LVE203D!>I*@_AZ<4[4M*BU)[61I989K.;SH98B-RMM93U!!!5B
M.1WH RM1UW4=/OK>.1;54DO(;8Q%2TDB.0OF@AL(-Q. 0<[>N3P7.L:M;:^-
M(D-G&UV0UC,T3%9%',BL-_WP.1CK^>)KGPG9W,EQ(]W>JT]S%=?+*/DEC"A6
M''H@X.1UP!4MYX;M[^.9+B[NV\V6.57W+NB*'*[&VY7'^/J<@%^_FN;;3+F>
MU@%S=10LT4(.WS7 )"Y[9/%<K>^)KV?PEJM]8WEO]IM@J[7MGBEMV. RO&QR
M#SD'I]<<]9<6HN;&2TDEDQ+&8VD4[7Y&,@CH?I5"?P[9W=I>07<DT[WL2PS3
M,55RJY*XV@#@L3T[T 9^HZGXBM];LM)METYI+NUGE$[JX4,C)U3.<8?LW)/;
M'+YM=U"*T\1-BU\S1_FC/EMM<>2LN"-V?XL9S^%7VT-7U&UOY+^[>XM(WC1C
MY?*N5+9 7'.Q?RX[U'?>&;*^N+V5Y[J-;^+R[F**;:DGR[0Q[YV\<'!P,@T
M58];U#4M2?3=.^S0306,5S-+<1M(NZ3=M4*&4X^4DG/H*0WFN-XKMM/-Q9QH
M-.\Z91$S!GWJ&Q\P/KCZG.>UJ7PS;&YM[NVO+RTNH(!;^?#(I:2,'(5PP(.#
MG!QD9.#4[:+ =1M[]+BXCG@A,!(<-YJ$@X;<">HZC!Z\T 90\1:@?#MOJ>RV
M\PZG]CE38V&7[7Y&Y?FX./FYS4D>K:W<>)=0LDCL8;.P:%G=R[L\3!B<8QAN
M.^0,=\\32^$;"598S<7JP/="[6%9R$CE\SS"5'N_.#D<G&*N6VCQ6NJW.HI<
MSM)=!1*C%2I"@A1]W/&3W^N: *&CZSJVJPZ=?I8+]AOE\P_=!BC92R'.\[C]
MT$;1U/IST%8^E>&[;1B$M+N\%JC%HK1ILQ19[+QG'/0D@>E7]/LETZQBM%GN
M+@1 CS+B0R2-SGECUH XVZTVWCU'Q%X:NW\JRU:!M2M9/^><G EQ[JX1P/\
M:K0\,WLFKZ):1W@QJ#W#G44( *21, P].HC'NIK;U'1;/4[VPN[A6\W3Y3+$
M5;&<J00?4=#CU44MGH]G8ZG?:A K+-?LC3<\95=H(';(QGUQ0!SVL:[K$&F>
M)S#);QRZ?,D=NX0_*C1HV3SRWSGVXZ5/J"ZE_P )?HBB2V-T;&]S)Y;!%&^W
MYV[LGMQN'UK0E\,6=Q'JD<T]S(NJX,^7 P0H4%<#@@*OY5.-&4ZC:ZA)>W4L
M]K&\:LVS#*Y4L" HZ[%Z8Z?7(!DV_B>]D2SLI(8!J-SJ$UD74-Y0\H,S/C.>
M57A<]3UXJQ=:[=V=_J&G2"!KB"P-]!*$(1E!(*LN[.00.<\[O;FS'X;M(XRI
MFG9Q=M=QRDKOBE;.2I [[B,'(P2*LQ:1:I<7%S+NN)[F,1222X),8SA    .
M2>!SGF@#/CUN\>YT %(/+U6$M(H4Y1A%OX.>F>.E)X4O-4O[2YN-0GMY%6\N
M856.(J1LF9!R6/&%]*DM?"MG:R6+BZOI3IY(M_,G)"*5V[?<8XYY]2:N:;I,
M6EM/]GFF,4\SS>4Y!5&=BS8XSRQ)Y)QGB@#/2\U23QM=6"SVZV4%G!-L,1+'
M>\@/.1S\GI6-X<U+4].\,Z!+LM6LKB5+9XMK>8-[$!PV<=<?+MZ=ZZB72(GU
M=M3CN)X)W@6"3RRNUU4LRY!!Y!9NF.O.:JQ^&+6+2[/3DNKH0V4RS0\ID%3D
M _+R : *_P#;>JWDUZVEV*SQ6EU]GVMM!D*XWG<7&WJ0/E/3/? O>(=7.BZ:
ML\<0EFFGBMH58X7?(X4%CZ#.3]*C_P"$;M4U.XOK>ZO+;[6P>X@AFVQRM@#<
M1C(. ,E2,XYJYJFEVNLZ=+87J%X9<9VL592#D,".000"#[4 8/BL:I'X.UW[
M=+:3I]G_ ')@B:,^X8%F]L$&KAU35K37!874%O<+<64US;I;Y5PT90&,ECAL
M^8,-\O0Y%33>'4NM*GTZ\U*^NH[A0CO(Z;MH[#"@?CC/O4MSH<5W>1W4UW=&
M6.VDM@595RC[=QX7@Y1>1C&..] &;;>(-0-]?6CK9W,D%@+I/*W(H?+*T9;Y
MMV"OW@!WXJ*QUW663P[>7ALFMM9"H\443AXG:%I00Q8@CY",;1C/4XYNV_A.
MTMGCDCO+T/'9BSSYBX:,?=!&W&1DXP._.34J>&[=+;2[=;NZ\O26#6PRG&$*
M#/R\X5B/Q]>: ,^3Q+J+6L5U;6]NWFZF]@+:3<'&'9-Q89Q]W>1M^Z?;-2V^
MMZQ?^=-8V$<L4%X;9DR/FV/LD.XN,8(; VG.!Z\9-I;WT-M/J=C?[-1E9Y1I
M]U:+)*KG_EDS\.1VW$X Q@X KH(?#=M!J$]Y;W5Y;+=2>;<6T4V(GD[MC&03
MCG:1GO0!LT444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 444
M4 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110
M 4444 -D=(HVDD8*B LS$X  [TV">*ZMX[BWD66&5 \;J<AE(R"#Z8IE[)+#
M93RP!&E2-F0.3M) XSCM7.6GB#5[Q/#T,$%HC:KIQN9)Y-Q$;A$) 08R/G_O
M?EW .JHK)\/:E=:C:7(O5A%S:74EM(T((1RIX8 DD9!'&3]:J:KKUYIU]"IB
M@2%[V&V$3G,LJR,J^:,'Y0&;&".=IZ9% '0T5@6^K:GJ]Q?_ -E+:)#8W?V4
MBY#$S%<;R"I^7&<#ALX[46VK:GJ\]ZVEK:)#97AM2MR&+2E<>800?EQD@<'.
M.V: -^BL"'6[W4+/4KVQB@\JRFEACCE!W3&(D-\P/RY8$#@],]\4:=XB?5=0
MM([54%M?:8+Z%W4[D)*@!AGG[WMTH WZ*Y5/$NJ36&CR16EKYNH7\UI(S.P6
M/9YN& ZG(BSU]N^1#J?B#6;30?$JL;3[?I,>Z.>-&5&5HPP.TDD,.>Y' ^E
M'5/=V\=U%:O,BSS*S1QEOF<+C<0.^,C\ZFK#DU#5+?Q!IMA.EH8[J&=V:/=G
M<FW &>@^:LR#Q+K;Z58ZO/!8QV\]^MK+;KO9P&G\H,'R!D$C(V\X/(Z4 =?1
M7-7WB6[@MM3N[>VB=-.O4M3!(2'F+>7R"/N_ZP8&#G'OQHZQ?7UAX9O;^.*W
M6\M[5YO++EXPRJ21G )''H* -2F2RQP0O-*ZI'&I9V8X"@<DFN=.N:O8W&E/
MJ%M:266I.D&^!VWPR,I*YR,,I(QD8QD5#;:YXANTU686>GQ1:?-/$5>1V+E$
M!7! ''/.<=>G&2 =1#-'<0I-"ZR1R*&1U.0P(R"*?7,6VN:Q>7>E64$5G']M
MTHWC7$FYMK@Q@@(,<?/_ 'N_7CEL/BF[;3;-)((/[2NM2ET[Y<^4&C9PTGKC
M;&2!G.2!GO0!T<]W;VSPI/,D33R>7$&;&]\$[1ZG )_"IJY^\O\ 6]/N-.CN
MA82+=:B(#)$K@^64+ [23ALJ0>3Q^E)-<\2/8:I>Q6NG3#3[J9##O=6E1.P.
M,*V/7()/:@#I$U"TDU"33TN(VNHD$DD(/S*IZ$CMFK-<;)KUK!K5QX@*N;8>
M'H[H+T8J7=@/KVK=T^ZUF2]6.^L%2!H2QE4J/+<$?+C>Q8$$\X'W>G/ !JU6
MO-0L].2-[RYC@$LBQ1[VQN=C@*/4DU.^[8VP MCC)XS7"SW^J:G\/X+Z^^SR
MR37UHR+%E<G[8G!SVZ 4 =Y17.7'B2YTBXU1-6B@:.RL?MR/;D\KE@4(/?*\
M'H<]!5[3[O69+Q([W3U2!XBS2J5'EOD87[Y+ @GG ^[TYX -"XN8+2!I[F:.
M&)?O/(P51^)J&'5+&>Y%K'<IYY7>(FRKLOJ >2.1R*Y[4'>[^)^EV-S_ ,>E
MOITMW"I^Z\^]4S[E5)(],UT&IW%M86,^J74>Y;&&28L%RR@*2V/P% %RBN?F
MUV]L=,T_5+V*#R+N6&.6.,'=!YI 4[B?FP64'@=2>V#GWOB77+?3-;U);>P$
M.CW+JT1+LTT:*K'#<!6P3S@C/&.,D ["BL-=2U2#Q!%IET+1UO+66>W:)6!C
M:,H"K$D[A^\'S +T/%9$'BC78?#%GXAO+2QDM&VFZCA9Q(BE]NY<\'&<[3V'
M6@#LZ*YZ]UZ]L]5M87B@2*XO1;"%CF4H0<2Y!PHW C!'(YR#Q5.[\0ZZ+/Q!
M>006$2:+.X\N0NYG1(DD(R"-I(;K@]<8XR0#K:KB_LVU!M/%U";Q8Q*8-XWA
M,XW;>N,]ZRI=:NH]8%LWDQVT]@UU;N8R6++C<I^;G 93[Y/IDON+>ZM[5];D
MM5O-6M[)UCMXAM7<<,44\DY*J,DGIP!DY -JH1=VYO&LQ,AN%C$K1;OF"$D!
ML>F01^%9WA_6!K,$TJW4$ZQN%Q'$\3QG'*R(Q)5@?T-0W6L7UMKFH6J00216
M^G+=1+N*L[;F!#'!P/EXX[T ;M%<O8Z]J[-X?N+Q++[-K*A3'"K[XG,+2@[B
M<,#L(Q@8R.35G2=6U/78(M2LEM$L'N7C\N4-YC1HQ0N&!P"2I(7'3O0!OT5S
M(\374GA6;Q/%!$;*-7F%N0?,:%"<MNS@,5!;&/;/>B36M:N[[58=.2P2.SAB
MF@>;>_FAU9L$#&,XZ\X]\\ '345S-GXAU&9M!NYHK9;+6P L2!O,@8PM*N6S
MA@0I!&T8SU-2V6N:IJ7EW=GIPELGNFBSE0?+5RADW%_4$[=N<<=: .AHK%\6
M7]]INBBXT\Q+,;JWB)D!("O*B'_T*JNNZ]J>BV,]S)%:@6T0D(;)^TG)W+&
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
MI*D@ $J1G'KS2KX<BAU*YO+2_O+1+QQ)<6\+)Y<CX +<J64D 9*D9^O-;%%
M&6^@6Y2\BBN+B""]9GGBB90K,PPQ!(RN[O@CG)&"<TD_A^U>XLY[6:>Q:SA,
M""V*@&([?D((/'RC&,$=C6A<W,%E;27-U,D,,2EGD=L*H]2:6">*ZMX[B!Q)
M%*@='7HRD9!_*@#&B\)VL$%E!%?7JQV-TUU"-Z,=[;LY)4DC]XWYU)/X8M+H
M:LMQ<W,B:O'Y<ZDJ HV[1MPH(('KFMFB@#);0O,O[2^EU.]DGM$=$)\H AP-
MV0$'H/RJ >%+<:1%I8O[SR8KD7*G,>[>)/-'.SIOY_3IQ6[10!Q4=M.^H7VH
MQZI#:W/GL%M[ZS6>5=A*KMP5;:V-RA<_>X/-;.MS2R>!KZ6]C6">73G\R/=D
M*[1G*@]^3CWK<HH PM&T^WO--TJ[ENY;Q;>)'A5V4JC[-N?E R0"1SG'/>IH
M/#T=O;ZA"E_=E=0=Y)2?+R&8 $CY..!BM>B@#'M/#D-G=65Q'?W;-8VIM(PQ
MC(,9*G!^3D_(O/M]:A;PC9/IS6;W=V3]L:]BG#()(9BQ8LI"@=6;@@C!(Z5O
M44 8\WA[[3]E:YU:_FDM9Q.KL8QE@"!D! ,8)Z =:R/#]K!J@UZV-_+Y,NI3
M>9#$Z@.C!>^-P!Y&01WQ757%S;V<)FN9XX(@0I>1@J@D@ 9/J2!^-2T 9$WA
MJQN+J>64R-#/9_8GMOE$7D\_* !D=3WJ.'0I;#2Y;:+5]5N,0F. F2+S(AC
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
ML=QJMKJ,UU</);1/"J'9L=7V[MPV\YVK^7UJ)?#=F+*"P>6>2QMG5H[5V4H
MA!12<;BJD# )/09S6O10!G66CI8ZE>7Z75P[WKJ\J/LVY"A1C"@C  [UHT44
M %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110
M4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% $-
MU,]O:331P/.\:%EB3&YR!PHSQDU@#Q+=Q2:Q"\%M<S:=9)=J+>4A3N\P&,DY
MY!C//?/05O7ML+VQN+0RR0B>)H_,B;:Z9&,J>Q&>*QD\(PH92NI7J^?8K8R!
M1$ 47=M(&S (WMTXYZ4 1V>N:J;W1A>P6@M]6C.T0LQ>)Q'YG)/!! /88XZU
MFZ_JUQK?@M=1M[>(6-Q=6Y3=(?,,8N$P^,8YP./0YSGBMX>'(PVDM_:%X3I/
M^ISY?S_(4^?Y/[I(XQ50^#HAI4FE0ZI>Q6)E62* ",B'#A]JDKG;D< DXZ=*
M -C5+J:QTJZN[:U>[FAB9T@3[TA R%'UK#'BEVT5]3MIK.^C6\A@_=AHV =T
M0AE))1U+YP>V.F:Z"ZMC<V4EO]HEB9TVB:,@.I_O#C&>_3'M6=<>&[6[MKV.
MXFE,U[Y9EGC"HP:,@HP&,9! /(/Y8% $5]J4[7^J:5+%'Y4>G?:$D4G/S%UV
MD?\  >OO6;HNM7NE^'?#1N[&+[%>06UMYD<Q,D3N@"%E*@$$X!P>,]ZUH_#B
MK=SWDNI7EQ/<6GV65I/+PR@L0<*HP1N/3 I+;PU##!I]M->7%S;:;L-O%)LQ
MN084L0H+$=OS.3S0!4LO%8ENKU;LPVWV%)I+BT=66>-$;Y7&>'5E&<@8&0,F
MGQ>(;^*T74K[3FCT_P"R/<S2+C-N%7<!][Y\C(R ,$>_%P>'X))4:]GDO5B6
M5(A,%RJ2<,I( )&.!GMUR>:CTWPVEA9_8)-2O+VQ6,Q1VUR4*JA&-I(4,P .
M/F)H @EU[48;;2+I[2#R]4N(HB@<[H XR"3T8X&.V">]1R>);R/0;K4?L\!>
MTOVM70L0' E$>X'L><XYK/U73(- 30;1=5N9+>/4X1#!<R(1&H## .T,0.GS
M$XXK6N?"-O<QWD']HWT5M=SBX:WC:,*DFX,6!*$\D9P21R>* $N-=OY;G4(]
M*T\W0T^01,O ,TFU7*ABP"X#*,G/.?3F.;6M:GO]7M+&TLXO[.2-E:X=F,NY
M2V,+TZ8SGC'?M:_X1L1ZK/J%IJE[:-=A?M447EE)F4!0WS*=K8 !*XS@5(F@
M)'>:C=)?W8?4$5''[LA HP-N4SG![DT 9K^(-2O+GPZVGPVZPZK;-<NLTAS_
M *L,%R%/'S=>^.W?2\3ZG>:1H4U]910RS1L@VRL0N&8*3Q]:BB\,0P6^DQ0W
M]VC:3&8H)?W99D*A=K?+@\ <X'2J_CUTC\&7V^819V!6R <[U/'OQ0 LWB&]
MTK5H[76;2WCMKF*62&XMI6?:8UWLK J/X02"/3H*DL=8UB\6VG&DYANH#*,N
M$$)V[D4MD[L],A>#ZBK2Z3:WLT=[<7#WX$3)$7*% KC#$;0 20,9YXZ8R<Q:
M5X>?2;=;6'6+^2VA79;Q2&,^2N, 9V9; X&XGMZ"@#%B\3:Y<^$8M>DT_3TA
MG2W9$:5F8%G 8D8QQD$<_7TK;@U6YU+4-1MK!8433I!"SS GS)2@<@8(P &7
MGGDGCCF$>$X!X:CT!=1OA;1! K@Q^8 I! SLQU [5<&C+#=7-S:W4UO)=A?/
M*!3O8*%#X(X;  ].!Q0!GZ9XK&M&RAL+;;/<V[SRB5N( C^61Q]X[P0.G )]
M <K3M9N-(TW5+J:W"[M<ECN)$5IDMU(!\P@ $KP!VQNR>E;:^%+.V>QETV>?
M3Y;*)H5>$JWF1L<E7W [LL-V>N<\\FG6OAUK+SF@U2[#RWANR2(\%BNTJ0%&
M5(_4#&* +^EW37NFPW+2V\WF+D26S;HW&>&4^A&#5NLRTT2*Q:T%M=7$45N\
MSM"A 29I"6)88[,20!C&:TZ "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*** "BF2RQP1F2:18T7JSG 'XU$+^R)0"[@)?[H$@^;Z>M %BBJRZA9/LV7D
M#;VVKB53N/' YY/(_.IHIHIXEEAD22-NC(P(/XB@!]%0Q75M/-+##<1220D"
M5$<%D)Z9';H>M34 %%%% !1110 4457AOK2YN9[:"ZAEFM\":-) S1YSC<!T
MS@]?2@"Q1110 445#-=6UN\23W$43S-MC5W"EV]!GJ: )J*** "BBH+N\M;"
MW:XO+F&VA7[TDSA%'U)XH GHJ.&:*Y@2>"5)8I%#)(C!E8'H01U%24 %%%%
M!1110 444R66.")I9I%CC099W. H]230 ^BD!R,BEH **** "BJZWUHU\UBM
MU";M$\QH!("ZKZE>H'(YJQ0 4444 %%%% !1110 44R6:*",R32)&@P"SL !
MDX')]Z?0 4444 %%%0V]U;7:LUM<13JC%&,;A@K#J#CO[4 34444 %%%% !1
M13))HH0IED2,,P52S 98\ #W- #Z*** "BH5NK9[E[9+B)IXP&>(."R@]"1U
M J:@ HHILDB11M)(ZHBC+,QP /4F@!U%1PSPW$"3P2I+%(H9)$8,K#U!'44R
MTOK34(3-974-S$&*EX9 ZY'49'>@">BH+>]M;MYDMKF*9H'V2B-PQC;^ZV.A
M]C4] !1110 444UF5$+NP55&22< "@!U%0VEY:W]LMS9W$5S ^=LL3AU;!P<
M$<'D$5-0 4444 %%%% !13)98X(GFFD6.- 69W8 */4D]*;;W,%Y;I<6TT<T
M,@W))&P96'J".M $M%0W-W;64#7%W<16\*?>DE<*H^I/%34 %%%% !1110 4
M444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !11
M10 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%%
M !1110 4444 %%%% $-W:PWUG-:7"!X9XVCD4]U(P17G$DMU9>$X+S ?6/!U
MV;=@0<S0@;3TYPT3*WU6O3:R1X?MQXDFUGS&S/ L4D&/D9EW .??:Q7Z4 ,L
MK>U?[&MF(YH;2'SXWP 'D<$!L@=2"Y/^^#63;^(=1.G>'C8Z;90_VC=2PR0^
M:42/:LK8!"'^YUQ^'/&WH>AQZ!I/]GVLS.%9BCR#.T=$7&>BJ%7Z+5.'PL;>
MPTZWCU!_-TVZ:XAE:('.X."K#C(Q(W3';\0"C%<:A;>)_$#V&G03S""V>17N
M/+4D(W 8*23]0!QU%=)IE_'JNDVFHPJRQW<"3HK=0&4, ??FJ<6C31:A?WBW
MN7OHDC8-%]W:"%/7W.?Z59TG3_[*T>TTU9?-6TA6%'*X)50 ,CUP!0!A6_BZ
M\:SOM1NM($%C8R3Q2$S@RET;:JJH!!W'C.X<G\39N?$L]A;W4]YILGEP0"0.
M@<*7+!?+RZKSDCD#IGICE\?A:)M*U+3+NY:>WU&6663:FQD9SN)4Y['D55UB
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
MOX=D>/6HS?G&L',G[H?N_P!VL?R\_P!U1U[\^U)#X<EM+Z*^L]1:*?[,EM<
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
M)*MV_A- '3T57L+IKVP@N7MY;9I4#-#,N'C)Z@CU%6* "BBB@ HHHH ****
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
M>/9'4+P7"V,@FC BV;Y "%9^3G&2<# SS[5K44 9>BZ3-I/VL/=).MS<R7!
MB*%6<Y(SN/%1ZGH<UUJUOJVGWYLKR&(PN6B$D<L9(.UER.A&001U-;%,DD2)
M"\CJB#JS' % &;J>B?VIID-K->2K/#,DR72@!U=6SD8X&1E?H>].U#2'NY[!
MH;K[/#9L6,'EAE?C"\9X*]1U /;@5IT4 <WIWA2;3UTA!J0E322_E!H,%E92
MN"0W8'KZ^W%$GA*5[9[--6DCM/MPO88A"I,;^=YQ!8]1NSCIC/>M^XN8+6(R
MW,T<,8ZO(P4#\34M '.7?A6XNKJ2Y;5F$AO([J)C "4V  1DYY7J0!C!8DYJ
M9_#TVS6(8;]4@U5F=U:'<T;-&L;8.X<87(&.OKTK=HH Q+/0;BUU*UO?MR.;
M:R^QA?(QN7(.[[W7*C]:Q[S1[FS&G:/;W\#7#WEQ?1M-"R(<L69=RMN# RG&
MT\J"#D9SUT]S!;('N)HX5)V@R,%!/IS3I88ITV31I(N<[74$4 9&@27,4UWI
MUQ;6J?9RLGFVKL4D9RQ8-NY#@C)R3G<#WJ9=)F@UN[U*VNU47<4:21/%NP4W
M;2"&&!\W(P>G45HHL40$,81 !PBX&!]*?0!ST7AB:'1M-TU;]"-/G25',!^?
M:<@$;O7O4MIX?NM/O[I[+57BLKN=KA[9H58I(QRVQST!/)!!ZG&*W** .>\=
MG;X0NSYGED/"0_'RGS4YYJ\=*DGU"'4+BYCEGMHW6V"Q;40MC<Q&XDG QU'&
M?6KT]O!<H$N(8Y5!R%D4,,^O-/1$C14C5411@*HP * .>3PE_P 4M#H<E^X^
MRLCVUU%'M>)T;<K8)(//Z58O=#OM4T"\TN_U42->1&%Y4M@@52,$A<GD@]22
M/:MNB@#%U'0KF]N;'4(=2^S:C9!T$RP[HY$?&Y60GD?*IZ\$4MQHEW<7^G7K
M:DK2V)=OGM\ARZE3T88 !X'7U)K9I"R@@$@%N@SUH Y[4_"T^I75U.=4*>;-
M!-"# &,)B96"YSRA9<D#!R>M6(]$O+;4-1O+74PAU QEP]N&*%4"97Y@,G&>
M01TX]=JB@#!C\,"S?21I]T(8=)B:.*.2+?OW+@ECN'/?C'.:CL_"TUFFD(-1
M5UTJ1W3_ $?F3<&4@_-Z,>E=%10!B065MX?MK][_ %"!=.N)Y)F$ZA AE;)4
ML3@C+$ 8'7'-6/#NGMIFA6MJ\DDC+&,M(,-C&%!]PH4?A6D0&&" 1[TM &:V
MDM%JT^I64ZPS74:1SJ\>]7V9VM@$$$;B.O(QZ51?PJJV=K!;7AC:"^-_)+)'
MO::4DL2<$8!+'@=L 8Q7044 5[RSAU#3Y[&[420W$312KTW*PP?IUK.;06N8
M;&WOKPW$%C*DJ+Y>UI&3[A<YYP<'@#) [<5LT4 <[/X7FN-(UG37U!=FK2.[
MN(.8]ZA6 ^;T Q_6I7T"\CUA]4LM5%M+<QHEY&;</'*5R R@G*M@XZD=.#BM
MVB@"K>VDUSI4]G%>2P2R0F-;E0-Z$C&_L,]^U8?_  A<,POHKJ[WVU_91VLT
M,4(0#9NVLAR2/ODX.><'/:NFHH PI?#UUJ.CW&E:UJAO(98?*#1P")\Y!#DY
M.7! ((P/:B?P_=ZGH\^FZQJIN4D0*LD$ A96!#*YY.6! /&![5NT4 <CXIM=
M0M? FKG4=5%TZVI =8%B';DC)RWY#VK<&EM<ZA:WUY<K.;3<;=8X]BAF7:7/
M)R=I('0?,>/2]-!#<IY<\22IG.UU##]:6...&,1Q(J(O 51@#\* , >&+F/2
MFTV'5 MO]K-PH,&=RM*9&C?YOF4DXXQQUS3#X1D^S3P#5'Q)J*7\9,*YC=6#
M8XZ@D#TXX]ZZ6B@#$N/#\EY/=7=Q>(UU-:-9QLL.$BC8Y;"[B220.2?X1QUS
M GABYMKFSO+#5?L]U!:+9RDV^^.>-3E<KNR&&3R#W-=%10!'"C1PJCRM*P'+
ML "WY<5)110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110
M4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1
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
M!>G- &Q1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110
M4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1
M110 4444 %%%% #7D2)"\CJB*,EF. *(Y$EC62-U=' 964Y# ]"#5?5(TFTJ
M[CE171H7#*PR",'M7-^'M>-AX:\-I>6$L5M=VUO;QW&Y2%D9 %#+U 8\ \]1
MG&: .NIB21R@F-U< E25.<$=JQ8O$WVB56MM/N)K5KHVPECC<GABA? 7;L#
M\[N@S69H6H0:/:W-K% &EN];N8+:!,*"=S,<^BA5))QV[F@#L**Q+OQ!-:37
MEG_9YEOK:U^UQP1RY$\>2#M./O C&".XYYIMKXD>[OK"WCM8O*U"R-W!/YYV
ML!MRH^7K\X/TR>V* -VBJFF7<U]I\5U-;BW:4;A&)-_RGH<X'6JVIZO)IVI:
M?:FU#0WTAA$YEVB-]I8*1@]0"![\>F0#4HK!M?$-W=VTKQZ:GGQ7QLV@-SR&
M!Y;.WIC#?[O/M2Q>)OM$JM;Z?<36K71MO-CC<G(;87P%V[ P/.[H,T ;4DB1
M+ND=47(&6.!D]*?7.^.DB/AEI)(1*8KJU=/E!(/GQCCWYQ^-6$\021WUW:7V
MG30/!;?:D$3><98\D$ #G>",;>>HP30!M45@CQ#=F?4+3^RP;RSMH[H0)<;O
M,5]^%SMX?*'CIR.:EM=>-W;V-VD,/V6ZM3=/-YYQ$@P?[O/##TZ'TH V:*Q=
M.\0R:A-:8TVYC@O$+QRF-_D&-PWY4!<CT)YXI^NZY)HSV"1Z?-=F^N/(4QLH
M"L5)&<GOM^GJ1W ->F>=$':,R)O5=Q7<,@>OTK#;Q'<*S6_]ER&\AMUFN(%9
MG$9;.U R*V6.T^G;UK.EGB_X234=0&G%_.T"*62VE0(\@WR?*X/0XX.?I0!U
MX((!!R#T(H)"J68@ #))[5S]MXA06UA;6=B#+)81W)A0-L@1AA5^16/)! XZ
M*?QL6VO_ &^6.UMK"871MEN)H;C]UY"L2 K<$[B5; Q_">1QD O01:=<D7EO
M';2EF)$T85LD<'YAWXQ5NN<\ _\ (IQ_N3#_ *7>?NSCY/\ 29>....G%6EU
MY[B*_N+*S-Q!82O$Y\S:TCI]\(,<X.1R1D@]N: -FBN?'BAKR^M;72; W0O+
M#[;#/)*(HBN5 !."P^]S\O''OC0T/5?[9TM;MK<V\@DDBEA+;MCQNR,,]QE3
M@^E &A17-7?BJ\@769(=%:2/1I2LY>X5"Z"-9"R  Y.&R <=N<\"W!KTS:K:
M6ES8"&&_A>6VE$V]CM )5UQ\IP<\%AP: -JBL.W\1/+J=O9R:?)%]KM9+FW!
M?]X50J"'0@;"=X(Y/?."*J6GBVYN;73+]](,-CJ,RP!VN 98V8D*2@&,$@?Q
M9&>E '3T5BR^(&AU&U@>Q9+>ZNVM$E=]KEU5CN"$<I\I&[/H<8.:BN/%20VT
MEXEE)-:QWWV$E' D,F\1Y"G QO..6'K0!OT5@?\ "4,YD:#2[J6*&802[49G
M#9 ? 52IVDX/S?PMC/&8;OQ5>0+K,D.BM)'HTA$Y>Y5"Z"-9"R@ Y.&S@X^H
M/  .EHK$@U^5M3M+:YL1!!?PO+;3";<?E )#K@;3@YX+#@TVQ\2M?FTEATRZ
M:UO03#*L;Y"[2RLV5"J& X.X_>7U. #=I"<#)KF;;Q=<W%GI^HMHYBL+VY%M
MO>X'FQLSE%)0#!!.,_-D9Z&K-OJ=YJFL:OI4FGQ?9;8K#OD<,&W1[OF7N#N
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
M=M)YPF60LJ8.U2#N4@Y&!USCFFGQ2D,6H"[M0D]C<Q6Q2*7S%=I=H3#8&.7
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
M,NPZCM^.S>6]S<Z7/;1W9M[F6%D6YC3_ %;$8W!2>QYQFK5% ',)X2N(S?\
MEZE"BW]@EI*JVO"E=^'7Y\\^8Q()))YSVJX=!N&GT>5KV(_V6""/LY_>Y0H?
MX^.#[\_E6W10!RW_  B-['H"Z%#J\0LH98GMO,M"TD:QR+(J,P<!A\N,X!Q6
MYJVEPZSI4VGW3,%E ^=."K AE89SR& /X5=HH RI='EO+ZRN[ZZCE:Q+20I'
M"47S"I7>P+'. 3@<=3[8H?\ "+W/_"/#2/[2BXO!=>;]F/43^?MQO_O<9]/?
MFNDHH HZQI[ZMHEYIOGB$W<#PM)LW;0P() R.Q/>JC:+=/JFEWK7T7_$OB>,
MH+<_O-P )SOX^Z,=>_6MFB@#G/\ A&;P6MQ"NJ1C[1J'VR0?9CM=3UB8;^5.
M!W[<Y!Q4:^$KF.V^SIJD>Q=3_M!-UKR#OW[3AAD9)YXXQ]:Z>B@# OO#U[<W
MFIW4&JK:R7]K%;AD@.Z((SD$'?SGS&!Z=L$8K*U?09=/M[Q8[Z ?VQ+!#'";
M7;&DB@ #.[Y5(3 (^8$Y!)P*[2F211S1M'*BR(PP589!_"@#E7TNXO3=:#JE
MK;Q_VC;F1KNSN'>160J%+;QD8)!7D\@\5?N=#U74= O-+U'68I3=6[6YEBL_
M+^5A@L1O.6QZ$#GI6U#;PVZE8(8X@3DA%"Y_*I* ,B32+N76]/U)[V'_ $*"
M2(QBW/[S?LW'._C[@QU[]:H/X1G:T(75!'>)J+ZA;W$=O@1NV<J5+'<I#,,9
M'!KIJ* ,2]T74=1M;5+G5(3-!=1W!9+0A"4.0 N_(![Y8_A1/X?>ZU#5;B:\
M7RM2LEM&C6'#(J[\$-N.3^\;MV'X[=% %32[6XLM/AMKFXCG>)%0/'$8P0 !
MT+'GCUJC9:"T.JQ:G=7$4UU%"T'FQP>6TJ$J1YAR=Q&WVZD\9Q6S10 4444
M%%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4
M444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 0WEW!864
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
MFSOFOI'E@WF:5M^X\,, F1C[<4 1KKBV^HWMQ=Z%);7=OI<=Q,RLDDCIN?\
M=@J>=I#=^]6+/Q)//>:9%<Z6]M#JD9:"0S*Q#!-Y5E'3Y0<')Z<XI;W0+R[U
M*]NQJ$*"[L!9[#;$[.6.[._G[YXQZ4B^'[L-H9;4(3_9&<_Z,?WW[LQ_W_EX
M;WY_*@"2QUZ;5!#<V&FO/I\LK1BX\U5.%)&_8>JDC YSWQ6;9>(UM=-TS['H
M+Q+?ZC<VOD1R(/*=7E))YP2QC8G'')Y/&;NC:%J&AQ?8+348#IJ2,\,;VQ,L
M:LQ;9NW8(!/7&<<>]95]I5YH\.@VOVZ&60Z]),LGV<J!YB3NP*[SGER.HXQ0
M GB;6(M4\*^)M*O].DM+RUTZ2;R9MKJZE6V2(PR#AE]B"*VKG7UM99+2WM9+
MJ6UMUEF5 W&0<*,*<L<'@X'3GFH=4\+RZK;ZIYU]&MUJ-G]B\T0$K%%\W 7=
MR<L3DGL..*<="U*WUE]3T_4X(GNHDCNXIK4NCE,A74!P5.#C&2#QZ4 :DMRL
MND-="UDE5X-_V=U".P*YVD-C![8-8=KXGMX--T6"TL8HI+[3EN+:U:81KM"K
MB)"1@MAA@<<#M7030S/8M DX$I3;YKIN&<=2H(_I6"?"LTGA^TT2YN;2[M8+
M,6S"6U/51A)%^8X8#]<$$4 ;M[<M::?/=+"TS11EQ&" 6P,XR>*PX/%S^3I=
MQ?:1<6MKJ?E+'<>8CJDD@&U6 .0"3@''<9Q6Q=0^5HLT)=WV6S+O<Y9L+C)]
MZP=!TN;5?"7AX7MU&]M#;VMP(XXBK.R*K("VX\ @'@<X'0<4 6;?Q6T]W?*V
ME7$-IIT\D5U=2N@6(+&'W8SDYSVSQ@GK@6+/Q ]W-$G]F72K/"TL9"$XQ@[7
M) 56(/')'!Y]8[?PXXCUJWO;N.XMM8D=Y42$HR!HUC(!W'LOIU-3:1I^LV%L
MEO>:I!>) FR)A;&-WP, N=Q!_ #/Z4 8&@ZI:'1K77[_ $8KJ=S(8HIV2,R3
M,[-\JLI+!0!SG& O .,5JWWBS^S]+N[V;2[LFUFCC8*C!6#D ,I8 D#.#@9!
M'3O4$?A.Z'ANSTTZBD=WI]P+BUNHX3@."Q^9">1AF4C/0]JMZEHNIZOH<MA=
MZG;K-*R$R16A"*%8-PI?.21U+?A0 3>(+R"UFDET6:.:&.2=XY)DP(E/!WKD
M;FYPOL<D=\Z:ZB?QQI6HV=DTTEYHTY&T*K%?,@9=Q)Z#)_.M+5M"O=6D02ZA
M$L'V:2*2+[.2"[8Q(OS<$#(&<]34-IX>U"TN=,NEU"W>:PL'LV!MR%E4E"#C
M=E2/+'KWH H:OJ5IKEIILXMGBN++7((9(IU'F02!AD9!(Y# Y!P016K)XF3S
MI?(LI[B"&Y^S2/$C,V[<%8J I!"D\Y(/RMP<<P/X5F,0*7\8N)-174+B1K<D
M2.NT!5&\;0 H'4]*EL=#U'3+Z[^QZI$MA=W#W+0R6Q:2)W.7V/N P22>5.,]
MZ -ZBJUG%=Q&X^UW2W >9FAVQ;/+CP,(>3N(YY[YJS0 4444 %%%% !1110
M4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1
M110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%
M% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% $<T$-S
M&8IXDE0D$JZAAQ[&B&W@MP5@ACB!.2$4+G\JDHH **** "BBB@ HHHH ****
M "BBB@ HHHH BGMX+F/R[B&.9 0=LBAAD=\&EA@AMU*PQ)$I.2$4 9_"I**
M*RZ?8I>->K9VZW3##3B)0Y'^]C-6:** "BBB@ JM=:?97QC-Y9P7!B.4,L2O
MM/J,CBK-% !1110 4444 ,FABN(FAFC26-QAD=00P]P:9;6EM90""TMXK>)>
MD<2!5'X"IJ* "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*** "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*** "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 *
B*** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@#__V0$!

end
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>GRAPHIC
<SEQUENCE>25
<FILENAME>cognexpreferabilitylette002.jpg
<TEXT>
begin 644 cognexpreferabilitylette002.jpg
M_]C_X  02D9)1@ ! @   0 !  #_VP!#  H'!P@'!@H(" @+"@H+#A@0#@T-
M#AT5%A$8(Q\E)"(?(B$F*S<O)BDT*2$B,$$Q-#D[/CX^)2Y$24,\2#<]/CO_
MVP!# 0H+"PX-#AP0$!P[*"(H.SL[.SL[.SL[.SL[.SL[.SL[.SL[.SL[.SL[
M.SL[.SL[.SL[.SL[.SL[.SL[.SL[.SO_P  1" 55!!\# 2(  A$! Q$!_\0
M'P   04! 0$! 0$           $" P0%!@<("0H+_\0 M1   @$# P($ P4%
M! 0   %] 0(#  01!1(A,4$&$U%A!R)Q%#*!D:$((T*QP152T? D,V)R@@D*
M%A<8&1HE)B<H*2HT-38W.#DZ0T1%1D=(24I35%565UA96F-D969G:&EJ<W1U
M=G=X>7J#A(6&AXB)BI*3E)66EYB9FJ*CI*6FIZBIJK*SM+6VM[BYNL+#Q,7&
MQ\C)RM+3U-76U]C9VN'BX^3EYN?HZ>KQ\O/T]?;W^/GZ_\0 'P$  P$! 0$!
M 0$! 0        $" P0%!@<("0H+_\0 M1$  @$"! 0#! <%! 0  0)W  $"
M Q$$!2$Q!A)!40=A<1,B,H$(%$*1H;'!"2,S4O 58G+1"A8D-.$E\1<8&1HF
M)R@I*C4V-S@Y.D-$149'2$E*4U155E=865IC9&5F9VAI:G-T=79W>'EZ@H.$
MA8:'B(F*DI.4E9:7F)F:HJ.DI::GJ*FJLK.TM;:WN+FZPL/$Q<;'R,G*TM/4
MU=;7V-G:XN/DY>;GZ.GJ\O/T]?;W^/GZ_]H # ,!  (1 Q$ /P#V: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*** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HH
MHH **** "BBB@ HHHH **** "F3(TD+HLAC9E(#CJI]:?4<\*W%O) ^=LBE6
MVG!P?>@#GM!AQK$C6,\\UE%#Y<TTLA99IL]5SZ>HKI:S=.T&RTN0/:F<8!4*
MTK,HS[=*TJ "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "
MBBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **
M** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHH
MH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@
M HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "
MBBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **
M** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHH
MH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@
M HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "
MBBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **
M** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHH
MH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@
M HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "
MBBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **
M** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHH
MH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@
M HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "
MBBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **
M** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHH
MH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@
M HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "
MBBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **
M** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHH
MH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@
M HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "
MBBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **
M** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHH
MH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@
M HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "
MBBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **
M** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHH
MH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@
M HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "
MBBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **
M** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHH
MH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@
M HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "
MBBB@ HHHH **** &2"0QL(F57Q\K,NX#\,C/YUQEOXMUC_A"HO$4J6<TAN&B
M-G%"ZM-B8Q[4)<_,0,]#_6NTD<11L[!B%&3M4L?P Y->::7I,$_P]DM9-!O%
MUI9+DVSFR>&9)6E=HW$A4;>&4YST&/:@#TB6X@@9%FFCC:1MJ!V +'T'J:26
M[MH98XI;B*.20X1&< L?8=ZX;Q'#>G2KZR>SN+K41I<)FN1 \BRNN<K%@84@
M@L>_*X!/2_J:2OK3:AIOG/)*+<RV-U:MY=RBME61B 4=<D\], D#K0!U;W-O
M'.L#SQK*_P!V,N S?0=ZSO$]]<:=X<U&\LYHHKJWM9)X_,7<#L4MC&1Z5@6\
M,+ZCJNGZU::DT\U^9X6A27RYXP5,1#K\H*X Y(P1534(1)H'BRPU/3YY]2F-
MT\+&U>02QE3Y&Q@".!M&,\$'UH [NV=I;6*1OO,@)^I%"W-N\Q@2>-I5ZH'!
M8?A5-1<7/AS;:.T-S):8B9U*E'*8!(/(P:YR2UFF\(Z/IMC:S0ZI;RVQ^:,@
MV[JRF5F;I@KY@SD[]W&<T =9-?6=NP6>[@B)8( \@7YCR!SWY'%6*X.?3+>2
MR\;*=)F>2YD<P,UG(S2YMXP-A*Y/[P-TZ'FNI N[KPQMM7>&[DLRL;2J49)-
MF 2",C!H O+<V[S-"D\;2K]Y X+#\*#<0!2YFC"@[2=PP#Z5R,MM-/X5T73M
M/M9H-2MIK8_-&5-N59?-9FZ<KO&<_-NXSFJ^L120Z?XTTW^SKN:?4!)-:B*U
M=TD!M43(8#;N#JW&<],#D4 =M+=6\! FGBC)&X!W XR!GGW('XBG221PQM)*
MZQHHRS,< #W-<A+IMA?>-K:>ZTF6>!]+\MFFLI&C\S>I4-E< @9Z].:O^/;4
M7GA&ZA%M-<RED:)(8V=]P8'("C(XSS0!NM>6JQ-*US$(T;:SEQA3TP3ZT27=
MM# L\MQ$D38Q(S@*<].:Y74H+;2]6TFZ@TZ>'1]DXD%E;.IAG;9MD9%7=RH=
M<XXW<]:9>6]K D-II^F7KK/;77EO<0RR(FY@67:?NLY;C=C ![<$ [%G5%+,
MP51W)P*Y_2=4U"Y@N#=7EFK0:JUKO>,J)(P0 JC=PYSP<GZ5CZ7+)%+X=N-1
MM+M[%=)6 ![61O)N1M#%TQD$@$!B/7GYN:D-M%%#LATNY A\2^?$%L9/W<>X
M$L,+P.M '>S7UG;L%GNX(B7" /(%^8\@<]^1Q4DL\,&WSIDCW'"[V R?:N'G
MTRW>Q\;#^R9WDN9',!:RD9I<V\8&PE<G]X&Z=#S27NI6UKJ,BW\\4/V_1HX?
M^)GN@1""^[!8<YW?,.HVKUSP =[47VFW\_R//C\[_GGO&[UZ50\/V=G9>'[2
M#3IX9XA"H%Q#M*S,  7XX))&37,FRO3\/%T98)O[=&!NV'(N=^?.WXQC/S;L
M]..O% '0W]_<SZJ^CV%Y#:7*6ZSM++%YG#,RJ NX?W&S^%:K2I"J>=*BECM!
M)V[FQV_(\5S<=E;_ /"Q;FYDTYCNT^$+<FS;895>0G#XQG:5[^GI4GBRTBNK
MW03+8O="+4-SE;=I0B&*0$G .!DKU]O2@#:_M/3_ "5F^W6WE.VQ7\U=K-Z
MYZ^U2S7$%LJM/-'$&;:I=@N3Z<]ZXTZ?:?:O%Z?V1+Y4\2^4/L+[93Y05MGR
MX8E@.G7&:@U,3W.@I:?V;>2WL^@,C/-;2, VW!C"XPKEN23C[J]>P!W$]W;6
MJEKBXBA4*6)D<* .!GGMR/SI6NK=+;[2\\2P$!O-+@+@]#GI7(Z?#;W?BJUO
M9].N)%;1U0RSV<F X;IEEP#C/O4&D?Z)I6D6[Z9=ATN[M(Q+:2^7;J7<JQ3
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
M*S@'YB0O'N00/7!H EHHHH **** "BBB@ HHHH **** "BBB@ HHHH ****
M"BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH *
M*** "BBB@ HHHH **** "BBB@ HHHH IZOM&C7I>.XE46[EH[;/FN-IX3'.X
M]!CO7#W$.IWG]MQZ=:2VL]_H<"VHBMGB0,IERFX@88!E7)P>1@ 5Z)10!QFH
MK!J_A:]C\.Z9-::E]@,*;K1H'C48S#O8#GJ, ]>?>G:DEKK/ANZ70=,FM[TV
MJQD-9M XB#*6@W,!R5## .*[&B@#F[U&OM;T*72X9(UM7<W$AB:-4@,9'ED$
M#DML^7MMSVK#='B\.KI1TR\:YM-<6=PMG(RK&;[S=ZMC##8<_+D]>.#7H%%
M'%?V?:R7_BYY=*FD%PB^6SV4C>;^Z (4E>?F["FV]I&VH>%KV_TV60)I4L$K
M26;LR2_N2H8;<@_+)C(]?6NWHH \\N+*.72+B#^R;LHOB2*=8A8R@&+SD+-M
MV\KMW>U6]:M%&H^(4MK>[M8;G1$C\ZWLWP9 9>F  6"LO&<XXKN*J:I8?VEI
M\EKYS0[BK!E&>58-@CNIQ@CN"1WH YG19]&U[Q';ZFMUI3W$-BL<5K!,LCJ=
MV[=T! 7H,#^(]*L>)8;)O%GAZ2\M$G4_:%.8/,/W 1D 'CBMIM.>XNK6XO)8
MI&M',D0CBV88J5)Y8\88\5#J.DW%YK.G:A%=QQ+8ER8V@+F3<NT\[ACCV- '
M(ZQH>WP_XK%CILXLKP(UE:16[Y,P7YG6,#*@G;V&2I/?)UKRQT^UUOP]/IVD
MO$J7<LDLD-BXVAH'3+D+D9;8"3Z GI76T4 >=R:;$G@[64ATBY%R=3DDA_T&
M3S6'G[D9?EW$8&0>U:>8(?$^L_VW83W-MJ,</V1VLWF1H@F&B("G:0^YMIQG
M=78T4 >>>)+>$V/C1O[.DBBDTZ)U9[5D1G17R0Q&TD?+T/I6O/IMH_B'2+_1
M]/:T>U:0W<J6K1 P&-AY9&!N)?80.<8)^NWK^EOK>A7NEI.MO]KA:%I&CW[0
MPP2!D<_C5V!95@19Y$DE ^9D0J"?8$G'YT <#:"YM+#0Y[JRU 65O=WGVE8[
M>021,[L8I-F-Q7!89 XW5V.BP6D%DWV**XCAEE>7_2-X9F8Y8X?D DG@@=_6
MM&B@#SR]LDDT/6X!I5VROKL5Q%$MC*-Z;X=S !>1A7S6_;01P>.V>VLI88)-
M,5&D2U=(RP<D MMVY"GU]JZ2B@#FO$5G;R>)M$N[FP^T01B>.1Q;&7:2H*@@
M GJ#CWK(O=.ANM+\:-)I<\MQ-)(UJ6M'+/\ Z/&JF/*\G>#]WN*[RB@#C)GV
M>(7DU:#4'L[S3XHK>:"&5@I!;S(V"@LI.5/(YQ[5U-E'#9Z9!'&DD<,$*JJR
M$LZJ!QDG))Q^-6J* .+\&:-9W/AJ2WO],:.<7<[DSVK1O@S.R,"P&>,$$5HV
MB&QUW79=3BDD6[>,V[B)I \(C \L8!Y#;SM[[L]ZZ.B@#SR+19$3PG%K&G3W
M+0-<"<&!YA%"ROY:.5!!Q\BX/<5I1Z5IT6OZ_OT8BV:S@2/%@Q1MJNK!,+@\
M%!@>@]*[&B@#@].M3!I'@AETZZCNK=T%TWV.0/'FV=7WG;D N5R3UZ]LUW3N
M(XV=@Q"C)VJ6/X <FG44 <19Z;=:E\,4L4MIXKJ)EE\F:)HF+1S"4+A@.NT#
M/3FMBZMI=5\1Z??6A,:6-M/^\EB;'F2; HVG!. K$CC' [UOT4 <AXVAU+_A
M";ZWG?[?<RO%Y26EHX) D0GY06)X!.:;*M[X1E%[I<=UJ6C7<NZ6P5'DGMV8
MY+Q<9*DDDH>G4>E=C10!FPZ_I\^I0Z>KS)<3PF>-9;>2/<H.#RP'([KU]JSO
M$GS7\,"64T\LUI.BRF%I(D'RY7 XWMQ@D@  _0[AM(6O5O&4M,B%$))PH/7
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
M P&SGJ,UUU% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%%
M!1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %
M%%% !1110 4444 %%%% !1110 U]VQMF-^/EW=,^]16<DDEG"UP\+3&,&0P$
ME"V.=N><9Z5))''-$\4J*\;J596&0P/4$5P6@^596G@_49;>0VXTB6U>2.!I
M"&;R2@8*"<$(_P#DT =^"",@Y%9&F:A>3^(=7L;EX6AM/): QH5(#AB0V2<G
MCKQ]*Y2V$EK!:&>PN8]*CUN\:[A^S. %9I#"Q7'S)D@\9 .">E%^EK$WBLV:
M/;02PVD@*P,J28)W#I]T\!CV!)/>@#T!)HI(S(DB,@ZLK C\Z:+JW8L!/&2J
M[V <<+Z_2N'N4T?7EUW58)[&\:731%':VDJSR!@K@N0F>3O51CLH^@>NG:>N
MI>%'73MI,+K<G[*W.8^!(<?WP#\W<9H [=)HI(A+'(CQD9#JP((^M(L\+Q"5
M)4:-C@.&!!.<=?K7 S)+;V.HK;6ER+"'7UEFAAMSDVY12S(N/F42?,0 <X:K
M.M6FF76E+<6J7MRMQJMG-*7BD"OME0.=F!D! <G&./44 =K'<0RAS'-&X0X?
M:P.T^A]*()XKF".>!Q)%*H='7HRD9!%<C/86P\0ZU;6E@%M[K1T4I' 1'+(#
M+QTP6VE?PQ6KX,CL8_"]@+*&&,_9HA-Y<87]YL&=V!][USS0!M>;&)1$77S"
M,A<\X]<5E^'[^\ODOUOFA:2VOI(%,*% 57&."3SSZUS5[*@UNTGALKA1:ZVW
MG3-;R/*V8W4MN X3+*J@9R *CDL-/FT_Q-'=6,DE_+?SO:'R6\UFVJ$:)L9X
M8=0< YSCF@#O)9HH%#2RI&"< NP&33\C.,\FN5TJ*ZLM<N)O$#!WDL+>.&9A
ME,A3YR@] 2W./XACKCC-MK6YTZ'0]0O;69;:TU6Y:,>2SR6]M(DRQ J 6 ^9
M!CMD XQP =Q-<0V\+332JD:X!8GCDX'ZFI:\ZU"T@FT?Q'NTV183K-K<HLMH
MRJ8P+<,X!'H),]QSFN\M(K+["L=G%"+0@A4C0!"#UP!Q@\T 9VN:O-::3%?Z
M;);RK]LAA?>I8,K3+$V"",$$GGD<5L*ZN2%8-M.#@YP:\YM[.QC^'45I!9B.
M[%Y;K<QP0D2C9=JQW;1GA03[#FM+4;*2WU76(O#UN+6>YT7$7DQ^6CS@OMY
M W@$>_(H [-)HI6=8Y$=D.&"L"5/H?2AY8XL>9(J9SC<<9P,G] 37.>'3I=W
M-;75G'?QSP6QA,4T#1"%3@E&&T D$#U[D<$U#XHL;&\\4:$;VU:XA43K.#&S
MQ["AP'&,8+#O0!U#3PH4#2HID^X"P&[Z>M9NG:C=W'B#5["X\DPV?DF$HI#8
M=23NR3DY';%<]);VD>LZQI>K0WD4%R(TLOLUNQ1[<1J/+1E4E2KASC(^\"*B
MU9;UY/$WV*WNI'9;/**AW31(1YRJ3PQV[AQGDXH [=+F"1-Z31LN<9# C/I3
MPZD@!@2>1S7*G1]%\3Z??I ;I_MELL1EF@:-8RN=A"E5&Y23T&1T/:FP*MUX
M;N]9U/2YH;M+(V\L5M'B8^6"'$9'(W-N QV - '5I+'(&*2*P4D$J<X/I34N
M8))#''-&[A0Q56!(!Z''I7!2*'3Q1";-XDO-)B:!+:VE1&8+*,*<#)R4&>,\
M<8J_#:V=MJOA::TLO)8Q2).\=NRD Q8PY XRX'WNXH Z^&>*X5FAD5PCE&*G
MHP."/P-9=IJ%X_BS4=,G:$VT-K!/!L0AAO:12&))S_J^P'6L[P3:6%G#?Q16
ML,%XE_=B0+$%<(9W*9.,[2I4CVZ5%=VVG2>.-1?5[19;9],MTC:>$O&Q$DQ9
M>01NY7CK0!UN1G&>::\L<<;2/(JHHR6)P!^-<+8VUSI=OX=O=0M[GRK:ZND5
MFB>26&!Q((0X +?=VCGID TL-M%)9ZJG^EZ4#K8N+><69"(=B;796&"A*D'T
M)&<=0 =C+<,9K,P7%MY,SD-O.6D&TD!"#C.1GOP#4S7,".J//&KLVU5+@$GT
M'O7&H'^U^&9KJPBBGM]1N=\MK WE[&CF7S!P2BNY4\G&2.2.:SY]-M!X1U]H
M["1[L:C+);NUN[2G]YN0J2-Q'&010!Z))-%$5$DB(7.%W,!N/H*1YX8Y4B>5
M%D?[J%@"WT'>N0O7@D\2ZC#JZW@M+^VB2SDB@9TDCVG?'D*2K;B3C@G(]*+J
MV>WUM9;)FN"7M5GT^]B+,X4KMEBDZ@IDDYR,JV<9R0#KQ/"9S )D\T#)CW#<
M!ZXI9)HH0IED1-[!5W,!ECT ]ZY.PADM_$X-LPN[:6]G:6&XAVSV3E6S(K]X
MVP ,]F7!XQ5CQM#:21:/)=VZS(FJ0C!CWG!R",8S@]Z -?6;V:TT&^O;%H6F
MMX'D3S 60E03@@$'MZU+97@FTZSGG=$DN(D;&< L0#@9KD+[3(;:XUVYT:T,
M%A/I$D4L<$)5)K@YV%% Y8+D$@=P.H.*NOD3Z)=0065Q+=+I,+B1[=WQC.%B
M 'RL""6/7.W@]@#T"6>&!2TTR1@#)+L!@>O-*98PJL77#?=.>O&>/P&:Y46^
MGWWCF>[GM&FADTN/:T\#E-P=R0 PP#M(XZ\UCZ;9PRV_A**ZM)F2UN;E'BDA
M?;&FR0)N4C 'W "?:@#N;JZ+:>UQ975J.1B65LQ@;ANR0?3/?KBIY;F" ,9I
MXXPH!)=@,9Z=?H:X'4K:W33O$]K%8/Y7]IP36L4=JQ!.R'<R +_>5\D>]:L-
MEIESXQUR:\LA/#+9VVUYH6=&QYF\+D8Z%<@>M '5R2QQ)ODD5%_O,P I]>=Z
M7J46DV?A:;59A$$TIK:2.^/DHDF(^=SX&[Y2N.N"2/?J/"&GVFG^'K>.UN+:
MYW EYK9PR,<G@$=0/NCV% $LEY>WVIW%GIMS;VXL7C$YF@,A?<-Q489<?*1S
MSR?;G426.0L$=6*'#;3G!]#7'VUEI\6O>*KIM/D1R \<\%L5E8>2 _E/CELY
MZ'K68RWT[:LNCVKV<]]H,8M%A@=%#J9?EWD ;@&4;CCJ* /0A<0$N!-&3']_
MYA\OU]*$GBDMUN$D4Q.@</G *D9S7)>5H6I^'+M--TC;=?V9) 4:R9'0;?\
M5L2HYW <>HS45M;6PL_#4]G!%_9D+[KY(8L+YODX1W '.UNN>AP3TR #LA/"
M8#.)4\H L9-PV@#J<TDES;Q(TDD\:(K;69G  /H?>N#\5V<M[;^)I;6&5[&?
M3XUC6)6/GW8+G<@'WOEV D<' ':M35-,T^!+&32)8]+E\V25)&M=T$KE0K"8
M<'+#^+(/!YYP0#K 00"#D'H13$FBD;:DJ,>> P/0X/Y'BJ>DDGP]:?:+066+
M90]NN<1#;]T=\#\ZXFQTA(/ 5W)IVFR'4TDD23$)%Q);?:BS1@L,D&,' [Y]
MZ .M\2:O-IWAB_U/3)+:26U0N/,!=#CJ#M(YQ[UK-+&CJC.JL_W5)P6^E<1K
M2Z?>>%]7NM,6_GFN;-8,-;R*&P3M4)M'(RW0<#KCBF^)9HYI[UK>TG>2"[L9
MWG:W=VVB2,GRB!\JJH8GKDEQB@#MQ/$\\ENDBF:-59D[J&S@GZ[3^5165PS6
M$$MU<6SR.GS20'$;-C)VY)XX/?M7-6UMI*^,]9FO;*#=<00/$9K?+.I1P^ 1
MGV/Y&LK2;*"6U\%1W=G,WV:&2.:*6!]L9\L@!U(P/FP 2* /0(YX981-'*CQ
MD9#JP*_G3HY$E0/&ZNIZ,IR#7G]PT.G66L%5:VM(->BN$C:)HX7CV1%LG&%0
MN'.>F1SUK=\-1Z9=ZMJFL6=Y8W+W4BE5M9ED\I=B@[BIQEBN3_7F@#H3/$+@
M6YD7SF0N$SSM! )_,B@S1"40F5!(1D)N&2/I7-75I8#XB1W%Y:0EI-/40R21
M YD64_=)'W@"/?%9XMIE\#:CIUQ#))KLCSD!5/F23EV,4BG^Z/D(;HH&.,8
M!W!(4$D@ <DFL?4-6GAO=#-F\$EGJ5P8G)4EBIADD5E.<#[G<'K4VI6TMQX8
MNK:X1;B9[-E=0N1(^SL/<URD=MIDFD^$H[>UC,2W*/=K#"0 ?LLBDR;1_>*@
MY]<&@#O%='7<C!E]0<BDBFBG3?#(DBYQE&!&:X2_M9;6'Q';Z79RBW%[:RM;
M6T6/,B C\\1C&"2 P('7D=372:$-.GN)[^P>[D,Z(LCS1-&IVYV@*549&3G
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
MZG(R,'J/6D,\*PF8RH(U&2Y8;1^- $E%%(&!) (..OM0 M%,$D;,%5U+$;@
M>2/7Z4^@ HK+TO4+NXDU#[='!'#;W)C@FB<E9$P.N0.03@XXR".U:8((R#D&
M@!:*** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@
M HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "
MBBB@ HHHH J:LL3Z1=K-S&T+A@.XP:X:VT[3$L_!4C6B).P6.\8Q'<4^S,"L
MIZX\P(,-QD"O1** .%WV.GGQ! ('%DNJ6[16\(V1,62('. 0(]^2^..&Z]#0
MN%A/A_5;*19(S%KL$J111R1+Y9DB+$+_ '<;VQ]37I-% '&21:=I_B74Q91F
MUMI=&W2&P0*S,I<Y7 P9 IX[]*RFE0-K/V0'3([W08VB>W@D(1@9<DD#YF4%
M<L/4#M7I%4]4LI-0T^2VBN#;NQ4APNX<,&VD9&5.,$9&030!QY2'63=ZEH4U
MG'=1Z2T=M;6UTCMY^"58[#C"] 3_ 'CP,"IK!=$O=+:>![P21V$D,L#PF,Q@
M@963"#+9'&23G..IKH1HZRWUG=S16T3V;%H_(CPQ)0K][^[ACQZ@<\5JT >>
M6^G:7';^"Y#9QK,RK'>,8R&*?9F!67OCS @PW&0*6[#6D.OV^GV\@L(M6MY9
M8;:+/[@I%YQ1<88;@V0 <_,.]>A44 <'K<&E7'AG4+BQN;J=;F6W9MH:-6*N
M/NA54$[<[N#P!GH*T8+/3(?''DVEM;I;7>ELLR11@1RG>"H; P3M+=>Q-=71
M0!S'P^M[2W\'Z='!;QP7*6T:706+8WF 8(?C[P.>O]:BL+?3;/QEKT]Q;00W
M#M%+#,\0!*^5AF#8Z9# G_&NLHH \[T>"QLM \%WL3K'>%H89I3)\Y7R6WQM
M[ [1M/0X[U/]HMAXETNZA@F58M5N89YY(6:9R8Y1\[ <*7VA5YX"GCI7>T4
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
MJ"-@.."?7!K2U6"PTR72;BVC:/2)9Y)+V:"/S/WQ0!))!@YY!!)'!P37:T4
M<-K-AI!TS256-KNV.KI+_I$.1M8DN0NT )SZ8YI]XMDOB*^L=4\VWLY[6*/3
MS%;AHVBVD.B':=K;NPP2-OH*[:B@#BCI>EW?CD)>1M<Q'380!=,S RJY*Y!X
M#@8..O)/>J\5Q;#Q+I-U!!*BIJ%U!--)"S32$HX^=@.%+ ;5] IXZ#O:* /.
M&L[23PWK:11,-<.I7KV)12LXE,[F,H>NWH21\N-V>]7-6:^-WXF^QAY;MM.M
M%Q!]Z3:TOFA/5MK=N02*[NB@#G_#W]DW%TU[ID\\FZ!8V!A\I% .0" JC<,G
MKR!FJ^IBS'CRSDE_=[M+N89IE)4C+PE5+CH<!R.0>N*ZBB@#SG3+2QM?#G@^
M[CMTBOXYX5GEV8F \MED#GKCD YXZ>U=+XZM4N_"5VCVXG"-&^TIOP!(I)Q[
M#-=#10!R%U;Z/<>+-$MXEMQ9?8;L"% %C8L\) *C@AL,<=\$\XK*$PM](A2-
MI9-)L]<F6X6$>:8H/G\OY<'*!RAZ'  ["O1** ,K0(K%(+B6PFFFBGE\PNZ[
M5+$ '8, 8X'08SGOFLK1(&\/>(==BO<I;:C="\M[EON'<H#(6Z*05X!Z@\=\
M=510!R_B"^&K6J1V'F7%G;7T!OVC4E9(<DNH(^\!\I;&1C(]12R)%+XJCFL0
M@TW[!*NH/'Q$Y)7RQD<%@/,Z<@'W%=/10!YI9:=IL7ASP;+)9JEVLL4=RYB(
MDV>4RNLAZ[<[00>.@Z5)KUM91:?XNM8K9$MHWMITC2/"AP%#L@'?(&<=_>O1
MZS/$>F3ZSH=SIUO-'"\X"^9(I8+SGH,9Z4 <_<Z;80^(;:]T&(VL8MY_[2DL
M4VADV';D 8,@?!'&[@U2TR:T.J2.D+65K?:* OEJZDD,WWI!C,@!Y/4$XR3U
M[V/S/+7S=N_'S;>F?:GT >>Z=:6%II7@FY@MXXKQ6B2YD5,2!?LSJX<]<;]H
M.>^*U=.T>UAUN_T22QB:V%RNI1$Q#:%?/RYQU$JL?IQ76U4LK6XA::6[N$N)
MI&X9(O+"H"=JXR>F3SGDGMTH R_%< FBL"+Y;*:.YWPR31>9 S[&&V09'!!.
M#D<XP<U=\/%SH-IYEFEFP3:8(\[%P2/ES_"<9'L16E10 4444 %%%% !1110
M 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !
M1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4R8RB%S
M $,NT[ Y(4MCC)':J>NB^.@:@-,.+[[-)]GQU\S:=OZXKEK0^%;GP[+-;I"+
MP::T-QD$3+E>5E[[MP_BY)Z=: .SMY&>WA:4Q^8Z GRVRI..=I[BI:\\%KIF
MHW?A2*]D\RWDTF2*XB:<A#\L6%9<X!R&]"2OM5N)=(.M:Q8^)HXS-]H0V"S*
M>;<(NP0]\A@V0O.: .XI,C.,C/I7!ZO);6UOXSL9HSYUPC7%I"(B2P^RH-Z
M#LZMDCH>35A+;2M0\5H+Y([B!]&3>ER28R0V>5;C..>GO0!VE&><5YM90Z?;
M^%-$OD\L7EOJL<2SL<RI$+C:5W'D((CTZ;>:V"@A\8-/$UOJ"R7JB2&1-MU9
ML8PN]&_BCV\D$=SSVH ZZ.:*8N(W5_+;8V#T;T_6GDX&37!6:Z1I>DZ^\Z&&
M:+4)C*L&%F:(S*54D\A&R,GT).>]4K^2!=$\662LMNIN(988;5GC0JT<6=F,
M94D-TX;#'% 'I61Z]*6N,G@M;+Q81H M8)[O1K@CRB )9@T9B+8X8\N03R1F
MH-(;3)O#B3:7&A\3PZ=(A#J?M"S^7\WF]^7'5N">G6@#NJ3.:XC2AHEYI9N;
M74+Y)TL)([B..,+-%E/F\S" [P1D%CG.<9R:L:!>P:);7\M[]CDMH(H&_M'3
MXFV7"DLH#(N<2# SC/#+TH ["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 @OKR'3K"XOK@D0VT32R$#)VJ"3^@JI:W]_-+;
M&2PB%M<IN$T5QYA0XR-PV@8([@GGZU8U2[MK'2KN[O%W6T$+O*-N[* $GCOQ
M7)6.F+X=UK3/^$<U-IM'U%V$FGM+YD<2;&;S8FZJH( (Z?,/:@#L;62XE@W7
M, @DW,-@DW\ D YP.HP<=LXJ:O.K::%M!T6)-4F6(^(+F%]ET<R)YTY 9\[C
MT4YSW!]*EU*ZGT>'Q7;:1<2J+=;:5424R/"K'$S*"200H+?7F@#T"BN,UFZT
MW3]#NM0T/4&D\P0?:'ANGF\NW\Q0\H&XX.PM\PP>,YXJOX@^RKX/\076G:^)
M%:P+*EI( B$!B"""<%LX//./J: .[K,U'5I+#5M*LQ;+)'J,SPF7S,&,K&SC
MY<<YV$=1BN?U1[;2;G2H_P"T'33M0GD>YNKB=I8VFV#8K$MA5;#':,+D 8[4
M2_9H-3\-1)JBWL9U.X97+C"@VTWRJ>Z@G Y..G:@#LZ*Y32;8C4[K1+B:Y=K
M.\-VCM.^7@<90$YR0&)7!XQ'726E[:W\/GV=S#<Q;BN^%PZY!P1D=Q0!/111
M0 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%%
M!1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %
M%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 44
M44 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !111
M0 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%%
M!1110 4444 %%%% !1110 E116=M;[_)MHHM_P!_8@&[ZXZU-10!%]F@/6&/
M_OD4X11JY=44,>I Y-/HH CBMX(%*PPQQJQR0B@ G\*1;:W2+RD@C6/.=H0
M9^E2T4 1M!"T1A:)#&>J%1@_A1Y$7R_ND^487Y1P/:I** *5A;W*O+<WP@%S
M+A?W))547.T9(!/WF/3^+':C3-+@TN.=80-UQ,T\I50H+D < <#@ ?ASDY-7
M:* "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHH
MH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@
M HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "
MBBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **
M** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHH
MH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@
M HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "
MBBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **
M** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHH
MH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@
M HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "
MBBB@ HHHH **** "BBB@ JG=7K0WUG9Q('DN&9FR?N1J/F;\RB_\"JY65I?^
MF:A>ZF>4+?9K?_<0D,?Q?=]0JT :M4[V]:WGM+>) \MS+M )^Z@!9F/T Q]2
M*P=(N;Z'7TAU%Y9A<M.;6[AN"\$R[MP1HS_JW5>.!@X/.:U;'_3M9N[\\QV^
M;2 _0YE8?5@%_P"V= &A<7$-I;27-Q*L4,2EY)'. J@9))JA;:O<7UF+RTTR
M9H'7='YKK&\J]BJGIGMN*GZ5F?$:QO-0\"ZC;V,332X1S$O615=691]5!X[]
M*U;?4XM5T--2TFY@,4D>^.212R@8Z$ C!'0^E %34?%,6G:3::D^G7CQ7,J1
M%,(KQ.S!0&!8?Q'!QFI[#Q!#>:Q<:1-:W%G?01+-Y4P4B2,G =2I((R,=CGM
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
M110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%
M% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110
M4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1
M110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%
M% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110
M4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1
M110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%
M% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 R16>
M-E20QL1PP )'YUPEKXJU0^#;?6!>QW.IR7+Q)I^Q/](Q,4VJ!A@VT9SD@<DC
M%=Y(XBC9V#$*,D*I8_@!R:\\TW1Y9_AU/HUQH$S:D[7 B$L(38SRNR2>8>!M
MW ]<\<"@#OI[RUM65;BYBB+@E0[A2<=<9]*22_M(K=+B2ZB6&3&R0N-K9&1@
M]^*P=,L;W1]<DN=1:6\6;3[:!;E$9R'CW>8" "1N+!L]^<]!G/CT2XCTZ,W'
MVZSE?5)[JSDM%\Q[(/NVAD (*D%LC! WX]P =)<>(M&M9+5)M3M4^V*7A8RK
MM=0,[@<XQTY]ZLR:C8PS&&6\@20$ HT@!!/3CW[5S:0ZA'J'AV^OK(L\,-S%
M.;:$X5FV[#M&2N[:3Z G!-$-E<VGA[6M*N;*:[NKN:Z9"$)6X$I)0ENBX!"G
M)&-OIB@#HKW5=/T[_C]OK>V^7=^]D"\=,\U/;W$-W;QW%M,DT,JADDC8,K ]
M"".HKEM*TV73_$]K-=02331:-';3WJP$B252"?FQR2!G].O%.\/Z@NA:'8VE
M]97D)GOIH5/V=ML6^9C'N] 0R@'U.* -G7C?II<CZ9.L-WE5B\Q0R%F8*-W?
M&3VJOH^O?VIX7BU3RMMP4V20'C;.#L:/V^?BK&N3/#91^7;S3O\ :(6V0QES
MM$BECQZ $_A639:9=:?XFU&Z56_L:Y"7P01L7%P048!<9P0 QX^]B@"?PIK,
M]]X1M-9UB[A1[A-SM@1QI\Q&!G^IK7.IV M([O[; ;>7_5RB0%7XSP>_ /3T
MKCO#T5YI_A#P_;3:5=&]MIBCEX6/V4D/\^T<-P=H/(!?)I;'3K@Z)9V]S#JF
MGWEKJ%T\5W#$',3-)(P)4 AD96P>,<]NH .NEU?38(([B6_MDAE3S(Y&E4*R
M\?,#GIR.>G(I\^H65M<1V]Q>0133$"..20*SD]  >M<G>V.I2VMI<".:TU>.
MQ*#R+?S+:XYYBDCY"@\'J,;CSQ3?$45_<+J$4&DW"MYUG<2-$A?[05=&;:QX
M 4+C:O).3ZY .KO=6TW3F"WVH6MJ6&0)IE3(SCN?7BLJ'719^(-7@U74K>&S
M@$!MS,5B"EPQ(W'J>!52U\_3_$&LG4-+NKJ'5&BE@D2'S05$84POCA<$$\_+
M\QYZU-#;C_A(M=N)["4I/:Q1HS0%@X56WJ..>2.._OB@#H#>6JS+ ;F(2LAD
M5"XW%1U;'I[U'_:=@;;[2+VW:'=L$BR J6],^OM7*Z=;WNGVWA*ZEL+J7[%I
MK6=RB1$O'(R1#)!YQF-AGIR.W--BTV:73G6ZM=2L)QK4]Q!<6ZAW@+&3:^T;
MMRD-M(P1\WXT =;_ &C8_98[K[9!Y$N/+E\P;7STP>]5KGQ#H]F]JL^I6R?;
M,F%C*H#  DG.>G'7U(KG9HM6@GT74-0L9[F*&.YAN%L%9'5G==DVQ3GYE4Y
MR1O-69+)+34]$O+73+J.UBDN3("ID=6D&0S#)/S-D\]"><4 ;4>OZ3+?7%DF
MHVWGVW^M0RJ"OR[CW[#D^E6K6]M;T.;6YBG$;;7\MPVTXS@^G!!_&N9DLO\
M2_%-M>:;=30:AM=1"A'FQ_9T1@K#@-E2,9SG'UK1\.17\)NH[J>6[@!3[/<W
M$'E3NN.5<8&=O'S8&<^U &Y1110 4444 %%%% !1110 4444 %%%% !1110
M4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1
M110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%
M% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110
M4444 %%%% !1110 4444 %%%% !1110 5%-;0SO$\J;S$VY,G@'UQTSZ>E2T
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 %%%% !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 %%%% !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 %%%% !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 %%%% !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 %%%% !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 %%%% !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 %%%% !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 %%%% !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 %%%% !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 %%%% !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 %%%% !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 %%%% !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 %%%% !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 %%%% !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 %%%% !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 %%%% !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 %%%% !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 %%%% !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 %%%% !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 %%%% !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 %%%% !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 %%%% !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 %%%% !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 %%%% !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 %%%% !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 %%%% !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 %%
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
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 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110
M 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !
M1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 ?_
!V0$!

end
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>26
<FILENAME>R67.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.19.3.a.u2</span><table class="report" border="0" cellspacing="2" id="idp6855969008">
<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, 2019</div></th>
<th class="th"><div>Dec. 31, 2018</div></th>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_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="top.Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentGross', window );">Property, plant and equipment, gross</a></td>
<td class="nump">$ 194,115<span></span>
</td>
<td class="nump">$ 183,470<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment', window );">Less: accumulated depreciation</a></td>
<td class="num">(104,672)<span></span>
</td>
<td class="num">(92,074)<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentNet', window );">Property, plant and equipment, net, total</a></td>
<td class="nump">89,443<span></span>
</td>
<td class="nump">91,396<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentByTypeAxis=us-gaap_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="top.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="top.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="top.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="top.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="top.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="top.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="top.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="top.Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentGross', window );">Property, plant and equipment, gross</a></td>
<td class="nump">49,289<span></span>
</td>
<td class="nump">45,067<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentByTypeAxis=us-gaap_LeaseholdImprovementsMember', window );">Leasehold Improvements [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_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="top.Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentGross', window );">Property, plant and equipment, gross</a></td>
<td class="nump">10,790<span></span>
</td>
<td class="nump">9,095<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentByTypeAxis=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="top.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="top.Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentGross', window );">Property, plant and equipment, gross</a></td>
<td class="nump">67,474<span></span>
</td>
<td class="nump">66,542<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentByTypeAxis=us-gaap_EquipmentMember', window );">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="top.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="top.Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentGross', window );">Property, plant and equipment, gross</a></td>
<td class="nump">31,278<span></span>
</td>
<td class="nump">27,378<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentByTypeAxis=us-gaap_FurnitureAndFixturesMember', window );">Furniture and Fixtures [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_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="top.Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentGross', window );">Property, plant and equipment, gross</a></td>
<td class="nump">$ 6,800<span></span>
</td>
<td class="nump">$ 6,904<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of accumulated depreciation, depletion and amortization for physical assets used in the normal conduct of business to produce goods and services.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 360<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (c)<br> -URI http://asc.fasb.org/extlink&amp;oid=6391035&amp;loc=d3e2868-110229<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02.14)<br> -URI http://asc.fasb.org/extlink&amp;oid=6877327&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PropertyPlantAndEquipmentGross">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount before accumulated depreciation, depletion and amortization of physical assets used in the normal conduct of business and not intended for resale. Examples include, but are not limited to, land, buildings, machinery and equipment, office equipment, and furniture and fixtures.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 360<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=6391035&amp;loc=d3e2868-110229<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02.13)<br> -URI http://asc.fasb.org/extlink&amp;oid=6877327&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PropertyPlantAndEquipmentGross</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PropertyPlantAndEquipmentLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount after accumulated depreciation, depletion and amortization of physical assets used in the normal conduct of business to produce goods and services and not intended for resale. Examples include, but are not limited to, land, buildings, machinery and equipment, office equipment, and furniture and fixtures.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(14))<br> -URI http://asc.fasb.org/extlink&amp;oid=6877327&amp;loc=d3e13212-122682<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 360<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -URI http://asc.fasb.org/extlink&amp;oid=6391035&amp;loc=d3e2868-110229<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 944<br> -SubTopic 210<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-03(a)(8))<br> -URI http://asc.fasb.org/extlink&amp;oid=6879938&amp;loc=d3e572229-122910<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(13))<br> -URI http://asc.fasb.org/extlink&amp;oid=6877327&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PropertyPlantAndEquipmentNet</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PropertyPlantAndEquipmentByTypeAxis=us-gaap_LandMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PropertyPlantAndEquipmentByTypeAxis=us-gaap_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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PropertyPlantAndEquipmentByTypeAxis=us-gaap_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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PropertyPlantAndEquipmentByTypeAxis=us-gaap_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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PropertyPlantAndEquipmentByTypeAxis=us-gaap_LeaseholdImprovementsMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PropertyPlantAndEquipmentByTypeAxis=cgnx_HardwareAndSoftwareMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PropertyPlantAndEquipmentByTypeAxis=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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PropertyPlantAndEquipmentByTypeAxis=us-gaap_EquipmentMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PropertyPlantAndEquipmentByTypeAxis=us-gaap_FurnitureAndFixturesMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PropertyPlantAndEquipmentByTypeAxis=us-gaap_FurnitureAndFixturesMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>27
<FILENAME>R97.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.19.3.a.u2</span><table class="report" border="0" cellspacing="2" id="idp6609488720">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>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, 2019</div></th>
<th class="th"><div>Dec. 31, 2018</div></th>
<th class="th"><div>Dec. 31, 2017</div></th>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_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="top.Show.showAR( this, 'defref_us-gaap_CurrentFederalTaxExpenseBenefit', window );">Federal</a></td>
<td class="nump">$ 15,854<span></span>
</td>
<td class="nump">$ 10,624<span></span>
</td>
<td class="nump">$ 78,152<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_CurrentStateAndLocalTaxExpenseBenefit', window );">State</a></td>
<td class="nump">2,108<span></span>
</td>
<td class="num">(879)<span></span>
</td>
<td class="nump">2,687<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_CurrentForeignTaxExpenseBenefit', window );">Foreign</a></td>
<td class="nump">30,670<span></span>
</td>
<td class="nump">6,307<span></span>
</td>
<td class="nump">7,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="top.Show.showAR( this, 'defref_us-gaap_CurrentIncomeTaxExpenseBenefit', window );">Current income tax expense (benefit), Total</a></td>
<td class="nump">48,632<span></span>
</td>
<td class="nump">16,052<span></span>
</td>
<td class="nump">88,463<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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="top.Show.showAR( this, 'defref_us-gaap_DeferredFederalIncomeTaxExpenseBenefit', window );">Federal</a></td>
<td class="nump">352,808<span></span>
</td>
<td class="num">(1,271)<span></span>
</td>
<td class="nump">1,569<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_DeferredStateAndLocalIncomeTaxExpenseBenefit', window );">State</a></td>
<td class="nump">183<span></span>
</td>
<td class="nump">554<span></span>
</td>
<td class="num">(639)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_DeferredForeignIncomeTaxExpenseBenefit', window );">Foreign</a></td>
<td class="num">(442,494)<span></span>
</td>
<td class="num">(28)<span></span>
</td>
<td class="nump">359<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_DeferredIncomeTaxExpenseBenefit', window );">Deferred income tax expense (benefit), Total</a></td>
<td class="num">(89,503)<span></span>
</td>
<td class="num">(745)<span></span>
</td>
<td class="nump">1,289<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_IncomeTaxExpenseBenefit', window );">Income tax expense (benefit), continuing operations, Total</a></td>
<td class="num">$ (40,871)<span></span>
</td>
<td class="nump">$ 15,307<span></span>
</td>
<td class="nump">$ 89,752<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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of current federal tax expense (benefit) pertaining to income (loss) from continuing operations.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 6.I.7)<br> -URI http://asc.fasb.org/extlink&amp;oid=34349781&amp;loc=d3e330036-122817<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 235<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(h))<br> -URI http://asc.fasb.org/extlink&amp;oid=26873400&amp;loc=d3e23780-122690<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 9<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=84230637&amp;loc=d3e32639-109319<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_CurrentFederalTaxExpenseBenefit</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_CurrentForeignTaxExpenseBenefit">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of current foreign income tax expense (benefit) pertaining to income (loss) from continuing operations.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 9<br> -URI http://asc.fasb.org/extlink&amp;oid=84230637&amp;loc=d3e32639-109319<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 235<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08.(h))<br> -URI http://asc.fasb.org/extlink&amp;oid=26873400&amp;loc=d3e23780-122690<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of current income tax expense (benefit) pertaining to taxable income (loss) from continuing operations.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 6.I.7)<br> -URI http://asc.fasb.org/extlink&amp;oid=34349781&amp;loc=d3e330036-122817<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 9<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=84230637&amp;loc=d3e32639-109319<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 235<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(h))<br> -URI http://asc.fasb.org/extlink&amp;oid=26873400&amp;loc=d3e23780-122690<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_CurrentIncomeTaxExpenseBenefit</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_CurrentIncomeTaxExpenseBenefitContinuingOperationsAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of current state and local tax expense (benefit) pertaining to income (loss) from continuing operations.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 235<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(h))<br> -URI http://asc.fasb.org/extlink&amp;oid=26873400&amp;loc=d3e23780-122690<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 6.I.7)<br> -URI http://asc.fasb.org/extlink&amp;oid=34349781&amp;loc=d3e330036-122817<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 9<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=84230637&amp;loc=d3e32639-109319<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of deferred federal income tax expense (benefit) pertaining to income (loss) from continuing operations.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 9<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=84230637&amp;loc=d3e32639-109319<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 235<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(h))<br> -URI http://asc.fasb.org/extlink&amp;oid=26873400&amp;loc=d3e23780-122690<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 S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 6.I.7)<br> -URI http://asc.fasb.org/extlink&amp;oid=34349781&amp;loc=d3e330036-122817<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of deferred foreign income tax expense (benefit) pertaining to income (loss) from continuing operations.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 6.I.7)<br> -URI http://asc.fasb.org/extlink&amp;oid=34349781&amp;loc=d3e330036-122817<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 9<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=84230637&amp;loc=d3e32639-109319<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 235<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(h))<br> -URI http://asc.fasb.org/extlink&amp;oid=26873400&amp;loc=d3e23780-122690<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of deferred income tax expense (benefit) pertaining to income (loss) from continuing operations.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 6.I.7)<br> -URI http://asc.fasb.org/extlink&amp;oid=34349781&amp;loc=d3e330036-122817<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 235<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(h))<br> -URI http://asc.fasb.org/extlink&amp;oid=26873400&amp;loc=d3e23780-122690<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=109223946&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 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 9<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=84230637&amp;loc=d3e32639-109319<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DeferredIncomeTaxExpenseBenefit</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DeferredIncomeTaxExpenseBenefitContinuingOperationsAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of deferred state and local tax expense (benefit) pertaining to income (loss) from continuing operations.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 6.I.7)<br> -URI http://asc.fasb.org/extlink&amp;oid=34349781&amp;loc=d3e330036-122817<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 235<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(h))<br> -URI http://asc.fasb.org/extlink&amp;oid=26873400&amp;loc=d3e23780-122690<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 9<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=84230637&amp;loc=d3e32639-109319<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of current income tax expense (benefit) and deferred income tax expense (benefit) pertaining to continuing operations.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 22<br> -Subparagraph (h)<br> -URI http://asc.fasb.org/extlink&amp;oid=115929826&amp;loc=d3e8736-108599<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))<br> -URI http://asc.fasb.org/extlink&amp;oid=26873400&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 20<br> -Section 45<br> -Paragraph 2<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=109238882&amp;loc=d3e38679-109324<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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>28
<FILENAME>R93.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.19.3.a.u2</span><table class="report" border="0" cellspacing="2" id="idp6887727184">
<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, 2019 </div>
<div>$ / shares </div>
<div>shares</div>
</th></tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_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="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber', window );">Nonvested beginning balance outstanding | shares</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="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod', window );">Granted | shares</a></td>
<td class="nump">151<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod', window );">Vested | shares</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="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod', window );">Forfeited or expired | shares</a></td>
<td class="num">(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="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber', window );">Nonvested ending balance outstanding | shares</a></td>
<td class="nump">150<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_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="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue', window );">Nonvested beginning balance, weighted-average exercise price | $ / shares</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="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue', window );">Granted, weighted-average exercise price | $ / shares</a></td>
<td class="nump">48.61<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue', window );">Vested, weighted-average exercise price | $ / shares</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="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue', window );">Forfeited or expired, weighted-average exercise price | $ / shares</a></td>
<td class="nump">45.20<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue', window );">Nonvested ending balance, weighted-average exercise price | $ / shares</a></td>
<td class="nump">$ 48.63<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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The number of equity-based payment instruments, excluding stock (or unit) options, that were forfeited during the reporting period.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(iv)(3)<br> -URI http://asc.fasb.org/extlink&amp;oid=109197908&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Weighted average 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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(2)(iii)(3)<br> -URI http://asc.fasb.org/extlink&amp;oid=109197908&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_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>num:perShareItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The number of grants made during the period on other than stock (or unit) option plans (for example, phantom stock or unit plan, stock or unit appreciation rights plan, performance target plan).</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(2)(iii)(1)<br> -URI http://asc.fasb.org/extlink&amp;oid=109197908&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The weighted average fair value at grant date for nonvested equity-based awards issued during the period on other than stock (or unit) option plans (for example, phantom stock or unit plan, stock or unit appreciation rights plan, performance target plan).</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(2)(iii)(1)<br> -URI http://asc.fasb.org/extlink&amp;oid=109197908&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>num:perShareItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The number of 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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(2)(i)-(ii)<br> -URI http://asc.fasb.org/extlink&amp;oid=109197908&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>A 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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The weighted average fair value of nonvested awards on equity-based plans excluding option plans (for example, phantom stock or unit plan, stock or unit appreciation rights plan, revenue or profit achievement stock award plan) for which the employer is contingently obligated to issue equity instruments or transfer assets to an employee who has not yet satisfied service or performance criteria necessary to gain title to proceeds from the sale of the award or underlying shares or units.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(2)(i)-(ii)<br> -URI http://asc.fasb.org/extlink&amp;oid=109197908&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>num:perShareItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>A 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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The number of equity-based payment instruments, excluding stock (or unit) options, that vested during the reporting period.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(2)(iii)(2)<br> -URI http://asc.fasb.org/extlink&amp;oid=109197908&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The weighted average fair value 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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(2)(iii)(2)<br> -URI http://asc.fasb.org/extlink&amp;oid=109197908&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_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>num:perShareItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AwardTypeAxis=us-gaap_RestrictedStockMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AwardTypeAxis=us-gaap_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>29
<FILENAME>R63.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.19.3.a.u2</span><table class="report" border="0" cellspacing="2" id="idp6888130672">
<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, 2019 </div>
<div>USD ($)</div>
</th>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_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="top.Show.showAR( this, 'defref_us-gaap_AvailableForSaleDebtSecuritiesAmortizedCostBasis', window );">Amortized Cost</a></td>
<td class="nump">$ 667,243<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AvailableForSaleSecuritiesAccumulatedGrossUnrealizedGainBeforeTax', window );">Gross Unrealized Gains</a></td>
<td class="nump">2,416<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AvailableForSaleSecuritiesAccumulatedGrossUnrealizedLossBeforeTax', window );">Gross Unrealized Losses</a></td>
<td class="num">(65)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AvailableForSaleSecuritiesDebtSecurities', window );">Fair Value, Total</a></td>
<td class="nump">669,594<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_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="top.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="top.Show.showAR( this, 'defref_us-gaap_AvailableForSaleSecuritiesDebtSecurities', window );">Fair Value, Total</a></td>
<td class="nump">309,248<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_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="top.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="top.Show.showAR( this, 'defref_us-gaap_AvailableForSaleDebtSecuritiesAmortizedCostBasis', window );">Amortized Cost</a></td>
<td class="nump">92,782<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AvailableForSaleSecuritiesAccumulatedGrossUnrealizedGainBeforeTax', window );">Gross Unrealized Gains</a></td>
<td class="nump">137<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AvailableForSaleSecuritiesAccumulatedGrossUnrealizedLossBeforeTax', window );">Gross Unrealized Losses</a></td>
<td class="num">(5)<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AvailableForSaleSecuritiesDebtSecurities', window );">Fair Value, Total</a></td>
<td class="nump">92,914<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_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="top.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="top.Show.showAR( this, 'defref_us-gaap_AvailableForSaleDebtSecuritiesAmortizedCostBasis', window );">Amortized Cost</a></td>
<td class="nump">215,339<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AvailableForSaleSecuritiesAccumulatedGrossUnrealizedGainBeforeTax', window );">Gross Unrealized Gains</a></td>
<td class="nump">1,005<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AvailableForSaleSecuritiesAccumulatedGrossUnrealizedLossBeforeTax', window );">Gross Unrealized Losses</a></td>
<td class="num">(10)<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AvailableForSaleSecuritiesDebtSecurities', window );">Fair Value, Total</a></td>
<td class="nump">216,334<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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="top.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="top.Show.showAR( this, 'defref_us-gaap_AvailableForSaleSecuritiesDebtSecurities', window );">Fair Value, Total</a></td>
<td class="nump">113,083<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_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="top.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="top.Show.showAR( this, 'defref_us-gaap_AvailableForSaleDebtSecuritiesAmortizedCostBasis', window );">Amortized Cost</a></td>
<td class="nump">66,474<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AvailableForSaleSecuritiesAccumulatedGrossUnrealizedGainBeforeTax', window );">Gross Unrealized Gains</a></td>
<td class="nump">207<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AvailableForSaleSecuritiesAccumulatedGrossUnrealizedLossBeforeTax', window );">Gross Unrealized Losses</a></td>
<td class="num">(1)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AvailableForSaleSecuritiesDebtSecurities', window );">Fair Value, Total</a></td>
<td class="nump">66,680<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_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="top.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="top.Show.showAR( this, 'defref_us-gaap_AvailableForSaleDebtSecuritiesAmortizedCostBasis', window );">Amortized Cost</a></td>
<td class="nump">46,269<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AvailableForSaleSecuritiesAccumulatedGrossUnrealizedGainBeforeTax', window );">Gross Unrealized Gains</a></td>
<td class="nump">150<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AvailableForSaleSecuritiesAccumulatedGrossUnrealizedLossBeforeTax', window );">Gross Unrealized Losses</a></td>
<td class="num">(16)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AvailableForSaleSecuritiesDebtSecurities', window );">Fair Value, Total</a></td>
<td class="nump">46,403<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_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="top.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="top.Show.showAR( this, 'defref_us-gaap_AvailableForSaleSecuritiesDebtSecurities', window );">Fair Value, Total</a></td>
<td class="nump">212,098<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_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="top.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="top.Show.showAR( this, 'defref_us-gaap_AvailableForSaleDebtSecuritiesAmortizedCostBasis', window );">Amortized Cost</a></td>
<td class="nump">65,440<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AvailableForSaleSecuritiesAccumulatedGrossUnrealizedGainBeforeTax', window );">Gross Unrealized Gains</a></td>
<td class="nump">188<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AvailableForSaleSecuritiesAccumulatedGrossUnrealizedLossBeforeTax', window );">Gross Unrealized Losses</a></td>
<td class="num">(4)<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AvailableForSaleSecuritiesDebtSecurities', window );">Fair Value, Total</a></td>
<td class="nump">65,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="top.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="top.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="top.Show.showAR( this, 'defref_us-gaap_AvailableForSaleDebtSecuritiesAmortizedCostBasis', window );">Amortized Cost</a></td>
<td class="nump">145,806<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AvailableForSaleSecuritiesAccumulatedGrossUnrealizedGainBeforeTax', window );">Gross Unrealized Gains</a></td>
<td class="nump">674<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AvailableForSaleSecuritiesAccumulatedGrossUnrealizedLossBeforeTax', window );">Gross Unrealized Losses</a></td>
<td class="num">(6)<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AvailableForSaleSecuritiesDebtSecurities', window );">Fair Value, Total</a></td>
<td class="nump">146,474<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_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="top.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="top.Show.showAR( this, 'defref_us-gaap_AvailableForSaleSecuritiesDebtSecurities', window );">Fair Value, Total</a></td>
<td class="nump">22,299<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_FinancialInstrumentAxis=us-gaap_SovereignDebtSecuritiesMember', window );">Sovereign 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="top.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="top.Show.showAR( this, 'defref_us-gaap_AvailableForSaleDebtSecuritiesAmortizedCostBasis', window );">Amortized Cost</a></td>
<td class="nump">6,286<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AvailableForSaleSecuritiesAccumulatedGrossUnrealizedGainBeforeTax', window );">Gross Unrealized Gains</a></td>
<td class="nump">8<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AvailableForSaleSecuritiesAccumulatedGrossUnrealizedLossBeforeTax', window );">Gross Unrealized Losses</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="top.Show.showAR( this, 'defref_us-gaap_AvailableForSaleSecuritiesDebtSecurities', window );">Fair Value, Total</a></td>
<td class="nump">6,294<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_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="top.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="top.Show.showAR( this, 'defref_us-gaap_AvailableForSaleDebtSecuritiesAmortizedCostBasis', window );">Amortized Cost</a></td>
<td class="nump">15,971<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AvailableForSaleSecuritiesAccumulatedGrossUnrealizedGainBeforeTax', window );">Gross Unrealized Gains</a></td>
<td class="nump">40<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AvailableForSaleSecuritiesAccumulatedGrossUnrealizedLossBeforeTax', window );">Gross Unrealized Losses</a></td>
<td class="num">(6)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AvailableForSaleSecuritiesDebtSecurities', window );">Fair Value, Total</a></td>
<td class="nump">16,005<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_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="top.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="top.Show.showAR( this, 'defref_us-gaap_AvailableForSaleSecuritiesDebtSecurities', window );">Fair Value, Total</a></td>
<td class="nump">6,952<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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="top.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="top.Show.showAR( this, 'defref_us-gaap_AvailableForSaleDebtSecuritiesAmortizedCostBasis', window );">Amortized Cost</a></td>
<td class="nump">4,628<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AvailableForSaleSecuritiesAccumulatedGrossUnrealizedGainBeforeTax', window );">Gross Unrealized Gains</a></td>
<td class="nump">3<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AvailableForSaleSecuritiesAccumulatedGrossUnrealizedLossBeforeTax', window );">Gross Unrealized Losses</a></td>
<td class="num">(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="top.Show.showAR( this, 'defref_us-gaap_AvailableForSaleSecuritiesDebtSecurities', window );">Fair Value, Total</a></td>
<td class="nump">4,630<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_FinancialInstrumentAxis=us-gaap_MunicipalBondsMember', window );">Municipal 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="top.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="top.Show.showAR( this, 'defref_us-gaap_AvailableForSaleDebtSecuritiesAmortizedCostBasis', window );">Amortized Cost</a></td>
<td class="nump">2,318<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AvailableForSaleSecuritiesAccumulatedGrossUnrealizedGainBeforeTax', window );">Gross Unrealized Gains</a></td>
<td class="nump">4<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AvailableForSaleSecuritiesAccumulatedGrossUnrealizedLossBeforeTax', window );">Gross Unrealized Losses</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="top.Show.showAR( this, 'defref_us-gaap_AvailableForSaleSecuritiesDebtSecurities', window );">Fair Value, Total</a></td>
<td class="nump">2,322<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_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="top.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="top.Show.showAR( this, 'defref_us-gaap_AvailableForSaleSecuritiesDebtSecurities', window );">Fair Value, Total</a></td>
<td class="nump">5,914<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_FinancialInstrumentAxis=cgnx_AgencyBondsMember', window );">Agency 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="top.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="top.Show.showAR( this, 'defref_us-gaap_AvailableForSaleDebtSecuritiesAmortizedCostBasis', window );">Amortized Cost</a></td>
<td class="nump">5,930<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AvailableForSaleSecuritiesAccumulatedGrossUnrealizedGainBeforeTax', 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="top.Show.showAR( this, 'defref_us-gaap_AvailableForSaleSecuritiesAccumulatedGrossUnrealizedLossBeforeTax', window );">Gross Unrealized Losses</a></td>
<td class="num">(16)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AvailableForSaleSecuritiesDebtSecurities', window );">Fair Value, Total</a></td>
<td class="nump">$ 5,914<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_AvailableForSaleDebtSecuritiesAmortizedCostBasis">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 320<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=82897076&amp;loc=d3e27161-111563<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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_AvailableForSaleSecuritiesAccumulatedGrossUnrealizedGainBeforeTax">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount before tax of unrealized gain in accumulated other comprehensive income (AOCI) on investments in debt and equity securities classified as available-for-sale.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 320<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=82897076&amp;loc=d3e27161-111563<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AvailableForSaleSecuritiesAccumulatedGrossUnrealizedGainBeforeTax</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_AvailableForSaleSecuritiesAccumulatedGrossUnrealizedLossBeforeTax">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount before tax of unrealized loss in accumulated other comprehensive income (AOCI) on investments in debt and equity securities classified as available-for-sale.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AvailableForSaleSecuritiesAccumulatedGrossUnrealizedLossBeforeTax</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of 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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 320<br> -SubTopic 10<br> -Section 45<br> -Paragraph 1<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=109979856&amp;loc=d3e26610-111562<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 50<br> -Paragraph 2<br> -Subparagraph (aa)<br> -URI http://asc.fasb.org/extlink&amp;oid=82897076&amp;loc=d3e27161-111563<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_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_InvestmentTypeAxis=us-gaap_ShortTermInvestmentsMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_InvestmentTypeAxis=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_InvestmentTypeAxis=cgnx_LongTermInvestmentsMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_InvestmentTypeAxis=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_us-gaap_FinancialInstrumentAxis=us-gaap_AssetBackedSecuritiesMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_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>30
<FILENAME>R48.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.19.3.a.u2</span><table class="report" border="0" cellspacing="2" id="idp6886938912">
<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, 2019</div></th></tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_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="top.Show.showAR( this, 'defref_us-gaap_ScheduleOfWeightedAverageNumberOfSharesTableTextBlock', window );">Calculation of Weighted Average Shares</a></td>
<td class="text"><div style="line-height:120%;padding-top:6px;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Weighted-average shares were calculated as follows (in thousands):</span></div><div style="line-height:120%;font-size:10pt;"><div style="padding-left:0px;text-indent:0px;line-height:normal;padding-top:10px;"><table cellpadding="0" cellspacing="0" style="font-family:Times New Roman;font-size:10pt;width:99.80506822612085%;border-collapse:collapse;text-align:left;"><tr><td colspan="9"/></tr><tr><td style="width:56%;"/><td style="width:13%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:13%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:13%;"/><td style="width:1%;"/></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;">&#160;</span></div></td><td colspan="8" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;">Year Ended December&#160;31,</span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-top:2px;padding-bottom:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;">2019</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-top:2px;padding-bottom:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">2018</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-top:2px;padding-bottom:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">2017</span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Basic weighted-average common shares outstanding</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>171,194</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>172,333</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>173,287</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Effect of dilutive stock awards</span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>4,075</span></span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>5,073</span></span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>6,264</span></span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Diluted weighted-average common and common-equivalent shares outstanding</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>175,269</span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>177,406</span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>179,551</span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr></table></div><span style="font-family:inherit;font-size:10pt;"><br/></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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_EarningsPerShareAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ScheduleOfWeightedAverageNumberOfSharesTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Tabular disclosure of the 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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -URI http://asc.fasb.org/extlink&amp;oid=6371337&amp;loc=d3e3550-109257<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_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>nonnum:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>31
<FILENAME>R40.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.19.3.a.u2</span><table class="report" border="0" cellspacing="2" id="idp6610915072">
<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, 2019</div></th></tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_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="top.Show.showAR( this, 'defref_us-gaap_LesseeOperatingLeaseLiabilityMaturityTableTextBlock', window );">Schedule of lease payments</a></td>
<td class="text"><div style="line-height:120%;padding-top:12px;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Future operating lease cash payments are as follows (in thousands):</span></div><div style="line-height:120%;padding-top:12px;text-align:center;font-size:10pt;"><div style="padding-left:0px;text-indent:0px;line-height:normal;padding-top:10px;"><table cellpadding="0" cellspacing="0" style="font-family:Times New Roman;font-size:10pt;margin-left:auto;margin-right:auto;width:99.80506822612085%;border-collapse:collapse;text-align:left;"><tr><td colspan="5"/></tr><tr><td style="width:84%;"/><td style="width:3%;"/><td style="width:1%;"/><td style="width:11%;"/><td style="width:1%;"/></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;font-weight:bold;text-decoration:underline;">Year Ended December&#160;31,</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;font-weight:bold;">Amount </span></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">2020</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>6,565</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">2021</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>5,558</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">2022</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>3,822</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">2023</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>3,000</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">2024</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>927</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Thereafter</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>310</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>20,182</span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr></table></div><span style="font-family:inherit;font-size:10pt;"><br/></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="top.Show.showAR( this, 'defref_us-gaap_LessorOperatingLeasePaymentsToBeReceivedMaturityTableTextBlock', window );">Schedule of lease receipts</a></td>
<td class="text"><div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Future minimum rental receipts under non-cancelable lease agreements are as follows (in thousands):</span></div><div style="line-height:120%;padding-top:12px;text-align:center;font-size:10pt;"><div style="padding-left:0px;text-indent:0px;line-height:normal;padding-top:10px;"><table cellpadding="0" cellspacing="0" style="font-family:Times New Roman;font-size:10pt;margin-left:auto;margin-right:auto;width:99.41520467836257%;border-collapse:collapse;text-align:left;"><tr><td colspan="5"/></tr><tr><td style="width:84%;"/><td style="width:3%;"/><td style="width:1%;"/><td style="width:11%;"/><td style="width:1%;"/></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;font-weight:bold;text-decoration:underline;">Year Ended December&#160;31,</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;font-weight:bold;">Amount</span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">2020</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>307</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">2021</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>307</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">2022</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>307</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>921</span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr></table></div><span style="font-family:inherit;font-size:10pt;"><br/></span></div><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LeasesAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Tabular disclosure of undiscounted cash flows of lessee's operating lease liability. Includes, but is not limited to, reconciliation of undiscounted cash flows to operating lease liability recognized in statement of financial position.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 842<br> -SubTopic 20<br> -Section 50<br> -Paragraph 6<br> -URI http://asc.fasb.org/extlink&amp;oid=77888426&amp;loc=SL77918701-209980<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LesseeOperatingLeaseLiabilityMaturityTableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>nonnum:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LessorOperatingLeasePaymentsToBeReceivedMaturityTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Tabular disclosure of maturity of undiscounted cash flows to be received by lessor on annual basis for operating lease.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 842<br> -SubTopic 30<br> -Section 50<br> -Paragraph 12<br> -URI http://asc.fasb.org/extlink&amp;oid=77888428&amp;loc=SL77919396-209981<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LessorOperatingLeasePaymentsToBeReceivedMaturityTableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>nonnum:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>32
<FILENAME>R44.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.19.3.a.u2</span><table class="report" border="0" cellspacing="2" id="idp6728134960">
<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, 2019</div></th></tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_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="top.Show.showAR( this, 'defref_us-gaap_ScheduleOfNotionalAmountsOfOutstandingDerivativePositionsTableTextBlock', window );">Schedule of Notional Amounts of Outstanding Derivative Positions</a></td>
<td class="text"><div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">The Company had the following outstanding forward contracts (in thousands): </span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><div style="padding-left:0px;text-indent:0px;line-height:normal;padding-top:10px;"><table cellpadding="0" cellspacing="0" style="font-family:Times New Roman;font-size:10pt;width:100%;border-collapse:collapse;text-align:left;"><tr><td colspan="12"/></tr><tr><td style="width:49%;"/><td style="width:12%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:10%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:11%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:11%;"/><td style="width:1%;"/></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="5" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:center;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">December 31, 2019</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="5" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:center;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">December 31, 2018</span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;text-decoration:underline;">Currency</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;text-decoration:underline;">Notional Value</span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;text-decoration:underline;">USD Equivalent</span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;text-decoration:underline;">Notional Value</span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;text-decoration:underline;">USD Equivalent</span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:13px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:13px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:13px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:13px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:13px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:13px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td></tr><tr><td colspan="12" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-style:italic;">Derivatives Not Designated as Hedging Instruments:</span></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Korean Won</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>161,951,500</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>139,688</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>3,125,000</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>2,808</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Euro</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>18,000</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>20,249</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>23,000</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>26,330</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Japanese Yen</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>575,000</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>5,291</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>380,000</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>3,459</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Mexican Peso</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>80,000</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>4,223</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>&#8212;</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>&#8212;</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">British Pound</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>2,700</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>3,569</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>2,500</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>3,204</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Hungarian Forint</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>870,000</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>2,962</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>750,000</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>2,685</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Taiwanese Dollar</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>37,450</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>1,256</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>55,000</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>1,807</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Canadian Dollar</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>1,300</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>1,000</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>990</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>726</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Singapore Dollar</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>845</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>628</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>700</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>514</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr></table></div><span style="font-family:inherit;font-size:10pt;"><br/></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="top.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="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Information regarding the fair value of the outstanding forward contracts was as follows (in thousands):</span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><div style="padding-left:0px;text-indent:0px;line-height:normal;padding-top:10px;"><table cellpadding="0" cellspacing="0" style="font-family:Times New Roman;font-size:10pt;width:100%;border-collapse:collapse;text-align:left;"><tr><td colspan="20"/></tr><tr><td style="width:15%;"/><td style="width:14%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:11%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:11%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:14%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:11%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:11%;"/><td style="width:1%;"/></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">&#160;</span></div></td><td colspan="9" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;font-weight:bold;">Asset Derivatives</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="9" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;font-weight:bold;">Liability Derivatives</span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td rowspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;border-top:1px solid #000000;"><div style="text-align:center;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;font-weight:bold;">Balance</span></div><div style="text-align:center;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;font-weight:bold;">Sheet</span></div><div style="text-align:center;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;font-weight:bold;">Location&#160; &#160;&#160;&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="7" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:center;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;font-weight:bold;">Fair Value</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td rowspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;border-top:1px solid #000000;"><div style="text-align:center;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;font-weight:bold;">Balance</span></div><div style="text-align:center;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;font-weight:bold;">Sheet</span></div><div style="text-align:center;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;font-weight:bold;">Location&#160; &#160;&#160;&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="7" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:center;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;font-weight:bold;">Fair Value</span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;font-weight:bold;">December 31, 2019</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;">December 31, 2018</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;font-weight:bold;">December 31, 2019</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;">December 31, 2018</span></div></td></tr><tr><td colspan="20" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-style:italic;">Derivatives Not Designated as Hedging Instruments:</span></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Economic hedge forward contracts</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Prepaid expenses and other current assets</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>857</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>1</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Accrued expenses</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>23</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>106</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr></table></div><span style="font-family:inherit;font-size:10pt;"><br/></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="top.Show.showAR( this, 'defref_us-gaap_OffsettingAssetsTableTextBlock', window );">Offsetting Assets</a></td>
<td class="text"><div style="line-height:120%;padding-top:12px;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">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 style="padding-left:0px;text-indent:0px;line-height:normal;padding-top:10px;"><table cellpadding="0" cellspacing="0" style="font-family:Times New Roman;font-size:10pt;width:99.80506822612085%;border-collapse:collapse;text-align:left;"><tr><td colspan="19"/></tr><tr><td style="width:18%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:13%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:13%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:19%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:13%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:11%;"/><td style="width:1%;"/></tr><tr><td colspan="9" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">Asset Derivatives</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="9" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">Liability Derivatives</span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">December&#160;31, 2019</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">December&#160;31, 2018</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">December&#160;31, 2019</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;border-top:1px solid #000000;"><div style="text-align:center;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">December&#160;31, 2018</span></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Gross amounts of recognized assets</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>857</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>1</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Gross amounts of recognized liabilities</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>23</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>106</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Gross amounts offset</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>&#8212;</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>&#8212;</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Gross amounts offset</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>&#8212;</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>&#8212;</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Net amount of assets presented</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>857</span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>1</span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Net amount of liabilities presented</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>23</span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>106</span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr></table></div><span style="font-family:inherit;font-size:10pt;"><br/></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="top.Show.showAR( this, 'defref_us-gaap_ScheduleOfDerivativeInstrumentsGainLossInStatementOfFinancialPerformanceTextBlock', window );">Derivative Instruments, Gain (Loss)</a></td>
<td class="text"><div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">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="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><div style="padding-left:0px;text-indent:0px;line-height:normal;padding-top:10px;"><table cellpadding="0" cellspacing="0" style="font-family:Times New Roman;font-size:10pt;width:99.80506822612085%;border-collapse:collapse;text-align:left;"><tr><td colspan="14"/></tr><tr><td style="width:22%;"/><td style="width:24%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:15%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:15%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:15%;"/><td style="width:1%;"/></tr><tr><td rowspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">&#160;</span></div></td><td rowspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;">Location in Financial Statements</span></div></td><td rowspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="11" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;">Year Ended December 31,</span></div></td></tr><tr><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;">2019</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">2018</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">2017</span></div></td></tr><tr><td colspan="14" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-style:italic;">Derivatives Designated as Hedging Instruments:</span></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Gains (losses) reclassified from accumulated other comprehensive income (loss) into current operations (effective portion)</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Revenue</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>&#8212;</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>&#8212;</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>30</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Research, development, and engineering expenses</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>&#8212;</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>&#8212;</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>3</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Selling, general, and administrative expenses</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>&#8212;</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>&#8212;</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>8</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Total gains (losses) reclassified from accumulated other comprehensive income (loss) into current operations</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>&#8212;</span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>&#8212;</span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>41</span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:13px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:13px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:13px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:13px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:13px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:13px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:13px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:13px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td></tr><tr><td colspan="14" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-style:italic;">Derivatives Not Designated as Hedging Instruments:</span></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Gains (losses) recognized in current operations</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Foreign currency gain (loss)</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>1,305</span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>(285</span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">)</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>270</span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr></table></div><span style="font-family:inherit;font-size:10pt;"><br/></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="top.Show.showAR( this, 'defref_us-gaap_ScheduleOfDerivativeInstrumentsEffectOnOtherComprehensiveIncomeLossTableTextBlock', window );">Schedule of Derivative Instruments, Effect on Other Comprehensive Income (Loss)</a></td>
<td class="text"><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><div style="padding-left:0px;text-indent:0px;line-height:normal;padding-top:10px;"><table cellpadding="0" cellspacing="0" style="font-family:Times New Roman;font-size:10pt;width:99.80506822612085%;border-collapse:collapse;text-align:left;"><tr><td colspan="14"/></tr><tr><td style="width:22%;"/><td style="width:24%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:15%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:15%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:15%;"/><td style="width:1%;"/></tr><tr><td rowspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">&#160;</span></div></td><td rowspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;">Location in Financial Statements</span></div></td><td rowspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="11" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;">Year Ended December 31,</span></div></td></tr><tr><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;">2019</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">2018</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">2017</span></div></td></tr><tr><td colspan="14" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-style:italic;">Derivatives Designated as Hedging Instruments:</span></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Gains (losses) reclassified from accumulated other comprehensive income (loss) into current operations (effective portion)</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Revenue</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>&#8212;</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>&#8212;</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>30</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Research, development, and engineering expenses</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>&#8212;</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>&#8212;</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>3</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Selling, general, and administrative expenses</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>&#8212;</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>&#8212;</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>8</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Total gains (losses) reclassified from accumulated other comprehensive income (loss) into current operations</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>&#8212;</span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>&#8212;</span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>41</span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:13px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:13px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:13px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:13px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:13px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:13px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:13px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:13px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td></tr><tr><td colspan="14" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-style:italic;">Derivatives Not Designated as Hedging Instruments:</span></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Gains (losses) recognized in current operations</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Foreign currency gain (loss)</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>1,305</span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>(285</span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">)</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>270</span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr></table></div><span style="font-family:inherit;font-size:10pt;"><br/></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_DerivativeInstrumentsAndHedgingActivitiesDisclosureAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Tabular disclosure of derivative and other financial assets that are subject to offsetting, including master netting arrangements.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 20<br> -Section 50<br> -Paragraph 3<br> -URI http://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 210<br> -SubTopic 20<br> -Section 50<br> -Paragraph 4<br> -URI http://asc.fasb.org/extlink&amp;oid=51824906&amp;loc=SL20225877-175312<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_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>nonnum:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ScheduleOfDerivativeInstrumentsEffectOnOtherComprehensiveIncomeLossTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Tabular disclosure of the effective portion of the gains and losses on derivative instruments designated (and non-derivative instruments) designated and qualifying in cash flow hedges and net investment hedges that was recognized in other comprehensive income (loss) during the current period.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 815<br> -SubTopic 10<br> -Section 50<br> -Paragraph 4C<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=109980867&amp;loc=SL5624171-113959<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ScheduleOfDerivativeInstrumentsEffectOnOtherComprehensiveIncomeLossTableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>nonnum:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ScheduleOfDerivativeInstrumentsGainLossInStatementOfFinancialPerformanceTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Tabular disclosure of the 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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 815<br> -SubTopic 10<br> -Section 50<br> -Paragraph 4E<br> -URI http://asc.fasb.org/extlink&amp;oid=109980867&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 http://asc.fasb.org/extlink&amp;oid=109980867&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 http://asc.fasb.org/extlink&amp;oid=109980867&amp;loc=SL5624171-113959<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_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>nonnum:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ScheduleOfDerivativeInstrumentsInStatementOfFinancialPositionFairValueTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Tabular disclosure of the 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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 815<br> -SubTopic 10<br> -Section 50<br> -Paragraph 4B<br> -URI http://asc.fasb.org/extlink&amp;oid=109980867&amp;loc=SL5624163-113959<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_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>nonnum:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ScheduleOfNotionalAmountsOfOutstandingDerivativePositionsTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Tabular disclosure of the notional amounts of outstanding derivative positions.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 815<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1A<br> -Subparagraph (d)<br> -URI http://asc.fasb.org/extlink&amp;oid=109980867&amp;loc=SL5579245-113959<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_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>nonnum:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>33
<FILENAME>R25.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.19.3.a.u2</span><table class="report" border="0" cellspacing="2" id="idp6607819072">
<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, 2019</div></th></tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_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="top.Show.showAR( this, 'defref_us-gaap_StockholdersEquityNoteDisclosureTextBlock', window );">Shareholders&#8217; Equity</a></td>
<td class="text">Shareholders&#8217; Equity<div style="line-height:120%;padding-top:6px;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;text-decoration:underline;">Preferred Stock</span></div><div style="line-height:120%;padding-top:6px;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">The Company has </span><span style="font-family:Arial;font-size:10pt;"><span>400,000</span></span><span style="font-family:Arial;font-size:10pt;"> shares of authorized but unissued </span><span style="font-family:Arial;font-size:10pt;"><span>$.01</span></span><span style="font-family:Arial;font-size:10pt;"> par value preferred stock.</span></div><div style="line-height:120%;padding-top:12px;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;text-decoration:underline;">Common Stock</span></div><div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">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 common stock from </span><span style="font-family:Arial;font-size:10pt;"><span>200,000,000</span></span><span style="font-family:Arial;font-size:10pt;"> to </span><span style="font-family:Arial;font-size:10pt;"><span>300,000,000</span></span><span style="font-family:Arial;font-size:10pt;">. 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 </span><span style="font-family:Arial;font-size:10pt;"><span>10,000,000</span></span><span style="font-family:Arial;font-size:10pt;">.</span></div><div style="line-height:120%;text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><br/></span></div><div style="line-height:120%;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">In October 2017, the Company&#8217;s Board of Directors declared a </span><span style="font-family:Arial;font-size:10pt;"><span>two</span></span><span style="font-family:Arial;font-size:10pt;">-for-one stock split, effected in the form of a stock dividend, on the shares of the Company&#8217;s common stock.  Each shareholder of record on November&#160;17, 2017 received an additional share of common stock for each share of common stock then held.  The stock was distributed on December&#160;1, 2017.  The Company retained the current par value of </span><span style="font-family:Arial;font-size:10pt;"><span>$.002</span></span><span style="font-family:Arial;font-size:10pt;"> per share for all shares of common stock.  All references in the financial statements to the number of shares outstanding, number of shares repurchased, per-share amounts, and stock option data related to the Company&#8217;s common stock have been adjusted to reflect the effect of the stock split for all periods presented.  Shareholders&#8217; equity reflects the stock split by reclassifying from &#8220;Additional paid in capital&#8221; and "Retained earnings" to &#8220;Common stock&#8221; an amount equal to the par value of the additional shares arising from the split.</span></div><div style="line-height:120%;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><br/></span></div><div style="line-height:120%;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Each outstanding share of common stock entitles the record holder to </span><span style="font-family:Arial;font-size:10pt;"><span>one</span></span><span style="font-family:Arial;font-size:10pt;"> 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="line-height:120%;padding-top:8px;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;text-decoration:underline;">Shareholder Rights Agreement</span></div><div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">On December 5, 2018, the Company&#8217;s Board of Directors allowed the Company&#8217;s Shareholder Rights Agreement and associated rights to expire in accordance with their terms without renewal. In connection with the adoption of the Shareholder Rights Agreement, the Company had filed Articles of Amendment to its Restated Articles of Organization establishing Series E Junior Participating Cumulative Preferred Stock with the Secretary of State of The Commonwealth of Massachusetts, setting forth the rights, powers, and preferences of the Series E Junior Participating Cumulative Preferred Stock issuable upon exercise of the rights (the &#8220;Preferred Shares&#8221;). Effective on April 26, 2019, the Company filed Articles of Amendment to the Company&#8217;s Restated Articles of Organization with the Secretary of State of The Commonwealth of Massachusetts eliminating the Preferred Shares and returning them to authorized but undesignated shares of the Company&#8217;s preferred stock.</span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;text-decoration:underline;">Stock Repurchases</span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">In April 2017, the Company's Board of Directors authorized the repurchase of </span><span style="font-family:Arial;font-size:10pt;"><span>$100,000,000</span></span><span style="font-family:Arial;font-size:10pt;"> of the Company's common stock.  The Company repurchased </span><span style="font-family:Arial;font-size:10pt;"><span>1,744,000</span></span><span style="font-family:Arial;font-size:10pt;"> shares at a cost of </span><span style="font-family:Arial;font-size:10pt;"><span>$100,000,000</span></span><span style="font-family:Arial;font-size:10pt;"> under this April 2017 program, including </span><span style="font-family:Arial;font-size:10pt;"><span>803,000</span></span><span style="font-family:Arial;font-size:10pt;"> shares at a cost of </span><span style="font-family:Arial;font-size:10pt;"><span>$45,200,000</span></span><span style="font-family:Arial;font-size:10pt;"> in 2018.  In February 2018, the Company's Board of Directors authorized the repurchase of </span><span style="font-family:Arial;font-size:10pt;"><span>$150,000,000</span></span><span style="font-family:Arial;font-size:10pt;"> of the Company's common stock.  The Company repurchased </span><span style="font-family:Arial;font-size:10pt;"><span>3,174,000</span></span><span style="font-family:Arial;font-size:10pt;"> shares at a cost of </span><span style="font-family:Arial;font-size:10pt;"><span>$150,000,000</span></span><span style="font-family:Arial;font-size:10pt;"> in 2018 under this February 2018 program.  In October 2018, the Company's Board of Directors authorized the repurchase of </span><span style="font-family:Arial;font-size:10pt;"><span>$200,000,000</span></span><span style="font-family:Arial;font-size:10pt;"> of the Company's common stock.  The Company repurchased </span><span style="font-family:Arial;font-size:10pt;"><span>203,000</span></span><span style="font-family:Arial;font-size:10pt;"> shares at a cost of </span><span style="font-family:Arial;font-size:10pt;"><span>$8,622,000</span></span><span style="font-family:Arial;font-size:10pt;"> in 2018 under this October 2018 program.  Total stock repurchases amounted to </span><span style="font-family:Arial;font-size:10pt;"><span>$203,822,000</span></span><span style="font-family:Arial;font-size:10pt;"> in 2018.  The Company repurchased </span><span style="font-family:Arial;font-size:10pt;"><span>1,398,000</span></span><span style="font-family:Arial;font-size:10pt;"> shares at a cost of </span><span style="font-family:Arial;font-size:10pt;"><span>$61,690,000</span></span><span style="font-family:Arial;font-size:10pt;"> in 2019 under this October 2018 program. As of December 31, 2019, the Company repurchased </span><span style="font-family:Arial;font-size:10pt;"><span>1,601,000</span></span><span style="font-family:Arial;font-size:10pt;"> shares at a cost of </span><span style="font-family:Arial;font-size:10pt;"><span>$70,312,000</span></span><span style="font-family:Arial;font-size:10pt;"> under this October 2018 program, leaving a remaining balance of </span><span style="font-family:Arial;font-size:10pt;"><span>$129,688,000</span></span><span style="font-family:Arial;font-size:10pt;">.  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.</span></div><div style="line-height:120%;padding-top:12px;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;text-decoration:underline;">Dividends</span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">The Company&#8217;s Board of Directors declared and paid cash dividends of </span><span style="font-family:Arial;font-size:10pt;"><span>$0.045</span></span><span style="font-family:Arial;font-size:10pt;"> per share in the first, second, and third quarters of 2018, and </span><span style="font-family:Arial;font-size:10pt;"><span>$0.050</span></span><span style="font-family:Arial;font-size:10pt;"> in the fourth quarter of 2018, as well as in the first, second, and third quarters of 2019. The dividend was increased to </span><span style="font-family:Arial;font-size:10pt;"><span>$0.055</span></span><span style="font-family:Arial;font-size:10pt;"> per share in the fourth quarter of 2019.  Total dividends amounted to </span><span style="font-family:Arial;font-size:10pt;"><span>$35,124,000</span></span><span style="font-family:Arial;font-size:10pt;"> and </span><span style="font-family:Arial;font-size:10pt;"><span>$31,865,000</span></span><span style="font-family:Arial;font-size:10pt;"> in 2019 and 2018, respectively.  Future dividends will be declared at the discretion of the Company's Board of Directors and will depend upon 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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The entire disclosure for 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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 505<br> -URI http://asc.fasb.org/topic&amp;trid=2208762<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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>nonnum:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>34
<FILENAME>R21.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.19.3.a.u2</span><table class="report" border="0" cellspacing="2" id="idp6878057232">
<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, 2019</div></th></tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_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="top.Show.showAR( this, 'defref_us-gaap_CommitmentsAndContingenciesDisclosureTextBlock', window );">Commitments and Contingencies</a></td>
<td class="text">Commitments and Contingencies<div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">As of </span><span style="font-family:Arial;font-size:10pt;">December&#160;31, 2019</span><span style="font-family:Arial;font-size:10pt;">, the Company had outstanding purchase orders totaling </span><span style="font-family:Arial;font-size:10pt;"><span>$7,707,000</span></span><span style="font-family:Arial;font-size:10pt;"> to purchase inventory from various vendors.  Certain of these purchase orders may be canceled by the Company, subject to cancellation penalties.  These purchase commitments relate to expected sales in 2020.</span></div><div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The entire disclosure for commitments and contingencies.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 450<br> -URI http://asc.fasb.org/topic&amp;trid=2127136<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 440<br> -URI http://asc.fasb.org/topic&amp;trid=2144648<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_CommitmentsAndContingenciesDisclosureTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>nonnum:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>35
<FILENAME>R29.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.19.3.a.u2</span><table class="report" border="0" cellspacing="2" id="idp6610060560">
<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, 2019</div></th></tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_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="top.Show.showAR( this, 'defref_us-gaap_EarningsPerShareTextBlock', window );">Weighted Average Shares</a></td>
<td class="text">Weighted Average Shares<div style="line-height:120%;padding-top:6px;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Weighted-average shares were calculated as follows (in thousands):</span></div><div style="line-height:120%;font-size:10pt;"><div style="padding-left:0px;text-indent:0px;line-height:normal;padding-top:10px;"><table cellpadding="0" cellspacing="0" style="font-family:Times New Roman;font-size:10pt;width:99.80506822612085%;border-collapse:collapse;text-align:left;"><tr><td colspan="9"/></tr><tr><td style="width:56%;"/><td style="width:13%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:13%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:13%;"/><td style="width:1%;"/></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;">&#160;</span></div></td><td colspan="8" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;">Year Ended December&#160;31,</span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-top:2px;padding-bottom:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;">2019</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-top:2px;padding-bottom:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">2018</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-top:2px;padding-bottom:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">2017</span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Basic weighted-average common shares outstanding</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>171,194</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>172,333</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>173,287</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Effect of dilutive stock awards</span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>4,075</span></span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>5,073</span></span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>6,264</span></span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Diluted weighted-average common and common-equivalent shares outstanding</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>175,269</span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>177,406</span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>179,551</span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr></table></div><span style="font-family:inherit;font-size:10pt;"><br/></span></div><div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Stock options to purchase </span><span style="font-family:Arial;font-size:10pt;"><span>5,735,608</span></span><span style="font-family:Arial;font-size:10pt;">, </span><span style="font-family:Arial;font-size:10pt;"><span>2,650,164</span></span><span style="font-family:Arial;font-size:10pt;">, and </span><span style="font-family:Arial;font-size:10pt;"><span>3,363,141</span></span><span style="font-family:Arial;font-size:10pt;"> shares of common stock, on a weighted-average basis, were outstanding in </span><span style="font-family:Arial;font-size:10pt;">2019</span><span style="font-family:Arial;font-size:10pt;">, </span><span style="font-family:Arial;font-size:10pt;">2018</span><span style="font-family:Arial;font-size:10pt;">, and </span><span style="font-family:Arial;font-size:10pt;">2017</span><span style="font-family:Arial;font-size:10pt;">, respectively, but were not included in the calculation of dilutive net income per share because they were anti-dilutive. Restricted stock units totaling </span><span style="font-family:Arial;font-size:10pt;"><span>13,092</span></span><span style="font-family:Arial;font-size:10pt;"> shares of common stock, on </span></div><div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">a weighted-average basis, were outstanding in 2019, but were not included in the calculation of dilutive net income per share because they were anti-dilutive.  There were no restricted stock units outstanding that were anti-dilutive in 2018 or 2017.</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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_EarningsPerShareAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_EarningsPerShareTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The entire disclosure for earnings per share.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -URI http://asc.fasb.org/topic&amp;trid=2144383<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_EarningsPerShareTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>nonnum:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>37
<FILENAME>R111.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.19.3.a.u2</span><table class="report" border="0" cellspacing="2" id="idp6861827152">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>Acquisitions - ViDi Systems S.A. (Details) - ViDi Systems S.A. [Member]<br> $ in Thousands</strong></div></th>
<th class="th">
<div>Apr. 04, 2017 </div>
<div>USD ($)</div>
</th>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionLineItems', window );"><strong>Business Acquisition [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_BusinessCombinationConsiderationTransferred1', window );">Purchase price</a></td>
<td class="nump">$ 23,015<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_PaymentsToAcquireBusinessesGross', window );">Cash paid in purchase price</a></td>
<td class="nump">20,019<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_BusinessCombinationConsiderationTransferredLiabilitiesIncurred', window );">Holdback security</a></td>
<td class="nump">2,996<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_cgnx_Taxdeductiblegoodwill', window );">Tax deductible goodwill</a></td>
<td class="nump">$ 5,112<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_NoncompeteAgreementsMember', window );">Non-compete agreements</a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionLineItems', window );"><strong>Business Acquisition [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife', window );">Intangible assets, 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="top.Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_TechnologyBasedIntangibleAssetsMember', window );">Completed Technologies [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="top.Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionLineItems', window );"><strong>Business Acquisition [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="top.Show.showAR( this, 'defref_us-gaap_AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife', window );">Intangible assets, useful life</a></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_cgnx_Taxdeductiblegoodwill">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>tax deductible goodwill</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cgnx_Taxdeductiblegoodwill</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_AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Weighted average 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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 350<br> -SubTopic 30<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)(3)<br> -URI http://asc.fasb.org/extlink&amp;oid=66006027&amp;loc=d3e16265-109275<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_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_BusinessAcquisitionLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of consideration transferred, consisting of acquisition-date fair value of assets transferred by the acquirer, liabilities incurred by the acquirer, and equity interest issued by the acquirer.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 805<br> -SubTopic 30<br> -Section 30<br> -Paragraph 8<br> -URI http://asc.fasb.org/extlink&amp;oid=109124213&amp;loc=d3e6613-128477<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 805<br> -SubTopic 30<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=35744584&amp;loc=d3e6927-128479<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 805<br> -SubTopic 30<br> -Section 30<br> -Paragraph 7<br> -URI http://asc.fasb.org/extlink&amp;oid=109124213&amp;loc=d3e6578-128477<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_BusinessCombinationConsiderationTransferred1</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_BusinessCombinationConsiderationTransferredLiabilitiesIncurred">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of liabilities incurred by the acquirer as part of consideration transferred in a business combination.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 805<br> -SubTopic 30<br> -Section 30<br> -Paragraph 7<br> -URI http://asc.fasb.org/extlink&amp;oid=109124213&amp;loc=d3e6578-128477<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 805<br> -SubTopic 30<br> -Section 25<br> -Paragraph 5<br> -URI http://asc.fasb.org/extlink&amp;oid=6911189&amp;loc=d3e6405-128476<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 805<br> -SubTopic 30<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (b)(3)<br> -URI http://asc.fasb.org/extlink&amp;oid=35744584&amp;loc=d3e6927-128479<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 805<br> -SubTopic 30<br> -Section 30<br> -Paragraph 8<br> -URI http://asc.fasb.org/extlink&amp;oid=109124213&amp;loc=d3e6613-128477<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_BusinessCombinationConsiderationTransferredLiabilitiesIncurred</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PaymentsToAcquireBusinessesGross">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The cash outflow associated with the acquisition of business during the period. The cash portion only of the acquisition price.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 805<br> -SubTopic 30<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (b)(1)<br> -URI http://asc.fasb.org/extlink&amp;oid=35744584&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 http://asc.fasb.org/extlink&amp;oid=109223946&amp;loc=d3e3213-108585<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_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_ViDiSystemsS.A.Member">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_BusinessAcquisitionAxis=cgnx_ViDiSystemsS.A.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_FiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_NoncompeteAgreementsMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_NoncompeteAgreementsMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_TechnologyBasedIntangibleAssetsMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_TechnologyBasedIntangibleAssetsMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><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>38
<FILENAME>R115.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.19.3.a.u2</span><table class="report" border="0" cellspacing="2" id="idp6622849632">
<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, 2019</div></th>
<th class="th"><div>Dec. 31, 2018</div></th>
<th class="th"><div>Dec. 31, 2017</div></th>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_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="top.Show.showAR( this, 'defref_us-gaap_ValuationAllowancesAndReservesBalance', window );">Balance at Beginning of Period</a></td>
<td class="nump">$ 1,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="top.Show.showAR( this, 'defref_us-gaap_ValuationAllowancesAndReservesBalance', window );">Balance at End of Period</a></td>
<td class="nump">1,821<span></span>
</td>
<td class="nump">$ 1,646<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_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="top.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="top.Show.showAR( this, 'defref_us-gaap_ValuationAllowancesAndReservesBalance', window );">Balance at Beginning of Period</a></td>
<td class="nump">1,646<span></span>
</td>
<td class="nump">1,568<span></span>
</td>
<td class="nump">$ 873<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ValuationAllowancesAndReservesChargedToCostAndExpense', window );">Charged to Costs and Expenses</a></td>
<td class="nump">440<span></span>
</td>
<td class="nump">464<span></span>
</td>
<td class="nump">724<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ValuationAllowancesAndReservesDeductions', window );">Deductions</a></td>
<td class="num">(286)<span></span>
</td>
<td class="num">(343)<span></span>
</td>
<td class="num">(116)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ValuationAllowancesAndReservesAdjustments', window );">Other</a></td>
<td class="nump">21<span></span>
</td>
<td class="num">(43)<span></span>
</td>
<td class="nump">87<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ValuationAllowancesAndReservesBalance', window );">Balance at End of Period</a></td>
<td class="nump">1,821<span></span>
</td>
<td class="nump">1,646<span></span>
</td>
<td class="nump">1,568<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_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="top.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="top.Show.showAR( this, 'defref_us-gaap_ValuationAllowancesAndReservesBalance', window );">Balance at Beginning of Period</a></td>
<td class="nump">6,112<span></span>
</td>
<td class="nump">5,309<span></span>
</td>
<td class="nump">4,116<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ValuationAllowancesAndReservesChargedToCostAndExpense', window );">Charged to Costs and Expenses</a></td>
<td class="nump">1,200<span></span>
</td>
<td class="nump">803<span></span>
</td>
<td class="nump">1,193<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ValuationAllowancesAndReservesBalance', window );">Balance at End of Period</a></td>
<td class="nump">$ 7,312<span></span>
</td>
<td class="nump">$ 6,112<span></span>
</td>
<td class="nump">$ 5,309<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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>A 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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of increase (decrease) in valuation and qualifying accounts and reserves from adjustment.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 235<br> -SubTopic 10<br> -Section S99<br> -Paragraph 4<br> -Subparagraph (SX 210.12-09)<br> -URI http://asc.fasb.org/extlink&amp;oid=26873400&amp;loc=d3e24092-122690<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of valuation and qualifying accounts and reserves.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 235<br> -SubTopic 10<br> -Section S99<br> -Paragraph 4<br> -Subparagraph (SX 210.12-09)<br> -URI http://asc.fasb.org/extlink&amp;oid=26873400&amp;loc=d3e24092-122690<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of increase in valuation and qualifying accounts and reserves from charge to cost and expense.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 235<br> -SubTopic 10<br> -Section S99<br> -Paragraph 4<br> -Subparagraph (SX 210.12-09)<br> -URI http://asc.fasb.org/extlink&amp;oid=26873400&amp;loc=d3e24092-122690<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_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_ValuationAllowancesAndReservesDeductions">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of decrease in valuation and qualifying accounts and reserves.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 235<br> -SubTopic 10<br> -Section S99<br> -Paragraph 4<br> -Subparagraph (SX 210.12-09)<br> -URI http://asc.fasb.org/extlink&amp;oid=26873400&amp;loc=d3e24092-122690<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_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_ValuationAllowanceOfDeferredTaxAssetsMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_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>39
<FILENAME>R9.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.19.3.a.u2</span><table class="report" border="0" cellspacing="2" id="idp6887293472">
<tr>
<th class="tl" colspan="2" 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" colspan="2"><div>Common Stock [Member]</div></th>
<th class="th"><div>Additional Paid-in Capital [Member]</div></th>
<th class="th"><sup>[1]</sup></th>
<th class="th"><div>Retained Earnings [Member]</div></th>
<th class="th"><sup>[1]</sup></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="top.Show.showAR( this, 'defref_us-gaap_StockholdersEquity', window );">Beginning Balance at Dec. 31, 2016</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="nump">$ 963,385,000<span></span>
</td>
<td class="nump">$ 344,000<span></span>
</td>
<td class="fn" style="border-bottom: 0px;"><sup>[1]</sup></td>
<td colspan="2" class="nump">$ 374,847,000<span></span>
</td>
<td colspan="2" class="nump">$ 644,622,000<span></span>
</td>
<td class="num">$ (56,428,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="top.Show.showAR( this, 'defref_us-gaap_CommonStockSharesIssued', window );">Beginning Balance, shares at Dec. 31, 2016</a></td>
<td class="th" style="border-bottom: 0px;"><sup>[1]</sup></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">171,878<span></span>
</td>
<td class="fn" style="border-bottom: 0px;"></td>
<td colspan="2" class="text">&#160;<span></span>
</td>
<td colspan="2" class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward', window );"><strong>Increase (Decrease) in Stockholders' Equity [Roll Forward]</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="fn" style="border-bottom: 0px;"></td>
<td colspan="2" class="text">&#160;<span></span>
</td>
<td colspan="2" class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised', window );">Issuance of common stock under stock option plans</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="nump">54,557,000<span></span>
</td>
<td class="nump">$ 8,000<span></span>
</td>
<td class="fn" style="border-bottom: 0px;"><sup>[1]</sup></td>
<td colspan="2" class="nump">54,549,000<span></span>
</td>
<td colspan="2" class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised', window );">Issuance of common stock under stock option plans, shares</a></td>
<td class="th" style="border-bottom: 0px;"><sup>[1]</sup></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">4,162<span></span>
</td>
<td class="fn" style="border-bottom: 0px;"></td>
<td colspan="2" class="text">&#160;<span></span>
</td>
<td colspan="2" class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_StockRepurchasedDuringPeriodValue', window );">Repurchase of common stock</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="num">(123,715,000)<span></span>
</td>
<td class="num">$ (5,000)<span></span>
</td>
<td class="fn" style="border-bottom: 0px;"><sup>[1]</sup></td>
<td colspan="2" class="text">&#160;<span></span>
</td>
<td colspan="2" class="num">(123,710,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="top.Show.showAR( this, 'defref_us-gaap_StockRepurchasedDuringPeriodShares', window );">Repurchase of common stock, shares</a></td>
<td class="th" style="border-bottom: 0px;"><sup>[1]</sup></td>
<td class="text">&#160;<span></span>
</td>
<td class="num">(2,533)<span></span>
</td>
<td class="fn" style="border-bottom: 0px;"></td>
<td colspan="2" class="text">&#160;<span></span>
</td>
<td colspan="2" class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue', window );">Stock-based compensation expense</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="nump">31,942,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="fn" style="border-bottom: 0px;"></td>
<td colspan="2" class="nump">31,942,000<span></span>
</td>
<td colspan="2" class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_DividendsCommonStockCash', window );">Payment of dividends</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="num">(29,037,000)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="fn" style="border-bottom: 0px;"></td>
<td colspan="2" class="text">&#160;<span></span>
</td>
<td colspan="2" class="num">(29,037,000)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_NetIncomeLoss', window );">Net income</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="nump">176,712,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="fn" style="border-bottom: 0px;"></td>
<td colspan="2" class="text">&#160;<span></span>
</td>
<td colspan="2" class="nump">176,712,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="top.Show.showAR( this, 'defref_us-gaap_OtherComprehensiveIncomeUnrealizedGainLossOnDerivativesArisingDuringPeriodNetOfTax', window );">Net unrealized gain (loss) on cash flow hedges, net of tax</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="nump">4,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="fn" style="border-bottom: 0px;"></td>
<td colspan="2" class="text">&#160;<span></span>
</td>
<td colspan="2" class="text">&#160;<span></span>
</td>
<td class="nump">4,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="top.Show.showAR( this, 'defref_us-gaap_OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIOnDerivativesNetOfTax', window );">Reclassification of net realized (gain) loss into current operations</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="num">(41,000)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="fn" style="border-bottom: 0px;"></td>
<td colspan="2" class="text">&#160;<span></span>
</td>
<td colspan="2" class="text">&#160;<span></span>
</td>
<td class="num">(41,000)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_OtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax', window );">Net unrealized gain (loss) on available-for-sale investments, net of tax</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="nump">703,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="fn" style="border-bottom: 0px;"></td>
<td colspan="2" class="text">&#160;<span></span>
</td>
<td colspan="2" class="text">&#160;<span></span>
</td>
<td class="nump">703,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="top.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="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="num">(829,000)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="fn" style="border-bottom: 0px;"></td>
<td colspan="2" class="text">&#160;<span></span>
</td>
<td colspan="2" class="text">&#160;<span></span>
</td>
<td class="num">(829,000)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax', window );">Foreign currency translation adjustments, net of tax</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="nump">21,992,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="fn" style="border-bottom: 0px;"></td>
<td colspan="2" class="text">&#160;<span></span>
</td>
<td colspan="2" class="text">&#160;<span></span>
</td>
<td class="nump">21,992,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="top.Show.showAR( this, 'defref_us-gaap_StockholdersEquity', window );">Balance at Dec. 31, 2017</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="nump">1,095,673,000<span></span>
</td>
<td class="nump">$ 347,000<span></span>
</td>
<td class="fn" style="border-bottom: 0px;"><sup>[1]</sup></td>
<td colspan="2" class="nump">461,338,000<span></span>
</td>
<td colspan="2" class="nump">668,587,000<span></span>
</td>
<td class="num">(34,599,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="top.Show.showAR( this, 'defref_us-gaap_CommonStockSharesIssued', window );">Balance, shares at Dec. 31, 2017</a></td>
<td class="th" style="border-bottom: 0px;"><sup>[1]</sup></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">173,507<span></span>
</td>
<td class="fn" style="border-bottom: 0px;"></td>
<td colspan="2" class="text">&#160;<span></span>
</td>
<td colspan="2" class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward', window );"><strong>Increase (Decrease) in Stockholders' Equity [Roll Forward]</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="fn" style="border-bottom: 0px;"></td>
<td colspan="2" class="text">&#160;<span></span>
</td>
<td colspan="2" class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_CumulativeEffectOfNewAccountingPrincipleInPeriodOfAdoption', window );">Adjustment as a result of the adoption of ASU 2016-06 Income Taxes - Intra-Entity Transfers Other than Inventory (Note 18)</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="num">(5,961,000)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="fn" style="border-bottom: 0px;"></td>
<td colspan="2" class="text">&#160;<span></span>
</td>
<td colspan="2" class="num">(5,961,000)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised', window );">Issuance of common stock under stock option plans</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="nump">26,783,000<span></span>
</td>
<td class="nump">$ 3,000<span></span>
</td>
<td class="fn" style="border-bottom: 0px;"><sup>[1]</sup></td>
<td colspan="2" class="nump">26,780,000<span></span>
</td>
<td colspan="2" class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised', window );">Issuance of common stock under stock option plans, shares</a></td>
<td class="th" style="border-bottom: 0px;"><sup>[1]</sup></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">1,493<span></span>
</td>
<td class="fn" style="border-bottom: 0px;"></td>
<td colspan="2" class="text">&#160;<span></span>
</td>
<td colspan="2" class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_StockRepurchasedDuringPeriodValue', window );">Repurchase of common stock</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="num">(203,822,000)<span></span>
</td>
<td class="num">$ (8,000)<span></span>
</td>
<td class="fn" style="border-bottom: 0px;"><sup>[1]</sup></td>
<td colspan="2" class="text">&#160;<span></span>
</td>
<td colspan="2" class="num">(203,814,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="top.Show.showAR( this, 'defref_us-gaap_StockRepurchasedDuringPeriodShares', window );">Repurchase of common stock, shares</a></td>
<td class="th" style="border-bottom: 0px;"><sup>[1]</sup></td>
<td class="text">&#160;<span></span>
</td>
<td class="num">(4,180)<span></span>
</td>
<td class="fn" style="border-bottom: 0px;"></td>
<td colspan="2" class="text">&#160;<span></span>
</td>
<td colspan="2" class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue', window );">Stock-based compensation expense</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="nump">41,090,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="fn" style="border-bottom: 0px;"></td>
<td colspan="2" class="nump">41,090,000<span></span>
</td>
<td colspan="2" class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_DividendsCommonStockCash', window );">Payment of dividends</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="num">(31,865,000)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="fn" style="border-bottom: 0px;"></td>
<td colspan="2" class="text">&#160;<span></span>
</td>
<td colspan="2" class="num">(31,865,000)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_NetIncomeLoss', window );">Net income</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="nump">219,267,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="fn" style="border-bottom: 0px;"></td>
<td colspan="2" class="text">&#160;<span></span>
</td>
<td colspan="2" class="nump">219,267,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="top.Show.showAR( this, 'defref_us-gaap_OtherComprehensiveIncomeUnrealizedGainLossOnDerivativesArisingDuringPeriodNetOfTax', window );">Net unrealized gain (loss) on cash flow hedges, net of tax</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="nump">0<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="fn" style="border-bottom: 0px;"></td>
<td colspan="2" class="text">&#160;<span></span>
</td>
<td colspan="2" class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIOnDerivativesNetOfTax', window );">Reclassification of net realized (gain) loss into current operations</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="nump">0<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="fn" style="border-bottom: 0px;"></td>
<td colspan="2" class="text">&#160;<span></span>
</td>
<td colspan="2" class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_OtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax', window );">Net unrealized gain (loss) on available-for-sale investments, net of tax</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="num">(1,185,000)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="fn" style="border-bottom: 0px;"></td>
<td colspan="2" class="text">&#160;<span></span>
</td>
<td colspan="2" class="text">&#160;<span></span>
</td>
<td class="num">(1,185,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="top.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="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="num">(501,000)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="fn" style="border-bottom: 0px;"></td>
<td colspan="2" class="text">&#160;<span></span>
</td>
<td colspan="2" class="text">&#160;<span></span>
</td>
<td class="num">(501,000)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax', window );">Foreign currency translation adjustments, net of tax</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="num">(4,216,000)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="fn" style="border-bottom: 0px;"></td>
<td colspan="2" class="text">&#160;<span></span>
</td>
<td colspan="2" class="text">&#160;<span></span>
</td>
<td class="num">(4,216,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="top.Show.showAR( this, 'defref_us-gaap_StockholdersEquity', window );">Balance at Dec. 31, 2018</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="nump">$ 1,135,263,000<span></span>
</td>
<td class="nump">$ 342,000<span></span>
</td>
<td class="fn" style="border-bottom: 0px;"><sup>[1]</sup></td>
<td colspan="2" class="nump">529,208,000<span></span>
</td>
<td colspan="2" class="nump">646,214,000<span></span>
</td>
<td class="num">(40,501,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="top.Show.showAR( this, 'defref_us-gaap_CommonStockSharesIssued', window );">Balance, shares at Dec. 31, 2018</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="nump">170,820<span></span>
</td>
<td class="nump">170,820<span></span>
</td>
<td class="fn" style="border-bottom: 0px;"><sup>[1]</sup></td>
<td colspan="2" class="text">&#160;<span></span>
</td>
<td colspan="2" class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward', window );"><strong>Increase (Decrease) in Stockholders' Equity [Roll Forward]</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="fn" style="border-bottom: 0px;"></td>
<td colspan="2" class="text">&#160;<span></span>
</td>
<td colspan="2" class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised', window );">Issuance of common stock under stock option plans</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="nump">$ 64,581,000<span></span>
</td>
<td class="nump">$ 6,000<span></span>
</td>
<td class="fn" style="border-bottom: 0px;"><sup>[1]</sup></td>
<td colspan="2" class="nump">64,575,000<span></span>
</td>
<td colspan="2" class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised', window );">Issuance of common stock under stock option plans, shares</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="nump">3,018<span></span>
</td>
<td class="nump">3,018<span></span>
</td>
<td class="fn" style="border-bottom: 0px;"><sup>[1]</sup></td>
<td colspan="2" class="text">&#160;<span></span>
</td>
<td colspan="2" class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_StockRepurchasedDuringPeriodValue', window );">Repurchase of common stock</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="num">$ (61,690,000)<span></span>
</td>
<td class="num">$ (3,000)<span></span>
</td>
<td class="fn" style="border-bottom: 0px;"><sup>[1]</sup></td>
<td colspan="2" class="text">&#160;<span></span>
</td>
<td colspan="2" class="num">(61,687,000)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_StockRepurchasedDuringPeriodShares', window );">Repurchase of common stock, shares</a></td>
<td class="th" style="border-bottom: 0px;"><sup>[1]</sup></td>
<td class="text">&#160;<span></span>
</td>
<td class="num">(1,398)<span></span>
</td>
<td class="fn" style="border-bottom: 0px;"></td>
<td colspan="2" class="text">&#160;<span></span>
</td>
<td colspan="2" class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue', window );">Stock-based compensation expense</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="nump">45,589,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="fn" style="border-bottom: 0px;"></td>
<td colspan="2" class="nump">45,589,000<span></span>
</td>
<td colspan="2" class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_DividendsCommonStockCash', window );">Payment of dividends</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="num">(35,124,000)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="fn" style="border-bottom: 0px;"></td>
<td colspan="2" class="text">&#160;<span></span>
</td>
<td colspan="2" class="num">(35,124,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="top.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">203,865,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="fn" style="border-bottom: 0px;"></td>
<td colspan="2" class="text">&#160;<span></span>
</td>
<td colspan="2" class="nump">203,865,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_OtherComprehensiveIncomeUnrealizedGainLossOnDerivativesArisingDuringPeriodNetOfTax', window );">Net unrealized gain (loss) on cash flow hedges, net of tax</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="nump">0<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="fn" style="border-bottom: 0px;"></td>
<td colspan="2" class="text">&#160;<span></span>
</td>
<td colspan="2" class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIOnDerivativesNetOfTax', window );">Reclassification of net realized (gain) loss into current operations</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="nump">0<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="fn" style="border-bottom: 0px;"></td>
<td colspan="2" class="text">&#160;<span></span>
</td>
<td colspan="2" class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_OtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax', window );">Net unrealized gain (loss) on available-for-sale investments, net of tax</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="nump">5,219,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="fn" style="border-bottom: 0px;"></td>
<td colspan="2" class="text">&#160;<span></span>
</td>
<td colspan="2" class="text">&#160;<span></span>
</td>
<td class="nump">5,219,000<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax', window );">Reclassification of net realized (gain) loss on the sale of available-for-sale investments</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="num">(1,452,000)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="fn" style="border-bottom: 0px;"></td>
<td colspan="2" class="text">&#160;<span></span>
</td>
<td colspan="2" class="text">&#160;<span></span>
</td>
<td class="num">(1,452,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="top.Show.showAR( this, 'defref_us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax', window );">Foreign currency translation adjustments, net of tax</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="num">(541,000)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="fn" style="border-bottom: 0px;"></td>
<td colspan="2" class="text">&#160;<span></span>
</td>
<td colspan="2" class="text">&#160;<span></span>
</td>
<td class="num">(541,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="top.Show.showAR( this, 'defref_us-gaap_StockholdersEquity', window );">Balance at Dec. 31, 2019</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="nump">$ 1,355,710,000<span></span>
</td>
<td class="nump">$ 345,000<span></span>
</td>
<td class="fn" style="border-bottom: 0px;"><sup>[1]</sup></td>
<td colspan="2" class="nump">$ 639,372,000<span></span>
</td>
<td colspan="2" 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="top.Show.showAR( this, 'defref_us-gaap_CommonStockSharesIssued', window );">Balance, shares at Dec. 31, 2019</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="nump">172,440<span></span>
</td>
<td class="nump">172,440<span></span>
</td>
<td class="fn" style="border-bottom: 0px;"><sup>[1]</sup></td>
<td colspan="2" class="text">&#160;<span></span>
</td>
<td colspan="2" class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr><td colspan="9"></td></tr>
<tr><td colspan="9"><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">Prior period amounts have been adjusted to reflect the two-for-one stock split effected in the form of a stock dividend which occurred in the fourth quarter of 2017.</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_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of increase to additional paid-in capital (APIC) from recognition of equity-based compensation.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 20<br> -Section 55<br> -Paragraph 12<br> -URI http://asc.fasb.org/extlink&amp;oid=109196918&amp;loc=d3e11149-113907<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=109197908&amp;loc=d3e5047-113901<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 20<br> -Section 55<br> -Paragraph 13<br> -URI http://asc.fasb.org/extlink&amp;oid=109196918&amp;loc=d3e11178-113907<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 35<br> -Paragraph 2<br> -URI http://asc.fasb.org/extlink&amp;oid=79507207&amp;loc=d3e4534-113899<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_CommonStockSharesIssued">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Total number of common shares of an entity that have been sold or granted to shareholders (includes common shares that were issued, repurchased and remain in the treasury). These shares represent capital invested by the firm's shareholders and owners, and may be all or only a portion of the number of shares authorized. Shares issued include shares outstanding and shares held in the treasury.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(29))<br> -URI http://asc.fasb.org/extlink&amp;oid=6877327&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_CommonStockSharesIssued</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_CumulativeEffectOfNewAccountingPrincipleInPeriodOfAdoption">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount after tax of increase (decrease) to equity or (increase) decrease to net assets, resulting from the cumulative effect adjustment of a new accounting principle applied in the period of adoption.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_CumulativeEffectOfNewAccountingPrincipleInPeriodOfAdoption</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_DividendsCommonStockCash">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of paid and unpaid common stock dividends declared with the form of settlement in cash.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 505<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.3-04)<br> -URI http://asc.fasb.org/extlink&amp;oid=27012166&amp;loc=d3e187085-122770<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>A 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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The portion of profit or loss for the period, net of income taxes, which is attributable to the parent.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section 45<br> -Paragraph 1A<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=114867106&amp;loc=SL7669619-108580<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 942<br> -SubTopic 220<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-04(22))<br> -URI http://asc.fasb.org/extlink&amp;oid=114873765&amp;loc=SL114874048-224260<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 1B<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=114867106&amp;loc=SL7669625-108580<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 http://asc.fasb.org/extlink&amp;oid=114873790&amp;loc=SL114874131-224263<br><br>Reference 5: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03(20))<br> -URI http://asc.fasb.org/extlink&amp;oid=115205541&amp;loc=SL114868664-224227<br><br>Reference 6: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 28<br> -URI http://asc.fasb.org/extlink&amp;oid=109223946&amp;loc=d3e3602-108585<br><br>Reference 7: 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 http://asc.fasb.org/extlink&amp;oid=6371337&amp;loc=d3e3550-109257<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount after tax and reclassification adjustments, of appreciation (loss) in value of unsold available-for-sale securities. Excludes amounts related to other than temporary impairment (OTTI) loss.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section 45<br> -Paragraph 10A<br> -Subparagraph (e)<br> -URI http://asc.fasb.org/extlink&amp;oid=114867106&amp;loc=SL7669646-108580<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount after tax and reclassification adjustments of gain (loss) on foreign currency translation adjustments, foreign currency transactions designated and effective as economic hedges of a net investment in a foreign entity and intra-entity foreign currency transactions that are of a long-term-investment nature.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section 45<br> -Paragraph 10A<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=114867106&amp;loc=SL7669646-108580<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 830<br> -SubTopic 30<br> -Section 45<br> -Paragraph 20<br> -Subparagraph (b,c)<br> -URI http://asc.fasb.org/extlink&amp;oid=109240241&amp;loc=d3e32211-110900<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount after tax of 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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section 45<br> -Paragraph 15<br> -URI http://asc.fasb.org/extlink&amp;oid=114867106&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 http://asc.fasb.org/extlink&amp;oid=114867106&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 http://asc.fasb.org/extlink&amp;oid=82897076&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 http://asc.fasb.org/extlink&amp;oid=114867106&amp;loc=SL34724391-108580<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_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_OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIOnDerivativesNetOfTax">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount after tax of reclassification adjustment from accumulated other comprehensive income of accumulated gain (loss) realized from derivative instruments designated and qualifying as the effective portion of cash flow hedges and an entity's share of an equity investee's deferred hedging gain (loss).</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 815<br> -SubTopic 10<br> -Section 50<br> -Paragraph 4<br> -Subparagraph c<br> -URI http://asc.fasb.org/extlink&amp;oid=109980867&amp;loc=d3e41638-113959<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 17A<br> -URI http://asc.fasb.org/extlink&amp;oid=114867106&amp;loc=SL34724391-108580<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 15<br> -URI http://asc.fasb.org/extlink&amp;oid=114867106&amp;loc=d3e689-108580<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 11<br> -URI http://asc.fasb.org/extlink&amp;oid=114867106&amp;loc=d3e637-108580<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIOnDerivativesNetOfTax</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_OtherComprehensiveIncomeUnrealizedGainLossOnDerivativesArisingDuringPeriodNetOfTax">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount after tax of increase (decrease) in accumulated gain (loss) from derivative instruments designated and qualifying as the effective portion of cash flow hedges and an entity's share of an equity investee's increase (decrease) in deferred hedging gain (loss).</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section 45<br> -Paragraph 10A<br> -Subparagraph (d)<br> -URI http://asc.fasb.org/extlink&amp;oid=114867106&amp;loc=SL7669646-108580<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 30<br> -Section 45<br> -Paragraph 1<br> -URI http://asc.fasb.org/extlink&amp;oid=109978405&amp;loc=d3e80720-113993<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 11<br> -URI http://asc.fasb.org/extlink&amp;oid=114867106&amp;loc=d3e637-108580<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OtherComprehensiveIncomeUnrealizedGainLossOnDerivativesArisingDuringPeriodNetOfTax</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Number of share options (or share units) exercised during the current period.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(iv)(2)<br> -URI http://asc.fasb.org/extlink&amp;oid=109197908&amp;loc=d3e5070-113901<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 505<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.3-04)<br> -URI http://asc.fasb.org/extlink&amp;oid=27012166&amp;loc=d3e187085-122770<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(28))<br> -URI http://asc.fasb.org/extlink&amp;oid=6877327&amp;loc=d3e13212-122682<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(29))<br> -URI http://asc.fasb.org/extlink&amp;oid=6877327&amp;loc=d3e13212-122682<br><br>Reference 5: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 505<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -URI http://asc.fasb.org/extlink&amp;oid=109259400&amp;loc=d3e21463-112644<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Value of stock issued as a result of the exercise of stock options.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 505<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -URI http://asc.fasb.org/extlink&amp;oid=109259400&amp;loc=d3e21463-112644<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 505<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.3-04)<br> -URI http://asc.fasb.org/extlink&amp;oid=27012166&amp;loc=d3e187085-122770<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02.29-31)<br> -URI http://asc.fasb.org/extlink&amp;oid=6877327&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_StockRepurchasedDuringPeriodShares">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Number of shares 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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 505<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -URI http://asc.fasb.org/extlink&amp;oid=109259400&amp;loc=d3e21463-112644<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(29))<br> -URI http://asc.fasb.org/extlink&amp;oid=6877327&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 http://asc.fasb.org/extlink&amp;oid=27012166&amp;loc=d3e187085-122770<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(28))<br> -URI http://asc.fasb.org/extlink&amp;oid=6877327&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Equity impact of the value of 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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(28))<br> -URI http://asc.fasb.org/extlink&amp;oid=6877327&amp;loc=d3e13212-122682<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 505<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -URI http://asc.fasb.org/extlink&amp;oid=109259400&amp;loc=d3e21463-112644<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 505<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.3-04)<br> -URI http://asc.fasb.org/extlink&amp;oid=27012166&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 http://asc.fasb.org/extlink&amp;oid=6877327&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Total of all stockholders' equity (deficit) items, net of receivables from officers, directors, owners, and affiliates of the entity which are attributable to the parent. The amount of the economic entity's stockholders' equity attributable to the parent excludes the amount of stockholders' equity which is allocable to that ownership interest in subsidiary equity which is not attributable to the parent (noncontrolling interest, minority interest). This excludes temporary equity and is sometimes called permanent equity.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 310<br> -SubTopic 10<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SAB Topic 4.E)<br> -URI http://asc.fasb.org/extlink&amp;oid=27010918&amp;loc=d3e74512-122707<br><br>Reference 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(31))<br> -URI http://asc.fasb.org/extlink&amp;oid=6877327&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(29))<br> -URI http://asc.fasb.org/extlink&amp;oid=6877327&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(30))<br> -URI http://asc.fasb.org/extlink&amp;oid=6877327&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_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>40
<FILENAME>R5.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.19.3.a.u2</span><table class="report" border="0" cellspacing="2" id="idp6887530000">
<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, 2019</div></th>
<th class="th"><div>Dec. 31, 2018</div></th>
<th class="th"><div>Dec. 31, 2017</div></th>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_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="top.Show.showAR( this, 'defref_us-gaap_OtherComprehensiveIncomeLossDerivativesQualifyingAsHedgesTax', window );">Tax effect of unrealized gain on cash flow hedges</a></td>
<td class="nump">$ 0<span></span>
</td>
<td class="nump">$ 0<span></span>
</td>
<td class="num">$ (5)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodTax', window );">Tax effect of unrealized gain (loss) on available-for-sale investments</a></td>
<td class="nump">515<span></span>
</td>
<td class="num">(188)<span></span>
</td>
<td class="nump">2<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_OtherComprehensiveIncomeForeignCurrencyTranslationGainLossArisingDuringPeriodTax', window );">Tax effect 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_OtherComprehensiveIncomeForeignCurrencyTranslationGainLossArisingDuringPeriodTax">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of tax expense (benefit), before reclassification adjustments of gain (loss) on foreign currency translation adjustments, foreign currency transactions designated and effective as economic hedges of a net investment in a foreign entity and intra-entity foreign currency transactions that are of a long-term-investment nature.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section 45<br> -Paragraph 10A<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=114867106&amp;loc=SL7669646-108580<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 830<br> -SubTopic 30<br> -Section 45<br> -Paragraph 20<br> -Subparagraph (c)<br> -URI http://asc.fasb.org/extlink&amp;oid=109240241&amp;loc=d3e32211-110900<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 12<br> -URI http://asc.fasb.org/extlink&amp;oid=114867106&amp;loc=d3e640-108580<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OtherComprehensiveIncomeForeignCurrencyTranslationGainLossArisingDuringPeriodTax</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_OtherComprehensiveIncomeLossDerivativesQualifyingAsHedgesTax">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of tax expense (benefit), after reclassification adjustments, of increase (decrease) in accumulated gain (loss) from derivative instruments designated and qualifying as the effective portion of cash flow hedges and an entity's share of an equity investee's increase (decrease) in deferred hedging gain (loss).</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section 45<br> -Paragraph 10A<br> -Subparagraph (d)<br> -URI http://asc.fasb.org/extlink&amp;oid=114867106&amp;loc=SL7669646-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 12<br> -URI http://asc.fasb.org/extlink&amp;oid=114867106&amp;loc=d3e640-108580<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OtherComprehensiveIncomeLossDerivativesQualifyingAsHedgesTax</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of tax expense (benefit) before reclassification adjustments of unrealized holding gain (loss) on available-for-sale securities.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section 45<br> -Paragraph 12<br> -URI http://asc.fasb.org/extlink&amp;oid=114867106&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 http://asc.fasb.org/extlink&amp;oid=114867106&amp;loc=SL7669646-108580<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_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>41
<FILENAME>R1.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.19.3.a.u2</span><table class="report" border="0" cellspacing="2" id="idp6887621168">
<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, 2019</div></th>
<th class="th"><div>Jan. 26, 2020</div></th>
<th class="th"><div>Jun. 30, 2019</div></th>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_dei_CoverAbstract', window );"><strong>Cover page.</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_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="top.Show.showAR( this, 'defref_dei_DocumentQuarterlyReport', window );">Document Quarterly 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="top.Show.showAR( this, 'defref_dei_DocumentPeriodEndDate', window );">Document Period End Date</a></td>
<td class="text">Dec. 31,  2019<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_dei_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="top.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="top.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="top.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="top.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="top.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="top.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="top.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="top.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="top.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="top.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="top.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="top.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="top.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="top.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="top.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="top.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="top.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="top.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="top.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="top.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="top.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="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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,800,874,313<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_dei_EntityCommonStockSharesOutstanding', window );">Entity Common Stock, Shares Outstanding</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">172,611,232<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_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="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_dei_CurrentFiscalYearEndDate', window );">Current Fiscal Year End Date</a></td>
<td class="text">--12-31<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_dei_DocumentFiscalYearFocus', window );">Document Fiscal Year Focus</a></td>
<td class="text">2019<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_dei_DocumentFiscalPeriodFocus', window );">Document Fiscal Period Focus</a></td>
<td class="text">FY<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_dei_AmendmentFlag', window );">Amendment Flag</a></td>
<td class="text">false<span></span>
</td>
<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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Boolean flag that is true when the XBRL content amends previously-filed or accepted submission.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_AmendmentFlag</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:booleanItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_CityAreaCode">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Area code of city</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Cover page.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>End date of current fiscal year in the format --MM-DD.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_CurrentFiscalYearEndDate</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:gMonthDayItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_DocumentFiscalPeriodFocus">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Fiscal period values are FY, Q1, Q2, and Q3.  1st, 2nd and 3rd quarter 10-Q or 10-QT statements have value Q1, Q2, and Q3 respectively, with 10-K, 10-KT or other fiscal year statements having FY.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_DocumentFiscalPeriodFocus</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dei:fiscalPeriodItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_DocumentFiscalYearFocus">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>This is focus fiscal year of the document report in CCYY format. For a 2006 annual report, which may also provide financial information from prior periods, fiscal 2006 should be given as the fiscal year focus. Example: 2006.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_DocumentFiscalYearFocus</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:gYearItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_DocumentPeriodEndDate">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The end date of the period reflected on the cover page if a periodic report. For all other reports and registration statements containing historical data, it is the date up through which that historical data is presented.  If there is no historical data in the report, use the filing date. The format of the date is CCYY-MM-DD.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_DocumentPeriodEndDate</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:dateItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_DocumentQuarterlyReport">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Boolean flag that is true only for a form used as an quarterly report.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Form 10-Q<br> -Number 240<br> -Section 13<br> -Subsection a-13<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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_DocumentQuarterlyReport</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_DocumentTransitionReport">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Boolean flag that is true only for a form used as a transition report.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name 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="top.Show.toggleNext( this );">+ 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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The type of document being provided (such as 10-K, 10-Q, 485BPOS, etc). The document type is limited to the same value as the supporting SEC submission type, or the word 'Other'.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_DocumentType</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dei:submissionTypeItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_EntityAddressAddressLine1">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Name of the City or Town</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Code for the postal or zip code</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Name of the state or province.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>A unique 10-digit SEC-issued value to identify entities that have filed disclosures with the SEC. It is commonly abbreviated as CIK.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Regulation 12B<br> -Number 240<br> -Section 12<br> -Subsection b-2<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_EntityCentralIndexKey</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dei:centralIndexKeyItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_EntityCommonStockSharesOutstanding">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Indicate number of shares or other units outstanding of each of registrant's classes of capital or common stock or other ownership interests, if and as stated on cover of related periodic report. Where multiple classes or units exist define each class/interest by adding class of stock items such as Common Class A [Member], Common Class B [Member] or Partnership Interest [Member] onto the Instrument [Domain] of the Entity Listings, Instrument.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_EntityCommonStockSharesOutstanding</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_EntityCurrentReportingStatus">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Indicate 'Yes' or 'No' whether registrants (1) have filed all reports required to be filed by Section 13 or 15(d) of the Securities Exchange Act of 1934 during the preceding 12 months (or for such shorter period that registrants were required to file such reports), and (2) have been subject to such filing requirements for the past 90 days. This information should be based on the registrant's current or most recent filing containing the related disclosure.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_EntityCurrentReportingStatus</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dei:yesNoItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_EntityEmergingGrowthCompany">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Indicate if registrant meets the emerging growth company criteria.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Regulation 12B<br> -Number 240<br> -Section 12<br> -Subsection b-2<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_EntityEmergingGrowthCompany</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:booleanItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_EntityFileNumber">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Indicate 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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Regulation 12B<br> -Number 240<br> -Section 12<br> -Subsection b-2<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Boolean flag that is true when the registrant has submitted electronically every Interactive Data File required to be submitted pursuant to Rule 405 of Regulation S-T during the preceding 12 months (or for such shorter period that the registrant was required to submit such files).</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Regulation S-T<br> -Number 232<br> -Section 405<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_EntityInteractiveDataCurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dei:yesNoItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_EntityPublicFloat">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The aggregate 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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The exact name of the entity filing the report as specified in its charter, which is required by forms filed with the SEC.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Regulation 12B<br> -Number 240<br> -Section 12<br> -Subsection b-2<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_EntityRegistrantName</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:normalizedStringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Boolean flag that is true when the registrant is a shell company as defined in Rule 12b-2 of the Exchange Act.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Regulation 12B<br> -Number 240<br> -Section 12<br> -Subsection b-2<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Regulation 12B<br> -Number 240<br> -Section 12<br> -Subsection b-2<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The 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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Regulation 12B<br> -Number 240<br> -Section 12<br> -Subsection b-2<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Indicate 'Yes' or 'No' 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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Indicate 'Yes' or 'No' 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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_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_LocalPhoneNumber">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Local phone number for entity.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Title of a 12(b) registered security.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Exchange Act<br> -Number 240<br> -Section 12<br> -Subsection b<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Exchange Act<br> -Number 240<br> -Section 12<br> -Subsection d1-1<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_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>42
<FILENAME>R104.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.19.3.a.u2</span><table class="report" border="0" cellspacing="2" id="idp6886770816">
<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, 2019</div></th>
<th class="th"><div>Dec. 31, 2018</div></th>
<th class="th"><div>Dec. 31, 2017</div></th>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_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="top.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="top.Show.showAR( this, 'defref_us-gaap_ConcentrationRiskByBenchmarkAxis=us-gaap_SalesRevenueNetMember', window );">Total Revenue | Revenue from a single customer, percentage</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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="top.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="nump">20.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="top.Show.showAR( this, 'defref_us-gaap_ConcentrationRiskByBenchmarkAxis=us-gaap_AccountsReceivableMember', window );">Accounts Receivable [Member] | Revenue from a single customer, percentage</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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="top.Show.showAR( this, 'defref_us-gaap_ConcentrationRiskPercentage1', window );">Maximum percentage of revenue accountability</a></td>
<td class="nump">24.00%<span></span>
</td>
<td class="nump">30.00%<span></span>
</td>
<td class="nump">40.00%<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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>For 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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 275<br> -SubTopic 10<br> -Section 50<br> -Paragraph 18<br> -URI http://asc.fasb.org/extlink&amp;oid=99393423&amp;loc=d3e6351-108592<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 20<br> -URI http://asc.fasb.org/extlink&amp;oid=109250915&amp;loc=d3e13531-108611<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 21<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=109250915&amp;loc=d3e13537-108611<br><br>Reference 4: 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 http://asc.fasb.org/extlink&amp;oid=99393423&amp;loc=d3e6404-108592<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_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>num:percentItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_NumberOfReportableSegments">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Number of segments reported by the entity. A reportable segment is a component of an entity for which there is an accounting requirement to report separate financial information on that component in the entity's financial statements.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_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_us-gaap_ConcentrationRiskByBenchmarkAxis=us-gaap_AccountsReceivableMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_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>43
<FILENAME>R100.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.19.3.a.u2</span><table class="report" border="0" cellspacing="2" id="idp6606990704">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>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, 2019</div></th>
<th class="th"><div>Dec. 31, 2018</div></th>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_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="top.Show.showAR( this, 'defref_us-gaap_UnrecognizedTaxBenefits', window );">Balance of reserve for income taxes</a></td>
<td class="nump">$ 7,294<span></span>
</td>
<td class="nump">$ 6,749<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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="text">&#160;<span></span>
</td>
<td class="nump">69<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_UnrecognizedTaxBenefitsPeriodIncreaseDecrease', window );">Gross amounts of increases in unrecognized tax benefits as a result of tax positions taken in prior periods</a></td>
<td class="nump">199<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_UnrecognizedTaxBenefitsIncreasesResultingFromCurrentPeriodTaxPositions', window );">Gross amounts of increases in unrecognized tax benefits as a result of tax positions taken in the current period</a></td>
<td class="nump">5,259<span></span>
</td>
<td class="nump">1,499<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_UnrecognizedTaxBenefitsReductionsResultingFromLapseOfApplicableStatuteOfLimitations', window );">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,161)<span></span>
</td>
<td class="num">(1,023)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_UnrecognizedTaxBenefits', window );">Balance of reserve for income taxes</a></td>
<td class="nump">$ 11,591<span></span>
</td>
<td class="nump">$ 7,294<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ReconciliationOfUnrecognizedTaxBenefitsExcludingAmountsPertainingToExaminedTaxReturnsRollForward">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>A 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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of unrecognized tax benefits.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 45<br> -Paragraph 10B<br> -URI http://asc.fasb.org/extlink&amp;oid=84176650&amp;loc=SL37586934-109318<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 15A<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=84230637&amp;loc=SL6600010-109319<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_UnrecognizedTaxBenefits</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_UnrecognizedTaxBenefitsIncreasesResultingFromCurrentPeriodTaxPositions">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of increase in unrecognized tax benefits resulting from tax positions that have been or will be taken in current period tax return.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://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> -Subparagraph (a)(2)<br> -URI http://asc.fasb.org/extlink&amp;oid=84230637&amp;loc=SL6600010-109319<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_UnrecognizedTaxBenefitsIncreasesResultingFromCurrentPeriodTaxPositions</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_UnrecognizedTaxBenefitsIncreasesResultingFromPriorPeriodTaxPositions">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of increase in unrecognized tax benefits resulting from tax positions taken in prior period tax returns.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 15A<br> -Subparagraph (a)(1)<br> -URI http://asc.fasb.org/extlink&amp;oid=84230637&amp;loc=SL6600010-109319<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_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_UnrecognizedTaxBenefitsPeriodIncreaseDecrease">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of increase (decrease) in unrecognized tax benefits attributable to uncertain tax positions taken in tax returns.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 15A<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=84230637&amp;loc=SL6600010-109319<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_UnrecognizedTaxBenefitsPeriodIncreaseDecrease</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>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_UnrecognizedTaxBenefitsReductionsResultingFromLapseOfApplicableStatuteOfLimitations">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of decrease in unrecognized tax benefits resulting from lapses of applicable statutes of limitations.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://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> -Subparagraph (a)(4)<br> -URI http://asc.fasb.org/extlink&amp;oid=84230637&amp;loc=SL6600010-109319<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_UnrecognizedTaxBenefitsReductionsResultingFromLapseOfApplicableStatuteOfLimitations</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>44
<FILENAME>R38.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.19.3.a.u2</span><table class="report" border="0" cellspacing="2" id="idp6878066448">
<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, 2019</div></th></tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_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="top.Show.showAR( this, 'defref_us-gaap_ScheduleOfInventoryCurrentTableTextBlock', window );">Inventories</a></td>
<td class="text"><div style="line-height:120%;padding-top:6px;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Inventories consisted of the following (in thousands):</span></div><div style="line-height:120%;font-size:10pt;"><div style="padding-left:0px;text-indent:0px;line-height:normal;padding-top:10px;"><table cellpadding="0" cellspacing="0" style="font-family:Times New Roman;font-size:10pt;width:100%;border-collapse:collapse;text-align:left;"><tr><td colspan="8"/></tr><tr><td style="width:71%;"/><td style="width:1%;"/><td style="width:12%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:12%;"/><td style="width:1%;"/></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span><span style="font-family:inherit;font-size:8pt;">&#160;</span></div></td><td colspan="7" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;">December&#160;31,</span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;">2019</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">2018</span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Raw materials</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>27,285</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>42,738</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Work-in-process</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>5,503</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>3,435</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Finished goods</span></div></td><td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>27,473</span></span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>37,109</span></span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>60,261</span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>83,282</span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr></table></div><span style="font-family:inherit;font-size:10pt;"><br/></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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Tabular disclosure of the 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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(6)(c))<br> -URI http://asc.fasb.org/extlink&amp;oid=6877327&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 http://asc.fasb.org/extlink&amp;oid=6877327&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 http://asc.fasb.org/extlink&amp;oid=6877327&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 http://asc.fasb.org/extlink&amp;oid=6361739&amp;loc=d3e7789-107766<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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>nonnum:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>45
<FILENAME>R108.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.19.3.a.u2</span><table class="report" border="0" cellspacing="2" id="idp6855829024">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>Acquisitions - Sualab Co., Ltd. Purchase Price Allocation (Details) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th"><div>Dec. 31, 2019</div></th>
<th class="th"><div>Oct. 16, 2019</div></th>
<th class="th"><div>Dec. 31, 2018</div></th>
<th class="th"><div>Dec. 31, 2017</div></th>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionLineItems', window );"><strong>Business Acquisition [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_Goodwill', window );">Goodwill</a></td>
<td class="nump">$ 243,445<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 113,208<span></span>
</td>
<td class="nump">$ 113,208<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionAxis=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>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionLineItems', window );"><strong>Business Acquisition [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCashAndEquivalents', window );">Cash and cash equivalents</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 3,691<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsMarketableSecurities', window );">Current investments</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">9,487<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsReceivables', window );">Accounts receivable</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">1,200<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedInventory', window );">Inventories</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">115<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsPrepaidExpenseAndOtherAssets', window );">Prepaid expenses and other current assets</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">252<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment', window );">Property, plant, and equipment</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">726<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_cgnx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredandLiabilitiesAssumedOperatingLeaseRightofUseAsset', window );">Operating lease assets</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">2,792<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxAssets', window );">Deferred income tax asset</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">3,087<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNoncurrentAssets', window );">Other assets</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">513<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccountsPayable', window );">Accounts payable</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="num">(28)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilities', window );">Accrued expenses</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="num">(2,633)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_cgnx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredandLiabilitiesAssumedCurrentLiabilitiesDeferredRevenueandCustomerDeposits', window );">Deferred revenue and customer deposits</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="num">(764)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_cgnx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredandLiabilitiesAssumedOperatingLeaseLiabilityCurrent', window );">Operating lease liabilities</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="num">(448)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_cgnx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredandLiabilitiesAssumedOperatingLeaseLiabilityNoncurrent', window );">Non-current operating lease liabilities</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="num">(2,344)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesDeferredRevenue', window );">Deferred income tax liabilities</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="num">(7,926)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNoncurrentLiabilitiesOther', window );">Other liabilities</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="num">(10)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_Goodwill', window );">Goodwill</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">130,142<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet', window );">Purchase price</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">170,602<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionAxis=cgnx_SualabCo.Ltd.Member', window );">Sualab Co., Ltd. [Member] | Completed Technology [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionLineItems', window );"><strong>Business Acquisition [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibleAssetsOtherThanGoodwill', window );">Intangible assets</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">18,300<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionAxis=cgnx_SualabCo.Ltd.Member', window );">Sualab Co., Ltd. [Member] | In-process Technology [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionLineItems', window );"><strong>Business Acquisition [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibleAssetsOtherThanGoodwill', window );">Intangible assets</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">8,200<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionAxis=cgnx_SualabCo.Ltd.Member', window );">Sualab Co., Ltd. [Member] | Customer Relationships [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionLineItems', window );"><strong>Business Acquisition [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibleAssetsOtherThanGoodwill', window );">Intangible assets</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">5,800<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionAxis=cgnx_SualabCo.Ltd.Member', window );">Sualab Co., Ltd. [Member] | Non-compete agreements</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionLineItems', window );"><strong>Business Acquisition [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibleAssetsOtherThanGoodwill', window );">Intangible assets</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">340<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionAxis=cgnx_SualabCo.Ltd.Member', window );">Sualab Co., Ltd. [Member] | Trademarks [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="top.Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionLineItems', window );"><strong>Business Acquisition [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibleAssetsOtherThanGoodwill', window );">Intangible assets</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 110<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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredandLiabilitiesAssumedCurrentLiabilitiesDeferredRevenueandCustomerDeposits">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Business Combination, Recognized Identifiable Assets Acquired and Liabilities Assumed, Current Liabilities, Deferred Revenue and Customer Deposits</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cgnx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredandLiabilitiesAssumedCurrentLiabilitiesDeferredRevenueandCustomerDeposits</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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredandLiabilitiesAssumedOperatingLeaseLiabilityCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Business Combination, Recognized Identifiable Assets Acquired and Liabilities Assumed, Operating Lease, Liability, Current</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cgnx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredandLiabilitiesAssumedOperatingLeaseLiabilityCurrent</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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredandLiabilitiesAssumedOperatingLeaseLiabilityNoncurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Business Combination, Recognized Identifiable Assets Acquired and Liabilities Assumed, Operating Lease, Liability, Noncurrent</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cgnx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredandLiabilitiesAssumedOperatingLeaseLiabilityNoncurrent</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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredandLiabilitiesAssumedOperatingLeaseRightofUseAsset">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Business Combination, Recognized Identifiable Assets Acquired and Liabilities Assumed, Operating Lease, Right-of-Use Asset</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cgnx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredandLiabilitiesAssumedOperatingLeaseRightofUseAsset</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_BusinessAcquisitionLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_BusinessAcquisitionLineItems</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCashAndEquivalents">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of currency on hand as well as demand deposits with banks or financial institutions, acquired at the acquisition date. Includes other kinds of accounts that have the general characteristics of demand deposits. Also includes short-term, highly liquid investments that are both readily convertible to known amounts of cash and so near their maturity that they present insignificant risk of changes in value because of changes in interest rates.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 805<br> -SubTopic 20<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (c)<br> -URI http://asc.fasb.org/extlink&amp;oid=84161108&amp;loc=d3e4845-128472<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCashAndEquivalents</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsMarketableSecurities">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of investments in debt and equity securities, including, but not limited to, held-to-maturity, trading and available-for-sale expected to be converted to cash, sold or exchanged within one year or the normal operating cycle, if longer, acquired at the acquisition date.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 805<br> -SubTopic 20<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (c)<br> -URI http://asc.fasb.org/extlink&amp;oid=84161108&amp;loc=d3e4845-128472<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsMarketableSecurities</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsPrepaidExpenseAndOtherAssets">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of asset related to consideration paid in advance for costs that provide economic benefits in future periods, and amount of other assets that are expected to be realized or consumed within one year or the normal operating cycle, if longer, acquired at the acquisition date.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 805<br> -SubTopic 20<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (c)<br> -URI http://asc.fasb.org/extlink&amp;oid=84161108&amp;loc=d3e4845-128472<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsPrepaidExpenseAndOtherAssets</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsReceivables">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount due from customers or clients for goods or services, including trade receivables, that have been delivered or sold in the normal course of business, and amounts due from others, including related parties expected to be converted to cash, sold or exchanged within one year or the normal operating cycle, if longer, acquired at the acquisition date.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 805<br> -SubTopic 20<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (c)<br> -URI http://asc.fasb.org/extlink&amp;oid=84161108&amp;loc=d3e4845-128472<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsReceivables</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilities">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of liabilities due within one year or within the normal operating cycle, if longer, assumed at the acquisition date.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 805<br> -SubTopic 20<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (c)<br> -URI http://asc.fasb.org/extlink&amp;oid=84161108&amp;loc=d3e4845-128472<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilities</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccountsPayable">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of liabilities incurred for goods and services received that are used in an entity's business and related party payables, assumed at the acquisition date.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 805<br> -SubTopic 20<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (c)<br> -URI http://asc.fasb.org/extlink&amp;oid=84161108&amp;loc=d3e4845-128472<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccountsPayable</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesDeferredRevenue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of deferred revenue expected to be recognized as such within one year or the normal operating cycle, if longer, assumed at the acquisition date.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 805<br> -SubTopic 20<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (c)<br> -URI http://asc.fasb.org/extlink&amp;oid=84161108&amp;loc=d3e4845-128472<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesDeferredRevenue</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxAssets">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of deferred tax asset attributable to deductible temporary differences and carryforwards acquired at the acquisition date.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 805<br> -SubTopic 20<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (c)<br> -URI http://asc.fasb.org/extlink&amp;oid=84161108&amp;loc=d3e4845-128472<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 45<br> -Paragraph 4<br> -URI http://asc.fasb.org/extlink&amp;oid=84176650&amp;loc=d3e31917-109318<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxAssets</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibleAssetsOtherThanGoodwill">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of intangible assets, excluding goodwill, acquired at the acquisition date.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 805<br> -SubTopic 20<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (c)<br> -URI http://asc.fasb.org/extlink&amp;oid=84161108&amp;loc=d3e4845-128472<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedInventory">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The amount of inventory recognized as of the acquisition date.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 805<br> -SubTopic 20<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (c)<br> -URI http://asc.fasb.org/extlink&amp;oid=84161108&amp;loc=d3e4845-128472<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 805<br> -SubTopic 10<br> -Section 55<br> -Paragraph 37<br> -URI http://asc.fasb.org/extlink&amp;oid=108330185&amp;loc=d3e2207-128464<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedInventory</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNoncurrentAssets">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of assets expected to be realized or consumed after one year or the normal operating cycle, if longer, acquired at the acquisition date.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 805<br> -SubTopic 20<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (c)<br> -URI http://asc.fasb.org/extlink&amp;oid=84161108&amp;loc=d3e4845-128472<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNoncurrentAssets</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNoncurrentLiabilitiesOther">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of other liabilities due after one year or the normal operating cycle, if longer, assumed at the acquisition date.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 805<br> -SubTopic 20<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (c)<br> -URI http://asc.fasb.org/extlink&amp;oid=84161108&amp;loc=d3e4845-128472<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNoncurrentLiabilitiesOther</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The amount of property, plant, and equipment recognized as of the acquisition date.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 805<br> -SubTopic 10<br> -Section 55<br> -Paragraph 37<br> -URI http://asc.fasb.org/extlink&amp;oid=108330185&amp;loc=d3e2207-128464<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 805<br> -SubTopic 20<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (c)<br> -URI http://asc.fasb.org/extlink&amp;oid=84161108&amp;loc=d3e4845-128472<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount recognized for assets, including goodwill, in excess of (less than) the aggregate liabilities assumed.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 805<br> -SubTopic 20<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (c)<br> -URI http://asc.fasb.org/extlink&amp;oid=84161108&amp;loc=d3e4845-128472<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_Goodwill">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount after accumulated impairment loss of an asset representing future economic benefits arising from other assets acquired in a business combination that are not individually identified and separately recognized.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 350<br> -SubTopic 20<br> -Section 45<br> -Paragraph 5<br> -URI http://asc.fasb.org/extlink&amp;oid=77989000&amp;loc=SL49117168-202975<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 350<br> -SubTopic 20<br> -Section 45<br> -Paragraph 1<br> -URI http://asc.fasb.org/extlink&amp;oid=99380562&amp;loc=d3e13770-109266<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_Goodwill</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_BusinessAcquisitionAxis=cgnx_SualabCo.Ltd.Member">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_BusinessAcquisitionAxis=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_FiniteLivedIntangibleAssetsByMajorClassAxis=cgnx_CompletedTechnologyMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis=cgnx_CompletedTechnologyMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis=cgnx_InprocessTechnologyMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis=cgnx_InprocessTechnologyMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_CustomerRelationshipsMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_CustomerRelationshipsMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_NoncompeteAgreementsMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_NoncompeteAgreementsMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_TrademarksMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_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>46
<FILENAME>R30.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.19.3.a.u2</span><table class="report" border="0" cellspacing="2" id="idp6621837536">
<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, 2019</div></th></tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_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="top.Show.showAR( this, 'defref_us-gaap_SegmentReportingDisclosureTextBlock', window );">Segment and Geographic Information</a></td>
<td class="text">Segment and Geographic Information<div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">The Company operates in </span><span style="font-family:Arial;font-size:10pt;"><span>one</span></span><span style="font-family:Arial;font-size:10pt;"> segment, machine vision technology.  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.  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="line-height:120%;padding-top:6px;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">The following table summarizes information about geographic areas (in thousands):</span></div><div style="line-height:120%;font-size:10pt;"><div style="padding-left:0px;text-indent:0px;line-height:normal;padding-top:10px;"><table cellpadding="0" cellspacing="0" style="font-family:Times New Roman;font-size:10pt;width:99.80506822612085%;border-collapse:collapse;text-align:left;"><tr><td colspan="20"/></tr><tr><td style="width:31%;"/><td style="width:1%;"/><td style="width:11%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:11%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:11%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:11%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:11%;"/><td style="width:1%;"/></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;">United&#160;States</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;">Europe</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;">Greater China </span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;">Other</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;">Total</span></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Year Ended December 31, 2019</span></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Revenue</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>247,689</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>227,738</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>115,061</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>135,137</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>725,625</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Long-lived assets</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>68,496</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>21,691</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>1,487</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>3,602</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">$</span></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>95,276</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Year Ended December 31, 2018</span></div></td><td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td></tr><tr><td style="vertical-align:top;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Revenue</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>231,760</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>311,914</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>123,708</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>138,956</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>806,338</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Long-lived assets</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>67,156</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>23,948</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>1,482</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>2,735</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>95,321</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Year Ended December 31, 2017</span></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Revenue</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>180,248</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>328,826</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>108,738</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>148,271</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>766,083</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Long-lived assets</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>53,983</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>22,437</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>1,594</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>2,525</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>80,539</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr></table></div><span style="font-family:inherit;font-size:10pt;"><br/></span></div><div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Revenue is presented geographically based upon the customer&#8217;s country of domicile.  Revenue from a single customer accounted for </span><span style="font-family:Arial;font-size:10pt;"><span>15%</span></span><span style="font-family:Arial;font-size:10pt;"> and </span><span style="font-family:Arial;font-size:10pt;"><span>20%</span></span><span style="font-family:Arial;font-size:10pt;"> of total revenue in 2018 and 2017, respectively. Accounts receivable from the same customer accounted for </span><span style="font-family:Arial;font-size:10pt;"><span>24%</span></span><span style="font-family:Arial;font-size:10pt;">, </span><span style="font-family:Arial;font-size:10pt;"><span>30%</span></span><span style="font-family:Arial;font-size:10pt;">, and </span><span style="font-family:Arial;font-size:10pt;"><span>40%</span></span><span style="font-family:Arial;font-size:10pt;"> of total accounts receivable as of December 31, 2019, 2018, and 2017, respectively. In 2019, no customer accounted for greater than 10% of total revenue.</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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The entire disclosure for reporting segments including data and tables. Reportable segments include those that meet any of the following quantitative thresholds a) it's reported revenue, including sales to external customers and intersegment sales or transfers is 10 percent or more of the combined revenue, internal and external, of all operating segments b) the absolute amount of its reported profit or loss is 10 percent or more of the greater, in absolute amount of 1) the combined reported profit of all operating segments that did not report a loss or 2) the combined reported loss of all operating segments that did report a loss c) its assets are 10 percent or more of the combined assets of all operating segments.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -URI http://asc.fasb.org/topic&amp;trid=2134510<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_SegmentReportingDisclosureTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>nonnum:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>47
<FILENAME>R34.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.19.3.a.u2</span><table class="report" border="0" cellspacing="2" id="idp6630200320">
<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, 2019</div></th></tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_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 custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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="line-height:120%;font-size:10pt;"><div style="padding-left:0px;text-indent:0px;line-height:normal;padding-top:10px;"><table cellpadding="0" cellspacing="0" style="font-family:Times New Roman;font-size:10pt;width:100%;border-collapse:collapse;text-align:left;"><tr><td colspan="25"/></tr><tr><td style="width:28%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:8%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:8%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:8%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:8%;"/><td style="width:1%;"/><td style="width:4%;"/><td style="width:1%;"/><td style="width:8%;"/><td style="width:1%;"/><td style="width:4%;"/><td style="width:1%;"/><td style="width:8%;"/><td style="width:1%;"/></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="7" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;">Additions</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;">&#160;</span></div></td></tr><tr><td style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;">Description</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;">Balance&#160;at</span></div><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;">Beginning</span></div><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;">of Period</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;">Charged&#160;to</span></div><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;">Costs and</span></div><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;">Expenses</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;">Charged</span></div><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;">to Other</span></div><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;">Accounts</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;">Deductions</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;">Other</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;">Balance&#160;at</span></div><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;">End of</span></div><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;">Period</span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="23" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">(In thousands)</span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Reserve&#160;for&#160;Uncollectible Accounts Receivable and Sales Returns:</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td></tr><tr><td style="vertical-align:top;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">2019</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>1,646</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>440</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">&#8212;</span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>(286</span></span></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">)</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">(a)&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>21</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">(b)&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>1,821</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">2018</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>1,568</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>464</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">&#8212;</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>(343</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">)</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">(a)&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>(43</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">)</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">(b)&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>1,646</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">2017</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>873</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>724</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">&#8212;</span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>(116</span></span></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">)</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">(a)&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>87</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">(b)&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>1,568</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Deferred Tax Valuation Allowance:</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td></tr><tr><td style="vertical-align:top;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">2019</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>6,112</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>1,200</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">&#8212;</span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>&#8212;</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>&#8212;</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>7,312</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">2018</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>5,309</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>803</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">&#8212;</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>&#8212;</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>&#8212;</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>6,112</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">2017</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>4,116</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>1,193</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">&#8212;</span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>&#8212;</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>&#8212;</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>5,309</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr></table></div></div><table cellpadding="0" cellspacing="0" style="padding-top:12px;font-family:Times New Roman; font-size:10pt;"><tr><td style="width:48px;"/><td/></tr><tr><td style="vertical-align:top"><div style="line-height:120%;font-size:10pt;padding-left:0px;"><span style="font-family:Arial;font-size:10pt;">(a)</span></div></td><td style="vertical-align:top;"><div style="line-height:120%;text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Specific write-offs</span></div></td></tr></table><div style="line-height:120%;font-size:10pt;padding-left:0px;"><span style="font-family:Arial;font-size:10pt;">(b)</span></div><div style="line-height:120%;text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The entire disclosure for valuation and qualifying accounts and reserves.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher SEC<br> -Name Regulation S-X (SX)<br> -Number 210<br> -Section 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 http://asc.fasb.org/extlink&amp;oid=26873400&amp;loc=d3e24092-122690<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">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>nonnum:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_srt_ValuationAndQualifyingAccountsAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">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>48
<FILENAME>R17.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.19.3.a.u2</span><table class="report" border="0" cellspacing="2" id="idp6872606784">
<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, 2019</div></th></tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_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="top.Show.showAR( this, 'defref_us-gaap_OperatingLeasesOfLessorDisclosureTextBlock', window );">Leases</a></td>
<td class="text">Leases<div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">On January 1, 2019, the Company adopted Accounting Standards Codification (ASC) 842,  &#8220;Leases,&#8221; using the transition method of adoption, which allowed the Company to apply the standard on a prospective basis with a cumulative-effect adjustment to the opening balance sheet as of the adoption date.  Accordingly, the Company recorded lease assets of $</span><span style="font-family:Arial;font-size:10pt;"><span>17,522,000</span></span><span style="font-family:Arial;font-size:10pt;">, current lease liabilities of $</span><span style="font-family:Arial;font-size:10pt;"><span>4,736,000</span></span><span style="font-family:Arial;font-size:10pt;">, and non-current lease liabilities of $</span><span style="font-family:Arial;font-size:10pt;"><span>12,669,000</span></span><span style="font-family:Arial;font-size:10pt;"> on its Consolidated Balance Sheet as of January 1, 2019.</span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">As part of the adoption, the Company elected a practical expedient package to be applied to all of its leases upon transition, and as a result, the Company did not reassess: 1) whether any expired or existing contracts contain leases; </span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">2) the lease classification for any expired or existing leases; and 3) the accounting for initial direct costs for any existing leases. </span></div><div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">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.  There were no options to extend or terminate that were included in the determination of the lease term for the leases outstanding as of </span><span style="font-family:Arial;font-size:10pt;">December&#160;31, 2019</span><span style="font-family:Arial;font-size:10pt;">.  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 leases outstanding as of </span><span style="font-family:Arial;font-size:10pt;">December&#160;31, 2019</span><span style="font-family:Arial;font-size:10pt;">.</span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">The total operating lease expense and operating lease cash payments in 2019 were </span><span style="font-family:Arial;font-size:10pt;"><span>$6,893,000</span></span><span style="font-family:Arial;font-size:10pt;"> and </span><span style="font-family:Arial;font-size:10pt;"><span>$6,530,000</span></span><span style="font-family:Arial;font-size:10pt;">, respectively.  The total lease expense for leases with a term of twelve months or less for which the Company elected </span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><br/></span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">not to recognize a lease asset or lease liability was </span><span style="font-family:Arial;font-size:10pt;"><span>$275,000</span></span><span style="font-family:Arial;font-size:10pt;"> in 2019. Annual rental expense prior to the adoption of ASC 842 was </span><span style="font-family:Arial;font-size:10pt;"><span>$8,186,000</span></span><span style="font-family:Arial;font-size:10pt;"> in </span><span style="font-family:Arial;font-size:10pt;">2018</span><span style="font-family:Arial;font-size:10pt;"> and </span><span style="font-family:Arial;font-size:10pt;"><span>$6,738,000</span></span><span style="font-family:Arial;font-size:10pt;"> in </span><span style="font-family:Arial;font-size:10pt;">2017</span><span style="font-family:Arial;font-size:10pt;">. </span></div><div style="line-height:120%;padding-top:12px;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Future operating lease cash payments are as follows (in thousands):</span></div><div style="line-height:120%;padding-top:12px;text-align:center;font-size:10pt;"><div style="padding-left:0px;text-indent:0px;line-height:normal;padding-top:10px;"><table cellpadding="0" cellspacing="0" style="font-family:Times New Roman;font-size:10pt;margin-left:auto;margin-right:auto;width:99.80506822612085%;border-collapse:collapse;text-align:left;"><tr><td colspan="5"/></tr><tr><td style="width:84%;"/><td style="width:3%;"/><td style="width:1%;"/><td style="width:11%;"/><td style="width:1%;"/></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;font-weight:bold;text-decoration:underline;">Year Ended December&#160;31,</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;font-weight:bold;">Amount </span></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">2020</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>6,565</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">2021</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>5,558</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">2022</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>3,822</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">2023</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>3,000</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">2024</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>927</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Thereafter</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>310</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>20,182</span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr></table></div><span style="font-family:inherit;font-size:10pt;"><br/></span></div><div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">The discounted present value of the future lease cash payments resulted in a lease liability of $</span><span style="font-family:Arial;font-size:10pt;"><span>17,973,000</span></span><span style="font-family:Arial;font-size:10pt;"> as of </span><span style="font-family:Arial;">December 31, 2019</span><span style="font-family:Arial;font-size:10pt;">.</span></div><div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">The weighted-average discount rate was </span><span style="font-family:Arial;font-size:10pt;"><span>4.6%</span></span><span style="font-family:Arial;font-size:10pt;"> for the leases outstanding as of </span><span style="font-family:Arial;">December 31, 2019</span><span style="font-family:Arial;font-size:10pt;">.  The weighted-average remaining lease term was </span><span style="font-family:Arial;font-size:10pt;"><span>3.7</span></span><span style="font-family:Arial;font-size:10pt;"> years for the leases outstanding as of </span><span style="font-family:Arial;">December 31, 2019</span><span style="font-family:Arial;font-size:10pt;">.  The Company did not have any leases that have not yet commenced but that create significant rights and obligations as of </span><span style="font-family:Arial;">December 31, 2019</span><span style="font-family:Arial;font-size:10pt;">. </span></div><div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">The Company owns a building adjacent to its corporate headquarters that is partially occupied with a tenant who has a lease agreement that will expire in 2022.  Annual rental income totaled </span><span style="font-family:Arial;font-size:10pt;"><span>$311,000</span></span><span style="font-family:Arial;font-size:10pt;"> in </span><span style="font-family:Arial;font-size:10pt;">2019</span><span style="font-family:Arial;font-size:10pt;">, </span><span style="font-family:Arial;font-size:10pt;"><span>$1,116,000</span></span><span style="font-family:Arial;font-size:10pt;"> in </span><span style="font-family:Arial;font-size:10pt;">2018</span><span style="font-family:Arial;font-size:10pt;">, and </span><span style="font-family:Arial;font-size:10pt;"><span>$1,474,000</span></span><span style="font-family:Arial;font-size:10pt;"> in </span><span style="font-family:Arial;font-size:10pt;">2017</span><span style="font-family:Arial;font-size:10pt;">.  Rental income and related expenses are included in "Other income (expense)" on the Consolidated Statements of Operations. </span></div><div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Future minimum rental receipts under non-cancelable lease agreements are as follows (in thousands):</span></div><div style="line-height:120%;padding-top:12px;text-align:center;font-size:10pt;"><div style="padding-left:0px;text-indent:0px;line-height:normal;padding-top:10px;"><table cellpadding="0" cellspacing="0" style="font-family:Times New Roman;font-size:10pt;margin-left:auto;margin-right:auto;width:99.41520467836257%;border-collapse:collapse;text-align:left;"><tr><td colspan="5"/></tr><tr><td style="width:84%;"/><td style="width:3%;"/><td style="width:1%;"/><td style="width:11%;"/><td style="width:1%;"/></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;font-weight:bold;text-decoration:underline;">Year Ended December&#160;31,</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;font-weight:bold;">Amount</span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">2020</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>307</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">2021</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>307</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">2022</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>307</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>921</span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr></table></div><span style="font-family:inherit;font-size:10pt;"><br/></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="top.Show.showAR( this, 'defref_us-gaap_LesseeOperatingLeasesTextBlock', window );">Leases</a></td>
<td class="text">Leases<div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">On January 1, 2019, the Company adopted Accounting Standards Codification (ASC) 842,  &#8220;Leases,&#8221; using the transition method of adoption, which allowed the Company to apply the standard on a prospective basis with a cumulative-effect adjustment to the opening balance sheet as of the adoption date.  Accordingly, the Company recorded lease assets of $</span><span style="font-family:Arial;font-size:10pt;"><span>17,522,000</span></span><span style="font-family:Arial;font-size:10pt;">, current lease liabilities of $</span><span style="font-family:Arial;font-size:10pt;"><span>4,736,000</span></span><span style="font-family:Arial;font-size:10pt;">, and non-current lease liabilities of $</span><span style="font-family:Arial;font-size:10pt;"><span>12,669,000</span></span><span style="font-family:Arial;font-size:10pt;"> on its Consolidated Balance Sheet as of January 1, 2019.</span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">As part of the adoption, the Company elected a practical expedient package to be applied to all of its leases upon transition, and as a result, the Company did not reassess: 1) whether any expired or existing contracts contain leases; </span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">2) the lease classification for any expired or existing leases; and 3) the accounting for initial direct costs for any existing leases. </span></div><div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">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.  There were no options to extend or terminate that were included in the determination of the lease term for the leases outstanding as of </span><span style="font-family:Arial;font-size:10pt;">December&#160;31, 2019</span><span style="font-family:Arial;font-size:10pt;">.  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 leases outstanding as of </span><span style="font-family:Arial;font-size:10pt;">December&#160;31, 2019</span><span style="font-family:Arial;font-size:10pt;">.</span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">The total operating lease expense and operating lease cash payments in 2019 were </span><span style="font-family:Arial;font-size:10pt;"><span>$6,893,000</span></span><span style="font-family:Arial;font-size:10pt;"> and </span><span style="font-family:Arial;font-size:10pt;"><span>$6,530,000</span></span><span style="font-family:Arial;font-size:10pt;">, respectively.  The total lease expense for leases with a term of twelve months or less for which the Company elected </span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><br/></span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">not to recognize a lease asset or lease liability was </span><span style="font-family:Arial;font-size:10pt;"><span>$275,000</span></span><span style="font-family:Arial;font-size:10pt;"> in 2019. Annual rental expense prior to the adoption of ASC 842 was </span><span style="font-family:Arial;font-size:10pt;"><span>$8,186,000</span></span><span style="font-family:Arial;font-size:10pt;"> in </span><span style="font-family:Arial;font-size:10pt;">2018</span><span style="font-family:Arial;font-size:10pt;"> and </span><span style="font-family:Arial;font-size:10pt;"><span>$6,738,000</span></span><span style="font-family:Arial;font-size:10pt;"> in </span><span style="font-family:Arial;font-size:10pt;">2017</span><span style="font-family:Arial;font-size:10pt;">. </span></div><div style="line-height:120%;padding-top:12px;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Future operating lease cash payments are as follows (in thousands):</span></div><div style="line-height:120%;padding-top:12px;text-align:center;font-size:10pt;"><div style="padding-left:0px;text-indent:0px;line-height:normal;padding-top:10px;"><table cellpadding="0" cellspacing="0" style="font-family:Times New Roman;font-size:10pt;margin-left:auto;margin-right:auto;width:99.80506822612085%;border-collapse:collapse;text-align:left;"><tr><td colspan="5"/></tr><tr><td style="width:84%;"/><td style="width:3%;"/><td style="width:1%;"/><td style="width:11%;"/><td style="width:1%;"/></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;font-weight:bold;text-decoration:underline;">Year Ended December&#160;31,</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;font-weight:bold;">Amount </span></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">2020</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>6,565</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">2021</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>5,558</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">2022</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>3,822</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">2023</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>3,000</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">2024</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>927</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Thereafter</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>310</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>20,182</span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr></table></div><span style="font-family:inherit;font-size:10pt;"><br/></span></div><div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">The discounted present value of the future lease cash payments resulted in a lease liability of $</span><span style="font-family:Arial;font-size:10pt;"><span>17,973,000</span></span><span style="font-family:Arial;font-size:10pt;"> as of </span><span style="font-family:Arial;">December 31, 2019</span><span style="font-family:Arial;font-size:10pt;">.</span></div><div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">The weighted-average discount rate was </span><span style="font-family:Arial;font-size:10pt;"><span>4.6%</span></span><span style="font-family:Arial;font-size:10pt;"> for the leases outstanding as of </span><span style="font-family:Arial;">December 31, 2019</span><span style="font-family:Arial;font-size:10pt;">.  The weighted-average remaining lease term was </span><span style="font-family:Arial;font-size:10pt;"><span>3.7</span></span><span style="font-family:Arial;font-size:10pt;"> years for the leases outstanding as of </span><span style="font-family:Arial;">December 31, 2019</span><span style="font-family:Arial;font-size:10pt;">.  The Company did not have any leases that have not yet commenced but that create significant rights and obligations as of </span><span style="font-family:Arial;">December 31, 2019</span><span style="font-family:Arial;font-size:10pt;">. </span></div><div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">The Company owns a building adjacent to its corporate headquarters that is partially occupied with a tenant who has a lease agreement that will expire in 2022.  Annual rental income totaled </span><span style="font-family:Arial;font-size:10pt;"><span>$311,000</span></span><span style="font-family:Arial;font-size:10pt;"> in </span><span style="font-family:Arial;font-size:10pt;">2019</span><span style="font-family:Arial;font-size:10pt;">, </span><span style="font-family:Arial;font-size:10pt;"><span>$1,116,000</span></span><span style="font-family:Arial;font-size:10pt;"> in </span><span style="font-family:Arial;font-size:10pt;">2018</span><span style="font-family:Arial;font-size:10pt;">, and </span><span style="font-family:Arial;font-size:10pt;"><span>$1,474,000</span></span><span style="font-family:Arial;font-size:10pt;"> in </span><span style="font-family:Arial;font-size:10pt;">2017</span><span style="font-family:Arial;font-size:10pt;">.  Rental income and related expenses are included in "Other income (expense)" on the Consolidated Statements of Operations. </span></div><div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Future minimum rental receipts under non-cancelable lease agreements are as follows (in thousands):</span></div><div style="line-height:120%;padding-top:12px;text-align:center;font-size:10pt;"><div style="padding-left:0px;text-indent:0px;line-height:normal;padding-top:10px;"><table cellpadding="0" cellspacing="0" style="font-family:Times New Roman;font-size:10pt;margin-left:auto;margin-right:auto;width:99.41520467836257%;border-collapse:collapse;text-align:left;"><tr><td colspan="5"/></tr><tr><td style="width:84%;"/><td style="width:3%;"/><td style="width:1%;"/><td style="width:11%;"/><td style="width:1%;"/></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;font-weight:bold;text-decoration:underline;">Year Ended December&#160;31,</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;font-weight:bold;">Amount</span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">2020</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>307</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">2021</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>307</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">2022</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>307</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>921</span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr></table></div><span style="font-family:inherit;font-size:10pt;"><br/></span></div><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LeasesAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The entire disclosure for operating leases of lessee. Includes, but is not limited to, description of operating lease and maturity analysis of operating lease liability.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 842<br> -SubTopic 20<br> -URI http://asc.fasb.org/subtopic&amp;trid=77888251<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LesseeOperatingLeasesTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>nonnum:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_OperatingLeasesOfLessorDisclosureTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The entire disclosure for lessor's operating leases.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 840<br> -SubTopic 10<br> -Section 55<br> -Paragraph 40<br> -Subparagraph Note 1<br> -URI http://asc.fasb.org/extlink&amp;oid=82846649&amp;loc=d3e38371-112697<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 840<br> -SubTopic 10<br> -Section 55<br> -Paragraph 40<br> -Subparagraph Note 3<br> -URI http://asc.fasb.org/extlink&amp;oid=82846649&amp;loc=d3e38371-112697<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 842<br> -SubTopic 30<br> -URI http://asc.fasb.org/subtopic&amp;trid=77888252<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OperatingLeasesOfLessorDisclosureTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>nonnum:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>50
<FILENAME>R13.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.19.3.a.u2</span><table class="report" border="0" cellspacing="2" id="idp6628154272">
<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, 2019</div></th></tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_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="top.Show.showAR( this, 'defref_us-gaap_FairValueDisclosuresTextBlock', window );">Fair Value Measurements</a></td>
<td class="text">Fair Value Measurements<div style="line-height:120%;padding-top:6px;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;text-decoration:underline;">Financial Assets and Liabilities that are Measured at Fair Value on a Recurring Basis</span></div><div style="line-height:120%;padding-top:6px;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">The following table summarizes the financial assets and liabilities measured at fair value on a recurring basis as of December&#160;31, </span><span style="font-family:Arial;font-size:10pt;color:#000000;text-decoration:none;">2019</span><span style="font-family:Arial;font-size:10pt;"> (in thousands):</span><div style="padding-left:0px;text-indent:0px;line-height:normal;padding-top:10px;"><table cellpadding="0" cellspacing="0" style="font-family:Times New Roman;font-size:10pt;width:93.56725146198829%;border-collapse:collapse;text-align:left;"><tr><td colspan="12"/></tr><tr><td style="width:50%;"/><td style="width:1%;"/><td style="width:14%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:14%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:14%;"/><td style="width:1%;"/></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;">Quoted&#160;Prices&#160;in</span></div><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;">Active Markets</span></div><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;">for Identical</span></div><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;">Assets (Level&#160;1)</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;">Significant&#160;Other</span></div><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;">Observable</span></div><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;">Inputs (Level&#160;2)</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;">Unobservable Inputs                       (Level 3)</span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Assets:</span></div></td><td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td></tr><tr><td style="vertical-align:top;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Money market instruments</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>15,933</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>&#8212;</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">&#8212;</span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Treasury bills</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>&#8212;</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>309,248</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td></tr><tr><td style="vertical-align:top;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Corporate bonds</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>&#8212;</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>212,098</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">&#8212;</span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Asset-backed securities</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>&#8212;</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>113,083</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">&#8212;</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Sovereign bonds</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>&#8212;</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>22,299</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">&#8212;</span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Municipal bonds</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>&#8212;</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>6,952</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td></tr><tr><td style="vertical-align:top;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Agency bonds</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>&#8212;</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>5,914</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">&#8212;</span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Certificate of deposit</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>&#8212;</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>4,328</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">&#8212;</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Economic hedge forward contracts</span></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span></span><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>857</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">&#8212;</span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Liabilities:</span></div></td><td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td></tr><tr><td style="vertical-align:top;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Economic hedge forward contracts</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>&#8212;</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>23</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">&#8212;</span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Contingent consideration liabilities</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>&#8212;</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>&#8212;</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>1,153</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr></table></div><span style="font-family:inherit;font-size:10pt;"><br/></span></div><div style="line-height:120%;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><br/></span></div><div style="line-height:120%;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">The Company&#8217;s money market instruments are reported at fair value based upon the daily market price for identical assets in active markets, and are therefore classified as Level 1. </span></div><div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">The Company&#8217;s debt securities and forward contracts are reported at fair value based upon 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.  The Company's certificate of deposit is valued at cost, which approximates fair value given its short term to maturity.</span></div><div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">The Company did not record an other-than-temporary impairment of these financial assets in </span><span style="font-family:Arial;font-size:10pt;">2019</span><span style="font-family:Arial;font-size:10pt;">, </span><span style="font-family:Arial;font-size:10pt;">2018</span><span style="font-family:Arial;font-size:10pt;">, or </span><span style="font-family:Arial;font-size:10pt;">2017</span><span style="font-family:Arial;font-size:10pt;">.</span></div><div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">The Company's contingent consideration liabilities are reported at fair value based upon 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.  Key assumptions used in these estimates include probability assessments with respect to the likelihood of achieving certain revenue milestones.  The fair values of these contingent consideration liabilities were calculated using discount rates consistent with the level of risk of achievement, and are remeasured each reporting period with changes in fair value recorded in "Other income (expense)" on the Consolidated Statements of Operations. </span></div><div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">The following table summarizes the activity for the Company's liabilities measured at fair value using Level 3 inputs (in thousands):</span></div><div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><div style="padding-left:0px;text-indent:0px;line-height:normal;padding-top:10px;"><table cellpadding="0" cellspacing="0" style="font-family:Times New Roman;font-size:10pt;width:100%;border-collapse:collapse;text-align:left;"><tr><td colspan="4"/></tr><tr><td style="width:86%;"/><td style="width:1%;"/><td style="width:12%;"/><td style="width:1%;"/></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Balance as of December 31, 2017</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>3,557</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Payment of GVi contingent consideration</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>(1,000</span></span></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">)</span></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Fair value adjustment to GVi contingent consideration</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>1,065</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Fair value adjustment to Manatee contingent consideration</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>(1,350</span></span></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">)</span></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Fair value adjustment to Chiaro contingent consideration</span></div></td><td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>282</span></span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Balance as of December 31, 2018</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>2,554</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Fair value adjustment to GVi contingent consideration</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>(1,646</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">)</span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Fair value adjustment to Chiaro contingent consideration</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>245</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Balance as of December 31, 2019</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>1,153</span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr></table></div><span style="font-family:inherit;font-size:10pt;"><br/></span></div><div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">The contingent consideration liability as of December 31, 2019 in the amount of </span><span style="font-family:Arial;font-size:10pt;"><span>$1,153,000</span></span><span style="font-family:Arial;font-size:10pt;"> relates to the Company's acquisition of Chiaro Techologies, LLC in 2016.  The undiscounted potential outcomes related to the contingent consideration range from </span><span style="font-family:Arial;font-size:10pt;"><span>$0</span></span><span style="font-family:Arial;font-size:10pt;"> to </span><span style="font-family:Arial;font-size:10pt;"><span>$1,250,000</span></span><span style="font-family:Arial;font-size:10pt;"> based upon certain milestone revenue levels to be paid in 2020 if earned. </span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;text-decoration:underline;">Non-financial Assets that are Measured at Fair Value on a Non-recurring Basis</span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Non-financial assets such as property, plant, and equipment, goodwill, and intangible assets are required to be measured at fair value only when an impairment loss is recognized. In 2017, the Company determined that the carrying value of the customer relationships arising from the acquisition of AQSense, S.L. was impaired and reduced this value to zero, resulting in an impairment charge of </span><span style="font-family:Arial;font-size:10pt;"><span>$469,000</span></span><span style="font-family:Arial;font-size:10pt;">.  The Company did not record an impairment charge related to non-financial assets in </span><span style="font-family:Arial;font-size:10pt;">2019</span><span style="font-family:Arial;font-size:10pt;"> or 2018. </span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Refer to Note 21 to the Consolidated Financial Statements for further information regarding acquisitions.</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_FairValueDisclosuresAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The entire disclosure for the fair value of financial instruments (as defined), including financial assets and financial liabilities (collectively, as defined), and the measurements of those instruments as well as disclosures related to the fair value of non-financial assets and liabilities. Such disclosures about the financial instruments, assets, and liabilities would include: (1) the fair value of the required items together with their carrying amounts (as appropriate); (2) for items for which it is not practicable to estimate fair value, disclosure would include: (a) information pertinent to estimating fair value (including, carrying amount, effective interest rate, and maturity, and (b) the reasons why it is not practicable to estimate fair value; (3) significant concentrations of credit risk including: (a) information about the activity, region, or economic characteristics identifying a concentration, (b) the maximum amount of loss the entity is exposed to based on the gross fair value of the related item, (c) policy for requiring collateral or other security and information as to accessing such collateral or security, and (d) the nature and brief description of such collateral or security; (4) quantitative information about market risks and how such risks are managed; (5) for items measured on both a recurring and nonrecurring basis information regarding the inputs used to develop the fair value measurement; and (6) for items presented in the financial statement for which fair value measurement is elected: (a) information necessary to understand the reasons for the election, (b) discussion of the effect of fair value changes on earnings, (c) a description of [similar groups] items for which the election is made and the relation thereof to the balance sheet, the aggregate carrying value of items included in the balance sheet that are not eligible for the election; (7) all other required (as defined) and desired information.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 820<br> -URI http://asc.fasb.org/topic&amp;trid=2155941<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FairValueDisclosuresTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>nonnum:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>51
<FILENAME>R72.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.19.3.a.u2</span><table class="report" border="0" cellspacing="2" id="idp6878039808">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Goodwill - Changes in the Carrying Value of Goodwill (Detail)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th">
<div>Dec. 31, 2019 </div>
<div>USD ($)</div>
</th></tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_GoodwillRollForward', window );"><strong>Goodwill [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="top.Show.showAR( this, 'defref_us-gaap_Goodwill', window );">Goodwill, Beginning Balance</a></td>
<td class="nump">$ 113,208<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_GoodwillForeignCurrencyTranslationGainLoss', window );">Foreign exchange rate changes</a></td>
<td class="nump">95<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_Goodwill', window );">Goodwill, Ending Balance</a></td>
<td class="nump">243,445<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionAxis=cgnx_SualabCo.Ltd.Member', window );">Sualab Co., Ltd. [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="top.Show.showAR( this, 'defref_us-gaap_GoodwillRollForward', window );"><strong>Goodwill [Roll Forward]</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="top.Show.showAR( this, 'defref_us-gaap_GoodwillAcquiredDuringPeriod', window );">Goodwill acquired during the period</a></td>
<td class="nump">$ 130,142<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_Goodwill">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount after accumulated impairment loss of an asset representing future economic benefits arising from other assets acquired in a business combination that are not individually identified and separately recognized.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 350<br> -SubTopic 20<br> -Section 45<br> -Paragraph 5<br> -URI http://asc.fasb.org/extlink&amp;oid=77989000&amp;loc=SL49117168-202975<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 350<br> -SubTopic 20<br> -Section 45<br> -Paragraph 1<br> -URI http://asc.fasb.org/extlink&amp;oid=99380562&amp;loc=d3e13770-109266<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_Goodwill</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_GoodwillAcquiredDuringPeriod">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of increase in asset representing future economic benefits arising from other assets acquired in a business combination that are not individually identified and separately recognized resulting from a business combination.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 350<br> -SubTopic 20<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=108376223&amp;loc=d3e13816-109267<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_GoodwillAcquiredDuringPeriod</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_GoodwillForeignCurrencyTranslationGainLoss">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of foreign currency translation gain (loss) which 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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 350<br> -SubTopic 20<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (f)<br> -URI http://asc.fasb.org/extlink&amp;oid=108376223&amp;loc=d3e13816-109267<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_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_GoodwillRollForward">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>A 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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_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_SualabCo.Ltd.Member">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_BusinessAcquisitionAxis=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>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>52
<FILENAME>R82.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.19.3.a.u2</span><table class="report" border="0" cellspacing="2" id="idp6855809344">
<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, 2019</div></th>
<th class="th"><div>Dec. 31, 2018</div></th>
<th class="th"><div>Dec. 31, 2017</div></th>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_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="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIOnDerivativesNetOfTax', window );">Total gains (losses) reclassified from accumulated other comprehensive income (loss) into net income</a></td>
<td class="nump">$ 0<span></span>
</td>
<td class="nump">$ 0<span></span>
</td>
<td class="nump">$ 41<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_IncomeStatementLocationAxis=us-gaap_CashFlowHedgingMember', window );">Accumulated other comprehensive income (loss), net of tax | 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="top.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="top.Show.showAR( this, 'defref_us-gaap_OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIOnDerivativesNetOfTax', window );">Total gains (losses) reclassified from accumulated other comprehensive income (loss) into net income</a></td>
<td class="nump">0<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="nump">41<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_IncomeStatementLocationAxis=us-gaap_SalesRevenueGoodsNetMember', window );">Product Revenue | 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="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_DerivativeInstrumentsGainLossReclassifiedFromAccumulatedOCIIntoIncomeEffectivePortionNet', window );">Gains (losses) reclassified from accumulated other comprehensive income (loss) into net income (effective portion)</a></td>
<td class="nump">0<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="nump">30<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_IncomeStatementLocationAxis=us-gaap_ResearchAndDevelopmentExpenseMember', window );">Research, development, and engineering expenses | 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="top.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="top.Show.showAR( this, 'defref_us-gaap_DerivativeInstrumentsGainLossReclassifiedFromAccumulatedOCIIntoIncomeEffectivePortionNet', window );">Gains (losses) reclassified from accumulated other comprehensive income (loss) into net income (effective portion)</a></td>
<td class="nump">0<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="nump">3<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_IncomeStatementLocationAxis=us-gaap_GeneralAndAdministrativeExpenseMember', window );">Selling, general and administrative expenses | 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="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_DerivativeInstrumentsGainLossReclassifiedFromAccumulatedOCIIntoIncomeEffectivePortionNet', window );">Gains (losses) reclassified from accumulated other comprehensive income (loss) into net income (effective portion)</a></td>
<td class="nump">0<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="nump">8<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_IncomeStatementLocationAxis=us-gaap_ForeignCurrencyGainLossMember', window );">Foreign currency gain (loss) | 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="top.Show.showAR( this, 'defref_us-gaap_DerivativeGainLossOnDerivativeNetAbstract', window );"><strong>Derivative, Gain (Loss) on Derivative, Net [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="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_DerivativeGainLossOnDerivativeNet', window );">Gains (losses) recognized in net income</a></td>
<td class="nump">$ 1,305<span></span>
</td>
<td class="num">$ (285)<span></span>
</td>
<td class="nump">$ 270<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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of increase (decrease) in the fair value of derivatives recognized in the income statement.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/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 http://asc.fasb.org/extlink&amp;oid=109980867&amp;loc=SL5618551-113959<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_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_DerivativeGainLossOnDerivativeNetAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DerivativeGainLossOnDerivativeNetAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">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_DerivativeInstrumentsGainLossReclassifiedFromAccumulatedOCIIntoIncomeEffectivePortionNet">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The effective portion of net gain (loss) reclassified from accumulated other comprehensive income into income on derivative instruments designated and qualifying as hedging instruments.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 815<br> -SubTopic 10<br> -Section 50<br> -Paragraph 4D<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=109980867&amp;loc=SL5624177-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 4C<br> -Subparagraph (c)<br> -URI http://asc.fasb.org/extlink&amp;oid=109980867&amp;loc=SL5624171-113959<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DerivativeInstrumentsGainLossReclassifiedFromAccumulatedOCIIntoIncomeEffectivePortionNet</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIOnDerivativesNetOfTax">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount after tax of reclassification adjustment from accumulated other comprehensive income of accumulated gain (loss) realized from derivative instruments designated and qualifying as the effective portion of cash flow hedges and an entity's share of an equity investee's deferred hedging gain (loss).</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 815<br> -SubTopic 10<br> -Section 50<br> -Paragraph 4<br> -Subparagraph c<br> -URI http://asc.fasb.org/extlink&amp;oid=109980867&amp;loc=d3e41638-113959<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 17A<br> -URI http://asc.fasb.org/extlink&amp;oid=114867106&amp;loc=SL34724391-108580<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 15<br> -URI http://asc.fasb.org/extlink&amp;oid=114867106&amp;loc=d3e689-108580<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 11<br> -URI http://asc.fasb.org/extlink&amp;oid=114867106&amp;loc=d3e637-108580<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIOnDerivativesNetOfTax</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncomeStatementLocationAxis=us-gaap_CashFlowHedgingMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncomeStatementLocationAxis=us-gaap_CashFlowHedgingMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_HedgingDesignationAxis=us-gaap_DesignatedAsHedgingInstrumentMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_HedgingDesignationAxis=us-gaap_DesignatedAsHedgingInstrumentMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncomeStatementLocationAxis=us-gaap_SalesRevenueGoodsNetMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncomeStatementLocationAxis=us-gaap_SalesRevenueGoodsNetMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncomeStatementLocationAxis=us-gaap_ResearchAndDevelopmentExpenseMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncomeStatementLocationAxis=us-gaap_ResearchAndDevelopmentExpenseMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncomeStatementLocationAxis=us-gaap_GeneralAndAdministrativeExpenseMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncomeStatementLocationAxis=us-gaap_GeneralAndAdministrativeExpenseMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncomeStatementLocationAxis=us-gaap_ForeignCurrencyGainLossMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncomeStatementLocationAxis=us-gaap_ForeignCurrencyGainLossMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_HedgingDesignationAxis=us-gaap_NondesignatedMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_HedgingDesignationAxis=us-gaap_NondesignatedMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>53
<FILENAME>R86.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.19.3.a.u2</span><table class="report" border="0" cellspacing="2" id="idp6621724544">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>Revenue Recognition - Balance Sheet Impact (Details) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th"><div>Dec. 31, 2019</div></th>
<th class="th"><div>Dec. 31, 2018</div></th>
<th class="th"><div>Dec. 31, 2017</div></th>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_RevenueInitialApplicationPeriodCumulativeEffectTransitionLineItems', window );"><strong>Revenue</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_PrepaidExpenseAndOtherAssetsCurrent', window );">Prepaid expenses and other current assets</a></td>
<td class="nump">$ 26,840<span></span>
</td>
<td class="nump">$ 34,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="top.Show.showAR( this, 'defref_us-gaap_AccruedIncomeTaxesCurrent', window );">Accrued income taxes</a></td>
<td class="nump">30,333<span></span>
</td>
<td class="nump">5,062<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ContractWithCustomerLiabilityCurrent', window );">Deferred revenue and customer deposits</a></td>
<td class="nump">14,432<span></span>
</td>
<td class="nump">9,845<span></span>
</td>
<td class="nump">$ 9,420<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_RetainedEarningsAccumulatedDeficit', window );">Retained earnings</a></td>
<td class="nump">753,268<span></span>
</td>
<td class="nump">$ 646,214<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_srt_RestatementAxis=srt_ScenarioPreviouslyReportedMember', window );">As previously reported</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_RevenueInitialApplicationPeriodCumulativeEffectTransitionLineItems', window );"><strong>Revenue</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_RetainedEarningsAccumulatedDeficit', window );">Retained earnings</a></td>
<td class="nump">$ 1,105,714<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_AccruedIncomeTaxesCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Carrying amount as of the balance sheet date of the unpaid sum of the known and estimated amounts payable to satisfy all currently due domestic and foreign income tax obligations.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 944<br> -SubTopic 210<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-03(a)(15)(b)(1))<br> -URI http://asc.fasb.org/extlink&amp;oid=6879938&amp;loc=d3e572229-122910<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 942<br> -SubTopic 210<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-03(15)(1))<br> -URI http://asc.fasb.org/extlink&amp;oid=6876686&amp;loc=d3e534808-122878<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(20))<br> -URI http://asc.fasb.org/extlink&amp;oid=6877327&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AccruedIncomeTaxesCurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ContractWithCustomerLiabilityCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of obligation to transfer good or service to customer for which consideration has been received or is receivable, classified as current.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 606<br> -SubTopic 10<br> -Section 45<br> -Paragraph 2<br> -URI http://asc.fasb.org/extlink&amp;oid=82913815&amp;loc=SL49130532-203044<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 606<br> -SubTopic 10<br> -Section 45<br> -Paragraph 1<br> -URI http://asc.fasb.org/extlink&amp;oid=82913815&amp;loc=SL49130531-203044<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 606<br> -SubTopic 10<br> -Section 50<br> -Paragraph 8<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=109196051&amp;loc=SL49130549-203045<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ContractWithCustomerLiabilityCurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PrepaidExpenseAndOtherAssetsCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of asset related to consideration paid in advance for costs that provide economic benefits in future periods, and amount of other assets that are expected to be realized or consumed within one year or the normal operating cycle, if longer.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(7))<br> -URI http://asc.fasb.org/extlink&amp;oid=6877327&amp;loc=d3e13212-122682<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section 45<br> -Paragraph 1<br> -URI http://asc.fasb.org/extlink&amp;oid=82887183&amp;loc=d3e6676-107765<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(8))<br> -URI http://asc.fasb.org/extlink&amp;oid=6877327&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PrepaidExpenseAndOtherAssetsCurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_RetainedEarningsAccumulatedDeficit">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The cumulative amount of the reporting entity's undistributed earnings or deficit.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(30)(a)(3))<br> -URI http://asc.fasb.org/extlink&amp;oid=6877327&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)(23)(a)(4))<br> -URI http://asc.fasb.org/extlink&amp;oid=6879938&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 505<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.3-04)<br> -URI http://asc.fasb.org/extlink&amp;oid=27012166&amp;loc=d3e187085-122770<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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_RevenueInitialApplicationPeriodCumulativeEffectTransitionLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_RevenueInitialApplicationPeriodCumulativeEffectTransitionLineItems</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<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_RestatementAxis=srt_ScenarioPreviouslyReportedMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_RestatementAxis=srt_ScenarioPreviouslyReportedMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><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>54
<FILENAME>R76.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.19.3.a.u2</span><table class="report" border="0" cellspacing="2" id="idp6872312128">
<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, 2019</div></th>
<th class="th"><div>Dec. 31, 2018</div></th>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_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="top.Show.showAR( this, 'defref_us-gaap_ProductWarrantyAccrual', window );">Beginning Balance</a></td>
<td class="nump">$ 4,743<span></span>
</td>
<td class="nump">$ 4,701<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ProductWarrantyAccrualWarrantiesIssued', window );">Provisions for warranties issued during the period</a></td>
<td class="nump">3,841<span></span>
</td>
<td class="nump">4,184<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ProductWarrantyAccrualPayments', window );">Fulfillment of warranty obligations</a></td>
<td class="num">(3,871)<span></span>
</td>
<td class="num">(4,024)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_StandardAndExtendedProductWarrantyAccrualForeignCurrencyTranslationGainLoss', window );">Foreign exchange rate changes</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="num">(118)<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ProductWarrantyAccrual', window );">Ending Balance</a></td>
<td class="nump">$ 4,713<span></span>
</td>
<td class="nump">$ 4,743<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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>A 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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Carrying value as of the balance sheet date of obligations incurred through that date and payable for estimated claims under standard and extended warranty protection rights granted to customers.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 942<br> -SubTopic 210<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-03.15(5))<br> -URI http://asc.fasb.org/extlink&amp;oid=6876686&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 http://asc.fasb.org/extlink&amp;oid=68068213&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 http://asc.fasb.org/extlink&amp;oid=68068213&amp;loc=d3e12565-110249<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of decrease in 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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 460<br> -SubTopic 10<br> -Section 50<br> -Paragraph 8<br> -Subparagraph ((c)(2))<br> -URI http://asc.fasb.org/extlink&amp;oid=68068213&amp;loc=d3e12565-110249<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of increase in the standard and extended product warranty accrual from warranties issued.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 460<br> -SubTopic 10<br> -Section 50<br> -Paragraph 8<br> -Subparagraph ((c)(3))<br> -URI http://asc.fasb.org/extlink&amp;oid=68068213&amp;loc=d3e12565-110249<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ProductWarrantyAccrualWarrantiesIssued</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_StandardAndExtendedProductWarrantyAccrualForeignCurrencyTranslationGainLoss">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of foreign currency translation gain (loss) which decreases (increases) the standard and extended product warranty accrual.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 460<br> -SubTopic 10<br> -Section 50<br> -Paragraph 8<br> -Subparagraph (c)<br> -URI http://asc.fasb.org/extlink&amp;oid=68068213&amp;loc=d3e12565-110249<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_StandardAndExtendedProductWarrantyAccrualForeignCurrencyTranslationGainLoss</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>55
<FILENAME>R55.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.19.3.a.u2</span><table class="report" border="0" cellspacing="2" id="idp6869169168">
<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, 2019</div></th></tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_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="top.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="top.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="top.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="top.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="top.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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Revenue, Payment Terms</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_RangeAxis=srt_MinimumMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_srt_RangeAxis=srt_MaximumMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_RangeAxis=srt_MaximumMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>56
<FILENAME>R51.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.19.3.a.u2</span><table class="report" border="0" cellspacing="2" id="idp6609602544">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Selected Quarterly Financial Data (Unaudited) (Tables)<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><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="top.Show.showAR( this, 'defref_us-gaap_QuarterlyFinancialInformationDisclosureAbstract', window );"><strong>Quarterly Financial Information 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="top.Show.showAR( this, 'defref_us-gaap_ScheduleOfQuarterlyFinancialInformationTableTextBlock', window );">Schedule of Selected Quarterly Financial Information Data</a></td>
<td class="text"><div style="line-height:120%;text-align:center;font-size:10pt;"><div style="padding-left:0px;text-indent:0px;line-height:normal;padding-top:10px;"><table cellpadding="0" cellspacing="0" style="font-family:Times New Roman;font-size:10pt;margin-left:auto;margin-right:auto;width:100%;border-collapse:collapse;text-align:left;"><tr><td colspan="16"/></tr><tr><td style="width:53%;"/><td style="width:1%;"/><td style="width:9%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:9%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:9%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:9%;"/><td style="width:1%;"/></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;color:#ee2724;">&#160;</span></div></td><td colspan="15" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;">Quarter Ended</span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;color:#ee2724;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:7pt;"><span style="font-family:Arial;font-size:7pt;font-weight:bold;">March 31,                             2019</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:7pt;"><span style="font-family:Arial;font-size:7pt;font-weight:bold;">June 30,                                 2019</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:7pt;"><span style="font-family:Arial;font-size:7pt;font-weight:bold;">September 29,                           2019</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:7pt;"><span style="font-family:Arial;font-size:7pt;font-weight:bold;">December&#160;31,<br/>2019</span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;">&#160;</span></div></td><td colspan="15" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">(In thousands, except per share amounts)</span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;">Revenue</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;"><span>173,484</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;"><span>199,047</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;"><span>183,325</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;"><span>169,769</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;">Gross margin</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;"><span>127,200</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;"><span>148,080</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;"><span>135,693</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;"><span>124,898</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;">Operating income</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;"><span>30,147</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;"><span>51,756</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;"><span>43,092</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;"><span>17,607</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:13px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:13px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:13px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:13px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:13px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:13px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:13px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:13px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;">Net income</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;"><span>33,104</span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;"><span>48,749</span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;"><span>41,685</span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;"><span>80,327</span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:13px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:13px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:13px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:13px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:13px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:13px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:13px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:13px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;">Basic net income per share</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;"><span>0.19</span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;"><span>0.28</span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;"><span>0.24</span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;"><span>0.47</span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;">Diluted net income per share</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;"><span>0.19</span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;"><span>0.28</span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;"><span>0.24</span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;"><span>0.46</span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr></table></div></div><div style="line-height:120%;padding-top:12px;text-align:center;font-size:10pt;"><div style="padding-left:0px;text-indent:0px;line-height:normal;padding-top:10px;"><table cellpadding="0" cellspacing="0" style="font-family:Times New Roman;font-size:10pt;margin-left:auto;margin-right:auto;width:100%;border-collapse:collapse;text-align:left;"><tr><td colspan="16"/></tr><tr><td style="width:53%;"/><td style="width:1%;"/><td style="width:9%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:9%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:9%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:9%;"/><td style="width:1%;"/></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;">&#160;</span></div></td><td colspan="15" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;">Quarter Ended</span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;border-top:1px solid #000000;"><div style="text-align:center;font-size:7pt;"><span style="font-family:Arial;font-size:7pt;font-weight:bold;">April 1,                        2018</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;border-top:1px solid #000000;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;border-top:1px solid #000000;"><div style="text-align:center;font-size:7pt;"><span style="font-family:Arial;font-size:7pt;font-weight:bold;">July 1,                                 2018</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;border-top:1px solid #000000;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;border-top:1px solid #000000;"><div style="text-align:center;font-size:7pt;"><span style="font-family:Arial;font-size:7pt;font-weight:bold;">September 30,                           2018</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;border-top:1px solid #000000;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;border-top:1px solid #000000;"><div style="text-align:center;font-size:7pt;"><span style="font-family:Arial;font-size:7pt;font-weight:bold;">December&#160;31,</span></div><div style="text-align:center;font-size:7pt;"><span style="font-family:Arial;font-size:7pt;font-weight:bold;">2018</span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;">&#160;</span></div></td><td colspan="15" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">(In thousands, except per share amounts)</span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;">Revenue</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;"><span>169,567</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;"><span>211,264</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;"><span>232,221</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;"><span>193,286</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;">Gross margin</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;"><span>129,369</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;"><span>157,095</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;"><span>173,361</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;"><span>140,461</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;">Operating income</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;"><span>34,596</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;"><span>63,455</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;"><span>77,844</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;"><span>45,247</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:13px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:13px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:13px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:13px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:13px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:13px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:13px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:13px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;">Net income</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;"><span>37,217</span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;"><span>56,196</span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;"><span>80,436</span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;"><span>45,418</span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:13px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:13px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:13px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:13px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:13px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:13px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:13px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:13px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;">Basic net income per share</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;"><span>0.21</span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;"><span>0.33</span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;"><span>0.47</span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;"><span>0.26</span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;">Diluted net income per share</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;"><span>0.21</span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;"><span>0.32</span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;"><span>0.45</span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;"><span>0.26</span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr></table></div><span style="font-family:inherit;font-size:10pt;"><br/></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_QuarterlyFinancialInformationDisclosureAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_QuarterlyFinancialInformationDisclosureAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ScheduleOfQuarterlyFinancialInformationTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Tabular disclosure of quarterly financial data. Includes, but is not limited to, financial information for fiscal quarters, cumulative effect of a change in accounting principle and earnings per share data.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 270<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -URI http://asc.fasb.org/extlink&amp;oid=109225645&amp;loc=d3e1280-108306<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ScheduleOfQuarterlyFinancialInformationTableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>nonnum:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>57
<FILENAME>R59.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.19.3.a.u2</span><table class="report" border="0" cellspacing="2" id="idp6889235280">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Fair Value Measurements - Assets and Liabilities Measured at Fair Value on a Recurring Basis (Detail) - Fair Value, Measurements, Recurring - USD ($)<br></strong></div></th>
<th class="th" colspan="3">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Dec. 31, 2019</div></th>
<th class="th"><div>Dec. 31, 2018</div></th>
<th class="th"><div>Dec. 31, 2017</div></th>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_LiabilitiesFairValueDisclosureAbstract', window );"><strong>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="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_OtherThanTemporaryImpairmentLossesInvestmentsPortionRecognizedInEarningsNet', window );">Other than temporary impairment loss</a></td>
<td class="nump">$ 0<span></span>
</td>
<td class="nump">$ 0<span></span>
</td>
<td class="nump">$ 0<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_cgnx_OtherThanTemporaryImpairmentLossesInvestmentsPortionRecognizedInEarningsNetnoncurrent', window );">Other than temporary impairment loss non-current</a></td>
<td class="nump">0<span></span>
</td>
<td class="nump">$ 0<span></span>
</td>
<td class="nump">$ 0<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_FairValueByFairValueHierarchyLevelAxis=us-gaap_FairValueInputsLevel1Member', window );">Quoted Prices in Active Markets for Identical Assets (Level 1)</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AssetsFairValueDisclosureAbstract', window );"><strong>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="top.Show.showAR( this, 'defref_cgnx_MoneyMarketInstrumentsFairValueDisclosure', window );">Money market instruments</a></td>
<td class="nump">15,933,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="top.Show.showAR( this, 'defref_cgnx_TreasuryBillsFairValueDisclosure', window );">Treasury bills</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 custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_cgnx_CorporateBondsFairValueDisclosure', window );">Corporate bonds</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 custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_cgnx_AssetBackedSecuritiesFairValueDisclosure', window );">Asset-backed securities</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 custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_cgnx_SovereignBondsFairValueDisclosure', window );">Sovereign bonds</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 custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_cgnx_MunicipalBondsFairValueDisclosure', window );">Municipal bonds</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 custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_cgnx_AgencyBondsFairValueDisclosure', window );">Agency bonds</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 custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_cgnx_CertificateOfDepositFairValueDisclosure', window );">Certificate of deposit</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="top.Show.showAR( this, 'defref_us-gaap_ForeignCurrencyContractAssetFairValueDisclosure', window );">Economic hedge forward contracts</a></td>
<td class="text"> <span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_LiabilitiesFairValueDisclosureAbstract', window );"><strong>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="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ForeignCurrencyContractsLiabilityFairValueDisclosure', window );">Economic hedge forward contracts</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="top.Show.showAR( this, 'defref_us-gaap_BusinessCombinationContingentConsiderationLiability', window );">Contingent consideration liabilities</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="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_FairValueByFairValueHierarchyLevelAxis=us-gaap_FairValueInputsLevel2Member', window );">Significant Other Observable Inputs (Level 2)</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AssetsFairValueDisclosureAbstract', window );"><strong>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="top.Show.showAR( this, 'defref_cgnx_MoneyMarketInstrumentsFairValueDisclosure', window );">Money market instruments</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 custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_cgnx_TreasuryBillsFairValueDisclosure', window );">Treasury bills</a></td>
<td class="nump">309,248,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="top.Show.showAR( this, 'defref_cgnx_CorporateBondsFairValueDisclosure', window );">Corporate bonds</a></td>
<td class="nump">212,098,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="top.Show.showAR( this, 'defref_cgnx_AssetBackedSecuritiesFairValueDisclosure', window );">Asset-backed securities</a></td>
<td class="nump">113,083,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="top.Show.showAR( this, 'defref_cgnx_SovereignBondsFairValueDisclosure', window );">Sovereign bonds</a></td>
<td class="nump">22,299,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="top.Show.showAR( this, 'defref_cgnx_MunicipalBondsFairValueDisclosure', window );">Municipal bonds</a></td>
<td class="nump">6,952,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="top.Show.showAR( this, 'defref_cgnx_AgencyBondsFairValueDisclosure', window );">Agency bonds</a></td>
<td class="nump">5,914,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="top.Show.showAR( this, 'defref_cgnx_CertificateOfDepositFairValueDisclosure', window );">Certificate of deposit</a></td>
<td class="nump">4,328,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="top.Show.showAR( this, 'defref_us-gaap_ForeignCurrencyContractAssetFairValueDisclosure', window );">Economic hedge forward contracts</a></td>
<td class="nump">857,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="top.Show.showAR( this, 'defref_us-gaap_LiabilitiesFairValueDisclosureAbstract', window );"><strong>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="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ForeignCurrencyContractsLiabilityFairValueDisclosure', window );">Economic hedge forward contracts</a></td>
<td class="nump">23,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="top.Show.showAR( this, 'defref_us-gaap_BusinessCombinationContingentConsiderationLiability', window );">Contingent consideration liabilities</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="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_FairValueByFairValueHierarchyLevelAxis=us-gaap_FairValueInputsLevel3Member', window );">Unobservable Inputs (Level 3)</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_LiabilitiesFairValueDisclosureAbstract', window );"><strong>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="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_BusinessCombinationContingentConsiderationLiability', window );">Contingent consideration liabilities</a></td>
<td class="nump">$ 1,153,000<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_AgencyBondsFairValueDisclosure">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Agency bonds fair value disclosure.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Asset Backed Securities Fair Value Disclosure</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">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_CertificateOfDepositFairValueDisclosure">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Certificate Of Deposit Fair Value Disclosure</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cgnx_CertificateOfDepositFairValueDisclosure</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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Corporate bonds fair value disclosure.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Money market instruments fair value disclosure.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Municipal bonds fair value disclosure.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">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_OtherThanTemporaryImpairmentLossesInvestmentsPortionRecognizedInEarningsNetnoncurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Other Than Temporary Impairment Losses Investments Portion Recognized In Earnings Net, non current</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cgnx_OtherThanTemporaryImpairmentLossesInvestmentsPortionRecognizedInEarningsNetnoncurrent</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_SovereignBondsFairValueDisclosure">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Sovereign bonds fair value disclosure.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Treasury bills fair value disclosure.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_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_BusinessCombinationContingentConsiderationLiability">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of liability recognized arising from contingent consideration in a business combination.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 805<br> -SubTopic 30<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (c)(1)<br> -URI http://asc.fasb.org/extlink&amp;oid=35744584&amp;loc=d3e6927-128479<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 805<br> -SubTopic 30<br> -Section 35<br> -Paragraph 1<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=6911338&amp;loc=d3e6819-128478<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 805<br> -SubTopic 30<br> -Section 25<br> -Paragraph 6<br> -URI http://asc.fasb.org/extlink&amp;oid=6911189&amp;loc=d3e6408-128476<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_BusinessCombinationContingentConsiderationLiability</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ForeignCurrencyContractAssetFairValueDisclosure">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Fair value 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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Fair value 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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_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_OtherThanTemporaryImpairmentLossesInvestmentsPortionRecognizedInEarningsNet">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The amount of other than temporary impairment (OTTI) losses on equity securities, OTTI related to credit losses on debt securities, and OTTI losses on debt securities when the entity intends to sell the securities or it is more likely than not that the entity will be required to sell the securities before recovery of its amortized cost basis. Additionally, this item includes OTTI losses recognized during the period on investments accounted for under the cost method of accounting.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OtherThanTemporaryImpairmentLossesInvestmentsPortionRecognizedInEarningsNet</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_FairValueByMeasurementFrequencyAxis=us-gaap_FairValueMeasurementsRecurringMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_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_FairValueInputsLevel1Member">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_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_FairValueByFairValueHierarchyLevelAxis=us-gaap_FairValueInputsLevel2Member">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_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>58
<FILENAME>R109.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.19.3.a.u2</span><table class="report" border="0" cellspacing="2" id="idp6876718736">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Acquisitions - GVi Ventures, Inc. (Details) - USD ($)<br></strong></div></th>
<th class="th" colspan="1"></th>
<th class="th" colspan="3">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Apr. 12, 2017</div></th>
<th class="th"><div>Dec. 31, 2019</div></th>
<th class="th"><div>Dec. 31, 2018</div></th>
<th class="th"><div>Dec. 31, 2017</div></th>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionLineItems', window );"><strong>Business Acquisition [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1', window );">Revaluation of contingent consideration</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="num">$ (1,401,000)<span></span>
</td>
<td class="num">$ (3,000)<span></span>
</td>
<td class="num">$ (28,000)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_PaymentsForPreviousAcquisition', window );">Payment of contingent consideration</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="nump">1,000,000<span></span>
</td>
<td class="nump">$ 1,926,000<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionAxis=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>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionLineItems', window );"><strong>Business Acquisition [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_BusinessCombinationContingentConsiderationArrangementsChangeInTheRangeOfOutcomesContingentConsiderationLiabilityValueLow', window );">Business Combination, Contingent Consideration Arrangements, Change in Range of Outcomes, Contingent Consideration, Liability, Value, Low</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>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_BusinessCombinationContingentConsiderationArrangementsChangeInTheRangeOfOutcomesContingentConsiderationLiabilityValueHigh', window );">Business Combination, Contingent Consideration Arrangements, Change in Range of Outcomes, Contingent Consideration, Liability, Value, High</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">2,500,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="top.Show.showAR( this, 'defref_us-gaap_BusinessCombinationConsiderationTransferred1', window );">Purchase price</a></td>
<td class="nump">$ 5,368,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="top.Show.showAR( this, 'defref_us-gaap_PaymentsToAcquireBusinessesGross', window );">Cash paid in purchase price</a></td>
<td class="nump">4,069,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="top.Show.showAR( this, 'defref_us-gaap_BusinessCombinationContingentConsiderationLiability', window );">Contingent consideration liability</a></td>
<td class="nump">1,299,000<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1', window );">Revaluation of contingent consideration</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 1,065,000<span></span>
</td>
<td class="nump">282,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_PaymentsForPreviousAcquisition', window );">Payment of contingent consideration</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 1,000,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionPurchasePriceAllocationGoodwillExpectedTaxDeductibleAmount', window );">Tax deductible goodwill</a></td>
<td class="nump">$ 443,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="top.Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_TechnologyBasedIntangibleAssetsMember', window );">Completed Technologies [Member] | 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>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionLineItems', window );"><strong>Business Acquisition [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife', window );">Intangible assets, useful life</a></td>
<td class="text">5 years<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_CustomerRelationshipsMember', window );">Customer Relationships [Member] | 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>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionLineItems', window );"><strong>Business Acquisition [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife', window );">Intangible assets, useful life</a></td>
<td class="text">8 years<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
</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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Weighted average 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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 350<br> -SubTopic 30<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)(3)<br> -URI http://asc.fasb.org/extlink&amp;oid=66006027&amp;loc=d3e16265-109275<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_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_BusinessAcquisitionLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">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_BusinessAcquisitionPurchasePriceAllocationGoodwillExpectedTaxDeductibleAmount">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The amount of goodwill arising from a business combination that is expected to be deductible for tax purposes.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 805<br> -SubTopic 30<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (d)<br> -URI http://asc.fasb.org/extlink&amp;oid=35744584&amp;loc=d3e6927-128479<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_BusinessAcquisitionPurchasePriceAllocationGoodwillExpectedTaxDeductibleAmount</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_BusinessCombinationConsiderationTransferred1">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of consideration transferred, consisting of acquisition-date fair value of assets transferred by the acquirer, liabilities incurred by the acquirer, and equity interest issued by the acquirer.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 805<br> -SubTopic 30<br> -Section 30<br> -Paragraph 8<br> -URI http://asc.fasb.org/extlink&amp;oid=109124213&amp;loc=d3e6613-128477<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 805<br> -SubTopic 30<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=35744584&amp;loc=d3e6927-128479<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 805<br> -SubTopic 30<br> -Section 30<br> -Paragraph 7<br> -URI http://asc.fasb.org/extlink&amp;oid=109124213&amp;loc=d3e6578-128477<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_BusinessCombinationConsiderationTransferred1</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of increase (decrease) in the value of a contingent consideration liability, including, but not limited to, differences arising upon settlement.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=109223946&amp;loc=d3e3602-108585<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 805<br> -SubTopic 30<br> -Section 50<br> -Paragraph 4<br> -Subparagraph (a)(1)<br> -URI http://asc.fasb.org/extlink&amp;oid=35744584&amp;loc=d3e7008-128479<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_BusinessCombinationContingentConsiderationArrangementsChangeInTheRangeOfOutcomesContingentConsiderationLiabilityValueHigh">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>This element represents the amount of any change recognized during the period in the high-end of the estimated range of outcomes (undiscounted) of a liability assumed in a business combination arising from an item of contingent consideration.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 805<br> -SubTopic 30<br> -Section 50<br> -Paragraph 4<br> -Subparagraph (a)(2)<br> -URI http://asc.fasb.org/extlink&amp;oid=35744584&amp;loc=d3e7008-128479<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_BusinessCombinationContingentConsiderationArrangementsChangeInTheRangeOfOutcomesContingentConsiderationLiabilityValueHigh</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_BusinessCombinationContingentConsiderationArrangementsChangeInTheRangeOfOutcomesContingentConsiderationLiabilityValueLow">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>This element represents the amount of any change recognized during the period in the low-end of the estimated range of outcomes (undiscounted) of a liability assumed in a business combination arising from an item of contingent consideration.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 805<br> -SubTopic 30<br> -Section 50<br> -Paragraph 4<br> -Subparagraph (a)(2)<br> -URI http://asc.fasb.org/extlink&amp;oid=35744584&amp;loc=d3e7008-128479<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_BusinessCombinationContingentConsiderationArrangementsChangeInTheRangeOfOutcomesContingentConsiderationLiabilityValueLow</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of liability recognized arising from contingent consideration in a business combination.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 805<br> -SubTopic 30<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (c)(1)<br> -URI http://asc.fasb.org/extlink&amp;oid=35744584&amp;loc=d3e6927-128479<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 805<br> -SubTopic 30<br> -Section 35<br> -Paragraph 1<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=6911338&amp;loc=d3e6819-128478<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 805<br> -SubTopic 30<br> -Section 25<br> -Paragraph 6<br> -URI http://asc.fasb.org/extlink&amp;oid=6911189&amp;loc=d3e6408-128476<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_BusinessCombinationContingentConsiderationLiability</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PaymentsForPreviousAcquisition">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Cash outflow representing an adjustment to the purchase price of a previous acquisition.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 13<br> -URI http://asc.fasb.org/extlink&amp;oid=109223946&amp;loc=d3e3213-108585<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PaymentsForPreviousAcquisition</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The cash outflow associated with the acquisition of business during the period. The cash portion only of the acquisition price.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 805<br> -SubTopic 30<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (b)(1)<br> -URI http://asc.fasb.org/extlink&amp;oid=35744584&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 http://asc.fasb.org/extlink&amp;oid=109223946&amp;loc=d3e3213-108585<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_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_GViVenturesInc.Member">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_BusinessAcquisitionAxis=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>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_TechnologyBasedIntangibleAssetsMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_TechnologyBasedIntangibleAssetsMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_CustomerRelationshipsMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_CustomerRelationshipsMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>59
<FILENAME>R31.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.19.3.a.u2</span><table class="report" border="0" cellspacing="2" id="idp6870712112">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Acquisitions<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><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="top.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="top.Show.showAR( this, 'defref_us-gaap_BusinessCombinationDisclosureTextBlock', window );">Acquisitions</a></td>
<td class="text">Acquisitions<div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">The Company completed </span><span style="font-family:Arial;font-size:10pt;"><span>one</span></span><span style="font-family:Arial;font-size:10pt;"> business acquisition in 2019 and </span><span style="font-family:Arial;font-size:10pt;"><span>two</span></span><span style="font-family:Arial;font-size:10pt;"> business acquisitions in 2017.  All of these transactions were accounted for as business combinations.  Pro-forma information for these acquisitions is not presented because they are not significant, either individually or in the aggregate.  Revenue and earnings since the dates of the acquisitions included in the Company's Consolidated Statements of Operations are also not presented because they are not material.  </span><span style="font-family:Arial;font-size:10pt;background-color:#ffffff;">Transaction costs were immaterial and were expensed as incurred.</span><span style="font-family:Arial;font-size:10pt;"> </span></div><div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Assets acquired and liabilities assumed have been recorded at their estimated fair values as of the acquisition date.  Contingent consideration is remeasured each reporting period with changes in fair value recorded in "Other income (expense)" on the Consolidated Statements of Operations. </span></div><div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-style:italic;">Sualab Co., Ltd.</span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">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 </span><span style="font-family:Arial;font-size:10pt;"><span>$194,642,000</span></span><span style="font-family:Arial;font-size:10pt;"> included cash payments of </span><span style="font-family:Arial;font-size:10pt;"><span>$170,602,000</span></span><span style="font-family:Arial;font-size:10pt;"> upon closing.  The remaining consideration consists of deferred payments of </span><span style="font-family:Arial;font-size:10pt;"><span>$24,040,000</span></span><span style="font-family:Arial;font-size:10pt;"> that may become payable on the fourth anniversary date of the closing, contingent upon continued employment of key talent, and will be recorded as compensation expense over this four year period. </span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Sualab's intellectual property, engineering expertise, and market coverage are expected to increase the Company's existing deep learning capabilities.  Combined with intellectual property acquired from ViDi Systems S.A. in 2017, the Company is now a leading provider of deep learning-based industrial vision software. </span></div><div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">The purchase price that was not related to employment was allocated as follows (in thousands):</span></div><div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><div style="padding-left:0px;text-indent:0px;line-height:normal;padding-top:10px;"><table cellpadding="0" cellspacing="0" style="font-family:Times New Roman;font-size:10pt;width:100%;border-collapse:collapse;text-align:left;"><tr><td colspan="4"/></tr><tr><td style="width:86%;"/><td style="width:1%;"/><td style="width:12%;"/><td style="width:1%;"/></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Cash and cash equivalents</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>3,691</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Current investments</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>9,487</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Accounts receivable</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>1,200</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Inventories</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>115</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Prepaid expenses and other current assets</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>252</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Property, plant, and equipment</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>726</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Operating lease assets</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>2,792</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Deferred income tax asset</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>3,087</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Other assets</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>513</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Accounts payable</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>(28</span></span></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">)</span></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Accrued expenses</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>(2,633</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">)</span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Deferred revenue and customer deposits</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>(764</span></span></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">)</span></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Operating lease liabilities</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>(448</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">)</span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Non-current operating lease liabilities</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>(2,344</span></span></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">)</span></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Deferred income tax liabilities</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>(7,926</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">)</span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Other liabilities</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>(10</span></span></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">)</span></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Completed technologies</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>18,300</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">In-process technologies</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>8,200</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Customer relationships</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>5,800</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Non-compete agreements</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>340</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Trademarks</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>110</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Goodwill</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>130,142</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:36px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Purchase price</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>170,602</span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr></table></div><span style="font-family:inherit;font-size:10pt;"><br/></span></div><div style="line-height:120%;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><br/></span></div><div style="line-height:120%;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">The completed technologies, in-process technologies, customer relationships, trademarks, and non-compete agreements are included in "Intangible assets" on the Consolidated Balance </span><span style="font-family:Arial;font-size:10pt;background-color:#ffffff;">Sheet.  The completed technologies are being amortized to cost of revenue over</span><span style="font-family:Arial;font-size:10pt;background-color:#ffffff;"> </span><span style="font-family:Arial;font-size:10pt;background-color:#ffffff;"><span>eight years</span></span><span style="font-family:Arial;font-size:10pt;background-color:#ffffff;">, the customer relationships are being amortized to SG&amp;A expenses over</span><span style="font-family:Arial;font-size:10pt;background-color:#ffffff;"> </span><span style="font-family:Arial;font-size:10pt;background-color:#ffffff;"><span>seven years</span></span><span style="font-family:Arial;font-size:10pt;background-color:#ffffff;">, the trademarks are being amortized to SG&amp;A expenses over</span><span style="font-family:Arial;font-size:10pt;background-color:#ffffff;"> </span><span style="font-family:Arial;font-size:10pt;background-color:#ffffff;"><span>two years</span></span><span style="font-family:Arial;font-size:10pt;background-color:#ffffff;">, and the non-compete agreements are being amortized to RD&amp;E expenses over six to</span><span style="font-family:Arial;font-size:10pt;background-color:#ffffff;"> </span><span style="font-family:Arial;font-size:10pt;background-color:#ffffff;"><span>seven years</span></span><span style="font-family:Arial;font-size:10pt;background-color:#ffffff;">.  The in-process technology will be amortized to cost of revenue over its estimated useful life once the technology is finalized.  The portion of the acquired goodwill deductible for tax purposes is</span><span style="font-family:Arial;font-size:10pt;background-color:#ffffff;"> </span><span style="font-family:Arial;font-size:10pt;background-color:#ffffff;"><span>$104,609,000</span></span><span style="font-family:Arial;font-size:10pt;background-color:#ffffff;">.</span></div><div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-style:italic;">GVi Ventures, Inc.</span></div><div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">On April 12, 2017, the Company acquired selected assets and assumed selected liabilities of GVi Ventures, Inc., a privately-held maker of pre-configured vision solutions for common automotive applications based in the United States.  The total purchase price of </span><span style="font-family:Arial;font-size:10pt;"><span>$5,368,000</span></span><span style="font-family:Arial;font-size:10pt;"> included cash payment of </span><span style="font-family:Arial;font-size:10pt;"><span>$4,069,000</span></span><span style="font-family:Arial;font-size:10pt;"> and contingent consideration valued at </span><span style="font-family:Arial;font-size:10pt;"><span>$1,299,000</span></span><span style="font-family:Arial;font-size:10pt;"> as of the acquisition date.  In addition, the Company entered into special incentive payments tied to employment, none of which are material, that are being recorded as compensation expense. </span></div><div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">The Company recorded fair value adjustments in non-operating expense totaling </span><span style="font-family:Arial;font-size:10pt;"><span>$282,000</span></span><span style="font-family:Arial;font-size:10pt;"> in 2017 and </span><span style="font-family:Arial;font-size:10pt;"><span>$1,065,000</span></span><span style="font-family:Arial;font-size:10pt;"> in 2018, and paid out </span><span style="font-family:Arial;font-size:10pt;"><span>$1,000,000</span></span><span style="font-family:Arial;font-size:10pt;"> in 2018 of the contingent consideration.  In 2019, the remaining contingent consideration liability was reduced to </span><span style="font-family:Arial;font-size:10pt;"><span>zero</span></span><span style="font-family:Arial;font-size:10pt;"> as a result of a lower level of revenue in the America's automotive industry.  The undiscounted potential outcomes related to future contingent consideration range from </span><span style="font-family:Arial;font-size:10pt;"><span>$0</span></span><span style="font-family:Arial;font-size:10pt;"> to </span><span style="font-family:Arial;font-size:10pt;"><span>$2,500,000</span></span><span style="font-family:Arial;font-size:10pt;"> based upon certain revenue levels over the next three years. </span></div><div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Under this transaction, in addition to customer relationships and completed technologies, the Company acquired a team of software engineers that are expected to develop new products and increase the Company's ability to serve large customers in the automotive industry.  </span></div><div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">The purchase price was allocated as follows (in thousands):</span></div><div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><div style="padding-left:0px;text-indent:0px;line-height:normal;padding-top:10px;"><table cellpadding="0" cellspacing="0" style="font-family:Times New Roman;font-size:10pt;width:100%;border-collapse:collapse;text-align:left;"><tr><td colspan="4"/></tr><tr><td style="width:86%;"/><td style="width:1%;"/><td style="width:12%;"/><td style="width:1%;"/></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Accounts receivable</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>423</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Inventories</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>120</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Prepaid expenses and other current assets</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>1</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Accounts payable</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>(152</span></span></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">)</span></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Accrued expenses</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>(10</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">)</span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Completed technologies</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>910</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Customer relationships</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>2,600</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Goodwill</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>1,476</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:36px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Purchase price</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>5,368</span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr></table></div><span style="font-family:inherit;font-size:10pt;"><br/></span></div><div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">The customer relationships and completed technologies are included in "Intangible assets" on the Consolidated Balance </span><span style="font-family:Arial;font-size:10pt;background-color:#ffffff;">Sheet.  The customer relationships are being amort</span><span style="font-family:Arial;font-size:10pt;">ized to selling, general, and administrative e</span><span style="font-family:Arial;font-size:10pt;background-color:#ffffff;">xpenses over</span><span style="font-family:Arial;font-size:10pt;background-color:#ffffff;"> </span><span style="font-family:Arial;font-size:10pt;background-color:#ffffff;"><span>eight years</span></span><span style="font-family:Arial;font-size:10pt;background-color:#ffffff;">, and the completed technologies are being amortized to cost of revenue over</span><span style="font-family:Arial;font-size:10pt;background-color:#ffffff;"> </span><span style="font-family:Arial;font-size:10pt;background-color:#ffffff;"><span>five years</span></span><span style="font-family:Arial;font-size:10pt;background-color:#ffffff;">, both on a straigh</span><span style="font-family:Arial;font-size:10pt;">t-line basis.  The portion of the acquired goodwill deductible for tax purposes is </span><span style="font-family:Arial;font-size:10pt;"><span>$443,000</span></span><span style="font-family:Arial;font-size:10pt;">. </span></div><div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-style:italic;">ViDi Systems S.A.</span></div><div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">On April 4, 2017, the Company acquired all of the outstanding shares of ViDi Systems, S.A. (ViDi), a privately-held vision software company based in Switzerland.  The total purchase price of </span><span style="font-family:Arial;font-size:10pt;"><span>$23,015,000</span></span><span style="font-family:Arial;font-size:10pt;"> included cash payment of </span><span style="font-family:Arial;font-size:10pt;"><span>$20,019,000</span></span><span style="font-family:Arial;font-size:10pt;">, with the remaining </span><span style="font-family:Arial;font-size:10pt;"><span>$2,996,000</span></span><span style="font-family:Arial;font-size:10pt;"> recorded as a holdback to secure potential claims under the agreement that was paid in 2018.  In addition, the Company entered into a special incentive payment tied to employment, which is not material, that is being recorded as compensation expense.</span></div><div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Under this transaction, in addition to completed technologies, the Company acquired a team of software engineers that are expected to help the Company broaden the scope of applications that can be addressed with Cognex vision.   ViDi's deep learning software solves complex applications that are too complicated and time-consuming to program and maintain with traditional machine vision rules-based algorithms.  Using feedback, ViDi's software trains the system to distinguish between acceptable variations and defects. </span></div><div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">The purchase price was allocated as follows (in thousands):</span></div><div style="line-height:120%;padding-top:8px;text-align:center;font-size:10pt;"><div style="padding-left:0px;text-indent:0px;line-height:normal;padding-top:10px;"><table cellpadding="0" cellspacing="0" style="font-family:Times New Roman;font-size:10pt;margin-left:auto;margin-right:auto;width:100%;border-collapse:collapse;text-align:left;"><tr><td colspan="4"/></tr><tr><td style="width:86%;"/><td style="width:1%;"/><td style="width:12%;"/><td style="width:1%;"/></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Cash</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>146</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Accounts receivable</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>425</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Prepaid expenses and other current assets</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>129</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Property, plant, and equipment</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>40</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Deferred income tax asset</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>620</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Accounts payable</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>(98</span></span></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">)</span></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Accrued expenses</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>(716</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">)</span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Deferred income tax liability</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>(1,008</span></span></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">)</span></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Non-compete agreement</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>370</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Completed technologies</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>4,774</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Goodwill</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>18,333</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:36px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Purchase price</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>23,015</span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr></table></div><span style="font-family:inherit;font-size:10pt;"><br/></span></div><span style="font-family:Arial;font-size:10pt;">The non-compete agreement and completed technology are included in "Intangible assets" on the Consolidated Balance Sheet.  The non-compete agreement are being amortized to research, development and engineering expenses over </span><span style="font-family:Arial;font-size:10pt;"><span>three years</span></span><span style="font-family:Arial;font-size:10pt;">, and the completed technology are being amortized to cost of revenue over </span><span style="font-family:Arial;font-size:10pt;"><span>six years</span></span><span style="font-family:Arial;font-size:10pt;">, both on a straight-line basis.  The portion of the acquired goodwill deductible for tax purposes is </span><span style="font-family:Arial;font-size:10pt;"><span>$5,112,000</span></span><span style="font-family:Arial;font-size:10pt;">.</span><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_BusinessCombinationDisclosureTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The entire disclosure for a business combination (or series of individually immaterial business combinations) completed during the period, including background, timing, and recognized assets and liabilities. The disclosure may include leverage buyout transactions (as applicable).</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 805<br> -URI http://asc.fasb.org/topic&amp;trid=2303972<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_BusinessCombinationDisclosureTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>nonnum:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_BusinessCombinationsAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_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>60
<FILENAME>R35.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.19.3.a.u2</span><table class="report" border="0" cellspacing="2" id="idp6868523808">
<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, 2019</div></th></tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_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="top.Show.showAR( this, 'defref_cgnx_NatureOfOperationsPolicyTextBlock', window );">Nature of Operations</a></td>
<td class="text"><div style="line-height:120%;padding-bottom:6px;padding-top:12px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;text-decoration:underline;">Nature of Operations</span></div><div style="line-height:120%;padding-bottom:6px;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Cognex Corporation is a leading provider of machine vision products that capture and analyze visual information in order to automate manufacturing and distribution tasks where vision is required.</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="top.Show.showAR( this, 'defref_us-gaap_UseOfEstimates', window );">Use of Estimates in the Preparation of Financial Statements</a></td>
<td class="text"><div style="line-height:120%;padding-bottom:6px;padding-top:12px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;text-decoration:underline;">Use of Estimates in the Preparation of Financial Statements</span></div><div style="line-height:120%;padding-bottom:6px;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">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, accounts receivable, inventories, leases, long-lived assets, internal-use software, goodwill, warranty obligations, contingencies, derivative instruments, stock-based compensation, income taxes, and business combinations.</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="top.Show.showAR( this, 'defref_us-gaap_ConsolidationPolicyTextBlock', window );">Basis of Consolidation</a></td>
<td class="text"><div style="line-height:120%;padding-bottom:6px;padding-top:12px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;text-decoration:underline;">Basis of Consolidation</span></div><div style="line-height:120%;padding-bottom:6px;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">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="top.Show.showAR( this, 'defref_us-gaap_ForeignCurrencyTransactionsAndTranslationsPolicyTextBlock', window );">Foreign Currency</a></td>
<td class="text"><div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;text-decoration:underline;">Foreign Currency Translation</span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">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 recorded in shareholders&#8217; equity as other comprehensive income (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="top.Show.showAR( this, 'defref_us-gaap_FairValueOfFinancialInstrumentsPolicy', window );">Fair Value Measurements</a></td>
<td class="text"><div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;text-decoration:underline;">Fair Value Measurements</span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">The Company applies a three-level valuation hierarchy for fair value measurements.  The categorization of assets and liabilities within the valuation hierarchy is based upon 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 upon 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="top.Show.showAR( this, 'defref_us-gaap_CashAndCashEquivalentsPolicyTextBlock', window );">Cash, Cash Equivalents, and Investments</a></td>
<td class="text"><div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;text-decoration:underline;">Cash, Cash Equivalents, and Investments</span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Money market instruments, as well as certificates of deposits and debt securities with original maturities of three months or less, are classified as cash equivalents and are stated at amortized cost.  Certificates of deposit and debt securities with original maturities greater than three months and remaining maturities of one year or less are classified as short-term investments.  Debt securities with remaining maturities greater than one year are classified as long-term investments.  It is the Company&#8217;s policy to invest in debt securities with effective maturities that do not exceed </span><span style="font-family:Arial;font-size:10pt;"><span>ten years</span></span><span style="font-family:Arial;font-size:10pt;">.</span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">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, recorded in shareholders&#8217; equity as other comprehensive income (loss).  Realized gains and losses are included in current operations, along with the amortization of the discount or premium on debt securities arising at acquisition, and are calculated using the specific identification method.  The Company&#8217;s limited partnership interest is accounted for using the cost method because the Company&#8217;s investment is less than </span><span style="font-family:Arial;font-size:10pt;"><span>5%</span></span><span style="font-family:Arial;font-size:10pt;"> of the partnership and the Company has no influence over the partnership&#8217;s operating and financial policies.  The carrying value of this investment has been reduced to zero, and therefore, distributions are recorded as investment income as they occur.  </span></div><div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Management monitors the carrying value of its investments in debt securities compared to their fair value to determine whether an other-than-temporary impairment has occurred.  If the fair value of a debt security is less than its amortized cost, the Company assesses whether the impairment is other-than-temporary.  In considering whether a decline in fair value is other-than-temporary, we consider many factors.  In its evaluation of its debt securities, management considers the type of security, the credit rating of the security, the length of time the security has been in a loss position, the size of the loss position, our intent and ability to hold the security to expected recovery of value, and other meaningful information.  An impairment is considered other-than-temporary if (i)&#160;the Company has the intent to sell the security, (ii)&#160;it is more likely than not that the Company will be required to sell the security before recovery of the entire amortized cost basis, or (iii)&#160;the Company does not expect to recover the entire amortized cost basis of the security.  If impairment is considered other-than-temporary based upon condition (i)&#160;or (ii)&#160;described above, the entire difference between the amortized cost and the fair value of the security is recognized in current operations.  If an impairment is considered other-than-temporary based upon condition (iii), the amount representing credit losses (defined as the difference between the present value of the cash flows expected to be collected and the amortized cost basis of the security) is recognized in current operations and the amount relating to all other factors is recognized in shareholders' equity as other comprehensive income (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="top.Show.showAR( this, 'defref_us-gaap_ReceivablesPolicyTextBlock', window );">Accounts Receivable</a></td>
<td class="text"><div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;text-decoration:underline;">Accounts Receivable</span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">The Company extends credit with various payment terms to customers based upon an evaluation of their financial condition.  Accounts that are outstanding longer than the payment terms are considered to be past due.  The Company establishes reserves against accounts receivable for potential credit losses and records bad debt expense in current operations when it determines receivables are at risk for collection based upon the length of time the receivable has been outstanding, the customer&#8217;s current ability to pay its obligations to the Company, general economic and industry conditions, as well as various other factors.  Receivables are written off against these reserves in the period they are determined to be uncollectible and payments subsequently received on previously written-off receivables are recorded as a reversal of the bad debt expense.</span></div><span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_InventoryPolicyTextBlock', window );">Inventories</a></td>
<td class="text"><div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;text-decoration:underline;">Inventories</span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">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 prices in the ordinary course of business, less reasonably predictable costs of completion, disposal, and transportation.</span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">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 upon assumptions about future demand, product transitions, and market conditions, 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="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">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 would recognize a higher than normal gross margin if the reserved inventory were subsequently sold.</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="top.Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentPolicyTextBlock', window );">Property, Plant, and Equipment</a></td>
<td class="text"><div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;text-decoration:underline;">Property, Plant, and Equipment</span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">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 </span><span style="font-family:Arial;font-size:10pt;"><span>39 years</span></span><span style="font-family:Arial;font-size:10pt;">, building improvements&#8217; useful lives are </span><span style="font-family:Arial;font-size:10pt;"><span>ten years</span></span><span style="font-family:Arial;font-size:10pt;">, and the useful lives of computer hardware and software, manufacturing test equipment, and furniture and fixtures range from </span><span style="font-family:Arial;font-size:10pt;">two</span><span style="font-family:Arial;font-size:10pt;"> to </span><span style="font-family:Arial;font-size:10pt;"><span>ten years</span></span><span style="font-family:Arial;font-size:10pt;">.  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="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_GoodwillAndIntangibleAssetsGoodwillPolicy', window );">Goodwill</a></td>
<td class="text"><div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;text-decoration:underline;">Goodwill</span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Goodwill is stated at cost.  The Company evaluates the possible 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 macroeconomic conditions, industry and market considerations, overall financial performance (both current and projected), changes in management or 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 amount, the entity 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 amount 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 upon a discounted cash flow model.  In addition, the Company uses the market approach, which compares the reporting unit to publicly-traded companies and transactions involving similar businesses, to support the conclusions based upon the income approach. </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="top.Show.showAR( this, 'defref_us-gaap_IntangibleAssetsFiniteLivedPolicy', window );">Intangible Assets</a></td>
<td class="text"><div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;text-decoration:underline;">Intangible Assets</span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">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 upon facts and circumstances.  The useful lives of distribution networks range from </span><span style="font-family:Arial;font-size:10pt;">eleven</span><span style="font-family:Arial;font-size:10pt;"> to </span><span style="font-family:Arial;font-size:10pt;"><span>twelve years</span></span><span style="font-family:Arial;font-size:10pt;">, of completed technologies from </span><span style="font-family:Arial;font-size:10pt;">five</span><span style="font-family:Arial;font-size:10pt;"> to </span><span style="font-family:Arial;font-size:10pt;"><span>eight years</span></span><span style="font-family:Arial;font-size:10pt;">, of customer relationships from </span><span style="font-family:Arial;font-size:10pt;">five</span><span style="font-family:Arial;font-size:10pt;"> to </span><span style="font-family:Arial;font-size:10pt;"><span>eight years</span></span><span style="font-family:Arial;font-size:10pt;">, of non-compete agreements from </span><span style="font-family:Arial;font-size:10pt;">three</span><span style="font-family:Arial;font-size:10pt;"> to </span><span style="font-family:Arial;font-size:10pt;"><span>seven years</span></span><span style="font-family:Arial;font-size:10pt;">, and trademarks </span><span style="font-family:Arial;font-size:10pt;"><span>two years</span></span><span style="font-family:Arial;font-size:10pt;">.  In-process technology is  an indefinite-lived intangible asset until the technology is finalized, at which point it is amortized over its estimated useful life.  The Company evaluates the possible impairment of long-lived assets, including intangible assets, whenever events or circumstances indicate the carrying value of the assets may not be recoverable. At the occurrence of a certain event or change in circumstances, the Company evaluates the potential impairment of an asset by estimating the future undiscounted cash flows expected to result from the use and eventual disposition of the asset.  If the sum of the estimated future cash flows is less than the carrying value, the Company determines the amount of such impairment by comparing the fair value of the asset to its carrying value.  The fair value is based upon the present value of the estimated future cash flows using a discount rate commensurate with the risks involved.</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="top.Show.showAR( this, 'defref_us-gaap_StandardProductWarrantyPolicy', window );">Warranty Obligations</a></td>
<td class="text"><div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;text-decoration:underline;">Warranty Obligations</span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">The Company warrants its products to be free from defects in material and workmanship for periods primarily ranging from </span><span style="font-family:Arial;font-size:10pt;">one</span><span style="font-family:Arial;font-size:10pt;"> to </span><span style="font-family:Arial;font-size:10pt;"><span>three years</span></span><span style="font-family:Arial;font-size:10pt;"> from the time of sale based upon 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 upon 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="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_CommitmentsAndContingenciesPolicyTextBlock', window );">Contingencies</a></td>
<td class="text"><div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;text-decoration:underline;">Contingencies</span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">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, such as patent infringement matters, are expensed as incurred.</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="top.Show.showAR( this, 'defref_us-gaap_RevenueRecognitionPolicyTextBlock', window );">Revenue Recognition</a></td>
<td class="text"><div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;text-decoration:underline;">Revenue Recognition</span></div><div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">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="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-style:italic;">Identifying the Contract with the Customer</span></div><div style="line-height:120%;padding-top:4px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">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.  </span></div><div style="line-height:120%;padding-top:8px;text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-style:italic;">Identifying the Performance Obligations in the Contract</span></div><div style="line-height:120%;padding-top:4px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">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 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, logistics, and automotive industries.   </span></div><div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">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="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">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="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-style:italic;">Determining the Transaction Price</span></div><div style="line-height:120%;padding-top:4px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">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="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">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 upon 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="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-style:italic;">Allocating the Transaction Price to the Performance Obligations</span></div><div style="line-height:120%;padding-top:4px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">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="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-style:italic;">Recognizing Revenue When (or As) the Performance Obligations are Satisfied</span></div><div style="line-height:120%;padding-top:4px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">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="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">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 will 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="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">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 specifications.  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 specifications 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="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">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 </span><span style="font-family:Arial;font-size:10pt;"><span>30</span></span><span style="font-family:Arial;font-size:10pt;"> to </span><span style="font-family:Arial;font-size:10pt;"><span>90 days</span></span><span style="font-family:Arial;font-size:10pt;"> 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 </span></div><div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">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="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">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="top.Show.showAR( this, 'defref_us-gaap_ResearchDevelopmentAndComputerSoftwarePolicyTextBlock', window );">Research and Development</a></td>
<td class="text"><div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;text-decoration:underline;">Research and Development</span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Research and development costs for internally-developed or acquired products 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><span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AdvertisingCostsPolicyTextBlock', window );">Advertising Costs</a></td>
<td class="text"><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;text-decoration:underline;">Advertising Costs</span></div><div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Advertising costs are expensed as incurred and totaled </span><span style="font-family:Arial;font-size:10pt;"><span>$1,385,000</span></span><span style="font-family:Arial;font-size:10pt;"> in </span><span style="font-family:Arial;font-size:10pt;">2019</span><span style="font-family:Arial;font-size:10pt;">, </span><span style="font-family:Arial;font-size:10pt;"><span>$1,662,000</span></span><span style="font-family:Arial;font-size:10pt;"> in </span><span style="font-family:Arial;font-size:10pt;">2018</span><span style="font-family:Arial;font-size:10pt;">, and </span><span style="font-family:Arial;font-size:10pt;"><span>$1,679,000</span></span><span style="font-family:Arial;font-size:10pt;"> in </span><span style="font-family:Arial;font-size:10pt;">2017</span><span style="font-family:Arial;font-size:10pt;">.</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="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationOptionAndIncentivePlansPolicy', window );">Stock-Based Compensation</a></td>
<td class="text"><div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;text-decoration:underline;">Stock-Based Compensation</span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">The Company&#8217;s stock-based awards that result in compensation expense consist of stock options and restricted stock units (RSUs).  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 restricted stock units.  When a stock option is exercised or a restricted stock unit is settled, the Company issues new shares from this pool.  The fair values of stock options are estimated on the grant date using a binomial lattice model.  Management is responsible for determining the appropriate valuation model and estimating these fair values, and in doing so, considers a number of factors, including information provided by an outside valuation advisor.  The fair value of RSUs are determined based upon the market value of the Company's common stock on the grant date. </span></div>The Company recognizes compensation expense related to stock options and RSUs 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 upon 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 upon the employee&#8217;s service, and an increase or decrease to compensation expense is recorded <span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_IncomeTaxPolicyTextBlock', window );">Taxes</a></td>
<td class="text"><div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;text-decoration:underline;">Taxes</span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">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="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">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="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Deferred tax assets and liabilities are determined based upon 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 upon 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="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">In December 2017, the Tax Cuts and Jobs Act (&#8220;Tax Act&#8221;) was signed into law. The Tax Act imposed a minimum tax on foreign earnings related to intangible assets, known as the Global Intangible Low-Taxed Income (GILTI) tax  In the fourth quarter of 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 the third quarter of 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="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">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="top.Show.showAR( this, 'defref_us-gaap_EarningsPerSharePolicyTextBlock', window );">Net Income Per Share</a></td>
<td class="text"><div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;text-decoration:underline;">Net Income Per Share</span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">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="top.Show.showAR( this, 'defref_us-gaap_ComprehensiveIncomePolicyPolicyTextBlock', window );">Comprehensive Income</a></td>
<td class="text"><div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;text-decoration:underline;">Comprehensive Income</span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">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 </span><span style="font-family:Arial;font-size:10pt;"><span>$38,027,000</span></span><span style="font-family:Arial;font-size:10pt;"> and </span><span style="font-family:Arial;font-size:10pt;"><span>$37,486,000</span></span><span style="font-family:Arial;font-size:10pt;">, as of December 31, </span><span style="font-family:Arial;font-size:10pt;">2019</span><span style="font-family:Arial;font-size:10pt;"> and December 31, </span><span style="font-family:Arial;font-size:10pt;">2018</span><span style="font-family:Arial;font-size:10pt;">, respectively; net unrealized gains on available-for-sale investments of </span><span style="font-family:Arial;font-size:10pt;"><span>$2,023,000</span></span><span style="font-family:Arial;font-size:10pt;"> as of December 31, 2019 and net unrealized losses on available-for-sale investments of </span><span style="font-family:Arial;font-size:10pt;"><span>$1,744,000</span></span><span style="font-family:Arial;font-size:10pt;"> as of December 31, 2018; and losses on currency swaps, net of gains on long-term intercompany loans of </span><span style="font-family:Arial;font-size:10pt;"><span>$1,271,000</span></span><span style="font-family:Arial;font-size:10pt;"> at each year end.</span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Amounts reclassified from accumulated other comprehensive income (loss) to investment income on the Consolidated Statements of Operations were net realized gains of </span><span style="font-family:Arial;font-size:10pt;"><span>$1,452,000</span></span><span style="font-family:Arial;font-size:10pt;">, </span><span style="font-family:Arial;font-size:10pt;"><span>$501,000</span></span><span style="font-family:Arial;font-size:10pt;">, and </span><span style="font-family:Arial;font-size:10pt;"><span>$829,000</span></span><span style="font-family:Arial;font-size:10pt;"> for </span><span style="font-family:Arial;font-size:10pt;">2019</span><span style="font-family:Arial;font-size:10pt;">, </span><span style="font-family:Arial;font-size:10pt;">2018</span><span style="font-family:Arial;font-size:10pt;">, and </span><span style="font-family:Arial;font-size:10pt;">2017</span><span style="font-family:Arial;font-size:10pt;">, 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="top.Show.showAR( this, 'defref_cgnx_ConcentrationsOfRiskPolicyPolicyTextBlock', window );">Concentrations of Risk</a></td>
<td class="text"><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;text-decoration:underline;">Concentrations of Risk</span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Financial instruments that potentially subject the Company to concentrations of credit risk consist primarily of cash, cash equivalents, investments, and trade receivables.  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 not experienced any significant realized losses on its debt securities.</span></div><div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">The Company performs ongoing credit evaluations of its customers and maintains allowances for potential credit losses. The Company has not experienced any significant losses related to the collection of its accounts receivable.</span></div><div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">A significant portion of the Company's product is manufactured by a third-party contractor located in Indonesia.  This contractor has agreed to provide Cognex with termination notification periods and last-time-buy rights, if and when that may be applicable.  We rely upon this contractor to provide quality product and meet delivery schedules.  We engage in extensive product quality programs and processes, including actively monitoring the performance of our third-party manufacturers; however, we may not detect all product quality issues through these programs and processes.</span></div><div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Certain components are presently sourced from a single vendor that is selected based on price and performance considerations.  In the event of a supply disruption from a single-source vendor, these components may be purchased from alternative vendors, which may result in manufacturing delays based on the lead time of the new vendor.  Certain </span></div><div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">key electronic and mechanical components that are purchased from strategic suppliers, such as processors or imagers, are fundamental to the design of Cognex products.  A disruption in the supply of these key components, such as a last-time-buy announcement, natural disaster, financial bankruptcy, or other event, may require us to purchase a significant amount of inventory at unfavorable prices resulting in lower gross margins and higher risk of carrying excess inventory.  If we are unable to secure adequate supply from alternative sources, we may have to redesign our products, which may lead to a delay in manufacturing and a 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="top.Show.showAR( this, 'defref_us-gaap_DerivativesPolicyTextBlock', window );">Derivative Instruments</a></td>
<td class="text"><div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;text-decoration:underline;">Derivative Instruments</span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Derivative instruments are recorded on the Consolidated Balance Sheets at fair value.  Changes in the fair value of derivatives are recorded each period in current operations or in shareholders' equity as other comprehensive income (loss), depending upon whether the derivative is designated as a hedge transaction and, if it is, the effectiveness of the hedge.  At the inception of the contract, the Company designates foreign currency forward exchange contracts as either a cash flow hedge of certain forecasted foreign currency denominated sales and purchase transactions or as an economic hedge.  Changes in the fair value of a derivative that is highly effective and that is designated and qualifies as a cash flow hedge are recorded in shareholders' equity as other comprehensive income (loss), and reclassified into current operations in the same period during which the hedged transaction affects current operations and in the same financial statement line item as that of the forecasted transaction.  Cash flow hedges are evaluated for effectiveness quarterly.  Any hedge ineffectiveness (which represents the amount by which the changes in the fair value of the derivative exceed the variability in the cash flows of the forecasted transaction) is recorded in current operations in the period in which ineffectiveness is determined.  Changes in the fair value of the Company&#8217;s economic hedges (not designated as a cash flow hedge) are reported in current operations.  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="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">The Company formally documents all relationships between hedging instruments and hedged items, as well as its risk-management objective and strategy for undertaking various hedge transactions.  This process includes linking all derivatives that are designated as cash flow hedges to specific forecasted transactions.  The Company also formally assesses (both at the hedge&#8217;s inception and on an ongoing basis) whether the derivatives that are used in hedging transactions have been highly effective in offsetting changes in the fair value or cash flows of hedged items and whether those derivatives may be expected to remain highly effective in future periods.  When it is determined that a derivative is not (or has ceased to be) highly effective as a hedge, the Company discontinues hedge accounting prospectively, as discussed below.</span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">The Company discontinues hedge accounting prospectively when (1) it determines that the derivative is no longer effective in offsetting changes in the cash flows of a hedged item; (2) the derivative expires or is sold, terminated, or exercised; (3) it is no longer probable that the forecasted transaction will occur; or (4) management determines that designating the derivative as a hedging instrument is no longer appropriate or desired.  When the Company discontinues hedge accounting because it is no longer probable that the forecasted transaction will occur in the originally expected period, the gain or loss on the derivative remains in accumulated other comprehensive income (loss) and is reclassified into current operations when the forecasted transaction affects current operations.  However, if it is probable that a forecasted transaction will not occur by the end of the originally specified time period or within an additional two-month period of time thereafter, the gain or loss that was accumulated in other comprehensive income (loss) is recognized immediately in current operations.  In all situations in which hedge accounting is discontinued and the derivative remains outstanding, the Company carries the derivative at fair value on the Consolidated Balance Sheets, recognizing changes in the fair value in current operations, unless it is designated in a new hedging relationship.</span></div>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.  Accordingly, cash flow hedges are presented net on the Consolidated Balance Sheets.<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_BusinessCombinationsPolicy', window );">Business Combinations</a></td>
<td class="text"><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;text-decoration:underline;">Business Acquisitions</span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">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 contriubte 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 </span></div>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 upon 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 upon 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 each reporting period with changes in fair value recorded 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>
</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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Concentrations of Risk.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">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>nonnum:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_cgnx_NatureOfOperationsPolicyTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Nature of Operations.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">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>nonnum:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AccountingPoliciesAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AccountingPoliciesAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AdvertisingCostsPolicyTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Disclosure of accounting policy for advertising costs. For those costs that cannot be capitalized, discloses whether such costs are expensed as incurred or the first period in which the advertising takes place. For direct response advertising costs that are capitalized, describes those assets and the accounting policy used, including a description of the qualifying activity, the types of costs capitalized and the related amortization period. An entity also may disclose its accounting policy for cooperative advertising arrangements.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 340<br> -SubTopic 20<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=84159346&amp;loc=d3e8275-108329<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 235<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -URI http://asc.fasb.org/extlink&amp;oid=84158767&amp;loc=d3e18780-107790<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 340<br> -SubTopic 20<br> -Section 55<br> -Paragraph 1<br> -URI http://asc.fasb.org/extlink&amp;oid=68054294&amp;loc=d3e8384-108330<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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>nonnum:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_BusinessCombinationsPolicy">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Disclosure of accounting policy for completed business combinations (purchase method, acquisition method or combination of entities under common control). This accounting policy may include a general discussion of the purchase method or acquisition method of accounting (including for example, the treatment accorded contingent consideration, the identification of assets and liabilities, the purchase price allocation process, how the fair values of acquired assets and liabilities are determined) and the entity's specific application thereof. An entity that acquires another entity in a leveraged buyout transaction generally discloses the accounting policy followed by the acquiring entity in determining the basis used to value its interest in the acquired entity, and the rationale for that accounting policy.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 805<br> -SubTopic 10<br> -Section 05<br> -Paragraph 4<br> -Subparagraph (a)-(d)<br> -URI http://asc.fasb.org/extlink&amp;oid=6909625&amp;loc=d3e227-128457<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 235<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -URI http://asc.fasb.org/extlink&amp;oid=84158767&amp;loc=d3e18780-107790<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_BusinessCombinationsPolicy</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>nonnum:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_CashAndCashEquivalentsPolicyTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Disclosure of accounting policy for cash and cash equivalents, including the policy for determining which items are treated as cash equivalents. Other information that may be disclosed includes (1) the nature of any restrictions on the entity's use of its cash and cash equivalents, (2) whether the entity's cash and cash equivalents are insured or expose the entity to credit risk, (3) the classification of any negative balance accounts (overdrafts), and (4) the carrying basis of cash equivalents (for example, at cost) and whether the carrying amount of cash equivalents approximates fair value.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -URI http://asc.fasb.org/extlink&amp;oid=98513485&amp;loc=d3e4273-108586<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(1))<br> -URI http://asc.fasb.org/extlink&amp;oid=6877327&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 305<br> -SubTopic 10<br> -Section 05<br> -Paragraph 1<br> -URI http://asc.fasb.org/extlink&amp;oid=6375392&amp;loc=d3e26790-107797<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 235<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -URI http://asc.fasb.org/extlink&amp;oid=84158767&amp;loc=d3e18780-107790<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_CashAndCashEquivalentsPolicyTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>nonnum:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_CommitmentsAndContingenciesPolicyTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Disclosure of accounting policy for commitments and contingencies, which may include policies for recognizing and measuring loss and gain contingencies.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 954<br> -SubTopic 450<br> -Section 50<br> -Paragraph 2<br> -URI http://asc.fasb.org/extlink&amp;oid=6491354&amp;loc=d3e6052-115624<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 954<br> -SubTopic 450<br> -Section 50<br> -Paragraph 1<br> -URI http://asc.fasb.org/extlink&amp;oid=6491354&amp;loc=d3e6049-115624<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 (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=68068213&amp;loc=d3e12565-110249<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 235<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -URI http://asc.fasb.org/extlink&amp;oid=84158767&amp;loc=d3e18780-107790<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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>nonnum:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ComprehensiveIncomePolicyPolicyTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Disclosure of accounting policy for comprehensive income.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_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>nonnum:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ConsolidationPolicyTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Disclosure of accounting policy regarding (1) the principles it follows in consolidating or combining the separate financial statements, including the principles followed in determining the inclusion or exclusion of subsidiaries or other entities in the consolidated or combined financial statements and (2) its treatment of interests (for example, common stock, a partnership interest or other means of exerting influence) in other entities, for example consolidation or use of the equity or cost methods of accounting.  The accounting policy may also address the accounting treatment for intercompany accounts and transactions, noncontrolling interest, and the income statement treatment in consolidation for issuances of stock by a subsidiary.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 810<br> -SubTopic 10<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.3A-02)<br> -URI http://asc.fasb.org/extlink&amp;oid=27015204&amp;loc=d3e355033-122828<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 S99<br> -Paragraph 3<br> -Subparagraph (SX 210.3A-03)<br> -URI http://asc.fasb.org/extlink&amp;oid=27015204&amp;loc=d3e355100-122828<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 235<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -URI http://asc.fasb.org/extlink&amp;oid=84158767&amp;loc=d3e18780-107790<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 810<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -URI http://asc.fasb.org/extlink&amp;oid=109239629&amp;loc=d3e5614-111684<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ConsolidationPolicyTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>nonnum:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DerivativesPolicyTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Disclosure of accounting policy for its derivative instruments and hedging activities.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 815<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -URI http://asc.fasb.org/extlink&amp;oid=109980867&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 235<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -URI http://asc.fasb.org/extlink&amp;oid=84158767&amp;loc=d3e18780-107790<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 815<br> -SubTopic 10<br> -Section 50<br> -Paragraph 4<br> -URI http://asc.fasb.org/extlink&amp;oid=109980867&amp;loc=d3e41638-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 1A<br> -URI http://asc.fasb.org/extlink&amp;oid=109980867&amp;loc=SL5579245-113959<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 7<br> -URI http://asc.fasb.org/extlink&amp;oid=109980867&amp;loc=d3e41675-113959<br><br>Reference 6: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 235<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08.(n))<br> -URI http://asc.fasb.org/extlink&amp;oid=26873400&amp;loc=d3e23780-122690<br><br>Reference 7: 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 http://asc.fasb.org/extlink&amp;oid=109980867&amp;loc=SL5579240-113959<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_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>nonnum:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_EarningsPerSharePolicyTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Disclosure of accounting policy for computing basic and diluted earnings or loss per share for each class of common stock and participating security. Addresses all significant policy factors, including any antidilutive items that have been excluded from the computation and takes into account stock dividends, splits and reverse splits that occur after the balance sheet date of the latest reporting period but before the issuance of the financial statements.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (c)<br> -URI http://asc.fasb.org/extlink&amp;oid=6371337&amp;loc=d3e3550-109257<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -URI http://asc.fasb.org/extlink&amp;oid=6371337&amp;loc=d3e3550-109257<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 235<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -URI http://asc.fasb.org/extlink&amp;oid=84158767&amp;loc=d3e18780-107790<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -URI http://asc.fasb.org/extlink&amp;oid=6371337&amp;loc=d3e3630-109257<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_EarningsPerSharePolicyTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>nonnum:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FairValueOfFinancialInstrumentsPolicy">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Disclosure of accounting policy for determining the fair value of financial instruments.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 820<br> -SubTopic 10<br> -Section 60<br> -Paragraph 1<br> -URI http://asc.fasb.org/extlink&amp;oid=7493716&amp;loc=d3e21868-110260<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 825<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -URI http://asc.fasb.org/extlink&amp;oid=109250915&amp;loc=d3e13279-108611<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 235<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -URI http://asc.fasb.org/extlink&amp;oid=84158767&amp;loc=d3e18780-107790<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FairValueOfFinancialInstrumentsPolicy</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>nonnum:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ForeignCurrencyTransactionsAndTranslationsPolicyTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Disclosure of accounting policy for (1) transactions denominated in a currency other than the reporting enterprise's functional currency, (2) translating foreign currency financial statements that are incorporated into the financial statements of the reporting enterprise by consolidation, combination, or the equity method of accounting, and (3) remeasurement of the financial statements of a foreign reporting enterprise in a hyperinflationary economy.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 235<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -URI http://asc.fasb.org/extlink&amp;oid=84158767&amp;loc=d3e18780-107790<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 830<br> -SubTopic 30<br> -Section 50<br> -Paragraph 1<br> -URI http://asc.fasb.org/extlink&amp;oid=6450520&amp;loc=d3e32583-110901<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 830<br> -SubTopic 20<br> -Section 50<br> -Paragraph 1<br> -URI http://asc.fasb.org/extlink&amp;oid=6450222&amp;loc=d3e30840-110895<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ForeignCurrencyTransactionsAndTranslationsPolicyTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>nonnum:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_GoodwillAndIntangibleAssetsGoodwillPolicy">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Disclosure of accounting policy for goodwill. 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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 350<br> -SubTopic 20<br> -Section 50<br> -Paragraph 1<br> -URI http://asc.fasb.org/extlink&amp;oid=108376223&amp;loc=d3e13816-109267<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 235<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -URI http://asc.fasb.org/extlink&amp;oid=84158767&amp;loc=d3e18780-107790<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_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>nonnum:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncomeTaxPolicyTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Disclosure of accounting policy for income taxes, which may include its accounting policies for recognizing and measuring deferred tax assets and liabilities and related valuation allowances, recognizing investment tax credits, operating loss carryforwards, tax credit carryforwards, and other carryforwards, methodologies for determining its effective income tax rate and the characterization of interest and penalties in the financial statements.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 20<br> -URI http://asc.fasb.org/extlink&amp;oid=84230637&amp;loc=d3e32847-109319<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 954<br> -SubTopic 740<br> -Section 50<br> -Paragraph 1<br> -URI http://asc.fasb.org/extlink&amp;oid=6491622&amp;loc=d3e9504-115650<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 235<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -URI http://asc.fasb.org/extlink&amp;oid=84158767&amp;loc=d3e18780-107790<br><br>Reference 4: 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 17<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=84230637&amp;loc=d3e32809-109319<br><br>Reference 5: 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 http://asc.fasb.org/extlink&amp;oid=84230637&amp;loc=d3e32840-109319<br><br>Reference 6: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 45<br> -Paragraph 25<br> -URI http://asc.fasb.org/extlink&amp;oid=84176650&amp;loc=d3e32247-109318<br><br>Reference 7: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 45<br> -Paragraph 28<br> -URI http://asc.fasb.org/extlink&amp;oid=84176650&amp;loc=d3e32280-109318<br><br>Reference 8: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 30<br> -Section 05<br> -Paragraph 1<br> -URI http://asc.fasb.org/extlink&amp;oid=65884525&amp;loc=d3e40913-109327<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncomeTaxPolicyTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>nonnum:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IntangibleAssetsFiniteLivedPolicy">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Disclosure of accounting policy for 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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 235<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -URI http://asc.fasb.org/extlink&amp;oid=84158767&amp;loc=d3e18780-107790<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 350<br> -SubTopic 30<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=66006027&amp;loc=d3e16323-109275<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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>nonnum:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_InventoryPolicyTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Disclosure of inventory accounting policy for inventory classes, including, but not limited to, basis for determining inventory amounts, methods by which amounts are added and removed from inventory classes, loss recognition on impairment of inventories, and situations in which inventories are stated above cost.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 330<br> -SubTopic 10<br> -Section 50<br> -Paragraph 4<br> -URI http://asc.fasb.org/extlink&amp;oid=66092785&amp;loc=d3e4556-108314<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 235<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -URI http://asc.fasb.org/extlink&amp;oid=84158767&amp;loc=d3e18780-107790<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -URI http://asc.fasb.org/extlink&amp;oid=6361739&amp;loc=d3e7789-107766<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 270<br> -SubTopic 10<br> -Section 45<br> -Paragraph 6<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=109236672&amp;loc=d3e543-108305<br><br>Reference 5: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 330<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -URI http://asc.fasb.org/extlink&amp;oid=66092785&amp;loc=d3e4492-108314<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.6(b))<br> -URI http://asc.fasb.org/extlink&amp;oid=6877327&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_InventoryPolicyTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>nonnum:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PropertyPlantAndEquipmentPolicyTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Disclosure of accounting policy for long-lived, physical assets used in the normal conduct of business and not intended for resale. Includes, but is not limited to, basis of assets, depreciation and depletion methods used, including composite deprecation, estimated useful lives, capitalization policy, accounting treatment for costs incurred for repairs and maintenance, capitalized interest and the method it is calculated, disposals and impairments.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02.13(a))<br> -URI http://asc.fasb.org/extlink&amp;oid=6877327&amp;loc=d3e13212-122682<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 360<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -URI http://asc.fasb.org/extlink&amp;oid=6391035&amp;loc=d3e2868-110229<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 235<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -URI http://asc.fasb.org/extlink&amp;oid=84158767&amp;loc=d3e18780-107790<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PropertyPlantAndEquipmentPolicyTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>nonnum:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ReceivablesPolicyTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Disclosure of accounting policy for trade and other accounts receivable, and finance, loan and lease receivables, including those classified as held for investment and held for sale. This disclosure may include (1) the basis at which such receivables are carried in the entity's statements of financial position (2) how the level of the valuation allowance for receivables is determined (3) when impairments, charge-offs or recoveries are recognized for such receivables (4) the treatment of origination fees and costs, including the amortization method for net deferred fees or costs (5) the treatment of any premiums or discounts or unearned income (6) the entity's income recognition policies for such receivables, including those that are impaired, past due or placed on nonaccrual status and (7) the treatment of foreclosures or repossessions (8) the nature and amount of any guarantees to repurchase receivables.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 235<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -URI http://asc.fasb.org/extlink&amp;oid=84158767&amp;loc=d3e18780-107790<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(4))<br> -URI http://asc.fasb.org/extlink&amp;oid=6877327&amp;loc=d3e13212-122682<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 310<br> -SubTopic 20<br> -Section 50<br> -Paragraph 1<br> -URI http://asc.fasb.org/extlink&amp;oid=84159169&amp;loc=d3e10133-111534<br><br>Reference 4: 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 1<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=84173941&amp;loc=d3e4975-111524<br><br>Reference 5: 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)(5))<br> -URI http://asc.fasb.org/extlink&amp;oid=6879938&amp;loc=d3e572229-122910<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(3))<br> -URI http://asc.fasb.org/extlink&amp;oid=6877327&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ReceivablesPolicyTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>nonnum:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ResearchDevelopmentAndComputerSoftwarePolicyTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Disclosure of accounting policy for its research and development and computer software activities including the accounting treatment for costs incurred for (1) research and development activities, (2) development of computer software for internal use, (3) computer software to be sold, leased or otherwise marketed as a separate product or as part of a product or process and (4) in-process research and development acquired in a purchase business combination.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 235<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -URI http://asc.fasb.org/extlink&amp;oid=84158767&amp;loc=d3e18780-107790<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 350<br> -SubTopic 50<br> -Section 25<br> -Paragraph 4<br> -URI http://asc.fasb.org/extlink&amp;oid=16397303&amp;loc=d3e19347-109286<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 985<br> -SubTopic 20<br> -Section 50<br> -Paragraph 1<br> -URI http://asc.fasb.org/extlink&amp;oid=6501960&amp;loc=d3e128462-111756<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 350<br> -SubTopic 40<br> -Section 30<br> -Paragraph 1<br> -URI http://asc.fasb.org/extlink&amp;oid=6389767&amp;loc=d3e17916-109280<br><br>Reference 5: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02.15)<br> -URI http://asc.fasb.org/extlink&amp;oid=6877327&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ResearchDevelopmentAndComputerSoftwarePolicyTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>nonnum:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_RevenueRecognitionPolicyTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Disclosure of accounting policy for revenue recognition. If the entity has different policies for different types of revenue transactions, the policy for each material type of transaction is generally disclosed. If a sales transaction has multiple element arrangements (for example, delivery of multiple products, services or the rights to use assets) the disclosure may indicate the accounting policy for each unit of accounting as well as how units of accounting are determined and valued. The disclosure may encompass important judgment as to appropriateness of principles related to recognition of revenue. The disclosure also may indicate the entity's treatment of any unearned or deferred revenue that arises from the transaction.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/otherTransitionRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 235<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -URI http://asc.fasb.org/extlink&amp;oid=84158767&amp;loc=d3e18780-107790<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/otherTransitionRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 235<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -URI http://asc.fasb.org/extlink&amp;oid=84158767&amp;loc=d3e18726-107790<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/otherTransitionRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 235<br> -SubTopic 10<br> -Section 50<br> -Paragraph 4<br> -URI http://asc.fasb.org/extlink&amp;oid=84158767&amp;loc=d3e18823-107790<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_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>nonnum:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationOptionAndIncentivePlansPolicy">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Disclosure of accounting policy for stock option and stock incentive plans. This disclosure may include (1) the types of stock option or incentive plans sponsored by the entity (2) the groups that participate in (or are covered by) each plan (3) significant plan provisions and (4) how stock compensation is measured, and the methodologies and significant assumptions used to determine that measurement.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 235<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -URI http://asc.fasb.org/extlink&amp;oid=84158767&amp;loc=d3e18780-107790<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (b),(f)<br> -URI http://asc.fasb.org/extlink&amp;oid=109197908&amp;loc=d3e5070-113901<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -URI http://asc.fasb.org/extlink&amp;oid=109197908&amp;loc=d3e5047-113901<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationOptionAndIncentivePlansPolicy</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>nonnum:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_StandardProductWarrantyPolicy">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Disclosure of accounting policy for standard warranties including the methodology for measuring the liability.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 460<br> -SubTopic 10<br> -Section 50<br> -Paragraph 8<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=68068213&amp;loc=d3e12565-110249<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 235<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -URI http://asc.fasb.org/extlink&amp;oid=84158767&amp;loc=d3e18780-107790<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_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>nonnum:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_UseOfEstimates">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Disclosure of accounting policy for the use of estimates in the preparation of financial statements in conformity with generally accepted accounting principles.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 275<br> -SubTopic 10<br> -Section 50<br> -Paragraph 12<br> -URI http://asc.fasb.org/extlink&amp;oid=99393423&amp;loc=d3e6191-108592<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 275<br> -SubTopic 10<br> -Section 50<br> -Paragraph 11<br> -URI http://asc.fasb.org/extlink&amp;oid=99393423&amp;loc=d3e6161-108592<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 275<br> -SubTopic 10<br> -Section 50<br> -Paragraph 9<br> -URI http://asc.fasb.org/extlink&amp;oid=99393423&amp;loc=d3e6143-108592<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 275<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=99393423&amp;loc=d3e5967-108592<br><br>Reference 5: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 275<br> -SubTopic 10<br> -Section 50<br> -Paragraph 4<br> -URI http://asc.fasb.org/extlink&amp;oid=99393423&amp;loc=d3e6061-108592<br><br>Reference 6: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 275<br> -SubTopic 10<br> -Section 50<br> -Paragraph 8<br> -URI http://asc.fasb.org/extlink&amp;oid=99393423&amp;loc=d3e6132-108592<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 275<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (c)<br> -URI http://asc.fasb.org/extlink&amp;oid=99393423&amp;loc=d3e5967-108592<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_UseOfEstimates</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>nonnum:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>61
<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>62
<FILENAME>R105.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.19.3.a.u2</span><table class="report" border="0" cellspacing="2" id="idp6857124880">
<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="8">3 Months Ended</th>
<th class="th" colspan="3">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Dec. 31, 2018</div></th>
<th class="th"><div>Sep. 30, 2018</div></th>
<th class="th"><div>Jul. 01, 2018</div></th>
<th class="th"><div>Apr. 01, 2018</div></th>
<th class="th"><div>Dec. 31, 2017</div></th>
<th class="th"><div>Oct. 01, 2017</div></th>
<th class="th"><div>Jul. 02, 2017</div></th>
<th class="th"><div>Apr. 02, 2017</div></th>
<th class="th"><div>Dec. 31, 2019</div></th>
<th class="th"><div>Dec. 31, 2018</div></th>
<th class="th"><div>Dec. 31, 2017</div></th>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_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>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax', window );">Revenue</a></td>
<td class="nump">$ 169,769<span></span>
</td>
<td class="nump">$ 183,325<span></span>
</td>
<td class="nump">$ 199,047<span></span>
</td>
<td class="nump">$ 173,484<span></span>
</td>
<td class="nump">$ 193,286<span></span>
</td>
<td class="nump">$ 232,221<span></span>
</td>
<td class="nump">$ 211,264<span></span>
</td>
<td class="nump">$ 169,567<span></span>
</td>
<td class="nump">$ 725,625<span></span>
</td>
<td class="nump">$ 806,338<span></span>
</td>
<td class="nump">$ 766,083<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_NoncurrentAssets', window );">Long-lived assets</a></td>
<td class="nump">95,321<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">80,539<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">95,276<span></span>
</td>
<td class="nump">95,321<span></span>
</td>
<td class="nump">80,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="top.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>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax', window );">Revenue</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">247,689<span></span>
</td>
<td class="nump">231,760<span></span>
</td>
<td class="nump">180,248<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_NoncurrentAssets', window );">Long-lived assets</a></td>
<td class="nump">67,156<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">53,983<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">68,496<span></span>
</td>
<td class="nump">67,156<span></span>
</td>
<td class="nump">53,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="top.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>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax', window );">Revenue</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">227,738<span></span>
</td>
<td class="nump">311,914<span></span>
</td>
<td class="nump">328,826<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_NoncurrentAssets', window );">Long-lived assets</a></td>
<td class="nump">23,948<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">22,437<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">21,691<span></span>
</td>
<td class="nump">23,948<span></span>
</td>
<td class="nump">22,437<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_srt_StatementGeographicalAxis=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>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax', window );">Revenue</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">115,061<span></span>
</td>
<td class="nump">123,708<span></span>
</td>
<td class="nump">108,738<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_NoncurrentAssets', window );">Long-lived assets</a></td>
<td class="nump">1,482<span></span>
</td>
<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,594<span></span>
</td>
<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,487<span></span>
</td>
<td class="nump">1,482<span></span>
</td>
<td class="nump">1,594<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_srt_StatementGeographicalAxis=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>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax', window );">Revenue</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">135,137<span></span>
</td>
<td class="nump">138,956<span></span>
</td>
<td class="nump">148,271<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_NoncurrentAssets', window );">Long-lived assets</a></td>
<td class="nump">$ 2,735<span></span>
</td>
<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,525<span></span>
</td>
<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,602<span></span>
</td>
<td class="nump">$ 2,735<span></span>
</td>
<td class="nump">$ 2,525<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_NoncurrentAssets">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Long-lived assets other than financial instruments, long-term customer relationships of a financial institution, mortgage and other servicing rights, deferred policy acquisition costs, and deferred tax assets.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 41<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=115929826&amp;loc=d3e9038-108599<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_NoncurrentAssets</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount, 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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 606<br> -SubTopic 10<br> -Section 50<br> -Paragraph 4<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=109196051&amp;loc=SL49130543-203045<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 606<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=109196051&amp;loc=SL49130539-203045<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 606<br> -SubTopic 10<br> -Section 50<br> -Paragraph 5<br> -URI http://asc.fasb.org/extlink&amp;oid=109196051&amp;loc=SL49130545-203045<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_StatementGeographicalAxis=country_US</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_srt_StatementGeographicalAxis=srt_EuropeMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_StatementGeographicalAxis=srt_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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_StatementGeographicalAxis=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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_StatementGeographicalAxis=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>63
<FILENAME>R101.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.19.3.a.u2</span><table class="report" border="0" cellspacing="2" id="idp6868730288">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>Taxes - Constituents of Deferred Tax Assets (Details) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th"><div>Dec. 31, 2019</div></th>
<th class="th"><div>Dec. 31, 2018</div></th>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_DeferredTaxAssetsNetNoncurrentClassificationAbstract', window );"><strong>Non-current gross deferred tax 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 custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_cgnx_DeferredTaxAssetsIntangibleAssetChangeinTaxStructure', window );">Intangible asset in connection with change in tax structure</a></td>
<td class="nump">$ 437,500<span></span>
</td>
<td class="nump">$ 0<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost', window );">Stock-based compensation expense</a></td>
<td class="nump">15,042<span></span>
</td>
<td class="nump">13,818<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_DeferredTaxAssetsOperatingLossCarryforwardsDomestic', window );">Federal and state tax credit carryforwards</a></td>
<td class="nump">8,491<span></span>
</td>
<td class="nump">7,395<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_DeferredTaxAssetsOperatingLossCarryforwardsForeign', window );">Foreign net operating losses</a></td>
<td class="nump">4,286<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="top.Show.showAR( this, 'defref_cgnx_NoncurrentDeferredTaxAssetsDeprecation', window );">Depreciation</a></td>
<td class="nump">3,522<span></span>
</td>
<td class="nump">2,475<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_DeferredTaxAssetsInventory', window );">Inventory and revenue related</a></td>
<td class="nump">2,934<span></span>
</td>
<td class="nump">3,233<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsOther', window );">Bonuses, commissions, and other compensation</a></td>
<td class="nump">1,609<span></span>
</td>
<td class="nump">5,470<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_cgnx_DeferredTaxAssetsOtherNoncurrent', window );">Other</a></td>
<td class="nump">3,550<span></span>
</td>
<td class="nump">2,425<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_DeferredTaxAssetsGrossNoncurrent', window );">Gross non-current deferred tax assets</a></td>
<td class="nump">476,934<span></span>
</td>
<td class="nump">34,816<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_DeferredTaxAssetsValuationAllowanceNoncurrent', window );">Valuation allowance</a></td>
<td class="num">(7,312)<span></span>
</td>
<td class="num">(6,112)<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_DeferredTaxAssetsLiabilitiesNetNoncurrent', window );">Net non-current deferred tax assets</a></td>
<td class="nump">469,622<span></span>
</td>
<td class="nump">28,704<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_DeferredTaxLiabilitiesAbstract', window );"><strong>Non-current gross deferred tax 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 custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_cgnx_DeferredTaxLiabilitiesTaxCutsAndJobsActGlobalIntangibleLowTaxIncome', window );">GILTI tax basis differences in connection with change in tax structure</a></td>
<td class="num">(350,000)<span></span>
</td>
<td class="nump">0<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_cgnx_DeferredTaxLiabilitiesTaxCutsAndJobsActOtherGlobalIntangibleLowTaxIncome', window );">Other GILTI tax basis differences</a></td>
<td class="nump">2,446<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="top.Show.showAR( this, 'defref_us-gaap_DeferredTaxLiabilitiesGoodwillAndIntangibleAssetsIntangibleAssets', window );">Nondeductible intangible assets</a></td>
<td class="nump">0<span></span>
</td>
<td class="num">(44)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_DeferredTaxLiabilitiesOther', window );">Other</a></td>
<td class="nump">0<span></span>
</td>
<td class="num">(962)<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_DeferredTaxLiabilitiesGrossCurrent', window );">Net non-current deferred tax liabilities</a></td>
<td class="nump">$ 352,446<span></span>
</td>
<td class="nump">$ 1,006<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Deferred Tax Assets, Intangible Asset, Change in Tax Structure</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Deferred tax assets other non current.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">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_DeferredTaxLiabilitiesTaxCutsAndJobsActGlobalIntangibleLowTaxIncome">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">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_DeferredTaxLiabilitiesTaxCutsAndJobsActOtherGlobalIntangibleLowTaxIncome">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Deferred Tax Liabilities, Tax Cuts And Jobs Act, Other Global Intangible Low Tax Income</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cgnx_DeferredTaxLiabilitiesTaxCutsAndJobsActOtherGlobalIntangibleLowTaxIncome</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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Noncurrent deferred tax assets deprecation.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">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_DeferredTaxAssetsGrossNoncurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount, before allocation of valuation allowance, of deferred tax asset attributable to deductible temporary differences and carryforwards, classified as noncurrent.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 45<br> -Paragraph 4<br> -URI http://asc.fasb.org/extlink&amp;oid=84176650&amp;loc=d3e31917-109318<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 2<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=84230637&amp;loc=d3e32537-109319<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 45<br> -Paragraph 6<br> -URI http://asc.fasb.org/extlink&amp;oid=84176650&amp;loc=d3e31931-109318<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DeferredTaxAssetsGrossNoncurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount before allocation of valuation allowances of deferred tax asset attributable to deductible temporary differences from inventory.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 6<br> -URI http://asc.fasb.org/extlink&amp;oid=84230637&amp;loc=d3e32621-109319<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 8<br> -URI http://asc.fasb.org/extlink&amp;oid=84230637&amp;loc=d3e32632-109319<br><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 25<br> -Paragraph 20<br> -URI http://asc.fasb.org/extlink&amp;oid=115928272&amp;loc=d3e28680-109314<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_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_DeferredTaxAssetsLiabilitiesNetNoncurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount, after allocation of valuation allowances and deferred tax liability, of deferred tax asset attributable to deductible differences and carryforwards, with jurisdictional netting and classified as noncurrent.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 45<br> -Paragraph 4<br> -URI http://asc.fasb.org/extlink&amp;oid=84176650&amp;loc=d3e31917-109318<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 45<br> -Paragraph 6<br> -URI http://asc.fasb.org/extlink&amp;oid=84176650&amp;loc=d3e31931-109318<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 2<br> -URI http://asc.fasb.org/extlink&amp;oid=84230637&amp;loc=d3e32537-109319<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DeferredTaxAssetsLiabilitiesNetNoncurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DeferredTaxAssetsNetNoncurrentClassificationAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DeferredTaxAssetsNetNoncurrentClassificationAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount before allocation of valuation allowances of deferred tax asset attributable to deductible domestic operating loss carryforwards. Excludes state and local operating loss carryforwards.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 6<br> -URI http://asc.fasb.org/extlink&amp;oid=84230637&amp;loc=d3e32621-109319<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 25<br> -Paragraph 20<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=115928272&amp;loc=d3e28680-109314<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 8<br> -URI http://asc.fasb.org/extlink&amp;oid=84230637&amp;loc=d3e32632-109319<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount before allocation of valuation allowances of deferred tax asset attributable to deductible foreign operating loss carryforwards.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 6<br> -URI http://asc.fasb.org/extlink&amp;oid=84230637&amp;loc=d3e32621-109319<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 8<br> -URI http://asc.fasb.org/extlink&amp;oid=84230637&amp;loc=d3e32632-109319<br><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 25<br> -Paragraph 20<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=115928272&amp;loc=d3e28680-109314<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount, before allocation of valuation 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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 25<br> -Paragraph 20<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=115928272&amp;loc=d3e28680-109314<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 8<br> -URI http://asc.fasb.org/extlink&amp;oid=84230637&amp;loc=d3e32632-109319<br><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 6<br> -URI http://asc.fasb.org/extlink&amp;oid=84230637&amp;loc=d3e32621-109319<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount before allocation of valuation allowances of deferred tax asset attributable to deductible temporary differences from share-based compensation.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 25<br> -Paragraph 20<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=115928272&amp;loc=d3e28680-109314<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 8<br> -URI http://asc.fasb.org/extlink&amp;oid=84230637&amp;loc=d3e32632-109319<br><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 6<br> -URI http://asc.fasb.org/extlink&amp;oid=84230637&amp;loc=d3e32621-109319<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_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_DeferredTaxAssetsValuationAllowanceNoncurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of valuation allowance of deferred tax asset attributable to deductible temporary differences and carryforwards, classified as noncurrent.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)<br> -URI http://asc.fasb.org/extlink&amp;oid=84230637&amp;loc=d3e32537-109319<br><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 45<br> -Paragraph 4<br> -URI http://asc.fasb.org/extlink&amp;oid=84176650&amp;loc=d3e31917-109318<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 45<br> -Paragraph 5<br> -URI http://asc.fasb.org/extlink&amp;oid=84176650&amp;loc=d3e31928-109318<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DeferredTaxAssetsValuationAllowanceNoncurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DeferredTaxLiabilitiesAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DeferredTaxLiabilitiesGoodwillAndIntangibleAssetsIntangibleAssets">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of deferred tax liability attributable to taxable temporary differences from intangible assets other than goodwill.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 25<br> -Paragraph 20<br> -URI http://asc.fasb.org/extlink&amp;oid=115928272&amp;loc=d3e28680-109314<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 6<br> -URI http://asc.fasb.org/extlink&amp;oid=84230637&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 8<br> -URI http://asc.fasb.org/extlink&amp;oid=84230637&amp;loc=d3e32632-109319<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DeferredTaxLiabilitiesGoodwillAndIntangibleAssetsIntangibleAssets</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DeferredTaxLiabilitiesGrossCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of deferred tax liability attributable to taxable temporary differences classified as current.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 45<br> -Paragraph 4<br> -URI http://asc.fasb.org/extlink&amp;oid=84176650&amp;loc=d3e31917-109318<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 2<br> -URI http://asc.fasb.org/extlink&amp;oid=84230637&amp;loc=d3e32537-109319<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DeferredTaxLiabilitiesGrossCurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DeferredTaxLiabilitiesOther">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of deferred tax liability attributable to taxable temporary differences classified as other.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 25<br> -Paragraph 20<br> -URI http://asc.fasb.org/extlink&amp;oid=115928272&amp;loc=d3e28680-109314<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 8<br> -URI http://asc.fasb.org/extlink&amp;oid=84230637&amp;loc=d3e32632-109319<br><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 6<br> -URI http://asc.fasb.org/extlink&amp;oid=84230637&amp;loc=d3e32621-109319<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DeferredTaxLiabilitiesOther</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>64
<FILENAME>R39.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.19.3.a.u2</span><table class="report" border="0" cellspacing="2" id="idp6864970448">
<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, 2019</div></th></tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_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="top.Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentTextBlock', window );">Property, Plant, and Equipment</a></td>
<td class="text"><div style="line-height:120%;padding-top:6px;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Property, plant, and equipment consisted of the following (in thousands):</span></div><div style="line-height:120%;font-size:10pt;"><div style="padding-left:0px;text-indent:0px;line-height:normal;padding-top:10px;"><table cellpadding="0" cellspacing="0" style="font-family:Times New Roman;font-size:10pt;width:100%;border-collapse:collapse;text-align:left;"><tr><td colspan="8"/></tr><tr><td style="width:71%;"/><td style="width:1%;"/><td style="width:12%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:12%;"/><td style="width:1%;"/></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;">&#160;</span></div></td><td colspan="7" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;">December&#160;31,</span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;">2019</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">2018</span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Land</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>3,951</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>3,951</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Buildings</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>24,533</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>24,533</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Building improvements</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>49,289</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>45,067</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Leasehold improvements</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>10,790</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>9,095</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Computer hardware and software</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>67,474</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>66,542</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Manufacturing test equipment</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>31,278</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>27,378</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Furniture and fixtures</span></div></td><td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>6,800</span></span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>6,904</span></span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>194,115</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>183,470</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Less: accumulated depreciation</span></div></td><td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>(104,672</span></span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">)</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>(92,074</span></span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">)</span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>89,443</span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>91,396</span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr></table></div><span style="font-family:inherit;font-size:10pt;"><br/></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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Tabular disclosure of physical assets used in the normal conduct of business and not intended for resale. Includes, but is not limited to, balances by class of assets, depreciation and depletion expense and method used, including composite depreciation, and accumulated deprecation.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(13))<br> -URI http://asc.fasb.org/extlink&amp;oid=6877327&amp;loc=d3e13212-122682<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 360<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -URI http://asc.fasb.org/extlink&amp;oid=6391035&amp;loc=d3e2868-110229<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PropertyPlantAndEquipmentTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>nonnum:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>65
<FILENAME>R16.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.19.3.a.u2</span><table class="report" border="0" cellspacing="2" id="idp6628306016">
<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, 2019</div></th></tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_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="top.Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentDisclosureTextBlock', window );">Property, Plant, and Equipment</a></td>
<td class="text">Property, Plant, and Equipment<div style="line-height:120%;padding-top:6px;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Property, plant, and equipment consisted of the following (in thousands):</span></div><div style="line-height:120%;font-size:10pt;"><div style="padding-left:0px;text-indent:0px;line-height:normal;padding-top:10px;"><table cellpadding="0" cellspacing="0" style="font-family:Times New Roman;font-size:10pt;width:100%;border-collapse:collapse;text-align:left;"><tr><td colspan="8"/></tr><tr><td style="width:71%;"/><td style="width:1%;"/><td style="width:12%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:12%;"/><td style="width:1%;"/></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;">&#160;</span></div></td><td colspan="7" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;">December&#160;31,</span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;">2019</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">2018</span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Land</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>3,951</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>3,951</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Buildings</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>24,533</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>24,533</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Building improvements</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>49,289</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>45,067</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Leasehold improvements</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>10,790</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>9,095</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Computer hardware and software</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>67,474</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>66,542</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Manufacturing test equipment</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>31,278</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>27,378</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Furniture and fixtures</span></div></td><td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>6,800</span></span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>6,904</span></span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>194,115</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>183,470</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Less: accumulated depreciation</span></div></td><td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>(104,672</span></span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">)</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>(92,074</span></span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">)</span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>89,443</span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>91,396</span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr></table></div><span style="font-family:inherit;font-size:10pt;"><br/></span></div><div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">The cost of disposed property, plant, and equipment totaling </span><span style="font-family:Arial;font-size:10pt;"><span>$8,883,000</span></span><span style="font-family:Arial;font-size:10pt;"> and </span><span style="font-family:Arial;font-size:10pt;color:#000000;text-decoration:none;"><span>$6,367,000</span></span><span style="font-family:Arial;font-size:10pt;"> was removed from the asset balance in </span><span style="font-family:Arial;font-size:10pt;color:#000000;text-decoration:none;">2019</span><span style="font-family:Arial;font-size:10pt;"> and </span><span style="font-family:Arial;font-size:10pt;color:#000000;text-decoration:none;">2018</span><span style="font-family:Arial;font-size:10pt;">, respectively.  The cost of disposed property, plant, and equipment totaling </span><span style="font-family:Arial;font-size:10pt;"><span>$8,559,000</span></span><span style="font-family:Arial;font-size:10pt;"> and </span><span style="font-family:Arial;font-size:10pt;"><span>$6,367,000</span></span><span style="font-family:Arial;font-size:10pt;"> was removed from the accumulated depreciation balance in </span><span style="font-family:Arial;font-size:10pt;">2019</span><span style="font-family:Arial;font-size:10pt;"> and </span><span style="font-family:Arial;font-size:10pt;">2018</span><span style="font-family:Arial;font-size:10pt;">, respectively.  Gains and losses on these disposals were immaterial in both years.</span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Buildings include rental property with a cost basis of </span><span style="font-family:Arial;font-size:10pt;"><span>$800,000</span></span><span style="font-family:Arial;font-size:10pt;"> as of December&#160;31, </span><span style="font-family:Arial;font-size:10pt;">2019</span><span style="font-family:Arial;font-size:10pt;"> and </span><span style="font-family:Arial;font-size:10pt;">2018</span><span style="font-family:Arial;font-size:10pt;">, and accumulated depreciation of </span><span style="font-family:Arial;font-size:10pt;"><span>$255,000</span></span><span style="font-family:Arial;font-size:10pt;"> and </span><span style="font-family:Arial;font-size:10pt;"><span>$234,000</span></span><span style="font-family:Arial;font-size:10pt;"> as of December&#160;31, </span><span style="font-family:Arial;font-size:10pt;">2019</span><span style="font-family:Arial;font-size:10pt;"> and </span><span style="font-family:Arial;font-size:10pt;">2018</span><span style="font-family:Arial;font-size:10pt;">, respectively.</span></div><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PropertyPlantAndEquipmentAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The entire disclosure for long-lived, physical assets used in the normal conduct of business and not intended for resale. Includes, but is not limited to, accounting policies and methodology, roll forwards, depreciation, depletion and amortization expense, including composite depreciation, accumulated depreciation, depletion and amortization expense, useful lives and method used, income statement disclosures, assets held for sale and public utility disclosures.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 360<br> -URI http://asc.fasb.org/topic&amp;trid=2155823<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PropertyPlantAndEquipmentDisclosureTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>nonnum:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>66
<FILENAME>R12.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.19.3.a.u2</span><table class="report" border="0" cellspacing="2" id="idp6628486688">
<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, 2019</div></th></tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_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="top.Show.showAR( this, 'defref_us-gaap_NewAccountingPronouncementsAndChangesInAccountingPrinciplesTextBlock', window );">New Pronouncements</a></td>
<td class="text"> New Pronouncements<div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;text-decoration:underline;">Accounting Standards Update (ASU) 2016-13, "Financial Instruments - Measurement of Credit Losses"</span></div><div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">ASU 2016-13 applies to all reporting entities holding financial assets that are not accounted for at fair value through net income.&#160; The amendments in this ASU eliminate the probable initial recognition threshold to recognize a credit loss under current GAAP and, instead, reflect an entity&#8217;s current estimate of all expected credit losses.  In addition, this ASU broadens the information an entity must consider in developing the credit loss estimate, including the use of reasonable and supportable forecasted information.&#160; The amendments in this ASU require that credit losses be presented as an allowance rather than as a write-down, and an entity will be able to record reversals of credit losses in current period net income.  The guidance in this ASU is effective for annual periods, and interim periods within those annual periods, beginning after December 15, 2019.&#160; This ASU should be applied through a cumulative-effect adjustment to retained earnings as of the beginning of the first reporting period in which the guidance is effective. Available-for-sale debt securities and  accounts receivable are the account balances primarily impacted by the guidance in this ASU.  Management adopted this ASU on January 1, 2020, and we do not expect this ASU to have a material impact on the Company's consolidated financial statements and disclosures. </span></div><div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;text-decoration:underline;">Accounting Standards Update (ASU) 2018-15, "Intangibles - Goodwill and Other - Internal-Use Software"</span></div><div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">ASU 2018-15 applies to entities that are a customer in a hosting arrangement that is a service contract.  The amendments  in this ASU align the requirements for capitalizing implementation costs incurred in a hosting arrangement that is a service contract with the requirements for capitalizing implementation costs incurred to develop or obtain internal-use software.  Accordingly, the amendments in this ASU require an entity in a hosting arrangement that is a service contract to follow the guidance in Subtopic 350-40 to determine which implementation costs to capitalize as an asset related to the service contract and which costs to expense. Further, it requires the entity to expense the capitalized implementation costs over the term of the hosting arrangement.  In addition, it requires the presentation of the expenses related to the capitalized implementation costs in the same line item in the statement of income as the fees associated with the hosting element of the arrangement and the classification of the payments for the capitalized implementation costs in the statement of cash flows in the same manner as the payments made for the fees associated with the hosting element.  The amendments in this ASU are effective for public entities for annual periods, and for interim periods within those annual periods, beginning after December 15, 2019.  Management adopted this ASU on January 1, 2020, and we do not expect this ASU to have a material impact on the Company's consolidated financial statements and disclosures.</span></div><div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;text-decoration:underline;">Accounting Standards Update (ASU) 2019-12, "Simplifying the Accounting for Income Taxes"</span></div><div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">ASU 2019-12 applies to all entities within the scope of Topic 740, Income Taxes.  The amendments in this ASU simplify the accounting for income taxes by removing the following exceptions: 1) exception to the incremental approach for intraperiod tax allocation when there is a loss from continuing operations and income or a gain from other items; 2) exception to the requirement to recognize a deferred tax liability for equity method investments when a foreign subsidiary becomes an equity method investment; 3) exception to the ability not to recognize a deferred tax liability for a foreign subsidiary when a foreign equity method investment becomes a subsidiary; and 4) exception to the general methodology for calculating income taxes in an interim period when a year-to-date loss exceeds the anticipated loss for the year.  The amendments in this ASU also simplify the accounting for income taxes by doing the following: 1) requiring that an entity recognize a franchise tax that is partially based on income as an income-based tax and account for any incremental amount incurred as a non-income-based tax; 2) requiring that an entity evaluate when a step up in the tax basis of goodwill should be considered part of the business combination in which the book goodwill was originally recognized and when it should be considered a separate transaction; 3) specifying that an entity is not required to allocate the consolidated amount of current and deferred tax expense to a legal entity that is not subject to tax in its separate financial statements; and 4) requiring that an entity reflect the effect of an enacted change in tax laws or rates in the annual effective tax rate computation in the interim period that included the enacted date.  The amendments in this ASU are effective for public companies for annual periods, and interim periods within those annual periods, beginning after December 15, 2020.  Early adoption is permitted; however, an entity that elects to early adopt the amendments must adopt all the amendments in the same period. The amendments in this ASU related to separate financial statements of legal entities that are not subject to tax should be applied on a retrospective basis for all periods presented. The amendments related to changes in ownership of foreign equity method investments or foreign subsidiaries should be applied on a modified retrospective basis through a cumulative-effect adjustment to retained earnings as of the beginning of the fiscal year of adoption. The amendments related to franchise taxes that are partially based on income should be applied on either a retrospective basis for all periods presented or a modified retrospective basis through a cumulative-effect adjustment to retained earnings as of the beginning of the fiscal year of adoption. All other amendments should be applied on a prospective basis.   Management does not expect ASU 2019-12 to have a material impact on the Company's consolidated financial statements and disclosures.</span></div><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AccountingChangesAndErrorCorrectionsAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The entire disclosure of changes in accounting principles, including adoption of new accounting pronouncements, that describes the new methods, amount and effects on financial statement line items.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -URI http://asc.fasb.org/topic&amp;trid=2122394<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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>nonnum:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EXCEL
<SEQUENCE>67
<FILENAME>Financial_Report.xlsx
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
begin 644 Financial_Report.xlsx
M4$L#!!0    (  :!35 ?(\\#P    !,"   +    7W)E;',O+G)E;'.MDD^+
MPD ,Q;]*F?L:5\'#8CUYZ6U9_ )Q)OU#.Y,A$[%^>X>];+=44/ 87O+>CT?V
M/S2@=AQ2V\54C'X(J32M:OP"2+8ECVG%D4)6:A:/FD=I(*+ML2'8K-<[D*F'
M.>RGGD7E2B.5^S3%":4A+<TXP)6E/S/WJVR;A5ND9T*YKCM+1[873T$7LF<;
M!I99-G\LCNVW<+ZT+/0:S>,*P).B0\5?UX^8 TBTH_0(:+L A#&^NQT:E8(C
M-R."?S]PN -02P,$%     @ !H%-4"?HAPZ"    L0   !    !D;V-0<F]P
M<R]A<' N>&UL38Y-"\(P$$3_2NG=;BGH06) L$?!D_>0;FP@R8;-"OGYIH(?
MMWF\81AU8\K(XK%T-8943OTJDH\ Q:X831F:3LTXXFBD(3^ G/,6+V2?$9/
M-(X'P"J8%EQV^3O8:W7..7AKQ%/25V^9"CGIYFHQ*/B76_..7+8\#?NW_+""
MWTG] E!+ P04    "  &@4U0ZXK_->X    K @  $0   &1O8U!R;W!S+V-O
M<F4N>&ULS9+/:L,P#(=?9?B>R$E&#B;-96.G%@8K;.QF;+4UB_]@:R1]^R5>
MFS*V!]C1TL^?/H$Z%83R$9^C#QC)8+J;[."24&'#3D1! "1U0BM3.2?<W#SX
M:"7-SWB$(-6'/"+4G+=@D:26)&$!%F$ELK[32JB(DGR\X+5:\>$S#AFF%>"
M%ATEJ,H*6+],#.=IZ. &6&"$T:;O NJ5F*M_8G,'V"4Y);.FQG$LQR;GYATJ
M>-MM7_*ZA7&)I%,X_TI&T#G@AETGOS8/C_LGUM>\Y@6OBZK95ZW@K;CG[XOK
M#[^;L/7:',P_-KX*]AW\NHO^"U!+ P04    "  &@4U0F5R<(Q &  "<)P
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
M'K1NE.E*_,ETY:32_7"1JT/3GD[->=5MKKN+1I_[/PZBX=^+U3]02P,$%
M  @ !H%-4#5]4&(A!   '!(  !@   !X;"]W;W)K<VAE971S+W-H965T,BYX
M;6R-F&V/HS80Q[]*E/>WV(.?B))(NPFG5FJEU9W:OF83YT$'(0=D<_WV-83-
MD9GAU#<)-K\9_\>8&>/YM:R^U0?OF\F/(C_5B^FA:<ZS**HW!U]D]5-Y]J=P
M9U=61=:$9K6/ZG/ELVUG5.01"&&B(CN>ILMYU_=:+>?EI<F/)_]:3>I+4635
MOR\^+Z^+J9Q^='PY[@]-VQ$MY^=L[[_ZYJ_S:Q5:T=W+]ECX4WTL3Y/*[Q;3
M9SE+0;<&'?'WT5_KP?6D#>6M++^UC=^WBZEH%?G<;YK611;^WOW*YWGK*>CX
MWCN=WL=L#8?7']X_=\&'8-ZRVJ_*_)_CMCDLIFXZV?I==LF;+^7U-]\'I*>3
M/OH__+O/ ]XJ"6-LRKSN?B>;2]V41>\E2"FR'[?_XZG[O_;^/\QX ^@-X/\:
MQ+U!?#>0YI<&JC=0/PW4+PUT;Z"1072+O9O,==9DRWE57B?5;3V<LW;9R9D.
MCVO3=G9/I[L7YK,.O>]+(^;1>^NG1U8W! :(O!-1<'X? ;@15D#,X7& -26,
M?$12!@%>1,R&&7?V\= ^YNT5:Z\Z>S6T5VB:;HCND%.'6- &- J68DZ8.'8H
M8,:;,<*-B-:L:$U%(S6K&V(&PTB76(UB6U,,A!$:/<B4\V;!);QHPXHV5+1!
MH@T91L?:6;1FUA0S0H!#WE+&FW4V4;QHRXJV5+1%HBV=&YDH0-B:PXQ2Z+FE
M%$L2$)K7[%C-CFI&BW#EZ&.WL5/X_64P R9)D&8& Q&6!R\Z844G5#0:9I70
M&51@!!9-,0 I<6PI@VGGS$@&E()/LH+(MB3+"C+2)RU0<&N.D@+GHI3%C!A3
M/5(:)%4ML6I)9SLQCLAF,&4E7M4,EF@UDN@E6VZ>)5#5@%4#E0,2KQ"&^@02
MKVJ.&J;S1\U\=9(QU1QCS3'5;"!)<*IF.(B5MF2),)PQRHSD/<G714D+(QYI
MU3,/,Z0$S=<,)W4L+!9.L;9DC:T2OC1*6ALMKHT],ZS!(&*':^B:XV0"N *D
M#">ML7),.5\?I2%;&6M&//#%2M)J97&UZAD[U/J$U_Z:I7!)2UE*C$7-%ROI
M:-1C[QA?.20M'33JA(O:X*@Y"LC[12GQE(QH!KYN@*!1CVRF@,_A0'.XPY4'
MF.1LV\T)WJ9S',0QRE0IR\7@[(AR/H\#S>,.5Q]@\GC(!'A+L&8YJP3>"K)<
MHO78]PZ?S8%F<X=JRPO'X(S?,^YA!0TW>7UP'"8=KJT\9NS(GA%POG^\RV=5
MH%D51_7",;CF1(.OU\)7^^XHH9YLRLNI:4T'O??CBA=HOWY1_TK.4LGT/X.:
MK4$Q=X*^<*<[^8A^#GT[-_DSJ_;'4SUY*YOP/=Y]->_*LO$A+/$4PCKX;'MO
MY'[7M)<V7%>W\XI;HRG/_5E,=#\06OX'4$L#!!0    (  :!35#B_V.2K $
M ,H#   8    >&PO=V]R:W-H965T<R]S:&5E=#,N>&UL?5-;;MLP$+P*P0.$
MMA0[@2$):%P4+= "1HJVW[2TLHCPH9*TE=Z^RT<$U37R(^XN9Y8S*[*:C'UQ
M X GKTIJ5]/!^W''F&L'4-S=F1$T[O3&*NXQM2?F1@N\BR0E6;%:;9GB0M.F
MBK6#;2IS]E)H.%CBSDIQ^^<)I)EJNJ9OA6=Q&GPHL*8:^0F^@_\Q'BQF;.[2
M"07:":.)A;ZF']:[?1GP$?!3P.06,0E.CL:\A.1+5]-5$ 026A\Z<%PNL <I
M0R.4\3OWI/.1@;B,W[I_BM[1RY$[V!OY2W1^J.DC)1WT_"S]LYD^0_:SH22;
M_PH7D @/2O",UD@7OZ0].V]4[H)2%']-J]!QG=+.YC[3;A.*3"AFPOI]0ID)
MY16!)671ZD?N>5-9,Q&;?M;(PYU8[TH<9AN*<79Q#]TZK%Z:QTW%+J%/ACPE
M2+&$;/^%[/^';(L9PE# K**XJ:*(_'+)+V_SRYO\,O+OEQ(?KEPDR#9"=(04
M5R;>0R0-;#'5<,N_<7L2VI&C\?B#XAA[8SQ@M]4=7IT!']:<2.A]"!\PMNEZ
MI<2;,;\<-C_?YB]02P,$%     @ !H%-4!7UL& ? P  E0P  !@   !X;"]W
M;W)K<VAE971S+W-H965T-"YX;6R-EV]OFS 0QK\*XGV*S_RODDA-T+1)FU1U
MZO::)DZ""C@#)^F^_6Q#*;&/9F\".+_G_!R8\S&_\.:U/3 FG+>JK-N%>Q#B
M>.]Y[>; JKR]XT=6RW]VO*ER(2^;O=<>&Y9OM:@J/4I(Y%5Y4;O+N1Y[;)9S
M?A)E4;/'QFE/594W?U>LY)>%"^[[P%.Q/P@UX"WGQWS/?C+Q?'QLY)4W1-D6
M%:O;@M=.PW8+]P'N,XB50!._"G9I1^>.2N6%\U=U\6V[<(ERQ$JV$2I$+@]G
MMF9EJ2))'W_ZH.XPIQ*.S]^C?]')RV1>\I:M>?F[V(K#PDU<9\MV^:D43_SR
ME?4)A:[39_^=G5DI<>5$SK'A9:M_G<VI%;SJHT@K5?[6'8M:'R]]_'<9+J"]
M@ X"B#X5^+W _Q $GPJ"7A 8 J]+1=^;+!?Y<M[PB]-TC_>8JU4$]X&\^QLU
MJ&^V_D_>GE:.GI=),O?.*DZ/K#J$CA 8"$\&'V:@V PK:LGI]01KFXC@&LD0
MA.(F?#1-7^O]<9HIK@]0?:#UP4@?A\9MZI!0(W67)_&3R,#6" 8IC6(C81N#
M.(IA(ND0-1U:2:<$UT>H/K*23HWGLNJ0:&23&/G>)#*;"'"7,>HRMET:"VP5
MWW1YD\AL8A9,O <)ZC.Q??J&S^2FSYM$9A,S/\9]IJC/U%XU$\\#"%Y2B)VI
M^;+TS-AF*-\#(UN$F@$D1K ,P6+B3WB>*(-P>Q7US+6;(#2K&8:%Q"QH&)70
MB9H$:&5] &J;CDS3U)K'C\UJLT:H&41)9)K&,!I-F,8K,=BE.)U8GX#78K"+
M<6KM60'R$ (PTT:H@(*5MHW)M9I.U&+ BS&$MNO4=!W^EVN$PES;V&>N\2T
M[#T "#%MVQ7<IS0R;=O4+$P)-6W;&(7I-P/?$\#>%,!\!5<]=+UCQ\3<X]88
M![YO[NP9PD&:A-8NX8UZLXHU>]WWMLZ&GVJA>IS1Z-!;/U#5VQGC*]5SZY[O
M(TS7L/_(FWU1M\X+%[)SU/W=CG/!I$UR)PT>Y#?"<%&RG5"GL3QOND:YNQ#\
MV'\$>,.7R/(?4$L#!!0    (  :!35#&1H@F&@(  "<&   8    >&PO=V]R
M:W-H965T<R]S:&5E=#4N>&ULA57;CILP$/T5Q/NNN3>-"-(F4=5*K11MM>VS
M0R8!K8VI[83MW]<7PK+@)B^Q/9QSYLR )WG'^*NH *3W1DDC5GXE9;M$2)05
M4"P>60N->G)DG&*ICOR$1,L!'PR)$A0%088HKAN_R$ULQXN<G26I&]AQ3YPI
MQ?SO&@CK5G[H7P//]:F2.H"*O,4G^ GRI=UQ=4*#RJ&FT(B:-1Z'X\I_"I?;
M3.,-X%<-G1CM/5W)GK%7??AV6/F!-@0$2JD5L%HNL %"M)"R\:?7](>4FCC>
M7]6_F-I5+7LL8,/([_H@JY6_\+T#'/&9R&?6?86^GM3W^N*_PP6(@FLG*D?)
MB#"_7GD6DM%>15FA^,VN=6/6KM>_TMR$J"=$ R',;A+BGA"_$Y*;A*0G)!,"
MLJ68WFRQQ$7.6>=Q^W9;K#^B<)FH[I<Z:)IMGJGV"!6]%&$0Y>BBA7K,VF*B
M,69 (*4^I(A<*=;1C#Y)L)DCLO C9.N 1&X3L;/.V/#C$7_QV<U/G/S$\),/
M?8HG?;*8U& :@PDFA=Y%;.>(A]3M,W7Z3!T^DXE/B\E&.=(PG3B=8Q["Q6)B
M=@[ZSSO)G%XSA]>)CW5VMZ=W$=M;"&L3C:X+!7XRHTAX)3LW4G]UH^@P[9XB
M?=TF\;6:@G9HO<O8$?H#\U/="&_/I+K,YLH=&9.@# :/RENEIO9P('"4>OM)
M[;F=7?8@6=N/933\-Q3_ %!+ P04    "  &@4U0F/ 7"L$$   ]&   &
M 'AL+W=O<FMS:&5E=',O<VAE970V+GAM;(V986^K-A2&_TJ4[[O8Y]@&JC32
MVFG:I$VZNM/=/M/&;:(+(0/:W/W[&4*CQ.=U=+\T0%Z;Q\1^;-S5L>V^]5OO
MA\7WIM[W]\OM,!SNLJQ_WOJFZC^U![\/W[RT75,-X;1[S?I#YZO-5*BI,U+*
M94VUVR_7J^G:YVZ]:M^&>K?WG[M%_]8T5???@Z_;X_U2+S\N?-F];H?Q0K9>
M':I7_Y<?OAX^=^$L.]>RV35^W^_:_:+S+_?+G_7=(Y=C@2GQ]\X?^XOCQ=B4
MI[;]-I[\OKE?JI'(U_YY&*NHPL>[?_1U/=84./Z=*UV>[SD6O#S^J/W7J?&A
M,4]5[Q_;^I_=9MC>+XOE8N-?JK=Z^-(>?_-S@^QR,;?^#__NZQ ?2<(]GMNZ
MG_XNGM_ZH6WF6@)*4WT_?>[VT^=QKO^C&"Y <P$Z%PCWOE6 YP(<%<A.9%-3
M?ZF&:KWJVN.B._U:AVKL%/J.P\-\'B].SV[Z+K2V#U??UUJY5?8^5C1G'DX9
MNLC0=>)1)IP^1[( <*8@2$%3>;ZBR'$%#"O@J0)S54$1->.4L5-F?\KDVK!6
M2D7- 4E5D*;+Y!64@5 &0)41U"GC+FY%1IE<22B9-)2S*9)0%D)9":6C6SU8
M<2NMV$Q4$11(ZE+GZ2?E()0#4#J"<K+]>4$22>8*OO'3Y1 H!T!1IW_(Q8V<
M(@>ZDPP63$4:J8!(!4#B"*F0O<D5!G0F&>0IED(J(5()D$R$5(*GE!,:=3*9
M%XK)):&TPDI3 ,O&3E.R.S$;"SH4B)(CQ64:+.%:#<"$;+7L+:4Q#+ADLM1<
MWGA>6+Z: %8>8Y$<Z;DE]+AD,L6#7:Z!S'4L\SET+<[@* N 9#2,'%)I<VKL
M<PV$KF.A:^EI+DT)QB!(:A7(TEC8Z!HHG6*E:VEJ8TJK2\ EHU0XEY:#QE+7
MP.H46UU+7=N"46^702[)IJ&PV#4P.\5FU]+8NBALR:AW@2P5I7-Y&@T+7A=R
M%42<J (+60,C4VQD+46K\],/'+<-)!UQNB<0-C(!(U-L9)*:M:1+T$%!,LR\
M= ,+^YB CRGV,4G+LF+40T'2*I>>YBFQ%@8ZIEC'!'0<)@F@8Y L"Y,>-X2E
M3$#*%$N9I&FM0\M&$$SA8!434#'%*B8@6 J+:P0DHV$NM>DQ3-C%!%S,L8L)
MK)HI6NC,6#*9XL$.)N1@P0/4RA0F4P DH^6M+HXE3$#"',\,!,2JK4,#3R;S
M\!:;IL+^);#"YGAJ(+ERMCJ:M&>J'TA>8V&G$W ZQPM_DJ8.[Y%(!S+(D?NO
M7[>QT1D8G>.)AH'1.8@:S*(@JFWH@"8-AIW.P.D<3S4PY&*DVZ%K&*QR!OL:
MG-K72&QL .^RV-FXI=.Y-3]L7,;&96!<CHW+8/&+EN0PE]8(8]DRD*V)Y<92
MH8Y+SL'8 %%+Y:T7!<;696!=$_N-I4IS&V:! H#)J#..](W1@<7+0+PF5AQ+
MG?X4GE>.?D<0-<HJG0;#[F7@7A-+CJ51P]BVN08O5R@;PN32_F7L7P;^-4)U
MI]#5EF'JC0%E4V\,V<4^[KBQ_F?5O>[V_>*I'8:VF39N7]IV\*%>]2G4N/75
MYGQ2^Y=A/,S#<7?:T#Z=#.UAWJS/SO\Q6/\/4$L#!!0    (  :!35!D+36P
M50(  $L(   8    >&PO=V]R:W-H965T<R]S:&5E=#<N>&ULC9;;CILP$(9?
M!?$ :W.&B$1J4E6MU$K15FVOG<0): VFMA.V;U\?6 3&FRP7\>F?F6\,'J?L
M*7OA%<;">VU(R]=^)42W H ?*]P@_D0[W,J5,V4-$G+(+H!W#*.3-FH(""%,
M08/JUM^4>F[/-B6]"E*W>,\\?FT:Q/YM,:']V@_\MXGG^E()-0$V98<N^"<6
MO[H]DR,P>CG5#6YY35N/X?/:_Q2L=H$VT(K?->[YI.^I5 Z4OJC!M]/:AXH(
M$WP4R@62S0WO,"'*D^3X.SCUQYC*<-I_\_Y%)R^3.2".=Y3\J4^B6ONY[YWP
M&5V)>*;]5SPDE/C>D/UW?,-$RA6)C'&DA.M?[WCE@C:#%XG2H%?3UJUN>[.2
M%H.9VR <#,+1((CO&D2#0609 $.F4_V,!-J4C/8>,V^K0^JC"%:1W,RCFM1[
MI]=DMES.WC9!G)3@IAP-FJW1A!--.%?LEHHT&"5  HP4H9,BU/;1C")U.XB<
M#B+M()XYR*PTC";1FM9H\C"P,G&(TO=08B=*[$#)+12CR291X!.T41Z(9BB)
M$R5QH!06BM&DDR@Q5(\%\U VPTF=..D2)['B;--%')ODGF(&D3DA,@>$M?/;
M["'$/<4,(G="Y X(ZTQMC::8OWYHG[Q'JAE,X80I'#"1!5,L\HW@\%A 'U'.
MH +H+DS0@17;E0DNH@59&,<.+J<4YN$=L'<J9N  6Y3,X.-@+JD;#$RJNKIF
M?R!VJ5ON':B0%X0NXV=*!99NX9,\L96\V<<!P6>ANIGL,W.]F8&@W7!U@_'_
MP^8_4$L#!!0    (  :!35"[9VQAQP4  $<=   8    >&PO=V]R:W-H965T
M<R]S:&5E=#@N>&ULA9E?;]LV%,6_BN%WU[R7?Q4D 2H)PP9L0-%AV[.:*(E1
MV\HD)>F^_2A;<>W+P[8/M:4<7A[2U/U=BM=O7?]U>&K;<?%MM]T/-\NG<7R^
M6J^'NZ=VUPP?NN=V'__RT/6[9HR7_>-Z>.[;YO[0:+==LU)NO6LV^^7M]>'>
MI_[VNGL9MYM]^ZE?#"^[7=/_5[;;[NUF2<OW&Y\WCT_C=&-]>_W</+9_MN-?
MSY_Z>+4^1;G?[-K]L.GVB[Y]N%E^I*O:J*G!0?'WIGT;SKXOIJ%\Z;JOT\5O
M]S=+-3EJM^W=.(5HXL=K6[7;[10I^OAW#KH\]3DU//_^'OV7P^#C8+XT0UMU
MVW\V]^/3S3(L%_?M0_.R'3]W;[^V\X#L<C&/_O?VM=U&^>0D]G'7;8?#_XN[
MEV'L=G.4:&77?#M^;O:'S[<Y_GLSW(#G!GQJ0.Z'#?3<0']O8'[8P,P-C&BP
M/@[E,#=U,S:WUWWWMNB//^]S,ZTBNC)Q]N^FFX?)/OPM3L\0[[[>DG77Z]<I
MT*PICQH^UYP4ZQC]U 6C+DI.FO-E!U6J<'0IJ8&$L0D-QZD/[?7%.#T.8&
M<PA@S@)X*^;I*+$'R?XX4*6#$[(*R*A@Y\6(4QEYYRDS:@M-6S#J@ ,X&, E
MHR9;B&$?->[,J+$V"%4%5*0*)0:=JC05)C-F#RW[U+(3W90^Z8;)LO@%JE1%
MP7@M+ .5=D%CRP%:#L"R> #*D,Z,EEXJ(%)>/,XUBJ0RJZ* ?@O@5SS399'T
M(GZ$ZJ>*.E485V"CI'!Z4\"JEOE-)?VL' 5A%ZA("5$-1*QLQG(F(Q.P;*1E
M2BV3L3*Q(IE5,K<B5>#<1,,D_Y$8N)8)<A8)U])/A63RJ4,:SBQBPD@@#2PG
M[--I/X4)4E<AG:'$=:HB'S(<(@PB2DE$$A[E++KHR 4E,QR0K2@D*$(R:RGD
M%C:&$=G4.,DT-XLNLI/5,G4 U:I0,M$AE7'*9%QC A) (,ED1RFW6)-.ICN5
MK<@5)C$.=-JKD%O?&(0$2"A79$DIOKQ1LF0!JE7AK<S72.85N8QM#$,"-.0D
M_Z40BWE=XA"H5IY-LKQ!,-:<J3H(,Y$ %#E)@"G15J'0"6I2F0[)9*<B,L9G
M)ILQ'QGPD64.9  URTD*!+)5K&R53() YTGK3#)A3$D&E)0%7,DIV'2097L%
M5&2TD:Z!RE$&DHPAR0B209I.R69,(9<V4*V"7$@U4%&L=#.F,28985+N 3@%
M&]OX""5S#72LC4UF&^F,YDQ9S1B5;-+]CU>9$!A:#*#E);08@(:4CF5;LM,%
M2A_B-I'E! "AB_L*FWN^,;T8T,M+>G&*&U*."UG35T 88I*3=5X-=#88XS+D
M9<PO!OR2.YZ2 7*8O$D6'M!%I!:)=10OYHR<=<PP!@SSDF$,Z!0+T$+61!42
M&DYG'<C8$&6J!L8<8\"QY$T'_WQW]W-)#20K+C+OEC0&F 8 DSO>4@,RD?5:
M2X1!H0H2+#76V?@O8QY#3!/(3YG=@,9(T0 I7B)%IQAPQ@:YSH",G0^2WT!F
MC<V]3=.9]W& *EY218--E8OPD6L-Z:97;RRS*A+&4L_GD*@Q5S38@LGZK-1@
MTZ1M4LI64$?):\,:Z3A65[EYQSS3@&=R(90ZA4\RY1!Y2C[B4%9P!F(:0TP#
MB 4),8WV3+&VD(43TK$J"B5+$"2,(XSU4\8\II@&%)./5*D!=4RR?40J4K(T
MK($L<)$!F,8 TP!@00),I\!QFDF^^06RN%=+5DJJXK@USDTVAI<&\ H27AIL
MG&*.EYOZ"NJ<E2NO!CI?N)QS@SEF ,>"Y-@LNCP3B'L5F<B1#HRPAKJ+$1ZM
MK\].DW9M_W@XJ1L6=]W+?IP.9<[NGDX#/_)T&B7NEW15'\_TOH<Y'C'^T?2/
MF_VP^-*-8[<[G$@]=-W81IOJ0S3XU#;WIXMM^S!.7WW\WA^/]HX78_<\'UNN
M3V>GM_\#4$L#!!0    (  :!35 ;FV<6A@@  ,0N   8    >&PO=V]R:W-H
M965T<R]S:&5E=#DN>&ULC5I=;^,X$OPKAM^]%INDOI $V,2AS> .&.SB[IX]
MB9(8:ULY6YGL_?MKR1I/J"XZ>DEL5I%LB:6N)JVKC_KPU_&UJIK)W[OM_G@]
M?6V:MW(^/SZ^5KOU\;?ZK=HS\EP?=NN&OQY>YL>W0[5^ZCKMMG-*DG2^6V_V
MTYNKKNW;X>:J?F^VFWWU[3 YON]VZ\/_;JMM_7$]5=.?#7]L7EZ;MF%^<_6V
M?JG^K)I_O7T[\+?Y>92GS:[:'S?U?G*HGJ^GOZORP78=.L:_-]7'\=/G27LI
MW^OZK_:+?[J>)FU$U;9Z;-HAUOSO1W57;;?M2!S'?_M!I^<YVXZ?/_\<W747
MSQ?S?7VL[NKM?S9/S>OU-)].GJKG]?NV^:/^6%7]!=GII+_Z?U0_JBW3VTAX
MCL=Z>^S^3A[?CTV]ZT?A4';KOT__-_ON_T<__L]NN /U'6AL!]UWT.<.'.RE
M#J;O8,X=B"YVL'T'>^Y@+O+3GI^>^3J]V"'K.V0C)\A[?O[K"K*+'8J^0S%R
M I7\7+;D5X_N&N:G]>X$M%@WZYNK0_TQ.9R>@;=U^ZBI4K4:?6Q;.TEV((OH
MR*T_;E2>7<U_M"/UG+L3AP).'G(6B%.$' <X11)REI*3ZY"R0L.HD.._'N8!
M#4-GSIQOV_G>$;YWU(U@@A$&L]R=.+;C[#M.D6J=VR097/E",K4Q@G8O)QU>
MF0,C928WF1AL)9FI,2F18#Y(YLRFAO+/S.">:7S/-+AG)ISK5G*&E[@X4=)/
MX:B,A9OC6 R.Q72#Z" 6BT>P> 0+KB8=*,"*4*VQ5B[&PHI;G,OEES.*Y8<3
MFB*Z4BF^MA1<VR SW$J.6*E41&-4&GG.,AQ))B/)!KGE+A/3S!3I3($'+0-2
MEC=:3BH246S.)'JK<WR!.;C5@P1[*SGB5N<R'K):XU *'$HA0['#>UV(>30_
MQ#)IN!'$(*;6S:!))3*J?##974\*+[](-$A[HZAA9#'[5"*RS X#4R!9I9F2
M-VPUBAH&%O$FA<QIN) ]*7@X9>K_BA7&$\G[2B;U3V[;AR.S^LPH$-"7O#"D
M2/I71H1$P[GN>M+GN;)$@YB^Y(4Q10Q%R?Q.B1K&)#/\+*<"!/4U,8PJ8@5*
MYGE*Q.K)3$\L.5!+C&&&<46,0<DD3<FP E,R3:NDL&DF5W&AI#=H4#?=@XF%
M#8-Y3:JX]@./O:2F:6YS.?,#H,ZTL<6%18V8CI*.0LFP% ,D83M*^H[*M$VR
M2#P1YU'%^'*,(D9!TB@H&>9C MG?%JE,-*LQS#"NB$V0M E9*)),_I1F.9!I
MSPQD"G8*<E*Y5<!SQBL8BNV%D-\,RT5 $FHBZ3;*%)$BAB)N0V";(4I& C;"
MZ2,'VY]%SPV*1E"=@WE%U1B;5L5-E2(.1M+!9.$(2/*F2_=B1\UCX43,B\!V
M2!2/)#V)O;M(9/4XAAG&%;$O EL943Z2-*695GDJMP:K4=0PLHB!D?0143Z2
MS/CLEOR4@L#&4,/ (N9 :$LBEE(F_M@TD9Q/<KLAJD*2NXC8D4/$%31RA>'Z
M:Y#KE0('-0]CF&%<$5?0,D'+8D_+#,W;55 5CR"&444RN99)6A9[6F;IF2&5
M@K!&,,.X8B=',K=2,O10+?.T4MI2"EP4<#78Q=Z#B86/:IG4+7%%"XH]0$U-
M2@KLO !U9I*+BQIQ"HWV.L-S7BU=0&5)3N+&C>/=@TGSB)'KB*5H.[XHU)'T
MK]%)EA!.*L20&IO+YVR!F$ T7Q^-.2U]A.?,+B22B(UH<$(V++[NM#0'G:CA
M.?XHUCV8,+JR$8?1P&%$B=:3@K(K52FH%A:("HIB,*VHT#0X2.-9\[B-ZHB_
M:7"<)@HT0)+GW=($9TH7L?/NB!$:<(XF"C0C[<U8F\OC!3>&&<85,4(#MD>B
M0#/ W[15)//F:A0UC"QBAD::H2C0C'2XMIY'E>,H:AA8Q T-^B%%+*7TC]@T
ML9](9 H7!9J1=A";)9+E#3KU$NL/?M?@ZE:ZY@AB&%7$-PPZ]1J69P;L!92Q
MX-1K##.,*Y+M#3KU$HL"SHDL.DP=00RCBN1S@XZ3\F%4,DES=68'/YF<4A[@
M:@-^J $3"Z<%8Z6ZT!DX@@?4S&I*927W *@S'O."@9N(3QAI 92(IUEZ@,K(
M&''CQO'NP:0Q$[?"4$(XDM?MUR=0MX!#:GC[YI_>9]A5AY?NA9KCY+%^WS?M
MST;ME.?V\VL[M]U+-H/VA2KO4;NC<DF@?46E1^U.ETN-^+KTJ-V9<FD0WY0>
MM3M;+BWBV]*C=I>6RQ3QT]*C=I>5RPSQL]*C=I>7RQSQ\]*C=E>4RP+QB]*C
M=J>2<JD2U(,1#Q&G%/=!J[EBQ$/$*5YH!5>:$0\1IWBQ%5QM1CQ$G.(%5W#%
M&?$0<8H77<%59\1#Q"E>> 57GA$/$:=X\15<?48\1)QB 2BH $8\1)QB$2BH
M D8\1!RQ#@CJ@!$/$4>L X(Z8,1#Q%'[P.,GOGWDH0Z(=4!0!XQXB#AB'1#4
M 2,>(HY8!P1UP(B'B"/6 4$=,.(AXHAU0% 'C'B(.&(=$-0!(QXBCE@'!'7
MB(>(TZP##77 B(>(TZP##77 B(>(TZP##77 B(>(TVWRQ]F_3?]0!YIUH*$.
M&/$0<9IUH*$.&/$0<9IUH*$.&/$0<9IUH*$.&/$0<9IUH*$.&/$0<9IUH*$.
M&/$0X5TF&R?4 2,>(LZP#@S4 2,>(LZP#@S4 2,>(LZP#@S4 2,>(LZTA0"N
M!-I2 .K L X,U $C'B+.L X,U $C'B+.L X,U $C'B)<6W,?J -&/$2<81T8
MJ -&/$1^M[S:%JTVEY",G%ZH_E4<GM[O_N?Z\++9'R??ZZ:I=]V+KL]UW51<
M>2:_<>'^6JV?SE^VU7/3?LSX\^'T7O7I2U._]>^,S\\OKM_\'U!+ P04
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
M^O"RJ?\-HH<@97<31J@+'VPQ%#0^'M^'LYW&;#(\]O,/8LLW+G\#4$L#!!0
M   (  :!35!;0%WVM0$  -(#   9    >&PO=V]R:W-H965T<R]S:&5E=#$S
M+GAM;'U3VX[<( S]%<0'+#-,]J)1$FEGJZJ56FFT5=MG)G$2M%Q2()/MW]>0
M;)JV45\ &Y_C8V/RT;H7WP$$\JJ5\07M0NB/C/FJ RW\C>W!X$UCG18!3=<R
MWSL0=0)IQ?AN=\>TD(:6>?*=79G;(2AIX.R('[06[N<)E!T+NJ=OCF?9=B$Z
M6)GWHH4O$+[V9X<66UAJJ<%X:0UQT!3T<7\\93$^!7R3,/K5F<1*+M:^1.-C
M7=!=% 0*JA 9!&Y7> *E(A'*^#%STB5E!*[/;^SO4^U8RT5X>++JNZQ#5] '
M2FIHQ*#"LQT_P%S/+25S\9_@"@K#HQ+,45GETTJJP0>K9Q:4HL7KM$N3]G&Z
M.60S;!O 9P!?  \I#YL2)>7O1!!E[NQ(W-3[7L0GWA\Y]J:*SM2*=(?B/7JO
M)>>W.;M&HCGF-,7P5<Q^B6#(OJ3@6RE._!\XWX8?-A4>$OSPA\*[;8)LDR!+
M!-E_2]R*N?\K"5OU5(-KTS1Y4MG!I$E>>9>!?>3I37Z'3]/^6;A6&D\N-N#+
MIOXWU@9 *;L;'*$./]AB*&A"/-[CV4UC-AG!]O,/8LLW+G\!4$L#!!0    (
M  :!35!VE67PM $  -(#   9    >&PO=V]R:W-H965T<R]S:&5E=#$T+GAM
M;'U388_4(!#]*X0?<'39GJZ;MLGM&:.))ILSZF>VG;;DH%2@V_/?.]!NK=K<
M%V"&>6_>#$,V&OOL6@!/7K3J7$Y;[_LC8ZYL00MW9WKH\*8V5@N/IFV8ZRV(
M*H*T8CQ)WC M9$>++/K.MLC,X)7LX&R)&[06]M<)E!ESNJ,WQY-L6A\<K,AZ
MT<!7\-_ZLT6++2R5U- Y:3IBH<[IP^YX2D-\#/@N872K,PF57(QY#L:G*J=)
M$ 0*2A\8!&Y7> 2E A'*^#ESTB5E *[/-_8/L7:LY2(</!KU0U:^S>F!D@IJ
M,2C_9,:/,-=S3\E<_&>X@L+PH 1SE$:YN))R<-[HF06E:/$R[;*+^SC=I#?8
M-H#/ +X #A' ID11^7OA19%9,Q([];X7X8EW1XZ]*8,SMB+>H7B'WFO!^2%C
MUT TQYRF&+Z*V2T1#-F7%'PKQ8G_!^?;\/VFPGV$[_]2^&Z;(-TD2"-!^FJ)
M&S'[Y)\D;-53#;:)T^1(:88N3O+*NPSL X]O\B=\FO8OPC:R<^1B/+YL[']M
MC >4DMSA"+7XP19#0>W#\2V>[31FD^%-/_\@MGSCXC=02P,$%     @ !H%-
M4#&<442T 0  T@,  !D   !X;"]W;W)K<VAE971S+W-H965T,34N>&UL?5-A
M;]P@#/TKB!]0+N2Z5J<D4J_5M$F==.K4[C.7. DJA S(I?OW,R3-HC7;%\#&
M[_G9F&PT]M6U )Z\:=6YG+;>]P?&7-F"%N[*]-#A36VL%AY-VS#76Q!5!&G%
M^&[WB6DA.UIDT7>R168&KV0')TO<H+6POXZ@S)C3A+X[GF33^N!@1=:+!KZ#
M?^Y/%BVVL%120^>DZ8B%.J=WR>&X#_$QX$7"Z%9G$BHY&_,:C*]53G=!$"@H
M?6 0N%W@'I0*1"CCY\Q)EY0!N#Z_LW^.M6,M9^'@WJ@?LO)M3F\IJ: 6@_)/
M9OP"<SW7E,S%/\(%%(8')9BC-,K%E92#\T;/+"A%B[=IEUW<Q^DFY3-L&\!G
M %\ MS$/FQ)%Y0_"BR*S9B1VZGTOPA,G!XZ]*8,SMB+>H7B'WDN1)#QCET T
MQQRG&+Z.62(8LB\I^%:*(_\ Y]OP=%-A&N'I&I[^(_]^DV ?"?;_+?%C#$__
M5LE6/=5@FSA-CI1FZ.(DK[S+P-[%1V1_PJ=I_R9L(SM'SL;CR\;^U\9X0"F[
M*QRA%C_88BBH?3C>X-E.8S89WO3S#V++-RY^ U!+ P04    "  &@4U0CMW?
M-+0!  #2 P  &0   'AL+W=O<FMS:&5E=',O<VAE970Q-BYX;6Q]4]MNW" 0
M_17$!X0U=MIH95O*)JI:J956J=H^L_;XH@#C EZG?U_ CNNV5EZ &>:<.3,,
M^83FV78 CKPHJ6U!.^>&(V.VZD )>X,#:'_3H%'">=.TS X&1!U!2C)^.+QC
M2O2:EGGTG4V9X^ADK^%LB!V5$N;7"21.!4WHJ^.I;SL7'*S,!]'"5W#?AK/Q
M%EM9ZEZ!MCUJ8J IZ'UR/&4A/@9\[V&RFS,)E5P0GX/QJ2[H(0@""94+#,)O
M5W@ *0.1E_%SX:1KR@#<GE_9/\3:?2T78>$!Y8^^=EU![RBIH1&C=$\X?82E
MGEM*EN(_PQ6D#P]*?(X*I8TKJ4;K4"TL7HH2+_/>Z[A/\TV6++!] %\ ? 7<
MQ3QL3A25/PHGRMS@1,S<^T&$)TZ.W/>F"L[8BGCGQ5OOO98\37-V#41+S&F.
MX9N89(U@GGU-P?=2G/A_<+X/3W<5IA&>_J4PVR?(=@FR2)"]6>)>S.T_2=BF
MIPI,&Z?)D@I''2=YXUT']I['-_D3/D_[%V':7EMR0>=?-O:_073@I1QN_ AU
M_H.MAH3&A>-[?S;SF,V&PV'Y06S]QN5O4$L#!!0    (  :!35!K Q!;PP$
M #<$   9    >&PO=V]R:W-H965T<R]S:&5E=#$W+GAM;(U476_;(!3]*X@?
M4!*2M%ED6VHZ39VT25&GM<_$OK91^7 !Q]V_'V#7=3L>]F+@<NXYYP+7V:#-
MLVT!''J50MD<M\YU!T)LV8)D]DIWH/Q.K8UDSB]-0VQG@%4Q20I"5ZMK(AE7
MN,AB[&2*3/=.< 4G@VPO)3-_CB#TD.,U?@L\\*9U(4"*K&,-_ +WNSL9OR(S
M2\4E*,NU0@;J'-^N#\==P$? (X?!+N8H5'+6^CDLOE<Y7@5#(*!T@8'YX0)W
M($0@\C9>)DX\2X;$Y?R-_5NLW==R9A;NM'CBE6MSO,>H@IKUPCWHX1ZF>G88
M3<7_@ L(#P].O$:IA8U?5/;6:3FQ>"N2O8XC5W$<IIW]E)9.H%,"G1/V48>,
M0M'Y5^98D1D](#.>?<?"%:\/U)]-&8+Q*.*>-V]]]%+0S75&+H%HPAQ'#%U@
MUC.">/99@J8DCO2?=)I.WR0=;F+ZYH/#FS3!-DFPC03;#P3[3R6F,%_2(KND
MR.X_1%*8SR)D<7$23!.?K$6E[E5LET5T[HI;&B_^'3ZVU$]F&JXL.FOGGT^\
MY%IK!][*ZLI[:7T7SPL!M0O3&S\WXUL>%TYW4YN2^5]1_ 502P,$%     @
M!H%-4/F3P_>T 0  T@,  !D   !X;"]W;W)K<VAE971S+W-H965T,3@N>&UL
M?5/;;M0P$/T5RQ]0)]X45JLD4K<(@032J@AX]B:3B^I+L)U-^7O&3AHB&O%B
M>\;GG+EXG$_&/KL.P),7);4K:.?]<&+,51THX>[, !IO&F.5\&C:EKG!@J@C
M24G&D^0=4Z+7M,RC[V++W(Q>]AHNEKA1*6%_GT&:J: I?74\]6WG@X.5^2!:
M^ ;^^W"Q:+%5I>X5:-<;32PT!7U(3^<LX"/@1P^3VYQ)J.1JS',P/M<%34)"
M(*'R04'@=H-'D#((81J_%DVZA@S$[?E5_6.L'6NY"@>/1O[L:]\5]$A)#8T8
MI7\RTR=8ZKFG9"G^"]Q (CQD@C$J(UU<234Z;]2B@JDH\3+OO8[[--_<'Q;:
M/H$O!+X2CC$.FP/%S#\(+\K<FHG8N?>#"$^<GCCVI@K.V(IXA\D[]-[*-#WF
M[!:$%LQYQO M9D4P5%]#\+T09_Z&SO?IA]T,#Y%^V-*S9%\@VQ7(HD#VWQ+?
M8GCV;Y%LTU,%MHW3Y$AE1ATG>>-=!_:!QS?Y"Y^G_:NP;:\=N1J/+QO[WQCC
M 5-)[G"$.OQ@JR&A\>'X'L]V'K/9\&98?A!;OW'Y!U!+ P04    "  &@4U0
MJJAZ(K0!  #2 P  &0   'AL+W=O<FMS:&5E=',O<VAE970Q.2YX;6Q]4V%O
MW" ,_2N('U!R)-VJ4Q*IUVK:I$TZ==KVF4N<!!7B#,BE^_<#DF;9%O4+8./W
M_&Q,/J%YMAV (R]:];:@G7/#D3%;=:"%O<$!>G_3H-'">=.TS X&1!U!6C&>
M).^8%K*G91Y]9U/F.#HE>S@;8D>MA?EU H5300_TU?$DV\X%!ROS0;3P%=RW
MX6R\Q5:66FKHK<2>&&@*>G\XGK(0'P.^2YCLYDQ")1?$YV!\J@N:!$&@H'*!
M0?CM"@^@5"#R,GXNG'1-&8#;\RO[AUB[K^4B+#R@^B%KUQ7TCI(:&C$J]X33
M1UCJN:5D*?XS7$'Y\*#$YZA0V;B2:K0.]<+BI6CQ,N^RC_LTW]RF"VP?P!<
M7P%W,0^;$T7EC\*),C<X$3/W?A#AB0]'[GM3!6=L1;SSXJWW7DN>\9Q= ]$2
M<YIC^";FL$8PS[ZFX'LI3OP_.-^'I[L*TPA/_U*8[!-DNP19),C>+'$O)OTG
M"=OT5(-IXS194N'8QTG>>->!O>?Q3?Z$S]/^19A6]I9<T/F7C?UO$!UX*<F-
M'Z'.?[#54-"X<'SOSV8>L]EP."P_B*W?N/P-4$L#!!0    (  :!35!E1^Z*
MM $  -(#   9    >&PO=V]R:W-H965T<R]S:&5E=#(P+GAM;'U386_<( S]
M*X@?4.Y(VE6G)%*OT[1)JW3JM/4SES@)*H0,R*7]]S,DS=(NVA? QN_YV9AL
M-/;9M0">O&C5N9RVWO<'QES9@A;NRO30X4UMK!8>3=LPUUL0501IQ?AN=\.T
MD!TMLN@[V2(S@U>R@Y,E;M!:V-<C*#/F=$_?'(^R:7UPL"+K10,_P/_L3Q8M
MMK!44D/GI.F(A3JG=_O#,0WQ,>"7A-&MSB14<C;F.1C?JISN@B!04/K ('"[
MP#TH%8A0QN^9DRXI W!]?F/_$FO'6L["P;U13[+R;4YO*:F@%H/RCV;\"G,]
MUY3,Q7^'"R@,#THP1VF4BRLI!^>-GEE0BA8OTRZ[N(_339+,L&T GP%\ =S&
M/&Q*%)5_%EX4F34CL5/O>Q&>>'_@V)LR.&,KXAV*=^B]%#Q-,W8)1'/,<8KA
MJYC]$L&0?4G!MU(<^3]PO@U/-A4F$9Z\4WB]39!N$J21(/UOB5LQ-Q^2L%5/
M-=@F3I,CI1FZ.,DK[S*P=SR^R=_P:=H?A&UDY\C9>'S9V/_:& \H97>%(]3B
M!UL,!;4/QT]XMM.8388W_?R#V/*-BS]02P,$%     @ !H%-4+(>'IZU 0
MT@,  !D   !X;"]W;W)K<VAE971S+W-H965T,C$N>&UL?5-A;]L@$/TKB!]0
M$N*N661;:CI-J]1*4:=MGXE]ME'!YP&.VW\_P*[GM=:^ '?<>_?N.-(!S;-M
M !QYT:JU&6V<ZPZ,V:(!+>P5=M#ZFPJ-%LZ;IF:V,R#*"-**\<WF$]-"MC1/
MH^]D\A1[IV0+)T-LK[4PKT=0.&1T2]\<3[)N7'"P/.U$#=_!_>A.QEML9BFE
MAM9*;(F!*J.WV\,Q"?$QX*>$P2[.)%1R1GP.QGV9T4T0! H*%QB$WRYP!TH%
M(B_C]\1)YY0!N#R_L7^-M?M:SL+"':I?LG1-1O>4E%")7KDG'+[!5,\U)5/Q
M#W !Y<.#$I^C0&7C2HK>.M03BY>BQ<NXRS;NPWASS2?8.H!/ #X#]C$/&Q-%
MY5^$$WEJ<"!F['TGPA-O#]SWI@C.V(IXY\5;[[WD/+E)V24033'',88O8K9S
M!//L<PJ^EN+(/\#Y.GRWJG 7X;M_%.[7"9)5@B02)/\M<2WF\[LD;-%3#::.
MTV1)@7T;)WGAG0?V-CXB^QL^3ONC,+5L+3FC\R\;^U\A.O!2-E=^A!K_P69#
M0>7"\<:?S3AFH^&PFWX0F[]Q_@=02P,$%     @ !H%-4"EL\#6S 0  T@,
M !D   !X;"]W;W)K<VAE971S+W-H965T,C(N>&UL?5-AC]0@$/TKA!]P=-D]
M[[)IF]R>,9IHLCFC?F;;:4L.F IT>_Y[@?9JU>H78(9Y;]X,0SZB?78=@"<O
M6AE7T,[[_LB8JSK0PMU@#R;<-&BU\,&T+7.]!5$GD%:,9]D;IH4TM,R3[VS+
M' >OI(&S)6[06M@?)U X%G1'7QU/LNU\=+ R[T4+G\%_Z<\V6&QAJ:4&XR0:
M8J$IZ,/N>#K$^!3P5<+H5F<2*[D@/D?C0UW0+ H"!96/#")L5W@$I2)1D/%]
MYJ1+R@A<GU_9WZ7:0RT7X> 1U3=9^ZZ@]Y34T(A!^2<<W\-<SRTE<_$?X0HJ
MA$<E(4>%RJ655(/SJ&>6($6+EVF7)NWC=,/O9M@V@,\ O@#N4QXV)4K*WPHO
MRMSB2.S4^U[$)]X=>>A-%9VI%>DNB'?!>RWY;9:S:R2:8TY3#%_%[)8(%MB7
M%'PKQ8G_!>?;\/VFPGV"[W]3^(_\ATV"0R(X_+?$K9@_5;)53S78-DV3(Q4.
M)DWRRKL,[ -/;_(K?)KV3\*VTCAR01]>-O6_0?00I&0W882Z\,$60T'CX_$N
MG.TT9I/AL9]_$%N^<?D34$L#!!0    (  :!35!1U%:*M0$  -(#   9
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
MG7_9V/\:T8&7LKOQ(]3Z#[88"FH7CG?^;*8QFPR'_?R#V/*-BW=02P,$%
M  @ !H%-4$'0H#RV 0  T@,  !D   !X;"]W;W)K<VAE971S+W-H965T,S N
M>&UL?5/;;MLP#/T501]0)4K2%(%MH.DP;, &!!VV/2LV;0O5Q9/DN/O[4;+K
M>9NQ%TFD> X/*2H;K'OQ+4 @KUH9G],VA.[$F"];T,+?V0X,WM36:1'0= WS
MG0-1)9!6C&\V]TP+:6B1)=_%%9GM@Y(&+H[X7FOA?IY!V2&G6_KF>)9-&Z*#
M%5DG&O@"X6MW<6BQF:62&HR7UA '=4X?MZ?S/L:G@&\2!K\XDUC)U=J7:'RL
M<KJ)@D!!&2*#P.T&3Z!4)$(9/R9..J>,P.7YC?U]JAUKN0H/3U9]EU5H<_I
M206UZ%5XML,'F.HY4#(5_PENH# \*L$<I54^K:3L?;!Z8D$I6KR.NS1I'\:;
MW6&"K0/X!. SX"'E86.BI/R="*+(G!V(&WO?B?C$VQ/'WI31F5J1[E"\1^^M
MX,=#QFZ1:(HYCS%\$;.=(QBRSRGX6HHS_P?.U^&[586[!-_]H?!^G6"_2K!/
M!/O_EK@6<_PK"5OT5(-KTC1Y4MK>I$E>>.>!?>3I37Z'C]/^6;A&&D^N-N#+
MIO[7U@9 *9L['*$6/]AL**A#/![Q[,8Q&XU@N^D'L?D;%[\ 4$L#!!0    (
M  :!35 (+Y8DM@$  -(#   9    >&PO=V]R:W-H965T<R]S:&5E=#,Q+GAM
M;'U386_<( S]*X@?4'+DMMY.2:1>IVF3-NG4:=UG+G$25(@S()?NWP](FF5K
MU"^ C=_SLS'9B.;)M@"./&O5V9RVSO5'QFS9@A;V!GOH_$V-1@OG3=,PVQL0
M501IQ7B2O&=:R(X66?2=39'AX)3LX&R(';06YO<)%(XYW=$7QX-L6A<<K,AZ
MT<!W<#_ZL_$66U@JJ:&S$CMBH,[IW>YXVH?X&/ H8;2K,PF57!"?@O&ERFD2
M!(&"T@4&X;<KW(-2@<C+^#5STB5E *[/+^R?8NV^EHNP<(_JIZQ<F],#)174
M8E#N <?/,-?SCI*Y^*]P!>7#@Q*?HT1EXTK*P3K4,XN7HL7SM,LN[N-TDZ8S
M;!O 9P!? (>8ATV)HO*/PHDB,S@2,_6^%^&)=T?N>U,&9VQ%O//BK?=>"WY[
MR-@U$,TQIRF&KV)V2P3S[$L*OI7BQ%_!^38\W5281GCZC\(/VP3[38)])-B_
M6>)&S"'Y+PE;]52#:>(T65+BT,5)7GF7@;WC\4W^AD_3_DV81G:67-#YEXW]
MKQ$=>"G)C1^AUG^PQ5!0NW"\]6<SC=ED..SG'\26;US\ 5!+ P04    "  &
M@4U0:&F(_[0!  #2 P  &0   'AL+W=O<FMS:&5E=',O<VAE970S,BYX;6Q]
M4V%OVR 0_2N('U 2DFU99%MJ.DV;M$E1IVV?B7VV48'S ,?=OQ]@U_56=U^
M.^Z]>W<<V8#VP;4 GCQJ95Q.6^^[(V.N;$$+=X,=F'!3H]7"!],VS'461)5
M6C&^V;QE6DA#BRSYSK;(L/=*&CA;XGJMA?U] H5#3K?TR7$OF]9'!RNR3C3P
M#?SW[FR#Q6:62FHP3J(A%NJ<WFZ/IWV,3P$_) QN<2:QD@OB0S0^5SG=1$&@
MH/21083M"G>@5"0*,GY-G'1.&8'+\Q/[QU1[J.4B'-RA^BDKW^;T0$D%M>B5
MO\?A$TSUO*%D*OX+7$&%\*@DY"A1N;22LG<>]<02I&CQ..[2I'T8;_C[";8.
MX!. SX!#RL/&1$GY!^%%D5D<B!U[WXGXQ-LC#[TIHS.U(MT%\2YXKP4_;#-V
MC413S&F,X8N8YP@6V.<4?"W%B;^ \W7X;E7A+L%W?RE\A6"_2K!/!/O_EK@6
ML_LG"5OT5(-MTC0Y4F)OTB0OO// WO+T)L_AX[1_%;:1QI$+^O"RJ?\UHH<@
M97,31J@-'VPV%-0^'M^%LQW';#0\=M,/8O,W+OX 4$L#!!0    (  :!35
MH4N+M0$  -(#   9    >&PO=V]R:W-H965T<R]S:&5E=#,S+GAM;'U3VV[;
M, S]%4$?4"6*TP6!;:#I,*S "@0=MCXK-GU!=7$E.6[_?I3L>MYF[$42*9[#
M0XI*!V-?7 /@R9N2VF6T\;X[,N:*!I1P-Z8#C3>5L4IX-&W-7&=!E!&D)..;
MS2U3HM4T3Z/O;//4]%ZV&LZ6N%XI8=]/(,V0T2W]<#RU=>.#@^5I)VKX#OY'
M=[9HL9FE;!5HUQI-+%09O=L>3TF(CP$_6QC<XDQ")1=C7H+Q4&9T$P2!A,('
M!H';%>Y!RD"$,EXG3CJG#,#E^8/]2ZP=:[D(!_=&/K>E;S)ZH*2$2O32/YGA
M*TSU["F9BO\&5Y 8'I1@CL)(%U=2],X;-;&@%"7>QKW5<1_&FWTRP=8!? +P
M&7"(>=B8*"K_++S(4VL&8L?>=R(\\?;(L3=%<,96Q#L4[]![S?DA2=DU$$TQ
MIS&&+V*V<P1#]CD%7TMQXO_ ^3I\MZIP%^&[/Q3NUPF258(D$B3_+7$MYO:O
M)&S14P6VCM/D2&%Z'2=YX9T']H['-_D=/D[[H[!UJQVY&(\O&_M?&>,!I6QN
M<(0:_&"S(:'RX?@)SW8<L]'PIIM^$)N_<?X+4$L#!!0    (  :!35#$Q,A#
MM0$  -(#   9    >&PO=V]R:W-H965T<R]S:&5E=#,T+GAM;'U3VX[3,!#]
M%<L?L&[=TBU5$FF["($$4K4(>':326*M+\%VFN7O&3O9$"#BQ?:,YYPY,QYG
M@W7/O@4(Y$4KXW/:AM"=&/-E"UKX.]N!P9O:.BT"FJYAOG,@J@32BO'-YL"T
MD(866?)=7)'9/BAIX.*([[46[N<9E!URNJ6OCB?9M"$Z6)%UHH$O$+YV%X<6
MFUDJJ<%X:0UQ4.?T87LZ[V-\"O@F8?"+,XF57*U]CL;'*J>;* @4E"$R"-QN
M\ A*12*4\6/BI'/*"%R>7]G?I]JQEJOP\&C5=UF%-J='2BJH1:_"DQT^P%3/
M&TJFXC_!#12&1R68H[3*IY64O0]63RPH18N7<9<F[<-X<SA,L'4 GP!\!AQ3
M'C8F2LK?B2"*S-F!N+'WG8A/O#UQ[$T9G:D5Z0[%>_3>"GZ\S]@M$DTQYS&&
M+V*V<P1#]CD%7TMQYO_ ^3I\MZIPE^"[/Q0>UPGVJP3[1+#_;XEK,6__2L(6
M/=7@FC1-GI2V-VF2%]YY8!]X>I/?X>.T?Q:ND<:3JPWXLJG_M;4!4,KF#D>H
MQ0\V&PKJ$(_W>';CF(U&L-WT@]C\C8M?4$L#!!0    (  :!35 #@6Z#[0(
M +0,   9    >&PO=V]R:W-H965T<R]S:&5E=#,U+GAM;'5786^;,!#]*X@?
M4.QS($F51&HZ39NT256G=9]IXB2H@!DX2??O9PQEF?W\)6#S[MZ=<^\X5E?5
MOG4G*77T7I5UMXY/6C?W2=+M3K+*NSO5R-H\.:BVRK59ML>D:UJ9[ZU152;$
M6)94>5''FY7=>VHW*W7695'+IS;JSE65MW^VLE37=<SCCXWGXGC2_4:R637Y
M4?Z0^F?SU)I5,GG9%Y6LNT+542L/Z_B!WV\IZPTLXJ60U^[F/NI3>57JK5]\
MW:]CUD<D2[G3O8O<7"[R499E[\G$\7MT&D^<O>'M_8?WSS9YD\QKWLE'5?XJ
M]OJTCA=QM)>'_%SJ9W7](L>$TC@:L_\F+[(T\#X2P[%396=_H]VYTZH:O9A0
MJOQ]N!:UO5Z')]F'&3:@T8 F@X4U2 8B&_FG7.>;5:NN43L<?I/W_S&_)W,V
MNW[3'H5]9H+OS.YE0TNV2BZ]HQ&S'3!T@^$3(C'>)PI"%%ORS F;"QBAL.;B
MUIP8=C"##F;6P>R_%+F3(L($HDPA20H<"(<$86:8)(,D&7"0.B0(DV&2.229
M P=SAP1A%IAD 4D6O@-R,P&8Y1*3+"')$I L'!(?(UB@NCC#"F+ A5M?$!0H
M,!Y0*O=<<$XNCP\23 1XH%P?./G')MQ2!B#! K7,L:ZY /FX?P\ "98&>+#\
M.=#VS#LW'R180#8<=P#NRULP5S@0%% .QTV ^PH7;.GR ! /U37N QR(/,U<
M'A\D>.#MP'$KX+[.A5_7"!2J:]P-.) ZG[D\"!2H-\+]@'RI4^;J!X $#]0;
MX7Y OM0I<^L @ 2?!WAP/R @=4^G$!1HUH3[ 0&IDSN*0%!H&L']@(#4R:TW
M" K4&^%^0.!UGWIU /H!!?HHX7Y 0.K>NQ2"W'I+;H;&2K9'.RYWT4Z=:SNK
MW^Q.(_D#V:'S'WR8Y[_G[;&HN^A5:3.ZV@'SH)26)A9V9W(^F4^(:5'*@^YO
MY^:^'>;H8:%5,WXC)-.'RN8O4$L#!!0    (  :!35"Q/F43P@$  #<$   9
M    >&PO=V]R:W-H965T<R]S:&5E=#,V+GAM;&U486_;(!#]*X@?4!R<M%UD
M6VHZ39VT2E&G;9^)?;91P;B X_;?#[#C>2E? G=^[]T[X)*-2K^:%L"B=RDZ
MD^/6VGY/B"E;D,S<J!XZ]Z566C+K0MT0TVM@52!)06B2W!+)>(>++.2.NLC4
M8 7OX*B1&:1D^N, 0HTYWN!+XH4WK?4)4F0]:^ GV%_]4;N(+"H5E] 9KCJD
MH<[QPV9_V'E\ /SF,)K5'OE.3DJ]^N![E>/$&P(!I?4*S"UG> 0AO)"S\39K
MXJ6D)Z[W%_5OH7?7RXD9>%3B#Z]LF^-[C"JHV2#LBQJ?8.YGA]'<_ \X@W!P
M[\35*)4PX1>5@[%*SBK.BF3OT\J[L(ZS_H46)]"90*\(9"H4G']EEA695B/2
MT]GWS%_Q9D_=V90^&8XB?'/FC<N>BY3>9>3LA6;,8<+0%6:S((A37TK06(D#
M_42G<7H:=9@&>KJFT]NXP#8JL T"V_]:O+]J,8;Y$B^RBQ;9?19(DZLB,<SU
M29+5Q4G037BR!I5JZ,*XK+++5#S0</'_X--(/3/=\,Z@D[+N^81+KI6RX*PD
M-\Y+ZZ9X"034UF_OW%Y/;WD*K.KG,27+?T7Q%U!+ P04    "  &@4U0X7H;
M^M\!   !!0  &0   'AL+W=O<FMS:&5E=',O<VAE970S-RYX;6QM5.N.G" 4
M?A7" RP..N/L1$UVMFG:I$TFV[3]S>CQD@6QP(S;MR^@:ZWECW .W^4<!+)1
MJE?= ACT)GBO<]P:,YP(T64+@ND'.4!O5VJI!#,V5 W1@P)6>9+@A$;1@0C6
M];C(?.ZBBDS>#.]ZN"BD;T(P]?L,7(XYWN'WQ$O7M,8E2)$-K(%O8+X/%V4C
MLJA4G8!>=[)'"NH</^U.Y]3A/>!'!Z->S9'KY"KEJPL^5SF.7$' H31.@=GA
M#L_ N1.R9?R:-?%BZ8CK^;OZ1]^[[>7*-#Q+_K.K3)OC(T85U.S&S8L</\'<
MSQZCN?DO< =NX:X2ZU%*KOT7E3=MI)A5;"F"O4UCU_MQG%;29*:%"70FT(5P
M]#YD,O*5?V"&%9F2(U+3W@_,_>+=B=J]*5W2;X5?L\5KF[T7<4PS<G=",^8\
M8>@*LUL0Q*HO%C1D<:;_T6F8'@<KC#T]7M/I8U@@"0HD7B#YI\5XTV((DX1-
M]D&3?4!@OS$)80YADT/0Y! 02#<F(<PQ;)(&3=* P./&)(!)HHT)61U! :KQ
MET^C4MYZ?_%7V>5^/U%_A/_"I\?A*U--UVMTE<9>!']<:RD-V%*B![NKK7V/
MEH!#;=PTM7,UW<HI,'*8'QRRO'K%'U!+ P04    "  &@4U0.OILUK<!  #2
M P  &0   'AL+W=O<FMS:&5E=',O<VAE970S."YX;6QU4]MNW" 0_17$!X0U
M=MMH95O*IJI:J956J=H\L_;XH@#C EZG?U_ CF,E[@LPPYPS9X8AG] \V0[
MD6<EM2UHY]QP9,Q6'2AA;W  [6\:-$HX;YJ6V<& J"-(2<8/AX],B5[3,H^^
MLRES')WL-9P-L:-2POP]@<2IH E]<3ST;>>"@Y7Y(%KX">[7<#;>8BM+W2O0
MMD=-##0%O4N.IRS$QX#?/4QV<R:AD@OB4S"^U04]!$$@H7*!0?CM"O<@92#R
M,OXLG'1-&8#;\PO[EUB[K^4B+-RC?.QKUQ7TEI(:&C%*]X#35UCJ^4#)4OQW
MN(+TX4&)SU&AM'$EU6@=JH7%2U'B>=Y['?=IODGY ML'\ 7 5\!MS,/F1%'Y
M9^%$F1N<B)E[/XCPQ,F1^]Y4P1E;$>^\>.N]US+-DIQ= ]$2<YIC^";F-8)Y
M]C4%WTMQXN_@?!^>[BI,(SS=PM/_Y,]V";)(D&WE)_Q-B>]CTNRM2K;IJ0+3
MQFFRI,)1QTG>>->!O8N/R%[#YVG_(4S;:TLNZ/S+QOXWB Z\E,.-'Z'.?[#5
MD-"X</SDSV8>L]EP."P_B*W?N/P'4$L#!!0    (  :!35"U,#IKM@$  -(#
M   9    >&PO=V]R:W-H965T<R]S:&5E=#,Y+GAM;&U3VV[<(!#]%<0'A/4E
M;;2R+6531:W42JM4;9]9>VRC .,"7J=_7\".ZR9^ 68XY\R%H9C0/-L>P)$7
M);4M:>_<<&3,UCTH;F]P .UO6C2*.V^:CMG! &\B24F6'@X?F.)"TZJ(OK.I
M"AR=%!K.AMA1*6[^G$#B5-*$OCJ>1->[X&!5,? .OH/[,9R-M]BJT@@%V@K4
MQ$!;TOOD>,H#/@)^"ICLYDQ")1?$YV!\:4IZ" F!A-H%!>ZW*SR E$'(I_%[
MT:1KR$#<GE_5'V/MOI8+M_" \I=H7%_2.TH::/DHW1-.GV&IYY:2I?BO< 7I
MX2$3'Z-&:>-*ZM$Z5(N*3T7QEWD7.N[3?),G"VV?D"Z$="7<Q3AL#A0S_\0=
MKPJ#$S%S[P<>GC@YIKXW=7#&5L0[G[SUWFN5Y5G!KD%HP9QF3+K!)"N">?4U
M1+H7XI2^HZ?[]&PWPRS2LRT]R_<%\EV!/ KD_PF\+?$])LO?!F&;GBHP79PF
M2VH<=9SDC7<=V/LTOLD_^#SMW[CIA+;D@LZ_;.Q_B^C IW*X\2/4^P^V&A):
M%XX?_=G,8S8;#H?E!['U&U=_ 5!+ P04    "  &@4U0/3)H"\4!   W!
M&0   'AL+W=O<FMS:&5E=',O<VAE970T,"YX;6QU5.]NVR 0?Q7$ Y0$QTT6
MV9::3M,F;5+4:=MG8I]M5# >X+A[^P%V/2^E7PP<OS]WP#D;E7XV+8!%+U)T
M)L>MM?V1$%.V()FY4SUT;J=66C+KEKHAIM? JD"2@M#-YIY(QCM<9"%VUD6F
M!BMX!V>-S" ETW].(-28XRU^#3SQIK4^0(JL9PU\!_NC/VNW(HM*Q25TAJL.
M::AS_+ ]GE*/#X"?'$:SFB-?R46I9[_X4N5XXQ," :7U"LP-5W@$(;R02^/W
MK(D72T]<SU_5/X7:72T79N!1B5^\LFV.#QA54+-!V"<U?H:YGA2CN?BO< 7A
MX#X3YU$J8<(7E8.Q2LXJ+A7)7J:1=V$<IQVZGVEQ IT)="$<@@^9C$+F'YEE
M1:;5B/1T]CWS5[P]4G<VI0^&HPA[+GGCHM<BV:49N7JA&7.:,'2%V2X(XM07
M"QJS.-$W=!JG)]$,DT!/UO1D'Q?8105V06#W7XGW-R7&,.^8I%&3-")PN#&)
M83[<F)#5Q4G037BR!I5JZ$*[K*)+5SS0</'_X%-+?6.ZX9U!%V7=\PF77"ME
MP:6RN7.YM*Z+EX6 VOKIWLWU]):GA57]W*9D^5<4?P%02P,$%     @ !H%-
M4+/O3_*V 0  T@,  !D   !X;"]W;W)K<VAE971S+W-H965T-#$N>&UL;5/;
M;IPP$/T5RQ\0@V'3: 5(V515(K72*E7;9R\,8,478ILE_?O:AE":\F)[QG/.
MG!F/BTF;%]L#./0FA;(E[IT;CH38N@?)[(T>0/F;5AO)G#=-1^Q@@#41) 6A
M27)+).,*5T7TG4U5Z-$)KN!LD!VE9.;W"82>2ISB=\<S[WH7'*0J!M;!=W _
MAK/Q%EE9&BY!6:X5,M"6^#X]GO(0'P-^<ICLYHQ")1>M7X+QU)0X"8) 0.T"
M _/;%1Y B$#D9;PNG'A-&8#;\SO[EUB[K^7"+#QH\8LWKB_Q'48-M&P4[EE/
MC[#4<\!H*?XK7$'X\*#$YZBUL'%%]6B=E@N+ER+9V[QS%?=IOCED"VP?0!<
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
MO1Y:?SA8U8Y3C4ZC-?\#4$L#!!0    (  :!35!Z#9['SP$  '@$   9
M>&PO=V]R:W-H965T<R]S:&5E=#0U+GAM;'54[6Z;,!1]%<L/4"<$2!H!4M-I
MVJ15BCIM^^W !:S:F-DFM&]?VU#&,N\/]KT^Y]P/?)V-4KWH%L"@5\$[G>/6
MF/Y(B"Y;$%3?R1XZ>U)+):BQIFJ([A70RI,$)]%FDQ)!68>+S/O.JLCD8#CK
MX*R0'H2@ZNT$7(XYWN(/QS-K6N,<I,AZVL!W,#_ZL[(6650J)J#33'9(09WC
MA^WQE#J\!_QD,.K5'KE*+E*^..-KE>.-2P@XE,8I4+M<X1$X=T(VC=^S)EY"
M.N)Z_Z'^V==N:[E0#8^2_V*5:7-\P*B"F@[</,OQ"\SU)!C-Q7^#*W +=YG8
M&*7DVG]1.6@CQ:QB4Q'T=5I9Y]=Q.HGW,RU,B&9"M! ./@Z9 OG,/U%#BTS)
M$:FI]SUUOWA[C&QO2N?TK?!G-GEMO==BMX\S<G5",^8T8:(59KL@B%5?0D2A
M$*?H'WH4IN^"&>X\?;>F)_NP0!P4B+U _%>)25@@"0HD 8'TID<AS'^R3(-!
MTH# X29("'-_$X2L_KP U?@[KU$IA\[/V\J[C-5#Y&_.'_@TDT]4-:S3Z"*-
MO7_^EM12&K"I;.YLP:U]!A:#0VW<=F_W:AJ&R3"RG^><+(]-\0Y02P,$%
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
MX@-;' 6U#^8CVG9:L\GQII]?$%N><?$74$L#!!0    (  :!35#IY4(&M $
M -(#   9    >&PO=V]R:W-H965T<R]S:&5E=#4P+GAM;&U3VVZ<,!#]%<L?
M$+->DDU7@)1-%+52*ZU2M7GVP@!6?*&V6=*_KVU82C:\X)GAG#,7C[-!FS?;
M CCT+H6R.6Z=Z_:$V+(%R>R-[D#Y/[4VDCGOFH;8S@"K(DD*0I/DCDC&%2ZR
M&#N:(M.]$US!T2#;2\G,WP,(/>1X@R^!%]ZT+@1(D76L@9_@?G5'XSTRJU1<
M@K)<*V2@SO'#9G]( SX"?G,8[,)&H9.3UF_!^5;E. D%@8#2!07FCS,\@A!!
MR)?Q9]+$<\I 7-H7]>?8N^_EQ"P\:O'**]?F^!ZC"FK6"_>BAZ\P]7.+T=3\
M=SB#\/!0B<]1:F'C%Y6]=5I.*KX4R=['DZMX#I/^A;9.H!.!7A'(F"A6_L0<
M*S*C!V3&V7<L7/%F3_ULRA",HXC_?/'61\]%FMQEY!R$)LQAQ- %9C,CB%>?
M4]"U% ?ZB4[7Z=O5"K>1OEW2=U_6!=)5@30*I!]:W%VUN(:YOTI"%C.58)JX
M31:5NE=QDQ?1>6$?:+R3__!QVW\PTW!ET4D[?[-Q_K76#GPIR8U?H=8_L-D1
M4+M@[KQMQC4;':>[Z061^1D7_P!02P,$%     @ !H%-4&)OO8:Y 0  T@,
M !D   !X;"]W;W)K<VAE971S+W-H965T-3$N>&UL;5/;;IPP$/T5RQ\0@Y=-
MZ0J0LJFJ5FJE5:JVSUX8P(HOU#9+^O>U#:$HX<7VC,\Y<_&XF+1YMCV 0R]2
M*%OBWKGA1(BM>Y#,WND!E+]IM9',>=-TQ X&6!-)4A":)/=$,JYP543?Q52%
M'IW@"BX&V5%*9OZ>0>BIQ"E^=3SQKG?!0:IB8!W\ /=SN!AOD56EX1*4Y5HA
M VV)']+3.0OX"/C%8;*;,PJ57+5^#L;7IL1)2 @$U"XH,+_=X!&$"$(^C3^+
M)EY#!N+V_*K^.=;N:[DR"X]:_.:-ZTN<8]1 RT;AGO3T!99ZCA@MQ7^#&P@/
M#YGX&+46-JZH'JW3<E'QJ4CV,N]<Q7V:;X[Y0MLGT(5 5T(>XY Y4,S\$W.L
M*HR>D)E[/[#PQ.F)^M[4P1E;$>]\\M9[;U66?"S(+0@MF/.,H1M,NB*(5U]#
MT+T09_J.3O?IA]T,#Y%^V-+SX[Y MBN018%L6V*:O"GQ/8;F]V^"D$U/)9@N
M3I-%M1Y5G.2-=QW8!QK?Y#]\GO;OS'1<6735SK]L['^KM0.?2G+G1ZCW'VPU
M!+0N'#_XLYG';#:<'I8?1-9O7/T#4$L#!!0    (  :!35 $+K/EI0(  )\+
M   9    >&PO=V]R:W-H965T<R]S:&5E=#4R+GAM;)56T6Z;,!3]%<0'%'Q#
M0E(ED9I.TR9M4M5IV[.;. DJ8&8[2??WLPVE63B6DA>PS;GGWF-SX,Y/4KWJ
MO1 F>JO*6B_BO3'-?9+H]5Y47-_)1M3VR5:JBAL[5;M$-TKPC0^JRH32=))4
MO*CCY=RO/:GE7!Y,6=3B247Z4%5<_5V)4IX6,8O?%YZ+W=ZXA60Y;_A._!#F
M9_.D["SI639%)6I=R#I28KN(']C]BF8NP"-^%>*DS\:1D_(BY:N;?-TLXM15
M)$JQ-HZ"V]M1/(JR=$RVCC\=:=SG=('GXW?VSUZ\%?/"M7B4Y>]B8_:+>!I'
M&['EA](\R],7T0D:QU&G_ILXBM+"724VQUJ6VE^C]4$;674LMI2*O[7WHO;W
M4_LDS[LP'$!= /4!;.*UM(E\Y9^XX<NYDJ=(M9O?<'?&[)[LWJS=HM\*_\P6
MK^WJ<9DQ-D^.CJC#K%H,G6$^$(EE[U,02K&B03CA\!&L<.3#1^?AE&*"#!)D
MGB#[3R)=2$28$4XRADG&@""[2((P8YQD I-, ,$$$^20(!_L9<9R3#"%!%-0
MP?1")L+,<)(93#(;$H1.G*7XK4ZO%\H"QF!72(6@P'O#H#L>& &U 7\Q[! V
MM$A8+?8(0P88J 4@"GB989LPX $*;1@V 9O<H!;;@.77J$6@4*G8+0Q8@;(
M!?8"FUVOEK 9*+U"+0*%SI:P8PB8@0+?-\)F(+I!+38#C:Y1"T 4^)(2=@PA
M,X1*Q6:@\0UJL1D(_1(&:@$H>+;8,03,0-, !38#36]0B\U X,\P5(M^'Y=G
MFYSU1Y50.]\9ZF@M#[5O2\]6^^[S@7Q_]0%O6]?O7.V*6D<OTM@NS?=26RF-
ML+6D=_:$][9;[B>EV!HWS.U8M2UC.S&RZ=KAI._)E_\ 4$L#!!0    (  :!
M35 8NL)8G@(  'L+   9    >&PO=V]R:W-H965T<R]S:&5E=#4S+GAM;)56
M[6Z;,!1]%<0#%'Q#/JB22$VG:9,VJ>JT[K>3. DJ8&8[2??VLPUE67,LD3^
MS;GGWH-]\)V?I7K5!R%,]%:5M5[$!V.:^R31FX.HN+Z3C:CMFYU4%3=VJ/:)
M;I3@6Q]4E0FEZ22I>%''R[F?>U++N3R:LJC%DXKTL:JX^K,2I3PO8A:_3SP7
M^X-Q$\ERWO"]^"',S^9)V5'2LVR+2M2ZD'6DQ&X1/[#[%>4NP"->"G'6%\^1
MD[*6\M4-OFX7<>HJ$J78&$?![>TD'D59.B9;Q^^.-.YSNL#+YW?VSUZ\%;/F
M6CS*\E>Q-8=%/(NCK=CQ8VF>Y?F+Z 2-XZA3_TV<1&GAKA*;8R-+[:_1YJB-
MK#H66TK%W]I[4?O[N7TSS;LP'$!= /4!;.*UM(E\Y9^XX<NYDN=(M1^_X6Z-
MV3W9;[-QD_Y3^'>V>&UG3\N,\GER<D0=9M5BZ +#>D1BV?L4A%*LZ"J<</@(
M5CCRX=EEA:,4$V20(/,$H_\( @+&D& ,*J /WPAA1CC)!":9 ((,$TPAP72X
MS!DDF V0B3!CG"2'27) ,,$$+,4[-ATNE 4V/1L@%8$H5"K<^0^,0)YI@ +O
M?C:Z02W>_RP;HA:!9H$\V"8,>2 /4& 3L,D-:K$-V'2(6@ *KBUV"P-6R +_
M)8:]P/+A:@F;@=(!:B$HL+:$'4/ #%FH5&P&HAO48C,0.@NNU )0%CAQ"#N&
M@!FRP-^<L!EH?(-:; 9"1\*56@#* N<&8<<0,$,6^*D3-@/-;E"+S4#H9+A2
M"T#T<6V3B]ZG$FKONSX=;>2Q]BWGQ6S?63Z0[YW^P=NV]#M7^Z+6T5H:VX'Y
M/FDGI1&VEO3.KO#!=L+]H!0[XQZG]EFU[6 [,++I6MVD[[>7?P%02P,$%
M  @ !H%-4+=92Q[> 0  ^@0  !D   !X;"]W;W)K<VAE971S+W-H965T-30N
M>&ULC53;;IPP$/T5RQ\0 \NR= 5(V411*[72*E739R\,%\7&U#9+^O>U#:$D
M=:6\8,_XS)DS@\?9).2S:@$T>N&L5SENM1Z.A*BR!4[5C1B@-R>UD)QJ8\J&
MJ$$"K5P09R0*@H1PVO6XR)SO+(M,C)IU/9PE4B/G5/X^ 1-3CD/\ZGCLFE9;
M!RFR@3;P'?2/X2R-15:6JN/0JT[T2$*=X]OP>$HMW@&>.IC49H]L)1<AGJWQ
MI<IQ8 4!@U);!FJ6*]P!8Y;(R/BU<.(UI0W<[E_9'USMII8+57 GV,^NTFV.
M4XPJJ.G(]*.8/L-2SQZCI?BO< 5FX%:)R5$*IMP7E:/2@B\L1@JG+_/:]6Z=
MYI,D7L+\ =$2$*T!8>)JF1,YY?=4TR*38D)R[OU [2\.CY'I36F=KA7NS(A7
MQGLMXCC)R-42+9C3C(DVF'!%$,.^IHA\*4[1/^&1/WSG5;ASX?$;A0<_0>PE
MB!W![@U!ZB?8>PGV'@6?WO7(@]D'_B2)-TGB(?A/FP]>@L/'RTR]!.D'RO1A
MWO]-LKE['&3CIDZA4HR]F_B-=QWLV\C=W;_P^57X1F73]0I=A#83X.YI+80&
M(R6X,2UOS4.T&@QJ;;<'LY?S.,Z&%L/RTI#UN2O^ %!+ P04    "  &@4U0
M!]TLNMT!  #Z!   &0   'AL+W=O<FMS:&5E=',O<VAE970U-2YX;6R-5&UO
MVR 0_BN('U 28CM19%MJ6E6;M$E1IVV?B7U^4<%X@./NWP^PXWDMD_K%<,=S
MSSUWYDA'J5YT V#0J^"=SG!C3'\D1!<-"*;O9 ^=/:FD$LQ84]5$]PI8Z8,$
M)W2S28A@;8?SU/O.*D_E8'C;P5DA/0C!U.\3<#EF>(MOCN>V;HQSD#SM60W?
MP'SOS\I:9&$I6P&=;F6'%%09OM\>3P>']X ?+8QZM4>NDHN4+\[X7&9XXP0!
MA\(X!F:7*SP YX[(RO@U<^(EI0M<[V_L3[YV6\N%:7B0_&=;FB;#!XQ*J-C
MS;,</\%<3XS17/P7N *W<*?$YB@DU_Z+BD$;*686*T6PUVEM.[^.,_\M+!Q
MYP"Z!&P37\N4R"M_9(;EJ9(C4E/O>^9^\?9(;6\*Y_2M\&=6O+;>:Q[%-"57
M1S1C3A.&KC#;!4$L^Y*"AE*<Z+MP&@[?!17N?'BT5ACMPP11D"#R!+M_2MR%
M">(@0?Q>01R]Z5$($X>3),$D28#@/VW>!PGV'R_S$"0X?*#,$"9YDX2L[IX
M5?NITZB00^<G?N5=!ON>^KO[%SZ]"E^9JMM.HXLT=@+\/:VD-&"E;.YLRQO[
M$"T&A\JX[=[NU32.DV%D/[\T9'GN\C]02P,$%     @ !H%-4*!<#XGS 0
MY@0  !D   !X;"]W;W)K<VAE971S+W-H965T-38N>&UL?53;CILP$/T5Q >L
MP1"21H"T252U4BM%6W7[[,!PT=J8VD[8_GU](2Q)T+Y@S_B<,Q<\3@<NWF0#
MH+QW1CN9^8U2_18A633 B'SB/73ZI.*"$:5-42/9"R"E)3&*<! DB)&V\_/4
M^HXB3_E9T;:#H_#DF3$B_NV \B'S0__J>&GK1AD'RM.>U/ +U._^*+2%)I6R
M9=#)EG>>@"KSG\/M(39X"WAM89"SO6<J.7'^9HSO9>8')B&@4"BC0/1R@3U0
M:H1T&G]'37\*:8CS_57]JZU=UW(B$O:<_FE+U63^QO=*J,B9JA<^?(.QGI7O
MC<7_@ M0#3>9Z!@%I])^O>(L%6>CBDZ%D7>WMIU=AU'_2ELFX)& )T*8?$J(
M1D+T08@_)<0C(;XC(%>*[<V!*)*G@@^><'^W)^82A=M8=[\P3MML>Z;;([7W
MDL>K=8HN1FC$[!P&SS#AA$!:?0J!ET+L\ ,=WP;8/R*2\!9R6(#@Y22BQ3HC
MRX_F2>!@62!>%(BM0'S3J,U=HQQF93&=:U2T605!<%?O BY)\ /NL(1;?YGC
M7.)H]K<9B-I.DO0*?NZ4:=K,.PWK,S:WY<Z_TT/L9NY#QKT /XFHVTYZ)Z[T
M7;0WIN)<@4XS>-(9-OK1F0P*E3+;M=X+-WK.4+P?7Q4T/6WY?U!+ P04
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
M,PSDPX62I_%C0W#]XK'^"5!+ P04    "  &@4U0(*2E',,"  !N"@  &0
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
MZKIS?3[UJ<]T=-G^>E*X0S<<+OOCYO+.]G+2U:?I?71\?2F^_1]02P,$%
M  @ !H%-4/-!K#,V!   ,Q<  !D   !X;"]W;W)K<VAE971S+W-H965T-C4N
M>&ULE9C=;N,V$(5?Q= #K,CACZ7 -M!L4;1 "P1;='NMV'1LK&2YDA)OW[Z2
MK!A>S9F"N8DE93B'I,XG<KBZU,VW]A!"M_A>E:=VG1RZ[OR0INWV$*JB_52?
MPZG_S[YNJJ+K;YN7M#TWH=B-C:HR):5\6A7'4[)9C<^>FLVJ?NW*XRD\-8OV
MM:J*YM_'4-:7=:*3]P=?CB^';GB0;E;GXB7\&;J_SD]-?Y?>LNR.53BUQ_JT
M:,)^G?RD'QZ='QJ,$5^/X=+>72^&H3S7];?AYK?=.E%#CT(9MMV0HNA_WL+G
M4)9#IKX?_TQ)DYOFT/#^^CW[+^/@^\$\%VWX7)=_'W?=89UDR6(7]L5KV7VI
M+[^&:4 N64RC_SV\A;(/'WK2:VSKLAW_+K:O;5=74Y:^*U7Q_?I[/(V_ERG_
M>S/<@*8&=&M U[%<A<:>_UQTQ6;5U)=%<YW\<S&\8_U _=QLAX?C5(S_ZSO?
M]D_?-LYDJ_1M2#3%/%YCZ"Z&--UBTC[_382@"(T)S+V(TCB!@0G,F,#^T,M\
MULMKC!MC3M=>&J^MT%$+=2S7L6JF<XWQ=SI&DR)A/ [J.*"C9SJ.Z6A-GC*L
MXZ&.!SHTT_%,9^F=QRI+J+($*F:FL@2CL4NLDD&5C*OHN0<RIN)][G*+=7*H
MDW,=97 "K3!3*M[O6L!21SA^"KH?;DZY%D:K,9N:(CP_!?WP^K)EKH47J#'%
M&F#,;#\%W4M19D4ES+%&(,^-KSG)2E#!%&N$\=SXFG,LJ6"&-8"8&5]SBHW*
MR0I?"XU!UH!D)7P*-*949Q_P/@90 P*Y]W..NO,D>)\PJ*0BO#\%W2MEF3+"
M)X$PSP1X9M8GSG/O6B6\0Q+66L3SW/K$>;8D#@G33(CFN?N)TRRXGS#)!$AF
M[B=.<K]#4;DT<QAG C@K)Z3 K)*/=S]A!@DPR-Q/?#GUWF?2U&)4":RHW/U\
M2=7+I94XPT03()J[GQ--5F4Y5C*8:(.(GKO?<*)-;W]!" -M$-!S]QL.M+SK
M,9AG WAF !BP/FNC,FE,PBX;$*VDWF)<C?W 5A]C: "&?+//5U5/TC[/8%@-
MVAW/_6_XPJJ]DCX+!C-MT YY[G_#F19X-IAG@WAFWN<\2RJ898-89L;G+ LJ
M%G-L <?,]99S3$2Y\,6P&&0+0):67(L1M1^H;RU&S\94N)8OIM8;:6*%"C>J
MQ 7KJ2&IDL88VY@:UT9OCBUFV,94N)8S+*E@?FU,A6NC^;687QM3X5I0XN9.
M>C4880L0UD)?'>;3?:#$=1@\%U/B.KZ"2AW%;+J8\M;QY5-2P?BZF,K6<7R=
M6*T[C*^+*6Q==&'KA..IF,+61;/K,+LNIK"=@MS_3UIZ=]PY'"?_430OQU.[
M>*Z[KJ[&\\U]77>ASZ@^];D.H=C=;LJP[X;+97_=7(]QKS==?9Z.J-/;.?GF
M/U!+ P04    "  &@4U0>C[6H@0"  !Y!0  &0   'AL+W=O<FMS:&5E=',O
M<VAE970V-BYX;6Q]E-N.FS 0AE\%\0!KL#FD$2 UJ:I6:J5HJVZOG602T!I,
M;2=LW[X^$,2"VYO88__SSS>.<3%P\2IK !6\M:R395@KU6\1DJ<:6BJ?> ^=
MWKEPT5*E0W%%LA= SS:I90A'489:VG1A5=BU@Z@*?E.LZ> @ GEK6RK^[(#Q
MH0SC\+'PW%QK91905?3T"C] _>P/0D=H<CDW+72RX5T@X%*&'^/M/C-Z*WAI
M8)"S>6 Z.7+^:H*OYS*,#! P."GC0/5PASTP9HPTQN_1,YQ*FL3Y_.'^V?:N
M>SE2"7O.?C5G59?A)@S.<*$WII[Y\ 7&?M(P&)O_!G=@6FY(=(T39]+^!J>;
M5+P=731*2]_<V'1V'-Q.]DCS)^ Q 4\)<?+?!#(FD$4"<F2VU4]4T:H0? B$
M^[-Z:NY$O"7Z,$]FT9Z=W=/=2KUZK](D*=#=&(V:G=/@F0:_5^S7BBR>)$@#
M3!382X%M/IE7(/\P(%X#8@V2=VVDBS:<)K6:SA7)\6:AVJ]5"<[)Q@^3>&$2
M#TRV@'&:;%8F32.R8%F+2$)2/TKJ14D]*/D")5U5P7F2+UG6*I+'T0<_3.:%
MR58P<;RX2;ML=?Q9A&>7R<&L51N"-W@!@V8?@7F4OE-Q;3H9'+G2WY.]]1?.
M%6C'Z$F;U?H=G (&%V6FN9X+]QJX0/%^?.C0]-I6?P%02P,$%     @ !H%-
M4"_"<M3V @  A@P  !D   !X;"]W;W)K<VAE971S+W-H965T-C<N>&ULE5?1
M;ILP%/T5Q/N*K[$!5TFD-=.T29M4==KV["9.@@HX R?I_G[&4$3@LI*78)MS
MK\\]\;'-XJ++E^J@E/%>\ZRHEO[!F.-]$%2;@\IE=:>/JK!O=KK,I;'=<A]4
MQU+)K0O*LX 2$@6Y3 M_M7!CC^5JH4\F2POU6'K5*<]E^?=!9?JR],%_&WA*
M]P=3#P2KQ5'NU0]E?AX?2]L+NBS;-%=%E>K"*]5NZ7^$^S6-Z@"'^)6J2]5K
M>W4ISUJ_U)VOVZ5/:D8J4QM3IY#V<59KE65U)LOC3YO4[^:L _OMM^R?7?&V
MF&=9J;7.?J=;<UCZB>]MU4Z>,O.D+U]46Q#WO;;Z;^JL,@NOF=@Y-CJKW*^W
M.55&YVT62R67K\TS+=SSTN9_"\,#:!M NP!@_PT(VX!P$! TS%RIGZ21JT6I
M+U[9_%M'62\*N ^MF)MZT&GGWMEJ*SMZ7G&6+()SG:C%/#08VL/0:\1ZC(B@
M@P260,>"HBRHBP][\0QB/$&()@A= G95AAB4T6"XPQ0. X(!\$$M""P)64QP
M.@REP\9T.!G0:3!1;YX/0%@4#[5%<(*2F.%\.,J'(WQ@P(>/YDD$8^& S1@E
M(!013B9"R40(&8HGB-$$\?S5DJ )DAFK)1D5&HJA9NMW0%=4!$I%C*@PF% 3
M".Y@,E\.F-@$8(8@+:A?+&4\'"Z0=V'7A/#] .A8%CKA0,!W! AOD 5W,2 V
M'LLR]B<3-!%#61 8)]$4(=S&@/EX2EG<?!#=( MN/XCGR!*/Z@42"S*490P3
M1/ )/KB; ;$SG]@> 7<AB/FJ4-R&E,Q0I07URXUBUMO+&U4P6,39Q"9)<5-3
MQ-1\0EDZ<2S?<"Y3W(9TSLG<@J[V4:!Q,I1E#*-QV(-=$\)-3;&S>6+'I;@-
M*;]!%MR&%#D$Q[)$HZM(E)"AA3"4(,/U'_0NA/4-_;LL]VE1><_:V+NENP'N
MM#;*9B1W-M?!?A1TG4SM3-V,;;ML;L9-Q^AC>^L/ND^/U3]02P,$%     @
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
M>NC,3BTDI]J$\HQ5+X%6+HDS3,(PQ9RV'2HRMW:4128NFK4='&6@+IQ3^78
M)H8<1>ACX;D]-]HNX"+KZ1E^@O[5'Z6)\.12M1PZU8HND%#GZ"[:'U*K=X+?
M+0QJ-@]L)R<A7FSPH\I1: L"!J6V#M0,5[@'QJR1*>/OZ(DFI$V<SS_<O[G>
M32\GJN!>L#]MI9L<[5!004TO3#^+X3N,_20H&)M_A"LP([>5&$8IF'*_07E1
M6O#1Q93"Z:L?V\Z-@]])R9BVGD#&!#(E$-^+![G*'ZBF12;%$$A_]CVU?W&T
M)^9L2KOHCL+MF>*56;T6R?8VPU=K-&H.7D-F&A*128.-_P0AJQ#B#.*Y0;Q=
M-XA7#6)GL/FGRGA1I=<D3M,Y31S^![)9A6Q6()L%Q&O2KT"254BR DD6D.3K
MD'05DGZ"1+O= I)^.JY;$BT@>':+["-]HO+<=BHX"6TNI+LVM1 :C%]X8ZP:
M\UV8 @:UMM.MF4O_.GR@13\^?#Q]?8IW4$L#!!0    (  :!35 Z<5["!0(
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
MT]2<=^<ME_.%5L=I.RFZ[&EM_@!02P,$%     @ !H%-4(!2^QH5 @  -P8
M !D   !X;"]W;W)K<VAE971S+W-H965T-S0N>&UL?97;CILP$(9?!?$ :XR!
M0 1(W515*[52M%6WUTXR"6@-IK83MF]?VQ!*P>E-?."?_YOQ*7G/Q9NL )3W
MWK!6%GZE5+=%2!XK:*A\XAVT^LN9BX8J/107)#L!]&2#&H;"($A00^O6+W,[
MMQ=ESJ^*U2WLA2>O34/%[V=@O"]\[-\G7NI+I<P$*O..7N [J!_=7N@1FEQ.
M=0.MK'GK"3@7_@>\W65&;P6O-?1RUO=,)0?.W\S@RZGP Y,0,#@JXT!U<X,=
M,&:,=!J_1D]_0IK >?_N_LG6KFLY4 D[SG[6)U45?NI[)SC3*U,OO/\,8SVQ
M[XW%?X4;,"TWF6C&D3-I?[WC52K>C"XZE8:^#VW=VK8?_>]A[H!P# BG !S]
M-X", 601@(;,;*D?J:)E+GCOB6&S.FK.!-X2O9A',VG7SG[3U4H]>ROC+,W1
MS1B-FN=!$\XTX;^*W5J1_)4@G<"41>C,(K3Q9$Z( K<!<1H0:Q#-RT@650R2
MV$K:01+A!UE&3DBTAFS(@C)HDCDE) \HL9,2.RC1@A*O*%'Z:,43)R5Q4.(%
M)5E3</)@6S9.RL9!6>[+9D4A<4;<E-1)21V4Y1E.5Y0T(-A-R9R4;$W)\(*2
MK<X8P6$6+&[+6H4#C)<EH]D5-D_J-RHN=2N] U?Z-;!W]LRY NT8/&FS2K_B
MTX#!69GN1O?%\)8- \6[\9E&TW]%^0=02P,$%     @ !H%-4$,)$>18 @
MIP<  !D   !X;"]W;W)K<VAE971S+W-H965T-S4N>&UL?97=CILP$(5?!?$
MBVW^5P2IH:I:J96BK=I>.XD3T *FMA.V;U_;$,2::6_ -F?.?&-@7(Q<O,J:
M,>6]=6TO=WZMU/ <!/)4LX[*)SZP7C^Y<-%1I:?B&LA!,'JV05T;$(22H*--
M[Y>%73N(LN WU38].PA/WKJ.BC][UO)QYV/_L?#27&ME%H*R&.B5?6?JQW 0
M>A8L+N>F8[UL>.\)=MGY'_!SA9$)L(J?#1OE:NR94HZ<OYK)E_/.1X:(M>RD
MC 75MSNK6-L:)\WQ>S;UEYPF<#U^N'^RQ>MBCE2RBK>_FK.J=W[F>V=VH;=6
MO?#Q,YL+BGUOKOXKN[-6RPV)SG'BK;17[W23BG>SBT;IZ-MT;WI['V?_1Q@<
M0.8 L@3@Z+\!X1P0.@'!1&9+_4@5+0O!1T],;VN@YJ/ SZ'>S)-9M'MGG^EJ
MI5Z]EW&>%\'=&,V:_:0A*PUYKZBVB@0ODD #+!0$I" V/ES'(P0;A*!!: VB
M=P;8*6/2Q%;36PW&\2K-5 JD0F$.PT0@3 3 .#NVGS3)*HT+LE7D.(Q@CACD
MB &.T.&(-UFB%&4.RE:4Q"B%41(0)0%0(@<EV6;!4>*@;$51AA,8)0514@ E
M=E!28%>PLW45)(I"&"4#43( Q2EXGVVR$.R^Q6HKPBGZQZ[D($J^0<&)\QGL
M\RU*B(C3+2I 14@:PS#Z! "[$MKB$/<ES:+UKQH3[':O"I#IWY&X[258=4QS
MA'VCXMKTTCMRI9NO;9$7SA73ENA)F]7ZU%PF+;LH,TSU6$Q'QS11?)B/Q6 Y
MF\N_4$L#!!0    (  :!35#-I['[,P(  &T&   9    >&PO=V]R:W-H965T
M<R]S:&5E=#<V+GAM;'U5T8Z;,!#\%<1[#PP$: 1(1ZJJE5HINJKMLT,V 9V-
MJ>V$Z]_7-H0CX/0%V\OL[(RQEZQG_%74 -)YHZ05N5M+V6T]3U0U4"R>6 >M
M>G-BG&*IEOSLB8X#/IHD2KS ]V./XJ9UB\S$]KS(V$62IH4]=\2%4LS_ED!8
MG[O(O05>FG,M=< KL@Z?X0?(G]V>JY4WL1P;"JUH6.MP..7N,]KN4HTW@%\-
M]&(V=[23 V.O>O'UF+N^%@0$*JD9L!JNL -"-)&2\6?D=*>2.G$^O[%_-MZ5
MEP,6L&/D=W.4=>ZFKG.$$[X0^<+Z+S#ZV;C.:/X;7($HN%:B:E2,"/-TJHN0
MC(XL2@K%;\/8M&;L1_Y;FCTA&!."*0'%_TT(QX3P/2$RY@=EQNHG+'&1<=8[
M?/A8'=9G FU#M9F5#IJ],^^46Z&BUR+VD\R[:J(14PZ88(9!$\)3[%.)P%:B
M#%;IP7V!W1H1/Z@06DV$)C^\,Y':"2(K060(HCN"CXM=&# ;@VD-)DJB<.'$
M!O(?>-E8I6S64I"_D#)@XEF5,(W00LH:%*$TLDN)K5)BBY1%E3)>5?D0ILE2
MBP45^<$#,8E53+(2LTF7NY^LRR#TX""DUBJIQ?+BM):IY1NCI10;:'9:!BG>
M[)92X&?3T(13L4LK]7V81:>>^1SH6[Z(EZJ7#JWOG69HQ-\Q/S>M< Y,JAYB
M;OJ),0E*H_^DY-6J]T\+ B>IIXF:\Z$##@O)NK&Y>],?IO@'4$L#!!0    (
M  :!35 &BB8HH0$  %X#   9    >&PO=V]R:W-H965T<R]S:&5E=#<W+GAM
M;&U3;6^;,!#^*Y9_0 TF3:H(D)96U29M4M1IZV<'CF#5+\QV0O?O=S84L2I?
MN!<_]]QS9U..UKWY'B"0=ZV,KV@?PK!GS#<]:.'O[  &3SKKM @8NC/S@P/1
MIB*M&,^R+=-"&EJ7*7=T=6DO04D#1T?\16OA_AY V;&B.?U(O,AS'V*"U>4@
MSO 3PJ_AZ#!B"TLK-1@OK2$.NHI^R?>'(N(3X+>$T:]\$B<Y6?L6@V]M1;,H
M"!0T(3((-%=X!*4B$<KX,W/2I64L7/L?[,]I=ISE)#P\6O4JV]!7](&2%CIQ
M4>'%CE]AGN>>DGGX[W %A?"H!'LT5OGT)<W%!ZMG%I2BQ?MDI4EVG$ZVF[GL
M=@&?"_A2P*=9ID9)^9,(HBZ='8F;=C^(>,7YGN-NFIA,JTAG*-YC]EIO\Z)D
MUT@T8PX3AJ\P/.<+AB'_TH3?;,(30;$FV#S<)BAN$A2)8/.?RLTGE1/F/F%,
MPNQVV2[+LD^-V&HU\>7]$.XLC2<G&W#+:1>=M0&0,[M#NAX?^Q(HZ$)T=^B[
MZ<JG(-AA?LUL^:7J?U!+ P04    "  &@4U0-1;9ZN !  #Z!   &0   'AL
M+W=O<FMS:&5E=',O<VAE970W."YX;6R-5-MNG# 0_17+'Q #N[!T!4C91%$K
MM=(J5=MG+PP7Q<;4-DOZ][4-H63CA[Y@S_C,F3.#Q]DDY(MJ 31ZY:Q7.6ZU
M'HZ$J+(%3M6=&* W)[60G&ICRH:H00*M7!!G) J"A'#:];C(G.\LBTR,FG4]
MG"52(^=4_CD!$U..0_SF>.Z:5EL'*;*!-O =](_A+(U%5I:JX]"K3O1(0IWC
M^_!X2BW> 7YV,*G-'ME*+D*\6.-+E>/ "@(&I;8,U"Q7> #&+)&1\7OAQ&M*
M&[C=O[$_N=I-+1>JX$&P7UVEVQRG&%50TY'I9S%]AJ6>&*.E^*]P!6;@5HG)
M40JFW!>5H]*"+RQ&"J>O\]KU;IWFDWB_A/D#HB4@6@/"Q-4R)W+*'ZFF12;%
MA.3<^X':7QP>(].;TCI=*]R9$:^,]UHD89R1JR5:,*<9$VTPX8H@AGU-$?E2
MG*(/X9$_?.=5N'/A^W<*$S_!WDNP=P2[=P0'/T'L)8@]"M*;'ODPG_Q)$F^2
MY"-!%/@)#EZ"P_^7F7H)4H^"\*9,'^;V;Y+-W>,@&S=U"I5B[-W$;[SK8-]'
M[N[^@\^OPC<JFZY7Z"*TF0!W3VLA-!@IP9UI>6L>HM5@4&N[/9B]G,=Q-K08
MEI>&K,]=\1=02P,$%     @ !H%-4* 94\/Y P  EA,  !D   !X;"]W;W)K
M<VAE971S+W-H965T-SDN>&ULE5C;<ILP%/P5A@\H'%VX9&S/-$G3I$V:3#MM
MGTDLQTRYN$#B]N\K0'9 .NK(+S&0W86SY[ (%ONZ^=5NA>B\/V51M4M_VW6[
MLR!HG[:BS-IW]4Y4\C^;NBFS3NXVST&[:T2V'DAE$9 PC((RRRM_M1B./32K
M1?W2%7DE'AJO?2G+K/E[+HIZO_3!/QSXFC]ON_Y L%KLLF?Q373?=P^-W N.
M*NN\%%6;UY77B,W2?P]G]R3I"0/B1R[V[63;ZTMYK.M?_<[->NF'_16)0CQU
MO40F?U[%A2B*7DE>QV\EZA_/V1.GVP?UJZ%X6<QCUHJ+NOB9K[OMTD]\;RTV
MV4O1?:WWUT(5Q'U/57\K7D4AX?V5R',\U44[_/6>7MJN+I6*O)0R^S/^YM7P
MNU?Z!QI.((I C@0"_R501:!O!/)? E,$YGH&K@C<E1 I0N1*B!4A=B4DBI"X
M$E)%2%T)$!XZ%[H:"\=F@_-9#NT&YW[#H>% G2F'EH-SS^'0=-"['HP3/]Q"
MEUF7K19-O?>:,05V61\V<"994KP_.MR4PS_E;=3*HZ^KB-!%\-HK*<SYB"$3
M# $RQUR8F(BP.>82P_ YY@.&B>:8*PP3SS$?,4PRQUQCF'2.N<%JU_SYA.C0
M<([YC&%@CKG%,)K/=QA&NYXO&$;KQ3V&>>M%((?F.#D$GQPR*+"90H0K4%R!
M#@ITJ@ QKL!P!89<@S8)YR.&#YAJP !-HT0;AH\CK(^3-UP$*0<>:KV\,15)
M$FIZ7Q ]"D2*A7B%'*^0(Q4FN$*$*T3N+L>X0NS@\HB)IIZ$A&EWT]6( IB:
MG(2&P8B8G'(-=8>($6KU-\%K2Y#:4EPAQ152=W_[:4!#.'1P6(&FKG"2@IZ-
M""KFIL4(CC*>ZFF#H/I^63P&VT,&S/J83<,2-T!.\-D2.$!=?*9&S8SHS\0K
MA9I-W]P9Y;.IIL\Q)F4SQY*#@ 0A XN&)6F GV"P)6L@<C$X,H>*1]KH72H4
MD.GM'9O^(F(DU)YVGU$Q;AUC2PX"$H2,6#0L>0/)"2Y;$@=2%Y=3,T33R%BV
MC2B@TS&.L3E&Y*)$6[U]PN2&]+$X32R!2)! 9-2B80D= NY.$]L:!UODZ$XK
MT-0:^:#7%JW7"C5=-="8<=UG3"P)M5/>(V+<OK0@EC@D2!PR9M&P) ]A)[AL
M21Z"+7(,E[EIC#&FUPHU7^T9PXQHQ?I;QCTBE:8VARUY2) \9+9EMB5U2'R"
MPY;4(=@RQW X,0HVWID^(*"$<=U?$\1!R^1;!!0;$QQ,7F3[+U9W6?.<5ZWW
M6'?RK7AX<=W4=2>D8/A.2FU%MC[N%&+3]9NQW&[&+T7C3E?OU%>PX/@I;O4/
M4$L#!!0    (  :!35!'CSY3"@(  &X&   9    >&PO=V]R:W-H965T<R]S
M:&5E=#@P+GAM;(U5VXZ;,!3\%<0'K+F31(#43;5JI5:*MFK[[, AH#68M9VP
M_?O:AB "SBHO\869\8PO)TE/V1NO (3UT9"6IW8E1+=#B.<5-)@_T0Y:^:6D
MK,%"#MD)\8X!+C2I(<ASG @UN&[M+-%S!Y8E]"Q(W<*!6?S<-)C]>P9"^]1V
M[>O$:WVJA)I 6=+A$_P"\;L[,#E"DTI1-]#RFK86@S*UO[B[O>LH@D;\J:'G
ML[ZEHAPI?5.#[T5J.\H1$,B%DL"RN< >"%%*TL?[*&I/:RKBO']5?]'A99@C
MYK"GY&]=B"JU-[950(G/1+S2_AN,@4+;&M/_@ L0"5=.Y!HY)5S_6OF9"]J,
M*M)*@S^&MFYUVX_Z5YJ9X(T$;R*XP:<$?R3X"P(:G.FH7[' 6<)H;['AM#JL
M+H6[\^5FYFI2[YW^)M-R.7O)HB!*T$4)C9CG >/-,-XM8K]&1.X$0=+ Y,(S
MNO TW[]Q$9L%?*. KP6"&X'-(L: "36FU9A-&"^"K#%W<@1&&X'!QG9A8\!$
MLR4\?^%B#7&=R.PC-/H(USY"QRP0&06BQP\D-@K$#QQ(O(JY/I UYLZ!;(PV
M-H:-N".P-0IL']\(6<V,+\QYX%*,H/"S6V' K*\%FCU\58E_8G:J6VX=J9 U
M1+_TDE(!4M!YDE*5+/[3@$ I5#>6?394P&$@:#=6=S3]Q63_ 5!+ P04
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
M6FW-W-C2OV#O:#'.PXF7/T3U#U!+ P04    "  &@4U0RJ_!2[<!  #8 P
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
MTT(<QX+1YQJ"@P"$64%>[UL_E?F^/M46SD:=L[)*NS?:G9QOZX.S,;Z$FT=
MQI_T2;LY%[_)-\?TO^)\?\P*YT65^HQ2'R-V2I52AT^^Z, /,MYV#XG<E=5M
MJ._SYGC</)3JU![]O>[_#XO_ 5!+ P04    "  &@4U0>UF(WD4"  "7!@
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
MTUCI<0+$K. SLP+H80'AX[,9:.$&2KFM$QO9V]-L3N3/3&F@)1<(S17FF"!
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
M3F70J0PXE45.9<P4G0PQIV:3.2<3;COHM@-N1U5G[;@SDKSEO@#0"ZWX#0=
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
M(/]$'>3A(3$B@M<JQ":89'[EAQ1F/(<E8P1?<N@3E3! 5X$$]20#$/,+? 5
M$TYO2;YQ+^-/%,, 705*4Y+F_I4#@43XLD.(LENJP:O^ 1.@(HBOF@#72<Y0
ML-< EZ7,5QU2F(A;LN&/ Z: ;.K+IL&-/$F1\-_7)<!A%MX^ &8**;C@DXL/
M>2W;G6N2NFBMCHVVW\.+U;$1>R"V$?#6%[9!<PW"NYN^N_M1M+NRZ:)GI4V;
MX9J!K5):&I7HSNC;FX9RG%1RJ^TP,^.V[ZKZB5:'H6-,QK9U_A]02P,$%
M  @ !H%-4 =^O H7 P  V T  !D   !X;"]W;W)K<VAE971S+W-H965T.3@N
M>&ULC9?M;ILP%(9O!7$! YOO*HG4!$V;M$E5IVV_:>(DJ( S<)+N[F<;2H/]
M)LN? LYS#H]=[&//SKQ][?:,">>MKIIN[NZ%.#QX7K?>L[KH/O$#:^0O6][6
MA9"/[<[K#BTK-CJHKCSJ^[%7%V7C+F:Z[:E=S/A15&7#GEJG.]9UT?Y=LHJ?
MYRYQWQN>R]U>J 9O,3L4._:#B9^'IU8^>6.635FSIBMYX[1L.W<?R4-.$A6@
MB5\E.W<7]X[JR@OGK^KAZV;N^LJ(56PM5(I"7DYLQ:I*99(>?X:D[OA.%7AY
M_Y[]L^Z\[,Q+T;$5KWZ7&[&?NZGK;-BV.%;BF9^_L*%#D>L,O?_&3JR2N#*1
M[UCSJM-_G?6Q$[P>LDB5NGCKKV6CK^<A_WL8#J!# !T#2'PS(!@"@H^ \&9
M. 2$1H#7=T6/35Z(8C%K^=EI^W_OH5!?$7D(Y>BO5:,>;/V;')Y.MIX6F1_.
MO)-*-##+GJ$7#!D)3V8?7T'1*Y;4"J?3%ZQL(B93) <(Q1(![&>@XX-+B<3'
M"4*8(-0)PLE 1<9 ]4RDF:8?J"R0<] W^@NX-$PL+K<Y&OF3?!/Q"(I'0#PV
MQ&TFC8RO8'4'DR,FPK(QE(V!;&+((B8U9!&3&;(VDX8!EDV@; )Z:XZLS63$
M_!SN8'+$7)F%*91-00)C'BX1$QBR-G,Y:KWL[3P3V0S*9B"!N2HAQIB0JSN8
M'#$QEB4^7D-]D,+\:@%D#=P*9C*^[1Q"V17C*ZL^L5-0WS2V(6!\!Y0#*"17
MU@4"B\@CH<"8F,8VE(9FL8&097P;FAKCBD,"8&S.. A98VQ#P/@V-#7&)8Z
M&D>MS0""S'D'(&!\&YH:X]I&0'&CYA*,(&M9 Q POIUI:HP+'+&K#HE3TQB4
M+YJ8QO?4N/] 4V-<Y0@H/=0R1E!F&@,H, L=A,Q*YUUL;VO6[O31H7/6_-@(
MM4N\:!V/)X]4;8^-]J4ZMNAM\T>:_LSSO6AW9=,Y+US(S;?>(F\Y%TPZ^I_D
M=["7QZSQH6);H6X3>=_V9XW^0?##<([RQL/<XA]02P,$%     @ !H%-4(RZ
M/0BZ!   N1<  !D   !X;"]W;W)K<VAE971S+W-H965T.3DN>&ULE5A;<ZLX
M#/XKF;PW(!D,=-+,-+WFLC.=L[-[GFGC-ID#(0=H<_;?+[>F(,NM^Y* \^EB
M29^L>'K,\E_%5JER]"=-]L7%>%N6AW/'*9ZV*HV+2790^^J7YRQ/X[)ZS5^<
MXI"K>-,(I8F#KBN=--[MQ[-IL_:0SZ;9:YGL]NHA'Q6O:1KG_\U5DATOQC!^
M7_BQ>]F6]8(SFQ[B%_6W*O\Y/.35FW/2LMFE:E_LLOTH5\\7XTLX7XM&H$'\
MNU/'HO<\JK?RF&6_ZI?%YF+LUAZI1#V5M8JX^GI35RI):DV5'[\[I>.3S5JP
M__RN_;;9?+69Q[A05UGR<[<IMQ?C<#S:J.?X-2E_9,=[U6W('X^ZW:_5FTHJ
M>.U)9>,I2XKF<_3T6I19VFFI7$GC/^WW;M]\'SO][V*\ '8">!*H;'\F(#H!
M\2'@?2K@=0*>K8#?"?BV K(3D+8"02<0V J$G4!H*Q!U I&M +COF7,_1.3G
M(J=D@[65]W0#$A&G+:RF4J_C,IY-\^PXRENR'>*:TW!>257*Z]6F]IL?JVHM
MJM6W621PZKS5FCK,O,5@#R,#;XA9ZA@X(9S*A9,?R/HQ1]T&#$U<,9# 'V*N
M.8P<8FXX3##$W#(8$I4[3DTXQ-QSF&B(63"8T"71U3'$F]77\5M_NJ=!C@1?
M*Z)1( :U(G@-'J_!:S1X/0V!(%MM(7X#V;>%)#&*2+VM=!@*SZ=EN69@4GK2
MX[WV>:]]S6L9DN N6XSL&3KSW# @L)4. U^XI/K6.BJ, M^0+,D[+?50$[+,
MI1:<T!5(G+G241[(D!*/086!1VK]1D<) 2Y)VBVCR_> <.N.\]X3A.SW.LJ7
M$!'4@O$K0""16.HH=$4H22A6# PBE#3).@P"&8 ARP&?Y4#+<B1(..<M)N@9
M<B<>S3('0J+IF@61O-QP(""%<,MJ(EFYLW'\G@,)TE06K#E*81T$FN,K#D0I
ML^9 KB&Q(9_8D.DY9%?SD(L/">(5!](2RX)H8CF0EEA6$TTLZSBAT3T'HJ/)
M@C5'$ZN#JL02GU8<B,9IS9F+0CZQ$9_8B&$L;<R1WD%"*>E0H*,\+_*UBOU*
MV<#I>FIEQT27<9N$<-F!^N>6$-6Q;#AMP322@F8+/)+3>0?J;ZLZUQ&TN10T
MGP)?H"3%O?I:W]!W?HR]!&3B%!AT&,8L^,:<!89!"RPFK0XS&$:&H];0E&$Z
M IOQ")CY2%2[ E-L#%,-?#W6+($Y\WTIP/"'! Q'*UB<K4O06[V8H&^P9.CU
M8-'LEZ#W'C$QAL_0?,"B^RR!:2PRDFCZ0V=H&6C3,E!O&8;.A(9N@1;=8HEZ
M%P!P_<!$;S30&SEZ&_H_&NB-WZ W&NB-%O1&G=ZFT!J8C3;,1IW9PD>O-X<,
M;1F(C1;$1IW89Y_:,C ;;9B-.K//<.*:3!FHC3;41IW:M2D3WPS<1AMNH\[M
M,W3!-)P* [>%#;?%]\8!82"XL"&XT(]OOC2<WLU8JO*7Y@ZX&#UEK_NR)F5O
M]73/?(GUS1I9G\/Y ICU)9ROVUOD#_7MI?9?<?ZRVQ>CQZPLL[2Y='O.LE)5
M_KN3RO.MBC>GET0]E_5C4#WG[65R^U)FA^ZBW#G=UL_^!U!+ P04    "  &
M@4U0N@. CD$"  #1!@  &@   'AL+W=O<FMS:&5E=',O<VAE970Q,# N>&UL
MC55=CYLP$/PKB/<>F,\0$:2#JFJE5CI==>VS0S8!G<'4=L+UW]<VA"/@M'T)
M]C([,VLVZ[2G[)57 ,)Z:TC+=W8E1+=U'%Y6T&#^0#MHY9LC90T6<LM.#N\8
MX(-.:HCCN6[D-+AN[2S5L2>6I?0L2-W"$[/XN6DP^YT#H?W.1O8U\%R?*J$"
M3I9V^ 3?0;QT3TSNG(GE4#?0\IJV%H/CSGY$VR)1> WX44//9VM+5;*G]%5M
MOAQVMJL, 8%2* 8L'Q<H@!!%)&W\&CGM25(ESM=7]D^Z=EG+'G,H*/E9'T2U
MLS>V=8 C/A/Q3/O/,-83VM98_%>X )%PY41JE)1P_6N59RYH,[)(*PU^&YYU
MJY_]R']-,R=X8X(W):#HKPG^F."_)P2Z^,&9+O4C%CA+&>TM-GRL#JN>0%M?
M'F:I@OKL]#M9+9?12Y;X2>I<%-&(R0>,-\.@">%(]DG",TGDWBK=NQ4HUHCH
MCH)O+,+7^?Z\B, U$P1&@D 3!#<$:'$* R;4F%9C8B\)%I6L05$<)&8KH=%*
M:+"R/*\!$\U5[FA$1HWHWQIYM-) R1V1V"@2&T3\A4B\$@F]<-%^Q1J$@GM6
M-D8K&X.5Q9?+-RN5#PA%BR8H3"C7\\UF$J.9Y#]Z+5FU$4)ALC2S1MUTY.#%
MF4V"!MA)#TUNE?3<"O6?FT6GN?SHJ4FRB.=R7@_C]9UF&/;?,#O5+;?V5,@Y
MI:?)D5(!TJ/[(.U5\GZ9-@2.0BUCN6;#E!TV@G;C!>),MUCV!U!+ P04
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
MZ3'!!../"*34QQ"!+<0F6-"#^P#;)0+[]Y"=!1+8DPBM=8:&']W5&=L%(JM
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
M?5%9((IQ@DJ>5^%JX=<V:K609U/DE=BH0)_+DJL_SZ*0S3(DX77A)3^>C%M
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
MX4R/V_ZUUT^4/+B7;')Y3B__ E!+ P04    "  &@4U040 /G9D"  #8"0
M&@   'AL+W=O<FMS:&5E=',O<VAE970Q,3 N>&ULE59A;YLP$/TKB.\K/F,(
M5$FDM<FT29M4==KVV4V<!!4P,T[2_?O90! QQYI]";;S[KU[A\]X?I;JM3X(
MH;VW(B_KA7_0NKH/@GIS$ 6O[V0E2O//3JJ":S-5^Z"NE.#;)JC( TI('!0\
M*_WEO%E[4LNY/.H\*\63\NIC47#UYT'D\KSPP;\L/&?[@[8+P7)>\;WX+O2/
MZDF96="S;+-"E'4F2T^)W<+_"/=K2&Q @_B9B7,]&'O6RHN4KW;R9;OPB<U(
MY&*C+04WCY-X%'ENF4P>OSM2O]>T@</QA?U38]Z8>>&U>)3YKVRK#PL_\;VM
MV/%CKI_E^;/H#$6^U[G_*DXB-W";B='8R+QN?KW-L=:RZ%A,*@5_:Y]9V3S/
M'?\E# ^@70#M X#],R#L L); U@7P&X-B+J R D(6N]-,5=<\^5<R;.GVOU0
M<;OMX#XRKVMC%YNWT_QGZEF;U=,2"-!Y<+),'>BA!=$!R$$\CA$Q7$-6",1A
M68\A:9+TF, 8Z=U0U UM",(K@A0G"%&"L"%@PW) XE2CQ40-IFRKP4+&(J<D
M8QA 2(G#MGH7=I4U0[-FHZQ9RG""""6(;J];C!+$X[K%,^?MQB.GC(:XR P5
MF2$OQ]U"+28>EI,27"1!11)$)'1$DK$(+I&B$NE8@C)'(AU)?("(XBI \-8F
MB$[DMAQ!A"8*!A-'"+S?-.L.=%4S-HLGA/#N!CH22E-PA>A(* KCB78"_!0
MY!@@DU7!>Q+8[3T%>%="A*7A;L8.-32<3N:*=R\@[4M@8D\#WIPP^P^_>.L!
MTGN(WV1\_L;$-1P,/H#VSO.-JWU6UMZ+U.9;VGSQ=E)J81C)G>$ZF&M6/\G%
M3MOAS(Q5>]=H)UI6W3TJZ"]SR[]02P,$%     @ !H%-4,.>>TT/ @  : 8
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
ME'6O)MQMIY0%1YBL'&/OAG=Q.'36F_?.UM,3GARKAGDZR?*+J#\ 4$L#!!0
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
M_1"]R?(T>I<WU@)?17_)*ISJ19E]Z@*Q&^\:_X+]?2P>\_JS;V')JU].C>!
M]+XL/F7YZN24[XMJGVRB_R_;M4)S,)S/&K>(EGD%U[SUE>F@ ;<WQ0KF>/]0
MY%VH-)L.>N/!H#'5QVP/Z%?<1</1Q>UE=).N#B7,WKRZVRT ^69?K'Z)X0J7
MT:=D<TBCY_W!8!3MX%I7#TG96"I<C'66WT<W3]O;8M,8](>W_ZO^G2X@>OEY
M]9#D0,3:,/OMU<V+J__H /W/Z6;3^R6'(X;M)!7 9!V]KJI#$RA_3:N.,?Y2
M;. &)"5?S[+QV-NBX\7K0UDB26 Z0'L'C#ETS?,Z!]J5K/: NTB!$GW_"*V
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
M6K*"YX38PU"WXDAR'(^@10^536KBP4G#(6 410CMR.",0.YP3[GW#Q7; -O
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
M^T_8<43R0K6'#;>O\<N6> \*WUXM',%B<1C  % #$<KAKE#Q)PXD.VK94/4
MJ^WA^5F1K!^]:%M9ZSS!TMR,S9E(=&M.]'JO;+PN#)"*]81HRB^P5ZME6<S#
MF9"Z9=$U6Q=$3H _IRB+@NB"BZNBCOU](>1ABZ#] 1_AHZ_:E'#%#R^N[\T]
MBGG>FCXO=!+8<6BNC'];1O^A:TY:L B>-%4SI!CE2CA/7C[1J)J[5+4=E"6-
MQY0M'B'H0<HCX0SOCO>BQ0YTP$M6!RO%D5J^2U=XJX3?.,LJT^Z^E58<0J'4
M2MP*J"YHC]5#MF/9EY"K4M$W98^>GPOOL0P,E'V5((EN0]C,I*E4?.$(:Z:_
M4XC8F5614YGJ 4XM1UR_ \0@2_HG0KO@+3>7<;;F5G50NX0*5V5)9A"FVK2*
M+%@HSDHR/:CXAQ4K;']/R\(IFB5ER\2!J: 2E!9D3,*M,Y8E=*F?V'K8CW[T
M>C9<GPST.K[TS15F>SM<U7;K25<I>;$P2!:(F/"=8TBH.G \8\XWHH<' E1H
MBUI3"=S+!P4@)-34"63IKL[RB)_9E3R%ITQL)Z#]<7"^R%OI=NF:2";P\V=5
MZQ)A*;ES;"*@W)9@,:L-;A)]F7Z='>, J4G=."BS@&P.8A:< \V JP]##O";
M&N!C:R[1L?@<]T\[ I'"AO>^ E@"JQ-,58M:\ BPT7LDO?!;MDV#!SQRHJC,
MWI%=H>2!C7-_=^)5[>?B4-+ESIG3JC@#V($T,YP'OD1K"=G$$:OAXI&U46BT
M#RL&>0O9W]TAL+:!3)773E*!H\%P#;R[BRZRR\;]9S%Q+]:H"J6<$&(7&;R5
MT11;3&+;9+^DFR=&0.1TQ/7LJ&@"0=E8S7BMXVI*G-T[BW'[K$QK6(VB;U:1
M; ZKJ6UB7:25L-P=V<D*'?34@'7LH"OX94 U,CD\R@YB C,O]=+8:D$@1OW"
MK(GM7T1X;]/](V*=X6NZ5"7:(5T(8"GZ.&B7?^_BGK2WY$MQIF-[L+%8EXK,
MMDPIRI8MIG(!A:]?K-,[%M,K8="M>Y;WP_VM?+B(NRMPNJ1V;3;\MT+GG/.]
M/ =0=D3>VX9)"9JUT;!%MU+H6'/ MFC0,X4C%QGUP9DD PM(^GE/&80"8)*#
M/H$D4QPHNIT-RL"$2+W4\/- ;83S#PFN<#+'RMTAF]5X!=@D2Z(DYB74M#8_
MB5 >M?C,=@F<RQHM&\&F8,C;358]I";'(R'Q<-]FI"4Y:5<@O:(%!\C&B@F*
M"+AMT74TC[;]M(&U(2?R_-M.QCM)6(VEF07Q$'QUTT^3J9A5.[9B@"C\2@[*
MB5DNP-ZS#X N\49C35956N#H$J8CC+$LMB"EDFTV7\/P<)'=P8;*K*)/@-1]
M@X ,@4>X/:C)%'=W[FS@#;*YRY&)OBX.8Q+#6%EQ>CICP2%7$-Z*JB*HPT9D
MN##P&=@+PP[I$AHFTD^X3/A:5M+#E=3/R0J'";D 2M"'O&,CQ(=^9-)\@L^A
M;JUFO9+=)T*0?2@%':^8["AO/K1.L$A/1YZ43)S(O$RF\=VN+#ZK9X,])/2
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
M3P50<S%WX\!,3!R:D/,=SP/3\1H@XS!!]LFJ+\T'L@?1,8X^TLY8ZC2 L/'
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
M+HQ8XY*S7+0:5X[S"Y-D55T7NSKEL5%BHS<-:P-B,L%[0U%P&> U6#21-@F
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
M&"CDD CQQ1"5+27]39H_C1>#632#/5V@SJ-,X CQ'\U@;%#A+H;X@G"#!AL
M.@\L$&# PS)7J/,#V(ENG4=C'M'"'8"L>H<'<XOG /QY/)H@!QC%$W@?#G'&
MIS@#.7$*H/P*!.8DU(/'*4F](.IE+"?D^CV.["S)UH;R52#.O0LU_([>ZP!H
M8'[CBJ&"4 -"TOZA<2&BC]1SQUR*HS?&_-C^;>,F@;@Q!*8.X!^."?SS>+)
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
M9N,N/59U=?E68M>2S&PH?*1SF0@CE)*>C^9!%P^X:9SF)V*)KG5G;1>.U6
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
MWQUWL.5807ZD_?I:\NAX1D@S$94PUD;6LF:9@(F$]C['L) [3W_"6.,C)"O
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
M%M>4[MT4U^<7YRYA5.]]NIJ_P 9>277WH8VL-FVPIWDG67.<8439 JM9 $0
M$PS/4S>*6;'%^T$N(DL=H+(%B1$7-4_!6?$2!V>DC:9T%'*NVZ@,7IZ@]1:=
MJ7R+_JB/<E!V!L)"&40MZ!H[BR>@-/[L7'^T_.;M<@+&^,M$L3Z'Q<!8AW[S
MG6C4R6K@!F).%Z.R7&!Z[4+U^J1?C@<#79/<SN!Y,AE35"/HK!8M)\,A?DK'
M>#9MCW-Q\VERC-Z#DW+6']N0BO>G"J,ZEU8+LC8NK=840^*P@&=BP_E_GM+R
M6GYRKO&!^^S3\@&FLISV>CP4O"(P^=XP4S7%8-A#03U?X)'&7=$KOM]LYG3!
M5(->60UAX?U]#O8 7["<#ICL,":V)+M:NO7P>EDR4BWU@G?6.MWAB(\Z#+)V
MX9T^;^DZ4_,N*+Y]C])=0C"W ?P<7:WD0I)@>NE9+,$B9!J]_OY_UO</WUZX
MS<P@]?@-KUDW.T<VA7JR:<CX[ENF-M'PNY?4\*NPC\O?J:1"=96G-;7RCZY@
M^."<ZHHG1/I>W.U7<%+N4+J*JJO:77)EF,12Z%KVL=&MK/AH]K6*?$:5&DO,
M-NH-,<XL94S?_[(L?H'YP;KW$@$JSAT?:]4O$X+&?K$QR# J@&245OLW?0=@
MH73T.=:YX"+'Y)@SR@MG-Q8\C1$14!KNEA])*;5BRC!:4ZF#N*/WL"\W#+OV
MH"!2K (6I:MH92R0=:@.C<K!>)K7Q;@VONR-'<;F;4ZU)@V9M'8, POB:IN2
MGHUQ+BC!3$I=B>N;8)QO,8_I\\+I<[ME*)S19%[3R!Q7N[%4I"K?'9!#BE>F
MLDN9 RY-FPP%/)).PACUS?JS7_2G/DJTR=/SF&S$+T R'9UL*F_.NH%% \VL
MQ+D?OO=TY?32N=1!5&Y,:AK,[+\OMILP3[5&+ F4>Z8:2?E=\'L7<''"QOQ+
MHW>KJ&'BZL62D,88[BY!#8:+ M?+P9/88+;K6\JR(!7R!:>:]6T]OF8QL0%7
M[BMUO@F3T1PCR;D%W@SKRY<^W4-.5'#<*"E5T[8</%13':6UN8SNWKB-J_5S
M"?)3:;1U,4O:84IQ5R1"G >QHO"G1U)/!S6W:L'UT5D/3NFR+XIA?^#KLOW>
M$;ILE5 L$8TPI5FVZ62S*JMR@4+:TXI4.9R,8S6*+E#61([="5]5#>JDL11&
M9C==('(7A:<K^&J2KH9\IOZE>(?*XF:#%)EKXL+>UO#)8G>VPF *!?:^DG)@
MHO+G";/3Z@7#5K6@MG[)C/M%MUQRTR?XN].$*A!Z6PP*CA7KUV!'PUV,&:T'
M!#J"'%2C Q*]#_>C)!"5#AG$"8H7".DU3B2/(\Z3P8EI%K>4M6&O;T*8T1#
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
M=[VGLH1?2=S83UFQ8&Y8HC<DQG6Q )L]H6^P;2U:C*_K[3XQ\Z-2E<@[[Y)
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
ML0%HI ,MR%#/)Q4(5(I9+[I A I')JS-W;V&2=KMC<,[?#'7\,(T_'R=#JS
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
M-PVISQU671WM_&;/WA/*1+[X^?*JLQ/TJ'1W'A2<'D0L.F 5MY,KQ%LPKHT
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
M)9]M!&OPD>.F7&92KQTN=[SI)#LS'V9# RTQ@8GO_W/3[/[E_P%02P,$%
M  @ !H%-4#?!J-&6 @  =@\   T   !X;"]S='EL97,N>&ULU9?=;MHP%,=?
MQ3+3U$I30V!\="61MDI(D[:I4KG8766(0RSY(W,<!KW<JU2]V&OL4?8D\T=(
M@/*Q,CK!#3D^Q_Z=O^V38/<R-:/X-L%8@2FC/ M@HE3ZSO.R48(9RBY$BKF.
MQ$(RI'13CKTLE1A%F1G$J->HU]L>0X3#L,=SUF<J R.1<Q7 ;ND";ORUB'
M[\Y>?\N%NGH%W+/VIE:KWYU?K?K/;. < L?X& 70;[^%WM]#+^J;N3JV@FX]
M$[T=_@3??BY^*WT%WMD!__WCYX;5KB)KU[N[ _SK<0.W#*S%7N["/FS"/FS!
M=NH[L'VU 5L&UF)]@_6*Z@Y[L>!5D3>A<^B\B&$P032 UXB2H21F5(P8H3/G
M;AC'2% A@=)OE]9EP=F]"_NN95Z\@L,(%]+F=AG<[[#HOA*8MXQ 0FDIL &=
M(^RE2"DL>5\W;&?K?!("A3V8I5KA6**9WVC!:H!]Z"1#(2,LRS0^G+O"'L6Q
MD2/).#%/)5+/!)423!L106/!D=4P'U$8&CO"E-Z:K]+7>(D]C8'K8[:D#H%1
M,3?UK NSVC5;"MXBS;$7L:V]N" E$Z$^Y'HZW+9-X> ;B6,RM>UI7 K0=)2F
M=/:>DC%GV$UF9T)_SX1A#\WS@$1(<J]YIE1&VH$E!!,L%1DM>KY+E [P5,W+
M:1KOJ[EQ@IH/O<YCS+%$=%&TKOUC7N7_K-C\?_^S9OM9655\0)'-SO%K-*>5
M$Q#9/@61)['=W5,0>7D"(CL'^&J^O$C_^$4V7WJWO>*XMG F7#H1EEXPS E5
MA!=J$Q)%V.DQ1_( ?C$W ;IT+JL.AAJOT%!?@I?X>FR$8Y13=6.F:(,!K.Q/
M1KC?+GL-2D0 *_LSCDC.[%W'JV[:X1]02P,$%     @ !H%-4-_<[]4X"
M2DL   \   !X;"]W;W)K8F]O:RYX;6S%G%USVC@4AO^*AIOMSH2&3V,Z36=H
MH"DS:9*-L^GECF(4T-0?K&PG37_]'IF22,2\LS<GW)0"QCP1EAZ=HR-_?,S-
MC[L\_R%^IDE6G+169;G^<'Q<Q"N5RN)]OE89O7.?FU26]-0LCXNU47)1K)0J
MT^2XU^D$QZG46>O3Q^VYKLRQ^R0O55SJ/*,7[0NW6CT6+^_;IT+2 0_J1MZ=
MM#HM(:LR_Z*34IFI+-69R:NUSI8GK6Y+W&M3E)'][OK(5&<ZU;_4HGY6K/+'
MK[G1O_*LE$D4FSQ)ZD_9-^H/T3<4SZ_<*E/JV#NPE'?7DEA/6D&'3OB@"WVG
M$UT^G;3J_R>J17_%L?-GU.VP?=PTX@?S?YHQO[_7L9KF<96JK-RTHU&)_?:L
M6.EUT1*93-5)ZS1_4$9<R:6RV/0M\\7F3RBI<5ZXA/F@Z0TS7W0M(R//Y45T
M>3Z?3FYF4Q'=T,.WV<5-)"Z_B,NKV;4#V0.0O0-"_M-S(/L LG\PR-/+;U<.
MY ! #@X(Z;7D$$ .WQ#R\^1\<G$Z$]'7V>PF<@ # !@<#%"\NY(.Y A C@[W
M4T^BKPYD""##@T%&7R?N\#,&D.,#0GJ=IMM!(WF'%S.JTE2:)Y'?BT@O,TT?
MDUDI)G&<5UFI74PH'&;C7- ,@:81&4'%RAY;N&3(,EUFS7R1VHA;F51*?%.R
MJ,QK/.27+K=@9+$Z$O9?,?NWT@\RL71'0F8+,<\>7$QDF"ZS8@B%#J")F_):
M#OFDRRP4NMS6-#U\.A)7"76)39/9-ES;#[J42"I=9JN<TS6G"K%Y<*&01+K,
M%CG+\\6C3A*7!_FBRRR,.04#V=)^J9@4A?)[)W)$EUD2-,R:2M%E]9-.XO^
M/62%'K,53O,TU64]D-67_2F%4Q1_J2SV.V@/.:''[(1YME#IQECV/>L'"T%'
MN80P F%VPU09&G%M7$MC;5&::E<-/:2&'K,:KA6-N:2M:Q7G9'[[OHN&=-!C
MUD&TDD:M\F2A3/%'/>B63RX;\D*/V0M1F<<_VI]IO+7](K4=5^ZV'3)"C]D(
MLW2=Y$]*B4@^4)\M:GVY<,@,/68SW,B?_@""M-!CUL)WI9>KDG[&R8,R<DDM
M9B\[#P_)H<<LAT@M[1'U 'RF\J61ZY6.:239G,U-8"!7])E=,8FI>Q;U\.$V
M71^IH<^LAJBZ*]2_E6V]V</.F-M'1N@S&R%2B8KM)?=7)4VI3/(DONA,DE=E
M(J9N$J /LU+,:HCH'(N*IDOSN6C7T<U&L?92)'(7$VFBSZT)%+SZ*3YDC#ZS
M,?:$B.+=C200[]I$XNAS)ZA0J.BW)E)(GUDA3JBX;<$_739DE#ZS47#,*%Q,
M9)8^LUE^!XT-K3= )ADPFV0;-C:"(9T,V".-G?BQD1!Y9<#LE=U LA$0&67
M;)3F4*@1$ZYT,!NE(29J9$0Z&1PH /D-ZF(BG0R8=5)/]1L;#]ECP&R//7/^
M!A</D$@&S"*!<W_/Q0,DD@%[_NIE[B^\)VW;HN[*(!++D'N1 \VZ_05,I)DA
M>]2"IK-]%Q.Y9L@=PT#,@8N)C#/DCF$@YM#%1,89'C2&"5Q,N+K.+1V(.7(Q
MD72&S-+!F*&+B2PT9+;0Z^5,\6ZJ2JD3SY1#I* ALX+V1:WMS1S8Q40*&C(K
M:#_FN99W[@)V@!04<*^H- ;7VV58=](6( 4%W)5="-,S98 4%'#7=D%,UY0!
M4E!PD,7W+:9KR@ I*."N[X*8KBD#I*" 64%NXJ<MO#20'3M=3%CFQ:P@F /R
MNQ!24,"LH!W,G4Q5V\5$%@J8+;1-5378,4#:"=XFA=86SZERFG)<R:??,G>K
M^9!V1LS::<2\5K8XVN8X7$RDG1&S=IXS?VUQNI+9DI!U)LJ5HE')&'?I=X2T
M,V+6SNL\($V&TMR4MOY<S%U,I)T1LW::,&=%J>E,-O'A8B+MC)BU\RIGV;9U
M)L195CM+=B.DG1&S=IHP7Z[1[RXFTLZ(>_4&E>QXX_D(UA<S:V=/'ICZT6*A
MO7K3$=+.B%D[>S$OJ[+PYAHC9*$1LX7V8GZ6)'5W> ^1A4)F"^W_T7>K\4)D
MH9#90GLQSR3U=-?I(;)0>)"JLN=AR<5$%@K?OKR,&"_(YS6[BXDL%!Y@Q8>F
M2Q9GI\XW1!8*F2W4C+GIYDJX6UQ"9*&0V4+-F%-=R.72J*6+B2P4,EMH#Z:Z
M5\:0ZEU,N,^%>Q6HH0SR695>Q6&(+!1R%ZKM6Y#<3)D<S#&RT)A[%0AA>H'Y
M&%EHS+T*!#'=W-8866C,O0H$,=W<UAA9:,R]"@0QW=S6&%EHS&RAQJ+=EZ[N
M8B(+C9DMM%G3?QF!9/)<CFK;U,5$%AJ_2>F!'T[6^9G-#@$7$UEH_!;%T(1I
M+41A6J(WK4B@-O/QMXN)+#1FMM 6TTTA;:::-@!VTPECN-^2V4+//[J?0+I6
MA3(T578PNQV\XY+90_NNSM_3#P\4[KGL,)MH7ZT,H<LDKCQ0N 6SP^RB_:#U
M0.6!PLV8'6X;P;*>O@<*MV-VN*L2(.C  X6;-#OLV3E0@33U.Q/<I]EA=M(.
M6U11Z'9'8\#[(W%>+MY[H'#O9H?92A!T9^,ZW-398?;2#NC9K1:W](F*>OX1
M7:D>*-SDV7G+*KE=4+]%\;T N&\&L -ZJZ=:1$]%J=)"1.\G'BB^&P"SF2#H
M3HM",W'?'>#51J3-L/1J+;.+;Q+ ?9< 7"#I>0G?)H#[/@'>QJ17^Y*\#>?X
MY@&;NP<<UX<7GSXNU+W.U.*"OJ2@UV.:WUP981_J<_4&0[M/_+Y*$COUN<S.
M<VE?K\^QO8W5I_\ 4$L#!!0    (  :!35#5?]Q\2@,  !%$   :    >&PO
M7W)E;',O=V]R:V)O;VLN>&UL+G)E;'/%VTM.VU  A>&MH"P W_>C D:=,&V[
M@2B8)"(OV:X*NV^:25,)_'> SIT0(2+[3/@4.?>_^];OEM/V>!@WV]-X\[K?
M'<;[Q6::3E^Z;EQM^OURO#V>^L/Y+\_'8;^<SK\.Z^ZT7+TLUWWGC$G=<'V-
MQ</=]35O'I_N%\/CDUW<_%@.ZWZZ7W2ON^[7<7@9-WT_C=WEQ=Z>;W!^R]NI
M_Y_;'Y^?MZO^ZW'U<]\?IG=6_+W!HGM_D)L?Y.2#_/P@+Q\4Y@<%^: X/RC*
M!Z7Y04D^*,\/RO)!97Y0D0^J\X.J?) U(*/13R*L]5I;X-KJO;8 MM6+;8%L
MJS?; MI6K[8%MJW>;0MP6[W<%NBV>KLMX&WU>CO0V^GU=J"W:_!9FSYLZ_5V
MH+?3Z^U ;Z?7VX'>3J^W [V=7F\'>CN]W@[T=GJ]'>CM]'I[T-OK]?:@M]?K
M[4%OW^!9"3TLT>OM06^OU]N#WEZOMP>]O5YO#WI[O=X>]/9ZO3WH[?5Z!] [
MZ/4.H'?0ZQU [Z#7.X#>H<&S;GK8K=<[@-Y!KW< O8->[P!Z![W> ?0.>KT#
MZ!WT>D?0.^KUCJ!WU.L=0>^HUSN"WE&O=P2]8X/O*NG+2KW>$?2.>KTCZ!WU
M>D?0.^KUCJ!WU.N=0.^DUSN!WDFO=P*]DU[O!'HGO=X)]$YZO1/HG1J<-:'#
M)GJ]$^B=]'HGT#OI]4Z@=]+KG4'OK-<[@]Y9KW<&O;->[PQZ9[W>&?3.>KTS
MZ)WU>F?0.S<X*TB'!?5Z9] [Z_7.H'?6ZUU [Z+7NX#>1:]W ;V+7N\">A>]
MW@7T+GJ]"^A=]'H7T+OH]2Z@=VEPUIL.>^OU+J!WT>M=0>^JU[N"WE6O=P6]
MJU[O"GI7O=X5]*YZO2OH7?5Z5]"[ZO6NH'?5ZUU![]J@U:%8IT6M@[E.@U['
M4+!C&A0[AI(=TZ#9,13MF ;5CJ%LQS3H=@R%.Z9!N6,HW3$-VAU#\8YI4.\8
MRG=,@W['4,!C&HB. 6:3 A,3S :B8X39HL+$#+-%AXDA9HL2$U/,%BWF=8PY
M;I9#__1]&K:']?C94_ZY^,=SKBP?I[==__D[+E?]>,"5V]/Y-GUW^?GI_^V7
MJ_Y9T5W/&!]^ U!+ P04    "  &@4U07L]#PI$"  !A00  $P   %M#;VYT
M96YT7U1Y<&5S72YX;6S-W-UNVC 8QO%;03F=B.U\9RH]V7:Z5=INP$L,1.1+
MMMO1NY])VTFKF-2I(/U/",EKOWX2HM^9N?GQ.!NW.@[]Z#;1WOOYHQ"NV9M!
MNWB:S1@JV\D.VH=3NQ.S;@YZ9T0B92&::?1F]&M_ZA'=WGPV6WW?^]6GI^NG
MUIM(SW/?-=IWTR@>QO95T_5SP]B:?AGC]MWL/H0!T>K+,71QX=HF"E47B3>L
M\'KBZ3S,^_9@K.U:\U_1INVV:TP[-?=#F!*[V1K=NKTQ?NACM]?6M-^][<;=
M<]X[;?U7/83&XMB+OP;$U\OA'WMS/L!2N>3*/KP6YMQ22^'I4[UKP9>WH9FL
M6<\V5*WOSMQ>B'07JDZ<!E[R%LWIU6E-^Z;%0^OK_;"_)GM8OI][X'^*3BR'
M]SWUR^5((#E22(X,DB.'Y"@@.4I(C@J2HX;D4)(2A"*JHI"J**8J"JJ*HJJB
ML*HHKBH*K(HB:T*1-:'(FE!D32BR)A19$XJL"476A")K0I$UH<B:4F1-*;*F
M%%E3BJPI1=:4(FM*D36ER)I29$TILF8463.*K!E%UHPB:T:1-:/(FE%DS2BR
M9A19,XJL.476G")K3I$UI\B:4V3-*;+F%%ESBJPY1=:<(FM!D;6@R%I09"TH
MLA8460N*K 5%UH(B:T&1M:#(6E)D+2FREA192XJL)476DB)K29&UI,A:4F0M
M*;)6%%DKBJP51=:*(FM%D;6BR%I19*THLE8462N*K#5%UIHB:TV1M:;(6E-D
MK2FRUA19:XJL-476FB*KDA1:E:38JB0%5R4INBI)X55)BJ]*4H!5DB*LDA1B
ME<08"]J.A3&6LR&+LR.+LR7KFGNREF,\Z&[\5Y2?TW1X65\L_ZQP^QM02P$"
M% ,4    "  &@4U0'R// \     3 @  "P              @ $     7W)E
M;',O+G)E;'-02P$"% ,4    "  &@4U0)^B'#H(   "Q    $
M    @ 'I    9&]C4')O<',O87!P+GAM;%!+ 0(4 Q0    (  :!35#KBO\U
M[@   "L"   1              "  9D!  !D;V-0<F]P<R]C;W)E+GAM;%!+
M 0(4 Q0    (  :!35"97)PC$ 8  )PG   3              "  ;8"  !X
M;"]T:&5M92]T:&5M93$N>&UL4$L! A0#%     @ !H%-4(CSR%5T P  R1
M !@              ( !]P@  'AL+W=O<FMS:&5E=',O<VAE970Q+GAM;%!+
M 0(4 Q0    (  :!35 U?5!B(00  !P2   8              "  :$,  !X
M;"]W;W)K<VAE971S+W-H965T,BYX;6Q02P$"% ,4    "  &@4U0XO]CDJP!
M  #* P  &               @ 'X$   >&PO=V]R:W-H965T<R]S:&5E=#,N
M>&UL4$L! A0#%     @ !H%-4!7UL& ? P  E0P  !@              ( !
MVA(  'AL+W=O<FMS:&5E=',O<VAE970T+GAM;%!+ 0(4 Q0    (  :!35#&
M1H@F&@(  "<&   8              "  2\6  !X;"]W;W)K<VAE971S+W-H
M965T-2YX;6Q02P$"% ,4    "  &@4U0F/ 7"L$$   ]&   &
M    @ %_&   >&PO=V]R:W-H965T<R]S:&5E=#8N>&UL4$L! A0#%     @
M!H%-4&0M-;!5 @  2P@  !@              ( !=AT  'AL+W=O<FMS:&5E
M=',O<VAE970W+GAM;%!+ 0(4 Q0    (  :!35"[9VQAQP4  $<=   8
M          "  0$@  !X;"]W;W)K<VAE971S+W-H965T."YX;6Q02P$"% ,4
M    "  &@4U0&YMG%H8(  #$+@  &               @ '^)0  >&PO=V]R
M:W-H965T<R]S:&5E=#DN>&UL4$L! A0#%     @ !H%-4&XS6((< @  + 8
M !D              ( !NBX  'AL+W=O<FMS:&5E=',O<VAE970Q,"YX;6Q0
M2P$"% ,4    "  &@4U0E%7$KK0!  #2 P  &0              @ $-,0
M>&PO=V]R:W-H965T<R]S:&5E=#$Q+GAM;%!+ 0(4 Q0    (  :!35 ]VXF5
MM $  -(#   9              "  ?@R  !X;"]W;W)K<VAE971S+W-H965T
M,3(N>&UL4$L! A0#%     @ !H%-4%M 7?:U 0  T@,  !D
M ( !XS0  'AL+W=O<FMS:&5E=',O<VAE970Q,RYX;6Q02P$"% ,4    "  &
M@4U0=I5E\+0!  #2 P  &0              @ '/-@  >&PO=V]R:W-H965T
M<R]S:&5E=#$T+GAM;%!+ 0(4 Q0    (  :!35 QG%%$M $  -(#   9
M          "  ;HX  !X;"]W;W)K<VAE971S+W-H965T,34N>&UL4$L! A0#
M%     @ !H%-4([=WS2T 0  T@,  !D              ( !I3H  'AL+W=O
M<FMS:&5E=',O<VAE970Q-BYX;6Q02P$"% ,4    "  &@4U0:P,06\,!   W
M!   &0              @ &0/   >&PO=V]R:W-H965T<R]S:&5E=#$W+GAM
M;%!+ 0(4 Q0    (  :!35#YD\/WM $  -(#   9              "  8H^
M  !X;"]W;W)K<VAE971S+W-H965T,3@N>&UL4$L! A0#%     @ !H%-4*JH
M>B*T 0  T@,  !D              ( !=4   'AL+W=O<FMS:&5E=',O<VAE
M970Q.2YX;6Q02P$"% ,4    "  &@4U094?NBK0!  #2 P  &0
M    @ %@0@  >&PO=V]R:W-H965T<R]S:&5E=#(P+GAM;%!+ 0(4 Q0    (
M  :!35"R'AZ>M0$  -(#   9              "  4M$  !X;"]W;W)K<VAE
M971S+W-H965T,C$N>&UL4$L! A0#%     @ !H%-4"EL\#6S 0  T@,  !D
M             ( !-T8  'AL+W=O<FMS:&5E=',O<VAE970R,BYX;6Q02P$"
M% ,4    "  &@4U04=16BK4!  #2 P  &0              @ $A2   >&PO
M=V]R:W-H965T<R]S:&5E=#(S+GAM;%!+ 0(4 Q0    (  :!35#X:*ZVM0$
M -(#   9              "  0U*  !X;"]W;W)K<VAE971S+W-H965T,C0N
M>&UL4$L! A0#%     @ !H%-4(D_AM2V 0  T@,  !D              ( !
M^4L  'AL+W=O<FMS:&5E=',O<VAE970R-2YX;6Q02P$"% ,4    "  &@4U0
M H8E$K4!  #2 P  &0              @ 'F30  >&PO=V]R:W-H965T<R]S
M:&5E=#(V+GAM;%!+ 0(4 Q0    (  :!35"C%!!*M0$  -(#   9
M      "  =)/  !X;"]W;W)K<VAE971S+W-H965T,C<N>&UL4$L! A0#%
M  @ !H%-4+/+=,>U 0  T@,  !D              ( !OE$  'AL+W=O<FMS
M:&5E=',O<VAE970R."YX;6Q02P$"% ,4    "  &@4U0:,)GH+,!  #2 P
M&0              @ &J4P  >&PO=V]R:W-H965T<R]S:&5E=#(Y+GAM;%!+
M 0(4 Q0    (  :!35!!T* \M@$  -(#   9              "  915  !X
M;"]W;W)K<VAE971S+W-H965T,S N>&UL4$L! A0#%     @ !H%-4 @OEB2V
M 0  T@,  !D              ( !@5<  'AL+W=O<FMS:&5E=',O<VAE970S
M,2YX;6Q02P$"% ,4    "  &@4U0:&F(_[0!  #2 P  &0
M@ %N60  >&PO=V]R:W-H965T<R]S:&5E=#,R+GAM;%!+ 0(4 Q0    (  :!
M35  H4N+M0$  -(#   9              "  5E;  !X;"]W;W)K<VAE971S
M+W-H965T,S,N>&UL4$L! A0#%     @ !H%-4,3$R$.U 0  T@,  !D
M         ( !15T  'AL+W=O<FMS:&5E=',O<VAE970S-"YX;6Q02P$"% ,4
M    "  &@4U0 X%N@^T"  "T#   &0              @ $Q7P  >&PO=V]R
M:W-H965T<R]S:&5E=#,U+GAM;%!+ 0(4 Q0    (  :!35"Q/F43P@$  #<$
M   9              "  55B  !X;"]W;W)K<VAE971S+W-H965T,S8N>&UL
M4$L! A0#%     @ !H%-4.%Z&_K? 0   04  !D              ( !3F0
M 'AL+W=O<FMS:&5E=',O<VAE970S-RYX;6Q02P$"% ,4    "  &@4U0.OIL
MUK<!  #2 P  &0              @ %D9@  >&PO=V]R:W-H965T<R]S:&5E
M=#,X+GAM;%!+ 0(4 Q0    (  :!35"U,#IKM@$  -(#   9
M  "  5)H  !X;"]W;W)K<VAE971S+W-H965T,SDN>&UL4$L! A0#%     @
M!H%-4#TR: O% 0  -P0  !D              ( !/VH  'AL+W=O<FMS:&5E
M=',O<VAE970T,"YX;6Q02P$"% ,4    "  &@4U0L^]/\K8!  #2 P  &0
M            @ $[;   >&PO=V]R:W-H965T<R]S:&5E=#0Q+GAM;%!+ 0(4
M Q0    (  :!35#5E,4^Q $  #<$   9              "  2AN  !X;"]W
M;W)K<VAE971S+W-H965T-#(N>&UL4$L! A0#%     @ !H%-4"OYXJ'% 0
M-P0  !D              ( !(W   'AL+W=O<FMS:&5E=',O<VAE970T,RYX
M;6Q02P$"% ,4    "  &@4U05/Q9G>H!  !F!0  &0              @ $?
M<@  >&PO=V]R:W-H965T<R]S:&5E=#0T+GAM;%!+ 0(4 Q0    (  :!35!Z
M#9['SP$  '@$   9              "  4!T  !X;"]W;W)K<VAE971S+W-H
M965T-#4N>&UL4$L! A0#%     @ !H%-4' R=VO; 0   04  !D
M     ( !1G8  'AL+W=O<FMS:&5E=',O<VAE970T-BYX;6Q02P$"% ,4
M"  &@4U0%A%*K.@!  !F!0  &0              @ %8>   >&PO=V]R:W-H
M965T<R]S:&5E=#0W+GAM;%!+ 0(4 Q0    (  :!35#&Z32\M@$  -(#   9
M              "  7=Z  !X;"]W;W)K<VAE971S+W-H965T-#@N>&UL4$L!
M A0#%     @ !H%-4#GJS<2S 0  T@,  !D              ( !9'P  'AL
M+W=O<FMS:&5E=',O<VAE970T.2YX;6Q02P$"% ,4    "  &@4U0Z>5"!K0!
M  #2 P  &0              @ %.?@  >&PO=V]R:W-H965T<R]S:&5E=#4P
M+GAM;%!+ 0(4 Q0    (  :!35!B;[V&N0$  -(#   9              "
M 3F   !X;"]W;W)K<VAE971S+W-H965T-3$N>&UL4$L! A0#%     @ !H%-
M4 0NL^6E @  GPL  !D              ( !*8(  'AL+W=O<FMS:&5E=',O
M<VAE970U,BYX;6Q02P$"% ,4    "  &@4U0&+K"6)X"  !["P  &0
M        @ $%A0  >&PO=V]R:W-H965T<R]S:&5E=#4S+GAM;%!+ 0(4 Q0
M   (  :!35"W64L>W@$  /H$   9              "  =J'  !X;"]W;W)K
M<VAE971S+W-H965T-30N>&UL4$L! A0#%     @ !H%-4 ?=++K= 0  ^@0
M !D              ( ![XD  'AL+W=O<FMS:&5E=',O<VAE970U-2YX;6Q0
M2P$"% ,4    "  &@4U0H%P/B?,!  #F!   &0              @ $#C
M>&PO=V]R:W-H965T<R]S:&5E=#4V+GAM;%!+ 0(4 Q0    (  :!35"RH'F_
M9 (  -@'   9              "  2V.  !X;"]W;W)K<VAE971S+W-H965T
M-3<N>&UL4$L! A0#%     @ !H%-4.TMO?[P 0  =04  !D
M ( !R)   'AL+W=O<FMS:&5E=',O<VAE970U."YX;6Q02P$"% ,4    "  &
M@4U06B,H7H\#  #]$   &0              @ 'OD@  >&PO=V]R:W-H965T
M<R]S:&5E=#4Y+GAM;%!+ 0(4 Q0    (  :!35 @I*4<PP(  &X*   9
M          "  ;66  !X;"]W;W)K<VAE971S+W-H965T-C N>&UL4$L! A0#
M%     @ !H%-4'_Q88'1 P  _Q$  !D              ( !KYD  'AL+W=O
M<FMS:&5E=',O<VAE970V,2YX;6Q02P$"% ,4    "  &@4U0EAJ1,B0"   6
M!@  &0              @ &WG0  >&PO=V]R:W-H965T<R]S:&5E=#8R+GAM
M;%!+ 0(4 Q0    (  :!35![9+D[5 4  .,A   9              "  1*@
M  !X;"]W;W)K<VAE971S+W-H965T-C,N>&UL4$L! A0#%     @ !H%-4*'C
MG+ @!   (!<  !D              ( !G:4  'AL+W=O<FMS:&5E=',O<VAE
M970V-"YX;6Q02P$"% ,4    "  &@4U0\T&L,S8$   S%P  &0
M    @ 'TJ0  >&PO=V]R:W-H965T<R]S:&5E=#8U+GAM;%!+ 0(4 Q0    (
M  :!35!Z/M:B! (  'D%   9              "  6&N  !X;"]W;W)K<VAE
M971S+W-H965T-C8N>&UL4$L! A0#%     @ !H%-4"_"<M3V @  A@P  !D
M             ( !G+   'AL+W=O<FMS:&5E=',O<VAE970V-RYX;6Q02P$"
M% ,4    "  &@4U0D33V'AL"   !!@  &0              @ ')LP  >&PO
M=V]R:W-H965T<R]S:&5E=#8X+GAM;%!+ 0(4 Q0    (  :!35!6VI;6"0,
M -$+   9              "  1NV  !X;"]W;W)K<VAE971S+W-H965T-CDN
M>&UL4$L! A0#%     @ !H%-4(_0%[H  @  O@4  !D              ( !
M6[D  'AL+W=O<FMS:&5E=',O<VAE970W,"YX;6Q02P$"% ,4    "  &@4U0
M0+5)P<T!  ")!   &0              @ &2NP  >&PO=V]R:W-H965T<R]S
M:&5E=#<Q+GAM;%!+ 0(4 Q0    (  :!35 Z<5["!0(  (T%   9
M      "  9:]  !X;"]W;W)K<VAE971S+W-H965T-S(N>&UL4$L! A0#%
M  @ !H%-4**>^2*P P  WQ(  !D              ( !TK\  'AL+W=O<FMS
M:&5E=',O<VAE970W,RYX;6Q02P$"% ,4    "  &@4U0@%+[&A4"   W!@
M&0              @ &YPP  >&PO=V]R:W-H965T<R]S:&5E=#<T+GAM;%!+
M 0(4 Q0    (  :!35!#"1'D6 (  *<'   9              "  07&  !X
M;"]W;W)K<VAE971S+W-H965T-S4N>&UL4$L! A0#%     @ !H%-4,VGL?LS
M @  ;08  !D              ( !E,@  'AL+W=O<FMS:&5E=',O<VAE970W
M-BYX;6Q02P$"% ,4    "  &@4U0!HHF**$!  !> P  &0
M@ '^R@  >&PO=V]R:W-H965T<R]S:&5E=#<W+GAM;%!+ 0(4 Q0    (  :!
M35 U%MGJX $  /H$   9              "  =;,  !X;"]W;W)K<VAE971S
M+W-H965T-S@N>&UL4$L! A0#%     @ !H%-4* 94\/Y P  EA,  !D
M         ( ![<X  'AL+W=O<FMS:&5E=',O<VAE970W.2YX;6Q02P$"% ,4
M    "  &@4U01X\^4PH"  !N!@  &0              @ $=TP  >&PO=V]R
M:W-H965T<R]S:&5E=#@P+GAM;%!+ 0(4 Q0    (  :!35!_SN\"$0(  &\&
M   9              "  5[5  !X;"]W;W)K<VAE971S+W-H965T.#$N>&UL
M4$L! A0#%     @ !H%-4&(_:K^H @  S0H  !D              ( !IM<
M 'AL+W=O<FMS:&5E=',O<VAE970X,BYX;6Q02P$"% ,4    "  &@4U052C8
M^L4!   M!   &0              @ &%V@  >&PO=V]R:W-H965T<R]S:&5E
M=#@S+GAM;%!+ 0(4 Q0    (  :!35#*K\%+MP$  -@#   9
M  "  8'<  !X;"]W;W)K<VAE971S+W-H965T.#0N>&UL4$L! A0#%     @
M!H%-4)N,/L !!0  WA<  !D              ( !;]X  'AL+W=O<FMS:&5E
M=',O<VAE970X-2YX;6Q02P$"% ,4    "  &@4U0']\<$CD"  #=!@  &0
M            @ &GXP  >&PO=V]R:W-H965T<R]S:&5E=#@V+GAM;%!+ 0(4
M Q0    (  :!35""R5?+O ,  (L0   9              "  1?F  !X;"]W
M;W)K<VAE971S+W-H965T.#<N>&UL4$L! A0#%     @ !H%-4'M9B-Y% @
MEP8  !D              ( !"NH  'AL+W=O<FMS:&5E=',O<VAE970X."YX
M;6Q02P$"% ,4    "  &@4U0NEB%.',$  #V%@  &0              @ &&
M[   >&PO=V]R:W-H965T<R]S:&5E=#@Y+GAM;%!+ 0(4 Q0    (  :!35""
M+(UAPP,  !@1   9              "  3#Q  !X;"]W;W)K<VAE971S+W-H
M965T.3 N>&UL4$L! A0#%     @ !H%-4,89$@4* P  Y@L  !D
M     ( !*O4  'AL+W=O<FMS:&5E=',O<VAE970Y,2YX;6Q02P$"% ,4
M"  &@4U0S!-)=K "  !B"@  &0              @ %K^   >&PO=V]R:W-H
M965T<R]S:&5E=#DR+GAM;%!+ 0(4 Q0    (  :!35 MQT'$5@(  + '   9
M              "  5+[  !X;"]W;W)K<VAE971S+W-H965T.3,N>&UL4$L!
M A0#%     @ !H%-4&*WUY;F @  %0L  !D              ( !W_T  'AL
M+W=O<FMS:&5E=',O<VAE970Y-"YX;6Q02P$"% ,4    "  &@4U0G(K$WUT"
M   :"   &0              @ '\  $ >&PO=V]R:W-H965T<R]S:&5E=#DU
M+GAM;%!+ 0(4 Q0    (  :!35"AR>TC_@4  ,PB   9              "
M 9 # 0!X;"]W;W)K<VAE971S+W-H965T.38N>&UL4$L! A0#%     @ !H%-
M4$HJ]P[O @  P@H  !D              ( !Q0D! 'AL+W=O<FMS:&5E=',O
M<VAE970Y-RYX;6Q02P$"% ,4    "  &@4U0!WZ\"A<#  #8#0  &0
M        @ 'K# $ >&PO=V]R:W-H965T<R]S:&5E=#DX+GAM;%!+ 0(4 Q0
M   (  :!35",NCT(N@0  +D7   9              "  3D0 0!X;"]W;W)K
M<VAE971S+W-H965T.3DN>&UL4$L! A0#%     @ !H%-4+H#@(Y! @  T08
M !H              ( !*A4! 'AL+W=O<FMS:&5E=',O<VAE970Q,# N>&UL
M4$L! A0#%     @ !H%-4 'B,_@0 P  70P  !H              ( !HQ<!
M 'AL+W=O<FMS:&5E=',O<VAE970Q,#$N>&UL4$L! A0#%     @ !H%-4"3]
MFH\P @  208  !H              ( !ZQH! 'AL+W=O<FMS:&5E=',O<VAE
M970Q,#(N>&UL4$L! A0#%     @ !H%-4%*K1\8B @  $ 8  !H
M     ( !4QT! 'AL+W=O<FMS:&5E=',O<VAE970Q,#,N>&UL4$L! A0#%
M  @ !H%-4!!9?6HQ @  \@8  !H              ( !K1\! 'AL+W=O<FMS
M:&5E=',O<VAE970Q,#0N>&UL4$L! A0#%     @ !H%-4)=?-0P=!   %1,
M !H              ( !%B(! 'AL+W=O<FMS:&5E=',O<VAE970Q,#4N>&UL
M4$L! A0#%     @ !H%-4#1;F5/9 0  7@0  !H              ( !:R8!
M 'AL+W=O<FMS:&5E=',O<VAE970Q,#8N>&UL4$L! A0#%     @ !H%-4"Z
MN@)U @  B0D  !H              ( !?"@! 'AL+W=O<FMS:&5E=',O<VAE
M970Q,#<N>&UL4$L! A0#%     @ !H%-4/.O*]:F P  -!$  !H
M     ( !*2L! 'AL+W=O<FMS:&5E=',O<VAE970Q,#@N>&UL4$L! A0#%
M  @ !H%-4,.A,0+= @  6@L  !H              ( !!R\! 'AL+W=O<FMS
M:&5E=',O<VAE970Q,#DN>&UL4$L! A0#%     @ !H%-4%$ #YV9 @  V D
M !H              ( !'#(! 'AL+W=O<FMS:&5E=',O<VAE970Q,3 N>&UL
M4$L! A0#%     @ !H%-4,.>>TT/ @  : 8  !H              ( ![30!
M 'AL+W=O<FMS:&5E=',O<VAE970Q,3$N>&UL4$L! A0#%     @ !H%-4(69
MT+;4 @  & L  !H              ( !-#<! 'AL+W=O<FMS:&5E=',O<VAE
M970Q,3(N>&UL4$L! A0#%     @ !H%-4%(B?)&] 0  +@0  !H
M     ( !0#H! 'AL+W=O<FMS:&5E=',O<VAE970Q,3,N>&UL4$L! A0#%
M  @ !H%-4+<'82@-!   C1(  !H              ( !-3P! 'AL+W=O<FMS
M:&5E=',O<VAE970Q,30N>&UL4$L! A0#%     @ !H%-4(PE1E(; P  (PT
M !H              ( !>D ! 'AL+W=O<FMS:&5E=',O<VAE970Q,34N>&UL
M4$L! A0#%     @ !H%-4'L]A#DBS@  C#,# !0              ( !S4,!
M 'AL+W-H87)E9%-T<FEN9W,N>&UL4$L! A0#%     @ !H%-4#?!J-&6 @
M=@\   T              ( !(1(" 'AL+W-T>6QE<RYX;6Q02P$"% ,4
M"  &@4U0W]SOU3@(  !*2P  #P              @ 'B% ( >&PO=V]R:V)O
M;VLN>&UL4$L! A0#%     @ !H%-4-5_W'Q* P  $40  !H
M ( !1QT" 'AL+U]R96QS+W=O<FMB;V]K+GAM;"YR96QS4$L! A0#%     @
M!H%-4%[/0\*1 @  84$  !,              ( !R2 " %M#;VYT96YT7U1Y
><&5S72YX;6Q02P4&     'P ?  F(@  BR,"

end
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>68
<FILENAME>R73.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.19.3.a.u2</span><table class="report" border="0" cellspacing="2" id="idp6886130608">
<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, 2019</div></th>
<th class="th"><div>Dec. 31, 2017</div></th>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_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="top.Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsGross', window );">Gross Carrying Value</a></td>
<td class="nump">$ 93,474<span></span>
</td>
<td class="nump">$ 60,724<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization', window );">Accumulated Amortization</a></td>
<td class="nump">53,984<span></span>
</td>
<td class="nump">50,611<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_IntangibleAssetsNetIncludingGoodwill', window );">Intangible Assets, Net (Including Goodwill)</a></td>
<td class="nump">39,490<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsNet', window );">Net Carrying Value</a></td>
<td class="nump">31,290<span></span>
</td>
<td class="nump">10,113<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_DistributionRightsMember', window );">Distribution Networks [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_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="top.Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsGross', window );">Gross Carrying Value</a></td>
<td class="nump">38,060<span></span>
</td>
<td class="nump">38,060<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization', window );">Accumulated Amortization</a></td>
<td class="nump">38,060<span></span>
</td>
<td class="nump">38,060<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsNet', window );">Net Carrying Value</a></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="top.Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_DevelopedTechnologyRightsMember', window );">Completed Technologies [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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="top.Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsGross', window );">Gross Carrying Value</a></td>
<td class="nump">31,987<span></span>
</td>
<td class="nump">13,687<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization', window );">Accumulated Amortization</a></td>
<td class="nump">9,160<span></span>
</td>
<td class="nump">6,619<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsNet', window );">Net Carrying Value</a></td>
<td class="nump">22,827<span></span>
</td>
<td class="nump">7,068<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis=cgnx_CustomerContractsAndRelationshipsMember', window );">Customer Relationships [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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="top.Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsGross', window );">Gross Carrying Value</a></td>
<td class="nump">14,407<span></span>
</td>
<td class="nump">8,607<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization', window );">Accumulated Amortization</a></td>
<td class="nump">6,402<span></span>
</td>
<td class="nump">5,716<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsNet', window );">Net Carrying Value</a></td>
<td class="nump">8,005<span></span>
</td>
<td class="nump">2,891<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_InProcessResearchAndDevelopmentMember', window );">In Process Research and Development [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_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="top.Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsGross', window );">Gross Carrying Value</a></td>
<td class="nump">8,200<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization', window );">Accumulated Amortization</a></td>
<td class="nump">0<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsNet', window );">Net Carrying Value</a></td>
<td class="nump">8,200<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_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="top.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="top.Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsGross', window );">Gross Carrying Value</a></td>
<td class="nump">710<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization', window );">Accumulated Amortization</a></td>
<td class="nump">350<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="top.Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsNet', window );">Net Carrying Value</a></td>
<td class="nump">360<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_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="top.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="top.Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsGross', window );">Gross Carrying Value</a></td>
<td class="nump">110<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization', window );">Accumulated Amortization</a></td>
<td class="nump">12<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsNet', window );">Net Carrying Value</a></td>
<td class="nump">$ 98<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_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="top.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="top.Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsGross', window );">Gross Carrying Value</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">370<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization', window );">Accumulated Amortization</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">216<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsNet', window );">Net Carrying Value</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 154<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Accumulated amount of amortization of assets, excluding financial assets and goodwill, lacking physical substance with a finite life.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 350<br> -SubTopic 30<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)(1)<br> -URI http://asc.fasb.org/extlink&amp;oid=66006027&amp;loc=d3e16323-109275<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FiniteLivedIntangibleAssetsGross">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount before amortization of assets, excluding financial assets and goodwill, lacking physical substance with a finite life.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 928<br> -SubTopic 340<br> -Section 50<br> -Paragraph 1<br> -URI http://asc.fasb.org/extlink&amp;oid=6473545&amp;loc=d3e61844-108004<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 350<br> -SubTopic 30<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)(1)<br> -URI http://asc.fasb.org/extlink&amp;oid=66006027&amp;loc=d3e16323-109275<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FiniteLivedIntangibleAssetsGross</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FiniteLivedIntangibleAssetsLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount after amortization of assets, excluding financial assets and goodwill, lacking physical substance with a finite life.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 350<br> -SubTopic 30<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)(1)<br> -URI http://asc.fasb.org/extlink&amp;oid=66006027&amp;loc=d3e16323-109275<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FiniteLivedIntangibleAssetsNet</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IntangibleAssetsNetIncludingGoodwill">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Carrying amount of finite-lived intangible assets, indefinite-lived intangible assets and goodwill. Goodwill is an asset representing the future economic benefits arising from other assets acquired in a business combination that are not individually identified and separately recognized. Intangible assets are assets, not including financial assets, lacking physical substance.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IntangibleAssetsNetIncludingGoodwill</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_DevelopedTechnologyRightsMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis=cgnx_CustomerContractsAndRelationshipsMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis=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_InProcessResearchAndDevelopmentMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_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_NoncompeteAgreementsMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_NoncompeteAgreementsMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_TrademarksMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_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>69
<FILENAME>R83.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.19.3.a.u2</span><table class="report" border="0" cellspacing="2" id="idp6878198608">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>Derivative Instruments - Changes in AOCI (Details)<br> $ in Thousands</strong></div></th>
<th class="th">
<div>Dec. 31, 2019 </div>
<div>USD ($)</div>
</th>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AOCIAttributableToParentNetOfTaxRollForward', window );"><strong>Accumulated Other Comprehensive Income (Loss), Net of Tax [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="top.Show.showAR( this, 'defref_us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax', window );">Beginning balance</a></td>
<td class="num">$ (40,501)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax', window );">Ending balance</a></td>
<td class="num">(37,275)<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax', window );">Balance as of December 31, 2018</a></td>
<td class="num">$ (40,501)<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_AOCIAttributableToParentNetOfTaxRollForward">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>A 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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AOCIAttributableToParentNetOfTaxRollForward</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Accumulated change in equity from transactions and other events and circumstances from non-owner sources, net of tax effect, at period end. Excludes Net Income (Loss), and accumulated changes in equity from transactions resulting from investments by owners and distributions to owners. Includes foreign currency translation items, certain pension adjustments, unrealized gains and losses on certain investments in debt and equity securities, other than temporary impairment (OTTI) losses related to factors other than credit losses on available-for-sale and held-to-maturity debt securities that an entity does not intend to sell and it is not more likely than not that the entity will be required to sell before recovery of the amortized cost basis, as well as changes in the fair value of derivatives related to the effective portion of a designated cash flow hedge.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section 45<br> -Paragraph 11<br> -URI http://asc.fasb.org/extlink&amp;oid=114867106&amp;loc=d3e637-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 14A<br> -URI http://asc.fasb.org/extlink&amp;oid=114867106&amp;loc=SL7669686-108580<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 14<br> -URI http://asc.fasb.org/extlink&amp;oid=114867106&amp;loc=d3e681-108580<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>70
<FILENAME>R87.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.19.3.a.u2</span><table class="report" border="0" cellspacing="2" id="idp6857131280">
<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="8">3 Months Ended</th>
<th class="th" colspan="3">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Dec. 31, 2018</div></th>
<th class="th"><div>Sep. 30, 2018</div></th>
<th class="th"><div>Jul. 01, 2018</div></th>
<th class="th"><div>Apr. 01, 2018</div></th>
<th class="th"><div>Dec. 31, 2017</div></th>
<th class="th"><div>Oct. 01, 2017</div></th>
<th class="th"><div>Jul. 02, 2017</div></th>
<th class="th"><div>Apr. 02, 2017</div></th>
<th class="th"><div>Dec. 31, 2019</div></th>
<th class="th"><div>Dec. 31, 2018</div></th>
<th class="th"><div>Dec. 31, 2017</div></th>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_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>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax', window );">Revenue</a></td>
<td class="nump">$ 169,769<span></span>
</td>
<td class="nump">$ 183,325<span></span>
</td>
<td class="nump">$ 199,047<span></span>
</td>
<td class="nump">$ 173,484<span></span>
</td>
<td class="nump">$ 193,286<span></span>
</td>
<td class="nump">$ 232,221<span></span>
</td>
<td class="nump">$ 211,264<span></span>
</td>
<td class="nump">$ 169,567<span></span>
</td>
<td class="nump">$ 725,625<span></span>
</td>
<td class="nump">$ 806,338<span></span>
</td>
<td class="nump">$ 766,083<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_srt_ProductOrServiceAxis=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>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax', window );">Revenue</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">629,220<span></span>
</td>
<td class="nump">654,509<span></span>
</td>
<td class="nump">603,196<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_srt_ProductOrServiceAxis=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>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax', window );">Revenue</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">96,405<span></span>
</td>
<td class="nump">151,829<span></span>
</td>
<td class="nump">162,887<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_srt_StatementGeographicalAxis=srt_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>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax', window );">Revenue</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">277,155<span></span>
</td>
<td class="nump">265,175<span></span>
</td>
<td class="nump">214,338<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_srt_StatementGeographicalAxis=srt_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>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax', window );">Revenue</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">227,738<span></span>
</td>
<td class="nump">311,914<span></span>
</td>
<td class="nump">328,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="top.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>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax', window );">Revenue</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">115,061<span></span>
</td>
<td class="nump">123,708<span></span>
</td>
<td class="nump">108,738<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_srt_StatementGeographicalAxis=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>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax', window );">Revenue</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 105,671<span></span>
</td>
<td class="nump">$ 105,541<span></span>
</td>
<td class="nump">$ 114,181<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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount, 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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 606<br> -SubTopic 10<br> -Section 50<br> -Paragraph 4<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=109196051&amp;loc=SL49130543-203045<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 606<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=109196051&amp;loc=SL49130539-203045<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 606<br> -SubTopic 10<br> -Section 50<br> -Paragraph 5<br> -URI http://asc.fasb.org/extlink&amp;oid=109196051&amp;loc=SL49130545-203045<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_ProductOrServiceAxis=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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_ProductOrServiceAxis=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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_StatementGeographicalAxis=srt_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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_StatementGeographicalAxis=srt_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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_StatementGeographicalAxis=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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_StatementGeographicalAxis=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>71
<FILENAME>R77.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.19.3.a.u2</span><table class="report" border="0" cellspacing="2" id="idp6627942256">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>Commitments and Contingencies - Additional Information (Detail)<br></strong></div></th>
<th class="th">
<div>Dec. 31, 2019 </div>
<div>USD ($)</div>
</th>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_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="top.Show.showAR( this, 'defref_us-gaap_PurchaseCommitmentRemainingMinimumAmountCommitted', window );">Purchase order outstanding</a></td>
<td class="nump">$ 7,707,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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_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_PurchaseCommitmentRemainingMinimumAmountCommitted">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 942<br> -SubTopic 210<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-03(17))<br> -URI http://asc.fasb.org/extlink&amp;oid=6876686&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 http://asc.fasb.org/extlink&amp;oid=6879938&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 http://asc.fasb.org/extlink&amp;oid=6877327&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_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>72
<FILENAME>R58.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.19.3.a.u2</span><table class="report" border="0" cellspacing="2" id="idp6878186144">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>New Pronouncements (Details) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th"><div>Dec. 31, 2019</div></th>
<th class="th"><div>Jan. 01, 2019</div></th>
<th class="th"><div>Dec. 31, 2018</div></th>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_NewAccountingPronouncementsOrChangeInAccountingPrincipleLineItems', window );"><strong>New Accounting Pronouncements or Change in Accounting Principle [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="top.Show.showAR( this, 'defref_us-gaap_OperatingLeaseRightOfUseAsset', window );">Operating lease assets</a></td>
<td class="nump">$ 17,522<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="top.Show.showAR( this, 'defref_us-gaap_OperatingLeaseLiability', window );">Operating lease, liability</a></td>
<td class="nump">$ 17,973<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AdjustmentsForNewAccountingPronouncementsAxis=us-gaap_AccountingStandardsUpdate201602Member', window );">Accounting Standards Update 2016-02 [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_NewAccountingPronouncementsOrChangeInAccountingPrincipleLineItems', window );"><strong>New Accounting Pronouncements or Change in Accounting Principle [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="top.Show.showAR( this, 'defref_us-gaap_OperatingLeaseRightOfUseAsset', window );">Operating lease assets</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 17,522<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_NewAccountingPronouncementsOrChangeInAccountingPrincipleLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_NewAccountingPronouncementsOrChangeInAccountingPrincipleLineItems</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_OperatingLeaseLiability">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Present value of lessee's discounted obligation for lease payments from operating lease.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 842<br> -SubTopic 20<br> -Section 45<br> -Paragraph 1<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=77888419&amp;loc=SL77918627-209977<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OperatingLeaseLiability</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_OperatingLeaseRightOfUseAsset">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of lessee's right to use underlying asset under operating lease.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 842<br> -SubTopic 20<br> -Section 45<br> -Paragraph 1<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=77888419&amp;loc=SL77918627-209977<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OperatingLeaseRightOfUseAsset</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AdjustmentsForNewAccountingPronouncementsAxis=us-gaap_AccountingStandardsUpdate201602Member">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AdjustmentsForNewAccountingPronouncementsAxis=us-gaap_AccountingStandardsUpdate201602Member</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>ZIP
<SEQUENCE>73
<FILENAME>0000851205-20-000002-xbrl.zip
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
begin 644 0000851205-20-000002-xbrl.zip
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
M]0/US3+")=A6ZJ,F;!O=6U>(W<*9E=\:%2W HQO/>O%51RJ@(FL"5;5!FKU
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
M7[+?QZ)4J/##,EF"=WEP9XX6\/>__3]02P,$%     @ !X%-4-@5(35Z.P
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
MQ-^'1K^/7^/H.C[DFWYING;&@D;/N+0>62$8HCXF)"-1\W 6:K&*1+9YM^+
MY<B._-:9!.EZ;0Y??JSTA_N8]\O_:V<LHC$D")803U(B2SE%083L"/-@[5&5
M@FWAYCGT<W3?_-_UVNS7[O[XH AGQXETDZNK<IDR-PX+NE[&L2_W,.'P6823
M<3T9E2%K5L=V9,<^?O@<XXMIE ,(P$WUN)8EF(P,06%!D>)@"04*VA^/2B&I
M#/S",T.:F:Q]8M$@EN]^NP*TV> ]\<BP$!&./B#J@D#*DYQAX8UKYO+8J\JP
MP_(\EGHMB3)DU/?/7(+F3+'3BGYGF0(_PX /@X^^GR#?51&UNXK3?\9I _99
MTZTP5%LB83J;A 0<C45&&S"7&&8*2Z>];>$/'BARH#M>Z9940S%&UI_'L"8W
MZU_7N-^LD-)Y()5%EGB&/.4!.>TX4A;[R!13A+>HIS+0W7QG"]^2-$,M]+IR
MV)L%08/>A8\&$VX]PM9S)&.@R&7ST>(8/.8RR#;%SP:Z'.^,+?JAV%#<\FGL
MRM$H/R-Y^T+!9B9YN5,1O1>8 B6)B18%&1+B GM$O5:.1A=)[*;VZJO@C4X)
M]3-/:'CELI7E^KK2?UZL K]>85C7K4A,V8 U1EXIBV+R GG#9'Y1TQ%IG>>T
MQ:W'D)IC*T;HF$9#<<232N< ;J/DK_4="QD35CY(1+0!]C<^DU)B%".C.D6,
MI6TA'H94*UMQ1>=4&LZ4>/CD)\!]]LV/9J$<7S8HU]BD>V$3)I0JAJ*.N1:E
M\"A8"V:V=$:"2168:J%'#*ECMN*1GFCUXQ7O'%)S;+7BG93:['=5[QDXC8Z#
M9]L7(3@<B.:(4BP0M00CX7!$R2;JP;8FRK9X9VN8QYT[6.^NB#/8XH,F8_,=
MY=MHZ_@^D_@B?:H7\FD=$ZSK5PB:A%0D(L& Q2468%\9 <+,!4YX"EKZ%B[&
M81Y7[H(9.B;28";CO8K#X_!A.O'__#P9 >WKK.I.;];9CQNZ%I)IH@+'*"EA
M8 ,8#X:R%4@[^(_)&(0W^[O:;?8BP?WR\UA*B76P*&%.$+<)5/U@,3*"">XD
MQY$<?&YRMXOVV&QN1:P]L/QFA]G3Q@4-WKD0*3*$2V0QG/$J20]6('%<DX@U
M?TULL-U*O;SBNY-GZ!NVY3-%S>_6'G8H//6 ")P. :>$J&<*C/_D44HB@8!G
M&"CPBAA@IX5[X6JM-:4&Y(7\(,]6LN#%/H7FE()Z)Q#'&C0'0AERA@F46,[H
MP)29-B)A&+=I]QS1&;$&9HHW8S^YRM60MV"*IWV*0,#R\Z _FN0E\@XL?$<C
MAQ\E!]M >Z,/_CGB?IBB$V(-%ATV&4\KZZ>YD,K)K)X"Y-6*+#>;^:-)]X(
MOE90 Y1,H'3E/!VE+.P+307#7)JDV:'[53MFE9[HMA]C>PM^6=^QP,8#4D!-
M(HQ#1"F)DH\.Q*BW 4=GN&VA>PSC7>V84SJGV-"W-+?B\!YAUE_=;>A9!.8L
MPU@B$Y)"FFB):'04!2^PX4)2GUH</8/K(ZU,E.YI-;2A>G,^J3Z-?:RFMAP#
M JO<D&8^W"U&*7QB,>6P*.*-1=00@V( V"()D3$N+*&-/#8'HK)T8MKV0[?]
MJ;3-BH"NZ59@IJ/3#,[:*#B2E$7$(FP@K%G"</P2VR:2?7!MI167=$RH02^"
M[@O"QK=!SW8JG+-@S(F$E(X:24\%3&H!9P6K(PAAPOM7I):T8HE.R;1G?;49
M7VSJ6ZA(=4@IE_^7#%$2*"),1>2C"4)Z1YQLH8\,<T/<&7OT0*WA;.&-.9;/
MFL O]BH2]E(G#CLB>H("YZ"".:L03E1):9V+LD6TR."::O=W*MT2;RA&V>HB
M\3F**2D2B$.DO33(1>>1)42B( S8^U8XVJ:B^."*:/=LT0G-AA0;D_$<Y'E>
MW\5L6D_M.(=";1 ;+_0JA$C!$K#GP7B32!(G<KQ%0#*I&)A11.,6Q7V&N8)I
MNX3/"(KNR#68?7*;*?_.EJ!&G]@OY=2.[B&SSDK9V+D(B6HN, A&ZQ6*8)4A
M3H)#6$1-G,(@(EN4@QSF?.F847JAVE#\\CX741C'<&:K,7#V_>IJIS&5OERG
MJ&[N7%AAG!<V(LE G_/P V(T 0VH"R8Q^$I;5#L9YN#IF%]ZH=J _H\5L'.[
M++_G6,7/<5R7UW%AM>=R*W_&Z47:\)SM=B,5RFC.J4N(T C*F>$<L60)G.[*
M*"<5U[2%S3.,EZ1KR=,["0=,U5QXE;=5:M9W+#0WTJ3($-8I("<P1D[9@*(+
MRB4>E-0'?[W3,=-T3K$['NFC!-)+A7C>V6S;?X[3$D9]"% ?18 ^3.'KU=V[
MM>>CR=?]%0-ZOMK'NUB5D^PZK;(GY#0N_EUG$6PQ3&&#3D)HA7Q@&!F5'Q/T
M"2--8N!):$%D(Y=D/Q3)E0< C7?5Y+J$-3B^^51G+_*M<^@H/ZRT*3BU^2 %
M<0&[P"/B5B;D<I0SIF!PXN@=]H)B*@X^:+&_Y9\,2-?A<KT>4N3->)GOOKH0
M?3;O?0VW[39@@2,G4EN##"8!60>V)Q$>(R8IC292CU4W]3-1CZS7%T<\21H;
MB,1#,2'0[4ZO6R_)[MH5EN 8+>$(SF\'0U*! M$,*06H@5V*HQ&';K0/Q#%M
M"3>H0_CB2R9<SJ5>\O$FI_"3#@6E$HLD"1("N!ST/H^(51)9+8FD CLJ6MP]
M#V.?#\0:G5%PN'@HL 9].2?AVN"GNV8%TPYDG^6(*ZQ0<I8A@C5'QFG+5 J*
MBQ:.X&&L[('XH27=!O/87$VJ:?G?<S OTN,TZG4.FK4="YL"3L#@R%)C$=-8
M(F<#1O#76V*BPJ3%H3*,:3T0IW1.R<%X)P/XY@HTIBK;OB>?;76Y_C779SL4
M7'AIDHDH6*T1U1K(*"-'1%%/O =K(K6H<S%,O,)0O-(5!8>,B(OS%7G Y:=E
MO4AA MT:E.ZK<G95-ZNCM-N !4],,QH$BC2%+(8=$A%S%'UD.BKK,&UQ,Z6^
M*[MH,!(/5E[#EN.LL5^,<]'2+&.;<-J:7@43VAAF$LJX(1:X1TYI!>(Y4.XH
M5U2U\!SK[XJ=NJ7C4#QS/*O+<:SKD\F5*\=S<MZ& TVS[Q=(5BT7KH(3>^'^
M!8$,W[[).P=VRD5ZH<MM'!I9PW\#05"8X'S2S"#N+($5I0YIPRGB7EMC-+%>
MM.!E\ST=OX>[)/OS<S[)^%BK C;J7VA!+29<(XUCAB(JQ$6$A>)&2Z%,Y+)%
M7 #!WY5\[8ND^V.IIZ6CM^*HI]T+D8ST8"PA+5)$QB0))X['R%-OP/I6.(86
MI7C)]^X7[X2B^^.G9\K+;L50S_0O.+$A.>H1;!Z%K,S77M(IE(B1/*G M&ES
MT4*_<X[JAJ3[8ZE5D?/U5\9K^Q6,\40"8TAY&Y%*@2(3-$/.,:V2IXF%%C8I
M8=\Y"[4CY?Y/MV7UEIV.MF7? EMF IU7LY0!10O6MY5*(DZ4X8X'JU.;<^V[
M\LCW0<V]<M&CBB_;,M*C[@4-2L:8! H^YDPYH*UD%,YV9QW0Q4JC6V05DN_*
M9]\30??.3O<LAAW%T_.C%%$:2X1/R#KN<L49"U11&&&GI%'$86W;1$1]5T[^
M?NFZ?T_!^P@']RR'U:Q*S1R%ZQR[F3W+I_%+3OG?S8?0:&0PA8DE6G/$=/*(
M\>A1I#X_+I&\2<JJA%O4_R'#E-3=NW.A+UKOCS_G05ZW!%PFZFQZ!JKI((4%
M(T9J#*" V$<YD!I%HH 221J,A<!@3+?@NN_KSJ!7N@X8CO<<K1;W'RVCCI\9
MI*!:"A$91]P8(+AR"7G!$Q(A8F-PP%X>?"#?OJ..NZ'K8(DQ]F;QTO/DR .U
MJMCL9G-=M\+PF'BB&C'I,8K.>^0I[%WFF#)2.TYY&SFU5S'5>G4?9\MT2\CA
M\JDF/L90GP/=\IWL'W::'^Z\F9<\&(VBGU=<:GI/OL-HA=7,.^T4HM1A9".(
M;^,)0SBQE!SL7AT._IG[H7AL$/+N36*]^.;3-O+KQ4$*&;1)E (<,438B8ZB
MY&T G83[2"262;:(6-VOB[5W:=8E6??&8*L[^[C(=)TK&(M/PC8LMF:80F.;
M:TTI1#3QBV<K&3>@C 05DL=*QS9E0OGWS63=$G9H-CN?5/<%]!TRL%W>C*>Q
M N*]&1^E5(Y*.UVKZ>\Z9)&$YTIIAHB E< 2MJ7FN2BB%TXG'9)I<X\DODOV
M&X#(>S8SS\NQ'?N69N8S@Q0@^HF*E ,1P.#"$H<<F@X:+J?2*VU$%"WNG(9)
M"MJWF=D-7?=A+[RIZUGV\EVD#Y\M[))/8U@V(!G0K[S.WL#YKX^!;B$7G(CC
MVJYRHFIHMGB2[UZR5%/+HO-YBQBYI%P9E+#,58@31RDZ#D3G7/$(Z]KF">9A
MDK3[8J\U-L@A+,0>3OGW\<NL\I\!K1S V:1>UN;.1>#64&D4"CB;:$8ZI"FS
MR 5CA;28.];".MEO#%'G/-@'.8=FI)Q%D:DT#O5V3/1\QX)DG<?/GV2 +\E+
MC8)/"2RRI*-*L*%"B]2I_9JW?3%09Z3<BZT1K\O)K)Y;2(O*Z$TMBB<=B_S^
M3Q &#"L#VK/5 G9*P@)QEHPUQ##5QM.[7[.U1^G3#2F'8IZSE*('N_KLFY^G
M(;P':^9B_+S^NX:5MAFFB"!^C=8:::E &.>W-^&O1!BG*!E.M-63;<,$I0UF
M(?1,V<'J;SVH@?6TU-Q#J(:LAO44E@;U!]?T*GR26 26"\!(A6C".5C9":1"
MLI)K@G&SF_S>W $'5P1FH(I57:W9*ZWZTJ3*X[N<T0MK,YU6I9M-<PS9Q\FB
M6MX:7FDY<B&,Y,*"3NXCD,M@C&$)I("3UZ40'"&MJG,.%)G0$W<-3]M#X,=3
M.$BO;?88U/\QLZ,RW61=K?[?,5S&)O5A6X]=),ZI$I8C:@Q'G&J"%,N5+9-5
M*@@&*MO!ORL[*.]LP;=]K<"^.??3&/2]4?G?,=PEM=_#]:@">V!\>3JKX.M"
M56S!RKM/5F"NH]>8(JK OK$,+!TXEBP27B8&5@Z(JFZJ .Z)MWO@KX;</>BB
M[)O=,WKOHQ_9NBY3Z1=\$/[?;!%FDIW!1Q<G;QX0H*7HWG&V@DA*+#$2<:LH
M(MCQ?"4(7[#*]=<2J&S=A#[VZ<HX3(X?=EGVS?)'U[8<Y3,R3:H:C.X/T>=H
MJ_RJS"W._>C2'<U<>,48\]XBIG0 -31Y9"-AR E"G77)A]A"KQE&USY$O69_
MZ[/O/9&I?HO]^:3ZL '['67_-E,4*LF0:^TBK[B&(S0II.!<A>\P2=@[JMS!
M7]X>%*=M<1KTO%"'P.Z;#[PE[A?I#OO>=9\U<Q8"D+2>4Y0HM4@GP)=BAI'C
MS J*+8]M$BSWK $=^HX8>NGVO44 &^"&\>+1=W_SL;+CVLX#T8_&8?[3Z!$=
M^M&9>H&CH,8IK")'6LE<R- %E",.D2(>4Y4X!>WBT /<#E&#.I35VO?NR6NP
M.RUV/%UVG[!P6"NOG4,1)S#EO$I(:^91)J^@@5'%#_YNZ(!Y<HMS9M!%/)2;
MXSV^Y;3,-[X7I3KX]?5^KW-[BDE9OFWX+E;S8-'3<C2;KDW'>:%'P7$BR0N/
MM(/#B2LND0\N5Z&S&#8<Z'JLT0,5P^!Y;.O2;X'EO'U!(RBG'*0'Y0SLII@,
MPBX$.(J5H3P)$:39'X[WA!,(W45ITQD@<;=UCK/6'N_5+OFC'$]R!N,JSV*>
M<G%_E,4[=G_$Z><<:],D!W5 * IB0K)!4B0L9RAXSQ'F-M.&*D8]B<$T<CWT
MI'2L2B0TDAK/M"Z$UP8+A9$PF"-E5,Y@#O!%.".#3Z 7'OS%Z,'RP^/#OA/Z
M#Z70_EX!?.^J25K[[N^]5D5(<-1(#6:$LA8ES#DRWEGDN8[*$QY9F]K2 ZF.
M;=?H<3WT5O09:JV7Y7U6VZ<"-?.O<OIY5>OG[-LRDR._2 '_A_66R0ZC%<1+
MS'W*CUH0./>( 4)3)Y'1+F+"L$^'[^+=>:V?O H]!/V&XJV320U6R>^32<CI
MEA]B=5WZ6'^8C-:I@"]WRI@*"W.A%'1$C 8%. >#O PD"$6,,"T<-@/Y/KMB
ME4[I-)RTJ2/,]7E>.NPZCB;S,@.;WZU;VZ\@)->BC@)Y(2.*2EMDHW*(**.-
MU411?/A\T?7QTS7)AF*1#W$$8U[^'L= CQ% ?Q2NRG%93ZMYT$&#-PX;#5!(
MPSS/$?Q1)@O;3@LD+1B7REE+95+2B1:QJ@.E5'7--+W1;BCN>=ESMHKC6A@$
MZ]68+48I%&?1.P+[)WB"X.!E*"7*@=PX,>85$:Y%589AXC!>BQG5[[H,5Y%R
M18UE>/ED/%GMX[6^CY>[%9PD(2RH?C9$C' 4"BDL!+(>$] FC**D123H,'=9
MKX4+.UZ(0:^I[L.Z@'[S@;J^(V <C4PZ.RJ-03I$C22H$(BJ1+P*/"3937KI
M3];K?BGV<OES1]4]WOG,/>^?P5R*5;U8JGW//P@QKF/USEZ^E*;9<OB[V. W
M8] 99P_<^0-,=13"/$_;CD[CU):C>OG/D"#,7_,%87#OA8!W(!_@LQ@NQG_&
M:;[MJ4]G\>/D?99KL!U2@C[K01WBG? 5-LW>FGBV?:&BC@0G#<(G^*QU612C
M52A:'AB63#:L_]\WCN>VK/YA1[-XD9XB<M,([?5#%%Y0Z:-7B%HC\X.]%,@A
M/')44,]BDCRU>?5GD&.Q@S5^\EQZ;^0;2H]Z!MI<H!4D.YC,\RT-.SL'"I97
M.:U_L;NWVD@-QBN8I,IA C8W9@;!&@!]) -X<0C,&[# 18M77 ;R>?7)7_T2
M<WAF6QPLC?AH^:(\UM1:[2FR6!!$G%,H<$Z0E<$PQQ(7S1Z-VHLLGN.PNQR>
M=R]@-8%?$@8**(RB\F"186>024;FT"V'8YL70 :6P;LLZW;B=U>J[6DWW.WL
M"S<J+^?4S-M[.JO&6XK>+<8KHB LJ!B08T$@22)%1G&/B,1$<0J+X%OX6@87
MO9VR5;]T[-5:?5:=/[:C7 3QP^<8IV\GBZC_X8V*Q<O2]9OQT<27PT^_<J["
MP0G-<U+T\IV6%Y-8AX;P8C:MIW:<K\;/)]576X75]?D>@/GXX.79;B<\N_HR
MFMS$^,%>SR,(@3L'F^C.NGXS3I/JZMYFV,%J]9?C;UG.&T*74C[_9EY^Q8YO
MYLN7XZVSE^@?V;TV/1N'BW0^F57_&6WUG"*T5?\BD!A#("1K>A[%H#R<<A(C
MC8UPRD2L?:.G*;K!Z^/7209K1ZR6O0M/C)3)@;UDX(M6FB"1Z],L<;+6RH,-
MP^IQ]29#4'*S#K0C9T#GV(;E[P8HHC:$>R%S^4*)A&8).8?Y$JN0B-#T4.\J
M#X0_VA"S5_7E5J'_(]IZ5L4>?:_/3O6<XW/Y>3B:WID;X_<Y,S+735DX0M>=
M'WW ^0QXCV'Z-)ZX.E;SY\K?C+_,IEGQ&?OY$P%]ZW_/PMRG1I$CR+Z6HYZ6
M8#7ZK09[8JLJUS19VIZKS_MD@]4<?5+Q#0QR-;Y-#)Z7J:W7)!3U-=V?0-ZY
M/MHKD[X9@[)]60(Y'WJE^IWEZ"JGXLVMCX<?[*R#=A1S5([AR'H+1'\"V?I7
M1==W+ )SP5/LD?!"(^DB:",*SAML?936J$1)H]-Z<*SG(:Z[X3WO6BC+34A*
MYM=DX7QUUH(*%@*BT5@54]"LU<N]@_CMNES<QV%0W=-OL/B\ET$_\GYVE5<+
M](7%3I^3>3<^>F&PPANJ3+Y12%12E C'2$D#ZEOT'.=W?WBS1,*]^N[VPUK=
MD;17/?@QV&?UM+QZ#/0R8.;#S.?W3K+7J*QAKKEB__,T.:S3Y)EU^Q/6X^/7
M.+J.?X"=]GG'LZ;!P 6G+$KG@+DY"\@P O138%8*$H2@U%%K6[S<\CV?1/U0
M]Q#.J:>(9;GQ\>ND,S9<CE=0[0U)S"&F<,[2D EQ8@R2)G(BI;6NF8]RG['E
M!\-]NQ/U@)DNNZ.Z9;L\8I&4,I)3#90!+1)6(<*>Y (I8S&500NNNGE.]X=A
MO!W)>KBLEWVMG7)>'K!0).<L8H9TM DT2E@?I:4#91)S0Y.CFAS\DS('Q7@[
M4O6 ^0[:=LMWT+;000KJ4D )S!G8E X@Q4$B9[#GUO!D9(N8#O$#\MUN5#U,
MOCM*TUAUSGP/1BUP5& INP :B='()@]F=/+Y[HH:::-)AK0(Z)0_%@>V)>V@
M'HI^[R6NXQB8I!Q@@GO?[MF'LH+D9KW'Y'ZS0DKG RABR!+/D*<\(*<=1\IB
M'YEBBC1[)Z9GC-[;KW_DV+K2CA8%/G.>?W6]-E5C<^<"=I_QT8)1Y$$SM3P(
M9 ()R%N#:1!1B\-_%VSWY7PFP;-S>@V973P'_J])]<\WX_F3SO7VK/)R[P)3
M[[24'F&7'38D"= K T.,*AJ2UT"11H7J]IOQWC6O=$JPP9DE'Z_UYQCF]62V
M9I:7>Q>>AH UQRA$K!#3S"$7HD%@=% C&.4&MTB#&BHQO6MFZ91@/2LKMX=Z
MGWK*V_R^:K^QNHLI%E_[G.&#AX6=Y1KPJ\>$]YW:^3;7"HNWM6+F8-ZF1]T"
M.5MGV30=HN"!2A< #,X\1\)H@C /'&D6<#2,:DL:[??]4F*+"Z9=ARR(T9Y)
M3I'2<"I8!422204$>Q];1XTCNH7!-XS*U0];3/9&X:'.W:8H;;Y8VG*D(N($
M,.70$"PBBM0D9!TV2&ANHQ5&&MS-^R$_"M?M3MB#9+8-%TI;CU7HR$242B!F
MA,@O(0I$G/$(E)P0.,%&MGD3>!@%\/ 8;D?2'B++;;A(VG:H0@L:E$Y !NX,
MBB(YE(*P8)_#"< "-[*->3K,%=+!,=R.E#U(?EOOP]]VJ$)9J26W% 4!@I_R
MJ!!1B2 E@O V8*9C"P$WS-71X?';;I0]-'YK>G&TTWB%U5X)(6$#)NZ1X[ ?
M:01UUU'BD^94*]NB<O8P5T8'Q7EMR=NK)^:Q=^$] &U'[Z./Y9?#\#%,JH<D
M7E'VX^0XSN&\7OOX2],A"HF5(CB"JAU31#+FUV!2)"@JY;B%#YW:X\L<3='8
MTL>PRY %HYA+#B:OFC\L$RC(4J42(@0'KJF%_72P"<']LL4S$F(@"@]Y1C5!
M:9GRW 7_K88J9))>)&WS"^ $4>H4\B%1%#W!*B3&3#SXP-6#XKL6E#TX?EN7
MT+[[8(5U@1$1&?+.8L2UQ* W*@7+@&G0@:44#CYF];!XK@UM!U"%^KR/^C-^
M?5=-QI/9V/>92?]DFEYOP& J6'30>$=VG.L5Y[*S\U<A!IYN32&9H3%_\8,]
M1S"]"-?ZB*9UW8K$%!C-&B.OE$4Q>8&\83E)U#@BK?.<-HIQ'1CC3=G$ZSL6
M2DM)$VADU((I)X+4R%DX/Y7A*@8PXEP\^,BF[I9UTC/MAE(V[B6CGL8O5?2K
MTAQ?1G&^1.,'^9X;)=\S?-75% 6V6/M@#=@$CL&1:3UBR1O$+&5>JF"<Z489
M[C/GN#<6W".9>]517@2T3[5E^7[<LE#?_?3YON>Y7RCQS=47ZS<4-.\<@%-0
MA*LJAN4G0/'5JWG 2I.ZG-;O)Z-16E0''!JVLK:7EU5<E,(\OOD]3BXK^^7S
M37[.&^8>&)S;(C']JIM/)[Y]_^#^&Q![X98^-^'*1?NFS$6.[%*(_<?,CLJ4
M2Q^!Q .%OR^3HNGL?59<^A OYWK^.*PXO?3W5/V]3+I]]<I^X;GOR+]]]/,,
MYJX Q)7HFM=3FX"-GNWQ1;;(G?3(SX0<56 *[Q&+7O=1'$4/:@'P;@5D&>6H
M63AC2CLZM5/[:6QGL*(Q['7R7L560QAZ78.!7LEY.L_P^W4Z\?\\MG4,N09D
M'-=]RJIGYUHEKQT&YJL:.>L^W!]4V6RI;N9Q\].J]//'E:#]Q9>YK/>@W0 /
M[1^\0P+JK[F9".?(-:A>ESGY<'8UAZS^5.>LRF6EI%P-:56$LGZ 0?U[9<>W
M0F](#'H5<3-7Q_^:Y<=QK_OS]#Z>I=^#XY;]RLM%E4@XP1=Z'ZSNN\FH]+TE
MA#:;>W@9UQ LV!O3LH9?Y?>U#V&5]E%COQEDSY?AW"M(A\#:S5H]Y\#8._G^
MRHZ!\>J(Z@F4^>N9/0X]_.W2?-K;"L?+3+[S277OM="S;WXT"_,'.V^?"WT7
M <9IV;,79@$<'-[3<CI;/#VY<I7!1TUV;O_>_"< W2O2_6><_CD9^_F3S^O?
M\FDX1B%B-#Q$@K!Q EFJ"0H")\0I9H)B3&VS /&!:#&_BMF-!(^Z%BIR39/!
MR'+)D*1" 0UXRB^>:6T$)U0<_%U83^O\Y$6CSDFY\P,13V!Y=/ N)$\)2O*W
M#]-JYJ>SZKE8XYW'*OC)"8$_9^28G9%3<7;*\/'YZ8F19_#GF+9X,F)/+--J
M,2?#DG.XM]4>H0+?K'ZW-"#O6V1P?AW'<4SEM)[[;IZ8;%E_WD96=3!=0;1R
M3DF,C \1>6X3"B;FHE,R*BL9P[%%N.LP88>],.N!47UO/'T7] 8TG3]%L;P0
MK$]!4P,5R6_#LIM'*T*0W'@J4,IG$*&>HQ1A[6)4WGAGI24MZHT/$Y0X+$?V
M0M0#9#BP#V#IUI6WWWZP@CM"I,0!68MS# 1UR#$KD*(F.*,)YJI%=O<PN8^'
MPFZ[TW1G3>\.R6=,M!P;\^!*XK%NUZQWH:RBD7N)H@T,>2\H2@+KY;M5.>DI
M''RIR_XTNMZ(N#<1=%MT:!M1<]NIX$IX+;Q%!FB*O(X:F1@IDEXP'AW1UK=(
M;QTFR7!8D=*&=H>O[<\??NU%L9^/7&!AHB5>(&>)0#)PAUB"8UXDEPQ3/E'1
MX@A3WR&_]4[@[CP7<PC6^K(:]8.-Y; -7",?:$2$48\\9FDE?H/PHD7FLWZ]
M3-(7^?8FE^Z"V$:CR=<<8KJ;*W3=.(7PC%)F-)(Q@"TA34".2SC-@[$)-@1S
M_/!?A=J38[1CPNZ!T>[1:;X%3[;AKA<Z%T%1CWD,2&)J$,E?E%8! 3V(EYC0
ME':Z9-@L:>]!!#^=S.:/LOZ?B:N/_/3WT<3E>[&5D_+MY"NT6=Q3-1#&NPY=
MF)/C,T+/#3X63&)%3P4^.C\]$>SHF!%Z<OJ*/,B=+/@+TGH@^G9QGJ\#=7[<
M],AJ&\<OSO@9/S9,GU&FC[0XQTH>$R#+*28GY(RWX+?!G<#[XK>NB;QGP;Y\
M QCP>QRV\M)CMLWE?O.Q"TZ=)-E-SGF2*"3.D: .(^(T=R12;7D+Q75P?W"7
MS+E/(N^7.;<PJ1_W*EA4:9YZQZ*7"+0XBXQ.#(P$XKS4P07?0G4=W.,['$/M
M2KY>DP:?"=:Y?=O[84#1OD-V;D%9NAR6/H8U7/Q"C\(HYVP$XU8ES1'/&9S6
M6X<DP5%(FE^HVF,XSI(!MT=W?<="$S")G,_/1G"'"&$>*3]W#>;BG4((1OBA
M:\6=K.BD9[(-)=J7@)]'6  [VH%37NI9.*,$B#>'+"'Y]3:PV2/!'$5,I0S.
MN=3F%=!A6*7+97V>8SHDW\ L,\^*G2?Z^9T89WW_@@<FA3<"!<L"\LS#1DS2
MY2(.(E M;#+=.+=>-?MT3L2AY<[BMGH7N?-"SP*VAK#2>Y2BB(CH1% T*;_N
MKC4/0CO5YH@:QE890.YT1[ZAK9#ME9H-/8NHK;$N4<1T8$BI0%!RL$VD82DF
M"=JZ:<$R0ST-U;U6TSW=AN:5Y?&Z.\NL'Z"0 D?I=4*$8X/FMQ.$R@16'C?8
M)$VC/'A]N--5?H&#.B?CT(STX*#=G9V:#%,0;"TVUB.)'4<N: V2G3GDM7 L
MX>02;E$2<EA7<)],U1,Q!Y=1BZ.XA8Q:.T"A.?8VUZ,G@E.4;*#(&.H1QP2T
M0\,=:U/(:UCG;:\RJFLR]N]SRWF88U^.%L7'+M*G_-KP8E_42Y&;?YCEL*Z3
M2?5E4L$GT/-]_F>2XVWL^*8^2RGF+/_5)Q=W'KM;-]Z^'7>W,-Z"EB$]F>1$
MT%DYOKPKS+1FPS0?I$C$::]Q5H,9 ",I1\QABQ2FBE&PS25I%#\X)#4><L/1
M]#$'/&B\-9FV&KT0))<0![L!:\H0[#Z,#%<8; GG8!MI&>S!>W_Z8I?)(9![
MJ%.N"7;/'^1K'W%M,VP1* N!$9:#GQT2)EF4@@;B!1<IITH)UB*A=!@%ZX"8
MLT,Z'Q)7/M8'<HO3$CIF_TEI1RVY<]/P!27"6*IA.VMED):<(V)T0(S[$+&,
M@JF#=V0=$)?V0.]#XM8<"0-*;+DV$F2[@0I#==)>< 2+89'.>J_CD<%.#I9:
M'J5-+0YQ/DR Z0&Q8"O2'A*S/9]6>_8M/R(/'98FT[M8^?41J9W/5>B(=9!>
M(1N<0%)2C0@!F]]Y+6E4FN'4XMI(_' LVS?U=P[J; +\:5G[*D[O&?,Y_OLV
M5O!E_NQXAH([3 (S#@7B$E()SA>GS"ISP;B(<8M'LX?)1NN9*?=/\D,2L(L*
M'&_&]X+ 7LI;:"E>MYBI ./2<.H=@F5-*"7,D#6< 76Y8B8I'&R+-VJ'27([
M(-G:+^E[E:Q_E)<+*DW2D?^O63EWS4[C*%?^G=G1ZA6!-J*UX12%.M+F7)Z<
M4BF/N#%GA!%S?GITHHB@BK(6##E,0MVAR-5^Z'V(0O5L;/V\ '47CM#G!RT4
M="4R$.1C",AHD9 W(B I;)3)Z@"+M3MGFN^!,_="Y5ZEXC(;Q3;*?NI ^]QE
MON+HF)Q+++GA)\='BF%R?*;/3X_IT;'6IR>JC5<>?P]L>4C4/R3I.<\\N/W5
M^/(-+%+=C8F_;NB"$4\23Q$%;1@*CAND+"'(!,:=%1JF;%'XA?QP5TD=$_O@
M6/0H_+]9/7WP^F4;MKPW7(%Q8DIJD_W"%!$O-8*5<H@SX(FD":9MTN#(#W=Q
MU &!^X^QN'OQ9J6$/*I /4#=Z3X?$GCTOL+<X3?D5(/7U'\6BI.[<2[2LRWV
M_+3J(YC^G%VY6%VDTW(TRR$_<Q O0!T!Y2,7[%XC^K8<J:#$1YYH0LPHGV/,
M*=*2":2\X81+B^'__87"O(#-$S2.;;VV3.96XQ0T!&.-)B@*85 @G*!$/$4\
M9">C(E;%%M<,P^@DO?+!9%CJ#J6%/(O'2Q2[.]FVY;O-(Q:@D-'$*)R-WDN$
M781U49PA223& AM,:(N"8\.H(GOGP%[HW*M*\NS1M%$]6 *2OSA;QW__E_\/
M4$L#!!0    (  >!35"OK47#>9   "E;!P 5    8V=N>"TR,#$Y,3(S,5]D
M968N>&UL[+UK=R,WDB;\?7^%U_O9-NZ7.=.[!U>W]BV7:JO*W3.?\K#(E,0Q
MQ50G2;DTO_X%2"9U*9%,YITJ]YDI2\H$$O'$ R "" 3^_?]\O9W]<)_FBVDV
M_]N/\&?PXP_I?)Q-IO/KO_WX^Z>?U"=S<?'C__G?_^/?_^=//_V'_OCN!YN-
M5[?I?/F#R=/1,IW\\.=T>?/#/R?IXH\?KO+L]H=_9OD?T_O13S]M"OVP_F$V
MG?_Q;_&?+Z-%^L/7Q?3?%N.;]';T+AN/ENMOWRR7=__VRR]__OGGSU^_Y+.?
ML_SZ%P0 _F57:N\;\;>?BM=^BG_Z":*?,/SYZV+RXP]!POEB_>T2'RE>CT\G
MRUV!IR_37S8/=Z]^4_6?>/TNE%+^LGZZ>W4Q?>W%4"G\Y3]^>_=I#<E/T_EB
M.9J/TQ__]__XX8<-<GDV2S^F5S_$__[^\6)7R3B[GJ=??QYGM[_$1[^H\3A?
MI1/W]2Z=+])%^.ZZ^$V>7OWMQ_'U_&M !TJ(-MC\KSVO+Q_NTK_]N)C>WLT"
M(+_4;H:Y&<VOT\7%_)^C/!_-EP^77V;3Z[7>%S9=CJ:S$QM:OL+&10E?6$Z7
MJ] !%I=7+QY6DZ5\C4T+\WGT978R29X7:J!)_UI-%].UZHZWY-MW&VW TY\W
MT)_4I@/%6VMF61V6*=UH(W^]G_XC<'J5QWXZKH#FP0I:;.J'53Z^"5/!AWPZ
M3M5LMIVA:DM0KMY&!?NT&LU&7TSV;CEY'T?*Y?0^K2!'B6K::G9SRCBYTD9%
M^L=T,OWTL%BFMXM/JD+K#Y5OKZ'-H5^AVMIBF='B)OZ_"\VX'\WB!*OFDXOY
M?;I81@OVJ "E*VB_J6HR60,YFEW,K[+\]@E@M:4H47<' MYF^7+ZW^G$9(OE
MY\R/IOD_1K-5VI2,I:IO7TR3W=YE\XVM=_3EAF2O\<WV 7%75^DX3BB_C<)$
M.5T^V.!41D/X/C0C6B<^RS^%@LW#4OO+[8/S:YXM%K_/@Z,]B]Q]%WY+XRL[
M^H8FM@]4HZUH'[1R%O&)U=1O=G9[.]V.1?,P"LV7T^#"SL?3$DT]7K3-YM69
M>FK5VH!0\T4VFT[B,I4.UM]\G'ZZ2=,2$_^Q@NTU[<,H#W#=I,OI>%0"WU-J
M:;31GY;AW]O'2<7/LC]/PO5@!>TU-<R%>7J3SA=AX ].67:;5F[T_JJZ;'YE
MPE2IMS7!+N_2?%1J$:A\#1TTMA'PCU37FAB?;L+G;K+9),T7<1I</E258']-
M'3:^$5V4K+8!L>[3_,/HNL3H\^+%VI^V:1XLGN6ZHR^6^:J4*WRP4#M->K00
MM@L#)9<=*E76D@C!4EZ;/N^FHR_366A!NOB0IXOP+)U<SM^G2SU:3!=VE7[.
M/DZO;Y9A,+BZ"F5JB=K01]N!Y*F9\NZT]:2J];4CR&X/2F7C:1T)#E743M-_
M'4WGT8O[F,;7HT]W,;\,0US^BAD0WZLC7<UOM0/ Y6H9MUCC+G?P5_\<Y6O?
M)!^-E[5D+5]M.V*5\WQ+%*W=/!=*9@]I^FET'\!8? A]]%BS#A1IHSDUO-IJ
MM=468K?<\ELZ6JSRM-2\?;!0.TUZ;?[9/I^HY:[(Y3P,":L\#Q!NYJ-2V+?W
MQ7; >*5%+YOQ^SS[LDCS^]@#+^9WJV4<*N?C4.J4R;&;K[<#4KEQJT31VLW[
M-<LF?TYG1VGX\KW&/KPS!LPHSQ^"DC;,O2J>E^LEU6IK3(AR^GS][=J-N)A/
MTMOY]&JZL04_Y-G]=%%F8>%HP?::=NKF_,D5-=#T8-A<3X.F-H/M\1:^_G[C
M#=EM[+U\4*ZG5*RN<3'<8CF]C8L1VP:L];H-N?JT&H_3=&U53A?CT>P_TU%>
M4;R:GVE<['(CQ>%2#33J/DPE65YB*^:55YO\_),?R^KW>-DF&UA67WL*U&[*
MNS#UIV5]M%=?;J@)FW_+M>#YNPTU(,8*3U:S,)E_&#T\V6<MV::CQ1MOYL?P
MD=$L6)?I]*YR8P]6TE"3RW'\M7=K-^!]^F>8R^?9:CXNY][M+=!\4TIJ[%BY
MV@T+M=^E^?(ANMW+X//%5?J[^*5C+3M:L+VF'5@>. IHK4K;$VGO@W(35]UZ
MVQ.L7/<O6;QV,S^F82I=I=O5TZCA8RW;7Z*%QCQ=?;^XO1N-R^Y<5*BJA>;;
M]"K-\W2R?1)C5%:+97:;YC:]RQ;3Y>)C-IM=;=9R*TM6YRMM"#U=C*ZO\W1S
M7D8__)IFU_GH[N8A-.QS^%QU.4^KN 71=NYOV=GJA"I::.YNX_EI#$#-;E2^
MSA8$*C=V'BM7NV&%O7@QC>M=:P@"!?_?:C2;7L55,#4>!_ODN'5U:CV=-;S<
M'%NMMOI"I-=K\V0^*0: Z?B)A7*TU>6*M]W,&OM#]6MN6[BG#M6Z+_H\NW5?
MEVD>6E5,3NL-E6Q^_2X,AI/-PLOCF!Z#850>?*!&(&FM/6T#66[ .ZF2!IH\
M2\?+-';T/" X>_#3>;"LIJ.9'2U'O\]'J\"_='*\T2=5TU6S2TZ,U6KK2HBR
MM*E067T13HX*;#'Z[]NJZXS+52JK+\(R&_^A1XMX].@V+K27FP4/EFJI4=N-
M@#H0UZRW7<$./FQ P!/J;UG0U>WM*'^(T^EBF4_'ZR#7\/[EW=H B:>>XGFG
M!B2N\*&.1&]9X)[%_&<:(S>#'70??+SKN"^VNETW9O'[(FY>;C?ZXF9>$3:Q
M>-;HQ:\Q<48Q ];"I*6VM 1@R;FW1-GZ#5Q]6:3_BID_W'V9U?Y][S?>D+)&
MUN%B#32KZ&S3ZTVT0S"B-TYK(-.';#8M<WSNM%HZ:G2=.;:I#W0F:A@7EM-%
M^%,\?%V>7 U4WI&(]>*FF_Q&1P*_'AW3D*1'*N](Q&:'EYZ&F7)OO;9ET: ^
M&VI$1Y 5*<4:A6!/I;5%^CSZ>IRASUYJYI-U-K1+5]!,4W<QL,%%2?/[F*!@
M,WJNG[JOX]DJQKR%02?-@Q.CYI,/:6C6<EIZ$ZGASS0D]K.T<L469'ATTH!=
MH:HVFK\+<'V.:G4ARE78C"C/ ^HOKWZ?3XM#IPN?3H+/-(N_K)99_F"R_"[+
MPY-0\F/\3Q:G_='\8;'+5K)]<OG8[ITPI^#16ZN: ?5QQV#3\2[F+P;=LN-W
MM=J:$:*<*_K*J[4__\)E7Z^,'FW(P4+M-*F&FU2UOG8$,:/9>#7;]K57WZ@A
MU:F5MR-B.3:7*+JW>:-\7+1P^^/31NYR]$[GRU\FT]M?MN_\,GIYGF=/%N B
ML6_,($S7C1V5..%3L5'AY^C*9?.?)NG5:#5;5FSBWGI:;'!V.YK.Z[?W636-
M-W==^T^WZ>V7-*_:UM?J:+JA-Z&^?+SZDOZT@Z9B<P_4M+?1@333C;?U+ORZ
M?3NVZ]04TYLOI%^7Z7P2=X6;_,:IZ9Y;:L6IB9K;:<9K8V5C7]J77[F%#QQ-
MEMSR-SO"L406X]U7XS>+K\ZR\6NCP'H$N!HMOJR'@=7BI^O1Z"X,!U#\DLZ6
MB^(O<<X5/P&X38+_O[9_3O1J,9VGBZ= !*'2BYB7M6C4;/0EG?WMQ]" I$RQ
MQ%O@B/*&8 .$1H98"3'51EB)N7'^N;#K9*]9OD6X76D?S?I7!%CHAR>_K=EP
M (%3JTJD8)YY3Q05WEHG",!ZBPH@2.(RJ#PR3^7C'[(\>&5_^Q$6);<3R$GV
M3[R@H0W59IVB%00+?UC/?O\VGF6+=/*W'Y=AC'S\8S9?AE[E9NM(V##Q;0*P
M.B&=CRI+UT%J+Q>R]<-OH__*<C,;!4"^3@_UN!-J200&$#&DM#;08P>"N5V
M!STSJ$.J'3!!OJ5>>RS)N@)SS<1^2?78_O>CV]0^,ZI/(]9K-250<>N@%YY8
M")115&I3X*& ]\FK;D>K)-OK\GQ+L58T7YY=#2+Z%]/Z8=@S*=\&P?HAUN=T
M?#//9MGUPSJLYAM)GCG9K]"I5/D$8X49<%@'J3W%P6A1J)"=:0V[)-%KJP<G
M,:B>=K/V\>N*.\41@(_I9I5S<3.].\Z8 Z42[0B&3D-OM":&0*P,V\J)L 2R
M,D_0N?.D.=2Z8L<KUN,1ZWI/B81C&B21 E@/(8/!ZS'%"(VL-+Q#5@S3DFX&
MN#Z)$7_,T^/6R]&R"70 *8@\\)I+2AW 'A<R0TOXL"WCVIHLP8PF\/H^N#)(
MVW9X%#F5&M]N/\:_)+_^X^F:[,][#8G]+R=>,.L4IB@T3@#($26D:"E35 _/
MSFP0_:QA>+KNXR:[_3*=KZV;W9TDR[B],YUL3\RKN,]TG3[)SWPQ_WR3?HP_
M75Y=KI8QR&6QIW"1=?-A?=3A7?9GB:&CZR8E&%("%$-">8D,-P("62SM>L7
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
M)-OGT==.+95OOIM@+0GBC','&0,ZC!H,[[!FKOJYLGYN !G"P%P7Y',D=-P
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
M\Y_I[#[]+;Q]<W"OMN4O)HQJQ: P(.B+(\1UT-$67ZV=JQZZ,I @O:J+YL/
M^WSX#-%&TB=7!\;76F7TGF\FE$E+A"42:L+B[>$"%#Z,1LI43SDWD%C _CC=
M#.+#9_73OGN9QWPU:<V(Z5I?3"C%@'(,/!4.6 XMXK# UQ$VP.L!AL[H)O$>
M/I^+?EM(VL4H?>2;"3'Q# 8)&',(% VN'D8%QM:IZA'; PE9[)[3S2(^?%:W
M.R(_L=FT,48ASI"FV@)EI!0%;@#AZLO, XEM[)ZI5;$=/B>[&%E?]FOOJ<0
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
MVG6H^4_:'%YXG\WS9R+LF':@&S;ZG40YX[4S1%EBO"*1U]YC(P' P<E!I?R
MX>)Y;$^^L6\DPC'%#0&>> PUYRSN'6QP)!S:+M.<'MS [XD]+Y-N]X3[H ,"
M=J#HA]V/?Y^F>6CTS<.[>+O!D0B!<A4D''DFE<4:,8R5A=AJN(6,!@^VR]N%
M3@H9Z($T^VC;),!=F7^O3K7?BG%T:_BD>A($/$?2T)A$W7A,4!@8"BR,I0-/
M!]ZTPO?QJ44HOV]Z#3+NX*Q8U3.;+N9WJ^5B#0H\?N/)_E()=<()J2A4'$JI
M ,9VAR9'M,M N9)^:4MZW,>6VICUR0U4B1O;4HF1'BGMD8',$NT48_'@Q%I.
MYC!GE;G16LA ?]RHAEF?W,"5N+$ME6#%M9/>462DEL@;"E0A)Z6@^EF@UG;P
M^^-&-<PZYX9^>(*,S]-_K0ZD7SJA="*"U$(K0!57F"K%B-&%W S++L>1\_6L
M&D*W3[MWU^Y*UNZ+T@DUA") &61:.P\(5;C E&G/S=FX4/4U6\+2;0:][X<]
M0_>0!DF:X9!EL1N4RULY!XHG0$/N@L?)O7)<QUP7<F?6"0H&&+?=J#[+N-+U
M(.N*+)NI?"? XVYFB5LBCI9-O $!4RR8M8I;;SWTA=7(@_R=WE!_(DUZW?AH
M&MGJQT*R>?KPVRC_(UT^.4[]2L/VQ9&4KB"AQ "LF,+(LN!>$$6A+"2"A PP
M 6V#6LHZ@*PR"3[G:]X_Z.EL=HKNCY5+8' I*6 (.>@ LX[JW7@K#*B1T;*U
M!9665-XP4C6BQO*[+!\M4YW-)Z>H^FC!1,O@YX<)4'($M;".$U$L$@KN374#
ML[4%DI9TW314E96]ED^/QG^DDT]Q_EI/<2?HO&SY1!*GL!1*"AB#GYT&&A7R
M8&NK!Y&W=L"@)=6WA%AE!GS*[M/UM>:G=O>C!1/@K#6&:D IC"G4L;;X<<!2
MU1V$U@X.M*3SIJ&J;LJMYM/Q]&XT.U791PLFRE(.G(OG7 SV'AFY6\X3SOOJ
MP9RM'0UHRW1K&*KJ8_MU=&M/U?3A4DEPC5WP6XG2%EE$I5%"%&WWSE<_,MM:
MU'];XWB3.%4WUM)\N;FS,KV\LNE=MI@N3S'9RA5/M&6(<@P=8RZ>*'<R;@!9
MPCWV1-+JG;NU /^V#+=6 .ML53!;ST)%3O[BBKXU5N584[&F1-,PV'G&%$7.
M*D@$!6 +MF245K]7K+50_^8)U UV77'IR9)8M97#<A4D!$.-3!"5<J@X -:Z
MPA&26-#JQ\S:#[CH=?FP%7A['J@6A5 /C8Q6!ZM+J(/&2VN9!H1CKSS? 2\#
M9 ., FM:Y>7&K291[(I?>K4('6RQ,-GME^GFWK H3NA]Z7P9?EI,@Z9&F]-)
M6^$.T*M";3%BTRAB*+44$P%=:.@.%V7E "]G;YE=[8/8%;G6U\Q_OAG-/Z>W
M<94O?[BXO0N(Q27\>+-SNKB8WZ>;R^47'[(\RO1XM.]B[D;Y/*9W/7S/=H-?
M2: 67J-@O5#+!5#.6E0L-4D0?-7AK<L.8X[M3P>5'<8&FSS/YILTX*_1M+V/
M)0 !9XQSD #AC:3$(;%#2JKJSFAK2\G]LG4PJNCZ&/)AD->H_C[/OBS2_#Y&
M)*ZC4Z/,\W$H]221=G]WU^_$JB_*NU/."S?XN4193('F0$J#' 1.:K*E*W(2
M@5*II0:/;NG3PPU]*D'8,RJ9!U@!X(0V5O(MJ@8KT^4]!.4.$?="J7TQ6OUH
M8=!'B@O[6XW_M9HN-JPX'.:^IT2BC#4*>2>"MT<-QE2P;40*LE;(P>89[X\=
M>URA>L!V[4L_;6W\,4_3HU')1\LF\329!81;XR 4@C-I1"$SHWK@&<AK:[($
M,YK Z_O@RB#CUX='D88\S5__,?U'F+S"Z!E<B_'/>V/.][^<Q"82H:6!.C22
M&P48+N9Y!,$ +UMJ$/VL87BJ!XV,YJ-EFOXSR_\HH<G7WTZ(-90AK01QD%+&
ML%./=#8U;I5L;;VS)54V@D_U>(&;Z2C//J?CFWDVRZZ#A?/NG3FLT -%$D]$
MX)PQCGKI(.(L)O[>,E!Y4/T48VL+ARUIM3F0.C\A5-_:-:/9>+6YO.)C-IOY
M+/]SE!]*#]CZMQ.F*%%6,Z^0$I)!S@#:#8W 5%_1;O_0R1MSE!M14)_'YN+=
M+-_(N'@NY.+CB[7:[0[5NJXR':')[R5(("Z,Y_%F&J"\(5K; ELH:/51^1S(
M7Y=O)8[U=:VAH;-_CZB?TN5R]CPA:(-=X/A'$\(-X80 R?$:880YV:+L-?0#
MM#G?7C]H7$U]QK>IR7^M-EMD)\:U/19, MH  \X<=E@BXY5T1=?W"LOJ\6SM
M[[4/CI2-0CV\V".5YZ/PU\U)\OC3Y=7E:CG.;M/%1A_9GXU$)97X3J*ID<(0
M9QCPPDO-%0N=U'(C0N]U<(#Q2H,RJ/M4QOD1^^_3ZT-W;37[H41Y[K$0QAJO
MI>#QLBBZ05-BKT#U! 7G,"(/B=H5M-$5MW_-LLF?T]E,S2<7\V5H>[R0<1W-
M\QA&<X"Q98HGAL4P?XZ@"IASP)R@,$@N@@(H$#4"CMN/:QH"#UO N.N I?6V
M<3NW)Q3HM%JYN8F]>G$1[+P\?PB:7TMX>54\[_G:A:(9[TJ$0GWS;L*=-I19
M#9RAP4@EE!H7>"F\M]1;4^KD8SMR?1K?I)/5[ G0Q\*1]I1(#&)"A/ZA *<N
M#,(X7E>WD9$HSZJ?TF\XJJB&=K(VD/A.(GN0<$08%O^'N5)<Q0O,MJ!((;M<
M53\ILJ>VDDL&Z)R&S]L(NC " 26,P#[T.8^E-HSO.AXEY#P#=$IK\N3HBVIX
M?1]<.:L G?XHTE LP*?5*&C19#^_6TZ.!'6\\FJ",)4$D[61KIB7+$RSG@0(
MI" $US@TU&-P3FGDLT;!Z=J++;=+_\K;B;;* *L8M('Q3@:OS*HM0,PQ6'WU
MNC6E-V<JUL>C:SV74&X"."&"0X40XAH(RHEBA03*@2Y-_A,U6DD/>W1Z(@R=
M+SMMAJF)7<7UE ]I/LW*]-S7BB4V#'!<4H,P0EYH#2A!A:0:Z.J3<&LK^6TH
MO %HNB;!B_/WG_/1?+'92_LUH!@/\96@Q/%*$L:!0Q9+!:'FT"D+ PH$HC!.
M"E G(V=KZ^%M$*1QH%I<3'SFU;:S?G@1ZKB=;U(?A6(?\NQ^&LWGCK_V?I3'
MO83[M.^3F9$ NVV.<8SW++&HN+]0$JQ"JAPQ!CID@B$B#!:8:A]X2VFP6/I;
M7?RFT<<6%U\OD"@-$)<6QH00REA)7+"P-Q)"!D"7N9T/KBTVH:27<0I-(#+H
M-48[7=QEB]'LUSQ;W9G9:+'8==XC:XU'2B8!!VLM"18[XR8XV<%#PP5(D.LN
M:7/2FF-=G;^\%KQ1F+HR70ZT^NARTM&RB<!.>JQAF&L-#O.NDYQL948<&C7L
MI<?&-%J>*;5P^SXX,\@ER.%2I1&*+/+E$WJ$WUY2(_PI>1< O]X&$2[2/9/*
MZR\FS'$,E2(,H6"L.QG:OY.",58]PJ?ER]8:FD,:0:4[W7X.W]O;TP^]G@18
M, !8.R(UDD1BH\1.(L0&.B'45<]>+==&YBWH?% #^A!4W<^L_MC<3\O1<K4X
MXA6\]GHB '!62Z@X 1)(*R!F6\EP' $[7)CJTQ5H )N^M'[4@'N]0"*-Y!([
M!"023'LAE2LXC8W4 QW8FU'8$>W70NBM\6!0@_V0U-^3VE\.?/KA_2AFL;B\
M>OSSL=N4RU>2,&J\DX!Q:@1! !AF^!8%PH&HOG-Q>@1UKQ-$6XCUPYMMXX^/
M&?M+):%G"(L94C285U (C=!.3@*('_@$TH)"#W*F"?#>+EF&.<L,FR,];9VO
M1OEHODS3RR^S[;2Y.'KY\?Y""69&0>N,9M1+12P#C!928CC$\*=&=/9RB[PI
M@%K<$G]Q!*BM;>KG'U&W,7'R.E_R\P<]'WSQ4:[TW?3^VY:]*Y,6N$3QA''N
MN=#8*N<4-A09[3!P2@>[5&M<RC1O^WC, 4'*GY@Y5DDBN)#!FE>*<*$$H,82
ML$4",HZZ3+]R.#5OHVK=>ZZF8;P&O0U^0%;]\-OHO[)\O<MRQ.,YH9;$!/]
M:,(1<<%/@)H0SPKP)"%=YKRL>"2G.7Z\3%G2&HR=)>39+\%C^]^/;H^;NR?6
ME'"*,9::.TT5]L(207=X",CIL/VE5C1?GET-(OH7TP;I;)TCP7J+YECFTR^K
M=<J?Z?7-\KC_M:]((I@UB!E)$-<\N!D4,%U(:!"J?O=L>WGMVM+AMX$<34#6
M&2G2^W26W:637<+4A[+<.%PRL=X1AYE3$"$A@/$"%K8"4LI7-X?:2U/4%44:
M1:[RH4.S6BRSVS3?W1ZHYI./Z2:P?G$SO=M/@5.*)Y9Y";D"D#)!-8-2.;:3
M!M,AWFC6,@]:A*^K8>,B'@08IXO%QW21AH_>A-9O:1T]O*.#1ZGR"<2 $^[C
M3HN!1$F.]4YV:U3U(:2]-#P=#2%MX-<5=]YG\W%V>Y<N4W6=IYMT.T<)L[]0
MXCA%1!-*H.32 VZX]H64!-KJBSSTW%G2&&A=4>-S/IJDMZ/\C^.$>/EJ(AT
M%!!%M* .0PV%A\7R&">X^E81.W<:U(2J*^6O[T7\!HAC/#A0*J%(.T$0P0AQ
MQ[2&#HA"3DQK!"'P<Z=$<Z@-8%GDU_SP@=MC11.%+,)240Z$8D@!2N2N/UBI
M!WCPOM4-@X;Q&@!#U'B\NHW9CM/)=F-P;6=7X\R>RA*(M$8Q?87G1"IEE1*X
M0$525WU-I ^'MU46-8-@=[[.\]:_3Y<7\_%L-9G.KTND]RA3/(% >JB%%LXH
M#2$@DF[,,>4)<+QZ-&4?3G)][K2 V0!&H<.WR!\NF "M"8Z)TS'ET!'#H%"[
M65DA=U:^<*NCR^EH=1C\XA;+Z>W+@<]]O4OGB_33:CQ.T\AQ/UV,1[/_#)[]
MX7B59F-F6LU9<1^<SRR?ME__DQ];Q6[WE19A>Y>.%H48_278>)_^&6;L;+4.
M7?N09_/PXWBSFG"9;Q(-7\R?OC&=CZ=WL_1=B8"FVG4G@"G#$ 488:P5=US$
MJWV]@L!Z 7BI)$K#PNU8 %2M>A,'#( <(11]_WC" 6*\Q2NZ?8-)+-PA,UXN
MFW6([Z!CJ!XO<%GX+#\ RY$HJI/J21061GI.D5( $*NE-SX"B)$&PHK!IAGI
MB#99=]AVMNP;OG9YI2;97=38\:7?5UY/& S-Q\X@2YC55B"-]58RPB1QPPZ3
M:DF++Q>"FP/N+5%CD'%- V9$/TQXE/]3<%LFHWRR^/UN$EPI%(_@H:/4*%4^
M<91B2#$&-D9>0&F#2QIE)]X 16MD7&QM*;B>"E_.)BV U-G^T=WZ<J/Y]=IK
M6D?47%[]OM@XMX=VD Z52RP#7@,KK>=&:*L=1'%>EMPP0HSK-"BR'"'Z,YR;
M1+(?UNQNQ=PD&RU/FY<%$P9BOW!64^R(T 8Q&4=D31TSH==4/Y_6VF[ 4'A3
M$\J>B1-C+JIRY[%L8J@W4@&$G#,XWD\,E(B=!1CGB!WBAL#@Z%,9S7X8M%T$
M+LV:[?N)DYI99%#,I4\(0(!H%F2SP#E)(1C@QL!0F%(-P7[8\6'T<.SZ[M<+
M) 98I!"&EG(-#%:8:Q*E"YY",-]T]2#*UL+CAL*/BA!6#LA^E9WOL]V =IFO
M#:EX6^/U/)YMWA>:?7)%B7)(>VXIEM!0PUP8'N,4ZY40PG( *Y.DM>"Y[DG2
M";2=I>J(S5^'G,^7H]GQN>?5]Q/I&! 8:A[,>0(EDL)$1] )()  L/H]J:T%
MV/4WMC2!8,^V[>D6;:(](\8XK[$UA&%O;+S1:7VG/(\A9)49(MX>0YK!L!^.
M_#.-WGXZ4??AK]>IG2[6 'T<+=,/:3X^Q1TZ7E5B:1A+"67(&!KO@U'.^H (
M(=8Y90"NS"KYUEG5.+B#H-O'-"JA>/@YS6]A5;J]4E4B!$+$"LF@E<H8RPT
M 1'* .7.DAKWZX'OC&_UT>UI"HS_7,33-.4=]"=E$L;C'252V^!.VO!! H (
M,C)K"1'2U[AN\\TO(U>'L2NJ;"RZ31/?!YR*YA]@RKXB"5-QGX9YYPPSGB C
MC X2"F<TT%+6"'YX@^O&#:'88OCG)H!O\V^+$8*/*7R*-8O#,8/-?G.CAN#R
MIM.[+K[<8L!EX/)S!G?SE;\B/ \-#X9'CP=)J+%2"H6NK3D.$X #FF%.2RU.
M#0NW=B,\"7/2$8$YUXP: 24 ;(L7D09VF8BLY0C/TLQH-,+S-'S_BO#\)EH)
MP "6YD0X%2PW"AQ2N !0,]YE6L8.(SQ+TZ96A.=IV)Y3&)^T,H8R"8 IUM0%
M3\#A1_RD?4L1GJ6U6":>KQIP;XD:;R#"LU-&O.4(3V,Y-Y ))H"&6 ;LG-G*
M3@U171XOJ!/A65J%E2(\3P.I*X+$>U;67>+3.)V/\FEVQ"IY]?V$.*.X\5H9
MPA#W7F(A"]D$A-4/0+5\!6$_UD<3&';&CVT3?Y\O[M+Q]&J:3HXF2=U;)C$>
M"6RHTH91;+!C3A2(4<T='+:]45-OW^00;Q:EM\F(09H90R'"$+9QFCH4P+UQ
ME!KC+:<6,$2I%,6Z [/T31X*J+K6TB22YQ?_8H2#""D%*91!)NZQ*?H9$QI4
M9\J MW.:84I5#%O<S0EHA"8N'S[,1O.EFD_<OU;3N]LGL2V-[A+L_9J:3-85
MQ:VOJRR_W=P2WN*VR]Z6['W0\RT[>]M59L/B>.%$0:.#!TXX5(8)Y1C2*K!2
M>.\8,7(0-^SL%:/\_3J'JTCBO9E"QD1=R$A!!&*2;5$@ ,DNK^ ZN,_0I$+W
MWJW3*%:#WC/8*ZE^B"L51WSR$J43QX(N(-80$^DQ5LQ"48!%@.ER.:_B33I-
ML2%K&[RN+*K]@#P<N&[^A-*)%QY [;37UD$I -+<;N6FU.*!N^N-:K8L:VJC
M]_VP9Y"N_=!)TP]9WHWFDZ-[!8\O)9 IA"1A'A'DD*;([N9^"JT=X%TVC>KF
MY3&5JL!TI5Z]FLYBCL2C*G[^8N(I$49K+B4A3$MA5.P0&VD8Y=7/*K7FB;>I
MYEK@=*WJB]N[/+LO>5/$_D*)Y0HH1XT5P=+'V (:@-M*J26NWM-;.U3?!05J
M ]7IF<6;;#8YB0\'2B4* 8H8(%(S2$V@O& [MX]C4=V#;>WL?*M#?V-(53X"
M_?=1/OESE,=SDI^RJV7\\? M5'L+!)<> BZIXDQ@S^.^A"PXS  PU0_MM';N
MO0W=-@I25QU])_C1SOWBS00P@#!'2$E/!8F)A1Q^7,?Q [P$ILT.70^=KK3M
M5WF >[6FIY]^C3\=']7W%THH9#S,5\XS0[S4VF$&"RFIY]57CUH[E-XF!QH#
MJG=?_]@U+X<+)LQ RX$BSC(>_E6(<[X;Z@@?X"4O+:Y;-XI5A_&!Q;4A-KW+
MT_%TN_-U-TO7.ID_RZI_=+?N]1#"1CZ1"&3BJ6G!N$#1=J:$%MV5>X&JKR=U
M[VW69UM/J/8^8AV^\.-0L01Q[USH>Q )P9"E3+J=I-R;<W)56QRM3D>JC^B
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
ME'H+)'@TS?.!9B\>#LX[BSQ5B IOO/:*J'*A48>L&*>CO45N/8\?: NBMR(
MH_*UCXKO0T4.W=[FR^T\S\<1/G\V.*2HYX9IC(3 PB/L\)XF!B$=8<72)HQY
M$1O4#([>,HZ22OXY^[$IIC>35?:I2);?[;GC_>B@ )PTDDOH$:> "\>]=265
M1.+Z,<0=I[1V<KZW!=.PPG!VIS\U+$BJA?4&.L:)M)%&20Z4<DA'GLG:!@LK
M244CM-ZR?(Q3)QB96+1TP_3B\_$1<OJ.Z<20P(C#4DJ-+4 42P8]I.6L#3<C
MJA3<+A/R3O!ICZM?_XC:[+V??UMGV?)"]KXR-F!+L&#08$@U@M;&<Q*4#A2O
M2?VB-)UY_7O@<W.@VF/XAU2W,4X@/DHOY/?+H8%X3B'D'GJ=\J:-49B45"C/
MZUMQG95 [8'=C7%JC]L?I^M\-Q-Q(;-?C R,1WU7 N$C%":5YI$N22R!5#F
MS AKE/; ZZ8P]:6N?2KVK0VV)LT6F)7:K&_R8O[?)]M(GAX8-*82&*TIP=!2
M2"0R[B#86(RH8E4WCO]6X1E&&#Y-BH_%UK,U2X5VL[(-9F6A./:"""I'WF &
MXN)"P&!GQ8%ZPQO<!767&=:A<+0$TP .OPNVBQ.C@B8$ (@9)0R1:!DAQ?6>
M3L&<K.\/ZDQ9:%<<VL.F-R,_S?7))?V'?)WM*/BQF*]-OKR+OTHIC^FV_E0*
MZ:6O"L01PY@R1@#C/.$\KHX2$<M1_4"SSM2-EJ^4NP5L@&VDQD%3872PU'++
M--#<447BWLF +^GVF-</0:;7(2CM8U3;_OA'E%"W7,_7BVSF\\)-IC?[V:59
M?-RL5^O),H4^'C-#*K\@&$ I@HJ02(.T'&B1ZGGL*#+>U<\28./F>J<P]7JN
MO/29'HY#=9L26<X>)^??$%(=62(5HD18!*(Q1C0[G*NL04-?/FXQZ1:GVAO$
MUWP]6:RVRD]QF-1K^N2)IT,\Y2A5DG"&(.0@6MNP=*8(C5Q]GHIQ\[0]3%IP
M,,UV<UBGZ4SSU?H8#X^/"!HZI07V7!@(+"*4 K.?L^1:U;<'Y!7PL35<!MJS
M9W93Q ,F:ACS?+8S9ZIOUZ\,#LA@936&V$)#) &6FE*"951K&R3?@G&+0V<8
MC4$RMFIH3<'8C@U.D+B?17W50,VP!, 35-),A&H0.G0E+L:V(1K \K/SN_DL
M6\Y6I4%BL^DB_J>B)^GH\, HB89N*K.EO$%>64S+0"H9+9T&B=Y7XF+L *7>
MO-"3^VVIM(_?#C,_Y7)^^700E$5YIY$(B) Q""%9*JU2Z"9M8Z_$H]@<E"YS
MR+;!<VG'BD*:>H9VV/GNU4_M.Y6.,:]HNSY?3%@5Q63Y?1M@K.\?'MES6:4>
MBN\K)"$U?WD  @H+D'&6$H48!UXQR)6A9MM@>!P92^?(7!VC\X+\IF;?"(IJ
MR2DCT&@$G./8$[O#D1CD=)\I+B>SH?H4F>.I4[V"W6>B5:4Z*9\3F2?*F1U^
M'Q1P&!L#M!(BJG><:;.'FGB&79_%F>L&5O?%ZKPY?EW6QMG.Z61IG$=/!(F%
M= ;&!26%89(#BFDY;QB-P7'&3]?$_CGG&F%P/3P<AG<G:HSUQ[K^6/9KA.]V
M<WN2:4^>"90# (D7J9*,<]A(SLL-QQM/^CS(*U3)J85ZW@[MG?)M\O,\WQX_
M$TPD.=H_0 (:158B!03::R5 X08I!9T4$VO,MP:T]V7V[T[Q\VULGCP7"/"6
M0<0]AMA)"714*4M:=+2:>^3CE:@\;>#8:S)1+6P>J%O./BTFRP^3V_.-3[KX
M7* 6 2P=-5P3!+U$$N_Y0R'AU(]3.6LH):\E+HT#V+]$MSV$1Z63O@&)'492
MW>V/17Z?[4((/_Y(=)[-Y#\Z)E!*++%6.J6IPQXP*$%)H[-XA('_P[(Z[P;8
MWBYKLF+K.U].L]U=]%G1.3(B0&*H5I(XS9DS2 AF=.DG%'B,=0%')3CMP#J:
MT_$8<F5GI7V@_-UDODA:L,^+7^+8UZ*-NOYD -1H+R45E-JX$*T4MER8R"([
MPNYG0WKUQ\&%T<OY]O_^D:W6AY".DU&O+7XF8"L 11@Q*Z&"6 C-S %)Q<>:
MJGUE\MP<^=K!FN[GC_FN(=GNP_NP@YVVD8ZC8S&;9P<&1@A7$FEFM2=)Q\:\
M7(5885[?'=IMWG>_LM,)EK6EH=Q8?RGRS8]5*D@]7Y9:Z*?\QV;Q)#SCN4A4
M&QT,(51)!VQ41QB( "%7NAPQCUI.;;GH-D=\ +GH!-#Z6T7<GVY3VE \9[]E
M\_6FR#['?\9__;:\BYM7-ML)["K^Y$NVG.?%KY/E9 ?0T5VDP3L#8=ASP&%4
MCFU49UU4:$MU%C/=H%Y,9TE=@VTP_<'<BWBIQ>)#ONQ"R%Y_<Z"8.@2<0)9)
M%/&VYG!-@A4P]6-(.\LDNP91:P7LV@+W;CE-74BS=\M7 @+M)ON:?\[NYA&=
M(R2]=C'5SHL#5I0[Y[U!<5_7W@N,2^2Q!KQ^T&IG&6E#B5O?6(_>6-ROKJTA
MO'JW5RC_F<V_WT3:U5U6Q%6V_:5-JW(R+\YF7_0[DX )$LHH;P5E'C -$7)[
M?A!M?/V<_LXR]Z[1Y.R%.;6WYIUCIP)=JV.$N9]9,9VODEOHW7)=S)>K^?28
MI'?]R6"5]8 @!8C%PDI+4PN?/6J L?J*:F=)C$-MY^/A0C/9;; D_[%5DD[M
MS%U\)N@4040XHQ) QGT\"VFI=!$(88.>')VE5@XJI(-!W_M5<%;<S?<722^(
M_I#OE?HM?:MMXOGCWYM\M?Z0K_\C6W_.4D).*B?PR+=U*K:KE^\'[M-FX'2J
MI>JBG<N$*=VLJ5)_@_2PMWAC,T:>7/UZV.E>T2S9_R@]=^J"I]^)!"\-2]J>
M$P!QSJ1S2I7<P HU".)XBW= HV9.;^&[BZT89+/7R=];YZ?B>BN]("CI.2%1
MKP-":L^Y$&6R0:+>U@_X[2ZW=T#1[ 344>V^7R<_=;:,#%WO^JI>(G+M?"!
M2#F&E"E'%! $2\W('CV*$6S0LN@MW6X-"GK]&XHJLWV^8Z>]?&4F/^9QCW\H
MIG7TJJ*]3P2/B8("$XJ\T1@ ;DUY9TR%$ TB=M_>_=A@L/=>6V&_9D[^<N#"
M!Y6XL3_-XM\^?GN5,^\K5$%H^4M!8^RXM$!2RB2WPD.WZR\OK 7&5?)==W2?
M<,@Q:H?FZN416OQ>\,HB(J.V*P3C2&YWZ#V^1C'29T#YR5()@\G5T;H)PW&A
MSQH*%R^+=\NX76:'EHWO]^2?23L\,2I@#QPQ@@''&(I&&4+0E^ @)!I4F[I8
M1&LF(0XB*GE7"/=EH!R9\=EDK9/C@H? :0@A)BCJMD@;[P_X24%&W@*W%2Y6
MDXQ&>+UM&1E&-LYDYHU/-%HR$C\5^6PS7:<],.V,=]ER<[SPQYD1P4&)-6<6
M VP<HMBBA^U3FC$FT+7$@[P+?/I:YI^S51:_=:.6,QNGN\A_)"CVMM79G+@*
MHX-W''EK4Q%@BIBG6!I>TJVQZ;/2P2!RT1U6]:_]LT5\Z/LOV3(K)HLX(36[
MC?BNUBFP_^[,%E!I< !.2"(PPI)JC[VW4K#2"O!VC D5'>P&74#UUNY%.!:&
M<8R(C\!JX73<($OJG3$C/#;&8C!W O!?=R1/T?-,2>.D-8 ;S"&&T) 2/<,;
MU/3O[/0:BW@.PH _RWT)YI0H;BR FE )D'/L@ H5J/Y]26?'Z]!B.3 +!KL[
MV=S>3HK[!&=4.^;3]9/X)36->LA\?3_*ZM'[C/E#:Y_?XFR*9\FF90AM]BG2
MEFW+S56Y2^GF@P%2A@PUR!EAJ36&4ZOCGH4P@19K,HHKE0:DZ_N7Q#<M/=WL
MPR'Y6AREAB.)B0%(2V?VB"LI5?W62;W4H^Y/X"ZL4=TK5T9]Z5*ONB- 7G/A
MJ0 "2PRI5T!& #BG*OZ,-^CQTM?%RK!R<;+DXV7@CB8)[@KJY@%/I(<4 8L]
M,D QBOT>6>&1&&D][H92TD<!O7K _B6Z[2$\RHNE*Y;8P6XK'ALQ5>XG7CX?
M(&)01' A34</]8Y1&&D35"%LE.Y55@:LV%>9Q2\O,AJ#.IJM[1ANNP[E[Y:1
MU,T6X(_KFZSX>C-9[C-_#GD1G_/%PN=%&M1DTVMU(D%3S"3&1C.EG$928 =+
MPX!8-T*O^M@LI#'SZPVMGEW9J&$7SFX. 0&IN=0D;GT444LE8P<>8"7Z]"5T
M'8+>L9#VOY9JL?#ZE]'3DAB#K**G4P@ 4(89= Q)I3$52GM><D!:6/]B8GP)
MF&]E$37BX/6OH5V%@T'7T-,I!.V=Q))2;SBCC%D<.;'G@(L24M][.+Y,T;>R
MAAIQ\/K7T+Y.V<#+Z,4L4H(=5P1 ;25"FFPM@)(/S(/ZI]'X$ES?RDIJRL3K
M7TP'1ITM<38:U\,E,XW\=$(CQS"DVDEC==PH2W[JJ+%?BXKXEGT3'3+TS[1
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
MI'(17_)OZ_37HVRN-C X9CQ#A,0MD$,AG"62EQ0XJD;H#^F"U9V U5O]E1*
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
MM*ZPMH3-X&;O/R>IH?;Z?F@;\E.1SS;3]?OYY/?Y8IO\NYUF2G:L8D=6&1X
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
MJ''W#&B?B6>N+AJA]M9D8QB9.-,G8*PB,8PHO$3C%47Q;"N!"]X2<8!Q%S;
M0H>@ETI1"4L<$&K01JXSKWA3AIX]6-H"Z^U$5F@G(X76&2:P,1YK@,JUAZ0
M]4L9#G5U4E?%;1^LS@WB)T;GH;S74[NX<]/W:6[WQV^/KYZ>%^(Q>?$C+^)O
M]GGA7_.4 3Y9WJ\.>>/[WWQ\H.% 6.>D?)G>9+/-(NX2987 1TV3\\5\>C^T
M(?]R7BZ*P&T$K(HU7V%T<(0R;8GSB!".K)+*EDJ\5YY4\I1U0_LI[I1TG+/P
M*[\C2  )<IYXSAP#3'DCQ!X'ZV63ZF_M&ORM\C3O!ZT^G0"5^GA^SE9E.\L3
M#7N?/16DB.< =$(PJ0"QPG"J2Z(A;%*.JUL3O@.VYFVA5%.QNI3+)[NTOG@N
M,*PAD)1H:%-C3(,%)B4-7 DQ3M.\$3=>YV@C/*Z3MZ,RK8=C:7^L_#+-EBF&
MY5.1W:5(EL7]YRQJC5&I/&H=5QD6I(RF@> :2"XC,%O?Y)Y"!ZBH'_7927_>
M!AS*.P.EIQ6L9O^Y6:W3WTYR_,2(P(TQC!HE@248<:XL*A>%8Z/JA=4>L]O#
MH[= @*/ZA[[_&F=RYK*ERO" F($@_N&:>D&QEX#SDG)N>(-,_VO5TCJ$;WC!
M21,_ZV6O,CQPBCGS3!IF%$'8*: /6R-4=N3W,>TRM[+D-,;OSR1!HU(MKT=P
M6HIDW,UEOGR]^58J#)<<D*>[ 5_RCN",CW\ M080C3@5GLO2#0.B%C8>!;0;
M=N7] -=O%MI%O8]^G2]3-/[]HQBUIV]Q_[6)O_XU6]_D\3=WV4Z'.Z4#]3B+
M@"/ZVBL/I8*2&NHT**]6O#!PA(W+N_2.CA?YWO,P]W4U]G5\SDKKBQ'!>4^D
M]IYQIJPV2@D.=O1I$+>1!AFZURM935'J2PH^9.L'(3[!^R?/!<B=!818[72J
MQ&.\=JJD!=D&/4TZ2]CIDN--L.F+SX<^4EE15O ^V<OSU>>#1Q *D:+4H:>>
M:Q(A*VGCV-<WQSM+XNF2[VU@-!3_[7RQ69\LEG=D1-"0 4Q2=27K3-3GN-+@
M0;Y%?;NHLUR>/F6@'DJ#123%K>O2:L"O# R.,PF01EY[+2PP'"-^D'E)ZVL
MG27H="D3K8+5MV@<U)='18XJ",9KPP+E&@.KK+7<&\(54YH_J#RB?IA\9W5_
M^A"+%J#J2RB>9Y<]ZA,8J9E/3YH+YP<'(JVS2E, #1/"::28*ZFVJEH*4K_-
M;[L4D-8!ZSJ&<7N#T4U(WS^S^?>;2+BZB_;X]VQ[MO;X)36;;5^2O%O?\N)V
MZQ+8Q0\.%CZHHKC-DGHQO\N^9/$TV>X<N]3);+9S8]S^V*SWH9S/-9/W%6(,
MV_I$0)A1@S0EG)C4\$=KJ"''BC CL225*GMT'8C8D-CJT8IM?"@P1C"7GB,D
MF#94:DG,'E$N#.K3?7<RI+%_$3H:]S@ [J/.D&R(A[Y__05G[OD[_&I0 ''B
M+*588@4PY%!NF<.=Q421!@UL^@H/Z%=&\[&RIB^%]O4)?YC<GK\T/C<T<&8-
MQ%P9++301#DFV(YB1P'E=MPA!Z.0A4KRV1CR/X.PC3(ZX4W*V$#^W-L?B_P^
MR[ZL\^F_/OY(@)U-/STZ)GAHXZ%AH"&"&8*49]!'&E/73NQ\DQ[U7=GA[;'M
MN4.W)9#Z<]&LUL5\NLW:BS,^*P2O/A^PHM (P*A$'#B"$& NT08 !9J3^IZZ
MSJYP.Q. -@ :]H2IO*&>;0W>RON#H%P2I[2 !FNJ (" 0 Z,A%Q8I7N-I&LB
M7#T:L4, WZ&W\%4?FYDLIMMJ9HF"5Y\XZ7#KP.MWUI^Y!R;]W^^35?:__\?_
M!U!+ P04    "  '@4U0 2@'I7I8 0!;:A( %0   &-G;G@M,C Q.3$R,S%?
M;&%B+GAM;.2]:W/D.'8M^OW\"MPYCKC=$=(TP3<=MD\ !-BN$]5=Y:KJZ7.C
MXT8&E4E)=*>2&C)35?*O/^ S4X^D ! @46.'I^N5RKWVVL#:&^]_^5_?[K;@
M(2NKO-C]ZU_@7ZV_@&RW+C;Y[N9?__+;YTOT.7[W[B__Z]_^Q[_\/Y>7_P=_
M>@](L3[<9;L]B,LLW6<;\#7?WX+?-UGU)[@NBSOP>U'^F3^DEY?M#X'F-]M\
M]^<_U_^Y2JL,?*OR?Z[6M]E=^KY8I_O&]NU^?__//_WT]>O7OWZ[*K=_+<J;
MGVS+<GX:?NKL)^H_7?8?NZS_ZA+:EP[\Z[=J\Q? /-Q5C6T.(_W'O[WX_%>G
M^32,HNBGYE^'CU;Y:Q]D7PM_^C^_O/_<^'F9[ZI]NEMG?_FW_P% 2T=9;+-/
MV36H?_WMT[NSZ**?ZD_\M,MN:KX_9F5>;#[OTW+_/KW*M@Q&\VVW97;]^E=L
MR_+)-]0,135#T*\9^I]O?/'^\3[[U[]4^=W]EM'STP3\$H#W+\'J0M>0\*L,
MR#%6GW^A8KQ?6-?-U")^^96*,;<-C>XV.MKO\Z]5C%TM9*TMH]BG6\4MX\57
MGL6\K3_UGOVN^V#][2/RVQCO1/7DB[-O^VRWR3:-:#[Y:I!O_O4O['>K0W5Y
MDZ;W*Z9;^ZS.2Q^N/^^+]9^WQ7;#&C+]^R'?/Z*K:E^FZ_TJCNTP]GS7"C%.
MH$/CQ+9"*_)H&(6^[46KYLM7V>[RM\\]E.:O=!C[BP@W+UDOLZHXE.LV93&4
M=<9N@?_;@ \4U^ 4X?\+6HS@CQ[E__\O/QV]?$)SL7ZMW338KM/JJ@'8$<*
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
ML1FRI<H9_M)-G"->J?J8/M:WMM2[<EE]6![2;37<@14@.T@L3%@52'SBHR"
M3"4C/THHI2[D[5Y33.CK6SVJ9D-FCVNQ:^)&.!KI52J8-:-+*?&D4-_NQ#I3
M8R;;O,_3JWS;W";<7AJY'^PBXGNQ9T-H1\A*$CNP7+^UFP3UGG>1 <]T:YI'
M.W&QJ_;Y_M#L62BN0=H"!MFW^VQ798+[+Q60RZ=7\_(JIEH=-G "[J*[&G>_
MF'B]2=B(A*DCVPPA4^A/H:M92HG:YW2;ED>C*P=C&A,7!21! :;(PS3IC&$2
M0:$U/DD3FN6KAW,!UL7=75[5;UJQ/]3UPGWZR+YU"_;I-TD9$Z932+MT,BDG
M6$<R.TR+2-0S7M[6)5DBC1(C:2=>5Z!IG C*#BYVA^IH"X:^A=C QXV\$"*(
M7>1:M2UD6;X5.XZ$Z@A:T%XSW=VGNT=PU:*2TA91SH2D12-=<LK2 5I66)ZR
M\K:N2+)HE*S(^O"ZJDQB1%!4_I:NFZ6OWEB,'$JM."*)YSA^Z%(;^KTQA\98
M0E5$36B6E1Z.E)X(TR4D*#J9DE.4'M&RDO*,E[<U199(HT1%VHG7564:)URW
MU'S*]GG9',Q VVWQ-67>KF(+(R]P0Q\F%/M.0ET,>S-NPO<FD_27:Y:2_D&>
M<H &BJMM?M/>Z"!P)8H4<>/2,@MG8J)R1 ,&.+I)$K@C1C=9<O?!G)"6]K#
M_TY99?S7B;>_O.+O*\HZF1H#;G69!+]0U$0$%Z/*8G-8[W]/RS+=[1^[6?OF
MJM;\.L\VO8I[B5?;]%R7%8-VY"'/P[WU,+*%1H&J;&I6W1Z?N-8J)Y=SU6\!
M7@57 %N$8*"VP[A0V<=)V-ARH&+*S2@,E7OU?)E0"VN\DH</5;[+JBHN[J[R
M7=.O/V?W:9GNL^WCIVQ=W.SJ!TN;1^?2==/M3U8 CA]865%,(BMP78="-R:>
M2]L5S1I>G,1"*XNS@=(LFFC]]T->Y<T-RIOL.F.!W#3S]ZSI[?/=35U?;(_
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
M=J$=_[2R4(Q@8!$W1#B 7A)2'/3FXR0)5_MBGV['D[URHT*9?,#'K2-'H;\
M7^H?5[FU3(3;\72]**UBN9ACNYA)>[R.?Y+>S25!^_>P;TO&+:$=6M*\\2K?
MN]T#*RR*\O&51U9LUW&<R,$TQ,1.$M\-_+!Y5<!+D.<$;YUE4F%"7Q\<4)GP
M'-$(12-=3@6Q9O0R)9X4ZIN=9%_ZE'YEA4U6YNFV^C7;UZ^25EGYP#IQX%C4
MP=BWJ!OYEF/Y_4,=S'" J-!Q( 7F-,\!,&#U"*-%)E8UJ.!24)[FH5%2I2Y
M3>: [P(PA.TCQRW&A?3J+&<\LC6=<,/42X%#YT1,%5?"6O9[4?[Y;O>Q+-99
M]<RRF_@>MEUDQ_630S:.'9?TEEW!5]M5V-.L9C6RRWQW>=]BD]2S*7P*"MI,
M5$HK6HT/Y#O0(31%T\[3QB-J"D@W3-54>'1.UI2Q):QK2;[+J]ML\W-1;)Y9
MMG 4H] A;N3!R/.AY;O^H*@V#*5T;8(]S;K6(P,W-31)69M"IZ"LS<2DM*P-
M?#8 35&U\ZSQJ)H"S@U3-14>G5,U96P)JQHSMD()B;TDBGSV/\])L$/14!#2
MP*8B<]1"7ZQY'KK'DH_T(07L"*J1:F*D98<!64A:F&4>#1%ARC"Q$()^3A7$
M_1>_D@8?JGS'2BFT_OLAK_)ZO;C"CR=_:A]GLQ&NS^]&C@L=#WFV%]BV$T#;
MPS[U[$3L E/5QC67.Z?O&_:(P2GD"W#U>/H74]^65!43/F%:-!QBXJ4^$IHO
MK.%C=$0+M07'#+W4Y][9FVNT\,BKNZ\8;]ZA\U 01PY&B1VX ?(2W[+\SEKB
MNK'0(V^R-C2KZ&O]5>HU2FD.^>1P#OK$5$^&.2VZ=H::$?F:2J89*C79BT)M
M$YNN.?5ORRSKWCCSHM"F"0PL)GAL4!GX!+F]W<B-\53U$;.V@ Y=@!ZCY .2
M"CB65R=]]$[7*1%F9].L)X0)JI<<V>;JF*0_'(HVA2FN8QF?#RG[?5S\]?U^
M\]?N!E??QF$<.K;O>S9*8$0)[<NV)'$\_ING9;Y<]SBT@008I@M0HY*Y75F*
MLW%IFH4NP7'B4DP)G![0S9C<$0!QYO@V[K_B[2O".YD8 [;03X)?*&H@ BH:
M%W?WVVR?;;YDZ]M=L2UN'CMC)* D(!X)[=@F44R0%4:ML<"*XMCAUE)Y$YH5
M=0 &CLADM&("AQS:.@]]8@IK ',"6CL/@W***\<DG^J>]?N<]DXGR@ %5N!$
MH;3Q"+['>ZCVQ5U6?LJV34NJ;O/[_H&"R,,T"OW0J9]MH1Z*+ A[BTGD<)6W
M*NSHUN4.&GB"3?9)WBE\\HW*YZ)24*,E6=3S%N]YBD9&X"J(-6/LK<23YZ_P
M*F/G+6VJROWJ$VM;63-/26G]:*;#:M' PW%(2.S0[KOK>_VY5BO$OE&SWC1
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
M0PD5^_1\K*Z!,5XE_)2M,V;Q:IN],$ALUX]I0D-*H6TG,0R0U1L,8LRU%*W
MC&;-ZS8 5. (44S?IC#()VHSD2>F9">@S-&N\TR-")8">LU0*16.%,J;GI@>
MU67&CI'X^-P<]0AJMJ_Y5ISX 61#X:$01)8C=*A=VHAF+>IQ"=^:*L\:GP+-
M0IB8_@R0S%&?<RR-:,]D8LU0GNEN%(H;G. %]F5QGY7[QX^LB>U9*5:78??U
M6.?%WI&(V(Y+O,"*(+8]%*'CRDGD.$)OE"HSJEF5>IRLH]5(V^'@ %;P3GME
M1/,)UR(<BPG9,WJ?LFN.N/$R.2)VRH-AAOBI=^OY??AZ>.,5Q_[I)6;Y^7-^
M_3_UDW6.']F>3R"R$^H[Q'>0?2+.6$0=U5G5+(\_2SUVIY!4/B5<AD\Q*>R!
M=!..+UXH/3Y79XHJ<K,Z(HOJ(V.&+FKPJ]#=ID4'JT^-GCQ\VMFM'UJ*8AH3
MQXF#",,$^Z2WZR6AD").MZ9]^/JLQXH.8B>SR3N:G9-(T6'M"]7KWFUN\)FC
M?&^2.#KJ514 ,Y1.H3\OQL%JF>)5ML_,["8M-ZSTK!_9_#TM2U9[=J/QE1<Z
M?D@\0APO9&(:82<>!N&6XPNM#$RSI%G1>C3@P]4VOQ$YHZ:(2#Y!FX]#,3'K
M<8$.&.B1F2-CH]2-2)@:RLV0+T6^%#H:I>@YB;N[?-^_3S(\9E0?ZWT^5G80
M*P%C5@@Z08 L*[!<,AS40*&=B)V:4&96]PZ/4VRB1R?4<<NYF6,96@5W=!Q!
MMAL[3F&:HW/\7(YM[5 ?$#,44(=C+PYD:.*.?Z?'0[8[9)^R=7&SRU\[%N*Z
M"-K(HK4U*PABDD2TM^M@2VC/[W1KFI6P PA.$(KN^YC,)^_VCSFI%-T%\H)%
M<S3O3>)&-X6H(MT,A5/HSXLM(FJ9XM>S*F.?O27,_K9HUD,:8;V[/S Y^%Q<
M[[^F9?8<B^4&B9LPTZ&/'40=*SF>SV5%*!73.!T(M.M>"[HI5DZ0BXJ?%O)Y
M!7%IWD5%LL5[<<KW15<MMJ!!C]HD]91@>511=4;-%)75ZN,+Y=7/*/?=<)N'
MK-SG%2MJXZ)ZN7LYIC&$@46],(;4BFUH66@XR^80H860J;9T[R@^P@,-/C%I
MG<PDGXC.2:*87+[@SQQ-?(.T$?531;<9.J?,F^>W\2EEB7NQXY;))$ZKK-'.
M;%<U$_T?[IN' ^NEY353UOPAJ_??].?2"(DP)C;Q+.+X@6,1+W('%86!T'9D
M'?8U:]SG/0O'98,9G((67!S103SGDLG"G LNI-1H+Z]>T'T!6L3=AID.<[.1
MT)SK"B2H'EMXT1@X,\15JX?/%VFTL\F_EV9=W&5?TF\OSKU!U[5A9%$[1+!^
ML15"IS-'$M<6FI64-J)93ADB\2,?LGSQ;I*9@2K1O3$U), PF5,1GJ-I=/?+
M1&;-D*GI;KS8ZZ*$%U[!H6E9/S]1?61#Y=M7QLD8>7%($8ZPG21LE!S$V.NM
M1J'8ZUY3;6F6GU^S/>@ZU\=Z+JJ&**9&D\GD$Z4Y>133IA[9D4!S-.H-UD:D
M2A7?9BB6,F\*/:U2>*_+?9G=LIJ-U6=M[VT-OUA^0="!0<*,N2ZV/#LF.!K,
M^[Z0D"DSJGV?RPG.3MN$M[LHHI=[L\O\S IO=7E!JCDJQTO@^/X6M3$P0_?4
MN_5R;XL.WKB>U(B+9HS:W?7^X?I37OWYNG&<X!!#7+^ '830Q@G"_1D00J.0
MZY91Q2;U[_8[ 5K?PE9#%7@/0B&YXRJX(*^B&OB$T@\MI3(BJ)5M@5<XEF%=
M[C6.UQOTU/<XN!EX)75HHM" ]SDT.%5H;7:R#WJ_6&6BB45L5K(G5NQ;,2(!
M=(<L%?NQT(7Z$\QH3@XG#U:?7+LH^[JW.(E\9?%,_(DE@1-0YM2_YYD:J7@5
MT&M&C:O"D;,/@D_DAE>2\*'*=UE5L7+Z*M^=W@F](L2"?F1'%O%0@*@31"3I
M#08X%EINGF!&LR3UR, I-#%%FL(AGR+-1)^8(KW*G#'2=)ZR$6E2P+,9TJ3"
MD4)Y&YPL322OUMNBOBC]Y.0*3MP 8\NEMH4MV_;LJ#V,["$GBL1VQ2@RJ7NS
MW_KOA[S*U2B5%*72JJ6;S>D*!HX0P1\FJ=<KU(DIV13NC56U24Z]K7#3.9.]
MU^4URSZU$?((I,2R84A<3*U69SWB!= 6&B2JL*=9YQ3?[2+%*)_2S4VFF,R]
MX-$,C>,@;71'BSK*S5 WI1Z]<:?+=+;>TK6JW*_JIS;2;EO??QS2;7[]F.]N
M^MO/AT?/$:L< \BJ1[^^614FU(VZ\I$ZGN6_M7M,H26-NVEI##ZO;[/-89M=
M &A?6M$%&% W>VF/N,%P0?P?/?1I?9-1=-(OV9^>]TE^#E_IDAH"L&R/U.%0
MH:VQ\O?'O@%^N!Z'\)HZQ#"*68%#@Y !2&('VI'?HT$(<@VS=&/07(_TT,&[
M=^#R[<[+5ZUHC\O;XFE*2!0HZA"BXII#776405Q2.X'Q,_H[1PR7%^59O"SF
M[1F"Y\8&1+]F7SOS#,C'LMBQWZZSX;*76]97LNK=[O0S^6Z=WV^SZ@@RB:'O
M)3!,X@"%5D)@U('TH_JHF]B1LGFAZ1Y\WMVS) R8>B3I.CL^)2AZ%]_,\>(;
MKQH<*L$D<*+WS!5PQ F>.M/>?-"Z _+=TP_V'K$L4#\[L^"Q-:5Q&1D]+]0
MS!AH+^7\\W-P2\: >\M*7J4W-V767D3ZX;J[>:?I)R>G9;!CA[Y'/<?S67YS
M?0S#WC;%OM#%AFHLZM[(\@1DLRFLA2FXET4-NYS;6F8G5G"'RSE.%Y=E+N;&
M=KPH9=X,$57LT_-],!H8XS_DLFLF8'[/][?QH=H7=UG9S)HR+7Z?IU?Y-M\_
M/D/""GP7^JRJ3RB-$AQ"2N,>"8;0%SOOHMZ^_DW?#63PE6$&/>@+,, 5/0>C
M(0)\(KDT^6*2>8[W!G%3\@Z8%Q=1"69')%5GG,P06*T>OCA,HYM-D1.&_940
MS/BG;)^7325\G&(9)L@3!&%L(R>Q76;6@5:=#IH9%BN&,>2]=4"E27U=_0@+
MX&R77>?J5H>DCKUQ,C;:A=7S;DK7U>#9*^??]+#'_8!E??:N,?YA?YN5'PMF
M;4#1M]'79D9I;,44A7%$0S\)$M=+0J>'8R6^T+U\VD!HKICHW?VV>,PR\#E]
M:,_PLW\6?-=2&_]\NFD$]6(BVD%N*J,&-'B*^BBM1NR0D65X1'2U!\T,!=;O
MYO/W,N?AE5>;DS0OZR6KK#HY48)3UAG6V>?;+-N_KP/$ ./'XP?Z*O +,X4?
M_SW;W#!E(EF5W[2;(9L"<)58H6?A, [CQ(=Q7!=\W2LJ'@XC+*3>"\+4K.^U
M9Z!U#3PYNM5Y!QKW0._?!;AZ//D<& 9VM9/=T(WS6*\!W'(FD.\D^F(I9M;
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
MA:AC=DP)V7S"-C?/8N+646S>I!@';2-"IY)T,\1.J4>%OB8J+7HO!J_0C6B
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
MI8@#GR% F1^A;K=W),;%@?+F@R%&'$N)A%:G>0FN?C"K\$[@:2Q2#V)288O
M6"3J2<Q,^--8R!^+1[/%>E,^U5;B+_A^;K7=!ETS6%&WXD9IN1EIZK2H=QZ%
MN=^VZWVQJHWNZAW>VWSSI7@HMH?B:U$]K,68'F(0)2E)&<](0M,(PNQ89P8\
MU%)N>V;'T')9%$JX7H.WZ4([KT/LM9"]%K.F0%D,@:+D3\.^01+X:8C7S!73
M!&! ]N@"L9/'2.L#J,6/_&Z];69]_UCOOZ_%WWXOG@7JVV/]E]KQ4L\\RDQ>
MRD7VPS&3[.3 L>?YRA5WNAGL(:_6Y6$G_K3>WN8GB1,%(<00XP"$,($H)0#S
MUBQ*".$F><O8V)C92BY[U3"]!J>7&]?0@SG62TRCT#L@'<V)6;/,,PK#%O*-
M$=/:V>,<&PHY8S"1\\H4P]TYDQ\L\:24%=HAU(Z4#X6<2/]>E8?;[WCU(-<F
M5Y^K=7U'\6U5%+)U+E@8Q#C. $\23E+BIP'I[G=#/D!*^]Q<V'6<*[H)@9W7
MXO5:P%Z'V&LA>SUF#7&S'02%##(A_WK)Y">C7B/%3!@"LVQSW0]LEFTH]F^&
M8NC9%3V2SB4A1U3/(!^Y\JQTWU#ULE3=\&[*"G_&>6\*!S#E$<PHY!E,$0"P
MWPZ.&,S4;S$P-3!"WFEZG+QV4B#S<C.-,V-/+8\X)TX_84S(F5X"<,[=4*57
MYU!9SU_S^8)P#Z)H'@H]S(728I/1T-QZ?JK;[)9O5_*<:K7NVY(8G3S9&+<
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
M(9S&$?41B*(TZ6PB&BF]56G'DF-U[\%Y&XG.RPUVO0ZD4DV#QV-13U^/!-;
MKKP:VKORYIT UVQG&E<V+Q)U01+M$#P/N;/D2^FB"0Z1J0_K_-MZL]X_+DC"
M @ P#J(@%19B#DDWB$=)Y@\0*'4;XTK3E;?ID V1)PT*383)#7L#)>G#F\2-
MH$0]"&4-TN=RCNICX,5%W3%E1?_\D*C*JD.QZ@RNB^=;Z?V4P#BDE."$BQ^1
M&+_[]:;&* 4!BI6>SG1@UK$ND7*[VZ_WAV8 =>.U>+OMR<9'AH;3K3K[-PG3
MNM.!Q[WB'<$G.&>S!_QM$B_.&5J/Q#P4T(5C9X_^6.9.7R?%J'9U6.[_D5=5
MOMT_]@+]#$;*_8 $-&8QA!F#-$8<=#"B%"$SM;1DW+5FU@/]G9QEZI!ZG[YM
MUK>YP<M']IG7%<X)2#>7SQ;LD?@>[HQ45(U1)2VU')RY*:IM]\[JJA,>E4ZV
MX(=\O9%6;LIJEV^*K\7R4-7*3HMO^U_S??NGYD&U]4,AMXG_FO]8WQWN%C !
M(0A(EJ8^\9D?X(BR /D^"U(!+%%ZX<0]"L=ZVV/R[AJ<CU()UMN'HGF!2N<\
MB-MH7);>>05"3X-[V.\$[G<2N'=$?N5)[-X1_)5WC)G$?^6U'LPF4AI'?&83
M,;.S0*XCIW9X: B)KR3*\0(S@^-(X_A9CMWD-7)H^^GWO>1_NI'WT>3;Q_?;
MSWFUWXJD\GU]O\A(G*1!%,A=]31),I)$M#&-_2R.E79[6C7H.#.V,$]RH<R,
M^^_UTW\2K1RCW!_Q:LBO-<H5<N(4;.NEOX[H(T3OTXW7@A1_ZWV>EF2-=#8%
MV6:92[=U_VU@CE)DYEPZLDWL##*/=9=*APUQP(S7?5'M'S^+QK?'VY5\H.2^
M/J];G]GB/(P@AG%$PLQG* 8H]3OS <)&\RU#[+D3N0[8E5=#J]^-[<%-<U!2
ME375N10;Q,]P#L6*6Y?F3NSQIMH_SQK-'J_%A^K-_S[+4$*2E$,_)IDP'_&D
M5X8@U#K<8\.>XVKO8O^\\B1,HU- 5JA64\&Q6;8H@&H$.U%!!=8N"*!-SN>A
M?58]*MVU4$N*)^VVAPP@3R((60 !1Q3%"8<IZ2RGE&D]C6C#WAP4S^A8DA6R
M!VJ>(YX=:-XD!Y<4>#-1/0/69ZYZ)AZIJIXQ6ZJJEQW6&WG+97LV/ (Q"UB0
M1-PGF$5)"G$WV M\GFH)G.:G'6M9A\;PS@E=GM2TR2%%>C*DSHX3K7G*PP59
M,21L'@IB"KZTTFC,=.']W7U5/C1G;%J#<<I#GH$X#9(T)5D&(M257P$1 U 3
MC3 P,Y9>G$(;*!XF9.H)B6,>#45%CT*G"O.2( 6U&<#JO)1GB"-G5&@P-THK
MD')F^B!Z\7_FU>J/O"I$C?2UO-G+'UNC#!&.0!B*\5\<) FC81IW1EF$E53)
MDBG7^Q];@%Z'L!XT=!@U)<H6NPK+C.,2JR=5+SG%TW.JL:HX+K=FZXEOM-L&
MY]!%Q#>).+=\:(_!&2P<6G2F=-+*](K1?CC<6@F(GS 01C!%"6,9AKYH ZV5
M."98[^$PW:_K]!2CA\%^S;>'FWPI=_F(XNFZV.U/UP&-*E!M!M7*3I?4Z0FX
M!D%.ZLMG3%PH*DTYFT<E:8R^M--R](2#'ZKMNGY48;OBZQ_RIZY(I4&*08 B
M!@D4201%8=8K58PSK1,T \PXKA5[9'6N[; 9BL@0-M7T9"0B]:3%E$,G.G.>
MH0N28X'6>:B/#4=*ZTW.TCKCA_Z6&N"'&'$ ,P("GX91B&G6&H:0(:WW "R8
MFW*5<<"57S:('KC$Z(9CBRN,$U[)]39I)LN+^HS/0]EL.J2ZN&C*U6"E^VU7
MW!PV']8WQ2(5(W@0$;E^@>1HD;"8=Y:S.()6I$[#WK0[*AJ@GD1J2>MTJ!XH
M=HY8MJAV:@2/JW9'UDSDSH#SF>N=B4>J@F?,UEN*MZOV"W*HJF*[?&RVJ&6
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
MUA+M/,'1&_/<L<S:H9I:+'EAGJN'G=ZG%5:K7-853M>?TGQUN2'I7;Y+UT=
M%@%!;NSB$'+L8<0QP(1W0NWYOM*9A?'-&5;/ T)'OI#X3BC7L@:I>&9! [$]
M3RY,RZGB^84#G1*=# 0-O@OG6,\F/L?P)F6G3C/HX]L.)=-IT-.3#;JYZJMK
MG[-=FF^R%4NW&Z&>)5HN][?[=;K+5C2[RI?Y;H%(R!/1'A*=) 041H"V#;,
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
MVC+,?+W'CF!F%R5O+\#,[:\Y0N7EYE[\?K%]6"#FX1@B%S..:1QR&@6TQ<J
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
M07%4@.[1NR6M<=V3)67U;K2T[UUEH%-;6%6<.S;2J:P<6H5P^F[0<U)X'CU
M<:)GR/E-L4%GMC=NS'GK5%B>OXM8$FPM(.+56H,S^Z9O8*1YN5P7I9B)?;PZ
MCOJ?L[6\\$6*4K[E_B3HEP=4<1+%P$,DCB(:(M]+> QK5(1'+E.JD6X:B^D0
M)RMRO<//EK/40I1QA_2+0S;Y0BW8')#+</-H7;$![U3H+UY:5RQG?#!M).4G
M(L94SK0C+$QF;3'/D%$3^'HJEOY@/R2@#&>;["K?+:#+ ?8!\+P@B+#+0N!7
MBVHAQA'&KJNBVP.;,"S']3Z ?/>WP>7\TB#[54V1AS+83V@G($]-/X?P9D0/
M7V;FA,R-I-(.]1IK1*&U>ZEI#;NZRI8[D=1>;I8BSQ7-?A;*)Y]\W2SS=5XO
M)^UX)I\^7W_9I;N]8/KAT2\O$D9%?Z"8,9S@)  T#-P&64R(K[2<,@4>PRI6
M@W'DL])9,QS3G?/'W[[\S;FJ<3ME"]Q9%MN[8BOW,>7ORR^F';$:^#XQO*?T
MIAU:,*G%Q7QC1[_*2$!9-<L6L^GN][)R 4-. ^Z[!,:0>9@A%* 64LACIEM>
M!@,Q/EF5,I%WZB(/1FRRG9PRM;KRK8X5:LF26>?T2ZFL\8M:XM7!=AK1ESF8
M1.X\ABXFKI7SZI52N1AZ^'WIQD^9^/S-ZWZ;3?I?XWRDYH]VY?F(_7A3!ZB\
M)GYURGOSY.ZCWZ"Y^,.MZ/AYNEY$E(+8@VZ0N#$*7$ 3$G?08N3IEOG1@,P?
MSJR>BF[S0F=U!,X^I7B+SI&*H<U;YZ,<^DP>H"":^=:I).*;9)NM\EVY2&)
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
M6V3K_'T<U<YUJO:&JXQ$-UW=X]SCFS8>M$4XO9XQ'^..5DDQ(01Y$?1PB"E
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
M$,N$0A\Q%HK_4.ZS3CGCP&WNTK*-RF%TM294I.0QFMYB<I87S/OR9L>X'&/
MVQ?,U;@8>\$\#H.$Q$D2D0 0+PZ0VVUB1LQ#@>J@&-K.="/CW*^4]V72CK$R
MVHJ>5\K56.E?)JK9Y*5YN10ST/TV^YK]V&%AX5\+%,?(BV&, "6<<@Z]P(]!
M$K(8<PCC0"VY'=64\12U1:?\+.8X!OOM8T]&G=I.]>&$P &7\Z=$YE30)B_+
M]#I+)V1("[EV:)$>4YY55]+&CTHLS^LIH<BN25%M2XNT6[YH_ *(!&,><S^$
M/H;$IS@&-*Q 0$P9C[CJ@RP:FS9\%.@(;?7VW".\ZJ^VZ.2\YPF=^>A6/)5S
MBFD[]$^-RS<2,P-.L4,C31GW0AIGC,/>:P39M43P.;LKMK+]EUJ./ ]R#%P2
M(.P%.&$! K6"4X]S@)0*56AHS[!B-A"K,?P^*ZZWZ=U-OG0N-U?%]C8]>7C.
M',7]M')J=M4$LB6V@V>'*/8@[=1*CD;*[9 _K18]7>O1SE9?H6O?K/B4;:M)
M\Z$]N<!**45Q!" E,0D)\&IA=7D4PD1%WH:W8EC4_C/+KV_D6Q%(S'W3Z^RM
MV]2Z.>RG7]/0IZ9:W<,U E3-VHQ:]2I!)Q1J/*EVZ)(&.PK=W4TQV5K>9*N]
MW-3N9LSU;E']/.FA^2 )?."3"+BN"SCR0D!8+8$)]$FB=(M%6Z.&%6KP\IH^
M5GLF67,0JIAI-1#E1GD'\L)I8#;O%COS95P]&3R5=NEV@AT:I]^LIPF8&=[>
M4L#E]>:'G/#>%1LYW_UX)6\/RO_(#;_[=-U,@B\/)]=J.(\Q(40!D<\7ALQU
M0YR$*(DK3"$E-$2]7ER?!HGY1;T&OQSA$GU]P=8Y,J*:OU[V. HXAZ-.*ZU]
M/E)>"6S=\[%VSW/OH,?><6I)5E#F.=RV*I9[^=?5*L@9N>\1[H&CK+KN5/V_
M[,D@.SIO^[>^@51R),-CXGI-<-3"V@L1<UIOS!M&)[:UF*._#YURO'[I0)86
MV2SS=5X-CR>P/.Z'2(! *" "6,1]Z+>P(,5LV%3$$!C3*\/[V]MT^U#=HWYT
M[%Z:H!YKI_.1ZL3& O<,G_"@YS<B#OB=QP98-!4:QGFO*9)A=]HV=3)M[JM3
MJDEX5E?^PVW8^B;LLT#4(:&<^H!X#+N8N2'P8X^[+1*4J#WQ9Z)]P_K^?BLO
M6!W@5H\H9W62Q]-\6Y=:=H2L&-)_C9Y2E?QYG#1<Y9]X25Z+.YY.V:/KO8GM
M)>7ZW62;>ANP\%7!-L6FRMG:ICW2W(?+5OA!G@79ILO=/EW_ENYD"'F@Z>[I
MA"$)H!= R!(!Q$LP RZ.6DCRT*_:>ZP&@1A6[;I"C2R&U&)T),A2=YINUEG]
M]-H:/ZD)][$R'W [WQZ<(^2/W3>[@H^A^HVSQ,8]:(>F3V/J"V>1)^)7Q\7B
MHZHT_R&PY5</^>8:E7^O*BI5=YV]B"<(>V)&(,)/@GP?PWHG&D 6A$HJ;Q2(
M8947$)RL*W;WM-3+"^6H[+D=_!:U)]1B$H_9H1;3F*IPGU<SO_HJW?V]6*\$
ME$-IJZ/Z,<\K6U4U9#@/,/.].,$QB"B/,.(MTCCVE$[PSH%O5FWI6T;*#L$9
MX88!.C2%T^V6ITD84"Y[9]H;8\7LI5H)=76$%O(K,.,$Q0P@C_(X\@!EE+%.
M<\.0N#J4S!BX267LJE]%%;4Y\/3^[#<OMMJ5:G/ENK[V(UO:RMR_2,"_7CAM
ML9S6+.?(+N=]%;.JWW0:XYZ^I/75EMHY0]TS(%(9[PEVARGSYO>,41/YH?\*
MK 0E/O^EFR@48!?$V*>(PL#EGI>P>CD@ A@$1.D8]JB&S <.]9H&8WCKN]@Y
M$66JBYGM,PEVW%\[1=/)A4@-[-HA>GI,>;:0J(V?OF(D]YBK+>8/>?HM7U?I
M^F]9*IM>?=Q\EBF\U$2<EGGYQZ;X5F;;>SD=O=S<[7<O'#%8>#Z'80(Y\!$
M+,:$)A'W20* 1WQ$E.;]DX,S+'J'#?T+Y\@DI[5)3O@[JYS*K OGV#"GLNSE
M T4]C^W.Y_A^"FRUS]54>R9W&U%\W6XY$25FZP%V1);YS"\L&8D*]WM^2S?I
M+LO^L]C^58KH^;??LMMOV7814!)"#Z,X8&X80N@SE#0M44I\W/O6SL#/-QQ'
M&E1.!>M"3M5?OP2@C[/3^CT576H2_ )3SI\U*I5K+D,I4[B\,@%UPZZD#**P
MW]63EVU^[4+)2(8LN"8RUH)"7W]1N4-YDZ?;XFNVO-D4Z^):1($/'TC3' ]B
M 'U"6,@3YGH1=#W>-,<0![V."HQNQ+#:UM"<8VR. *=R2VX,@SUD=RKRU+3W
M%=Z&Z.\H E5N$$Y$Y,#+@4,)[7D1\'7C7Y-D'7Q9H,M:S"@T]Z/9UG$^Y)OL
M<I?=E@M$_1#@""0)\9@+6(*##FKB@7BFM9S^ ,]T/4<:Z%06SK>HH] +)E_8
M,=,![%C<Z>-[VU=X.O],L\JCWAU^NI6> 1286^T9ZH\98AU)U\M]O1?\N5BO
M>;']GFY7"XC" %$,.?)0G$ W@L!K<7N ]*KZ8@_:LXR"LKI,9ZWSI[37:0R>
M+R@.[2Z31\@)>HH-X7)0)[$]>K[LNVE"Z<A^\]/%U;%\F NR6CRE''$;L'+M
MXC_SW<TSC$^J#I2/36JM?J@^:^'%7A03'B'JA@!Q$F!,6ZQN',+F$:0ONW2[
M4XRUD^)44<VG)O464)Q=YQM9.M3Y]L938S9Y4#'P6>NVX<'NR"3GN[#IA:#V
MM$+,Q?-(V)E6?^Q,L4VG>_K$LUFZ@V4Q;!X.7HM;,WK$=*QZ!>J7;+=;5Q]2
M+H*(!%$0@"3R*[">'P4-8(Y=C@>\,SXCVE[Z-_JA\4_I0Z5]LIQA^][(3GY9
MYF((#7C;8D[_F@UG4_G4MIAVX1R9>!ZA[6U7&8AO&OO'>0<YG41HBG3:?=,W
MW!W-)#OLA^>>9:$WX(,(,I_YB4<X2E@;8SGRDTAE)7-D4U,L0]Y7U=*&7C4<
MRV6_\# AC6H2?P3LXKCX''J;3B/B?)JH$P*KB6$[1%*7,8617FC#.A+S7!X)
ME!%,0II@H:^@P\J3&*D^ICT/2O55).6GN,4?]%E LBK3LFL1H:\3[9".F3F8
M9!%!S2-]A>I]4:R^Y^MU54-])\90+L"ALLQVE[=WPHY*(PG$/H>1YR+16@0@
MBT.7^S0638<@)D0EM]+2H.$,J\78O$#0HG12"=/).YQJ29<>JONE7I.SK):
M/2+X -"I$#J7;Q-L1+G[D'9"B+5R;H>NZC6I,-A'^ZE>N=TMI)I6<BO:/:H]
MMEP6>S%Y/;J07%WE\J&+4$+CD+B ^RZG,*Y+]\11Y"9QKPM6^ELUK']?&'':
M0KX7CNN] \F%TUE0#=J##4YKQ.,;^PHW=0UXY;1*SNL0-:DT[XL^6BH8.])1
M\:^G&JI,Z0M":LXM\ZJI0;L*TQU:+9L\8%BOB^]R[B4?Y_F<R:PW*[^*ST(_
M\G(1$@Z(F&@'/$0,1WY,8-0VSH-0Z=2AIB;G5=0#]FI M^@="=_Y4QJ@>!10
MER/Z99LS^$"KB(ZAWT@FVH_0$[FH9H_8D8WJ-JHPVHMU*B<M;M-\L\ ^1,0+
M0N32*&$)B;@L*%DW'218:1ZNI4$[5?//&KU6R>SK 1V":8#\2>3R3=YGT,H:
MTF"E5'3%.>BDJDE**CF(K[X:^<=F6:S7\CT2D<%^SI997BVEELU]4Q(G21!C
M!F+B4DQ0  EL&R6NJZ2.(YLRK(L-V]5C68^0'N9_!\S5&)6OL\AO[O;;C>*]
M=%WL]U/&"8E7T\3'/!\A4[Z5KD?V3A-U0O T,6R'U.DRIC#2"\>F@!^O:':5
M;;>9+-):K8RV"(*$4C=P$Q('\OUX/Z:T0X!]-:W3V:YAX6MA505"7TA(!DJ;
M5N:'9H#3D&XF$;QP'GFFWL:91Q<5B%7*"L>[QP[%-&+9FSFB+O9T;O!\Z&YO
MAYAZ<<)CA #P@L1'?L!:#)[X0O<F3_^6[=_H^:!:PL.0B_3M^)CQSN2[/GT<
M,_G6SX<3!3/,^NA\MH &V#9@&V@H@WVSV=^*^^K@T^7F](K!HSN]/H#<Y3'#
M7@"X^)I'?HL$,:KT)H")]N=0X]8.)]_T68(;43["B,?Z9<-S.TN#.!OQDY$,
M>0#9)S)EDZZS(V,V:F$QW4#0N2&%ZY/5"T:QBUCH$4[\F(0BCP>@6PGQ0ZQ>
MV4!/N^IGS(=4*JC!..G..10M**Z:IZ#FGO:^0-O@;1!5VNT8N)IM4MH(&<:8
MGL%);M+MM9AI%Z0H=^+[[,==MBFS1>(+$I'<I";(0Z+YA+9G?F(O#I2NR)E!
M8#C!:F YN\*1P.J8W&!3?*/)D =T;!]/0?X4^\D7#EJM\NIBQ(53&]5Z[MAQ
M-NGL*]0/UMVQKCP''1YMHY(NZV%4TZD>,2"65?]>($_D;9[K4=_%!' .84+;
MYD./1VW!#2UG>_HWVTL2'E?.4-W0:;%H/:RC0*R6 SN:&9U49#OP-@GI@='A
M1W?4G7(.<CG$++4C/$-YTR.*AZO9Y2+T@D2T0Q!#7L!=0D(0MNU#'FD\[ZC2
MJN$DM7K<5:<:*C&J0PY-D3F-'EYNEMLL+3/G%YK57_TZ6V&(WCP/5LDAOCH'
MF1QDEY).#F=.[Q(<#5!"&4PB$&#BQXBS,&[;CCF(58M"Z&E5?0%.N<C#T?*;
M^-N?>^&M+]WG,#25;1JT\*;&6.^Z+ODFWV4?\OOLZ9WE$MT6VUW^/Q6R9E;Y
M>_9C]_5[MK[/?BLVNQN14!'D0^(E+H,DA CQ@ ;U.^N^ (B84KE]LU ,9SGR
M52;%<HB&J>^7^5C$NEHZ5 -_5R%_5G)!KK4=H6^7UBX<:8!36^#4)DQ<3&<4
MW2=D=R(_VJ''4QG[M [.E!R;4?#_RM+MU^_%PD,!Q"$6DV&?)3%//#$/;K%@
MAM0>>S>"P+A>>\"D7O<FVH1,F^!X"G66N(4Z%S9K<L.M-BE6]=4Y*K"RC:.$
M=QBC!O56=-9L(: D@$$<4$#]6-ZV!JA%DX"@UX.[IC&8UUS7N.;V(]N8ZFKG
M>3K=E="M5UX)4J_V*GGL;-57S<KQ^CN 57,*S,5P6>#83^((41)$$0$X =!K
MPX&($5CM35PS$,SKKV=:?_M1;4I^M;,\F?I*Y+:+K\2H57N5W'6NTJMFY&CE
M'<"I0>$5O[M K@#C)I"[! <@09@POP438M\S++Q]()@77M^X\/:BVICPZF9Y
M.N$5?V.]\(K?U2N\*NXZ6^%5,G*\\*IS:D9XT960J X1$U$ N6X$, H89#YV
MW:1%Y /?-:>^:C@,2_#7FVR;I1*122%6I-Z$&IMC?0I)KCQT'L+\B&AMZCS,
M?><HT0,M':738]CM*];M&;V/5VU!^*_9CQT61/VU0"$!'/"8NH$?(H_R #7G
MJF(2$(^KB/&8=@R++;D1_\I*>75X=Y,Y)-UNJ[H.]:M4Q973(E;3XE',]M/:
MJ4A5T](6U3%U31ET1^)S*H 37[L^0=4)-=1!L!UJI\620G_W4U.KQR_V?+SZ
M8[,5W[G>Y/]3E3;"V2:[RG<E^[%<[^4;5$)49=V-3]EVE^;R@O#7@OU(;_--
M]>MU0<9'M[F!'V&/1Q!"#_ @1B"DU ?<8Q&@,()*^>?L8 WKYF/[Y&@_MK J
M1=;:>.%T5CJ-F<[!3GFOL+6T^K/&UE'U-&9GOZ>&SX[37""PIH,8B2BF'7<B
M+%G39^R(;?;045@ZME4K/;\(<X']A*($NYR+D.XB%V-(VM8PP5"]W,C0EM3O
M-XPH,")T:WM4\CG?+(O;S-FE/TY4+3!4=/A%MDX(Q5A^[1C?HZUX5E]8!RLC
M1U-[T:W\G)7[]4X,=BX,_R3ZZK:^2"-^]U-1UA48%@ETDY! ZL,H"9CGN=CM
M!CIE?J!677T"0(9SS_?;HBR=M,D4Q C-6_1R&K\_3C/$0'6^-38ZJ?@_.9J%
M@?*OY,_N6IO$O_[*-O+O[Z313BT<BE?CI_%VO]32.D>KI8\GDL7NEFAG@B-E
MPZF,:"ZB57_2V6&%4BLQKR[K9AQK=0PP9'*_@&&2[Y'1I6Z_!=A>I5[X(6<X
MYI!#B&@4,B_B7803_Z-TN$%OR_\;+[3X;U1@F,!UVB) H_$OE NP0NE?IE)=
MTD>ZQ&KM'FM;/Y'6PJ"17)_LM]MLLWLA5. P"@@- Q@G81 30EWB-^!8")%O
M+-L?#NFL]5MN^RUKTQL5-YCTCW"[@;1_&H\;3_P;,\XM]7^5?5W)_WCW6AU"
MC!D]9@*@B_.10>=S5TGL$;H/Z5V9?;Q"=W?K?"GWY+_LTMU^)[[U(;_-=VF-
MU/5@0/S(CR$'$4LP];#7(J4>0VH5$>= V$N>QA1/?!:25MF@D"1B3_;C+M]V
MFV3R.VEGO%/6UE=-K \$:(E09OO(J' U?^?0';LZBYX&K\HFZ=Z#54YCEOSN
MAQY.GS*4C?&,>ER;I!]8'>2F8:!?Q)O0&V-W*X,@0 #$'/#0AR (_:C;&V4@
MA(%J9;:A[:CO50ZNQ?83[E3V9=?J$=S?BIX[E6JL]#X+O/]69O_<B]R5W<O"
MBH?3?)1#CW*78=\5S08QAKAYI(J"((Z4WBX8WHKA-88#,*=&IGC>=SA[_1*E
M:8A32W>><>;\.=\1W]?X.77 =S2G=@B/!CN>'N[5Q$Q?\?DH8E\J\XD/U1Q*
M9 Y961;;PY-Y!P#,(S",(I[XC(88^3A)./=Y1"'@D'"E.HX:FS4L3S5 -4W2
M26H_D9J)3S75JC%=.!U8IT8[HWCUY^V$FAD@WPYY,V%88;SCJ@F@;"_+GL X
M4ET"4)(P3$(21 D D>OYHM&0>I1"/U&JQC^R*0N%;BQY_<1M0M[4!2W+K!*T
MTUR=$#%-)-LA7+J,*8QT1#6!^K0M1(.[AT^BZU6/-_USG]_)"OR'AN/$@YP$
M /LB1_00\SRO?DX^A/(U>261TM"<8:%J$5XX%<:+^EVT%J::@.D@MY^(3<RK
MFI ]H?0QH[-?(GV;NA.ZII%W.[1-IT&%L3ZJN 2V2W?5$\ ?KTA:WO!U\;U$
MW\K=-EWN%K%'XL@7FLH8XY'O<1>%?H@YDQNZ-,)]UW'&M&%P*:>%)9>1)3"G
M0N;\V6*;>CGG!$VG5G1TL&O' --CRM-U'7W\]!U4OV<[V908U/?Y*EOAAS]*
M6?^B2U_0<I??Y[L\.P!)0"#2%IX C["( H(#%#1 $AP!H))(&&C><&)1C;ZK
M:O15&\1%E]:G'=9_5\LO3/B@G]S-3+^:" JPM?:U<)UO#\XO$K&3;WX]FE\=
M4,\FD.K$GI!-@UZR0TQ-&EA,UN/5A/?HD;2O17L9.1/P+JN=X0]%*;ZO#!7[
M@'( ?8$LC@$F,$E:J(01)6F>!:!A\3ZR2=8MV+96.1NA+>V6?%']:RF5YNY(
M:30(_3P^[Q<*K'>W6K!XXNG.($=&D=HDYQ=IU*_5R^EG$E9,..E$X)FU3]@1
MFN:EH+!HC*I.UHOE7Q_OY.$RN5#0/B8?!#R D-(PXLR-_ 2$%#6-(3<(E0+4
MP"9,GU21J-Y]2Z5^"*=(3/7IX:S&IWAP92"-?5<[C#.HNLXA (E![?RQR7=.
MC:Q:;6SK>DZ]S/$2/R<7.$81:H?DC37BV:*&!D[ZR@[-[D125]?T680X"F+?
MXP0&, H)"@#F;1,)C)4*QBE]L&&).<8B%P3ONH7YN\->1S9LKT.-P'XR8XP[
M-7$YAC&MCARW?$(]!O%DAV8,@UYHZ">*L^ZC2KX?KY[6^5T@AL(H]C$#B(1N
M%%.4>&VCC!*EQRQ'-F5Z)GQ<-+NZL]O5U4XK@(HSVY&\]IRC3D>IXFSS"9O/
MJI1//$T\R=.I"9\>@NW0)%W&/)V$Z>2HMV[)#[^\O4OSK8SIY";=7F?EPHTI
M%#,W'KD0)VX$O-B#;6,D#)6J@ ]LPK!.'0#I4*F!+/94)_,$*JJ2!.0<,=A
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
M,0TMVLS^ J%%WR>=T&+(F.5^.6WVAX_5NKG9U?]3;59I6K"H"#'-<8*R$!#
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
M;D.J775='_;=3?6DW%>;\Q^@S?ZPXBF+",DQCU&$"AIF11*-4..0$*O)RQ0
M/4?03X=F_<_?ODAH(G*>L+WZ*.B"FM!PVK.TUG,0;.7'QV\,3@D]/V]7>2_L
MZ-A5_UK(T/P/?DQZ-_,DR4'[Z$RBINP."YUD34K!:Y.PZ=O#.% -[\WN;N0C
MLK1LV_OK_KKZ/6MNJ_VA7J]0@4@LK$8\(BG *,H &Y&D16CTUJ1+^Y[#3%&)
MOEQN._79'^1=:'(RMA9.U(=@?8[8,N"X: K#>#)Q*S@(%T?$@80</,!\%8RH
M9PX#K].JH_(.&VFA(N[2P]<TVCF;'B1XN*)O1:.P" L6T@BB* 1%@5%^G+2@
MPI<"JYKW+<##A90[N7!^'/9;@=;T'6"7U#M77!^L>Q?< ?1B]7; YT9N=5OH
MEU-;;0?-Q=:,2Z4]B=,^R!,\K/K65OVNR"I*,8PI"!$FA#'"$BZOW>@M<UZH
MWVKMR)YG->VAU!T6C75K5V0J;!W,P*.>/I[MTCXCE<$9R!D(UM@*F(%HL\7_
M,\*?J5^03P2-8/_=<J5?C9*7UO8=$[J U7S7'C7^NI]E%OYF]UT@:=K[%8H1
M$K^=$0@8B(L\RI-D,%@01+1*LBW,>-]_'H!T"QMCR6-;=<^86Z;5&EP:IL]^
M:'2R9SP FSD5/N+027GU65UH:FO@R&LIK"DW_K<0WQ^^5NV*\SB/80$3FF84
M%S3E)U24$+M21\=8/$L;:79W^TH,QG5S>UOO]P*B^$3*7"/A/=@LG&J34+&1
M?.\'NF^?.;;^.B]^E2V^#JR7W3R]QERH5/ORUMD>G0G+9C63G:535KR*$(WD
MXRL\9BPK,D Q0:--!C3>V[*VY%FP+X]G'\PI+$-,2IJUBO::>%9 /BF=-O6'
M/FFUK#4\6V/H,X>="$4#3MN5AM=X4*X?-.5O :L+[GRY6!=HQY!Q O^[/'!S
M9A8#5!0%*6"!,8\@A1$AH]DX161UD/<3&V;HNL:T%/V(2WD(=7#D</GMPL*=
M9>ZMS:]A<NV36@?9<P?O2D7YITF,']&ED_F:,KW0U-;8G==R5SN>C 7M>&3M
M>&+M# --LCB,09@SQ"D'&>-PK%<K4@!,7MEV"T!I6%H_LGTZUE>.&"UESHYU
M0\WSS[0[ 7SE).7,<GB)21UM=-(B"Q5*-[Z]IIH.&326T/&IQ[IZ>%)SA=.8
MQUF.DJ2 O*!IA#(\VH]@:I<<&EOUG"7*H]!^<T1SO@V%<Q*J'8CF.WE:;C$B
M^1)K.@)IS?Q"Q='>K]>$T1%S!J)X9OEX.IUR3K.8XP+3/,$XXY0.R2P.(\B
MX4:6B2G/RYZOW,ZQ/2$VOZ+#B&%M[?--KH7@G4$;YLI+N$OC&<+4M,Z&Z<4)
MG)4S+ZN:/4>Z^S=G%L5G].ZPQ[O-_VV^[/'Z\/NV^5)N3V>3WS8_Q,^\V:V;
MVVJ5 HIY"!,&,$@AP2!*\Q$6CL-48]8\&:9I)M*_OWG[^4VG@U_*?2VDL;X6
MKE6BB^U=7)6AO4AO2J?".K[WEEK64K]_=U_8#9B(9Y?BT6U=7,0FX, \2W$!
M218F&)&(PQ%;4>#,9)/8+Z(I-I.#"_)AMC/JN97T-J27TT"N,C/Y!>E'(!P)
MI">!<&6H] EZ;\ZO>Q'^=/^E]VB1+6JV)[Z<EG5P3\\$+>PTCK]*L&4P=]>
MOTY$=^BS05AWS;C=&L?O3;/Y46^W M^CNXH>WUVT7\5ICG 1QR%%$28YX'E2
MC+@@#3.[_31/H*:9&KQK=IMJ(Q+\3BCJ1Q?I37P;NC6IVO-^'PVVY*4!+_XJ
MK1[X8]I.1_J2U(@0!AG+DYSPD*,P3E(V6LQYDCA3"#5STXQ]C5)1)QS:+(4Z
MY,UQMCUO ?UCBK054(_8)6N;IB=*JF7"CF5>(Y?5Z;!IA"(0)A$M4D)CQ@AG
M,..#X:B("FZXDVUJ;LXM[+,=G"4,MG/>]+,.$]*7//3,'%++&\RY4AV(3XM9
MR/WCC=WN36,&DX1D@ )(\C"*4!Y%8#1/LUCK[B!G1CTO 3Y3$19\N7_FL@:C
MI]'=4:^67,S"NEZFX8QP+VJH2N %373>!LM01O=N-9[[KEW]W?"2<@CB(B,<
M@PRP&'*$:3K.U:*LH-CFK+2B"<\*^-S(,WIKW91!L_(Y#^39ULK-]+CZ\\QH
MU,-I4KD,/;)UXI5*-R-.3EISW@/>BH_^\]_&KXB_Y$74__EO_PM02P,$%
M  @ !X%-4/93:8G&YP  5PH, !4   !C9VYX+3(P,3DQ,C,Q7W!R92YX;6SL
M?5EW&\>2YOO\"H_GV=>Y+WWFSIQ<W3I'MM22[#OS5 <"BR3&((J-A1;[UT\F
M@ (I+D 5LC: /MW7DLC*JHPOOLR,R(R,^)__^]O-](>[?+Z8%+-__@C_ 7[\
M(9^-BXO)[.J?/_[^^2?UV;Q[]^/__E__[7_^]Y]^^C_ZT_L?;#%>W>2SY0]F
MGH^6^<4/?TV6US_\ZR)?_/G#Y;RX^>%?Q?S/R=WHIY\VC7Y8_V4ZF?WY;_$_
M7T>+_(=OB\F_+<;7^<WH?3$>+=??OEXN;__MYY__^NNO?WS[.I_^HYA?_8P
MP#_O6KWZ1/S73^5C/\4?_0313QC^X]OBXL<?@H2SQ?K;%3Y2/O[MV?-_X?73
M4$KY\_JWNT<7DY<>#*^%/_^?7]]_7LOYTV2V6(YFX_S'__7??OAA \>\F.:?
M\LL?XI^_?WJW>\FXN)KEW_XQ+FY^CK_Z68W'\U5^X;[=YK-%O@C?73>_GN>7
M__QQ?#7[%D2&$J*-P/_CE<>7][?Y/W]<3&YNIT'*GY.[8:Y'LZM\\6[VK]%\
M/IHM[S]\G4ZNULI<V'PYFDQK=K3Z"QL7)7QA.5FN JL7'RZ?_/(X6:J_L6EA
MOHR^3FN3Y/M&#73I/U>3Q62MNL,]>?YLHQUX_/<-]+7ZM*=Y:]VLJL,JK1OM
MY"]WDS\"IU?S.$['1Z"Y]P4M=O7C:CZ^#O/[Q_EDG*OI=+OL)$M0[;V-"O9Y
M-9J.OIKB_?+BMSA3+B=W^1%R5'A-6]UN3AFU7]JH2'],+B:?[Q?+_&;Q61W1
M^WWMV^MH<^@?\=IDL<QH<1W_YT(W[D;3N,"JV<6[V5V^6$:S]*  E5_0?E?5
MQ<4:R-'TW>RRF-\\ BQ9B@KO[D# FV*^G/Q7?F&*Q?)+X4>3^1^CZ2IO2L9*
MKV]?3%/<W!:SC:UW\.&&9$_X9ON N,O+?!P7E%]'8:&<+.]M\!2C(7P7NA&M
M$U_,/X>&S<.2_.7VP?EE7BP6O\^"]SR-W'T?_I7'1W;T#5UL'ZA&>]$^:-4L
MXIJO2>]V<7,SV<Y%LS +S9:3X,+.QI,*73W<M,WNI2P]26]M0*C9HIA.+N+>
MDP[6WVR<?[[.\PH+_Z&&[77MXV@>X+K.EY/QJ *^==[2:*<_+\-_;QX6%3\M
M_JJ%Z]X7M-?5L!;.\^M\M@@3?W#*BIO\Z$Z__JHNNW\T88YY;VN"?;C-YZ-*
MFT#5W]!!9QL!_\#K6A/C\W7XW'4QO<CGB[@,+N^/E>#U-W78^49T4?&U#8AU
ME\\_CJXJS#Y/'DS^M,WGP>)9K@?Z8CE?57*%]S9JITL/%L)V8Z#BML-1+VM)
MA& IKTV?]Y/1U\DT]"!??)SGB_"[_.+#[+=\J4>+R<*N\B_%I\G5]3),!I>7
MH4V2J U]M!U('ILI[^OM)QW[OG8$V9U!J6(\29%@WXO:Z?HOH\DL>G&?\OAX
M].G>S3Z$*6[^@AD0GTN1+O%;[0#P8;6,1ZSQZ#KXJW^-YFO?9#X:+Y-DK?[:
M=L2JYOE6:)K</1=:%O=Y_GET%\!8? QC]%"W]C1IHSL)7NUQ;TL68K?=\FL^
M6JSF>:5U>V^C=KKTTOJS_?V%6NZ:?)B%*6$UGP<(-^M1)>S;^V([8+S0HZ?=
M^'U6?%WD\[LX M_-;E?+.%7.QJ%5G<6QFZ^W U*U>:M"T^3N_5(4%W]-I@=I
M^/2YQCZ\,P;,:#Z_#TK:,/>R_'VU47+<VQH3HIH^7WXZN1/O9A?YS6QR.=G8
M@A_GQ=UD465CX6##]KI6]W"^]HL:Z'HP;*XF05.;R?9P#U]^OO&.[ [VGOZB
MVD@Y\G6-B^$6R\E-W(S8=F"MUVW(U>?5>)SG:ZMRLAB/IO\W'\V/%"_Q,XV+
M76VFV-^J@4[=A:6DF%<XBGGAT28__^BO5?5[N&V3':RJKU<:)'?E?5CZ\ZH^
MVHL/-]2%S7^K]>#[9QOJ0(P5OEA-PV+^<73_Z)RU8I\.-F^\FY_"1T;38%WF
MD]NC.[OW)0UUN1K'7WHVN0._Y7^%M7Q6K&;C:N[=JPV:[TI%C1UJE]RQ\/;;
M?+Z\CV[W,OA\<9?^-G[I4,\.-FRO:WNV!PX"FO32]D1Z]1?5%J[4][8G6+7A
M7[%Y<C<_Y6$I7>7;W=.HX4,]>[U%"YUYO/O^[N9V-*YZ<G'$JUKHOLTO\_D\
MO]C^)L:HK!;+XB:?V_RV6$R6BT_%='JYV<L]6K*4K[0A]&0QNKJ:YYO[,OK^
ME[RXFH]NK^]#Q[Z$SQTO9[T7MR#:SOVMNEK5>$4+W=T=/#^. 4@<1M7?V8)
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
M((:7^'+O4J)@DJKAGA!7AZ&:#J/:/Z]&@:&F>+^\^"V67EQ.[O)S#&*GAI"
M.R30&V@],0KP8)$AJIG#GE>Z07=^0>Q(:>\!EIA 3!5%E"-4HD*1?TM![)4)
MDAK$7@_STXMIHHH;B;7RB!.NJ&< L*U\GI W7Y"DLOHKQC35@_L\8IJH%,CY
M:#T"[!7GS"I2RBR)>0/9BVMIOG9,4SU\C][ *VV/?P3CXT!$TPN/9@SI8$AA
MQ!A%RL/@5[AR)'F/:=+=S=-@P9%:*QH%=@!W6]HKK:64$@(;%% 5F@"YQ8$#
M:I.N^ WPY+NSE:P]%0R BBU?L])$!&0%9 X *0ES7*H2#^+(&[YF59DIB=>L
MZFG@Z+4Q^"BWTWQ]OE)>P=F_0K[:(+/<66ZI%<C$^A96 2'+'DMS;G&_K>FS
M: 'LT[T+):EV4C"!(8#4425C7/U63B_Q&Z]_59=4S2/>V?W.^>@BOQG-_ZQP
ME?/)HYFQ4 D.-76>A=&!(:=@*Q'4AMGS"I+JBD.),'=%G-^*V3C,HF$255?!
MAUGGYCI(H=<;93(L\X0H;Y%5C%N/%?:EE-:[E%5N@-FNNR)38X ?2:O%?/F(
M4N%?3^D4?I2M\VF^XO=]]_O,.:V<P\&_Y>N40M9@5_89!Q?FO&:<UCVZ%'!;
M)\2KD\F3)S+(L);*<26Y49YS2&VYL$)N\)EL6!^IJZ>:/@JS-G7]:Y@);U8W
M>[7]W3.9ID0YY$TLSD8DLU8P6O:="I"2UGN(^JZKL:(9W%K5^>C;89T_?B9#
M#"H"'43!=(:6"JM5N3N )"1G4C2H$9TGX';*%UN)01!R)J !0F#O+8"ZE)2!
MI*/P =J/?1Y;'HMY5^P:8M)=#4TPJ65 2A.BH66&E?8[,EB=6<:W9DC39,[=
M>OCW. ^>1,Y=3J!41!L/.8):2LU*+#V&9Y;TIA4N]ZF0'N-R6R_*9ZVRTCBL
M0!CND$D-4>D6!5?)IMRO&>#^0*O4; 'OKIC79E$^#2 (JP=FB'$<[&K*A"TE
MYM*F['D/T,QLA6$-8]SO?-9I43Z"L<5&8QQO7SC.K"_=0<P"]@G<JUV4[T2Y
MUS[L_<3^OZ5T]A ;B2"E6@BN@^EC8UT!8"0(_Y#5ZK.?WTT SC$.]E^\)1.,
M02S",/ E*@;",PVI32-(ZDV >IB?WDT S9UUD +K7)AIB5<@B+61S\3CPO/B
M5'OJKW@3H![<YW$3 $")PUI.($/.$8^E%'PKLR5<)16C&A[%DC5?^R9 /7S[
MN@E@B.+ 0B*#W(YQ;J1C92\1QRD[2B?"@B.U=N@F0#U@!Q!^W5;!%>XDH4SI
M]7U=:!C2)0Y.BFHED$YGR[*SE:P]%0R BBW?!#!60QXP)S06PV;<6"M*/!!%
M*90<X)S7"E,2;P+4T\ 0;@( @IR)J5&9$A)9*0!W98^9Y6=VW;LU?5:["5 /
M[*/I\6YV.R_&88ZN2H]7&V3,2TJQXU1Y@H6R&!%;]EC+I"EE@*M<)_1H"NS3
MO2CB""*&<X0U#9:!,M"0TC;P#O"4&VL#/%)KFU3-(WZJ\?X0PX"=HRSXNP09
M0!TNQX]G'*>41!_@05I7O&H,\).X?\0"*$II#"BA$B"&7;E"^^! I]QA&^!Y
M6%<42H3YE&-(I5=*(!I<7NZ1" L[P-M]. ,@,"D&U #7NCXWO(_%O,?#_N,3
M+H\6U^$7+CQR-YK&&;G>T6>#'\Z"!:&5TT0SITBL"X^%+]%6"J2LN@/T()LA
M7INYN%,U=)+CX7$R_U_#0I,O8\O/^7@U7S_7U? XU(],02\M%T(QYCB"0$.D
M2UUHP%*BM@?H4 ]_M#2LL),?/ .JM 68#SP@TFIJ C^T=M:6R#.N4B[E#=!T
M.JVA<KR>3G&$]%=IBPI+N5 ("X*#YC%@4)78"BE3+BD.<$MC\&/@6,6<(NE/
MM])6O'T%& W&K@! &A*+A&]U X%(NK<YP$V<P0^:MA1WBH/JX[RXS>?+^X_3
M44!DXZ;=QBW5C@;1J]_/B&0Z&+K80Z4L\$  6J[BD,&DREJG5C)E"(.F*44=
M?8C<9$&D#[?K&Q"SJ_?Y:)%_BC=JB\O?%YNFKQU*=]:!3$)(@_PNP$J5\-)%
M@[:<=I1/"4H^M8(N=:D_:$V=X@)AMV3Y,OK6J77U[+L9UI(@SCAWD#&@PXS#
M\ YKYE*N)=8O'7-:HV*("CK%P1"/GA\;CQV-A:>?S13@RC""D46:*(&E5JA$
M6A*:$K B_QX*7>OG%$?"Z53H]4H+8@23#$#L$"/,R*TND/(@*2T-.,V"I$,8
M,TTK[CP&46^C)B-" 4D=!U8YQ321@/H=VE D9>VO?FS^]S!I6E.#\+>?2U%:
MCY_RNWRVRD.K,ES4YK=%T$1/U:P/]ROX?%1:)(S5V$O$#<.(E_@+3%..0&#U
M(_.3'BFGJ,A!#*3O=R-V^3NVXG>_<_6T!QG P?-CU'"$XL5>S0DMCZ$0(C)I
M&:E^2/[WX&A-94,>!@]^6(\CX:$3&306$N:]]@Q@[96WH-P0"9C;I)O_U4_+
M_QX,;6KM//R.)ZME;V[(DWYD1%H@H=/>8.6\%A;2G2XP-TE9$ZH?G9_T"#H%
MQ9WB('J8,1[];AT\T/FN\-,.9,Q8"K%2#)%83\=IY\4.?9&6;*3ZX?G?PZ8M
MC9WB>'EZH6LM]Y?KT2[];V>QC ?ZD7&JL&*<Q;NH/EZ(UY*6NI#&F)31<^[G
M[Z>@L:Y&3P5B[R2@(EB=AEA)O1+8"B#*+$8&$P^33BG>RNGVD6 .?#(MI7IY
M17DQ7*GE+V88$BD "7:=)+&T +".;/$ES"35L8/USY^+Y6AZ>F0=AFXZS.3[
MQ^1B\OE^$4'[K,XQ:2\$0AD'+-$2A.4( $"XB"<UPB#)0:51T8ZT?2;M%0Y3
M@IF$W GG8N$&)4M4.$JZ-#7@V[AI!$E-VEL/\P'DH6LI):(2# )BK9208L^%
M1([L<" T)7G& +G7'DT24B+64\$ J-AR2D0 G:/>(44%181 B23;X6'5VTEO
M=SQ3$E,BUM/ J::>TDX916Q D4*EX\5PITLIL=<IP=*GQ;,T#E1//54/\,Y2
M3^U2^NG1X@5P#N:CJM(^ \IIK2# 0$HA+0L#>2<[22O,4#N'Q%T^_UJ<"=W:
M0+_'W%5'EF@ P5A&"$.$8$#.!"<6[,P4RD6*!S' #"6=67'-P-TGG9HKT<
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
M&8RU;AD7T@I) >0*/BB'>97B30Q];>^'Q6VK:,BTCN&@;='ZNW=G5$KMB46
MQ10PQ#%#RJF :212:%W=<G@Q'\.;)G:*DOHG]O<+T%'\_?X5F</4"T9 \!.P
M=AXS@'<(*,A[JR/[!DB:I(F^0]1-<7-;S.+?/EP>?/A,X]8A"_,' H)@P8#S
MW -<QGTX3V E^_L<XM8UT(1I[R5G7E+I/14E<^.)S!N.6Z_,D*/CUNMA?WIQ
MZT$BQ2#4.+A53%GJK2WW%KP0^)S/&EH@0<6X]7J@_QVW_OII->+:0ZF( ,!J
MS;$'@I5(4N13BJ\/G;[)Y&HS;KV>7KJ/6]>3Z?2HV/67&F9:4P" E]980BD7
M0H'=_  (KI3NY)0JQO1#E5>#UAO0R>D&KG/H%>4:><L1AX 2Z;9R(L"93#$.
MA[Z]-P@:-J>;TPY<IX8$]UI#P: 57!/IN2ME94+U5A?NK?"P2>V<=N Z=C @
MAY!5DF!N/!1(E+(2FA0^-?0MMT$PL4GMG%+@N@5(, L\!A!H8YP"P57<2F:
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
MW#--),65; QGW0S_>KC35,]E^\CVMH\[F1=Q"?&M6#P4OY7E-*V 3E+G<*/
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
M^)Z]JOCMG[-_1OF3&7^WN/Z/@P=S#C\<4A>)T-) '3O)C0)LER*!'(+@PB;
M%C57M@SM^=DGD\5D713_*I=_UF#!RT\'8@UE2"M!'*24,>S4XU P."<C>X3Q
MN(YHT JVYZ<(W,XFR_)+<7V[*.?EUSC-OG]OCI/A2)/@B8A\C2M%ZJ6#B+-T
M7\>.O<J#G-/*(PQL=<2(]@#N_1!>OKOVOLE9O!:_+BB+*= <2&F0@\!)3?;(
M2@1RO)L1&K/1.-@CT.4K'"5F,K]^V-YM^*F<SWVY_&NR/%:;N?/O#DQ1HJQF
M7B$ETEWR#*"]XP),SI[&"'W"86G;W1AJ1;E#5AQ(UW[^)./J1R%7GYY%W'?[
MFYMWU1E$;7Y?0 )Q83Q/EYX"Y0W1VE;80D%S?*;& ^>^6,[*Z>?U9+E^+<,G
ME[$U2B'TK>.QCY\#HGXNUNOYC^7;6QQ$I[\T$&X()P1(CC<((\S)#F6OH>]G
M/2JW(VE1?(W+NNF7US03C60HM:[I(1-.U?1_'K:[K0T331\;AH@VP( SAQV6
MR'@E764]O,(R)\%TA*OJ\1*Z536-W<B/RTER"'H>4>5,4BMU'/=@CZV7HM<\
MDJV3Y!;3-SH,QJ#A\26]JN5R$C_=ELY*/UW=7#VLK\N[8K558_E7*^FP-;XG
M:&JD,,09!KSP4G/%XO1HN1%QWG3PPA)E1[46'U*1KV]0_.?LZ[&[K]O]HJ \
M]U@(8XW74O!T 3/=HBFQ5R"G;-5E^U%C&A9G:+*O<?%;64[_FLWG:C%]%RFR
M^#J+<&Y201]S,(^PO4[S8%@Z:<<15!%S#I@3%$;)150 !2+KJ,Z8$VK'P.$.
M]#-$INQFO^:RTEP95235)E7>*)OVRBDDFRO0A-"VYH5SW4C[^?JVF#[,HQ%K
MFAO^6.BRSH5\K7Y/H H1JZFGCGIDB6>"X@I/!]A@>SE#7Z]5FV?E>+3S"G<W
M&]U V>+7!>04@@(JI^(Z%!@G'685LBC^?:'KIC:I/@*]=#RI5F[ 8#/H83]D
MU:B\0:/W!,(H5 810VTT,HXKX796QTKIR8!75U9R/':ZC@$YTBI@A; PB!NG
MB.2 "N)!)2M@*J<@T@AS&3KBP0'O.1_OGL:WN4VKS]6[A9DLE]^CS=J8M:N;
MO2##7D\[C!6P@METZIM;Z+11QGN?RIP)[RUA" UXH.S1QZHD.G4N[$"+8! 3
M(J[A%.!IAC%86UG)J**X;WGTU];_00\X!^O7=VP+"4>$8>E_F"O%%<6@DD\*
M>6%9<=E:KGGZJAFJEW'ZR@@$E# ">T*IQU(;QG<RQZ4@(9?%I&S--SY]U0S?
M\XL%/TRB^DWY'^_7TQ.G;EYX-"!,)<%D$[A4S$OFK?$D0B %(3BK<L@K8<&9
M6BM;!;;O'87W-4Y%_/1LB.MW0YG5P!DJ)(L(&;<'QYJ<9<P(PQEM3SZY>/;-
MD7H' 5YX.FBK#+"*01LMJI-&QG_LY&*.P9S\LA$:E0R]'F#(^5CVS9$:Q B
M$R(X5 @AKH&@G*C*Q6?*@5Z7/S_GH_>P!9"EU@,4:8AJ[SO6VUEU:A]2</;C
M!O4Z,8,7F@4;YV,NJ4$8(2^T!I2@2E(-=(ZC.L)9IPNRM !KWP1Z5N?RRW*R
M6&TS#G^+;EHJ/%6#3J=?$A@'#EDL%82:0Z<LC"@0B*+)%B#O(J<1IO!T0:[6
M01[C'&:(9TP:"C22G'.<CMU4(#'/<A(@L].%7^L,U@S3GH+T R>S#!.$-QQQ
MRH4W-!TCLQ+'GW?;H?$C5BL'K+<@?*/DE9]:!44-\,"+:(,P5<AZHF@E*\F[
M*7?LJ2@=D>)T9/Y,\#L>\N_BF+Y;;._(B,T^+LMOLU4Z5C#<Z'^8Q-ES7=1*
M8/OYX2"<M(Q8RKEVVAJG%+!;>!5F3M4Z^5LS['@0O&/CLV;+H#VQP@I$!3;*
M4XDXE)4<@.-+OI4]1ZMEER@/-1@_3)8IC_M;,70YU=S!B3'QE H/832?7N+X
M-0#'GZ+C! T0M58:W4B6?/1]\OSUK%B=VNA^N4%0&B N+4P5XY6QDCCJ*PD9
M (-=J-S;2*VMXN?G0-O LZ]E4W05[LO59/[;LGRX-_/):K4?M2?VM$^T#%$D
M:RTQE#%N>/0,$,"5O)#K"^-/KM+++L$= 9E.;G&?;!L$=M)C#0'P!A.(G.1D
M)W.<["ZMKG)K#*C/K+-P/I-;J^7Z":_BOYYS*GX4WL_6LZ^[,\JKXH ]>OG!
MP%QT>I1*:4=202=C__=2,,9R3O.-,,[<DOEI!<O^&/$E?M]!PW+L\1!AP1%E
M[8C42!(9?6:QEPBQ"[$EN>H\R(JSD>ROUDK5W<]100^K$[[,2X\' 8"S6D+%
M"9! 6@$QVTF&TS"ZK,V$EAV8%A =BBLG7967&P1I))?8(2"18-H+J5PU$K"1
M^D)L2CL*/L&6LQ#MC2_/1XK^_F&2"G5?W3Q^_/V4Q:G]DL"H\4X"QJD1)&K*
M,,-W*!!>,]3P>LYTMVV'NL)Y&+;M.G_:1!UN%>)X$A8SI&B<^V$Z(X?V<A)
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
M2.O/B[GD ]V;@=O+_WD]64PGR^GJ'_?3R;I Z3H(=))3M=H'1RF&%&-@4W5
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
M5B]]\;SJ\.>'/_ZGN%Y_*:^6ZEN<TE+$PS]/!_QM6:[J&-;Z+PO,<V, BT@
M ZFPBD)2:8<@DQ-H'V$ JGM#VQGTHR3D@3':%D4/O#YHYIRCQ%J'%4/ 2J-W
M4Y:+4YC,N0-WA.561D+:=I0QU.KAL".T64%<Z )"8X.HQX@*Z>(JDG"/Q4XW
MA&I<ZT;*KC;T]A4I#TEQ*AFP[BL" .F<GU3*(B,%$8A)5J$ D,RYEQ..)$Y0
M6]$_[>9U@F'?D]5/G=;?4T+&B=2#&JV#8\ AB#7$1'H<+9R%>V ),(.E2O7
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
M#<_:>QI[99 N6=82W@-$C!L8L".M@B8$ (@9)0P1:2127._D%,S)G*#@".?
M=JG4'JYO(26<.&(84\8(D*IM<!Y'5H6(Y2BGGM8(G?5VF=8QV .8KS-FRAJM
M@Z666Z:!YHXJ$FTV [Z2VV.><Y:\\3FJUT:R]O$].VKPS\ANMUC/UO-BZLNE
MFUS?[GJ7>G'UL%ZM)XMT>OU0\*#V"X(!E"*H"(DR2,N!%NG.N:U$QKN<@LF-
MSTJ]2L>J4[Q[G1A_WN;9S^?;4P<GY\/3;PCI\G@B%:)$6 0(ET2SO6/ :,Y=
MZB,\&=7!--@ZQF=;J2_E>C)?;3R_Y;Y3+SGB1YX.<9JF5$G"&8*0 VXDK.*P
M0B.7PX?&QXQ>"Q_:P[.%N/9TVX=UZLYUN7HI=_9$BZ"A4UI@SX6!P*;J!\#L
M^BRY5CF+,'G1'&@-TX'FF:E]6,9),;I7LW*Z74/6GV)>:!R0P<IJ#+&%AD@"
M+#45^V5<#V354@)C/+78Z023C_ 8>+7QX,^DU:9M<()$2QI=?0,UPQ( 3U E
M,Q$J*]5PG)<*]\:J<P >8+EN9]]FTV(Q?2Q]4%S/XU\UPXX'FP=&">$\75^J
MO$%>64RKU$L9EYA9MQ:]K<!V!W#WMHDR^;ZYR_;J9M_S8SLF/S\=!&5QX- H
M!$3(&(20K#Q^*33-NL;QXN/8^8!V?81NLV&=3&<J#5 L5IO6/W:AQ[-RCT<.
MKVZ>=NA3,4\1,Q/=S]5FV/V1NERA6^-L7=Z+@U4JE4$ 3(/_V]Z7+K>18VO^
MG\>8!^C!OD1,3 36'D^X;(?MZH[["T%+*9G=%*GFXK+NTP] ,JF-2Y+(C91N
MUZVRI40F<,YW@'-P-@(DM_'_5FUIF'%0X@Z+C%9>F'ZZL"H)N)EO#D)R 9 R
M@G-+%4;2BY)FGD.7T^2^[][[MM VZ9)CG>Q,[G?Z8]''/-^^[EW0Q*,&$ ,(
M-"*JO,A8"+DRT;H25OA*U_ -F5:/<5,;5#Y=H)I.!^/;90K;3#^\0J[Z:S"]
M/B+K..\;05$M.661BAH!YSCVQ*[I:)#3G:6;]G\_JXS W0G.K?+N1.6\4M?1
MKVG&>QI>;WX?%' 8&P.T$B(:JIQIP]9S]@R[G*O+/F9^M,_K23[5&T?*WO:T
M3YX($@OI##0426&8Y(!B6LX; GLA>4(G\NHEIT^B69.\_F,X'MXM[O9R^]DS
M@7( (/$B]=AT#AL9=;9R[L:3"RE^<#+')O70K5&>#WX?YOG39X*)2Y8, @EH
MA+M$"@BTFCL%"F?EA_8HSZL6GF?0K:VKN=61%3]Y(._\V7.! &\91-QCB)V4
M0!MORK5HI'.LZAYAH'NMH [JMYJ+?A)M'E<WOOXR&HP_#>Z*:CGL-7\N4(L
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
MGFJ05=Q3KY\/$#$H(G$A38)/O6,4QK4)JA V2E\8R+J%QVO7539#NMU/*QU
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
MU"K&#+8EE3F&.9W1^YZ VK7\](&AO3^(#AJ0ZPJZ'5_!OYI%H-@30Q5R $E
ML =,FXU"X'S.+7Q>XNEE"E,ON=I)9L\R &;V?"+OF3A!,:,4H=1[ 7@T>B7Q
MZYPLHV3$77\S<9YF6ZFK>;0ZY@]+)G^/;-5Q3O_.2,$Y_/+@@.0:62F@)4X:
MIH4&)>645#G5G"X\8;@RYHY,Q*F=::VI 5L6]G1'?KJPI.:L\/*HZF3!_O0/
M!0FEDDA@#BQ)18SCWVU)321$9Q'%;TL$6F-@6^*P":MY$:N_7/+Q>_TIKPLF
MM5"#3'MO@4QM(X0N&:2)TSF7^SV,%ND(S2UPIOTM?!/K7TQ_#:^*'6KX: F9
M^*?/-U^+I,$._SL2=JE-+ZE]W&Y>\S<#C1P5ACF'L;06*:BE*VG,.<ZIOW7A
M5='S-_9N>=FT;;;X,2O^LXC#W*]$M\[LL9<3J6!I[1H2("2&\6B, X>L\H3;
MLN:@!8+82K6#VEEEI5UEUYA@/4/60Z<Q!'%A0C/MRG42P7.BO?J8/I#-[I<B
M7A-A6Q;150F3RY#4J"L@@C"C#COI*$ *Z"6A&?'&5VO_V,HJ#Y80V?)XP%!"
MJ"B-1JT&'AM@%"]79Y7+T5G/23XK,WF_?)Y"T]:TS1=3/5R\8\>(@!AD1EI-
M -+.60U2B?CU^A20E>[_SA8S1[+X %Y.(VF'D#E<8&/7F. T,@!B9@E16!N8
MRD64:X049=4/[3]LCN;T8>2<1->.L'.P!L'6YX.,Y)':(F.IEJFXB "T7!M1
M(*O$YEE@YE@>[T?-253M"#$?JY0%V#$DI&8*2F 8MVF/J;20"56ND .5$QO8
MQT3)!H^H4VG:%FK*T,'9E\'#LK+KW60QGG\IILM+D+U.T'T# X?<0J XIM&<
MLO$O5&UD!/&L-*7^[SPG,'W2('6[PE+*E[#%U2C.^-H.'OZ8C.<_U?CZOXK!
MOI/LB+<$QS!VB$.+I<2 (V: *^D@%,D);>G_/E4_RNHC=9>06UW/3C,AM^,M
M05H"*"-*1<,60@]<I$1)!RUDSL;60R]5*Y"KA]2-W]'=W0VF#Y]OO@UOQ\.;
MX=5@/%=75VE;'HYOOTQ&PZMAA\%.KZ=2X=)N]Z! C0.<"YF,+."EDEJL^DTR
M[CC0E33 AO3<??2O=-M>Z04! *0P8"E*Q4D2MSC%S88"Q.4XY/H>;%0'+EZJ
MQ4T0O1<BKZZOA^FM@]&'\<UD>K?\1,=%R.O>#8 U1@(435TG&(;4> 4@ \!!
MZ84SE0+O7JYT1\L3]2L2+IT,D9:SP:CX5EPM(MSC;&SQ8_['8+[^F[NY*5*T
M0I&"S?\8_![>+>ZV+"[[G0$+1! T6DH059YH[E/KRK4CD=6NO(>63!T@F'1#
M^L,ZYP[(K3_W81D9DV(+5F$(@_'#A_&7P70^CE3_.;S?A:Z*PX,V<=^$RW0\
M8(701E"[6HT"FF?U(NU[Z%[=J&J&Y.T'+GV93NZ+Z?PAU3R=I_X>_UD,[^^J
M.",KOB)X3RA6F%-#TEUYM-LD*"D F<HNP71.T&F8>&W!9^>D]4,%KV2%T0$X
M'54P(7TT](V.BZ=>;,0&DDN.LZ\?&Y.FZ=\Y[BHY-BN,#M@+BK&#&'EF&1<>
M2U.N6UK7F;NJ!=S5"HNJD#N9]&U!3B\BT>+6?]#]^?S!0!%WT$%!/3#*42&Q
M*L]]&*W6-PFD4Y@]J9'*;6/FP]W]=/)K5:*[,GY>#PI<>N(UXA(**8W6B+)2
MZJ")&_\%J^UM8"F;XB>;?<EB6$2*_M_!]/JO2(^XP&^3FWGZXTZ\5!L8'#.>
M(4+BILRA$,X2R<L5.*HZ<Q*<*68:H7I;^]&& (?[B#Q_,J0@%8>BFBF9<$XK
M#")^U^OA/*M<]=$I(;^*Z8_)N>.H'D*W!1R_F(Z'\\42Z7[X._WI\$&V>U"P
M4"H$4XRN2<$M+%7%WJQ2955CSJI1>>9@JHWB)^)J-IT_P53\VTL\Q1^%KZD"
MQ8Z;@6>_#^F&%>J45*$XU,8+I?1ZS@@CTUGHUSG;_CD4;AP5.[>4%T\$C+1B
M0!M+/*! ( IIJ98A!4!GN0X-(N-$QKUD^TD$;)+Q?PS'Z?Y\+^N?/1.0$98B
M2C&PSC$I@%*JG#O!N+/H\S:8?RS[)O40L5$ K!PH^P'P])E@@")4:\<-IEX!
M13TGY=R!XCE9*WT]%VH!0 81.[_8_5@AAOSPX(  4<PCK V"P!)*E"WWS:AP
M,7'!UG!W[H13R=\YZ/Z<%3>+T<?AS3[_9X71(1)0(FK2!25+=P'&<5^N6W-Z
M8>VRZP1"58R=3.R>!&[]BJL:SN*/EO4;NLZZKCMHBZ-44EUZPURJ0&&05'X9
M2T<IQ/'@ZBZ$\PGE4\G0\6R?J+]^.##.@?2 2\0Q2<M3F*U7AAS(NE[MH637
MP>*7G>US:=H+ 4XWPM/B9YS^\%?Q81Q'%Q\GLXN38XIYW$R10='XE,)R8^6Z
MODUDDF4=AF+'22_N%LLB/<N"I3L8<BB8Z9C7!$TY9@H8I@%%B#B%F"BI00!\
M.[)?&18O9;\Y:K<60!=9M_08KNKFIA5,QLF!>*@BP[YQ(9IEE&KBE?<& B09
MMZY<JZ?LPI*EFX'!RTB[&@G>IK_NR50/!C9M?3XHHS$R! !FM0(L?@O1<FT.
MHIQN$#T$4TU\WN*FRZ5L6ZBI($X'?7>5WQ&P)U829+V1Q@@-I> ;>;3*7-A6
ME8F#X\^_DZC<(Z2EC;O*W=VQKXHT%]A+Q2#"$B!#\;+XQ8HBAOD+:Z#=RA'9
M, ]ZADH_F1;1I#.+R.;QU</WZ6 \&ZV@</VOQ2J7XU,Q_WSS?? ['[C'?"T0
MR(2S# LAJ"*8 89U25>&T(7MJ<W![C1\-\BJGHG )B,N+OG;LXRX)D3@F*\%
M9SGV-F7:IK9Q% L"34E7 5!."Z;SW=Y;$X$&6=6:"&PF&M?P<3*^3=F<RTZ?
M5ZOTO*5<#ZZ6A?&K@/R4]P4@/%'0$>V0DH@2J2TL::.YR]%2>EBBHST8M\",
MMH"ZCU)?4P6<V6QY[?S\ /*1^.JS^; 6T,\WCR): <R-?3.(*/K *FJXH,QB
MQZ';7 4:;UNM'?\\4/C,(=\7EO7"W1)%?3"^':9J9+-9<7G^4@T(I3 E$6B(
ME(&(* NY%DPH A7MT%_Z&$7BA^/AO/@8@7C]DAW54\8/O21 9*5UAB')&9!2
MN53I:4T)(N2%14[4 8F=&>8UT[JUW(/=T]8/?PS^-9F:M/D=\+<<\99@::0T
MDQ(!Y;E5&#BGUW2@'G:7LMET7%A] 'F9E] 8\7L PL?Y?QK<'4X^/_)-P6.
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
MQ2:<]T1J[QEGRFJCE.!EL#V(!UY.L,+1=LMEX#*7QFUAZ%,Q?Q2!/<AY]ER
MW%E B-5.$\6M\=J5+D6 +,Y1&(\^P\\=+SF4;2U 8# =QT6GP)HRBV=XM2\6
M8-OSP2,(A8 @_L]3G[K4D3)I G#L6TUG/7?4U$'AKM!CAZ/%O+@^ C_K$4%#
M!C!!TF#K3+29N-+@43JR$J".[AAZ:0@ZC<9MEW+;I*S$;?/39'QU3!_:+0.#
MXTP"I)'77@L+#,>(;R1&TAS-IWH&Z(4@JE92=U8C\$D7W0JPVC8L4*XQL,I:
MR[TA7#&E^:.J)W)ZA?8P3[,-2-5 YK8 ]36%KHV+ZW)_C619W"U&*;<[KF9X
MM== .SPX$&F=59J"5%!%.(U4V<U91V)D]=X[.E7RW'>LVLG=1O3D\KKPDD(C
M*:1.LA2CJB&Q2$DAB+<" <L@U-62?QL/C9S<W4_&Q;(YW0X+?\F7[Y$3.D[F
MW]6")8]]:Z"&,F (8-@(@HV7DL*25D;;"PN)JP4UN\,G&Z9^6R?.XXJJY7\=
M#=/C7QL(D]QZYJEVBE,D4IW>-:52R9,<G/8P$J)9G#9._O:!NL<9=MP&>O@]
M@1',N)54:>VEL3BR-PIMM&21AY2Q=BLIGSD4ZZ=W:]A;W-T-I@]/=OJ5R^BV
MB$(4E:HJL*OXBD"BU@E2-7R0*L10#S@KCXG49C>G+<&9U>T[&7'-D+K]C>[5
MG4BJD/EHPYYP&!_UQB"($A I+Q@QGB/!,, E?32'.1GU1]^8GBD46Z%\PX;C
M/XOA[<]HU:IHL0]NB^6%;W<FY,NKYPKVXZXA05F)%3<* F@E9%19NVH4&_<!
M0DF'QN/+*5<1\YUC K8$6&N3UYA9(PPU )7KY#1+B\DR_.ZGPV5,Q5(O;T:J
M\WE_P/5Q*I6[$%IU?3U,+TGQA3>3Z=VJ:MTR7?8BY-DPRPV65*.X41M-G9,&
M<F DY(+2:@6+FC[4551%KI.[+-IDWXJKQ72Y_[O?5Z-%)/@J'.GN?C%?M_-X
M!;?*R;1U?"BPJ)!S&8^@> 9I0U.Q^$A1K @S7!C4:M!9\RI /K!VGO\=<*,M
MA35S:?IA^PL.Y-0T^-6@ .+$64IQ/".B!<JA7-*9.XN)(IV=ETV'&;<+TDE?
M&=JMX'P:W!U.\3DT-/"H@D#,E<%""TV48X*M5NPHH#PG)[&'$.X%=BKA^606
MM19P=7<_FCP4Q;=YU&D_WR^K:N[*%CHX)OBH7*<J;X8(9DBT:*,N'-=H&*38
M^:Q@SUX&K=?'])=F1TTD;B^2(:I.PZME*[HXXX,0VOI\P(I"(P"C$G'@"$*
MN;0V "C0G.0$P_30$]08>.H@[IEHDQ\K9)K5]8F ,*,&:4HX,033=#NHUZJ.
MQ)+DW-7W$)Z7H2>>RKTSP;^Z2[ZUYL"_>G\0E$OBE!;08$T5 !"0TB"V2G>6
M/=["C6+[^*M7 $[B8!>WE68PNDKQ=,M5;'WBDJXNJ8_ZFY/.,Z>U1<;0=:MK
M HTTE6)>FEGE"\I_6B3EX?/-B@.?%_/9?#"^CFLZE-=SU'LB/8AV&CDIF6<4
M*H6$+.E!L,TJ\YEG.'3IM*B,DDE[M&_K8-RZAG7BR:N%/-85.A:1A]\8J$Y=
M**EQF#.CHBK.#2KI T1W\6D7@\S:>= I1C_?[%K/\;OEKC<%PC736B,,/('.
M0L^\+NE!L<AQU!P?J/:D*O+%8+(VVG>A2G4<]E]KS$8T&6U27#$TU@ $!5\=
M3BS^!.A*+42;]O'N/6Y/"-LZXGT!<ZRQ(9YRS$S$I8-E%(+&GL&<%)^^6V;Y
MF-GIOFV. Q6V@_4OTK]^#&;%__D?_Q]02P,$%     @ !X%-4-+L'0PW90,
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
M&N(YBO@C0+Q $;\UQ L4\;LX,F7F('2*T(/'PX$=D:Y2 !TS@ ZN<D(!=%P
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
M W"3U^B9N8L';C0[VH&;]((H'YX[RN+R#PD9$/G+<^!G_2M9Q0)\(&6V2WS
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
M35/7ZT/(DF6XE8%8F"L<[:0GTP=C__<(/ BV^-B,A;%'WN!FS$V$F-^"%'_
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
MM*P$I9 .E%8N3.#:YC9MV*US0B=^3?UU%@Y#I,/D O>#-H,GUNW%K10\8P%
M\71[!Y0>A:T@&2$I5=(G;45A\+=3-*@RJXN72 "A]_FATD8PUS\G'$!"N5M$
M5L#;?FBWC_W#SI'?:K7P16M.XYM6 ,;0\P\/N]\^AO[:8T 1_N'XV.^TGF 8
M1VL/@\V0+/T2H1T#EER[]U??:Q_^E4?8/J RPE5EB=7R@,#"FJ#1$C$,$0ZX
M%@@"!G#(%&Q)-).X;JN^PB;35>/Z#N=[&M0 !PWNU8BJ$LPJ*K.4(]LX\+O*
M16U^9RMD!0[%&Y60KY4R6LO*9BQ$S@@2K)@P79MM#%<TDT:<I(3QN27-S=F:
M(?C8# 5(Z5FJ#HT!#@Q;4L4_MPIW4T4J4#F$#9[3VU$#S&<@&<8C"ZJ"HX0R
M?0@#II>09Y<@E!-#^*5;H70MP%28&HR<Z=N@\2#/=TO<"Q]()B\6\3B*8YQ4
MDV:@S NM=DN$ 78_90]\@3@B)N; @[\DB/V2^D0LU$(9DBKR6? GQM=(YQLR
M"/1I='28TRPZ2*Q<BX@+,$,^BV6WE1X>9:,]=#;O2#BI#K$$C-;>AS4A1'^O
M^#XJ$(IGLRMZF8RP/WFDL'SU[Z"\$"HQ--%'=K/8'([74('( K#BX7EPU*.\
M8!5YP]-0R2@T060!_DXV^ A6:*:[C0P)0CU2;8:+#/M=6@_ N8(WA%K.&@-G
M,(@_#[%3Y1%)NE\&5@AQ.J.FPI&=,:C/JI5@C:*TJ('*C:+[4.X\.)#98LY9
M4OO=>SPB&8)"M%KC%RB^ CJHH<=D0)+^Y9\VCA7B9,RE\QJ=+,C/BE3[@@BZ
M4WMO-62GJ1:K!0^K!=.%8"*I[#@8\KV ,'T"?UVBF4MM:[SWL%SHXK^#%\$=
M"%);H(']V]6)9G?)N'>\(@N!=Z1(^@!G(M!_-0D-J2+0P[6D0\/Z15 Y@C&"
M81-"!M8@G]H33>T*#+DU3N ?<+?0-*F1*U$]*@G Z=;.2"^"RI*,[W];)3!C
MOW7IA>4U52]J^AUT1?4VIXK @] Q8GI<A1F%(9LT ^WB<ED0\?R;XEJ!+3ZB
MJHA*3<)<Q3 KX';C" KGA4K(4[JVH#X"5=BQ_LPV?/B]7,M;6Z44>),X'6 +
M@II2)161LZN#\$)+^/)"A%HY$BB?:8.27X^/P(O+5!PIB+^L)1=L2>21H#ID
M=G..,;5Q<'#ZN! SHD@Q4;7@[VC!?5V57#=@O6 9/\>J]60=2)<97+YV28<
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
MAYCTM')UI@--Z2[DJF7=U2THZ2(+H+RENN=2E\]H0RI-*K%1!4C1!5 *[O!
MDJ91<U<@E5*@62*X4:ZHOL=9,)EQD+?2;EG2Z+8IIPJS^5"JRKGE<+8F,Y*\
M<LRL"?)\KBQ^4X;($[W 3$JO,!0:F0X//C+AYFG=,VCUF0!)9?NH'%SI"3*;
M> H"\M !4BN8CMES.."ZB%_WS:1]QD [4T0;'6PSB\^1,9C9,I#.-U>U?#';
MI>,L#%$K:MVOK-"J(6"OM#Z JMF4U;= VX@6U176N-UB#^&5+(1J$4J9HW*5
M&3UYH?JO+T$?JH@,7S)R)8->N*84<Z;NL:"T-MP4I8J'D*OU68>5DBBK_)R2
ME5K*::'=:34<5]7Y3)$2PD82X_+JSI?U&FZ9P:*F9PKS]6!7@+MTH6W459?.
MJ=$\C[YNVH^X;EC>I$.D?9EF<,L1P(S&92L^!9_ #N:-4E]UJEOEBTO->VP"
M7*D"OBM7V"B!+WNO5E+8<E\-I:V5+&8]8'+%5E&E.D+(!!=ERM6A,65,QX:
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
MA$X_W8:J#,[K+B^4NMUU;95:N1H+J5&I\ .7"M^D5+@ZT-W: ^WU#Y8D,T6
M76A.<C#Z,QA*W/F>4TKG^7''E* SOEV9+C0-X$&D$XR7#=$Y(;-!#J)=,FUQ
M")L#V40E>E2WYK!02#M +B>.+(@Q'$@48-DPC%'"8E8]CUEVLK:QH:XHR4&(
M6S8-XY%4G)-!"^8N-LMM7)CB$LWO5OTRM8]77RZ/7IL32EPK>Q<7"M0^)Y;,
MU;/$X<_*E!;0<,"+07D"_XC SA0W)PN1&4'JITMZO'H68./!Z<,DRC0EKXCH
MIW.+YIB/$.Q5E+$_U&EU.DW<L7:M=5"^Y;SRCL%L3E.DA;Y$%P/C.Q0/D8CZ
M/ MOD($#B:28W26GWB^X SEFP<$M4$[9]3?M8KHH, >B,B=F-YNUS-JF2)C*
M1CG/DL2V<H?P1UDR69/(XI.N"%@NPH7H&<5YPEU[0">1:PD2UX5?GYK7%>9!
MN6X5#%9@>(N9@[EXY1GH\4SHY$RPS@?W?AA(Q&,8(R42?1<SY"D2&=Y)+HH>
M3[E=Z7<D22S<PNBFOBFVN /=MZ?MSMO>8:??:75/+M[V#]]>G%^\;9VTSM]V
M3B\VPATX '?@U_-?3GY%I^#T_/SL\OTO:WH%_6<2R-]KZ-&(GVMN^+DD@\/L
M-4,JV@ABQ;B2X/4=U\11*6*AN#V)J9#0-IAP1UKUD"Y(#"%FW'\]9_Y)B2_9
MO8:'0<(T@2$&JSE^NR@H;* %695]+_7RPNB':<JHF-I4"FPFJ>^T>&2X8KWH
MZ'V"?G%^^/;D_/"@TS_N=T]:%_W.:>^\?73T]OCDHG_2V@A!/P1!?W?Y_MR[
M.KDXO_ZW=W9Y=?KKAZO?/C7-"7Z?:E99L/KOBPV='9[WST_.>P?@91R=GQT?
M=;H7!^=G;P_[1^?]BXV(#1V>P+9<OK_X\.G=R?7EA_?>R=L/OUU['W[[Y)W_
M[_GI;]>7OY]['RXN+D_//S5LGPA'D6+G,*K\(1>-TJ5PZTN4/ EFE..::.!#
M5 ARGV]93>@7?@F'"X(TL N4<6!BO"ZJLAY&L.;#?GK\PC]JH:T'E*HZ6FJG
MT*I-^-_V&UB/E\6UQ84@7U4'<U_=2V6TJLH%IC:@9,3>$+8\F.?A3^H_ENH_
M3*D,? 47[A^ONJI"IJ8P1EYQ_%>KC*;RV>J/NFO]ZNC0?/9PJ<X@+<""+1?@
MH):P]\'^-W^_]"?BR*6_O%H517J*TIDE+4//'R$"CNZXGRB)B2*%>A8.Y]=4
M CWC,B!R$%,'/TVC$4C^4\3*^. W9'[+P<+ON=$G$[?/VW^<K_%J757]]E I
MXIM!,/P\(<[W/2EL&()K,1YOPC*]^OD34O45+ K_W.?_?P6N20PWVAJB\5T7
MHQ%G8O-%X*B:&W$;W92)/_E>GTX1?1JH&)GW-@VR$8&'"0272M[R=!J%X&B
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
MF9_;R^V9W\[LY>Y5'GTM+<*3;_^S(P^?%8+VD"0TJ8"JO=]>J^RT<=#01CO
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
M>=[ 8V>'?11G:LJ)#P\CI)I: -OYO!&0$T$CQ!"-IE/@GG29-,1-C@DB-$[
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
M.QAOY:)I@F!-$.PYNB6XH_8VG9)KCF:[S=Z;*)B,@HW<8:^)@NTV,SW?J/'
M'O+6-WVW-=HFP66_D'2W6?'9YT^JN/I9E(#=XK\]=SS8*MC3\-_:8/"^9B$,
MW'9GT&BN]4*V=8Z))@NAR4)X/O!TAF"V;F<8-%D(W\G77\$(7BX+P56MQBB:
MS063>MUB5(X2%KS0H]X/&'^887@*HP$T6R&EVO94K-V6S@K@MU!T,TTI%8*"
MC8F'<:JJ #H5KII0OCY&$Y[_<>'YIS7"PCZ$_#[9.ZY<D*DNQN5,$,07NU/5
MZCL0"6M=M[\R&+JIVW^FNOV7XKQ$IJJA&O,&NRU:N=L+M:21[(2^2EC.GTM&
M7;!_D:+S1#9/I&8[)19GTK,PB^$,\128,Q#D9Y'&>0+D_ F(G_C&&["NWSKI
M?9J)A>KMP[]123,PB2F]!UFV2&X#^*[,)B#*G@>)7RK(';FJ#X#*A4@# ):7
MR,W3";EQ9>$48ZODOP[7^% I;W$JKYP3]$9>XMLZG8+;CDF$,%ER*WPVC-.4
M>W_^U&^-*;M-A?SQ-C'I;="S_HPI1RMNQ1LOD#)8+B<E0TE[D+T*J2,L2B+J
M+"JR+)3B;Z;R[U+J&!'<(A]PS1^7WKW\2T2H*9*I/-\U:!4@K:SL0+N&'#N)
MZ;U22@W0(W> 0$D24:.76F6?8!Q")06I<8S%#(R>.Q[RO6!-\IH$#)EQJ?,4
MD;*+&N!]($*?&LX6^0<";P9Z=LQIH=<97!2 4+;K6]>:2"X*:EB"R4 FL4E?
M4,V@7$DCW/='0AT)H^UVVIT5TN#'=)HI/-=ICTN4\M%>ZHU\]JU29$&O\H+$
M08) ]11/Q2H2+,897C?<-L5.F T#3F4C'1J8N]8L=8<P*Y$6T^(F*VE<:][*
MFBSN%/%$@T.=>:VL*:4"__Z/P/D'+)@GB"K (X_<LA*\HKR5<L94VZ^_5C>Z
MJA,./20MI'RX\KXJ.5^GG1>P7S873QVPM[E!&XV_TVW^/&6DD;#O4^O992(.
M\2'-GU935;W()I"AR5NM'R"X+1A\[<\($7F._;PCCX2$ARI0P%*2H(+Z#9AR
M8(3ISKFJ3<S22S-G!MH79YLGXL9+</^(\?1E0.%\2L0AN;/B/]3N3/4^0UHD
MA0^$7.1)L[7P]8>;HW!BIA3#JL.+M6&9_V<><JU,>M >,\</4I :&>.!=?D_
MC89NO]5"1@<'^,.+@-,3B^>TUY3V+7-6J[#)-$G7;T#BU_R')54:(@90SJM,
MAI4 K3H7 VU+G'JI'EX?5PL@7)MQ,MM$.BG73KB84LO9S\E*5<8AMZ?C;L).
M&L^R.RJ&4$WK_@ZZF5?&K. FX5[.ZI6(5Z0"H9]@B8B?<&ZTZK6'[=L#/V!7
MS8.8]C F%;"H("M';K]#3;5WH)-E(;.<&IVMXK5V3GF%UL7E<P_<WG!5E_AI
MY/9&(UMY*#3$S>+I%R=>&G];6:L&HD+);Y-J03>@9D\!IMI36VDU1H'[+*O.
MS-3&"598YLDR3J6+CAM56NXC-.;HAF\B@! 7RLR""+2[@#H(H^9(GD.U"FW
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
MGQZRJ8L^3<VSL<\(J'+8*:2X&6K=RCLXE/XGO9"C%^+&C_ 2>)J;/=Y%M@?
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
M!Y:EI0*H7Z978SH*8.1/@\'8[8^IQ8+J[5!ZU$OLQ'<0@5Z0L)QU69?#>DP
M,W+I&Z(YRN4FZ]AU(L$L VLOD9TGLI* FD/,X;9!/Y&[=S#Y +FPRE>G)!T!
MC#/EV"65"[_!E=\B*YP*9:$6-VN9U<@UN2])* Z!5 XIC<(\K^L)ZWNC#UXC
MUCEZ!./2)7!O ;?;;\N;O2A7<>"7Z,D[T") ;02HVHOP_3&>(+_Y:=!7'7M8
MT?VI.Z8_T->)N^-73$DB\C*C A:J. E!?NH,'OW^#>4G)A5+U"HWO11C0ON(
M0L39'&R>PQ!4FI (1LKA (10,IVS;]-0$]CV'I:#J,+4*ZJ7R,0-ME+26O6:
M<@DD1"FHJ]X$]UVJ^PG!.,,H,FV.,K:6N92=\+#MA)):J[4[[BZD]@U;?4^K
MM'D1[=@V&UF K(K].(QO[AVP#A'# -<\'^$OL,E,C/]9>,D70$J2NJPPD*]"
M_ITM(,YGI!J)=64RO)G.1IM!=L&\)KY&0YDT!?ZBG;A6N4%R/\L(6_5F7/5%
MZQO6 = X?_#[" -U^$(]# .&@HB\>W56]9!U&FI4$K%VF23Q=<SM"<!$M1Z2
M)_.]S#N2 .QN#, \6@&>C6VFWDKSM&M$/3OR3M:<=08%:2RXQSIF5/(Y'HJE
M+P%K?MIZ(,L,V4V@%?EL!6=]2LDP=VH7^W"!$GI;T0E@XO=KS^V2F9#@,1"<
MV"F$+7#YFTK4X&/(& ;M7.LULFS(LOKE>QG>@<T:4FM;\CK>*\+U(EOH6WS
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
M59^%KJ/F#.9H>OA<8*D"1X\%FM?ZA+>-=SOE-MZKH7W[J!9#,1U"<%IVXG,
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
M"V)\GJ#%9&QC^U4&F_0T4:*<-=WLS3QR$ZY0->/651W+#DN7V&&I7A83.\]
M%F&E(EJ)9$QZ#G+X1;Z@T\?&$R6\!#E_H8GP2B\%5Z8M2'*7_6XOS&/OX[M#
M%'^^(V7AF]\OWE]=O,6W<;HG6\B%1'^X8,Z\*?BVS<Q0E0"A:I6+@T/I!853
ME>Z8/$=*.]68MCIZ+:!HG:XV(SXHQ1IE,93V.T*QD C)CE=W<>?IR98^]Y%;
M$:16!1)%[")9$($B)  T_J,8F5RMS0VTUDTU.SH!$AC+3!7AE])430:KSKVR
M3$9JQ)A-Y\6F7JL]EE''5R"V#H8E6WH^=+D;M>F\ $^:,0@1S5BZ%F%\5S/Z
M>0*V$K)8(X"L0*M,^"@>VC,V%.$QYMH*RE8/Q4V0RLI*$7DJV05?=I9C'Q0X
MPI^1OCY>0]8%1_S.J=P4I2Q1@U&X6$3KG$=Z4B^5,EZ4/;I!6OT]TC#26#N"
MUP"'YR!'DI;,./%B,?@EK.Q= Q2/G/>9?U2":7##,1Z[MTO%0=!!*.-D&.\)
M_,!3O50)(:PD_#A94MRH>!OH%ZS2CSE<6B%GJSW@>K^5V[0=)(NJKK46N2!/
MGGII=?\*MJ]EWG;]$K0KS*)C5: S,;=?,_M(;Y%G^'J6XER8XYO+6I$B)O-H
M,:Z^MN(-IX71LNOKEBS?LU?XP-J,<<:ER&QM=TP8QE.CE.EF<NQV6]>C4?:O
MN"_4&E3YH)1%IQ0EW?ZF%.@A1P_%>!Z>-;0R/'HS?R7"WVSLP6E#GA/EF)'
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
M?]"X(6MW+:VC8;_7Q&";>]F3>]DEBW"G$+*S3XT+]E7$=EK;N(1J>47[<RW
MRD>M_:@::^ZEGO>R7Y&^_\FC&P\^BG"\<+"NX^_.^4I&PR;<]]V5EO&@LV,
MWST@C_M'34RU 7(3[JL[$@W[C03Z[A)H,-JI6JA=Q.O.<-PPQP;(KS/0=^4%
M=US6QU/6]]UL[P[=7K_Q1-;ZCMINI[\?.=1[13J=\5%3;]E<RYY<RRY9@SN%
MC_VF=+[V=]1V1ZUM^CS5\HKVYUJZK:/>?H24FFNIY;7L5Z3OQ(L\'P-]6YNN
M=<2VMMMMG*S?%^"[Y]7>/2 ?=<:CIDUJ ^4FT%=[+!J/=XT=[K3\&7:V<7;N
M%<6^/%_L#KJOGB\V4'ZE0;Y+>)NWC)/7$N0;]?9F'-=^^A\'G69J4.TN!=AW
M;]!$DII[V9-[V24S<*<0LJF6K_D%]=M-(5_M+@6MHT;M:>[EI<W9OV7>=2CT
MW^E?:SMA$(G#N2"9V.ZT?BY<P0#@;>WWWWF:!;/[;X?QQ)G.O>A&.$'DS, .
MA<6=:9XD(IK>.^*K_##Q,I$"2\Y#WUG S[A6>.\$BZ4WS9QL+IR9%R3.K1?F
MPHEG^)=4P/-1EL #Z2_./+X3<%>N$^"'0>K$4WJ+[U9_VX&[$TEX#\>'72SC
M-$]@ W/AWPC?N;ZG1_3RSAUM3.X5/O6<-(!#>XGC+0 +LB/'F4RG<8+0#.]=
M.$+DW8B%B#+'CV'=*,Z<:Q$&L$58V<M@ 77*)X G3V%O\-SJ@>(\<> XP:V7
M!;>X5IHE.;Y>;7T5IO%2P*I!' &H$F?JI7,'-:+TJ(A<FZ+/Z(70YPK.FN9
M76FJ#KH"IB1(O]@@7R;Q3>(M ")+$?D MV7,P(539K0,7&N4 A3@^ [^YS;(
M[N'Q*%X$$4"*H'SK)4&<I^HU@4CAEJ]B@CX<%%]$5\FH:);W$K@20,4THY4
MN(1J\E<_3Q#E /A![-->]#%NXQ N)(2MN,Z=D,0 N F/PN>(L5X$O"A8TD(K
M4+CQ K[+,$Y3P!;:'"\R]P I+)13*! 1/ 'Q\Y#A8I "SGJ>)W"V9 $O<AGP
M7A "F3A9[ 0 ++Q@)Q)W%OUXD<\TA%!9(!3ALH$OBBGA)=Q1)!+XS[U\*3ZA
M=_78B6J(F2<Q0#*ZIV9FPU]29Y9'A%1(UO(4?TO$,@89 I=>3=<6^"109DF\
M@)]O191+F"(61/I2$<-*R&J0U(GQTO!!9A1_'ET>2=\?<BE@7#=1,,.&R$ H
MN#'$@IE$A*I75KP-U\7)J<Q;3^8!#P?*O<BE[^)?[9E!\.*/L/X2V#$M Z_6
ML(!WIUX(/"O5VV53BO>L7C=9 )( @;GZY?0FZW3X)/Y]*?@9W [^[0_ HA"?
MQ7UZ\C-!']$>S9:KWLW03,2-)(I_PGT! B'2RLM8 KOY2G\ YMKK_:R@B:=*
M<8E.JST&@DZ0+]_&P723&[.WP1N\(T0!0I(+EZZD1#RX+) I2K  KA1_!CP$
M_$*VY3V$!%F< ?9*5, #SP.X'7B[%Z8Q<Q*-&JMH ?>=>@M1L1T&O.$\&MGF
M'OQ_D&8QWB\*J&LAY*4 3O"98?W2::[AEF\2@;S#0"Z>S5*1$:V9%ZG=(O<&
M.(L9\3/<;K" U]_-1378@17 UF_@HXBN,1$AL49\N^'YY4,"H.XTXT;5A0 /
M( :H1P+4 3&%7:<D[R6WQ=U&TWB!T#Z)(Q0= I6(#;9X)[PO3]K>"@M5"F69
MI5H<<PHX(Y*2:KO"<I]!M^V6/5WT[SQ1BRQ!P!]> _B^''HSV-([+[SS[E-X
MU=_FB3S-9EL<\PZ]S;9'3SMS0)U?#_Z2GISV>N/V>'3<'XS[IZ/^<;\W[IV<
M]T_/AZW126?PI)./9246J.U(@'#]J%BD&@[>BC*_[L)^B Q\#-L!KQ_"]JMY
M#CC)LC!5G)X1&=B,HC^EL:]@/^H1#ZLVYIU2R=E2AVAW7@2 ].L=O_,Z#GU8
MX )I#22,\QDES&?0;+?;\4N9<U5:#X@UV#&KWG#WLS@,8KPT7UR#M!+ ?X(L
MH N>AKE/=EX"#^(!KV-0T$$T();D"?#^( SA=P_TO>P0K6S@_&8%UTE1LR:N
M)K\)+ &U"/4;"(U%'I&2'/(? <U.2_NX"Q"IDN F0$4-4$=]4!(HB0"5%0 P
M5TH0BDT2=B"RO%O0AI%N#X'/'I(*@V_'!YD$\+',LM-0^R(E6UWH$R%_*J9B
M<2T2)H%NVR7%8LO%UEG%Y:M]\#[9]F79_--@,';[XQXF5#* X5-0+/XKT-,*
M^,P/IZQ?($5NN7-XT=#M] J#AI]\>.O.28GS8S+102\7:%HA][D77B(QRG/N
M Q'2,>4726WM''5^1NP*P+Y! 0N+78OL3I@9F4_:EW0D"=$9=GJPRVT!5+I8
M/, 2;$XF"74+6UTWH#:LM "[&+0T+\N2X#HGCQ-"Q@_2*:_-;Q2+(%_@EX(4
M;YL-93"V_Y/#'TA1\8&4D-1!BPE#_&\> ?V%A#)L^N%*TIKU])ZO/=#FP1Q.
MYP+U*5AD2Z;^PUAD& #' E4WOBM\ /*O#'(B)-M^UFB;+TG1 \50(JIT@#F.
M!%4]N,QX_+.ZMTHI@<K_ROGNZ5;I%"'Z?2QV3(<%HOL='B^J"X"2Z1PU#PM(
M9$/HUQ[>))XOG/_D7B@I^.DD4"/0@O(Z]Y(E>K](OPJ4YL#.0@ &*F;(ULHZ
MDN>3C2$!C[K2.@>KY4AD\>5)1<JU86=\G&QJ9' 7V@M$JU@[,^Z.&I(M7#Q0
M)?(KYFO28F;7Q/Q^B98ZA0,LK^US"%+)),GQ \8?6[SP-G2RZ9>E%;?\AC80
MYRF@>OJ65&HPFA>Q+TC&9F(ZCX+_P+86I& )/HGE<C8;)T'(VKSMA_*<I9<
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
M/3#P!ATE@,Y/SE<LO(?)Z=G4P/YPY ['+^"=>>*MU$/5VVU7ZV>1"B^9SEU
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
MU@9PM_COIS8>\1_Q?QSX?_4( T!\PP"8I, JJZ1&B HE ?9XK0!('PSSEV$
MW9D&^QOHL@.EU-!X#JETHXKOGM5_'/'3PIT^ODYG'[-@74S3==NO\9VHZN!\
M SO:!'#+04>M 5)BHP%%#A@&+3.53> P!4]A"5MP_Z_;L,RKHJN"RO]:;O[1
M60"]%>2G)*_[A[F6$-ORQU$ %.<&..4I=!Y;[JNQI\Q0>Q"(]5/)CA"+$'N&
M9BMJS59(;["#3@"OC.><0<\J,4:A:8Q"V ?&GJ;'YF&[PFO?56AQE[4:P]%+
M^V#0KOO(H& 8Q,R? V](W(1(%9$J(E7L(V.PMRX.]3F=3(O69&7W\CRH$:/)
M+*@HI<OMV0GC U!XA[Z^>);#6=_)G.5))+H\(9F;0IJ,7OT(A?AIE;K](SI(
M0O<1Q;5V=&IC7(\5,X)BBS!7"B!I0'AH=.4-4)#0IW@#-G+7SQ?O@]1]GXUO
M P8F65Y'O/;BV[[C"Z )*MK=#;CRNM<Z?%^\=4<$Y)9N/$QQW3K%:2@QH@8A
M0R7#AE"XB48YU#IUM0/@/LUCWL:;!Q,H#M*]Z5@\?1'PPP3\(WCG-=X1(U)Y
MC)W5A$JOK4:H"HTITYS!OD>\=Y:%P@$>M)@>4AGF$:2H]P_F#RKHCPEZ66OH
MD#+N2)&&!@2#W@H*>96)YJBSW6:BK3G"^57-$PZALL.$T$Z;);4DE?[(_7M(
M91=%X*3D_='Q@Y;P)UMSORWUFD !E3+&4V>P$)7<#Y8[(2\)_\[:+5)PR'S4
M_H$_8OUTL;[EC,.,>HX0TCX@7D)$!5"53:^A?5%1WYG2+U"GOKF!8/TD>G?=
MGWN>?C=<>SH^@1V]^82R#0,A6CC&&+)0&. QXPIOE 6O2.NRM8V#()Q(_HB#
MX.U\4?*7Y7(Q^7!;C@2[F+]-"]-OGQ8#3GCLSQQ]?D>$[[8* :=;>&;6J&#\
M!TV 2@^,%%45FH#.MG;Z[0_/^_#],\&B[S_R@5/G [+F UY! Y4WS#'OB$ 4
M\DVP3RK8.DJ_/S[0?48_1)$+]&5"V -9J9#U*$UW8.L^I;7&,Q[^6D_RC$_"
MJ^/GB["=LW6\=_QUM%RDLWRZBA*G&[TB=FH_RHJ<OK"%(6_"R2X\GOZ04H3:
M"H*3"P7NF@;$2#TJT1#LH*7$:NFLA,I)MNY(R30"Y$D=*=<'9=;G=%$<T^H&
MU.SRHCZT/:3MM['\Z4&[4_7/ 1!3@4Z )[1E :QF 1(Q!RR#1G!/G*&&6+<>
M=@@];C^5H7,6T'T0@"0(=NK^.SHF$#$_7,P_ GFQ)?6U%UH+Y FES@,%$-UD
M!&'(T8M!OK-T( 03*0^9^MOS:H C=P;=G^)S=2#+X'B"@+N:!!R@.C78.BYI
M>(E I:!F$$&XJ0Q [=,%=V<,^\S]>0%+X7ABA!V9"(-UJ[P8UUA+G^(33Q ]
MA[0H.*HY"%?80(B,5$81BHPFK*K^EQ30WG&0(S T.N4ANU%33$6*_.1@U@HG
M-3M!G'B)@.#"BR":#9:,5M:*=43VC9WTV(AYB(8.PA'V8-H</KA?ADGZ$K\:
MV+I/::WQC(>_UI,\XTX;SO74'55J&.%XMU2,T:34,>YI.W=, Y->4"]\T'7U
M?451H#J?77+*"+,4*XT$DL9B):MF-I(_+9C]XG5HJ-M$]5VIJ)^:8;08(^=X
MJH=*$++5]LI;#8G#6#'I"("Z\G%S )QZ4G_*OOB<:"+!(2->T2<5.<R)<9A'
M& S;8C 00*P<L4'O",J'10;6/3<$U/MG,%UZH0[;7./(=)%=<FU[:M=<S)?I
M]%Z[YMG'C,.!7<YO \WN)Y-F3^'/'_>Y\/ZE"3S"X"2H)]DJQ9AS3@M%H5,0
MH(K!"08P;300NX>W':(#( (\ 7)_B;_WG&YOC:(!:"8#8SA#Y2_MV(D$]11<
M3;G6G$MG'#$4<ZJXW0S&%IH]CYUTUE$009Q@UFD/\<A.(CN)[*0+=H+JB;_6
M(&4"2P$J6&"20TJ9K&H:F->-FH:GL9/.3*M@#";[+$OJ$SLIS:0_EU;KYO7R
M[];M3">S['5518_ '[=^G:.GWL_Z&_?A?\^7O&<+OG?%;7P5K0.V#F4<;/ML
MT0%^XAW%.SK\'<4[B'<0[V!O=W!QG8W2<>&N2V?%B/31;+[,\E&Z""_/BFD9
MV<=%.AW=I(M5+L)UEF>%-E,Z3LLBFJO)+)V-PX^'JX87RFJ9/S765"WU[AJ;
M2_JAK6S=6;W XHYN4?Z]7E0_<I-^S%Y_6&3I/U^G5^&6?DZGOZ=?\W"I/U\O
MUJM)2\TQ]Y10Z[#@GE$JBQ$8G"$2_C (K$:J^$[ZS3:T6YM<+2UMMZ[RTZ/K
M1:%'_B$WEA!9Q B"PDK#'6E*)#&>6L^!,(@]:<M6-W)1J%S%^9M"C]TNATK_
M\ZXB]M!)/^,DVSH@S?E?WKC_&9GS=V_/WZF+L_,WH__W!X$@_"6\]N;]^:]G
M5ETX.]+J5_7&N-'[OSIW\7X7O>[IM"?OT22WKO6-(0@JR3N9!0MV]7S[9F:%
M.3#]1EA#L#*A2N5X-,ZFT_6[__$#^*%\'BXYKI[?<\<7DT\!]V^RWT?OYI_2
MAMG\^^1R>1T>AEU8VP?C^72:WN39S]6#7^Y: C]L8AJ;:*#XX>&(Q^H23/[Q
ME^I#=]^#WWD+[_:U?5[L17./]V"6M8KW\CWD*3ZXLFZDX#V<Q&;C[-.';+%:
M,H9)WU/+#W6\C[9#:EGZWJO3+J)%I^F]'-"YEL=X5[-[<9Q&-OR$ WQU-@L6
MQOPV3V>7^;YGD;SX ;?E3NK]^X:6&MO4Q22[>/J#2IPRZZ&D:9YGSV])>^P'
M&W6OX:RU4ZDM^@K?-+\>!;UE-"X>9/^ZG7Q.IP]W#NK\P/<^)6JOZ8Z/G?WQ
MI#F&_]%,L'KRF14,8P^9Q=A)S(TB;%-1QDUS3&I!2&IV6?SC:BI22Y,N%H6'
M_N_I]#:[DU%PMLIW["*=@,.$X(/T+NIM5M)@M:7A\)VAL9EV7$74=:H 0FR-
MI\QC1J#U@%.SYBK<*MSHC[0K5Q'=<!4@$@0/TH;DJ&HX>JO,K&V1[J:==NIO
M>D')+D%=OZ"0$5ZJP&PY1U :HR"I,"@TPW<QN)EQMIYO7,\XL]F'9?ULO?M[
MD_&(@(1PT"$:>RO*!R"QCQAB[1 %ZQ1^82DWC" FB-<PO*\HJ7)N%6.^>T1U
M(]\(X@DF8@B(.@EC78W'X=Z7^6B1C;.@# 4*2D;3+"]>R+-%$'I%LLN/1=4J
M+(WZ\) 1%N3AJ.#"Y4L%\23%YV^R<-B?L^G7/G7GZZ7LQ')K;B@/L/94:N^=
MDA00M*G]TU(UBINK$WNW.; WV7+?@A("G! 29WD/U1@>(C3;(9'6=2Z 0(&$
M@Y00"R$QWCE<(5$HVY2Y3T-B1P8DE GDT8 \%@/RM]F'R72:70;Y^#F;W3Y0
M^W_$JNV.$I#7N',4>HHP!QY!C9A5WJ$U[JSAH%&N6FUIC;N]&XHDX:)+S/56
MR)V2+.L?EMI!1_*Z,PY6DCE+/,&>,R240:!RO#!#&L[/)T&G&X$E$MRIO[/G
M4NG([<&S69!2R_EBDL5!+X_@$ )8 ]$+I+W&CG(A(2IZX7&Q!J*A0)J[0*SV
M^6M0&?<FM1A($(L1S&BT'0\46R(/UUD%PD"H!';,<PRX@U(I5FF/GI!&=X)'
MD->1T,,)ZE1A[!_RAF2DO5UD-^GD<I1]N<EF>5'U.;L<S5=]J;])1CRY<8B[
MBD9: U1#Z96@#!K.2$ I]417 *50@KL 71^&6YV%FEV6[1Q5N?][#PBR1) N
MXX&]G708#<%CAF5+%/(Z348;J;PD$#"(*)7&0E)9BD9IW0@S[(;";J0G)DG8
M]E- 89<V)2$]E:[K1JB="M+CT6AWE:"REJ!4:>8<$1 ;A9EAELE*Q>7 &=X(
M3!Q$5C+ $Q039*-Y>41@;(<]"&NYB22WU$O&E9!(2DX<J9+6.9;JR=CK1D)R
M 1+<[4R3WF%O0!5M;^:SU^.82?H@WG"--^L!05II29C$4A,B7&4M<D]!8YC(
MK_/9QXML\>FLWM;]10$Q3@@=1# CFG]]QE%+V-!Z1(8%CCL,"&$<8D>PXAAN
M8$-@H[:J'6RZ$5:(H03@+H=>]%PF'7/;A<(9.K\):_J:C&ZFZ6R9E,[0HHSS
MIB"3<AC?Z2B,NTHT7D/3TZ!0$@PPU1!0CH0WO.K&;EASN$.U_V^+W5>S2U=M
M_3Y#A4(FA.!!ZY/1EAL6-%LB4>+:!ZHD M0 ) #P%#M#K-BD6C/;&&GY1"1V
M(RTE3+",EMV16';G@4#29;CD:)JE>=:-=[-_6-M1#"*(M^H<D/;.:Z<X$,(S
M:0SWV C+"5%!;VT,<:MV]M=B8]\5ESZ_^BW/2@?+'JO^$XJBA3<PJ=8_0+7$
M#T9UC:WR7'@+!( $:*<Y]L$"=$):IFF0<L_%SX[2Z]_98GZ9YM?%20D$T2]#
MP,XIF'E_F<\O?Y],IZ>C,.XJQ&@-0@&])(X2&_Y8"@62C%:Y+#:\=Q>$U2;O
ML8*]*,SK=(96[]3%:+@-"X<M8<=A79GGB SXPC:8;A *R GVE>'&(&P$X;X#
MNZZJ\'""0)=E[OV#W8"LM+/9,IU]G!0# 58&6A=>S/X!:U<!)VND(6>@MUI+
MX##A/)AG=.,B,9XU7"3USJX"WV^RI?LRGMX6"]^[\,,R(3)V;QF8).L?KMK!
M",.Z(1)EVDJM 63<42J1(YA7X3@:S*2.8-153[(DR+,AP.@4[#:;766+17:Y
MGB4_6J9?8JW>X^#$-3B1%=Y()AU$0A'@/"=N4S3+0,.(JW;\(OVR0>>;^6R\
M[YIS(A,*NPR;]T_'C*;=L-#9$HRD;G_$C 24<.B-H01C'9[BC4?%J49UT)/!
MV%$.BT@":Q@T%@=D[Y6U*K%D[VD2DLFMGKK": &U)-9B**@M6B.MK4 $;*-8
M:*LVZ ""D28"=YJJTM?JH&@5'C,.6\).U(V0C/$< JH5X@X;#H->6BFFEC'7
MD(5M8==155XB4:>!AK["[H2*\KXG(I]P>#@<WN7\MO"O/@>/QSVYX[$=Z6_/
M_1TU!K*5W<.U%)HABJ'7A#HBH:\B-)8@V,CN67&M_:7Q)$+01.+]\:NG''!O
M%8@AF]>GPKY.CENU9$Y;J5.60PJX-EP&I<I@"CW>M C2ICDBY$'FU)&_/4%"
M)HQUVD[Y^)A3KZ9&5\/MBPY%AS)Y^C#M[H#K/J6UGN09#S_Z=H^B_.N9TF>_
MGEV<N?<C]<:.WO]5O7-_/?_5NG?ORXQ8_LO(_==O9Q?_>":EG*ZN-N"%Q],?
M4-2AFA4VG:0?)M-RW$X<7CSX]9W,69Y$_^O-/*2;]&O1'OU -'W<GL_>N@IV
M=&Q2SK92SZF3&!"#*<)6$B?D9CR3-\@]-!3F[8I^]CZ8B2>"#;M:^)3UPX$P
MFJ'QE99L1-9MK01A%D)L.'? .F40@IO0K@*ND7/8FHUTY))D"<(QO>E8^I4'
MZEC<9G6_\L%EW.\HN-E6"CZW!!NC-?+((@,\8YYODBD@%O<@KMC37VOC;=^R
MFZ($RD&TQ3HE,^_XP-02.V@K_T\8'7#BB0948XP)U-4\;\LE;C1A? IVNA%8
MQ6@;-(C2KU,QJTN!%6M6GB+-MM+D$4*&6LL<451*:('3FS;$+G"M!Q!Y5N[W
M1;'=^Y9F&"2XV[3<WJF0IVR)#A&7+6'(Z@Q="J5PC **"?.8:< WWB"NM6P,
MFWH*#+L1C#0!+ Z>.A9#;E/,N9X.7/9:'=_FX8:R13C^FWD^B>WD-DC<RI77
M &B*&4',"L,84L* VKR3C6'=)ERR^-7_GBROS7J#*WWUZ]Z]M"0A.':5&YBD
MZQ^NVL&(@ZT!PAX1#3%!EA,<C#YJW4:O%(@U\K9WA%%'K5$3T6FKJYZ+L".W
M^>ZV1MU*B]AS+=@1J: [2D*.:@@[!8R3@ -,C8-(&Z&4QR9 V7.A;*,YUK>-
M(0\F VG"R/XRGI] !+V5G=%\'!:V6T*9U,D&LJC\Y% RH"'@VC))BQZO4BNM
M KP;A0I/AG(/F[P>'XYW,$![7@8Z;F8N#DXWWE72LAJ>0= :AAQ%3#,"B?$>
MHDI9-J(9%CE@+!$BD!#>I7SMK9@\)6G8/QBU1(W8FCRL'.6(2DRX!LB"(,DV
M'7Z0!(W0Q0&CB,6L#3H(T R_]N;;*8KS_1F7QZ-@[BC2!-@:M^BH($HA2X+.
MB333WH%@/&KD,0OV(VJI<1Z@ZP]$@Y]X&@W$8>&S)1Q1/2M.<"V@=((2XB4P
MBFCI"@/0*:(D>FS(1SLX]M$&[!T4!U26MH^&L?W#VJZRD-3@8\@3JYG#2CJ#
M%36$;X9[:$0:7>^JC=U$][<TUWW.:L0XB$)"AJ"V1ENOSYAJ"2%6MX&B 4!0
M:R85,LH9KHC;M($*@JT13GPZA#HR_#K-D>FYE#INJ^]=EF>+SUEQFC%]]$FB
M3=2XM(HQ+ 5WQFL %16*;P;H&,G-0SZ8KWZ^^&TV#CN83F8!GF^+?*1PJ4.T
M>84PH2PFE$:#[WB0V@Z8$M2MR30DV#G$L5=<"NF]H)M.RTZ;1GGQ\X#9C?#D
M"03#=L0,R/K;=IJFW5=A] ^#.TI+B;;Z!0;MU0CA+=.<8BH$TQM0 B0;&37-
M+.]#=$&'0YG:$XW /N.I)7Q(/4/.<*<L-MA2:XG0@A!C-[7NCC9[ 3\-/AW5
M20P&/J=@!*X&>L0,T@[E'4-; [$ "G8A5Y):I8&&WNA*WG$+FVEGQ6EL>VKV
M+^U00D"G94U'EW46;<73PG5+&(M:[@H<@"L8HL 23[4/SZI:#FNP:B:"/P7&
M7<T0Z;A;U='!>'C)HS%I]"XJ$0!;VK#T)%B75!KL@F2U7J)U^AO35#0[/VT!
M<G^V(R[:9PRBE"H:CWW&3TNXH*WAK( $592&U[!#6"G/Y:9MDS.^D0'S?;AT
MU!V-DJ!^#B+@WGKHPHNJDWWLU'\J&Q(W(5+%<,,A9O[ITV3Y*2M:/)>]-L('
MP@UDLW$0(*-7;^;+; 3A3Z<JB+>L2:ZX-P0*XR! 3EBKQ480*T8:Q4Y;.ZMF
MEV9[7]OIL5_RR<^SR32L?7&;/2B9Y^5/!1/U/Q\4QSMJBE&%C2KL[LB1V]T3
MN3"&&FNM@8QRSY7=Q/0!;M14/ TY]ZBT)XN<4PA]O+].%]GU?'J9+?)JH%#V
MK]O)\NMSAXL,V6-\L@N/I[_C7,&^MM%YNZCJ-_+E?/S/Y,<_ 3BZ21>CS^GT
M-AN]'JG;Y?5\$;YQ^?.( ##*"X:1CR:S4:%GE5IN(3:247CU)@L,_W,V_9J,
M9O/-)_.\R HJ/CB_7>;+\""L<'""?$=?+J2U9#?,<..1)B:HQL02C:THJB4]
M!98CW"AEWIS=^^+H_EX<V'F]P]VY=_=9FQ75XJ@6[ZP60UYW;.0<<:^(8191
MY:G5G) 5>" B5C;4XB>#IX>%C3W6C)^F!O15.A:VTWRV%HVC(!L!VA*.Y8'"
M7[X1D1B !+07D_<+QY]'D*.$$%"^ 3E(!&KYDZ>3#;^KP)4USY <6( 9=I(:
M 33E2*TS<3FDD#?Z+:_(8<_2]FY.0Z<]*?N7L1"MJ6'!LAT*@^BNBU2D UIQ
M%T#G+92,.:DK%$)-&OF!3T-A1YE%)'8]/Y:NYRI<KSB@=!ID]>3R=1"8X_1F
MLDRG@U.3=Y2!"-?H,X1QYH6ASG().5..;V8.<&&;PW@VN_LV;.[9S*RV=@N4
M>Q.%#,L$\T&45D?KL\^P:HDB6O=N=%X727A ,20D)\4,1K )RA@..T%11Z4I
M2"8(B"&@Z"0:G;_+BB+<8AQCNIB%*\?6!(\"<VO LB8:&Z8)5$0@!H0F7E3B
M#5G?\*E6N^W6FZW&X]M/M]-TF5W:[&HRGNRO"(53G"#6)3#[IV=&:V]8"&T)
MR*U1Q1PZ:B!  BGOH&+4PXVD#/\U_+0[ ;*C*9"$)0AVF9C;/T .RO"K26,T
M+TLZQ_-/-XOL.IOED\_9:#K/\V0TRY:C^571GF#/U6#]0^N#\O35]_&+88U?
M["2R 1F 82^85!#X3?J1%$W\;AU*61%FMH]D593]:SB7-]GR_.HB_?(\Z9J'
MK0JO?=^5PQ/$._6IMJ2#&@?/(80NH'(/'3R0DQJ-U*,%>UMLXQK;4!N@N=!(
M$(B(M!*3S00"+23I'MM/$-1ML$U 0@$\:6S?#^4N+>6>%XSF#V8TQNKO9QK6
M>,OCQ2ET-BCLE!N%%+2"B:TN1KC1AJ5T:JV/Q97'L;_6?@FF-.&PRP'NQU<*
M'DWMT\)T2PCS6MQ[C G@UAMHC4-"*(+)&L*&6M3HZ- *PAW5Q"80TP1UVZ#S
MZ""\8Z[Q44+V"4>'P]%=SF\_3+/]J-][,K%^W.?"CTV5(.";SC(V6!>:&X-
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
MKO\13$2LY(YX.T*\H1IOR#%JH7(,(0L\ P8(MFEK NCS\=9A;4<"\.FEE9Z
MZW=+-UT5:G\LGH6'>2"P11E B'5=STJ $+2N\R*&"T$=QD&AA1HRYE'5;9 '
MY??!;H-EG5?V>3*_S57=2RH69;]8U#4ZCX:$[+:RFX.MEF0.4BJ1M<0*CC7R
MEM6]\L'WG,/MD-R9K@R3<!9] /-QR/R(_(C\)O(EV$KAX)!B*:'206IK!+@B
ME0Q7"#_8_*PU\KMS*2<2=3HW:MC('X[#N5&3?5^=RL#L[UT]T!+6K5:@H  H
MSJ22SC-%G1:;5BO$DH9!_D#=F:]V^\ UV1@E"'>9]-@WW$:W]-'#M"TJ<8U*
M@:%Q6'J(*4...N)$-3Z'2<U5IZCLOB0; 9F$=0T8EA&%0T4AK5'HH-;4>X<4
MP)8QI1'<-$9 DN-.4;B/FFR00#3D5MRG6I/MKJZR<>G #L<?=(/9*/LRODYG
M'[/1(EUFH]7C?!2H>]5G?W:Y>E#,P?H<:.CY4U8'8P[OK$1S4H_B4(P"Y %B
M'%"-B 5T,XH#>M^PCU?G=W[EUJ?V+AS:^:SL2CR[+/YQ]3D=1(TFG4:Z!F,T
MQ[3IZ#_;69&0-7_0,*CR1EF C- >,^<$VO 'Q!N-SY[)'_;08RD!LDLK>S <
M(C*$R!!:Q<0Q@#4_<  (CP4D3FKCJ!;>5X:%":9_(R;^3'[0F7==)$AV.KOK
MZ(+D.SC,^VE"E/[RE<DPV9^5T#>H[I;/@@&F=<8HQUXI#@FAF&E+F86J=LUA
M?Q>[]Z/T;2"[^>79;+S(TCRSV>K?O18_X@1!.83JY.AEZR_ 6N*)DJV2)6.Y
M548X221'1*I-R9+U&'6-IPYS3!CN,L<DPNE(X;168HI/-#68'F"-UTU&O42*
M0!P$ES.J )QF50-NSHEJE <^$VO=Y6*S1)(]M-I_XIGU0[D\9L>U>4C/'*7+
MT8?LXV0V*S(VYE>CKUFZB ;F\[36+0\4@!!;XRGSF!%H/>"T2O,(PA<W)NC=
MCWRU-.EB\34L_>_I]/8NY,]6XK4+V0J"I0D[+>P_.DLS^I!.">+M$!U 7-NA
MA#BEL)8($V])4;Z(ZC%XS8&TNR*:=X1HEE 1$1T1'1']#:*WD[XHD@82)36
M3+IB]L9F/(X3OM%,:U=$LTX0S67"]J&3'Q&@!^,,_JY:GH77OZN0/^%4<3C5
MR_GMAVFV.=9.<;N7D/^/^USV<9D4D-:=K:U@&'O(+,9.8FX48540BW'3[/VW
M*[N2W2@@'"8$[X]?W7/$O54T!J!/#(KG#)/%M.0HG$<G1>0HI\A1.G%"'Q6[
MZ7FH!$H6W2MMC[O'(90_+]-PIYO7R[];MS.=S++7URO=%R+PQU^V[J_H+)\M
MGG"'=ZGMX?N+=Q#OX"3OX.(Z&Z7C\?Q3^%K!"D>S^3++1^DBO%S,SEYF'Q?I
M='23+LJ2EN5UEF=E.Z:"I:3+[+*JY0X?RI?AA;*WP)\::ZJ6>G>-S27]\/T]
MZ( _$7"'.95_KQ?5C]RD'[/7'Q99^L_7Z56XI9_3Z>_IUSQ<ZL_7B_5JTE(\
MY46'0HNY0$H)ZI21P'-'O*,<*:()+;Z3?K,-[=:VEHMINW65GQY=+PHI]8?<
M6$(DE$)3)JD55%,B2=#<K>= &,2>M&6K&[DH>'9Q_J80D=NIAVF#DS]TTONG
MYGO\)N;\+V_<_XS,^;NWY^_4Q=GYFU'93@K^$EY[\_[\US.K+IP=O;\(__S-
MO;EX/SKWH_=_5>_<7\]_M>[=^_+C_)>1^Z_?SB[^<1BL/G0,WZK(6U?_1L,%
M09DKKSZ9!=5\]7S[]F:%JC+]1B6$8*7AE[)Y-,ZFT_6[__$#^*%\'BXYKI[?
M<\<7DT^!:[S)?A^]FW]*&_; IW3Q<3);W5YZNYQ7+ZS,B_*5WR>7R^N?)?\3
MED(0+#%@F K\QTJ7&<^GT_0FSWZN'OQR5W/Y8>/OK0,:Y(>'W<&K*Q+^QU^J
M#]U]#S[\%MGI6[N]1>.UGOV6/."U1*MO/1Z@V*/]_K#6+Y[&>,7S;/<!^"8V
MS(8],WK:J>.S(7-V.-?[Y.EJ%E/9X'7T"IYZGX5@^"_FOW<3/-\SS/=$$"K<
M0.'-2*</JD;[OXFWZ>0R:#LO> <FO9DL@PGT("1:DTF$QY#@\2Y;ID'UOGQ!
MTG3IHLC;S2-M1MK\EG6/Q[>?;J>%$^<%R?-\&4[Q)3GW_-/-(KO.9OGD<_:"
M]_'K/'^@H#/"\R3A>3%?OJA254[OO0Z/LT6^=H*]I!3[U^UD^76G/+]^4$D7
M9O:KL]EH>3V_S=/997[JMM=I<H75J.T3/WI\DD?_-EVL=J=,5SA!$FC/ZO=;
MK-%)=L5. D"GTW0VSD9I7@3C;#;./GW(%B,,DU%1.Q#K6EYHX=WD3NU$$M_/
MG>(4\TS2>EJ X9YI[(ER7A!&B-)5VU0IM%2-[D9; [U6HN<LSV^SR_LK5_YW
M_:W_?5]E JS4ML+&FL_*G*LODWSSJ:W?_EM)R%O)5GEYL9VSR047AYA<V\\\
MJXCY+CM([/7L=X+\3AFBCYWY\7(WMCW!T -/$7 >8FDD1$*Z*DG=&=#HH5'R
MGK6-NV)5>V=L.X\8)9TV=XL<+7*TR-%ZRM'$5B$?T5P@*0R 7@C)E<";F:P
M\L9<MSUQM#K,6\1:SV;K>&=WW(V31)!.^UQ'#A<Y7.1P_>1P$(":Q0'K%;=
M,1SL48>0%E9M3%)#&Y6%>V)Q5:B^BI=WQMO"JA*&.JW_B;PM\K;(VUZ,MSTX
M76#-W%!=-DT0%8A2CZ#3!F"D.205<T,4HT/I;W6N1YEP\4W6P]EL//^4/8W?
MM1E,0%E"T$'\<$W0'ZK$=R<JBF,)(I,</)-\A$>26@$44'B+.$0: QO4/Z5!
MY;5C&.'&*+>V/+(#W4TRG&!!3U=W>\$AQ,^DPB)0509+YU>!.LJRA;PL6PA;
MGRW6CV^FZ>Q$LRDZ7U\/F JKF0IAS'!G#4?&>0D8#0I8%0H0M-FPKV0JJ^"F
MO5V$I:TZ::^"GN6;YS?%)7/W)5N,)WDC!EHWU>Y'&)0DD'5I=/;6?!P %OLQ
M4F)_N!1U(TT,H59<6<PI#Y)>4(NK! 3I/6WT;GD EV4.U(O!<N<931&/$8\O
MCT<(X :/BEO(( :&8 $=@-;XC8,"8'F_\OT2>-QW"(J2A)(X@RD"=,\ +6LI
MT"Y*>22H2%"1H")!]4*%H'76'<0&088YP-8")8$WF%2F-I*X,4&Y.Q6B([%/
MNTP\Z;FKKET<H2L?7L=.]'?9S>UB?)WF#:]>C*B\T,)[$&^%HIX :X2EU&LI
ME.=&0J",QA4O(@+>GR]7D]4]OK^>N_E00G&GT]]?9+I[#*,>M#1V8 P @;K
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
M;XQ55S;]G#GZ2DE^&Y@K\^<,.]Q.U&TWJSHQ>VOYA]&W\WIF_,FD_SM"8?<
MK?Z.M1ZM<O\#$.'^U^Z)($\$>2+($T&>"/)$D">"/!'DDQG,8#VJ%"+7CB+?
M,]/ \TT[\VT_]D3KWLC=K#Q\F\',S9>46R^?T7AA$XB;V6=ERCPC@%H/ZX'?
MW0Z?<:W'-,;WI+GCMLE/4N3X06]W28E 28G4=7(K\]PLB?(LLF(LF,BDA)_8
MIOO44N)XN?EY<.O='K2G\)\_ZL+II^N*ACIOYS-X/RGG93.MC+)')UI63>EF
M,!QK8B!EG<(+][VT'+BT9NWZ?%[)6^O9Q!RVT,D^$&$WBE190<M-"Q?$I)7&
MOF7G85[8HC]6$MON6%AJU02I9T/_KN_7U6PD[=XQ:?>-"I'V[0W%IZ?![A>!
M".R)ZSYF\]3[4]#16DHG:;#K+.^S 0\^_\<1!G]^$NGXO(2AIY6H<+PH<3+'
MCB/3+PJ[<,(D$\(P3NR-E"<255<P5M7U3+(=7 [>NS2K^Z@%+DX"\"0 3P+P
MQQ" 3J#@;;GC)8[C>+Z9NGD2!VD1BYQ/*[/S[R0 X]EAFYOZ3C1Q@D=%I9P$
MXDD@G@3BCR$0/240H\!QT]2W<Z]PW2*TTC!Q109M6)CF=Q*(!RN*"2N>V'YX
MDH0G27B2A#^A)+PCK.(%JAY(Z$=^')B^[[MA'H8Q2,1<&,=Y&FZD/AQ*-WR*
MJ*D33.S@. SH8PO2;"&M4[+#T<I8/AJ^>G\8SP\J@.^W-T^HIT9*3PT\*\]
M-'M82S>VLM /95Z::3OW]EP^2@*(XWF3P#J. ,RC,, 3U(+YCE"4*T:)/CSX
ME(+QQUKJ00$XQ[OLGVBI\H2=TPG_F$L]G?"/OM33"?_H2SV=\(^^U)_QA'7[
M06F:[A-LP",#@%]:KXS?NKKMC"5L23LSR@48=:O>N"J_5L9Y58E4\VIFK%JC
MJR[FU71%A217URV5CFR;"L8#<]?HE_-Z98 5"(_ \S4K.(FF*Q6<Y$_->.-D
MX_JJGEX9[902W+7'U]WJROC7NNQ658<O@J4<O!X>RN$VY%8+\C]66#!3_GX\
ME7G=5&><(BW;_,M;;6[3"HS_[AN(=#R]W1;N:0:G&3S!##X#LY;3:;N UVY
M9!E-NZIZH^S@UPUP\ZJZ[,JYL00^IO(45U5?H0^,7$(87C NZJ9LIO!Q&)6'
M)OI-1A=+O87Q^9)>W+X'CW!!8#K(0#30?Z\Z\9%E>5F=G7=5^>6LO( IO2GG
MU^5-#T/]QU7'5U.2F['/TCB+0\].B]3W@BA(@C"PS3RS[2C+X\+&=\K!-NRW
MMH@MK=QO7?2T<=6A _)/?4H%MZ(P\?S(RT(O\=S(30LO*P(S3&W_F[:,3>0S
M2DP\_Q2]GWIEX7(?NOW>?/+ \;9XFM,/?W^?_U\C_?#QMP\?X\_O/KPWSHSW
M'S[GGXS/'^#7[S]]^.5=%G_.,Z-X]SY^G[Z+?S$^?89?_)J___QI&[W=PA2W
M+,C_MO7XMVR?).(D#XO<]#PK\GTOC./("J(B+6(GCX(TB,,Q$>\CGU#;J"]N
M#G 4N.N&]89I>5S78R[S]^L%4.]T=TK9R+L/\Z1*4,TJ!@D("A/(O]] KDWK
MJO\,'TCFH.F\H#W"'S]5J#75;7.&,)<@SH/<S8N@<$/'-#G>)0Z"(G'.5+=8
MRW2RP G,+$B*(HV\U$IXR"&P'3]-64"A;M;5+%Y]\SC6"Z/JI^42!6FWKE[\
M[=-ZL2B[&V15;7F&6I\A%BCB#'S31N0!?^/S*F5,Y=OG]I"EV7?< [H6CH;#
MX]/>ELOQSHMOH%N72U"E54UWJMNN'4JI#F7)#\68P7%V]3E\_;P" ^GUQJGL
M3^;3R^:/-^_+U;JK/EQ\ ,. )M+3^=_<2MYY9..1I)D98/?)T V25)R-'P8Z
M>;NI8^91!L]$3A@&8>)Z#B=OU\U<>TR?>QTI-Z3\D:U%%;X>_YCIB[-JVK(-
M>K-N9E6'<T-90]N'AZ<V</]KZ([U'(IJT_:RJ?Z J[I;\C49-6ATQKPJ9T1L
M78NV&UEEBW)Z!=,VOM8]/@=_FJVG0,:KJW)EP,'1\DLP\\JFG-_\FQY< \77
M#8METL>!NC%<B*9EN8:5 C/ AYOU!5#(NL,A\0NSNE\!::_IG579?^G!=JPZ
M.7:-S/.O=0U6Y(CLQY+J7M+^]Q[8((<MQNGUV\C>]'.OB +7S/V\,!/;\T);
MD+WG)HE.]HZ?IU'HY;F7V;EE9EDJNK1:!;4,>=9D#WN%Q"%W2UCUOW45& )2
MH!52 $I0TO%S!\KTY7 =6P4Y+!DH"ZF\7MT8U_7J:B"P@:RG]7(.>W-9-2 :
MYO,;_'NUU'PFOS<U_D2;0PG),5%L:;S\_?6GUTQU^7L<__9*$'Z/; /&!\X
MN6E1?JF DL0I(!?]SWIVR29(+%J2FX9&@S6U'8XGG#_HK>G[:L5>G-?E>3VG
M@I;T,[X"+#F=MST7<>RVOL2Q!P_WXO(ZY]G5_555K0R\!"?R4]M&[ZJO%=S^
M;+SJCV75]'C%,9& +]U49??: .UDA3(%UK^>PYNPR7,4%["TSKCHV@4\V_;:
M1L KNG*S:X/@A.;K6<7?[BI"PS'_%\T+_G<*HI)R*";#!KC\I%$B3:OZ*UH_
M[(EFU7:P*1,4ICW];XNNP?HKKIPV>T)&<P?B\FP-P_;MQ>H:K.F)<=FVL^MZ
M/I\8\','$P<M[1QHF]TJ$[7]4QH N!$&7L&7X8,@.==\:N1^.SN'T=&)N<!-
M+<4*$-:'%23Q?=R+\W4/7-?CEB[.@<AII$,(UU3J13#"'AJ&DQ1Y8/F^XV/#
MM*)PK%AJ?Z:7N)JH]:PT<H(@-?W4S-((%!'+%0JTZ0?Y,Q>U2=G7/;>LU18^
M"REZMS*L.+!2+$5KW=!0D%QK^&N_/N_K65TR+@.QBL\S'S/ZI*ZO6I"T9^UU
M UH"2([YG+$;U]'5*"275!T2W15>S>L%,L-A](S=M5#Z83&4?33QS#>=*/+,
M*/;S/(D"Q_*D2A(F9J[Q20#,D15.%KE^YCF!%>6VJ/ID1Z:W82GN;5P] 5.(
MHKEB$PUMV[Z=-0[-!UM)GU^9*:-+*BH7O.TQC$(K&Y(YTX/Q>2 $^(XL%ESW
M+)JR;J8LTT_^:4+L((H) P.BJ+^$6W9Z5<(E8G1";V.!'*-D2@)&;/C4\/+%
M^=RF) #/=*"/C#\[NL+I*^+VAJ^WTE8"%OU,R@'^#5^Y^/9RR!-F&4S1QB#5
MBHI<<%0FWUBC(G0FZ2H(=Z>;4>+=Q<WX$CNHO3H(TY=U]X]RO@830RK%[]2M
MS3A]JR<IR0,W=7/'MQTG3M(X\26# T>G&H.;19"8!9C?69$X49HY<5A(!K>#
M[%DQ..R701MF_ J*%"B@]S0>#LW;J;A7T)6#3 %$WU75V1Q4R+GQ%5; 2/>J
M!I+OIE<WQ L7N+ROM+R%MCS.#5/@H4M0(_\M#9 ='(A&!S<EMHT$;,'4P/62
M=P6<M]>@PQIL<O#=NEFN5\Q0@(=UWQ-HP?B"-CLRA.2\8:J_X%>8D6*Q+_7B
M-36;107:]:R=MY<W!ECVV*_06#<RV/RO=8O_LRB[+\#/8#1-F5#""_%KQ7]/
M4M' :#)%WW?LAIB18>\U&92.3!2TYWW5D0K/7YQPO03ET=8)XG1ZT!'FY2[A
M.!$O:F]H"X"';W\?]T LGMEQ,-VF7?&-F1CP/39[L5;QD+8:> ;.$G0:D%)=
MUYXCHZ'C\$9_B*\,E+3R-=] 9^\-7#<;FZ>3G#)6Y?UVCO0G##)QT^AK$#M=
M(M2B!MZ"/UR3P8?64MW0CHK+A38/URFV[D;<8SKA,D-4G2F\M5XLF=97GK?
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
MC>F ==>OSFHP0]B_,!+_LGA7?'BE7,_OM\Q&!+$$C&!&"CI'W4\5SP+3P!U
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
MN>=%#3U,_D4IHB=UZ@Y]60H%7635G!57$B;-<.;KGD^#$Z'XMG";\QWNMQT
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
M._/:B#?+FVU+.]Z6+TK2@>EB3'^5"=E:>C,5]%>ERK>=U="\*F?MDK1ZL8O
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
M(/8+?G/%B5VX@YM+;M_)RWKRLOY$=\^S9?30DHSN98EM.K89.'9NI6%JI;'
MTEM9&MG'QNC/0#>U[8D=12=F/S'[\>J31ZXV/G,OZZ\@0["H[OQ1],EG9>+L
M<_]8MKI_4B_P0BL)PB#*X\QV'2>T$!$:AZ%9N(D_S)80^WI2-$]NU9-;Y*>2
M&:[*_\P<VXESR[4"WP_CPG43+R69D?IQ[L;VL<F,9Z"S^I/(LT]BXT<7&R=(
MZ _@K8PO44K\U*Y*2_-@1('GI(7E)H$=Y;;IYY$;"@]&%$2C(!OMW4E]//DI
MG[E ^QFXW#:5SI=;#BAY093:KFG'9@ VI.1RT 7CH^+R9Z#P>9/(<D^,?F+T
MDX_RY_11IK@BZO]*W>YFU;+MZ]4/Z7;830#[7$*:X\%VP\PR8\L/BR@( B_.
M[+Q 6*AC85Z[,\Q)4!O\X2)CV_OSZISFR67Y$YK=SU]V/$1]]511J-C*8C^V
M,+QA!GGFND%AD^3PW"1Q<O,X)<<ST&/=B6.?<ME/PN,Y"8\3#/0X5>(<Y&F[
MJ*?&536[I,:9UV4W(RF+@N4N9^M=SO5#\.,A3GJ?JRU25UN0VK&5)[8=^E82
MP,669)Y$D-F1N=&LCK6=3*GIZ_0FY;M+Z0\_A7[\1U^_:>HY[RVV0T%N6EIV
MLX(#V76[G3PBS](CL@^#.58H&<S"]*$P*2P_BQ/+"?S0%1!-T_?#_.@9[!FH
MD:$7G)RA)]8_7LWOR!6\Y]W[16L_>FH <VH!<CK]T^F?3O]DY/\H6L<^!H>K
M8?*#/'/L*/'#,++-(BW"+))8"]LMXCT-CEY<JS<_A5E_@EJ=C([GR_Y:E-OQ
ML]ARPL#U'#,UPR**'%GP*'$"YWFP_S-P.MBG1DLG]C_Y''Y6 !;\ @8$T8*R
ML*]G(-Y(,L^5-^)GBHKN=4V%ZIIR?2MRTB3*<B=VG"+,LT(4U[),.T_'UU2R
M[NNFZONT79S7#6VU.H)4/P%Y<9V4U!,VZX<UZG]N0:(%L-W82_PX-_,D#:PX
M\8O(-X4@21S?>Q:"Y!C5W9,@.0F2'UV0>'J@WO2 L4,_3 K'Q8S$-!"!^CAT
MT@W#^2@%B7.$@F1<_'-B>3]VZ4\R@/YC59[/*_'[1_DVV[+WZP6\,ATL;@Z4
M>'95D3BQ;/,OC\ ]F^/?-IZVN_^S[E?UQ<W#I_#YJC* N>"E&[J!@K>]L=C1
M -XHN\KHJF7;K:J94:Z,"R!FXRM2LW%>]O"[]1*X?P6?G)4PIOC$$G:2P@@@
M&. [2%U&B5";'KYN(&U^K?BS_<0HFQD-!)_I*GBI,J9S>+J^J''0WB 6-*S7
MQN;!34DTK$M&[/1KML/CK=5V<@HSJKH1'3_@J'<2FV>-)DS_O>K$1Y;E975V
MWE7EE[/R J;TIIQ?ES<]@MNN.KZ:_:88L1F6^TV/GC:N.A0W?^K3S'4CQ%)Y
M?N1EH9=X;N2FA9<5@1FFMO]-*V<3^8P\B@E4*8/K*9.]W(?JOS>7/7 \^O&:
M?>^\G<_0C?'A[^_S_VND'S[^]N%C_/G=A_?&F?'^P^?\D_'Y _SZ_:</O[S+
MXL]Y9A3OWL?OTW?Q+\:GS_"+7_/WGS]M(YLQ;8^(GV[@ST#DGZIY1;+_S(S,
M/+7-T'8C,T[L)+=RB]V\<> [@7-FW\$"NK81@FKQO:31K#I?:7T82#YLA"3W
M%$V+=E;-SV8=")R&_DJ[16+H^JJ>7AGE?&[TL"3*+6E0^N&M3U]OS_NJ^\IH
MN3/@K\8YR+D*OP43ZMH%_;KMNO:<^NS,C/,;_24N#&?EJB19V*_/^Q6, 1L!
MHA*%YL4:1@?.7R"SX"](2.)GA;_K9E_Q:+\VC%_+!D0*2FZC[F%S^B7J2S@5
M'+Z"(P/M 4Z4C:WVBPW>P^] XVJFM9+6.+;F>F.3@;V;M?B9OIU(-UVO[^ZR
M:[_"+VE#2F->=I?5!(:HN]G9LNQ6-W1!T!=@K^"J@+D7,,/1P=,KO7@&MK-N
M5O#_<667:_@H$0/0@G%=KZ[$;B_*+S"9B7'>M>P?LPJTITY<,TTYO^EA8:O6
MN"QQ1V$U3*M")D*"X9\!8P$W$MZO.\90,)VN:F;\2RV]W"]!_P+*H4.&50 Y
MWQCKOF(SUS\- ^*U.EV!"FC<U-4<:'G=?07RQK/Y6G9UNX9IW2SA-Y1ZNLD#
M98>DA[2N+ERUZ3 ZC2_8Z:_]#J:!,?!"1A+L2CPDI(T_8"BD8#A;-)/.8 30
M^]9X4XJ+FFUS:5R!A(#Y778548XX2OA8 \Q/X:[7-!&A#)2H7]8P)SX!T.1!
M^\8)$&7 ]!:@>Q'9G9?-E_[U>!W3K6FY2.-$O\3^T[:'P^(\O00"_ .)';=7
MT?DE28$:IM%?@=Q@G <' P_B/M^\WO_.^,ZR$:AP9C3M"D@?! [2,2- .*>R
M.5M5"^STU=T8-3Q==R0!=C,UG+%8Z#?.""VK>[XZ><"8X;W'!-*^_[#!/5\]
M7C)"7MHCPK+GW0I,=LYOJ;-RAO.%ORSAVL&/T].]N->&0U5_@-C$AX'WX$H%
MDIU-#+3[+[==Q4#B*YH1TK]VO=;,\&!29M]KT@'A\G] 1L-?UHLENZW6/1-\
MC%WX-5DAGTSGZUFEKY-8J.^9<43R$&]96 PN!6<SK[]4\_JJ;6>X]')Z55=?
M<5THPN#N@L=!!,$VPH'!0&!V"6FGMKA7K+O785U7N-9R/H4[$3>5;>2L[DE^
M&QVMA5[O41EGTZ:YTH[ 8%W=?U'3Y?>>V$_T6)#C8F94\ "G"QQB":H0K).^
M-P4Y=$E[IA,+DU9L=U]\X-<MB/O*>(DTT/35JQ<&-R#1M]/.ZQFMX=,*_H?M
M,LSKPY*ONQ_;@ /;?>@&RI@;Z/__G&U@,X1'1H,X<^?,[$,C73-)"3OV>Z,H
MCAQ"\.<6I"D< $X(->YDWDZ_O-BB@/N^YP6NY<9%;L9YGH>>:)(5!W84N&<J
M;N=YN1][?F [61R[?N(5<<"]9(X?F/X+(,MIN:QX?M1Q")6+=CYOK^GN)X8$
MC@)FA(=ZILNBF8\\@PK.:B"$=/*5U#64,XR*.=,*4?"2N!04)2#._M6; \M9
M[8,#3ZPI/E WZ-V@G_41&U3ZYH,Q+9.Y9ME&3:OYG/^5<MSP9UC)5/R\Y1@^
MUPO8J_?5M?&Q790;ONOK>K:Z@G_"4L^1XSITVLW+95^]$?]X.W;5O9!P NFI
M=E_L!ANP(4+_+V]?;+@0^?"W_,G>Z[6[,0Y/$3=X=)1#4LY!(T-K#Z5;5DW)
M"6PXUL30U8X#XXD.[N'=L?H_'R).=.01$5^KVN;:MF5G:9[:.4A]/P]]QV:R
M/LS3(-M$$F\)(/P3[MR-JZD?WDW]\":3X1+ZUI:82?!?[B/$(9R)]ZAI@T<:
MA]A'2#T/R-5OY8VP%__^CWJGROD#@@ 9X[Z\@W,M3RMU%7AQG-F@6Q:NE[A>
MZG,M+3*C--U,.KXGY^Y@W$_5:C5G6O&+35TW)%U7AAU%'#6>_FM=]S5^EL*2
M6$SGO^&@_P&?@2GU[YKIZT<,0IJF^8C,O\D,#R&;Q^&75P\1"<\<GEDH_9P9
M_"0YP/0]H.3XX= 1ON,KNR^Q\C0KPL0.(M,S8_A_:>I9IA]ZCA5;_EBB:!:K
M%"ZQ/(GCE0J^=U()GH]*L)/-,<"TJG;[I7Y:)<'S-<"3!8I\D'N16^1N'KNV
M+]7[T N*[\K2_,#^V79?[L'3Z(R%W]W!W(YWNO)_PBL_O:K+KCW8K<^\6'SE
MUO(/@YS#QI],^K\?4"L( M7+)[)<)\@+)PU"*W:<,+8R86> 2+&^JPAAY_RY
MFEXUL-&7,,8OOZ2/E^X7/FJ'G?M2S3/3'(Y56-SNV Q_6/7@#M:.--8VO=RR
MXZ)(8\LN?-\V/<[:89'ZUF8>\7=R_H6/XORS)Y[W0S10^.EO]Y-!_PWJ?V I
M!D\C-W-=*XA]QPP*ITC"J$"+/D\#.XZ\C0S,;[Z[H^]ET>^G_?NN_SU,^Q_.
M+'CF\N&PVO_Q2H([!(&C$I]\R_7,O(@\TS=3Q\D2SY$W?9(GWU<0'%B)=Q_3
MO?>C7/K'RM.W*^G1@\TN!\RN6;M&H(NPNQX5GL!'(UC-AH5WT+W;DNEQ+S##
M7=OU$+3#_7;G463DENW92VCZCA2:9NZ@E\-/W03K.N=1Z$NA&>6F_53F4?0H
MYM&CYVC>FY"^"P\]QPS/[X6=O!/9>[-+/@O<<[D@>"\\<D^8.N/-/]_!G$'T
MPS#GN)O %N;<![_PC=ML=-6<(-@<(:Y0L*72U"A9DJG4J*1Q'6UB@):&YPV+
M]#E.''B9([L1;-\BHAM3.]KU"G'5/1]M)D;;26<=XK59%MM!Z2=4PCVQ M.V
M?-LQP\0*S2")+#?UG,!S"JL("O?^I0#BCI;#4NOQ7Q\N/O -84#O]GH+W?A:
MD8"#:L^W$]ZC$QP<_6&/5'D[$C\SO23V3#NSX 2+V,QS/%(_=AW;##>@]X]W
MI/\),OMXS]2:V)YY"&&BI=^(E!*92B*32RBQH]>R:Y@,L4VCOC"JLFNJV3B1
M8M\[T3_(G4A?G&&R")W]&Q!R58?S@"^];YLSE<(6LQ0VF1/TJY8]0,Z*?[",
MUL8H#7RS$U>)07?),2UZO#2>G=>O,8.1<FB7<,(W$V,)]AI/R*F DI<L/^>R
M;6?7]7PN<G)7P"24ZRM2=REW!Y[O9*+5CE2+MIG?&-=758-IA5H&X;SM>Y9(
M/&TO&Y@W4,T[NHR"B7Z5 8-@)B7LX(P=#%T\9=?=X+[K*<;&%+8.6+ACUQ3>
M]5?U$N=:4[H'74<L=V1P-<;_]0F3A2;&I]>_O#:N87?8-'$IL'CXW_64!A<I
MH;A@K+0TP?RL]9S2E>KQ^J97E'YZ: TJ"K6V4&:<)D7J1F;BV&GD!;DH(NT$
M0;ZA0?V=GW'<S-[) R86>">7L<4S%/"TIP>+,=>/#B#$AOF]6U);-\](TVJ:
M;4SS)"FMF%V*H;/CDJ4O_@9'#AP&6_4>U$/#MI3FJ678%7(+M5P[S-2Z6'<;
M>?%==5EV.&^=,?O7FV;6<==CL1]>CZ4D[NY#RT_L* V<HBB\V/?#PC7S.#-3
MU[>*(LSQ';W6R:F0RZF0RXY"+OM*"XH1/?X*<3&&^X85LN/E[.Z55?NN^5JQ
M6$7_KLFJ\Q5<6CD(B]7-.U50*BW[*_@]_@_^#>YJ_.WO#3#='!4,^-M'_L^_
M8ZF/7UK,M[XURS;TB[C(0BLN'.Q GON^Q>_4.(39IEJ6K>D[813 G_(D"_/
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
MT,E*UX.ODS_^^<MT\K6UVB:0]L(\'8/UD5P(AP]H!"I?HL#*0L4TQQH)2F7
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
MD&W'!7YR%[SD!"+6*#N(4P8SG5W'%BIY(Z<,W:6 QQF U!R(0#BIL):(:*@
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
M4H3_<?J,BA0_Q^%^6H_VYSC8.T+2KH3D/\[M3G(2/.YQ[U$!>X&1GA*7SYS
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
M_RI'4K01O[/,MW;%7O/T>7"9#Y?C_./%9L;,<C8+?YW'7?OHG&E'O>/06H$
M]U9!C'TY%@NMK,V9HHX+3JC"%$+L*=?,E7/&I,%W!_V_[^SP?58,OMM].[.7
M[^9;*Q6G?SZ:+_)A-KW(%I=YX-%QT%C"_;*_C";AG>ERWI\,Y]__>'L1'WO@
M[0>L??N6F@'"< J:&TV"?K1Z7;_<))+Z^#:@P4K-*L@J&^3C\?K3__,.O"M>
MA\<<E*_OF93ST548]X?\6_9I>M7?4LJ^C8:+R_!G&,>:JP.!C_O7\_S'\H^?
M[C+SNTV4U":>3[Q[.(9J=0L.O_OIW9:\6=_^D8_0?C]K\V8[QXFUH60WKE3O
M_G.Q>WPG?\WXSD' 4C[;>M"=>4+<+_1L/BA")%<#QK#WDI#!U\WL?F("7K2T
M^*FR#+>4Q6VMK^69:&DS1$E]XC';)[#PQ3J+$RVG_*G_+0LV91X_?:"P0^-[
MO?5"':TZ35[@$^F6VX/(8"OEO!;]P"!B B'$&&'6>$ ]7\>4"<J(W"H OS%3
MPB[ZM=Q$'_+%QXM/^3R?_=ZBOP/Q7C RCKIZ3'+SO@;GO)T7]_7YYPU]LKMQ
M4:T6EK0<00FQ\I@[0)PQJO124._Y5O'ZO;A(-,)%!/4X;C2^Z@ ]J\=1YNI_
MIK/?SD:3L^O9=)#/CZ_2U9XZ@JQU8?.6H: +&*D!E]Y0!T2)2X[TP\[?.+7O
M)W];3>SK* FT1T&3?;\[JPH<@<0_8%#MA"$!J\8LSG%('?7,.NJ@T@!:5F*(
M$F*:P5 SP@WW"#Z*]KVG8,W[T60TO\R'V=?I].6]D9YP[1Q0*=;]Q)[ %62#
MN(,6" \(5$PP14T9ORHH4OQAL5<NR<]Q15[--B:\2;FW]T[HK, \9MOY% &^
M&YYIE8JNE;*4>($]C+V_K3?:;%Q=2+)F\-R0".8]")IL4'AX>'[3([<N^;Y:
M"7$\"+_[K@,_-"6C7MU+(.TU=I0+"1%Q&//2MC84R(?M@L!#[446@AYBKYJ6
MW5FM(9%+U\CE6+ED-^JHU1T3!D(EL&.>8\ =E$J5+@7K"5'/I(YF%!>!>TB\
M:IV<TXXNMA(S1PV52OB@W"I!(=98 Z:P0=JPO:*+&PC'?"BXF#407/RWV?0Z
M[)6;OXW[DX6:#-V_EZ/K6/]NQV#C(&4-P6&BK%)0:DNM,&7H*O)4U )G,8#
M6>.LP,IS;JB#9;"Q98K31X.-G[S/5K!Q.;)>5HRME_4GPVPSO"?CCY\(V=WA
M>?8,8WYP11Y=!R",!-*%:710,^7$)D%8">Y</8"9.46P1%9C13R!U$(,RW6P
M-K;)N1/ _*J1Q]6R75?+EI=SD(*14S#R@0<COTT$:@HN/MJE/8$8TQ1<?*(+
M?]+!Q;\$1>:MX_L.PK=Y-#'%%%#.\WI/$8F51L88(AW!Q$"B35GXQW(OMS*I
M'[0>?IY-YT^507_PQ_KF_.8ZO]75,F[.QLJAXYZDC?I(.W<"<\HGJBD:^;2B
MD=<L5CN984@8K8$&V&*!B2)B$XV,!8FNGQ>RF#@I%DMQS"UC62]'XWC'%,&\
MQK*L0C\LMIP1"8W1UB !(89ER2Q+O7D[C:1<M,;PC$B/XA0 ?1A*Q@%C<B<(
M"E@5KZ?442PXCO5'I''*0<S7XA0!H+>BKUY-G"8(GG3\=+G\V>CJ>A;P'W?)
MB\.H#R>*<C_9&O3A"MC(8, 4\A)P2 .4/<.EGJR\<V\N6]_7%K8QD!/90Z+1
M ,UD_A^B9#X@J.^&;%K5!K#",\D=X98PKP#26I>QB=@H]7*M^:4BNQUDTQY@
MC=:B[1RRC\CJ_27OS_/+(+B:E-_=P^Z>8IK7P*R]Y4X2*"1ED$+L2%GH U%@
M7JY_[^V4+U>P%31#T.,2'(,RGNSA+@-T-SS*JM@%<$YH2@%# FM(/!6"5RXI
MMM48\_7<RZWB4?;"&(\!CJ=@&YOIU?5RD<^RR_YL^*T_RXO QOGT8A%?G([F
MO)_TE;!".Z0F*,U0 8 LAXAC!-3&2&9ZJ\Q6Z]*WZ!+^_ZZ7-7SG\WI1&P,Z
MBQG)C18G[YP:G0SDXX+Y;JC&5:!+$-V >$T1)Q(J;CV4&P.9*_GZ,KQ]5+,>
M;;8-=N=0?43&\:_]R?(B+-%R%AW<BWR^J+(2CDX#WU-(TPK.VCE+%8,Q]\0:
MJ9"'H#21F==;]>=>S43>?-9<V ?L(=YD_;K."N%3DK7= ^5N&.2UJ"N@'$!"
M:@:Q%B:8Q&9SFH0U(F]F%C>/0<1[^#@P> JVL%_.PH(OUS;P15C/\'>JM_52
M\2LKZ-.8PHX!9@8B)YP#RI;UMC 3_N70WU?\;I8^?,^O%[XYC;HG0)/^Z<,K
M])/,Z--BBIV( 0)05;J 1L2SJUB;7E&++6-THQ3$7F!OIA2TS P2M-?=[Q"8
MX91*@!VPDK^?Z(< 50@WV!AD)+=4 FVH]XYLDBV@!HW(_B9.DR7I07@4YU<)
M4EV&U(X((J+6/$$2JS@33!KCB2%DT\@%2RT;25=J D$"]P@_BH",4[!Z?\GG
M\Q^S_F"PO%J.^[&$S3"_GH7%+&H,)9WV21'XER<0S"H$$R,M-$PB0[FVBMCP
M]T8&2H:W&E!7JV)KBQ+^'N?QCP!J=34-$_^?XOT' =^>M 2DQWA[Q>#VV#$5
M<%ZR95JJ(_!],HY/GDAVY0U1XPTEJ-1(:"J$YH$O&*5E)!D =KMQ?7N\T8R.
M(%$/-!LZ<CRT<3]+G)*A_(R5/H1RMO?(@>.L;[NGER"8VU6Q;!I>$@PPU3!\
MBH0WZYA9*0VCNWL)VBR>+62/D/9:<72I FYBFT-CFV,EEQVYI):VJI5$@!J
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
M_?+>.:VQWR)%OKU:]N=3E:U5$8CD1V$Y!CZ2L+(BN].YES(XJYT%/ME=XI
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
M4J5((@7$>_1NP_S.\ZNK+)FZ=W\K/!SY?J],US1$64XB2$-"50C\6%0U%L,
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
MT21U+%HM1?\^/VLL#PI/;C$V#L)YU5X71W%$N+_%$#8\'D2-NC$,$$$$Y)P
MC$(+M:3SBEK<BA75$:HXG::;I(WXX;/)>#"7$ALX1$J8T"5*5,-LS3$">QC0
MO>BTL;?>YV..]#L5=#TY,*VP\Z=GP).P.C4PBJC4&E'+%:0A"1&V%7AJJ%;D
M;*P/GB\[P]L+\/3O=]^M[M0F]@-#%]%E&T)LA_'V7IOM(+>#W-<[ 42L5E=#
MRG HB>8D E9$4&DU3\861.DV$/=EYWE[@;BK@):W6HGK\)355^K\MNRS)ZWA
M>!87B]Z8?CO=K]J81OY/\77U><D>E5T#WJV>1 LC9.#1*N?_7J?50V[C;\G[
MKVD2__$^OG)#^AB/[N+[S+WJ_UZGY6SB'#^RD'"(8*0II,SI9D*&Q(;2:!(J
M)FT4^7OB!\NPWMQD,;5XO7GE5P?7J6?A/V7:$"*A% [&)#6"AI0X,(NHB3@0
M&K$7+5DQD+RCFV]@ISV.-1L.Q4OV=(L]6]\1M</W+?%XZ/-?SNS? WW^Y?/Y
M%W7YZ?PL>!^<G5_:B^#RW'U]=G'^ZR>C+JT)HD]GZDQ_4K\&%Y?NB]_LV>7%
M,GI;P10K.5>\Z.B@G05M^?U+%MBO90#)QV"SKH5EA4D?5>-)U,N@OPVGU]K!
MFA..Z>IFA)@@8@AFB&@%0QY:$%;-"*WAS::5T')K-*8XA(3[%JV:S#4#@[DM
M!+U#XV2@IB]^#WS<R["<5?"E\-+[IRR*@.8>/A('FTP6OMNP<:099O&W;[XQ
MIG_1^54Y^.>;08((&PH0)PA"Y?X-;0BK(6$";6/]>6B0TIPBZZX7D$B*R\;@
MDG- T<;-(-MAJBT;;IXE=ZK?=VJ-V\!OG]/)V/W9+QJ\J?% 7\?C;TGV:=R\
M9CCN#V]'2;9R@1'3H5M(0QC$[G_6.NE4+3"BAC<66(;2ABSD!FD$& =*R_D"
MJQ O+O C<KR\3LK>I/[(K6ASF<UN;N+4K5,6#&H:209!6I+WL-%8]>M]\"V9
M?$OCVVNWA+$3PL'7.',7SVZK'JDE3_]'%N3KD-[GC5<G-\/^T+UM94?4EY##
MJGY&U88WGO?  MS#UJ!N"YR%40POGDTGU1>%^9U_4_:9!&#+?J'XW=-GJL4[
M6/N=,\%KMNG<PY=U>:O',[_UFUGNHM';DT;TDS"XK?*W6;O+SE5Y:A-OK?_A
M6X5E[(R#-NQ]VA'+T1/+QOU2.]HX#=IXKL?JH4>,OON+RFW3N"OHL>/:R7L4
M;_?FIXXOC9JC4@B6"%2[8A#$@)-(A8!1I4.I@*B;1]#%FAK/N$#MC_YHYM=
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
MPM 8,4:9=@Z6M?=<0@*>S/MN+H2-Y7U9#X-&#6,G@YT,OID,\@J'3@F(M"2
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
MNSUG:727S&XGUSGTR&)=7H:SK_[JA=Y_XW+F]44:Y35F455D%OTT^7[FU4F
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
M(0*4(A-;YS"S 2?6 1@+0V+;A#YY2P APF2/H4;/GSI%U"FB3A$U<=B.(:J
M&X&#"C&)L:/.ZI@;!4RFB3",O:.S<MC>J"8ZE /WW4!Y$.A!@/:AZ][54?IQ
MS)E8BO5&P_Z7X6@X&R;["O@.4/T=C)9[0<G1*GQ3!DL=6^(L18QB)HEA+G8P
MEMSK.14_I>06>-\_581O+7C#&/4P:7)<U\&Z1IT'U$EZ@Y+.J\ *"<MT#*1R
MA&.#::P RB6=82'%RMB;UTOZ7L.J-L=3==JATPZGH!U$%>P0B"5E@DIDL68
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
MCP9Z/;*I;;[(,P?37?_C0F<P6"'!T9@!@*QV6@CH'7%H8N*=<.049,: YX
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
MOH[Z7[SMC[Y6RKP?]JJ#$&D.0@2!%S%$\);0'5M^K7O8P3^L&P54%R&\(PS
M+F,86L4'6!-^_.H]K^0ZWY8,-'JK?IZ.*XZ+*^Q\ZCW7CA/>B!-:JHANB5E^
M]"Z<OV]D?-#0?YQT[ICF!-7',W-L.T8X)4:X"L>6Q]T=O0;R+@J3)9[&1-N8
M$XZ ZX]]?1TMCV=]'2V/9WT=+8]G?2=#RR;[:>&A^DO%R<J>6+GUEHI6YVFW
MX>F_33MO=JPL86T>-E+$(1,:'K!UCEK-Q>)868J5F2\%V^0U?N-9N/__#&>W
MY9E<7@/H]T#E)Z%ARM[3]83I=)9/R M'NTLG=]D O5",.'WXQZ^7#4Q_183W
MF&BT\??@NH1..:SO--91:RQ<M3,2A9#CPB!"8\6 M9#@LD<+B]798WO46.&O
M><K^I<&>F^LMQ'M^69W>ZO16I[?>G]ZB5>T0!E93SF/ O9YRBFH(W$)O<?VF
MGE8855P<'V6G1XVI+PAI#[!&N[<[]=6IKTY][4=]\?JX-.QH*,;&3 $NXI@C
M6P2*WA\C;^EV9>HK.^NL_A1J/YO38ICV(-X+BG*GQ3HMUFFQ9K68J  ^-&!:
MQXYS)KAPEFBD3:'%8FK%"M9LDUJL 47$$>TQU"CP\\$IHBUJ$@XVR1[:$\Y&
MH3\A:PV9/5'4N?'@JVUTT2&*) 2@:G*/8^,D<5 0P)B).0,+X#D,H- KG4V3
M\6 ^G7I/(&_Z>"1PY[G [3.YS$2/R":QYP[6"S@"8W^"PH9J0$:4(<N=4DH8
MH84P(*:EL%&ZBE73B+"UD1>%/2:;S"MT(M>)7(,B1U#-OFFLF6,DCJ4F3DFH
MRHDC@FF\@AW6C'UK+Z77(XT.%.H$KQ.\!@6/58('-5<4$$@9H+%%',0.+5)6
MB*\ GS8G>&TFHW"/@1?1BSKY.PCYVY_,'5#^Z-VJ#L&J(@-'$(*.J8#LB"6"
MUO&%S09R2]71@/1+VO.:ZQC$_Q2FECS3E/+$C/?-VY-.-1]_S OOJ-]1OZ/^
M:2Z\HWY'_5.F_C&=^^VWN:;EQ;S+&'"SD ^!:N@E(X8"CAF+@06466&I7(QX
M8' %:[N9T@"Q_TX8'X!P!HXAA.PR2)VRV*.R0-7(#X4-@P;&0.H821@;ID59
MS*VD>4MET<)A*X:P)V&3LW0[E=&IC%-0&:1**5M" /22I$EL))<Q(I 4*H-)
M#%HJ/=S,OVCOL!CA'G]YZE>G.3K-T6F.)<W!*LWA(">6*VJ=,396L;)Q"?>/
M"7$KT._[UASMMEZ(GJ1'<>#5*9!.@>Q1@0A:GQ<"M<,< RJ<#T^,DT71IW",
MLI4*ZR852 ,Z0 #6PXWVP!_%H??!9C^;[GHXHN'<N6QB4/55(JNQ0$1 @B$S
M"DE9CASFR'AYW:+21.RY^X'W8*,6^O!ZDKJ3J9,44UAK')0"2R8<4E)P1K00
M0E9]$ZNH,XV(:1M]$[@G20<GTPGKT0DKKH[RN$.""P:YT-PR@ZR+%T=Y3L 5
MJ)5F;&JK'1=-5GQW(MN)[$&(+*U$5F A*,748B9TK!5Q )4BRQ'9IN!Z0Y%M
M,WN%>MX[Z"3W2"6W\6S7V\"&'!M*R(;*1Z":OZ"I!)3%X?0^)M)H5'1[<$C=
MMOY",]T>&!TW>MIIC"#A)PZI?@)G'QTMCV=]'2V/9WT=+8]G?2=#RY,X)SR%
M$22G&5S1&KR;T!JQ..;0T1AA20&V)0H'H31N"?>:[[VO @K00]W12I?MZ132
M 2JD&@3>_V/O79L;QY%TX;_"J'EGIWI#KL*-)%"]IR-X[?%LM>VV73,[<>+$
M!BW1-J=E24M*Y?+^^C<!DB)ULR69LBD)_:':DG@!D)E/7I#(Y*'CL0#9?F S
M1(7O8G_:0 3YKO>.@+2+LQN$=SC1Z1D:EC0LM0^6:F4"$;)0: ENA:ZPY(E3
MRRLWK2UDBAUE>:]G)^UN:QMQW=Y(HY-&IU:B4ZV6(D'(,S&R0BZ88$P(@5B9
M_^9Y_-W1::=G4!CO$/NPM^$T2&F0VD^0XE5K2).ZR.%>Z )V4!1@CEE1:=GV
M_)#LZ(BMW5AW#\OJ($X/&F<.J<K/X7?W6%,$1756U2&"A\)F/N;$$J8M2#A-
MO666M\UQ%OMMC[.8M",:%<+6ZO0#4-T'+UL6-FO-JQCCCD,MAWJA$V [L/TR
M<&DY.Y*MG?0T[K!&N^EI"=,2MKV$T6JOTC8%=5S*P=-EH>OZMNU,]RH9QPM;
M \UHKQT>'#&%KMJDY:P=<F96<N9A;(86DMT8B6=Y%N/3+E3,]=B"H]:<G.WV
MM(?9:&]&+6Y[%/-I86AG7X#!KA5A)<3GS M9X/N>20G\+RS#S.!4FML!0R,U
M2#HF%8<@W"H"\WD<W?3C\OM&GIVOS-GD 6[ISDRNGPSBD_N\'PLFZ,\SC*FB
M.[7I_VN2C9/;I\:R"XTD,T9IG &+Q#WCKJ84^D_&393!EY,1\"3H!:-;!/[^
M[4^<8/OGS"@""\;PUN@-'Y)NTH\_&4;YY-MT^&!$1@93Z5<W&U%7W08/!GXR
MRE7:@>#8M3(BGA .QC[V;<\.7>0SGY4UPE@8X(7Z!!X(3BQ#GO*YETGVQT6<
MRB^BNQBO+@96W/W?"W>[3VX\Z-X_1.D?2M>6%UZ!:&7%>IW%XUS5/O>8ZZ=1
M//.$,AB[<.V"V@:)55]4TDVFPGU"GC>4%]7VG^=$>T/Z&=&@MUO:5]84M4-D
M.8@[I@549Y[%46E-.3X-T"MI;Q\V[<EB*>S7TA[@8CP<1WTC+3%HH%K^**:0
M*]J!7[)1#&_['O>?/AE.#AD9?-V-D^\2FW-TD:B4 ?'>!5TJM1Q0;+L(AV"Q
M!\@)32^T/6RY#KC' <'^0N1I0PX36W)8N6R7TU5K+9,MNN&O9++.3FF/:X=C
M,0I- @Z;:5,44.Y)@A?H@H2SD+_]1IIE?VA/&P>8SLZU"ZYV=$2(,0\#SW1<
M+A,_; MY)?V)CQ8Z1K^1=MD?^K,=*IAHB>*(,OG[_ EDD7>=ZZS40:>#XK+!
M<)6VN<N#E*"58+@8_7E!T7U:] DDP9/!),K=)?5UI+@M"X@(?!ZXO@7@@EQ7
MN&;@>K[I85,01@FPZN>H?-2Z[@0';^*5KH/Z.-L^\NS\.C (_F(8[@3,_3C+
MC/^8\7=6Z;1YX2AO]X8/-\E +8J?9-W^,)ND\34\P.T/NW]\4 LD/U[%_5BQ
MS(GK(PZBB!Q!!> NV/ZHZ#C@<,Y]<5+Y HQQC]H84V*Q(#1%P(A9[A/9H8-R
M*02BQ#UGO/%[0(AC8/R1]%K32?SA%Z?[/Y,D2^3=V8(;.,,/<^RPS2SQZP9/
M/FS&2KMP3*_!I@/ZPTU/,)>'43^6\K4+-+<90'=LL8HU.!,AH9X3PC*%EN6Y
M#BGC*YX':+X07U&P=WY;\FV<*6JG<6^E&5<#S:CBC#IRGIZ%4^Q$,]!YDL5=
M"9^/P[0''ON'7X:#^*68RZ;8>5-*<&UTA8$N=J972TK4CL7YG 6NZ83,IT[H
M.J[P2>BS +ZQJ,<7.HAL1(F%E*374V+\.'P+2F0%*>Q/AN'T^TK#W,=9;(!R
M'F3Y>S/C,4[C.=T$6F_ZO&Z%KAD\YR(=GJBIP;/S*4K*R)OR1\^^/@,%.*Z%
MC&[B;C21 [B/GXP(WBM_S@ 1DMND&PW&'2-.Y*8"/!R0)>E-5&1I*#\K]RVZ
M [5Y!WJS%CF2;!9'Z0"@)I/QHZYZO-&#J[)BRO.+(E/18#3%0PO\^$L&?PVR
M83^1M_:,Z>:'>LKY*,XMFDR-&R@^7&=N#U+' \5@O%M1=C'I[%;])Z&O(B(0
M*1L7E$P>RG>JE5'?Q3]&\2!3J55R]C+(V_NT+:?-JJ'W5@!YJ#HG<"IG"'/N
M)]%-T@=J P-$60;JLV?<1]]C(%$\D-8=R*&\="QIE:2@@L?)@Z+Y;00?OT?]
MB;IS"?<HM@)B>DIOW@'E)6!D2:_@#LGR*7!-)&T0R9?=>_@\&J;R:@-X*!D"
M38#'C2[8?7>Q$M'JK=7@X.L/YX4H@ C&QL>"B#]],(8EWZ[!K9]:1:_\H[SX
M2P*F;M*%)UR!D$<W,)M/'>/KN/=IN_%:.^*O\X%QWAT/I?&/K=+XKZ%&C?,
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
M;>L-HGGU'PH"7>3T:9VXDR:[*"VR__N70/SI>,T!X+U4G9$H]@:.SR1X'C5
M\5<'ZY%'!08;P X]&G@F9:XO48,[OA5PM,[!O091HWTPT;'HF]@%!P<A>X$4
MTPA!6BLU,"WGTXM'0V"SP\T8> $F:EU@31N+T'0(0]1QG, U[0 !3'@FPCAT
MG-U%"!<QHJ1941T"[BKK4OD%O5J'(K;59%WY@X.*_;8VYG<;:K4IM.$QARCU
MBC[(P[9O(I.#.6)RUY'%JWV;^K9)W2 @;[3G,#V<7 !-Z["#L3?I]WIPH+(7
MV'$V')R4Z4K#G>'(WL)%K21%&##,)4K0$#&34!Y0%^#"\D+?MZCCO35<5/',
MUB$&Z5"F[8V#M3>6[6IJFV,UB/"J.*\7VBZ1I0,M) ('NP&V!8"(;;EF:/G.
M6R0\KG9D6H<C=D<TFO:D;8]6X4B^::JM#(R0795O]QSA^X18  R>&U@<(281
M@A,33 VV3H7B!K9(:[\I*K4.&G"39Y\.3OSWV[[PID66QW'W?@ 3N#M*L^(%
MT"!5OP_7M@,;>28F ?( -6R+@5G!L>\$(4/!3D'C=#".!G?)]&*%%]?WT>#7
MX; GRX UBQW3&\,$, 3<H>^+0W"??HO^-4R]?@3/G3YLRE;7)5<]-0='O$/U
M<<P]LCU.!R>C=-B5U:<;!)F]Q1)688G#$;88];FP7$0%YP+E6"*/:@G+UE@"
M#SL=%-RS RSA#9_L;C]B[+FY4N[6JJ)LLB#V?3+2YLH\Q%@UB+$]TQ*N[WF6
MZ1"'8H\4$$,P"_E.B[WL \3,MSNZK#-6<_FF':Y-ECTR6=16C2RA.Y9-*M(X
M/N+241CQ"DZH@RU.'$(LTV4VY1AAGL,)]<T@T'!2W"/#.SG_.%/V:>[$RI*V
M:=IF:2N67*=1+Y95J;6=,@<LN-9&E5JAQ2GR/-^AU$9<8!?EP&)2[/*C#ZN4
M]U3<U& M'&V:[(]I4O+DD1HCN!:*)=P-1>#8' 4NYX0RVZ2A;_,@0 @3M%#.
M8C?BW(0$4M3!K,G3YNT7MO6T&;5:*H87,Q7CM\')O 9Z,0<Z^F'TAA-9>?U/
M2/VWE82N7-3B;:K..[Q*-1J;OFFG2Z4^SK:,W:K&]DO+]9HBW-NM3B.HMV1Y
MUH)!LTJN129W>,!"$P>.AXGL22ZWL85%<&C99*%=YI:F4XF>R[>S6UC!HVCY
MU*1MLS43OHG\;0?6GU4%YO+[1IZ]K.-,^=!7=)!9938LCN"Y]^VJATAWZ59Z
MQTB6;W]UJJ-',\'LCFSG6ICX>0&SP=)@E&IL5.]]^J'R(8KJ",M;2[H@:[*K
M:M,-3*_NXWA<]#];OA9JR#>QS'J.'F0/S?_-VZK(=J>R#4YY+DNV;FIZ=(U/
M=P:ERU;G<R!M5T<O 9D=9B++=[$?",:Y8R)LNY@')G5(N'#TLD3=9WS$?RBF
M!I\V[W3U+8MO)_VOR6V\@PY\.TD%F.^IW)NDTY[*:FZJ1=GJQNG-$C1OR+5<
M*%=Q[M6O_Q8]C'YVJLJDA\.[M3RYT'5\5W@^^%@6#YGKA@[P+N,^6!["=PZ1
M=]?:%WJ.@3,)9N_ P)7V.$*FY=4A5A38G F+FH0(QES?,CW)M)0*&[L^/4C
M71TD?(Y3QX_#-^93:=5(7GW&LEG"MY>^XMM@EF^-+/D!OQX$^XI:@1<'(8>'
M-A;$-;&P')?CT.>V<"W'HV3A],*.V#=+Q_]]*3N;*_Z2GWZ+?B0/DX<Y+FW-
MYEJ[(+DPAY>Y $_3OJTOVL)& D)1=;6?*,(9?: <&/C=O)-I[;FROROX]7WY
MR&( JF-]WB-<7CQM47I7^/3@7O<FX!U+WT%V(Y?'C$:3=#244I9D>R)<S_<_
M!O&J#@?)#29A"89,3&F(!>66!>(5<"M CF=YJV(F-?XN(X 7,@#HY*T@X>LR
M3!(4/6>OHQ_^='&=!UDGJ76MD3%B'0N)QGLC/R<9.VZ,N7D03EW\)1G#D[MR
MG^7OB?%W0)9)*GWUTT&W52/^\,OYP'!&:=(W,.DL:2@\%?%,=6-5/4HEJ"K=
M&^5!N^JWVL$@B1&+<P>=+2/=WP& ^D\PU[YLM/Q'WIYXE,9 WL%M<C>1+YRV
M(^Y/E,&L  7P^@&^C"9@3 _'@/9&-!K!0N<VM5'V-%93^"8U0L^X&L/+L@+
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
MY"![\2T08:$$QZQ/O:*4R3P.7G7OP7'HQ^>WI\!4MZO=TVF20W81I>/SVR4
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
M07^>7YP96$'Y2S>4IX_11GUDY([7"V-L'*FN1L"[MTG7> 3^B$^&M[?9B^P
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
M95,PN.S3W?#[9R?MWB??X^QSW+N+TL_@ D>?N0GZU/PLGY?_">L#_U'S<_%
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
M/#< P&+^MOBN3IX7IS)KXNEREE?72WP'4$L#!!0    (  >!35"9.T@<9P<
M  ."   ;    8V=N>"TR,#$Y,3(S,7AE>&AI8FET,C$N:'1M[5WQ4]H\&/YY
M^RLROMO=OCMI 6&;R+B#TBF?"!ZM<_LQM('F6YOTDB#B7_^E!?Q0&1.L,TJ\
M$VV;)F^>OL_[)"%):^]:/<O]<6:#0$0A.#MO=MH6R.5-\V+?,LV6VP+'[FD'
ME(U"$;@,$HX%I@2&IFEW<R 7"!%737,RF1B3?8.RD>GVS22KLAE2RI'A"S]7
M?UM+3M7?OJD%"/KR[YO:NWP>M*@WCA 1P&,("N2#,<=D!"Y\Q'^"(LCG;U):
M-)XR/ H$*!5*!7!!V4]\"1<I!!8AJMM7 1Y@43-GA[(P<UY:;4#]:;WFXTO
MQ31$7W)#2D1^"",<3JLNCA '730!?1I!<IA>X_@:58N%6!PFULL[ZS4("(SD
MO=RVR[9=;'ZVFHUFI?FUT/S8:I4_5DIVN6*UFI^*N7K-A/(WO6OQL2@YQ 3E
M Y34I5HL%=X?"G0E\C#$(U)-:WB__%IR9I7E#89AN"+]@,G2D]-+1NQ,^>GA
M9%; @(:^S,#^?MQNMEU0*C[<K(=;@4F &%YE]ST<EEPBO:;\PXFA[TM*Y@=4
M"!I5*_'5LDF>Y"YB-XE"-$QNDVFR?X16[ZAK?P=6KW_6ZS?<=J_[!RMQL%D=
M#E97P3EO.NU6N]%OVP[H?07NL0WZ]E';<?N-KIM5=?X=<X&'T\=9GZLW.*!#
MT$(>B@:(@?WBGHR\Q8,]( ($&!IA+J08"!! /STUI&%()TGT]C%#G@"0^ "3
M^0$?#SCV,608\5D60TP@\63)TB09^A,52$N<!-@+ &0(P#"4&7CAV$=)3NE=
M'B6<AMA/Q>)76=RVL+HYL*D+5%9YP-+=MQ(7%L] UEB:D1XO9T\HBR3(BWL$
MC1-'OTJR%' 0RHJA,)Q?_9(KY-)C'D-O<;RY;$VP+X+JP8%1+%=*!P?SS\K[
MPP%E/F)Y3SXP&'-47?RS[$1)I5+C9*P0OH0],89\R>TGTB;\Y(/=7)W;-BNP
M(DM8)+I[K?3YU]>*G_Z_MB+S2\0$]F XMV_F^HNJS(E0C*] ZAW@KT+Z<_N!
M)I1>?@#+QTM46IQ*PVVU4IX]I14/_N'1I/P4T:3;.+63*'(357[<D9K;*#\7
M@*5"!@"6RD\1CMV&:YM6[[SK]G\D2+:[OU071<#\F &6*^/:(Z$\L_N6W75!
M[Z)K]YWC]MD*]'Y/:@G#X0!Z/T>,CHF?!"C*JG]Y'D+#X<;@E>Y[XH;@I3$P
MXU:!;,?0$4%7H,$QW -MXAE@$T_+%*(59'TT1(]G:J[>0B&<R!: 0L <9$"\
M++RG6"B\WYI;*OA'AA2R(('^G$2;NHH*4#PG51Y?_^*F "A)":5C:>9< 2[R
M B+K.9IN1QNEX<J"3Y;,?$@9P5 A:%X'U51PD0P991,G@#$"1]'@>%?5YPBQ
M")*I%A\M/FNI,F8T1GN@:7S3BG,W>1>) +$0$I\KA,WK()@*/O($/-(='MWA
MT9JSGBM?*4.R$.# $'%@4193!I.)"PH%6348U81L 'VJU4>KSUI&S1O[NRT_
MIY!SZ 5CCH38F#&:&"\@I&;/&-"0'H/(5B,%2D/UC$,(6GQ>0,#-DDJ4C8D8
M P=S@:(0,2Q;=@)S<(F *ZO.D  ='.%D6I"#V4\D\*Y*E#N6U==C<EJ;UA+J
M>$Q&D$W!R5#H,;F[R>?@*(3+ZR"7"OZ1(8?:"<0$SI9#[':_2 _+:=EY$&48
M2K[J !WA:]FYFWP.CD*XO YRJ> ?&7+HQ#C969WY!\9PXR%\S8,7$$"S) AE
M:,MYH4I#]$KG5K\.<JG@(-EQ:&^K%IH*&#QC0TQ38;?6\)S"$$XYAL#QB0&:
MP3-V:9X"J6R^+YU!I.7FF>5&=2JA*^Q1X!A]HV-8QK?-5\6I $@FC$F1T-*C
MI6<=7\YH.HQV;5!C8U]1&J,L*#0#1TN.[N&LHU ?Q0QQ"33T( 46C1!+]Q*Q
MP1E,ZHYCZ%'$DXX0W-F>4)/!:QQJ-=(#;NNHY"#"*>.@37S9&SIC^!(*M)B/
MHU <5H-3*4H*H?(ZN*:"=V1**7:)O=EBGUT5'SVI0,O/!ES1DPKTI *M-]MR
M2&8*8\KT\E(M.2I(CN+C;\X$B^O9LGV]KF<53DL *83-ZR"9"CZ2(9=<B">0
M:-W1NJ. [CR9@RSO#IW/DCTW6[JE.VZWR27B(GVG0J=C*11ZU>"9WM]-J]+#
M>'5^LM-3X,Y)NI;V1&;JTTC+DNX.K2/+-XP$@5'R+6J<['CPK"-QJDY+F(.D
MA4<+SWHN<4R);,CQ&'G)VE+@3)--#\ ')X!D%$#\M^29L=LSM*T DXV;<)HP
M+R#29L\D)X:8[ ''Z!CG6I7N#=0EZ&A-TM.S'\ D5XK/;/GV=E-[5$ EDRUV
MYCAH =("M#JHCF$'#K9OIBD-4!8,2I?H:M71JK../A^<\75 QW^PNZ,J771W
M1P6U477@8-XZ:S%\N>7T':4ATML>*$PN%2)L%B#T" ++/$J^/7WR-:BJLD7O
M<OU[9ICI>YMOSOL;O,C]MQZ<X0OG_5NOFG^S,'= _6G];<T,1!36_P-02P,$
M%     @ !X%-4";<N)=E P  50P  !P   !C9VYX+3(P,3DQ,C,Q>&5X:&EB
M:70R,S$N:'1MW99M;^(X$( _M[]BEM6N;B5"X@127G)(%$*+K@T5S:IW'TUB
MB&\3&]E.*?OKSPY0M;=H[SCVU--)D/AEQO/,V)EQ\&XT'<:_W860J2*'N\^7
M-Y,AU"S;?O"&MCV*1W =W]Y L^$@B 5FDBK*&<YM.XQJ4,N46G5M>[U>-]9>
M@XNE'<]LLU33SCF7I)&JM-8_#\Q0__PLR A.]?LL>&=9,.))61"F(!$$*Y)"
M*2E;PD-*Y!= 8%G/DD.^V@BZS!2XCNO  Q=?Z"/>2RBJ<M(/GS(ZIRJPMUUM
MS-Y9"^8\W?2#E#Z"5)N<_%Q;<*:L!2YHONG&M" 2(K*&&2\PZU5SDGXE7>2L
M5,_0:\U^@('A0NO*X7C0:OF=9A.-FRUGX+?;+=_OA YJ(2?L--U:/["Q_E=:
M^\?><DX9L3)B?.DBK_VAM\)IJKVVYEPI7NBQU5-/D2=EX9PN6;?R^ENFP(P<
M\F8@*,X/R,^%)C+#+\#>E*GJKK=&YSQ/]0+AK]>3RTD,KM= ?P_6=3X<P4%9
M1@0]1/Y-=%YL7C5W;,C<UQ'[O92*+C;/4CE9&'HM]#_<V6.8S ;^B:GU&BG1
M"8*(MXW<7U,:K'_ABQA.H_LPBF$ZADDT"N]"_=#=67@UN8_#63C:9^S!<#C]
M',63Z K&D]GMCW+K/W%N#>8!II,)'@AD^)$ E;+4Q8>7 @19<:$DI%4Y&I.Y
M*+'8 /+J5>&IPYJJ3$O)%4D4* XJ(Y!P)GE.MSH+RC!+M#T-H@=,>9-U )ED
M)"US4@?,4J#F2.LB:E25X#GP1R)>J&XQ3"VD+,G+E!B5RM: L5(+S"H!X M=
M&9>,/.F7T"/8U&;0OS$7!2#'^@467%2*&X(%$&:6&I&$%'-MT$/&+=1I )A8
M$$'FF\H;4Y-WSFF %TOK>4$66I EQ%B7F*;/0=LASLB22K53N'\.PO=A)=Q;
M;?AI3',"$9<-\#S/\IVV<]&KFAV_XZ-M$SG.A=/9M5W_HKT302W'0ZT>5!W7
MT<JH"G;5=9L7R/_4@+<]<2=E'.0?_C9/IK*E#5>S@<XK\?5T%L73"&YN[MXV
M4I=<*L[J<(NEQ$E62J*4_-%9[63*?8+X^![Y3F^?)?:81R[V\;WG]OY1U*OB
M<TJ*/N)B]/I*=+:_+E4W[/.@NOKW_P!02P,$%     @ !X%-4!J0+[F."
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
M81IHA)MS/H-;,T6**.[@6LU]J'>V*0?GPSMAC*Z7$'=V06JU+CF50=#3+2$
M/;?:56LXHTJK^$BH<:%]'K 6U#3O&W$V^XW79!C 1ZATTU_W$N0VG+O^[&^"
MO2&G3"?; E A I_M[;]:QZ-+SH4^H'2$A%EDDR]$)7=7U*_P,A.Q=!QRA&,
MC_JD0B-_V#H?35I]*Y-":=DN&8''T(]  CZ9 8CMWY1.$ H(]I2'M!Y6[X):
M]74T.1H"+HN#C1Z!15WK-64!&C=;/YB@MGE*W7U+\G^46,:^LL\>0_B# 1>1
MZ@\1J:;C9S]_]=<=)J23[I?'=XJ""<S5)1'>SYT?V+(*I]1 _7)0FH_G"56K
M_C[=%/!N-_4QM=>Y^V^D\M_K9 1+DQ747@^Z/6)/B&RJR.VTX#PWWF<0R!QG
MXG3GR=L:=&F3[_[4CQV_7AS:>%K3*B+XTM"%'L>G]JXN_ 4+%VZZD*[Y=H-"
MTV8$"/A!6W)$%0_(]HCIC\5]>>;$0SF_X@[7XZ#0 .S5XJ!YH^[13R;Y:*"C
M(7S?00VF'MQB48D5Y^K[NRG5!$ A^7&*$3>^V:?"\)H8V^VW7O@S..Z"U34%
MH-2XT06HP)4 /;%!Z.IHO9R>ZV3]H$$-]G^D8D1'&P 9[H#8Z]+9)?# C-&
M[\,TJBG >NO/UU9US"7Q[$</HDFHT^1X>,WK$8GHGF[7RH49[.'Z\Q(702?/
MG!9V02=\$ALS?L1AGSQJ!BWR,(I\Y*SK343 :L#\8^=K*J-1$-# 9]-DA+I)
MA0.28W37LBPB22A,XCAN=,V4%9:T&V&*ESK@9*C3H7U8US?W0](J1@R/*V%2
M'K,\F"\_M9S*/UZLF":]R52?'I\JKL)),2L%M]'$*CJ ;$)8"V[0&"EH/ P8
M-BN)Y)?L*U17E+06Y1HMH3'LHM:/F5(,/J6[7YUM^#D@G_.Y$/&^L:&+ '+Q
M(%YP<LG]*Q\GN:2]O<X_NO"@AE<>I@\IO^QS\7O/)4;_T'];XO_%1/]-ZC]0
M2P,$%     @ !X%-4*E,M:9'$0  ;S8  !H   !C9VYX9F]R;6]F<G-U86=R
M965M96YT+FAT;=5;;5,<.9+^/K]"QUYL0$2# =L[.\ X @.VB1L# 8QG)S8N
M+M15ZFZ-JZOZI"IP[Z_?)S-5*E5UM]_6LQ/;7Z +568J7Y],B9,W]V]_>O'=
MR9N+T_,7)_^UNZO.JZR9F[)64U,:IVN3J_%2_5*Y]_9!J\LR4[N[>.'^\OZG
MBQ?9M/PPJ=R\FCC?Z*DSAEX]>2)__>[D"=/][N3E]?FO:CS-JJ)R/VX]SFQM
MMO#X_/*=TH6=EC]N97C/N/:AKY>%^7%KKMW4EKN%F=1'!V9^_&CS>G9TL/_\
M^?&62+M>@/W]@[W?%E.1-*&WT'ENR^EN72V.#D&/V%V^?:V\RR#!QTAMJ=K6
M1,(7-C<'6XI%^7&+9-E2,V.GLQK?GO[E>=C"BY-7UU?WRMM_X"6L#Q),JK+>
MI8='!XOZF/5Q%-2AOMGGXF]O+E]>WJN#_9_[?[B]N+N_O3R[OSA7=_?79_^C
M?K["LM-?3F_/U>GKVXN+MQ>0>=/GU?6M.KM^>W-Z]:NZ>'OST_6O%Q=WZQ;^
M?'5^<:ONWUQ@^>NKB[_AQ^W-]>WI_>7UU<KBP_W][X,TUS>\XO3J7%U>G4&4
MRW<7ZN:G4W[I2L^-JB;JM=/P%'/$SZH]>G1K?.UL1JYZ5U?9>_5S:6O/*WBU
M.H<;'W4L;QJR,)[7E:IG1IU5T])\P ^WJ.#QMBJ#5$SL>L%/=)F3]\,E[(-1
M-X4N1TI[!:G*'(P5*+FJF<Z88@Z&\ IG(-TV/?CSG_YZ>+A_3*_QKP?'.Z-U
M?-/%9]5\H<MENY[I(12GM"4P+L%3/VJ7DPKHM;*9CXW;K!!56$^/]+C"#K9!
M(# Z)2J135!*T+,JL4/:'K^U!^?2V6P] ^5GNBB4,P7M'F2JTM SQW;#;N;8
M("\?J85VZD$7C5'_O;^WOW\(!@O(+JM3)?#Z3F5AJT$U>YU-#_CW5BZHTH.]
MNL<F_$24PKO$JON9]?)%S?52E56MQI"S*O*1JL-Z9_!%+0J33^DW[3V2%#9;
M@1+XNT?KC3)EQAJ7Y[GUB\H;M@:LE*APQ+X#<65[GE:HH#?KX8GCPB"?U#.H
MSB],%OWR<X1<*Z/Z+"D;N'*AMNT.,]O@,S,-7WDPXCA>+5SU8,7?;:ENM$.B
MU(N9.A3+D&;;S,F[WK8@WVU;*#/-L3$E;Q_$!BYGV;6SK'*Y1L2);F@!*L3<
MMSY L<0\^FP3GSCDW]]!>"3]S7'!/F%(^9WO$-VL*G,;7&F2[/5 K=FL^'ZA
M%U Y'(\$;!E3]MGV4 -L:R<6S*TLF%1%43W2$I_-3-X49&%55'B@2-FI3IR9
M:\N"*3-?%-72F$$PD'FUNFO&WN96NR6)X1L$ZT .;/>2'% K;YP5NZ1+/*S2
MR3HB%B+NQQ34<X:#H T5]5$LUSKX)S-6IS*H(WAANRW*L8FQXP=)VK%-=*&N
M(H/!9P._=\*B^Z2*65?JE/J_]/.IOZ]=\0?3(-\_S>>V1'5 %8(74<;1-6>L
MVJ+J(A1-P5B0K?80=-(Y;=^QX3XJ30V)D?X.XQ0-Y0\@+75N'9RA<O[)V<R:
MB7IE2\2[A=VN)Q.;&??DXH/)&BZXX8FZ,Z7%J^_P1=W G9",2J[UE^*DYH&B
M$0;7<$^IJT8RIF;/'4%&$H$VH-7<N"GYAX-G5FZJ2_L/+:L>0[4EFC.D7>.\
M:@.N:FI?(P!8"3&W95+@/+O3(#3'!OL5[26RJ(E& D8L<$+4"LM*@VV2!BS!
M82B:*#T_H.*8\<9@G<K%T.^XIS*MDR3-$AQ9#8SJ/;YMAR=- 6.3ME";P6I'
MZ0E$X)<1Z+Z9SP6B!((]G5*TGSPAQ/OBY FAW^].;EZ<O+E%X8*(N7F!KP,D
M/C6[8V?T^UW1S9$N'O72 Y+_N1S[Q7%+)OSX&-8__'98_W 5ZQ_^+EB_*4,V
MVY"(&.3AV:('52-PD?PZ-K!TK,YV#J!F84 D6V 71V$2\NPG[+?WOYLB])I@
MA%J)0L3;5X2;^N* ^Z)X4U\1<5\<<.H+0NYK(TY]9LRA E-11<X].(2093V+
M&EOWLNJ_'H %0>N#[X]]0!6,92S5\X>J $#4SL*="'<A-]>,,^%XF[U7?87_
MIH[;(DWL;=(4>& ^P!#6$T;>4Z\8VX(F85@?&JQ/;85T@3AV@C/'9N/>E&T5
MM=%R<;'_&%.R"IQ#G>F&T(]+0!QA="J/%%ROJXHTJ#TBD*LP48_-'[T;^IZ@
MKKD!^".X/F3]:(L"VFHQ&8HS@6IR]<9Q(\;-%>4[;&5,/EO#X['W(:$<46Y\
MA[=;/6QS.X%'C+B7D33V0SX,_Y^X:JZH)\CT0F>V7H(6LU[,EMYFB"\*) %E
MD+:$.M'-B;]K]>AL70-EY@"Y)?<F05Z&_[!A;@JD'R=]=A7U&=+%RXJ[8*E5
M B56@<,@*)&(@2$9/1!T\<'RX%AB,6)*%O3(;R(]AG1(A$0#L*D5;@;(2GU;
M7^7MSK"5]=H_)D[<-FTRLRFGJ)[BWB5ITTRA50+C3<8):^HJ3TXVM[Y]&K;K
M%>4;)Z+8\K<&5:+QW1PD=-5#9TP\=8U+*G9*'4FCR420-)Q[(. &)^,2@&84
MP3FVA:5G(T1[6RPF;$X('**=_4ZEI&7.D%-33)FCOP>505JB(R&OL1K%J0ZI
MFE<0AYA*8HZ\@W$=2P-#9W#X*=!QQE7AX(>GST;1.@FSN#5G_K^QCIBT3B#L
MQYI:[@"I"4:2WQ"EHLHD1[/GD'FD:$&K$SM!%&T_W]^!'0N(PR$V5":$=5*!
MB61:R)\R[+X/"2O4@8N8I*0+3#K,38FLIU7%.89R8NPS.7:ZM$A:I96.O06J
MBN4_-QK49 :AV>3+G3Y,07&%I'X2:G6P2=MN)-VF-S4Q KG!$(*'5",68 .P
M4J)JKO\4G=UH ^QB7QG<6S=U144TXWAI"RZE=KQ*)HP;YS^.C63VB;%2*O&L
MQ.^S */C2"WH"!S)P_&-5L0J@S@ R*0?,M/Q['3(&U"HIJX:OHS0H61*:4@2
M S& SCFA"K@A%V\<,W<$69E1BW*X8^?MKJOE:C >:3_/^/=+FEE18J:!3G^T
M@[^?PCP5S4MI6$26S'B^U<TZC![,)"B!C!M.9F45$"6%=B@X]6/%FJQ*LPNK
M3%JHT[4GIHPST*71@^S=<A)658:(H=*3>K48FV=1PU%4?THQ'&0AW'71>:^>
MHI.8$IM/#C8Z)PS:3X'2NK&:2F9-Z00D3, ZB64S*]X@SZ(G$&!GL"I0>Q4_
M#\<US%#VGPY=GHM'E%DRPZ9A6:&!:=1551.=B))!F/#JE)$;S0IB>P)HZI:C
MU:VV0)&JZ&]!%-KQ%''N2CF;:O<FT\'5R5T[+.SW(O1T43TF;49_"-++,:@*
M<BRP/=Y)26*/9WIA@6K0YN5!@FX(,MP'FX+>I;K)W<QP)"AR-B42/K:"5#F9
M&$[P[1OI; X<1)&)1?XB:5]_4+] \V1=O+47QCP]'QEQ_DL#K3VXD&38A1!E
MG,S81=W-/1G%"WXG.6O]@:-<@I=JP"L#M^*VBC$^%L1B2]/_91<U"=B>Z_?@
M[AQ575*;[PI"Y>(K?3MQ&==2K\BM02GP'JV9@JW_T/'#'S>_>/KMYA=/5^<7
M3W^7^05"N@X'&X1A"C*P:0&0A&6A'P/\H1PP,P6/;FFLWXBI.*7T/ =^>D</
ME;PBSIOD '8&*^2'R:I=S3 IE*70[_4.&52, IVDZ? "9SUJ<F(F?Z6M4V^U
M>X]T\(X/K#AU/U8-]B,"+0/=5 H]YUVB":*26"#&2B[6Q7(D95B1>:433W="
MH]<<X9WS*0@WGX"WK&<Z@L.7!D(!067."'"LHA1#(%>-"SN5E,QH6G_8;3$S
MC(A$-5[R$1V?&R!*QRU0C(/.6+2/&.*OJ'GAJLR8/&90KXL4%>@L>$.S8*H!
MR3U!:H5_MA'[D<.GB)WD9%6KMG%?!E;IW[AYRS5G"OYK2"0KWK)=K38E8\/0
M8F5< 00XJUP84NT<R^$:XW\KK;!TQJ%M7! <K.N.9:@1[>=[_KTM)L_V?SCM
MVM+<Q+/)U>K'L V@KY9*P9&C6ZX!TM)2/I[S7/C8U*$#8MNL*%V2.!VXF@\
M_;785$YZV'"2@N6T<H/,5"M"D^BAJ'J7V\;<T/&D+GS;+6IJX>&S=BP;^(@*
MVL]?^?>K2EUW;HRMG(7Y1K^5N4I0=FOF%F6K]$S,QK 0(]$:S^TA33)Z1XMM
M ]J9 ^S;\<KJ>672-@UQ/Y,K5^D%W$FVI2K?NA3J2-=Y,6!;A6=A;\G.R,RQ
M&V%4W E4]3J]]&PG4?@/ <K59BI ;M4?:92&VM+485Y"PQ/('0L07+5^-.&X
M<*$=M]%JS=%?A!"D*M]0;X.:[8,/4TL8:0JBHXS7>/'LE(F*;"!;ABS+!8.Q
M:@",Z-^@E_2FP#Y]03>@U8VS#SI;DE/YT!.3W0D0$\X,.".UXNIYLSRB&9N%
MPD.  3[6KLEJ&I)-&OY!(56WMS=Z27\4AHQ)0\T7!M#2%Y:;:DG_V%ZMR4>F
MK)8ZWB^IIH:^"-$0C;>F, ^4R80)B,8+'E1C.',3Q"REKV7%MQVF3%E=-3&L
M<9KH0%LI?!Y+"ZP*.Z=6E_9_5_$8/<Q/EO&J1)RQA4F'U%S"9C,"ABB#3@0A
M^%R8Q8Q*4KN(X2A=J+"."W/>TBQY.M@;G92&=L0'WR0_W,FZT'J* 76'&Y/Q
M0FO6)ZOQN;U.GY<=ZU:C[%POEXJOL#%(+Z.7M\1&O0CD@5DH+2&6VLCF)%,4
M<-U1:Z41 ?"I>"+KJ;W5$E+[JJW9GNM$/I;B]:AY<$#\%B$&5-L;IG*2JW#3
MLN[T?B/]U<VM$Y&02TWCKKBE.=TAHMA-S0N'-Z0-5Y4V(UO.C\/-DH<=->03
M-1-QQ:J(TD(N%0T_?2[W&?HC@_A6(FU[BJ#T E:!TN3VP4I7%=IM'N6 TRCV
MYY+(R;H\5!P-])((N+?^L8QY^"X%$$'CI9(.K\E O"*,7 B!IWF/KTA=\>#*
M[\7?N(5LREQN7PG<F&M;A/M"<? ^F*]2S/$X#:HH,[M Z"\*+4.A<>-MV0;U
MYQ!-"I,$JN0$ JZ6-K(RAZS<B!U#:FRF/?4BP7DD0\2\XAGC4I40=$UY%KD8
M(5GP@ P9@1J.((F\+*O))V@4+/USJT6^SA#OF3V03&A=**D/W('F+Q-+ P$D
M@B=,%OB*KF2%H3 ZA @457>[YH$&(H%D?PI!"R_:RS^7)75,W$!<5>7N.0ID
M4?DFQ!,](F6A20B0/AD?N354XEL)H21Y$4B*GC623,<.R)4OK<C1EL'O(^I.
MDFF'W3H>23)-M<@X(,S+%,?ME.]!0;LR<^G?M1L@^&YZW)]<;&N^9<5^)2:?
MTA''YWZ>_J'S@F??;E[P;'5>\.SWF!>0,]!U3\Y+;2IM\WL %:-UJ"(!L?TN
M;D0]'A5[QD9BP_"GW7A)48[W:[_#74[;<>LBP$XZ,[$MKNTD:O'"L$?L'4IV
M-Y'7]-N<=GA$DO?CMN_RY.KBI>9#37_I-Y!)*D<F'ZT-"1O%4.1=V2P4PG7L
MN(,H!^6*1G&YGL,]A\> HT^8AF"33#GB&%P:S68.[1PAQN20K*[HT)=&<V"W
M&KQQ5_TV;&W<2C55-(3]>LKIH"*YE!N'%7@S&?]W=[K72A2R56[J_D&;&)4@
M6W 6L4X\9UQKGZ14YF8XM8 ?<8Z::"2M44 K?;[AUN680PRF\U1+5H\Y-]R6
M_?+/9]SNW_QYN3SZ]*(O^]Q3&B.J]SR[ F:NR&"=@JUO+]$30%NT-TTV'AZT
M+5;[$A'*&2L$XS!NDGO7=#6^PZE"O\T4@[YB6*.&Q\BPM;2/(D0?(R4GJG'V
M51(L!.1*V8;>88<V'1[S'1HE)V'Y-]?^)S_#?'D'O6GNC?\%(O3O"=+!"N#[
M]V_K/^SS3/W.T&7P@_[UB_\3C/[1[)]02P,$%     @ !X%-4*M[GAN%;0$
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
M#H[$=I\8_'.6=3M^?F'5A'1 PU%TN^T;\!!<:0ELU1.@&"[BLSZ-&HF<>G
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
M#^]#-RD!(P8]MJ;_G])SIU71$RWQ>YKS-4W_[?_%_T,@"&B>+D,@SR\QUA4
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
M*[]Z\=@,**&B#IOA3:I M;^>T&#?3I0&:B[IREB;D7RYI%V6P;=%XO F4VJ
M4R3'BVM,<QC,@P\D"^,4+2D=D;%+FIH&,TI^)W^:CG';4^@7ERYU##I,6X$)
M4 -X1$$7T^W0G5"\B&<;S>@,0T+2RCZ4^ \P 7I*)2-T.^Q39Z[K1)=-J-SQ
MQL^!>^7,IDW?T]$819+;/OX@TY%6A:2A8;3R8-[XGM=Z@B, Q:MQ"C:DK *%
MD6 <+R?1_A*N2QM4@"A1?411(CAMP54./H6ZA\0R4T;^GB<O/T5Y!N_I_>+T
M<])*I^"?:NL+VL8 2R15\=XRT8]92"#UDB_Q%S 2R,AJLMKI 9"+>8]^J >?
M\29G5$X;%)]*<7Y6Q99"-=O@0C$W&Z@39+*6(C4_(/04U0NF6UDB:QFD)UQD
MNI;?.J/S<8Q9['6T&7I[/Z\RECJ&3W@%J:%3[:2-PF-C%2"_)S,0) %$K%=/
MJ'.[(CCL>40SB(Q >Y7LR<]*69Z>8,=W0==!K#SH\QX(*U9*S&AC3C GQWO4
M;RL/=8/'*E1@YED'CN9RH^^59JNJX/O>U?>O'[8E#;.%M^G!.$,EL89**-!O
M%5$0.X-%9/U-K=')<FHUP1)B+!J.@$JZE*IT:R<:TU)O/[W1%]Z/6I4Q#R%@
MHO+4D<WMJ3N>5X<H)@;3HWN3$TV!%^214,VR7@$^;2@$[\#6D%I#343WD$)E
M888@B2S=H*0*"YZ62,*;>K%-Z&JJ16(C,6-&N (>3^5=J;TUS<N<O=GRX>J[
MKMUP\^>NN0OS'AA,$A$/ "_"#J\Q<:P?1)^4P8#8V11FMP/#0ZHAM26%S%P%
MFX_E*KD+T+FZVRRK6.9!V"B/N5BI<U"N_E+%RW+^KA'9#+%W#7K</NG2Q_=(
M*'I<O#ZT?/$1M$M/2(]QA0O5>%F>]Q=2"8=J;B,OM %H$I*KY$E-E6S1)HD#
MX[/F*J)^R,C=!0'L9C<H]V!/+6#R,0BV,&Y>?L*[JDH7[ADM.O+CD,/[/4U7
M8W9%;Z3\Z=^ &5<K>'DEN$:GG\*Y,50:H+G]O+Y8W,A%;7PU>3HN?U[=%S(-
M5."-5K"<*^+F17")]P:Y824'#L.D7#3PX<0SJJQ-4]\HN^B_#,J.':WHO4';
M'(^9C3+>X65N)Z-CT=M AN $<&7P\[Q#V+9G.!*3E]\;.?U6</.4V0C5[/#U
MHX3*>1>8.!_-OX*&(GW:4"DV E@!-)+45).+S"C!=)D-?Q%CK^*1P)X/,&/A
M=_F*S2X'\/#$R4\M?@J-M:C<>>:O1Q.!^"?V,ZGW\\&U9T:,/<T?/3F7I[-
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
MJ"$+6X.\WP[=+LS,$2D!2RKRPTB[L\?@IS,\"YJFD<P^7%NE!;'7@!T@SQ!
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
MEPJ?F:#NB?66G$Z!PGH*^0"Z9-J7LE3'^RL_ME--?ITHD$+WG (].2LTF()
M#>/-(236K6^;92*ZD&K@8I?:CE&!"M]A=,<1I8;$\O*?5D:=!2K.8HL##NM*
MGC/0Y0 F(8,HS7?3IC)@@O=DZ?7G@DTA#+F?+23QSR7)?-@K=!@= 5TECA%9
MIDFMOM,D EF&\REOAYK<X#)VO]\"XC(G*0_%;H//TLC[@(GQ8"[\X$#HSXEI
MJ(C0]&S0D]L&,);2 -/I[G;#38(1X>2OQ95+VS>L%PGV"SX@ZJ#Q9!'LYQ]\
M,S#L>? /$.<.0#/X'H$<:"8_DDW:79E7@>X:I49Z@_%=XW;X: :47"K&Z;S?
M^R,C9UEV.E2#>TCX.SZ8_>L96"OL -D*D%]F\*ZA Z='4P6'L'T4*>$PL/$2
M:S"V< KC"I;P;$$HG7R4(S+-L8L7[ O.08JO;$ "T][6KE4W"SLQ4)[874/J
M0[49VIUA:\Y+/X -"+=S/0$1B/O<RW4!\!T?1;GUP!J-%&<>(P3]%*1"'IN;
M#TQX )[I?$MNZ?/Y>C\I,)[IZ'R&XTS-4STPP_ZKGV]_D:5+4)V_%8BO/6J
M$<6,1CH&?.#_*=,2CMJ  "4"D47XUC:@N'M93"@MUH=QTX4I%VJF@@JV<@B=
MB!3B;K@&.H<]2K72\"174RA",L<*@V N<$;C^&(L*[O3@?%T<\\X/I*5I^ ?
M>F4* DU 7.N=*&.;\J5_(/^LCF*40<=*W\EC+[!O$56CRUMX!KAK[V)86: \
M!\9]M?["A/+Y(5WN-Y++S\V?(C'UY;ONHW79=DE\6.EYOV#SF.0\^F_,26.K
M6_K:SKQ!).=: T\=UR&\@0O$,395[0"'D@J7Q8[!1! A.%%PPH8SF[9*4402
MTQ@UT"2L"M\1('0]+ .39L]0D KH;NIX;R=R!^9T4VUC;3TGD=X;O^IX_,,4
MVN_3J1]AXX8"L1A6V$0P8OJYGSE8\MJ;?XA3LNP,R$\;+OW@607+FQ[!:K>
M)L^Q'^#&HP)SOCF'U*E8*U$V"?4<;G7@V2^^ <LZX;+ I^+77I]!":H?K*J>
MLY6L/FK2&+7R2@\12$@EJFY KI+&B-P:\"M34H.905K* W39V@D8V6DK4WJV
MW\&64:R98$ "6+,#\]D^H3XGZ8]P.UN5IW&02;1/NVM(?[! GW->8#52YQA+
M@^\DT.KE<C^+SEO=U.XTS&1LQ\HN>.0:=B*2X<I 9MFK8/;9ZJH1DMHX:]89
ME;(L]TW3*V!2K*F^8->8*,;I4!=J9#[S6=SU]NF?,4B_]^V!C H(5@S7L;,5
MQ73T$L:O\W63IGZ#*\89.(&$.R\(Y6W"EZKQ63!WWX DDL4< F]?_2K3UD8-
M>'%=YHUK^-'>;SE\+378!N19'7&=OP%9]&21^+L-$4+N#GC=S]Z#ZQ &R#>'
M/^!FSH%[+0K0D,C/FSY[?H.+4F9P77<.4I@Z0L=?%RG?@*S,;D"\"> I2\0&
MY!@*P?NU 1FI^ +%?=B 9"BH;4">;$"4(-0-2$*A\'7X*5>S :$0UT,0_VZ
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
MW!]24</GZDK[_X_E1/4LSY.%]II&)Y-3OS\Z>[CYE:3ZB4V[FD12GXDW4>]
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
M67??]$5G6"W5Z<(D%O:,=P2^.O<YV+R+R-+U(4J&P)JG1,%\8 /"<HXS)J;
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
M3!)M>UO)S /5&;35'T*P4@QG_7;+!*]UMA&+,FKM!RK(Z:-S+^ ?9JU?7!L
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
M_7E+K@+3OLXY9>[W\Q0WOR4O'#&U &=*/\Z^TZ[*>#(B'M,G2!Y!'WXX!L;
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
MC: ^"',6=IA :JE\\#YQ8GNZ;&M,1CP&9HSYBS4?@BMN_M5GT1$Z#VZO;X[
M "P-1_2Z?;5*4MK\X9/1\&RA-E?,WZ(KUWUIG)3>OQPC6O@LU,>,2EI4E+,
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
M6@DK0%:PQ(^/!3B6$BN]GR^]2[E#C(OK^0?S_6^=JB9AE7OJ(/<1*COPZL7
M379BK'-LN:6<LN0\VET]2Z9 L5QI?FN3Q]'59/K!MV]!R1T*/8<<6>:U=XN
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
M,U0O;<B[E,;MISC2'I8DY:[MW.F?'$#EAGJ^T4\$/SC6BQ3L8(LK%V705N7
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
MVM^^ANV4 P>$-K#*)%?TJE;22G0%Q9T:& V0.W\7P/%&VCP0Y8EE>5UWI)R
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
M>_1S.P$%].L;%ZW:ICKT^\5LY@KB B<]P!::$IO FZ!*$(-5*.\D:Q+D7%M
M(63$]NJ'43$"\9::1;QRF)YF?WV!Q.M,?YVBZ^D!LWI=8]?!)8=C8K>7S<EO
M9T^TYLLWY<RLEMND]X<75+4.5:$^1=T@U8 <>306=Q-Q+Z!>^A<ED;@]T*SP
ML2]NQCN_];-&+<Y_9M^>Y4SXWH2_>3/CU7F#ORV2@C)T*QXAX@S5/ ^N_3^-
MTZYB<OVGSZ,_OEMW3!HUVFA$6;4.[HC\R[)A9+U"NZW)_;2+.H([)C5;#CU2
M.'A['U*O]<6,@W/Q5KW'-]ONK;OJ<#H/>_S678[GW05<%AEPB<].Q:I@96&0
M&H>I!-,%#BN(+)2H2N;Z1*)M'\-,IK@UR2J,'2'YL3\WN"=G,-8"617-C9E!
M@P/>@[ ^?QSMV@@L:G?:^%I5A<815::]0N]8%QI3B1A)/M%';$AN]\ &KR V
M2'MQVLR0!5VB(4038T@?I#:2!@:*&"]YC-DE_="L41##+W3EBW(!5:%>.K:+
MIDPH.0%H=G)2L,I+M"V$2^'DS;AI6_D,HC$?K6E6P.\Y2]2L<%&2_WKMX.ST
M0Q%[I!0Q!:\@J!RF9Q<QCW>V#"H&F;)@RD2='/P5F$JXO(CZQ.Y0#;6M*;[4
M%V;KWTP0"J92+5,O!#4FG*!V3J"!D5M!S#1K^L 2.BGVM_8][D9<D 8KAPO.
MM%:2V]'2K41GZ UHT3FQ=S":G$)M>,9 0U00UZV=G4H\A$G@8<=T1)2^B*5L
M30*[,R]/LW%O2( :L)1+'QD9^45!T>1XUO[[$^^'=P8B)#<X^Z?V&Q>SM18R
M@HO^>//GK9NAX< "WZ.3F1'P\V64U[#UB+V_ *4+Q?-EX0@9V<PCA5P*>76]
M:T^O!8NA#'S-%GN3>G_VC+\N\-CXX^YV6;F29XW6LU/LW:P;PZP\5H?X%MT"
MAOM-3,:17;%%VR2=CU:G[?P_QIT[!XQ1@KA5,QZ_'C N-25%R;+9/P:M2B!+
M-Z2+XP@M[21KD,-B:A%41>[0@I"[$6+Q.>E6Y#50K1-H?%NZ=5:JWV>V*,O6
M$*^QL ;/FM+RL?37<U\C)KY^Z T;V''\'0+K]*:-LWA@B1=C_''3A_7G[_Y0
M.H0Z<5#_RT%:^E>,8H_XJ/0M=1U=3H"6"6!U>P7^#7(;5J$>FS+"52#&"K 4
MIA(=_ZB+YV8]N=!A GJSM+,*A0OKIB>V#96]I(/NC;QYO#-XB5;FXQ]B'CZL
MX3M99<#=)KL1&Z*ND'.3K"G#H<?4]61^&'P,2A*KP1I0"5#E+GEH?PBL%5QB
M@H%=6"3L% M<&^M&U7UGN6+3&/L'Z_&:4!Y_A(55#F,H-?1I=FIW5V,38W[
MH7R%0O<;'H>&SVQ#?A0<G(E\CRG?TK:$/?Z-[>L+J\O\EC1#58XF0SNRYUM
M\2'P>^="$E?-/A[($>3-VY00\MJ*[$!D CV('P(?$<5ELSP46=5?&JWCRG+D
M*5*U40*JPW8RK_RS#SO6*KER<B[_ZW6=10\1DRDIC6 &>FQU%!M Z_"I5)05
M;2TAEC6Q&8!Q:M'(A-&'UZ3;;8_D"IA*(515>Y^@9R%2+1!/@0UC:F:DFX:L
M=/7/-GIL&?NR;^(CYV+CY4>H\-7(X])MV9-K34DZ,GNI_@EYR,O2.X2J&!J+
M;0Q.)(>B$82Q=L9&2?D*(I@Y)A2E@['SBJ ^+R]EVX?ZB-BV!=Z-^+.#"_"N
M&P!38)U4/:.G#Y1WHM8X1I3#1^I?JOKSH+CW_0/__5.I7PYNBW60]_H8+/?\
M]9LO^RQ<<7=1P*E"<C=)!2J5X7CQD/UV4(XM56D @V%U!1ZW8P6A \6S],Q'
M+)$*A&]MTNV0'?BMRV94/K-.<??7X9XN:W,HH5UOR]">^?I;L:$1F**Q"+]Y
M%6V$Y-H>S1K230WLO=N1K]]TR\?Y0K&B6DF6_0;QJ3'?S_ E: "4W3M*$=;E
M^WU:Y"@2M2 Q*"_Z;< 2KV;_DCN#4J?["!:2)G8 -4V"5@^6;419D;WI$XAU
MB@$@DS0X?L-FL,U3[JQB;!E<*=;ZV:DP&@<9-';@5.$P,#:%&"YVAEI8RR,R
MJI\T80\FGA@EC+"MN2JDO1"%SYZ[*T,GW:[=3@83>T886\)_;G-W0]B3GA(X
M6':WOM#+YV@]<E[C!/+CNRSYJ-=:!]B5N@>7C+4,Y-Z4&FPN1_G"(9*ZNO$H
MF7297RNSG!^ ORG=#KM]H.\@AQ<P;TMETZ8*N4H^!!Q[8N,';&!V=K,H1[/3
M=./[OW70VER?V:)U@+0Q.$: ;$R/.+:E9MBHJ>"]F\=8N>@9V"\=PM5RY[8
M1?C4Y=/L3*D&\:"DDAR:K0%K !/U E2&+W9N"N#Z]1.5^2L("G=C4'_UQ>R.
M(G-H%G3U36=I<I5K9&%W G"^96\A6$% CO6*-@+Y%*(^[0L"]?S@5!%9R?G+
M0<OZ;\YS.6 >#\DFWXZ3SV9>DESP]^+/AI%V +WC-95EA*I#(#F9'L$;#YAB
MZ=D L9U81>AO';PN%"5 )M$=R_Q#]7;WP4%XS91MS,9O7WUG= K"QZBE7Q#_
M<<W(D]=O=-FX*Y0UB_)KML:T<X[YPJ0!HK,P' F93:7 "-(.XB],*+**W&X2
MS4G=2[0:L@^JP<$.'^BQQO.7B3HW!-3-A'WAM#E%'=]!V*XD-.Y*2:7OQ_2Q
MBCVY%U^-676\7;4L/2N70(VZ?7"A9U4]8>K>_LE"*9GS0]A*VDS^V2'S(E?S
M"U.>84[ZB-V #46/LITD#;!5-<$7]\F6T\;<2H]_!%LDL$=I&3)&B$M"U787
MBFVF1_N)6B UB60\ZQV'3Y)N\X>X'7H[0&Q:3<R"$B']%+B9^MCW8Z@M<KJ\
MV[40WU5D)BDD*?0<2#\!VJ070S1PVY?,/6>J>.2;TX^AIR*3ZW_=M\L=L&)F
MC-(Z/#:_B3#O+N'WNOK4O?*Y(#[NOFKIVB$#N7NVR\@+<7*O][^/?&]^Z-?-
M&'S[V>QWJTW^UN=+6X4Z:,AT9%Z7MX&QC7AH"%YK#*O&BT*AO#*"JC]XO[&*
MH-\AM0"-YU&@N%VZ;=A^.U^G@#J'4N14?R&M P:UG^7'I)WC]IR?_#Q^U-"<
MQL$"7NB?#U.KH7 A=QX;*PX@MQ]ZQK D'F0"([=)"K %9"/VAW^!#($H9R@7
ME/,$:.WHFR1YX#L++?<FM*S]26.&%54A3,]ZR.!5TS#1I6*<P.RR&='HFS M
M*EHEEDAO8 O5641SX"1L#>%Y2$KD;//W5"&@>9MNPGL%NP@*W;_[@C8I@4!-
MTOEBLQ:!;K!7<^M@_8VHLQJH4=^&\HJ <2Z..W[.W_\SQYZF'VOY3PVP3ZY&
M>GQ;7-(3IF5=?A#$VH<R!5X?#+)SW^*R9IW\G:/Z^G><?V[+)\O09\/2'82[
M6%XE0W=$NI.PT.U+N<7D55+KF"PJA;$#RA.XA0O,2F4)O6$:NUZ*&"=XL>+B
MPY?3CS+4@=+)VJO+SLFF9GLL7YOF^X6<7-=4Q&_#GI=;_9O%?#L"+-J@=>4
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
M\\@P?14HUTE2A0IXO78";Q9:$;)H8YA_B(DP9GG'W6>*<!UH.3@<HLH@92W
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
M,X475:2"L7N@F7>IBK?4;%Q=$S23<[>MY(PSNQR$_:/PNC#<&K:V^^[7H.[
MMT<*]D-E&4.Z?X;)?Z' 208;W-LH[V,4#I-GX7KYN3(Y,R=L#8C3$'5=)#3O
M0V6TA(V(L55FK70H0,UZH>4FX&V1I9S3*5ZF0Q06!^?*-HWL+S*'*S]?I^^#
M*D)2T,LAPR16>+?K4VPU81L:%$\TP4DF- ]C^^\':K$Y=ENT%?1$S7(*?35
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
MVY\PAI_)]K5QKE?_MZO3A&+F0MU.Y&=MJ<[:6_8?PB[-!>2H]H; G.;3%.8
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
MUK+ELTU"UM!L1L*4NYS9PDS5V?:HX@NPQD,T]R;+) +1'KX?[,[F7U0F2U>
M@E8[A\:\*]8B'XSVU_M"$GV38H+R7D=-1_7*#9C:BANR4N+:V-:ZKB(2<'\(
MI&W!54+E4H9EY.AF:@9C0Z]@(_T87/BN\M$>&3<5I0//^&LA[@'8XDO,MZGI
M)*&(;7)J["Y/.=Z0QOD/:-0MJY]G.1BB*_W< -&,'D8QG[<@L42JP0CU-> 8
M&R-?15Q+WP%NP(X2H0D?*S>^=' #["3(5G2DAVVL!Y4R5!C[M!69-/2?A?$I
M=.^8R['%PS&7K'5I]Z\R'OE3[J(B=S?APAS&EN&B>_N-.AD'WY]5SHK0MUL
M):1J_@(^RJYP6$1GQ!IFYM!#9,:D-DM4I Y+OM)"Y.J*<"5VT82'7;F,O:H=
MFV494VGYU;>V+[XQ-W .XZV8)@-''Q'6ED96F\,^+9QK<YC5@O5HT\$VXRSY
M9"C"N^L>H#X8]_#)))H ZZ]BW480JWQ-]U9.[2!#JJSO^#TS6.SK*J^_A";3
M$[F.@;T)>.L]9Q=G1>_&/3$/^KNL104VX],8ZP&^=87[I$JSFQ:DO@ZY3X7(
MV>\EBHC)GL<TE.SHYPBLD3,PX_<H12RVM0@/LZ^YXBW DAZ9J_2JRAZDX20V
MH<$3+8E$R[UWEH_24CX>Z535\,ESF,5G0#C*' >ERB!);K@<)[;=2QT<5C=#
MPDE_.*XYS*(15>E4%TY6T598V,+4CR2NA?H% OMGW<A9Z.LQ<B['9*8B-.!
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
M[J89T@&4EP'[)'&3YA7,D8],KIB#-XQ"2[FG9T@#0\;9^V\;X/GF,IBJ%JR
M8\T"2%V)+)"L9H='O+&X$:)B3SE^"(1J* .5QN?=L'7J0V8M._C ;V_\TTKA
MS3F'4*5P:7F%<L1W*D<,+7@T_;[FEM;ZA6=TOF6QT+2+;3HXF^E(?5_5P,H]
M_\I.6N(%1M AXQKP!2K7W+OXJV,S"'M.(7'C7Y&CN[SH69*-*![N&-M_#;^
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
MZ>C2Y,J.">]GIEW!:*JQ')O"5S#;H94P0[<"%8P'.SSGK\0_1^6MJ[S>AYU
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
M?%LZ*ZV&C=!S@M^<YF?4&VQ&%DN^N$/$XVZ$-0S]G3*@LRRVTG[BQD)@KR2
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
M4W 91^"%0JH!]L&Z&;\7QF[&8'+AL_^V-1_\\(MK>(_E%^6_ %!+ 0(4 Q0
M   (  >!35!^J5)S"!P  %%$ 0 1              "  0    !C9VYX+3(P
M,3DQ,C,Q+GAS9%!+ 0(4 Q0    (  >!35#8%2$U>CL  ("Z @ 5
M      "  3<<  !C9VYX+3(P,3DQ,C,Q7V-A;"YX;6Q02P$"% ,4    "  '
M@4U0KZU%PWF0   I6P< %0              @ 'D5P  8V=N>"TR,#$Y,3(S
M,5]D968N>&UL4$L! A0#%     @ !X%-4 $H!Z5Z6 $ 6VH2 !4
M     ( !D.@  &-G;G@M,C Q.3$R,S%?;&%B+GAM;%!+ 0(4 Q0    (  >!
M35#V4VF)QN<  %<*#  5              "  3U! @!C9VYX+3(P,3DQ,C,Q
M7W!R92YX;6Q02P$"% ,4    "  '@4U0TNP=##=E P A!RH %@
M    @ $V*0, 8V=N>"TR,#$Y,3(S,7@Q,'AK+FAT;5!+ 0(4 Q0    (  >!
M35"9.T@<9P<   ."   ;              "  :&.!@!C9VYX+3(P,3DQ,C,Q
M>&5X:&EB:70R,2YH=&U02P$"% ,4    "  '@4U0)MRXEV4#  !5#   '
M            @ %!E@8 8V=N>"TR,#$Y,3(S,7AE>&AI8FET,C,Q+FAT;5!+
M 0(4 Q0    (  >!35 :D"^YC@@  /!-   <              "  >"9!@!C
M9VYX+3(P,3DQ,C,Q>&5X:&EB:70S,3$N:'1M4$L! A0#%     @ !X%-4$AU
M<;J:"   A4X  !P              ( !J*(& &-G;G@M,C Q.3$R,S%X97AH
M:6)I=#,Q,BYH=&U02P$"% ,4    "  '@4U0'0Y__J4%  !W)P  '
M        @ %\JP8 8V=N>"TR,#$Y,3(S,7AE>&AI8FET,S(Q+FAT;5!+ 0(4
M Q0    (  >!35#:E8!(G04  -(G   <              "  5NQ!@!C9VYX
M+3(P,3DQ,C,Q>&5X:&EB:70S,C(N:'1M4$L! A0#%     @ !X%-4&QYM\Y+
M$0  +34  !P              ( !,K<& &-G;GAE>&AI8FET-&)D97-C<FEP
M=&EO;BYH=&U02P$"% ,4    "  '@4U0J4RUID<1  !O-@  &@
M    @ &WR 8 8V=N>&9O<FUO9G)S=6%G<F5E;65N="YH=&U02P$"% ,4
M"  '@4U0JWN>&X5M 0"5G@$ '0              @ $VV@8 8VAA<G0M,6)F
M,&5F,S$W,SDY-68W.6)B-RYJ<&=02P$"% ,4    "  '@4U0E'BSN34&   O
M#P  '               @ 'V1P@ 8V]G;F5X<')E9F5R86)I;&ET>6QE='1E
:+FAT;5!+!08     $  0 '$$  !E3@@    !

end
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>74
<FILENAME>R54.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.19.3.a.u2</span><table class="report" border="0" cellspacing="2" id="idp6726772144">
<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, 2019</div></th></tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_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="top.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="top.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="top.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="top.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="top.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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Product warranty period.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_RangeAxis=srt_MinimumMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_srt_RangeAxis=srt_MaximumMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_RangeAxis=srt_MaximumMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>75
<FILENAME>R50.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.19.3.a.u2</span><table class="report" border="0" cellspacing="2" id="idp6622439584">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Acquisitions Acquisitions - (Tables)<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><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="top.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="top.Show.showAR( this, 'defref_us-gaap_ScheduleOfIndefiniteLivedIntangibleAssetsAcquiredAsPartOfBusinessCombinationTextBlock', window );">Schedule of Indefinite-lived Intangible Assets Acquired as Part of Business Combination</a></td>
<td class="text"><div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">The purchase price was allocated as follows (in thousands):</span></div><div style="line-height:120%;padding-top:8px;text-align:center;font-size:10pt;"><div style="padding-left:0px;text-indent:0px;line-height:normal;padding-top:10px;"><table cellpadding="0" cellspacing="0" style="font-family:Times New Roman;font-size:10pt;margin-left:auto;margin-right:auto;width:100%;border-collapse:collapse;text-align:left;"><tr><td colspan="4"/></tr><tr><td style="width:86%;"/><td style="width:1%;"/><td style="width:12%;"/><td style="width:1%;"/></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Cash</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>146</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Accounts receivable</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>425</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Prepaid expenses and other current assets</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>129</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Property, plant, and equipment</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>40</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Deferred income tax asset</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>620</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Accounts payable</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>(98</span></span></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">)</span></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Accrued expenses</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>(716</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">)</span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Deferred income tax liability</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>(1,008</span></span></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">)</span></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Non-compete agreement</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>370</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Completed technologies</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>4,774</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Goodwill</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>18,333</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:36px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Purchase price</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>23,015</span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr></table></div><span style="font-family:inherit;font-size:10pt;"><br/></span></div><div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">The purchase price was allocated as follows (in thousands):</span></div><div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><div style="padding-left:0px;text-indent:0px;line-height:normal;padding-top:10px;"><table cellpadding="0" cellspacing="0" style="font-family:Times New Roman;font-size:10pt;width:100%;border-collapse:collapse;text-align:left;"><tr><td colspan="4"/></tr><tr><td style="width:86%;"/><td style="width:1%;"/><td style="width:12%;"/><td style="width:1%;"/></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Accounts receivable</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>423</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Inventories</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>120</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Prepaid expenses and other current assets</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>1</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Accounts payable</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>(152</span></span></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">)</span></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Accrued expenses</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>(10</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">)</span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Completed technologies</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>910</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Customer relationships</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>2,600</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Goodwill</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>1,476</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:36px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Purchase price</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>5,368</span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr></table></div><span style="font-family:inherit;font-size:10pt;"><br/></span></div><div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">The purchase price that was not related to employment was allocated as follows (in thousands):</span></div><div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><div style="padding-left:0px;text-indent:0px;line-height:normal;padding-top:10px;"><table cellpadding="0" cellspacing="0" style="font-family:Times New Roman;font-size:10pt;width:100%;border-collapse:collapse;text-align:left;"><tr><td colspan="4"/></tr><tr><td style="width:86%;"/><td style="width:1%;"/><td style="width:12%;"/><td style="width:1%;"/></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Cash and cash equivalents</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>3,691</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Current investments</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>9,487</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Accounts receivable</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>1,200</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Inventories</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>115</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Prepaid expenses and other current assets</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>252</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Property, plant, and equipment</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>726</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Operating lease assets</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>2,792</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Deferred income tax asset</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>3,087</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Other assets</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>513</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Accounts payable</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>(28</span></span></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">)</span></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Accrued expenses</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>(2,633</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">)</span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Deferred revenue and customer deposits</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>(764</span></span></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">)</span></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Operating lease liabilities</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>(448</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">)</span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Non-current operating lease liabilities</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>(2,344</span></span></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">)</span></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Deferred income tax liabilities</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>(7,926</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">)</span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Other liabilities</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>(10</span></span></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">)</span></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Completed technologies</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>18,300</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">In-process technologies</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>8,200</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Customer relationships</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>5,800</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Non-compete agreements</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>340</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Trademarks</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>110</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Goodwill</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>130,142</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:36px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Purchase price</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>170,602</span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr></table></div><span style="font-family:inherit;font-size:10pt;"><br/></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_BusinessCombinationsAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_BusinessCombinationsAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ScheduleOfIndefiniteLivedIntangibleAssetsAcquiredAsPartOfBusinessCombinationTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Tabular disclosure of characteristics and cost, by total and major class, of indefinite-lived intangible assets acquired as part of a business combination. Indefinite-lived intangible assets are assets that have no physical form, but have expected future economic benefit. The future benefit is not expected to diminish over a stated period of time. Acquired indefinite-lived intangible assets are disclosed by major class (assets that can be grouped together because they are similar, either by their nature or by their use in operations of the entity) and in total.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 350<br> -SubTopic 30<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=66006027&amp;loc=d3e16265-109275<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 2<br> -URI http://asc.fasb.org/extlink&amp;oid=84161108&amp;loc=d3e4922-128472<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ScheduleOfIndefiniteLivedIntangibleAssetsAcquiredAsPartOfBusinessCombinationTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>nonnum:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>JSON
<SEQUENCE>76
<FILENAME>MetaLinks.json
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
{
 "instance": {
  "cgnx-20191231x10xk.htm": {
   "axisCustom": 0,
   "axisStandard": 29,
   "contextCount": 306,
   "dts": {
    "calculationLink": {
     "local": [
      "cgnx-20191231_cal.xml"
     ]
    },
    "definitionLink": {
     "local": [
      "cgnx-20191231_def.xml"
     ],
     "remote": [
      "http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-eedm-def-2018-01-31.xml",
      "http://xbrl.fasb.org/srt/2018/elts/srt-eedm1-def-2018-01-31.xml"
     ]
    },
    "inline": {
     "local": [
      "cgnx-20191231x10xk.htm"
     ]
    },
    "labelLink": {
     "local": [
      "cgnx-20191231_lab.xml"
     ],
     "remote": [
      "http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-doc-2018-01-31.xml",
      "https://xbrl.sec.gov/dei/2019/dei-doc-2019-01-31.xml",
      "http://xbrl.fasb.org/srt/2018/elts/srt-doc-2018-01-31.xml"
     ]
    },
    "presentationLink": {
     "local": [
      "cgnx-20191231_pre.xml"
     ]
    },
    "referenceLink": {
     "remote": [
      "https://xbrl.sec.gov/dei/2019/dei-ref-2019-01-31.xml",
      "http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-ref-2018-01-31.xml",
      "http://xbrl.fasb.org/srt/2018/elts/srt-ref-2018-01-31.xml"
     ]
    },
    "schema": {
     "local": [
      "cgnx-20191231.xsd"
     ],
     "remote": [
      "http://xbrl.fasb.org/srt/2018/elts/srt-2018-01-31.xsd",
      "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/dtr/type/numeric-2009-12-16.xsd",
      "http://www.xbrl.org/dtr/type/nonNumeric-2009-12-16.xsd",
      "http://www.xbrl.org/2005/xbrldt-2005.xsd",
      "http://www.xbrl.org/2006/ref-2006-02-27.xsd",
      "http://xbrl.fasb.org/srt/2018/elts/srt-types-2018-01-31.xsd",
      "http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd",
      "http://xbrl.fasb.org/us-gaap/2018/elts/us-roles-2018-01-31.xsd",
      "http://xbrl.fasb.org/srt/2018/elts/srt-roles-2018-01-31.xsd",
      "http://xbrl.sec.gov/country/2017/country-2017-01-31.xsd",
      "http://xbrl.fasb.org/us-gaap/2018/elts/us-types-2018-01-31.xsd",
      "http://www.xbrl.org/lrr/arcrole/factExplanatory-2009-12-16.xsd",
      "http://www.xbrl.org/lrr/role/negated-2009-12-16.xsd",
      "http://www.xbrl.org/lrr/role/net-2009-12-16.xsd",
      "http://xbrl.sec.gov/currency/2017/currency-2017-01-31.xsd",
      "https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd",
      "https://xbrl.sec.gov/exch/2018/exch-2018-01-31.xsd",
      "http://xbrl.sec.gov/invest/2013/invest-2013-01-31.xsd",
      "http://xbrl.sec.gov/naics/2017/naics-2017-01-31.xsd",
      "http://xbrl.sec.gov/sic/2011/sic-2011-01-31.xsd",
      "https://xbrl.sec.gov/stpr/2018/stpr-2018-01-31.xsd",
      "http://www.xbrl.org/lrr/role/deprecated-2009-12-16.xsd",
      "http://www.xbrl.org/lrr/role/reference-2009-12-16.xsd",
      "http://xbrl.fasb.org/us-gaap/2018/elts/us-parts-codification-2018-01-31.xsd"
     ]
    }
   },
   "elementCount": 812,
   "entityCount": 1,
   "hidden": {
    "http://cognex.com/20191231": 13,
    "http://fasb.org/us-gaap/2018-01-31": 54,
    "http://xbrl.sec.gov/dei/2019-01-31": 5,
    "total": 72
   },
   "keyCustom": 70,
   "keyStandard": 510,
   "memberCustom": 29,
   "memberStandard": 70,
   "nsprefix": "cgnx",
   "nsuri": "http://cognex.com/20191231",
   "report": {
    "R1": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20191231x10xk.htm",
      "contextRef": "FD2019Q4YTD",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "dei:DocumentType",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "document",
     "isDefault": "true",
     "longName": "0001000 - Document - Cover Page",
     "role": "http://cognex.com/role/CoverPage",
     "shortName": "Cover Page",
     "subGroupType": "",
     "uniqueAnchor": {
      "ancestors": [
       "span",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20191231x10xk.htm",
      "contextRef": "FD2019Q4YTD",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "dei:DocumentType",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R10": {
     "firstAnchor": null,
     "groupType": "statement",
     "isDefault": "false",
     "longName": "1005501 - Statement - CONSOLIDATED STATEMENTS OF SHAREHOLDERS' EQUITY (Parenthetical)",
     "role": "http://cognex.com/role/ConsolidatedStatementsOfShareholdersEquityParenthetical",
     "shortName": "CONSOLIDATED STATEMENTS OF SHAREHOLDERS' EQUITY (Parenthetical)",
     "subGroupType": "parenthetical",
     "uniqueAnchor": null
    },
    "R100": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "span",
       "div",
       "td",
       "tr",
       "table",
       "div",
       "div",
       "us-gaap:SummaryOfIncomeTaxContingenciesTextBlock",
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20191231x10xk.htm",
      "contextRef": "FI2018Q4",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:UnrecognizedTaxBenefits",
      "reportCount": 1,
      "unitRef": "usd",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "2420406 - Disclosure - Taxes - Changes in the Reserve for Income Taxes, Excluding Interest and Penalties (Details)",
     "role": "http://cognex.com/role/TaxesChangesInReserveForIncomeTaxesExcludingInterestAndPenaltiesDetails",
     "shortName": "Taxes - Changes in the Reserve for Income Taxes, Excluding Interest and Penalties (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "span",
       "span",
       "div",
       "td",
       "tr",
       "table",
       "div",
       "div",
       "us-gaap:SummaryOfIncomeTaxContingenciesTextBlock",
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20191231x10xk.htm",
      "contextRef": "FD2018Q4YTD",
      "decimals": "-3",
      "lang": null,
      "name": "us-gaap:UnrecognizedTaxBenefitsIncreasesResultingFromPriorPeriodTaxPositions",
      "reportCount": 1,
      "unique": true,
      "unitRef": "usd",
      "xsiNil": "false"
     }
    },
    "R101": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "span",
       "div",
       "td",
       "tr",
       "table",
       "div",
       "div",
       "us-gaap:ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock",
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20191231x10xk.htm",
      "contextRef": "FI2019Q4",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "cgnx:DeferredTaxAssetsIntangibleAssetChangeinTaxStructure",
      "reportCount": 1,
      "unique": true,
      "unitRef": "usd",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "2420407 - Disclosure - Taxes - Constituents of Deferred Tax Assets (Details)",
     "role": "http://cognex.com/role/TaxesConstituentsOfDeferredTaxAssetsDetails",
     "shortName": "Taxes - Constituents of Deferred Tax Assets (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "span",
       "span",
       "div",
       "td",
       "tr",
       "table",
       "div",
       "div",
       "us-gaap:ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock",
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20191231x10xk.htm",
      "contextRef": "FI2019Q4",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "cgnx:DeferredTaxAssetsIntangibleAssetChangeinTaxStructure",
      "reportCount": 1,
      "unique": true,
      "unitRef": "usd",
      "xsiNil": "false"
     }
    },
    "R102": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "span",
       "div",
       "td",
       "tr",
       "table",
       "div",
       "div",
       "us-gaap:ScheduleOfWeightedAverageNumberOfSharesTableTextBlock",
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20191231x10xk.htm",
      "contextRef": "FD2019Q4YTD",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:WeightedAverageNumberOfSharesOutstandingBasic",
      "reportCount": 1,
      "unitRef": "shares",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "2421402 - Disclosure - Weighted Average Shares - Calculation of Weighted Average Shares (Detail)",
     "role": "http://cognex.com/role/WeightedAverageSharesCalculationOfWeightedAverageSharesDetail",
     "shortName": "Weighted Average Shares - Calculation of Weighted Average Shares (Detail)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "span",
       "span",
       "div",
       "td",
       "tr",
       "table",
       "div",
       "div",
       "us-gaap:ScheduleOfWeightedAverageNumberOfSharesTableTextBlock",
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20191231x10xk.htm",
      "contextRef": "FD2019Q4YTD",
      "decimals": "-3",
      "lang": null,
      "name": "us-gaap:WeightedAverageNumberDilutedSharesOutstandingAdjustment",
      "reportCount": 1,
      "unique": true,
      "unitRef": "shares",
      "xsiNil": "false"
     }
    },
    "R103": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "span",
       "div",
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20191231x10xk.htm",
      "contextRef": "FD2019Q4YTD_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis_us-gaap_EmployeeStockOptionMember",
      "decimals": "0",
      "first": true,
      "lang": null,
      "name": "us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount",
      "reportCount": 1,
      "unique": true,
      "unitRef": "shares",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "2421403 - Disclosure - Weighted Average Shares - Additional Information (Detail)",
     "role": "http://cognex.com/role/WeightedAverageSharesAdditionalInformationDetail",
     "shortName": "Weighted Average Shares - Additional Information (Detail)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "span",
       "span",
       "div",
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20191231x10xk.htm",
      "contextRef": "FD2019Q4YTD_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis_us-gaap_EmployeeStockOptionMember",
      "decimals": "0",
      "first": true,
      "lang": null,
      "name": "us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount",
      "reportCount": 1,
      "unique": true,
      "unitRef": "shares",
      "xsiNil": "false"
     }
    },
    "R104": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "span",
       "div",
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20191231x10xk.htm",
      "contextRef": "FD2019Q4YTD",
      "decimals": "INF",
      "first": true,
      "lang": null,
      "name": "us-gaap:NumberOfReportableSegments",
      "reportCount": 1,
      "unique": true,
      "unitRef": "Segment",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "2422402 - Disclosure - Segment and Geographic Information - Additional Information (Detail)",
     "role": "http://cognex.com/role/SegmentAndGeographicInformationAdditionalInformationDetail",
     "shortName": "Segment and Geographic Information - Additional Information (Detail)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "span",
       "span",
       "div",
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20191231x10xk.htm",
      "contextRef": "FD2019Q4YTD",
      "decimals": "INF",
      "first": true,
      "lang": null,
      "name": "us-gaap:NumberOfReportableSegments",
      "reportCount": 1,
      "unique": true,
      "unitRef": "Segment",
      "xsiNil": "false"
     }
    },
    "R105": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "span",
       "div",
       "td",
       "tr",
       "table",
       "div",
       "div",
       "us-gaap:ScheduleOfQuarterlyFinancialInformationTableTextBlock",
       "us-gaap:QuarterlyFinancialInformationTextBlock",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20191231x10xk.htm",
      "contextRef": "FD2018Q4QTD",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax",
      "reportCount": 1,
      "unitRef": "usd",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "2422403 - Disclosure - Segment and Geographic Information - Schedule of Revenue from External Customers and Long-Lived Assets, by Geographical Areas (Detail)",
     "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",
       "span",
       "div",
       "td",
       "tr",
       "table",
       "div",
       "div",
       "us-gaap:ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsByGeographicalAreasTableTextBlock",
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20191231x10xk.htm",
      "contextRef": "FI2019Q4",
      "decimals": "-3",
      "lang": null,
      "name": "us-gaap:NoncurrentAssets",
      "reportCount": 1,
      "unique": true,
      "unitRef": "usd",
      "xsiNil": "false"
     }
    },
    "R106": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "span",
       "div",
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20191231x10xk.htm",
      "contextRef": "FD2019Q4YTD",
      "decimals": "INF",
      "first": true,
      "lang": null,
      "name": "us-gaap:NumberOfBusinessesAcquired",
      "reportCount": 1,
      "unique": true,
      "unitRef": "acquisition",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "2424402 - Disclosure - Acquisitions Acquisitions - (Details)",
     "role": "http://cognex.com/role/AcquisitionsAcquisitionsDetails",
     "shortName": "Acquisitions Acquisitions - (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "span",
       "span",
       "div",
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20191231x10xk.htm",
      "contextRef": "FD2019Q4YTD",
      "decimals": "INF",
      "first": true,
      "lang": null,
      "name": "us-gaap:NumberOfBusinessesAcquired",
      "reportCount": 1,
      "unique": true,
      "unitRef": "acquisition",
      "xsiNil": "false"
     }
    },
    "R107": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "span",
       "div",
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20191231x10xk.htm",
      "contextRef": "I2019Q3_us-gaap_BusinessAcquisitionAxis_cgnx_SualabCo.Ltd.Member",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:BusinessAcquisitionPurchasePriceAllocationGoodwillExpectedTaxDeductibleAmount",
      "reportCount": 1,
      "unique": true,
      "unitRef": "usd",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "2424403 - Disclosure - Acquisitions - Sualab Co., Ltd. Narrative (Details)",
     "role": "http://cognex.com/role/AcquisitionsSualabCoLtdNarrativeDetails",
     "shortName": "Acquisitions - Sualab Co., Ltd. Narrative (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "span",
       "span",
       "div",
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20191231x10xk.htm",
      "contextRef": "I2019Q3_us-gaap_BusinessAcquisitionAxis_cgnx_SualabCo.Ltd.Member",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:BusinessAcquisitionPurchasePriceAllocationGoodwillExpectedTaxDeductibleAmount",
      "reportCount": 1,
      "unique": true,
      "unitRef": "usd",
      "xsiNil": "false"
     }
    },
    "R108": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "span",
       "div",
       "td",
       "tr",
       "table",
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20191231x10xk.htm",
      "contextRef": "FI2019Q4",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:Goodwill",
      "reportCount": 1,
      "unitRef": "usd",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "2424404 - Disclosure - Acquisitions - Sualab Co., Ltd. Purchase Price Allocation (Details)",
     "role": "http://cognex.com/role/AcquisitionsSualabCoLtdPurchasePriceAllocationDetails",
     "shortName": "Acquisitions - Sualab Co., Ltd. Purchase Price Allocation (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "span",
       "span",
       "div",
       "td",
       "tr",
       "table",
       "div",
       "div",
       "ix:continuation",
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20191231x10xk.htm",
      "contextRef": "I2019Q3_us-gaap_BusinessAcquisitionAxis_cgnx_SualabCo.Ltd.Member",
      "decimals": "-3",
      "lang": null,
      "name": "us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCashAndEquivalents",
      "reportCount": 1,
      "unique": true,
      "unitRef": "usd",
      "xsiNil": "false"
     }
    },
    "R109": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "span",
       "div",
       "td",
       "tr",
       "table",
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20191231x10xk.htm",
      "contextRef": "FD2019Q4YTD",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1",
      "reportCount": 1,
      "unitRef": "usd",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "2424405 - Disclosure - Acquisitions - GVi Ventures, Inc. (Details)",
     "role": "http://cognex.com/role/AcquisitionsGviVenturesIncDetails",
     "shortName": "Acquisitions - GVi Ventures, Inc. (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "span",
       "span",
       "div",
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20191231x10xk.htm",
      "contextRef": "FD2019Q4YTD_us-gaap_BusinessAcquisitionAxis_cgnx_GViVenturesInc.Member",
      "decimals": "INF",
      "lang": null,
      "name": "us-gaap:BusinessCombinationContingentConsiderationArrangementsChangeInTheRangeOfOutcomesContingentConsiderationLiabilityValueLow",
      "reportCount": 1,
      "unique": true,
      "unitRef": "usd",
      "xsiNil": "false"
     }
    },
    "R11": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20191231x10xk.htm",
      "contextRef": "FD2019Q4YTD",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:SignificantAccountingPoliciesTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "2101100 - Disclosure - Summary of Significant Accounting Policies",
     "role": "http://cognex.com/role/SummaryOfSignificantAccountingPolicies",
     "shortName": "Summary of Significant Accounting Policies",
     "subGroupType": "",
     "uniqueAnchor": {
      "ancestors": [
       "span",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20191231x10xk.htm",
      "contextRef": "FD2019Q4YTD",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:SignificantAccountingPoliciesTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R110": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "span",
       "div",
       "td",
       "tr",
       "table",
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20191231x10xk.htm",
      "contextRef": "FI2019Q4",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:Goodwill",
      "reportCount": 1,
      "unitRef": "usd",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "2424406 - Disclosure - Acquisitions - GVi Ventures, Inc. Purchase Price Allocation (Details)",
     "role": "http://cognex.com/role/AcquisitionsGviVenturesIncPurchasePriceAllocationDetails",
     "shortName": "Acquisitions - GVi Ventures, Inc. Purchase Price Allocation (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "span",
       "span",
       "div",
       "td",
       "tr",
       "table",
       "div",
       "div",
       "ix:continuation",
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20191231x10xk.htm",
      "contextRef": "I2017Q2Apr12_us-gaap_BusinessAcquisitionAxis_cgnx_GViVenturesInc.Member",
      "decimals": "-3",
      "lang": null,
      "name": "us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsReceivables",
      "reportCount": 1,
      "unique": true,
      "unitRef": "usd",
      "xsiNil": "false"
     }
    },
    "R111": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "span",
       "div",
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20191231x10xk.htm",
      "contextRef": "D2017Q2Apr04-Apr04_us-gaap_BusinessAcquisitionAxis_cgnx_ViDiSystemsS.A.Member",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:BusinessCombinationConsiderationTransferred1",
      "reportCount": 1,
      "unique": true,
      "unitRef": "usd",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "2424407 - Disclosure - Acquisitions - ViDi Systems S.A. (Details)",
     "role": "http://cognex.com/role/AcquisitionsVidiSystemsSADetails",
     "shortName": "Acquisitions - ViDi Systems S.A. (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "span",
       "span",
       "div",
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20191231x10xk.htm",
      "contextRef": "D2017Q2Apr04-Apr04_us-gaap_BusinessAcquisitionAxis_cgnx_ViDiSystemsS.A.Member",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:BusinessCombinationConsiderationTransferred1",
      "reportCount": 1,
      "unique": true,
      "unitRef": "usd",
      "xsiNil": "false"
     }
    },
    "R112": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "span",
       "div",
       "td",
       "tr",
       "table",
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20191231x10xk.htm",
      "contextRef": "FI2019Q4",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:Goodwill",
      "reportCount": 1,
      "unitRef": "usd",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "2424408 - Disclosure - Acquisitions - ViDi Systems S.A. Purchase Price Allocation (Details)",
     "role": "http://cognex.com/role/AcquisitionsVidiSystemsSAPurchasePriceAllocationDetails",
     "shortName": "Acquisitions - ViDi Systems S.A. Purchase Price Allocation (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "span",
       "span",
       "div",
       "td",
       "tr",
       "table",
       "div",
       "div",
       "us-gaap:ScheduleOfIndefiniteLivedIntangibleAssetsAcquiredAsPartOfBusinessCombinationTextBlock",
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20191231x10xk.htm",
      "contextRef": "I2017Q2Apr04_us-gaap_BusinessAcquisitionAxis_cgnx_ViDiSystemsS.A.Member",
      "decimals": "-3",
      "lang": null,
      "name": "us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCashAndEquivalents",
      "reportCount": 1,
      "unique": true,
      "unitRef": "usd",
      "xsiNil": "false"
     }
    },
    "R113": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "span",
       "div",
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20191231x10xk.htm",
      "contextRef": "I2020Q1_us-gaap_SubsequentEventTypeAxis_us-gaap_SubsequentEventMember",
      "decimals": "INF",
      "first": true,
      "lang": null,
      "name": "us-gaap:DividendsPayableAmountPerShare",
      "reportCount": 1,
      "unique": true,
      "unitRef": "usdPerShare",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "2425401 - Disclosure - Subsequent Events - (Details)",
     "role": "http://cognex.com/role/SubsequentEventsDetails",
     "shortName": "Subsequent Events - (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "span",
       "span",
       "div",
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20191231x10xk.htm",
      "contextRef": "I2020Q1_us-gaap_SubsequentEventTypeAxis_us-gaap_SubsequentEventMember",
      "decimals": "INF",
      "first": true,
      "lang": null,
      "name": "us-gaap:DividendsPayableAmountPerShare",
      "reportCount": 1,
      "unique": true,
      "unitRef": "usdPerShare",
      "xsiNil": "false"
     }
    },
    "R114": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "span",
       "div",
       "td",
       "tr",
       "table",
       "div",
       "div",
       "us-gaap:ScheduleOfQuarterlyFinancialInformationTableTextBlock",
       "us-gaap:QuarterlyFinancialInformationTextBlock",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20191231x10xk.htm",
      "contextRef": "FD2018Q4QTD",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax",
      "reportCount": 1,
      "unitRef": "usd",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "2426402 - Disclosure - Selected Quarterly Financial Data (Unaudited) (Details)",
     "role": "http://cognex.com/role/SelectedQuarterlyFinancialDataUnauditedDetails",
     "shortName": "Selected Quarterly Financial Data (Unaudited) (Details)",
     "subGroupType": "details",
     "uniqueAnchor": null
    },
    "R115": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "span",
       "div",
       "td",
       "tr",
       "table",
       "div",
       "div",
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20191231x10xk.htm",
      "contextRef": "FI2018Q4_us-gaap_ValuationAllowancesAndReservesTypeAxis_us-gaap_UncollectibleReceivablesMember",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:ValuationAllowancesAndReservesBalance",
      "reportCount": 1,
      "unitRef": "usd",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "2427401 - Disclosure - Schedule II -Valuation and Qualifying Accounts (Detail)",
     "role": "http://cognex.com/role/ScheduleIiValuationAndQualifyingAccountsDetail",
     "shortName": "Schedule II -Valuation and Qualifying Accounts (Detail)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "span",
       "span",
       "div",
       "td",
       "tr",
       "table",
       "div",
       "div",
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20191231x10xk.htm",
      "contextRef": "FI2016Q4_us-gaap_ValuationAllowancesAndReservesTypeAxis_us-gaap_UncollectibleReceivablesMember",
      "decimals": "-3",
      "lang": null,
      "name": "us-gaap:ValuationAllowancesAndReservesBalance",
      "reportCount": 1,
      "unique": true,
      "unitRef": "usd",
      "xsiNil": "false"
     }
    },
    "R12": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20191231x10xk.htm",
      "contextRef": "FD2019Q4YTD",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:NewAccountingPronouncementsAndChangesInAccountingPrinciplesTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "2102100 - Disclosure - New Pronouncements",
     "role": "http://cognex.com/role/NewPronouncements",
     "shortName": "New Pronouncements",
     "subGroupType": "",
     "uniqueAnchor": {
      "ancestors": [
       "span",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20191231x10xk.htm",
      "contextRef": "FD2019Q4YTD",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:NewAccountingPronouncementsAndChangesInAccountingPrinciplesTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R13": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20191231x10xk.htm",
      "contextRef": "FD2019Q4YTD",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:FairValueDisclosuresTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "2103100 - Disclosure - Fair Value Measurements",
     "role": "http://cognex.com/role/FairValueMeasurements",
     "shortName": "Fair Value Measurements",
     "subGroupType": "",
     "uniqueAnchor": {
      "ancestors": [
       "span",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20191231x10xk.htm",
      "contextRef": "FD2019Q4YTD",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:FairValueDisclosuresTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R14": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20191231x10xk.htm",
      "contextRef": "FD2019Q4YTD",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:InvestmentsInDebtAndEquityInstrumentsCashAndCashEquivalentsUnrealizedAndRealizedGainsLossesTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "2104100 - Disclosure - Cash, Cash Equivalents, and Investments",
     "role": "http://cognex.com/role/CashCashEquivalentsAndInvestments",
     "shortName": "Cash, Cash Equivalents, and Investments",
     "subGroupType": "",
     "uniqueAnchor": {
      "ancestors": [
       "span",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20191231x10xk.htm",
      "contextRef": "FD2019Q4YTD",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:InvestmentsInDebtAndEquityInstrumentsCashAndCashEquivalentsUnrealizedAndRealizedGainsLossesTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R15": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20191231x10xk.htm",
      "contextRef": "FD2019Q4YTD",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:InventoryDisclosureTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "2105100 - Disclosure - Inventories",
     "role": "http://cognex.com/role/Inventories",
     "shortName": "Inventories",
     "subGroupType": "",
     "uniqueAnchor": {
      "ancestors": [
       "span",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20191231x10xk.htm",
      "contextRef": "FD2019Q4YTD",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:InventoryDisclosureTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R16": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20191231x10xk.htm",
      "contextRef": "FD2019Q4YTD",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:PropertyPlantAndEquipmentDisclosureTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "2106100 - Disclosure - Property, Plant, and Equipment",
     "role": "http://cognex.com/role/PropertyPlantAndEquipment",
     "shortName": "Property, Plant, and Equipment",
     "subGroupType": "",
     "uniqueAnchor": {
      "ancestors": [
       "span",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20191231x10xk.htm",
      "contextRef": "FD2019Q4YTD",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:PropertyPlantAndEquipmentDisclosureTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R17": {
     "firstAnchor": {
      "ancestors": [
       "us-gaap:LesseeOperatingLeasesTextBlock",
       "span",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20191231x10xk.htm",
      "contextRef": "FD2019Q4YTD",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:OperatingLeasesOfLessorDisclosureTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "2107100 - Disclosure - Leases Leases",
     "role": "http://cognex.com/role/LeasesLeases",
     "shortName": "Leases Leases",
     "subGroupType": "",
     "uniqueAnchor": {
      "ancestors": [
       "us-gaap:LesseeOperatingLeasesTextBlock",
       "span",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20191231x10xk.htm",
      "contextRef": "FD2019Q4YTD",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:OperatingLeasesOfLessorDisclosureTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R18": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20191231x10xk.htm",
      "contextRef": "FD2019Q4YTD",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:GoodwillDisclosureTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "2108100 - Disclosure - Goodwill",
     "role": "http://cognex.com/role/Goodwill",
     "shortName": "Goodwill",
     "subGroupType": "",
     "uniqueAnchor": {
      "ancestors": [
       "span",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20191231x10xk.htm",
      "contextRef": "FD2019Q4YTD",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:GoodwillDisclosureTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R19": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20191231x10xk.htm",
      "contextRef": "FD2019Q4YTD",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:IntangibleAssetsDisclosureTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "2109100 - Disclosure - Intangible Assets",
     "role": "http://cognex.com/role/IntangibleAssets",
     "shortName": "Intangible Assets",
     "subGroupType": "",
     "uniqueAnchor": {
      "ancestors": [
       "span",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20191231x10xk.htm",
      "contextRef": "FD2019Q4YTD",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:IntangibleAssetsDisclosureTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R2": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "span",
       "div",
       "td",
       "tr",
       "table",
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20191231x10xk.htm",
      "contextRef": "FD2019Q4YTD",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax",
      "reportCount": 1,
      "unitRef": "usd",
      "xsiNil": "false"
     },
     "groupType": "statement",
     "isDefault": "false",
     "longName": "1001000 - Statement - CONSOLIDATED STATEMENTS OF OPERATIONS",
     "role": "http://cognex.com/role/ConsolidatedStatementsOfOperations",
     "shortName": "CONSOLIDATED STATEMENTS OF OPERATIONS",
     "subGroupType": "",
     "uniqueAnchor": {
      "ancestors": [
       "span",
       "span",
       "div",
       "td",
       "tr",
       "table",
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20191231x10xk.htm",
      "contextRef": "FD2019Q4YTD",
      "decimals": "-3",
      "lang": null,
      "name": "us-gaap:ResearchAndDevelopmentExpense",
      "reportCount": 1,
      "unique": true,
      "unitRef": "usd",
      "xsiNil": "false"
     }
    },
    "R20": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20191231x10xk.htm",
      "contextRef": "FD2019Q4YTD",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:AccountsPayableAndAccruedLiabilitiesDisclosureTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "2110100 - Disclosure - Accrued Expenses",
     "role": "http://cognex.com/role/AccruedExpenses",
     "shortName": "Accrued Expenses",
     "subGroupType": "",
     "uniqueAnchor": {
      "ancestors": [
       "span",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20191231x10xk.htm",
      "contextRef": "FD2019Q4YTD",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:AccountsPayableAndAccruedLiabilitiesDisclosureTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R21": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20191231x10xk.htm",
      "contextRef": "FD2019Q4YTD",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:CommitmentsAndContingenciesDisclosureTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "2112100 - Disclosure - Commitments and Contingencies",
     "role": "http://cognex.com/role/CommitmentsAndContingencies",
     "shortName": "Commitments and Contingencies",
     "subGroupType": "",
     "uniqueAnchor": {
      "ancestors": [
       "span",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20191231x10xk.htm",
      "contextRef": "FD2019Q4YTD",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:CommitmentsAndContingenciesDisclosureTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R22": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20191231x10xk.htm",
      "contextRef": "FD2019Q4YTD",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "cgnx:IndemnificationProvisionsTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "2113100 - Disclosure - Indemnification Provisions",
     "role": "http://cognex.com/role/IndemnificationProvisions",
     "shortName": "Indemnification Provisions",
     "subGroupType": "",
     "uniqueAnchor": {
      "ancestors": [
       "span",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20191231x10xk.htm",
      "contextRef": "FD2019Q4YTD",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "cgnx:IndemnificationProvisionsTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R23": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20191231x10xk.htm",
      "contextRef": "FD2019Q4YTD",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:DerivativeInstrumentsAndHedgingActivitiesDisclosureTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "2114100 - Disclosure - Derivative Instruments",
     "role": "http://cognex.com/role/DerivativeInstruments",
     "shortName": "Derivative Instruments",
     "subGroupType": "",
     "uniqueAnchor": {
      "ancestors": [
       "span",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20191231x10xk.htm",
      "contextRef": "FD2019Q4YTD",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:DerivativeInstrumentsAndHedgingActivitiesDisclosureTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R24": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20191231x10xk.htm",
      "contextRef": "FD2019Q4YTD",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:RevenueFromContractWithCustomerTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "2116100 - Disclosure - Revenue Recognition",
     "role": "http://cognex.com/role/RevenueRecognition",
     "shortName": "Revenue Recognition",
     "subGroupType": "",
     "uniqueAnchor": {
      "ancestors": [
       "span",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20191231x10xk.htm",
      "contextRef": "FD2019Q4YTD",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:RevenueFromContractWithCustomerTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R25": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20191231x10xk.htm",
      "contextRef": "FD2019Q4YTD",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:StockholdersEquityNoteDisclosureTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "2117100 - Disclosure - Shareholders' Equity",
     "role": "http://cognex.com/role/ShareholdersEquity",
     "shortName": "Shareholders' Equity",
     "subGroupType": "",
     "uniqueAnchor": {
      "ancestors": [
       "span",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20191231x10xk.htm",
      "contextRef": "FD2019Q4YTD",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:StockholdersEquityNoteDisclosureTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R26": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20191231x10xk.htm",
      "contextRef": "FD2019Q4YTD",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "2118100 - Disclosure - Stock-Based Compensation",
     "role": "http://cognex.com/role/StockBasedCompensation",
     "shortName": "Stock-Based Compensation",
     "subGroupType": "",
     "uniqueAnchor": {
      "ancestors": [
       "span",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20191231x10xk.htm",
      "contextRef": "FD2019Q4YTD",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R27": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20191231x10xk.htm",
      "contextRef": "FD2019Q4YTD",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:PensionAndOtherPostretirementBenefitsDisclosureTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "2119100 - Disclosure - Employee Savings Plan",
     "role": "http://cognex.com/role/EmployeeSavingsPlan",
     "shortName": "Employee Savings Plan",
     "subGroupType": "",
     "uniqueAnchor": {
      "ancestors": [
       "span",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20191231x10xk.htm",
      "contextRef": "FD2019Q4YTD",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:PensionAndOtherPostretirementBenefitsDisclosureTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R28": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20191231x10xk.htm",
      "contextRef": "FD2019Q4YTD",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:IncomeTaxDisclosureTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "2120100 - Disclosure - Taxes",
     "role": "http://cognex.com/role/Taxes",
     "shortName": "Taxes",
     "subGroupType": "",
     "uniqueAnchor": {
      "ancestors": [
       "span",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20191231x10xk.htm",
      "contextRef": "FD2019Q4YTD",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:IncomeTaxDisclosureTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R29": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20191231x10xk.htm",
      "contextRef": "FD2019Q4YTD",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:EarningsPerShareTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "2121100 - Disclosure - Weighted Average Shares",
     "role": "http://cognex.com/role/WeightedAverageShares",
     "shortName": "Weighted Average Shares",
     "subGroupType": "",
     "uniqueAnchor": {
      "ancestors": [
       "span",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20191231x10xk.htm",
      "contextRef": "FD2019Q4YTD",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:EarningsPerShareTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R3": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "span",
       "div",
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20191231x10xk.htm",
      "contextRef": "D2017Q4SD",
      "decimals": "INF",
      "first": true,
      "lang": null,
      "name": "us-gaap:StockholdersEquityNoteStockSplitConversionRatio1",
      "reportCount": 1,
      "unitRef": "number",
      "xsiNil": "false"
     },
     "groupType": "statement",
     "isDefault": "false",
     "longName": "1001501 - Statement - CONSOLIDATED STATEMENTS OF OPERATIONS (Parenthetical)",
     "role": "http://cognex.com/role/ConsolidatedStatementsOfOperationsParenthetical",
     "shortName": "CONSOLIDATED STATEMENTS OF OPERATIONS (Parenthetical)",
     "subGroupType": "parenthetical",
     "uniqueAnchor": null
    },
    "R30": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20191231x10xk.htm",
      "contextRef": "FD2019Q4YTD",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:SegmentReportingDisclosureTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "2122100 - Disclosure - Segment and Geographic Information",
     "role": "http://cognex.com/role/SegmentAndGeographicInformation",
     "shortName": "Segment and Geographic Information",
     "subGroupType": "",
     "uniqueAnchor": {
      "ancestors": [
       "span",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20191231x10xk.htm",
      "contextRef": "FD2019Q4YTD",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:SegmentReportingDisclosureTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R31": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20191231x10xk.htm",
      "contextRef": "FD2019Q4YTD",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:BusinessCombinationDisclosureTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "2124100 - Disclosure - Acquisitions",
     "role": "http://cognex.com/role/Acquisitions",
     "shortName": "Acquisitions",
     "subGroupType": "",
     "uniqueAnchor": {
      "ancestors": [
       "span",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20191231x10xk.htm",
      "contextRef": "FD2019Q4YTD",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:BusinessCombinationDisclosureTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R32": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20191231x10xk.htm",
      "contextRef": "FD2019Q4YTD",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:SubsequentEventsTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "2125100 - Disclosure - Subsequent Events",
     "role": "http://cognex.com/role/SubsequentEvents",
     "shortName": "Subsequent Events",
     "subGroupType": "",
     "uniqueAnchor": {
      "ancestors": [
       "span",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20191231x10xk.htm",
      "contextRef": "FD2019Q4YTD",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:SubsequentEventsTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R33": {
     "firstAnchor": {
      "ancestors": [
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20191231x10xk.htm",
      "contextRef": "FD2019Q4YTD",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:QuarterlyFinancialInformationTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "2126100 - Disclosure - Selected Quarterly Financial Data (Unaudited)",
     "role": "http://cognex.com/role/SelectedQuarterlyFinancialDataUnaudited",
     "shortName": "Selected Quarterly Financial Data (Unaudited)",
     "subGroupType": "",
     "uniqueAnchor": {
      "ancestors": [
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20191231x10xk.htm",
      "contextRef": "FD2019Q4YTD",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:QuarterlyFinancialInformationTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R34": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20191231x10xk.htm",
      "contextRef": "FD2019Q4YTD",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "srt:ScheduleOfValuationAndQualifyingAccountsDisclosureTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "2127100 - Disclosure - Schedule II - Valuation and Qualifying Accounts",
     "role": "http://cognex.com/role/ScheduleIiValuationAndQualifyingAccounts",
     "shortName": "Schedule II - Valuation and Qualifying Accounts",
     "subGroupType": "",
     "uniqueAnchor": {
      "ancestors": [
       "span",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20191231x10xk.htm",
      "contextRef": "FD2019Q4YTD",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "srt:ScheduleOfValuationAndQualifyingAccountsDisclosureTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R35": {
     "firstAnchor": {
      "ancestors": [
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20191231x10xk.htm",
      "contextRef": "FD2019Q4YTD",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "cgnx:NatureOfOperationsPolicyTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "2201201 - Disclosure - Summary of Significant Accounting Policies (Policies)",
     "role": "http://cognex.com/role/SummaryOfSignificantAccountingPoliciesPolicies",
     "shortName": "Summary of Significant Accounting Policies (Policies)",
     "subGroupType": "policies",
     "uniqueAnchor": {
      "ancestors": [
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20191231x10xk.htm",
      "contextRef": "FD2019Q4YTD",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "cgnx:NatureOfOperationsPolicyTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R36": {
     "firstAnchor": {
      "ancestors": [
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20191231x10xk.htm",
      "contextRef": "FD2019Q4YTD",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:ScheduleOfFairValueAssetsAndLiabilitiesMeasuredOnRecurringBasisTableTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "2303301 - Disclosure - Fair Value Measurements (Tables)",
     "role": "http://cognex.com/role/FairValueMeasurementsTables",
     "shortName": "Fair Value Measurements (Tables)",
     "subGroupType": "tables",
     "uniqueAnchor": {
      "ancestors": [
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20191231x10xk.htm",
      "contextRef": "FD2019Q4YTD",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:ScheduleOfFairValueAssetsAndLiabilitiesMeasuredOnRecurringBasisTableTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R37": {
     "firstAnchor": {
      "ancestors": [
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20191231x10xk.htm",
      "contextRef": "FD2019Q4YTD",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "cgnx:ComponentsOfCashCashEquivalentsAndInvestmentsTableTableTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "2304301 - Disclosure - Cash, Cash Equivalents, and Investments (Tables)",
     "role": "http://cognex.com/role/CashCashEquivalentsAndInvestmentsTables",
     "shortName": "Cash, Cash Equivalents, and Investments (Tables)",
     "subGroupType": "tables",
     "uniqueAnchor": {
      "ancestors": [
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20191231x10xk.htm",
      "contextRef": "FD2019Q4YTD",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "cgnx:ComponentsOfCashCashEquivalentsAndInvestmentsTableTableTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R38": {
     "firstAnchor": {
      "ancestors": [
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20191231x10xk.htm",
      "contextRef": "FD2019Q4YTD",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:ScheduleOfInventoryCurrentTableTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "2305301 - Disclosure - Inventories (Tables)",
     "role": "http://cognex.com/role/InventoriesTables",
     "shortName": "Inventories (Tables)",
     "subGroupType": "tables",
     "uniqueAnchor": {
      "ancestors": [
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20191231x10xk.htm",
      "contextRef": "FD2019Q4YTD",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:ScheduleOfInventoryCurrentTableTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R39": {
     "firstAnchor": {
      "ancestors": [
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20191231x10xk.htm",
      "contextRef": "FD2019Q4YTD",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:PropertyPlantAndEquipmentTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "2306301 - Disclosure - Property, Plant, and Equipment (Tables)",
     "role": "http://cognex.com/role/PropertyPlantAndEquipmentTables",
     "shortName": "Property, Plant, and Equipment (Tables)",
     "subGroupType": "tables",
     "uniqueAnchor": {
      "ancestors": [
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20191231x10xk.htm",
      "contextRef": "FD2019Q4YTD",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:PropertyPlantAndEquipmentTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R4": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "span",
       "div",
       "td",
       "tr",
       "table",
       "div",
       "div",
       "us-gaap:ScheduleOfChangeInAccountingEstimateTextBlock",
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20191231x10xk.htm",
      "contextRef": "FD2019Q4YTD",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:NetIncomeLoss",
      "reportCount": 1,
      "unitRef": "usd",
      "xsiNil": "false"
     },
     "groupType": "statement",
     "isDefault": "false",
     "longName": "1002000 - Statement - CONSOLIDATED STATEMENTS OF COMPREHENSIVE INCOME",
     "role": "http://cognex.com/role/ConsolidatedStatementsOfComprehensiveIncome",
     "shortName": "CONSOLIDATED STATEMENTS OF COMPREHENSIVE INCOME",
     "subGroupType": "",
     "uniqueAnchor": {
      "ancestors": [
       "span",
       "span",
       "div",
       "td",
       "tr",
       "table",
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20191231x10xk.htm",
      "contextRef": "FD2019Q4YTD",
      "decimals": "-3",
      "lang": null,
      "name": "us-gaap:OtherComprehensiveIncomeLossDerivativesQualifyingAsHedgesNetOfTax",
      "reportCount": 1,
      "unique": true,
      "unitRef": "usd",
      "xsiNil": "false"
     }
    },
    "R40": {
     "firstAnchor": {
      "ancestors": [
       "ix:continuation",
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20191231x10xk.htm",
      "contextRef": "FD2019Q4YTD",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:LesseeOperatingLeaseLiabilityMaturityTableTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "2307301 - Disclosure - Leases (Tables)",
     "role": "http://cognex.com/role/LeasesTables",
     "shortName": "Leases (Tables)",
     "subGroupType": "tables",
     "uniqueAnchor": {
      "ancestors": [
       "ix:continuation",
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20191231x10xk.htm",
      "contextRef": "FD2019Q4YTD",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:LesseeOperatingLeaseLiabilityMaturityTableTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R41": {
     "firstAnchor": {
      "ancestors": [
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20191231x10xk.htm",
      "contextRef": "FD2019Q4YTD",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:ScheduleOfGoodwillTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "2308301 - Disclosure - Goodwill (Tables)",
     "role": "http://cognex.com/role/GoodwillTables",
     "shortName": "Goodwill (Tables)",
     "subGroupType": "tables",
     "uniqueAnchor": {
      "ancestors": [
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20191231x10xk.htm",
      "contextRef": "FD2019Q4YTD",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:ScheduleOfGoodwillTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R42": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "div",
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20191231x10xk.htm",
      "contextRef": "FD2019Q4YTD",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "2309301 - Disclosure - Intangible Assets (Tables)",
     "role": "http://cognex.com/role/IntangibleAssetsTables",
     "shortName": "Intangible Assets (Tables)",
     "subGroupType": "tables",
     "uniqueAnchor": {
      "ancestors": [
       "span",
       "div",
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20191231x10xk.htm",
      "contextRef": "FD2019Q4YTD",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R43": {
     "firstAnchor": {
      "ancestors": [
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20191231x10xk.htm",
      "contextRef": "FD2019Q4YTD",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:ScheduleOfAccruedLiabilitiesTableTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "2310301 - Disclosure - Accrued Expenses (Tables)",
     "role": "http://cognex.com/role/AccruedExpensesTables",
     "shortName": "Accrued Expenses (Tables)",
     "subGroupType": "tables",
     "uniqueAnchor": {
      "ancestors": [
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20191231x10xk.htm",
      "contextRef": "FD2019Q4YTD",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:ScheduleOfAccruedLiabilitiesTableTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R44": {
     "firstAnchor": {
      "ancestors": [
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20191231x10xk.htm",
      "contextRef": "FD2019Q4YTD",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:ScheduleOfNotionalAmountsOfOutstandingDerivativePositionsTableTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "2314301 - Disclosure - Derivative Instruments (Tables)",
     "role": "http://cognex.com/role/DerivativeInstrumentsTables",
     "shortName": "Derivative Instruments (Tables)",
     "subGroupType": "tables",
     "uniqueAnchor": {
      "ancestors": [
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20191231x10xk.htm",
      "contextRef": "FD2019Q4YTD",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:ScheduleOfNotionalAmountsOfOutstandingDerivativePositionsTableTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R45": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "div",
       "us-gaap:DisaggregationOfRevenueTableTextBlock",
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20191231x10xk.htm",
      "contextRef": "FD2019Q4YTD",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:ScheduleOfNewAccountingPronouncementsAndChangesInAccountingPrinciplesTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "2316301 - Disclosure - Revenue Recognition (Tables)",
     "role": "http://cognex.com/role/RevenueRecognitionTables",
     "shortName": "Revenue Recognition (Tables)",
     "subGroupType": "tables",
     "uniqueAnchor": {
      "ancestors": [
       "span",
       "div",
       "us-gaap:DisaggregationOfRevenueTableTextBlock",
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20191231x10xk.htm",
      "contextRef": "FD2019Q4YTD",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:ScheduleOfNewAccountingPronouncementsAndChangesInAccountingPrinciplesTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R46": {
     "firstAnchor": {
      "ancestors": [
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20191231x10xk.htm",
      "contextRef": "FD2019Q4YTD",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "2318301 - Disclosure - Stock-Based Compensation (Tables)",
     "role": "http://cognex.com/role/StockBasedCompensationTables",
     "shortName": "Stock-Based Compensation (Tables)",
     "subGroupType": "tables",
     "uniqueAnchor": {
      "ancestors": [
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20191231x10xk.htm",
      "contextRef": "FD2019Q4YTD",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R47": {
     "firstAnchor": {
      "ancestors": [
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20191231x10xk.htm",
      "contextRef": "FD2019Q4YTD",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "2320301 - Disclosure - Taxes (Tables)",
     "role": "http://cognex.com/role/TaxesTables",
     "shortName": "Taxes (Tables)",
     "subGroupType": "tables",
     "uniqueAnchor": {
      "ancestors": [
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20191231x10xk.htm",
      "contextRef": "FD2019Q4YTD",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R48": {
     "firstAnchor": {
      "ancestors": [
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20191231x10xk.htm",
      "contextRef": "FD2019Q4YTD",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:ScheduleOfWeightedAverageNumberOfSharesTableTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "2321301 - Disclosure - Weighted Average Shares (Tables)",
     "role": "http://cognex.com/role/WeightedAverageSharesTables",
     "shortName": "Weighted Average Shares (Tables)",
     "subGroupType": "tables",
     "uniqueAnchor": {
      "ancestors": [
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20191231x10xk.htm",
      "contextRef": "FD2019Q4YTD",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:ScheduleOfWeightedAverageNumberOfSharesTableTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R49": {
     "firstAnchor": {
      "ancestors": [
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20191231x10xk.htm",
      "contextRef": "FD2019Q4YTD",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsByGeographicalAreasTableTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "2322301 - Disclosure - Segment and Geographic Information (Tables)",
     "role": "http://cognex.com/role/SegmentAndGeographicInformationTables",
     "shortName": "Segment and Geographic Information (Tables)",
     "subGroupType": "tables",
     "uniqueAnchor": {
      "ancestors": [
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20191231x10xk.htm",
      "contextRef": "FD2019Q4YTD",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsByGeographicalAreasTableTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R5": {
     "firstAnchor": null,
     "groupType": "statement",
     "isDefault": "false",
     "longName": "1002501 - Statement - CONSOLIDATED STATEMENTS OF COMPREHENSIVE INCOME (Parenthetical)",
     "role": "http://cognex.com/role/ConsolidatedStatementsOfComprehensiveIncomeParenthetical",
     "shortName": "CONSOLIDATED STATEMENTS OF COMPREHENSIVE INCOME (Parenthetical)",
     "subGroupType": "parenthetical",
     "uniqueAnchor": null
    },
    "R50": {
     "firstAnchor": {
      "ancestors": [
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20191231x10xk.htm",
      "contextRef": "FD2019Q4YTD",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:ScheduleOfIndefiniteLivedIntangibleAssetsAcquiredAsPartOfBusinessCombinationTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "2324301 - Disclosure - Acquisitions Acquisitions - (Tables)",
     "role": "http://cognex.com/role/AcquisitionsAcquisitionsTables",
     "shortName": "Acquisitions Acquisitions - (Tables)",
     "subGroupType": "tables",
     "uniqueAnchor": {
      "ancestors": [
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20191231x10xk.htm",
      "contextRef": "FD2019Q4YTD",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:ScheduleOfIndefiniteLivedIntangibleAssetsAcquiredAsPartOfBusinessCombinationTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R51": {
     "firstAnchor": {
      "ancestors": [
       "us-gaap:QuarterlyFinancialInformationTextBlock",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20191231x10xk.htm",
      "contextRef": "FD2019Q4YTD",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:ScheduleOfQuarterlyFinancialInformationTableTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "2326301 - Disclosure - Selected Quarterly Financial Data (Unaudited) (Tables)",
     "role": "http://cognex.com/role/SelectedQuarterlyFinancialDataUnauditedTables",
     "shortName": "Selected Quarterly Financial Data (Unaudited) (Tables)",
     "subGroupType": "tables",
     "uniqueAnchor": {
      "ancestors": [
       "us-gaap:QuarterlyFinancialInformationTextBlock",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20191231x10xk.htm",
      "contextRef": "FD2019Q4YTD",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:ScheduleOfQuarterlyFinancialInformationTableTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R52": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "span",
       "div",
       "us-gaap:CashAndCashEquivalentsPolicyTextBlock",
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20191231x10xk.htm",
      "contextRef": "FD2019Q4YTD",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "cgnx:AvailableforsaleSecuritiesDebtMaturitiesEffectiveTermMaximum",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "2401402 - Disclosure - Summary of Significant Accounting Policies - Additional Information (Detail)",
     "role": "http://cognex.com/role/SummaryOfSignificantAccountingPoliciesAdditionalInformationDetail",
     "shortName": "Summary of Significant Accounting Policies - Additional Information (Detail)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "span",
       "span",
       "div",
       "us-gaap:CashAndCashEquivalentsPolicyTextBlock",
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20191231x10xk.htm",
      "contextRef": "FD2019Q4YTD",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "cgnx:AvailableforsaleSecuritiesDebtMaturitiesEffectiveTermMaximum",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R53": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "span",
       "div",
       "us-gaap:IntangibleAssetsFiniteLivedPolicy",
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20191231x10xk.htm",
      "contextRef": "FD2019Q4YTD_srt_RangeAxis_srt_MaximumMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_DistributionRightsMember",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:FiniteLivedIntangibleAssetUsefulLife",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "2401404 - Disclosure - Summary of Significant Accounting Policies - Intangible Assets (Details)",
     "role": "http://cognex.com/role/SummaryOfSignificantAccountingPoliciesIntangibleAssetsDetails",
     "shortName": "Summary of Significant Accounting Policies - Intangible Assets (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "span",
       "span",
       "div",
       "us-gaap:IntangibleAssetsFiniteLivedPolicy",
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20191231x10xk.htm",
      "contextRef": "FD2019Q4YTD_srt_RangeAxis_srt_MaximumMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_DistributionRightsMember",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:FiniteLivedIntangibleAssetUsefulLife",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R54": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "span",
       "div",
       "us-gaap:StandardProductWarrantyPolicy",
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20191231x10xk.htm",
      "contextRef": "FD2019Q4YTD_srt_RangeAxis_srt_MaximumMember",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "cgnx:ProductWarrantyPeriod",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "2401405 - Disclosure - Summary of Significant Accounting Policies - Warranty (Details)",
     "role": "http://cognex.com/role/SummaryOfSignificantAccountingPoliciesWarrantyDetails",
     "shortName": "Summary of Significant Accounting Policies - Warranty (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "span",
       "span",
       "div",
       "us-gaap:StandardProductWarrantyPolicy",
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20191231x10xk.htm",
      "contextRef": "FD2019Q4YTD_srt_RangeAxis_srt_MaximumMember",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "cgnx:ProductWarrantyPeriod",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R55": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "span",
       "div",
       "ix:continuation",
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20191231x10xk.htm",
      "contextRef": "FD2019Q4YTD_srt_RangeAxis_srt_MinimumMember",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "cgnx:RevenuePaymentTerms",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "2401406 - Disclosure - Summary of Significant Accounting Policies Summary of Significant Accounting Policies - Revenue Recognition (Details)",
     "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",
       "span",
       "div",
       "ix:continuation",
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20191231x10xk.htm",
      "contextRef": "FD2019Q4YTD_srt_RangeAxis_srt_MinimumMember",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "cgnx:RevenuePaymentTerms",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R56": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "span",
       "div",
       "us-gaap:AdvertisingCostsPolicyTextBlock",
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20191231x10xk.htm",
      "contextRef": "FD2019Q4YTD",
      "decimals": "0",
      "first": true,
      "lang": null,
      "name": "us-gaap:AdvertisingExpense",
      "reportCount": 1,
      "unique": true,
      "unitRef": "usd",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "2401407 - Disclosure - Summary of Significant Accounting Policies - Advertising Costs (Details)",
     "role": "http://cognex.com/role/SummaryOfSignificantAccountingPoliciesAdvertisingCostsDetails",
     "shortName": "Summary of Significant Accounting Policies - Advertising Costs (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "span",
       "span",
       "div",
       "us-gaap:AdvertisingCostsPolicyTextBlock",
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20191231x10xk.htm",
      "contextRef": "FD2019Q4YTD",
      "decimals": "0",
      "first": true,
      "lang": null,
      "name": "us-gaap:AdvertisingExpense",
      "reportCount": 1,
      "unique": true,
      "unitRef": "usd",
      "xsiNil": "false"
     }
    },
    "R57": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "span",
       "div",
       "us-gaap:ComprehensiveIncomePolicyPolicyTextBlock",
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20191231x10xk.htm",
      "contextRef": "FI2019Q4",
      "decimals": "0",
      "first": true,
      "lang": null,
      "name": "us-gaap:AccumulatedOtherComprehensiveIncomeLossForeignCurrencyTranslationAdjustmentNetOfTax",
      "reportCount": 1,
      "unique": true,
      "unitRef": "usd",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "2401408 - Disclosure - Summary of Significant Accounting Policies - Comprehensive Income (Loss) (Details)",
     "role": "http://cognex.com/role/SummaryOfSignificantAccountingPoliciesComprehensiveIncomeLossDetails",
     "shortName": "Summary of Significant Accounting Policies - Comprehensive Income (Loss) (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "span",
       "span",
       "div",
       "us-gaap:ComprehensiveIncomePolicyPolicyTextBlock",
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20191231x10xk.htm",
      "contextRef": "FI2019Q4",
      "decimals": "0",
      "first": true,
      "lang": null,
      "name": "us-gaap:AccumulatedOtherComprehensiveIncomeLossForeignCurrencyTranslationAdjustmentNetOfTax",
      "reportCount": 1,
      "unique": true,
      "unitRef": "usd",
      "xsiNil": "false"
     }
    },
    "R58": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "span",
       "div",
       "td",
       "tr",
       "table",
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20191231x10xk.htm",
      "contextRef": "FI2019Q4",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:OperatingLeaseRightOfUseAsset",
      "reportCount": 1,
      "unitRef": "usd",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "2402402 - Disclosure - New Pronouncements (Details)",
     "role": "http://cognex.com/role/NewPronouncementsDetails",
     "shortName": "New Pronouncements (Details)",
     "subGroupType": "details",
     "uniqueAnchor": null
    },
    "R59": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "span",
       "div",
       "td",
       "tr",
       "table",
       "div",
       "div",
       "us-gaap:ScheduleOfFairValueAssetsAndLiabilitiesMeasuredOnRecurringBasisTableTextBlock",
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20191231x10xk.htm",
      "contextRef": "FI2019Q4_us-gaap_FairValueByFairValueHierarchyLevelAxis_us-gaap_FairValueInputsLevel1Member_us-gaap_FairValueByMeasurementFrequencyAxis_us-gaap_FairValueMeasurementsRecurringMember",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "cgnx:MoneyMarketInstrumentsFairValueDisclosure",
      "reportCount": 1,
      "unique": true,
      "unitRef": "usd",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "2403402 - Disclosure - Fair Value Measurements - Assets and Liabilities Measured at Fair Value on a Recurring Basis (Detail)",
     "role": "http://cognex.com/role/FairValueMeasurementsAssetsAndLiabilitiesMeasuredAtFairValueOnRecurringBasisDetail",
     "shortName": "Fair Value Measurements - Assets and Liabilities Measured at Fair Value on a Recurring Basis (Detail)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "span",
       "span",
       "div",
       "td",
       "tr",
       "table",
       "div",
       "div",
       "us-gaap:ScheduleOfFairValueAssetsAndLiabilitiesMeasuredOnRecurringBasisTableTextBlock",
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20191231x10xk.htm",
      "contextRef": "FI2019Q4_us-gaap_FairValueByFairValueHierarchyLevelAxis_us-gaap_FairValueInputsLevel1Member_us-gaap_FairValueByMeasurementFrequencyAxis_us-gaap_FairValueMeasurementsRecurringMember",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "cgnx:MoneyMarketInstrumentsFairValueDisclosure",
      "reportCount": 1,
      "unique": true,
      "unitRef": "usd",
      "xsiNil": "false"
     }
    },
    "R6": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "span",
       "div",
       "td",
       "tr",
       "table",
       "div",
       "div",
       "cgnx:ComponentsOfCashCashEquivalentsAndInvestmentsTableTableTextBlock",
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20191231x10xk.htm",
      "contextRef": "FI2019Q4",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:CashAndCashEquivalentsAtCarryingValue",
      "reportCount": 1,
      "unitRef": "usd",
      "xsiNil": "false"
     },
     "groupType": "statement",
     "isDefault": "false",
     "longName": "1003000 - Statement - CONSOLIDATED BALANCE SHEETS",
     "role": "http://cognex.com/role/ConsolidatedBalanceSheets",
     "shortName": "CONSOLIDATED BALANCE SHEETS",
     "subGroupType": "",
     "uniqueAnchor": {
      "ancestors": [
       "span",
       "span",
       "div",
       "td",
       "tr",
       "table",
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20191231x10xk.htm",
      "contextRef": "FI2019Q4",
      "decimals": "-3",
      "lang": null,
      "name": "us-gaap:AccountsReceivableNetCurrent",
      "reportCount": 1,
      "unique": true,
      "unitRef": "usd",
      "xsiNil": "false"
     }
    },
    "R60": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "span",
       "div",
       "td",
       "tr",
       "table",
       "div",
       "div",
       "us-gaap:FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationTextBlock",
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20191231x10xk.htm",
      "contextRef": "FI2018Q4",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue",
      "reportCount": 1,
      "unitRef": "usd",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "2403403 - Disclosure - Fair Value Measurements - Liabilities Measured on Recurring Basis, Unobservable Input Reconciliation (Details)",
     "role": "http://cognex.com/role/FairValueMeasurementsLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationDetails",
     "shortName": "Fair Value Measurements - Liabilities Measured on Recurring Basis, Unobservable Input Reconciliation (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "span",
       "span",
       "div",
       "td",
       "tr",
       "table",
       "div",
       "div",
       "us-gaap:FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationTextBlock",
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20191231x10xk.htm",
      "contextRef": "FI2019Q4",
      "decimals": "-3",
      "lang": null,
      "name": "us-gaap:FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue",
      "reportCount": 1,
      "unique": true,
      "unitRef": "usd",
      "xsiNil": "false"
     }
    },
    "R61": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "span",
       "div",
       "td",
       "tr",
       "table",
       "div",
       "div",
       "cgnx:ComponentsOfCashCashEquivalentsAndInvestmentsTableTableTextBlock",
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20191231x10xk.htm",
      "contextRef": "FI2019Q4",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:Cash",
      "reportCount": 1,
      "unitRef": "usd",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "2404402 - Disclosure - Cash, Cash Equivalents and Investments - Components of Cash, Cash Equivalents and Investments (Detail)",
     "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",
       "span",
       "div",
       "td",
       "tr",
       "table",
       "div",
       "div",
       "cgnx:ComponentsOfCashCashEquivalentsAndInvestmentsTableTableTextBlock",
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20191231x10xk.htm",
      "contextRef": "FI2019Q4",
      "decimals": "-3",
      "lang": null,
      "name": "us-gaap:MoneyMarketFundsAtCarryingValue",
      "reportCount": 1,
      "unique": true,
      "unitRef": "usd",
      "xsiNil": "false"
     }
    },
    "R62": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "span",
       "div",
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20191231x10xk.htm",
      "contextRef": "FI2019Q4",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "cgnx:DueFromForeignBanks",
      "reportCount": 1,
      "unique": true,
      "unitRef": "usd",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "2404403 - Disclosure - Cash, Cash Equivalents and Investments - Additional Information (Detail)",
     "role": "http://cognex.com/role/CashCashEquivalentsAndInvestmentsAdditionalInformationDetail",
     "shortName": "Cash, Cash Equivalents and Investments - Additional Information (Detail)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "span",
       "span",
       "div",
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20191231x10xk.htm",
      "contextRef": "FI2019Q4",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "cgnx:DueFromForeignBanks",
      "reportCount": 1,
      "unique": true,
      "unitRef": "usd",
      "xsiNil": "false"
     }
    },
    "R63": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "span",
       "div",
       "td",
       "tr",
       "table",
       "div",
       "div",
       "us-gaap:ScheduleOfAvailableForSaleSecuritiesReconciliationTableTextBlock",
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20191231x10xk.htm",
      "contextRef": "FI2019Q4",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:AvailableForSaleDebtSecuritiesAmortizedCostBasis",
      "reportCount": 1,
      "unique": true,
      "unitRef": "usd",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "2404404 - Disclosure - Cash, Cash Equivalents and Investments - Amortized Cost to Fair Value (Detail)",
     "role": "http://cognex.com/role/CashCashEquivalentsAndInvestmentsAmortizedCostToFairValueDetail",
     "shortName": "Cash, Cash Equivalents and Investments - Amortized Cost to Fair Value (Detail)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "span",
       "span",
       "div",
       "td",
       "tr",
       "table",
       "div",
       "div",
       "us-gaap:ScheduleOfAvailableForSaleSecuritiesReconciliationTableTextBlock",
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20191231x10xk.htm",
      "contextRef": "FI2019Q4",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:AvailableForSaleDebtSecuritiesAmortizedCostBasis",
      "reportCount": 1,
      "unique": true,
      "unitRef": "usd",
      "xsiNil": "false"
     }
    },
    "R64": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "span",
       "div",
       "td",
       "tr",
       "table",
       "div",
       "div",
       "us-gaap:ScheduleOfUnrealizedLossOnInvestmentsTableTextBlock",
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20191231x10xk.htm",
      "contextRef": "FI2019Q4",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:AvailableForSaleSecuritiesContinuousUnrealizedLossPositionLessThanTwelveMonthsFairValue",
      "reportCount": 1,
      "unique": true,
      "unitRef": "usd",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "2404405 - Disclosure - Cash, Cash Equivalents and Investments - Gross Unrealized Losses and Fair Value for Available-for-Sale Investments (Detail)",
     "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",
       "span",
       "div",
       "td",
       "tr",
       "table",
       "div",
       "div",
       "us-gaap:ScheduleOfUnrealizedLossOnInvestmentsTableTextBlock",
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20191231x10xk.htm",
      "contextRef": "FI2019Q4",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:AvailableForSaleSecuritiesContinuousUnrealizedLossPositionLessThanTwelveMonthsFairValue",
      "reportCount": 1,
      "unique": true,
      "unitRef": "usd",
      "xsiNil": "false"
     }
    },
    "R65": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "span",
       "div",
       "td",
       "tr",
       "table",
       "div",
       "div",
       "ix:continuation",
       "us-gaap:InvestmentsClassifiedByContractualMaturityDateTableTextBlock",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20191231x10xk.htm",
      "contextRef": "FI2019Q4",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:AvailableForSaleSecuritiesDebtMaturitiesWithinOneYearFairValue",
      "reportCount": 1,
      "unique": true,
      "unitRef": "usd",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "2404406 - Disclosure - Cash, Cash Equivalents and Investments - Effective Maturity Dates of Available-for-Sale Investments (Detail)",
     "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",
       "span",
       "div",
       "td",
       "tr",
       "table",
       "div",
       "div",
       "ix:continuation",
       "us-gaap:InvestmentsClassifiedByContractualMaturityDateTableTextBlock",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20191231x10xk.htm",
      "contextRef": "FI2019Q4",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:AvailableForSaleSecuritiesDebtMaturitiesWithinOneYearFairValue",
      "reportCount": 1,
      "unique": true,
      "unitRef": "usd",
      "xsiNil": "false"
     }
    },
    "R66": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "span",
       "div",
       "td",
       "tr",
       "table",
       "div",
       "div",
       "ix:continuation",
       "us-gaap:ScheduleOfInventoryCurrentTableTextBlock",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20191231x10xk.htm",
      "contextRef": "FI2019Q4",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:InventoryRawMaterialsNetOfReserves",
      "reportCount": 1,
      "unique": true,
      "unitRef": "usd",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "2405402 - Disclosure - Inventories - Inventories (Detail)",
     "role": "http://cognex.com/role/InventoriesInventoriesDetail",
     "shortName": "Inventories - Inventories (Detail)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "span",
       "span",
       "div",
       "td",
       "tr",
       "table",
       "div",
       "div",
       "ix:continuation",
       "us-gaap:ScheduleOfInventoryCurrentTableTextBlock",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20191231x10xk.htm",
      "contextRef": "FI2019Q4",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:InventoryRawMaterialsNetOfReserves",
      "reportCount": 1,
      "unique": true,
      "unitRef": "usd",
      "xsiNil": "false"
     }
    },
    "R67": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "span",
       "div",
       "td",
       "tr",
       "table",
       "div",
       "div",
       "us-gaap:PropertyPlantAndEquipmentTextBlock",
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20191231x10xk.htm",
      "contextRef": "FI2019Q4",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:PropertyPlantAndEquipmentGross",
      "reportCount": 1,
      "unique": true,
      "unitRef": "usd",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "2406402 - Disclosure - Property, Plant, and Equipment - Property, Plant, and Equipment (Detail)",
     "role": "http://cognex.com/role/PropertyPlantAndEquipmentPropertyPlantAndEquipmentDetail",
     "shortName": "Property, Plant, and Equipment - Property, Plant, and Equipment (Detail)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "span",
       "span",
       "div",
       "td",
       "tr",
       "table",
       "div",
       "div",
       "us-gaap:PropertyPlantAndEquipmentTextBlock",
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20191231x10xk.htm",
      "contextRef": "FI2019Q4",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:PropertyPlantAndEquipmentGross",
      "reportCount": 1,
      "unique": true,
      "unitRef": "usd",
      "xsiNil": "false"
     }
    },
    "R68": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "span",
       "div",
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20191231x10xk.htm",
      "contextRef": "FD2019Q4YTD",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:PropertyPlantAndEquipmentDisposals",
      "reportCount": 1,
      "unique": true,
      "unitRef": "usd",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "2406403 - Disclosure - Property, Plant and Equipment - Additional Information (Details)",
     "role": "http://cognex.com/role/PropertyPlantAndEquipmentAdditionalInformationDetails",
     "shortName": "Property, Plant and Equipment - Additional Information (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "span",
       "span",
       "div",
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20191231x10xk.htm",
      "contextRef": "FD2019Q4YTD",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:PropertyPlantAndEquipmentDisposals",
      "reportCount": 1,
      "unique": true,
      "unitRef": "usd",
      "xsiNil": "false"
     }
    },
    "R69": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "span",
       "div",
       "td",
       "tr",
       "table",
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20191231x10xk.htm",
      "contextRef": "FI2019Q4",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:OperatingLeaseRightOfUseAsset",
      "reportCount": 1,
      "unitRef": "usd",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "2407402 - Disclosure - Leases (Details)",
     "role": "http://cognex.com/role/LeasesDetails",
     "shortName": "Leases (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "span",
       "span",
       "div",
       "ix:continuation",
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20191231x10xk.htm",
      "contextRef": "FD2019Q4YTD",
      "decimals": "-3",
      "lang": null,
      "name": "us-gaap:OperatingLeaseExpense",
      "reportCount": 1,
      "unique": true,
      "unitRef": "usd",
      "xsiNil": "false"
     }
    },
    "R7": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "span",
       "div",
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20191231x10xk.htm",
      "contextRef": "FI2019Q4",
      "decimals": "INF",
      "first": true,
      "lang": null,
      "name": "us-gaap:PreferredStockParOrStatedValuePerShare",
      "reportCount": 1,
      "unitRef": "usdPerShare",
      "xsiNil": "false"
     },
     "groupType": "statement",
     "isDefault": "false",
     "longName": "1003501 - Statement - CONSOLIDATED BALANCE SHEETS (Parenthetical)",
     "role": "http://cognex.com/role/ConsolidatedBalanceSheetsParenthetical",
     "shortName": "CONSOLIDATED BALANCE SHEETS (Parenthetical)",
     "subGroupType": "parenthetical",
     "uniqueAnchor": null
    },
    "R70": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "span",
       "div",
       "td",
       "tr",
       "table",
       "div",
       "div",
       "us-gaap:LesseeOperatingLeaseLiabilityMaturityTableTextBlock",
       "ix:continuation",
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20191231x10xk.htm",
      "contextRef": "FI2019Q4",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths",
      "reportCount": 1,
      "unique": true,
      "unitRef": "usd",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "2407403 - Disclosure - Leases - Schedule of Payments (Details)",
     "role": "http://cognex.com/role/LeasesScheduleOfPaymentsDetails",
     "shortName": "Leases - Schedule of Payments (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "span",
       "span",
       "div",
       "td",
       "tr",
       "table",
       "div",
       "div",
       "us-gaap:LesseeOperatingLeaseLiabilityMaturityTableTextBlock",
       "ix:continuation",
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20191231x10xk.htm",
      "contextRef": "FI2019Q4",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths",
      "reportCount": 1,
      "unique": true,
      "unitRef": "usd",
      "xsiNil": "false"
     }
    },
    "R71": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "span",
       "div",
       "td",
       "tr",
       "table",
       "div",
       "div",
       "us-gaap:LessorOperatingLeasePaymentsToBeReceivedMaturityTableTextBlock",
       "ix:continuation",
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20191231x10xk.htm",
      "contextRef": "FI2019Q4",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:LessorOperatingLeasePaymentsToBeReceivedNextTwelveMonths",
      "reportCount": 1,
      "unique": true,
      "unitRef": "usd",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "2407404 - Disclosure - Leases - Schedule of Rental Receipts (Details)",
     "role": "http://cognex.com/role/LeasesScheduleOfRentalReceiptsDetails",
     "shortName": "Leases - Schedule of Rental Receipts (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "span",
       "span",
       "div",
       "td",
       "tr",
       "table",
       "div",
       "div",
       "us-gaap:LessorOperatingLeasePaymentsToBeReceivedMaturityTableTextBlock",
       "ix:continuation",
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20191231x10xk.htm",
      "contextRef": "FI2019Q4",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:LessorOperatingLeasePaymentsToBeReceivedNextTwelveMonths",
      "reportCount": 1,
      "unique": true,
      "unitRef": "usd",
      "xsiNil": "false"
     }
    },
    "R72": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "span",
       "div",
       "td",
       "tr",
       "table",
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20191231x10xk.htm",
      "contextRef": "FI2018Q4",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:Goodwill",
      "reportCount": 1,
      "unitRef": "usd",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "2408402 - Disclosure - Goodwill - Changes in the Carrying Value of Goodwill (Detail)",
     "role": "http://cognex.com/role/GoodwillChangesInCarryingValueOfGoodwillDetail",
     "shortName": "Goodwill - Changes in the Carrying Value of Goodwill (Detail)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "span",
       "span",
       "div",
       "td",
       "tr",
       "table",
       "div",
       "div",
       "us-gaap:ScheduleOfGoodwillTextBlock",
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20191231x10xk.htm",
      "contextRef": "FD2019Q4YTD",
      "decimals": "-3",
      "lang": null,
      "name": "us-gaap:GoodwillForeignCurrencyTranslationGainLoss",
      "reportCount": 1,
      "unique": true,
      "unitRef": "usd",
      "xsiNil": "false"
     }
    },
    "R73": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "span",
       "div",
       "td",
       "tr",
       "table",
       "div",
       "div",
       "ix:continuation",
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20191231x10xk.htm",
      "contextRef": "FI2019Q4",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:FiniteLivedIntangibleAssetsGross",
      "reportCount": 1,
      "unique": true,
      "unitRef": "usd",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "2409402 - Disclosure - Intangible Assets - Amortized Intangible Assets (Detail)",
     "role": "http://cognex.com/role/IntangibleAssetsAmortizedIntangibleAssetsDetail",
     "shortName": "Intangible Assets - Amortized Intangible Assets (Detail)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "span",
       "span",
       "div",
       "td",
       "tr",
       "table",
       "div",
       "div",
       "ix:continuation",
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20191231x10xk.htm",
      "contextRef": "FI2019Q4",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:FiniteLivedIntangibleAssetsGross",
      "reportCount": 1,
      "unique": true,
      "unitRef": "usd",
      "xsiNil": "false"
     }
    },
    "R74": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "span",
       "div",
       "td",
       "tr",
       "table",
       "div",
       "div",
       "us-gaap:ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock",
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20191231x10xk.htm",
      "contextRef": "FI2019Q4",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths",
      "reportCount": 1,
      "unique": true,
      "unitRef": "usd",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "2409403 - Disclosure - Intangible Assets - Estimated Amortization Expense Succeeding Fiscal Years (Detail)",
     "role": "http://cognex.com/role/IntangibleAssetsEstimatedAmortizationExpenseSucceedingFiscalYearsDetail",
     "shortName": "Intangible Assets - Estimated Amortization Expense Succeeding Fiscal Years (Detail)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "span",
       "span",
       "div",
       "td",
       "tr",
       "table",
       "div",
       "div",
       "us-gaap:ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock",
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20191231x10xk.htm",
      "contextRef": "FI2019Q4",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths",
      "reportCount": 1,
      "unique": true,
      "unitRef": "usd",
      "xsiNil": "false"
     }
    },
    "R75": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "span",
       "div",
       "td",
       "tr",
       "table",
       "div",
       "div",
       "us-gaap:ScheduleOfAccruedLiabilitiesTableTextBlock",
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20191231x10xk.htm",
      "contextRef": "FI2019Q4",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:AccruedSalariesCurrent",
      "reportCount": 1,
      "unique": true,
      "unitRef": "usd",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "2410402 - Disclosure - Accrued Expenses - Constituents of Accrued Expenses (Detail)",
     "role": "http://cognex.com/role/AccruedExpensesConstituentsOfAccruedExpensesDetail",
     "shortName": "Accrued Expenses - Constituents of Accrued Expenses (Detail)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "span",
       "span",
       "div",
       "td",
       "tr",
       "table",
       "div",
       "div",
       "us-gaap:ScheduleOfAccruedLiabilitiesTableTextBlock",
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20191231x10xk.htm",
      "contextRef": "FI2019Q4",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:AccruedSalariesCurrent",
      "reportCount": 1,
      "unique": true,
      "unitRef": "usd",
      "xsiNil": "false"
     }
    },
    "R76": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "span",
       "div",
       "td",
       "tr",
       "table",
       "div",
       "div",
       "us-gaap:ScheduleOfProductWarrantyLiabilityTableTextBlock",
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20191231x10xk.htm",
      "contextRef": "FI2018Q4",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:ProductWarrantyAccrual",
      "reportCount": 1,
      "unitRef": "usd",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "2410403 - Disclosure - Accrued Expenses - Changes in Warranty Obligations (Detail)",
     "role": "http://cognex.com/role/AccruedExpensesChangesInWarrantyObligationsDetail",
     "shortName": "Accrued Expenses - Changes in Warranty Obligations (Detail)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "span",
       "span",
       "div",
       "td",
       "tr",
       "table",
       "div",
       "div",
       "us-gaap:ScheduleOfProductWarrantyLiabilityTableTextBlock",
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20191231x10xk.htm",
      "contextRef": "FI2017Q4",
      "decimals": "-3",
      "lang": null,
      "name": "us-gaap:ProductWarrantyAccrual",
      "reportCount": 1,
      "unique": true,
      "unitRef": "usd",
      "xsiNil": "false"
     }
    },
    "R77": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "span",
       "div",
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20191231x10xk.htm",
      "contextRef": "FI2019Q4",
      "decimals": "0",
      "first": true,
      "lang": null,
      "name": "us-gaap:PurchaseCommitmentRemainingMinimumAmountCommitted",
      "reportCount": 1,
      "unique": true,
      "unitRef": "usd",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "2412401 - Disclosure - Commitments and Contingencies - Additional Information (Detail)",
     "role": "http://cognex.com/role/CommitmentsAndContingenciesAdditionalInformationDetail",
     "shortName": "Commitments and Contingencies - Additional Information (Detail)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "span",
       "span",
       "div",
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20191231x10xk.htm",
      "contextRef": "FI2019Q4",
      "decimals": "0",
      "first": true,
      "lang": null,
      "name": "us-gaap:PurchaseCommitmentRemainingMinimumAmountCommitted",
      "reportCount": 1,
      "unique": true,
      "unitRef": "usd",
      "xsiNil": "false"
     }
    },
    "R78": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "span",
       "div",
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20191231x10xk.htm",
      "contextRef": "FD2019Q4YTD_us-gaap_HedgingDesignationAxis_us-gaap_NondesignatedMember",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:MaximumRemainingMaturityOfForeignCurrencyDerivatives1",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "2414402 - Disclosure - Derivative Instruments - Additional Details (Details)",
     "role": "http://cognex.com/role/DerivativeInstrumentsAdditionalDetailsDetails",
     "shortName": "Derivative Instruments - Additional Details (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "span",
       "span",
       "div",
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20191231x10xk.htm",
      "contextRef": "FD2019Q4YTD_us-gaap_HedgingDesignationAxis_us-gaap_NondesignatedMember",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:MaximumRemainingMaturityOfForeignCurrencyDerivatives1",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R79": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "span",
       "div",
       "td",
       "tr",
       "table",
       "div",
       "div",
       "us-gaap:ScheduleOfNotionalAmountsOfOutstandingDerivativePositionsTableTextBlock",
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20191231x10xk.htm",
      "contextRef": "FI2019Q4_srt_CurrencyAxis_currency_KRW_us-gaap_HedgingDesignationAxis_us-gaap_NondesignatedMember",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:DerivativeAssetNotionalAmount",
      "reportCount": 1,
      "unique": true,
      "unitRef": "usd",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "2414403 - Disclosure - Derivative Instruments - Outstanding Forward Contracts (Details)",
     "role": "http://cognex.com/role/DerivativeInstrumentsOutstandingForwardContractsDetails",
     "shortName": "Derivative Instruments - Outstanding Forward Contracts (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "span",
       "span",
       "div",
       "td",
       "tr",
       "table",
       "div",
       "div",
       "us-gaap:ScheduleOfNotionalAmountsOfOutstandingDerivativePositionsTableTextBlock",
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20191231x10xk.htm",
      "contextRef": "FI2019Q4_srt_CurrencyAxis_currency_KRW_us-gaap_HedgingDesignationAxis_us-gaap_NondesignatedMember",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:DerivativeAssetNotionalAmount",
      "reportCount": 1,
      "unique": true,
      "unitRef": "usd",
      "xsiNil": "false"
     }
    },
    "R8": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "span",
       "div",
       "td",
       "tr",
       "table",
       "div",
       "div",
       "us-gaap:ScheduleOfChangeInAccountingEstimateTextBlock",
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20191231x10xk.htm",
      "contextRef": "FD2019Q4YTD",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:NetIncomeLoss",
      "reportCount": 1,
      "unitRef": "usd",
      "xsiNil": "false"
     },
     "groupType": "statement",
     "isDefault": "false",
     "longName": "1004000 - Statement - CONSOLIDATED STATEMENTS OF CASH FLOWS",
     "role": "http://cognex.com/role/ConsolidatedStatementsOfCashFlows",
     "shortName": "CONSOLIDATED STATEMENTS OF CASH FLOWS",
     "subGroupType": "",
     "uniqueAnchor": {
      "ancestors": [
       "span",
       "span",
       "div",
       "td",
       "tr",
       "table",
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20191231x10xk.htm",
      "contextRef": "FD2019Q4YTD",
      "decimals": "-3",
      "lang": null,
      "name": "us-gaap:StockOptionPlanExpense",
      "reportCount": 1,
      "unique": true,
      "unitRef": "usd",
      "xsiNil": "false"
     }
    },
    "R80": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "span",
       "div",
       "td",
       "tr",
       "table",
       "div",
       "div",
       "us-gaap:OffsettingAssetsTableTextBlock",
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20191231x10xk.htm",
      "contextRef": "FI2019Q4",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:DerivativeAssets",
      "reportCount": 1,
      "unitRef": "usd",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "2414404 - Disclosure - Derivative Instruments - Balance Sheet Location (Details)",
     "role": "http://cognex.com/role/DerivativeInstrumentsBalanceSheetLocationDetails",
     "shortName": "Derivative Instruments - Balance Sheet Location (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "span",
       "span",
       "div",
       "td",
       "tr",
       "table",
       "div",
       "div",
       "us-gaap:ScheduleOfDerivativeInstrumentsInStatementOfFinancialPositionFairValueTextBlock",
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20191231x10xk.htm",
      "contextRef": "FI2019Q4_us-gaap_BalanceSheetLocationAxis_us-gaap_PrepaidExpensesAndOtherCurrentAssetsMember_us-gaap_HedgingDesignationAxis_us-gaap_NondesignatedMember",
      "decimals": "-3",
      "lang": null,
      "name": "us-gaap:DerivativeAssets",
      "reportCount": 1,
      "unique": true,
      "unitRef": "usd",
      "xsiNil": "false"
     }
    },
    "R81": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "span",
       "div",
       "td",
       "tr",
       "table",
       "div",
       "div",
       "us-gaap:OffsettingAssetsTableTextBlock",
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20191231x10xk.htm",
      "contextRef": "FI2019Q4",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:DerivativeFairValueOfDerivativeAsset",
      "reportCount": 1,
      "unique": true,
      "unitRef": "usd",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "2414405 - Disclosure - Derivative Instruments - Assets and liabilities presented on a net basis due to the right of offset (Details)",
     "role": "http://cognex.com/role/DerivativeInstrumentsAssetsAndLiabilitiesPresentedOnNetBasisDueToRightOfOffsetDetails",
     "shortName": "Derivative Instruments - Assets and liabilities presented on a net basis due to the right of offset (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "span",
       "span",
       "div",
       "td",
       "tr",
       "table",
       "div",
       "div",
       "us-gaap:OffsettingAssetsTableTextBlock",
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20191231x10xk.htm",
      "contextRef": "FI2019Q4",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:DerivativeFairValueOfDerivativeAsset",
      "reportCount": 1,
      "unique": true,
      "unitRef": "usd",
      "xsiNil": "false"
     }
    },
    "R82": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "span",
       "div",
       "td",
       "tr",
       "table",
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20191231x10xk.htm",
      "contextRef": "FD2019Q4YTD",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIOnDerivativesNetOfTax",
      "reportCount": 1,
      "unitRef": "usd",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "2414406 - Disclosure - Derivative Instruments - Gain (Loss) Recognized in Other Comprehensive Income (Loss) (Details)",
     "role": "http://cognex.com/role/DerivativeInstrumentsGainLossRecognizedInOtherComprehensiveIncomeLossDetails",
     "shortName": "Derivative Instruments - Gain (Loss) Recognized in Other Comprehensive Income (Loss) (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "span",
       "span",
       "div",
       "td",
       "tr",
       "table",
       "div",
       "div",
       "us-gaap:ScheduleOfDerivativeInstrumentsEffectOnOtherComprehensiveIncomeLossTableTextBlock",
       "us-gaap:ScheduleOfDerivativeInstrumentsGainLossInStatementOfFinancialPerformanceTextBlock",
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20191231x10xk.htm",
      "contextRef": "FD2019Q4YTD_us-gaap_HedgingDesignationAxis_us-gaap_DesignatedAsHedgingInstrumentMember_us-gaap_IncomeStatementLocationAxis_us-gaap_CashFlowHedgingMember",
      "decimals": "-3",
      "lang": null,
      "name": "us-gaap:OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIOnDerivativesNetOfTax",
      "reportCount": 1,
      "unique": true,
      "unitRef": "usd",
      "xsiNil": "false"
     }
    },
    "R83": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "span",
       "div",
       "td",
       "tr",
       "table",
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20191231x10xk.htm",
      "contextRef": "FI2018Q4",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:AccumulatedOtherComprehensiveIncomeLossNetOfTax",
      "reportCount": 1,
      "unitRef": "usd",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "2414407 - Disclosure - Derivative Instruments - Changes in AOCI (Details)",
     "role": "http://cognex.com/role/DerivativeInstrumentsChangesInAociDetails",
     "shortName": "Derivative Instruments - Changes in AOCI (Details)",
     "subGroupType": "details",
     "uniqueAnchor": null
    },
    "R84": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "span",
       "div",
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20191231x10xk.htm",
      "contextRef": "FI2019Q4",
      "decimals": "0",
      "first": true,
      "lang": null,
      "name": "us-gaap:CapitalizedContractCostGross",
      "reportCount": 1,
      "unique": true,
      "unitRef": "usd",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "2416402 - Disclosure - Revenue Recognition - Narratives (Details)",
     "role": "http://cognex.com/role/RevenueRecognitionNarrativesDetails",
     "shortName": "Revenue Recognition - Narratives (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "span",
       "span",
       "div",
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20191231x10xk.htm",
      "contextRef": "FI2019Q4",
      "decimals": "0",
      "first": true,
      "lang": null,
      "name": "us-gaap:CapitalizedContractCostGross",
      "reportCount": 1,
      "unique": true,
      "unitRef": "usd",
      "xsiNil": "false"
     }
    },
    "R85": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "span",
       "div",
       "td",
       "tr",
       "table",
       "div",
       "div",
       "us-gaap:ScheduleOfQuarterlyFinancialInformationTableTextBlock",
       "us-gaap:QuarterlyFinancialInformationTextBlock",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20191231x10xk.htm",
      "contextRef": "FD2018Q4QTD",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax",
      "reportCount": 1,
      "unitRef": "usd",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "2416403 - Disclosure - Revenue Recognition - Statement of Operations Impact (Details)",
     "role": "http://cognex.com/role/RevenueRecognitionStatementOfOperationsImpactDetails",
     "shortName": "Revenue Recognition - Statement of Operations Impact (Details)",
     "subGroupType": "details",
     "uniqueAnchor": null
    },
    "R86": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "span",
       "div",
       "td",
       "tr",
       "table",
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20191231x10xk.htm",
      "contextRef": "FI2019Q4",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:PrepaidExpenseAndOtherAssetsCurrent",
      "reportCount": 1,
      "unitRef": "usd",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "2416404 - Disclosure - Revenue Recognition - Balance Sheet Impact (Details)",
     "role": "http://cognex.com/role/RevenueRecognitionBalanceSheetImpactDetails",
     "shortName": "Revenue Recognition - Balance Sheet Impact (Details)",
     "subGroupType": "details",
     "uniqueAnchor": null
    },
    "R87": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "span",
       "div",
       "td",
       "tr",
       "table",
       "div",
       "div",
       "us-gaap:ScheduleOfQuarterlyFinancialInformationTableTextBlock",
       "us-gaap:QuarterlyFinancialInformationTextBlock",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20191231x10xk.htm",
      "contextRef": "FD2018Q4QTD",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax",
      "reportCount": 1,
      "unitRef": "usd",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "2416405 - Disclosure - Revenue Recognition - Disaggregation by Geography and Type (Details)",
     "role": "http://cognex.com/role/RevenueRecognitionDisaggregationByGeographyAndTypeDetails",
     "shortName": "Revenue Recognition - Disaggregation by Geography and Type (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "span",
       "span",
       "div",
       "td",
       "tr",
       "table",
       "div",
       "div",
       "us-gaap:DisaggregationOfRevenueTableTextBlock",
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20191231x10xk.htm",
      "contextRef": "FD2019Q4YTD_srt_ProductOrServiceAxis_cgnx_StandardProductandServicesMember",
      "decimals": "-3",
      "lang": null,
      "name": "us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax",
      "reportCount": 1,
      "unique": true,
      "unitRef": "usd",
      "xsiNil": "false"
     }
    },
    "R88": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "span",
       "div",
       "td",
       "tr",
       "table",
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20191231x10xk.htm",
      "contextRef": "FI2018Q4",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:ContractWithCustomerLiabilityCurrent",
      "reportCount": 1,
      "unitRef": "usd",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "2416406 - Disclosure - Revenue Recognition - Deferred Revenue and Customer Deposits Rollforward (Details)",
     "role": "http://cognex.com/role/RevenueRecognitionDeferredRevenueAndCustomerDepositsRollforwardDetails",
     "shortName": "Revenue Recognition - Deferred Revenue and Customer Deposits Rollforward (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "span",
       "span",
       "div",
       "td",
       "tr",
       "table",
       "div",
       "div",
       "us-gaap:ContractWithCustomerAssetAndLiabilityTableTextBlock",
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20191231x10xk.htm",
      "contextRef": "FD2019Q4YTD",
      "decimals": "-3",
      "lang": null,
      "name": "us-gaap:IncreaseDecreaseInContractWithCustomerLiability",
      "reportCount": 1,
      "unique": true,
      "unitRef": "usd",
      "xsiNil": "false"
     }
    },
    "R89": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "span",
       "div",
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20191231x10xk.htm",
      "contextRef": "FI2019Q4",
      "decimals": "INF",
      "first": true,
      "lang": null,
      "name": "us-gaap:PreferredStockSharesAuthorized",
      "reportCount": 1,
      "unitRef": "shares",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "2417401 - Disclosure - Shareholders' Equity - Additional Information (Detail)",
     "role": "http://cognex.com/role/ShareholdersEquityAdditionalInformationDetail",
     "shortName": "Shareholders' Equity - Additional Information (Detail)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "span",
       "span",
       "div",
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20191231x10xk.htm",
      "contextRef": "I2018Q2Apr25",
      "decimals": "INF",
      "lang": null,
      "name": "us-gaap:CommonStockSharesAuthorized",
      "reportCount": 1,
      "unique": true,
      "unitRef": "shares",
      "xsiNil": "false"
     }
    },
    "R9": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "span",
       "div",
       "td",
       "tr",
       "table",
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20191231x10xk.htm",
      "contextRef": "FI2016Q4",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:StockholdersEquity",
      "reportCount": 1,
      "unique": true,
      "unitRef": "usd",
      "xsiNil": "false"
     },
     "groupType": "statement",
     "isDefault": "false",
     "longName": "1005000 - Statement - CONSOLIDATED STATEMENTS OF SHAREHOLDERS' EQUITY",
     "role": "http://cognex.com/role/ConsolidatedStatementsOfShareholdersEquity",
     "shortName": "CONSOLIDATED STATEMENTS OF SHAREHOLDERS' EQUITY",
     "subGroupType": "",
     "uniqueAnchor": {
      "ancestors": [
       "span",
       "span",
       "div",
       "td",
       "tr",
       "table",
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20191231x10xk.htm",
      "contextRef": "FI2016Q4",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:StockholdersEquity",
      "reportCount": 1,
      "unique": true,
      "unitRef": "usd",
      "xsiNil": "false"
     }
    },
    "R90": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "span",
       "div",
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20191231x10xk.htm",
      "contextRef": "FI2019Q4",
      "decimals": "INF",
      "first": true,
      "lang": null,
      "name": "cgnx:NumberOfGroupsWithinEmployeePopulation",
      "reportCount": 1,
      "unique": true,
      "unitRef": "group",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "2418402 - Disclosure - Stock-Based Compensation Expense - Additional Information (Detail)",
     "role": "http://cognex.com/role/StockBasedCompensationExpenseAdditionalInformationDetail",
     "shortName": "Stock-Based Compensation Expense - Additional Information (Detail)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "span",
       "span",
       "div",
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20191231x10xk.htm",
      "contextRef": "FI2019Q4",
      "decimals": "INF",
      "first": true,
      "lang": null,
      "name": "cgnx:NumberOfGroupsWithinEmployeePopulation",
      "reportCount": 1,
      "unique": true,
      "unitRef": "group",
      "xsiNil": "false"
     }
    },
    "R91": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "span",
       "div",
       "td",
       "tr",
       "table",
       "div",
       "div",
       "us-gaap:ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock",
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20191231x10xk.htm",
      "contextRef": "FI2018Q4",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber",
      "reportCount": 1,
      "unique": true,
      "unitRef": "shares",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "2418403 - Disclosure - Stock-Based Compensation Expense - Summary of Stock Option Activity (Detail)",
     "role": "http://cognex.com/role/StockBasedCompensationExpenseSummaryOfStockOptionActivityDetail",
     "shortName": "Stock-Based Compensation Expense - Summary of Stock Option Activity (Detail)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "span",
       "span",
       "div",
       "td",
       "tr",
       "table",
       "div",
       "div",
       "us-gaap:ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock",
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20191231x10xk.htm",
      "contextRef": "FI2018Q4",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber",
      "reportCount": 1,
      "unique": true,
      "unitRef": "shares",
      "xsiNil": "false"
     }
    },
    "R92": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "span",
       "div",
       "td",
       "tr",
       "table",
       "div",
       "div",
       "us-gaap:NonvestedRestrictedStockSharesActivityTableTextBlock",
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20191231x10xk.htm",
      "contextRef": "FI2019Q4_us-gaap_AwardTypeAxis_us-gaap_RestrictedStockMember",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber",
      "reportCount": 1,
      "unitRef": "shares",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "2418404 - Disclosure - Stock-Based Compensation Expense - Weighted-Average Assumptions Used in Estimating Fair Values of Stock Options Granted (Detail)",
     "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",
       "span",
       "div",
       "td",
       "tr",
       "table",
       "div",
       "div",
       "us-gaap:ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock",
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20191231x10xk.htm",
      "contextRef": "FD2019Q4YTD_us-gaap_AwardTypeAxis_us-gaap_EmployeeStockOptionMember",
      "decimals": "3",
      "lang": null,
      "name": "us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate",
      "reportCount": 1,
      "unique": true,
      "unitRef": "number",
      "xsiNil": "false"
     }
    },
    "R93": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "span",
       "div",
       "td",
       "tr",
       "table",
       "div",
       "div",
       "us-gaap:NonvestedRestrictedStockSharesActivityTableTextBlock",
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20191231x10xk.htm",
      "contextRef": "FI2018Q4_us-gaap_AwardTypeAxis_us-gaap_RestrictedStockMember",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber",
      "reportCount": 1,
      "unitRef": "shares",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "2418405 - Disclosure - Stock-Based Compensation Expense - Summary of Restricted Stock Option Activity (Detail)",
     "role": "http://cognex.com/role/StockBasedCompensationExpenseSummaryOfRestrictedStockOptionActivityDetail",
     "shortName": "Stock-Based Compensation Expense - Summary of Restricted Stock Option Activity (Detail)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "span",
       "span",
       "div",
       "td",
       "tr",
       "table",
       "div",
       "div",
       "us-gaap:NonvestedRestrictedStockSharesActivityTableTextBlock",
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20191231x10xk.htm",
      "contextRef": "FD2019Q4YTD_us-gaap_AwardTypeAxis_us-gaap_RestrictedStockMember",
      "decimals": "2",
      "lang": null,
      "name": "us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue",
      "reportCount": 1,
      "unique": true,
      "unitRef": "usdPerShare",
      "xsiNil": "false"
     }
    },
    "R94": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "span",
       "div",
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20191231x10xk.htm",
      "contextRef": "FD2019Q4YTD",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1",
      "reportCount": 1,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "2418406 - Disclosure - Stock-Based Compensation Expense - Stock-Based Compensation Expense (Detail)",
     "role": "http://cognex.com/role/StockBasedCompensationExpenseStockBasedCompensationExpenseDetail",
     "shortName": "Stock-Based Compensation Expense - Stock-Based Compensation Expense (Detail)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "span",
       "span",
       "div",
       "td",
       "tr",
       "table",
       "div",
       "div",
       "us-gaap:ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock",
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20191231x10xk.htm",
      "contextRef": "FD2019Q4YTD_us-gaap_IncomeStatementLocationAxis_cgnx_ProductCostOfRevenueMember",
      "decimals": "-3",
      "lang": null,
      "name": "us-gaap:AllocatedShareBasedCompensationExpense",
      "reportCount": 1,
      "unique": true,
      "unitRef": "usd",
      "xsiNil": "false"
     }
    },
    "R95": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "span",
       "div",
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20191231x10xk.htm",
      "contextRef": "FD2019Q4YTD",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "cgnx:MinimumAgeToBeEligibleToDefinedContributionPlan",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "2419401 - Disclosure - Employee Savings Plan - Additional Information (Detail)",
     "role": "http://cognex.com/role/EmployeeSavingsPlanAdditionalInformationDetail",
     "shortName": "Employee Savings Plan - Additional Information (Detail)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "span",
       "span",
       "div",
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20191231x10xk.htm",
      "contextRef": "FD2019Q4YTD",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "cgnx:MinimumAgeToBeEligibleToDefinedContributionPlan",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R96": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "span",
       "div",
       "td",
       "tr",
       "table",
       "div",
       "div",
       "us-gaap:ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock",
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20191231x10xk.htm",
      "contextRef": "FD2019Q4YTD",
      "decimals": "2",
      "first": true,
      "lang": null,
      "name": "cgnx:EffectiveIncomeTaxRateReconciliationMigrationofAcquiredIntellectualProperty",
      "reportCount": 1,
      "unitRef": "number",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "2420402 - Disclosure - Taxes - Additional Information (Details)",
     "role": "http://cognex.com/role/TaxesAdditionalInformationDetails",
     "shortName": "Taxes - Additional Information (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "span",
       "span",
       "div",
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20191231x10xk.htm",
      "contextRef": "FD2019Q4QTD",
      "decimals": "-5",
      "lang": null,
      "name": "us-gaap:IncomeTaxReconciliationForeignIncomeTaxRateDifferential",
      "reportCount": 1,
      "unique": true,
      "unitRef": "usd",
      "xsiNil": "false"
     }
    },
    "R97": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "span",
       "div",
       "td",
       "tr",
       "table",
       "div",
       "div",
       "us-gaap:ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock",
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20191231x10xk.htm",
      "contextRef": "FD2019Q4YTD",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:CurrentFederalTaxExpenseBenefit",
      "reportCount": 1,
      "unique": true,
      "unitRef": "usd",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "2420403 - Disclosure - Taxes - Constituents of Provision for Income Taxes (Details)",
     "role": "http://cognex.com/role/TaxesConstituentsOfProvisionForIncomeTaxesDetails",
     "shortName": "Taxes - Constituents of Provision for Income Taxes (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "span",
       "span",
       "div",
       "td",
       "tr",
       "table",
       "div",
       "div",
       "us-gaap:ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock",
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20191231x10xk.htm",
      "contextRef": "FD2019Q4YTD",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:CurrentFederalTaxExpenseBenefit",
      "reportCount": 1,
      "unique": true,
      "unitRef": "usd",
      "xsiNil": "false"
     }
    },
    "R98": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "span",
       "div",
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20191231x10xk.htm",
      "contextRef": "FD2019Q4YTD",
      "decimals": "0",
      "first": true,
      "lang": null,
      "name": "us-gaap:OtherTaxExpenseBenefit",
      "reportCount": 1,
      "unique": true,
      "unitRef": "usd",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "2420404 - Disclosure - Taxes - Reconciliation of the United States Federal Statutory Corporate Tax Rate to Company's Effective Tax Rate or Income Tax Provision (Details)",
     "role": "http://cognex.com/role/TaxesReconciliationOfUnitedStatesFederalStatutoryCorporateTaxRateToCompanysEffectiveTaxRateOrIncomeTaxProvisionDetails",
     "shortName": "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",
       "span",
       "div",
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20191231x10xk.htm",
      "contextRef": "FD2019Q4YTD",
      "decimals": "0",
      "first": true,
      "lang": null,
      "name": "us-gaap:OtherTaxExpenseBenefit",
      "reportCount": 1,
      "unique": true,
      "unitRef": "usd",
      "xsiNil": "false"
     }
    },
    "R99": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "span",
       "div",
       "td",
       "tr",
       "table",
       "div",
       "div",
       "us-gaap:ScheduleOfChangeInAccountingEstimateTextBlock",
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20191231x10xk.htm",
      "contextRef": "FD2019Q4YTD",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments",
      "reportCount": 1,
      "unitRef": "usd",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "2420405 - Disclosure - Taxes - Schedule of Change in Accounting Policy (Details)",
     "role": "http://cognex.com/role/TaxesScheduleOfChangeInAccountingPolicyDetails",
     "shortName": "Taxes - Schedule of Change in Accounting Policy (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "span",
       "span",
       "div",
       "td",
       "tr",
       "table",
       "div",
       "div",
       "us-gaap:ScheduleOfChangeInAccountingEstimateTextBlock",
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20191231x10xk.htm",
      "contextRef": "FI2019Q4",
      "decimals": "-3",
      "lang": null,
      "name": "us-gaap:DeferredIncomeTaxLiabilities",
      "reportCount": 1,
      "unique": true,
      "unitRef": "usd",
      "xsiNil": "false"
     }
    }
   },
   "segmentCount": 102,
   "tag": {
    "cgnx_AccountingStandardsUpdate201609StatutoryTaxWithholdingComponentMember": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Accounting Standards Update 2016-09, Statutory Tax Withholding Component [Member]",
        "label": "Accounting Standards Update 2016-09, Statutory Tax Withholding Component [Member]",
        "terseLabel": "Accounting Standards Update 2016-09, Statutory Tax Withholding Component [Member]"
       }
      }
     },
     "localname": "AccountingStandardsUpdate201609StatutoryTaxWithholdingComponentMember",
     "nsuri": "http://cognex.com/20191231",
     "presentation": [
      "http://cognex.com/role/TaxesAdditionalInformationDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "cgnx_AccruedExpensesMember": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Accrued expenses.",
        "label": "Accrued Expenses [Member]",
        "terseLabel": "Accrued Expenses [Member]"
       }
      }
     },
     "localname": "AccruedExpensesMember",
     "nsuri": "http://cognex.com/20191231",
     "presentation": [
      "http://cognex.com/role/DerivativeInstrumentsBalanceSheetLocationDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "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/20191231",
     "presentation": [
      "http://cognex.com/role/FairValueMeasurementsAssetsAndLiabilitiesMeasuredAtFairValueOnRecurringBasisDetail"
     ],
     "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/20191231",
     "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/20191231",
     "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/20191231",
     "presentation": [
      "http://cognex.com/role/FairValueMeasurementsAssetsAndLiabilitiesMeasuredAtFairValueOnRecurringBasisDetail"
     ],
     "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/20191231",
     "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/20191231",
     "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/20191231",
     "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/20191231",
     "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/20191231",
     "presentation": [
      "http://cognex.com/role/SummaryOfSignificantAccountingPoliciesAdditionalInformationDetail"
     ],
     "xbrltype": "durationItemType"
    },
    "cgnx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredandLiabilitiesAssumedCurrentLiabilitiesAccruedExpenses": {
     "auth_ref": [],
     "calculation": {
      "http://cognex.com/role/AcquisitionsGviVenturesIncPurchasePriceAllocationDetails": {
       "order": 5.0,
       "parentTag": "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet",
       "weight": -1.0
      },
      "http://cognex.com/role/AcquisitionsVidiSystemsSAPurchasePriceAllocationDetails": {
       "order": 7.0,
       "parentTag": "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet",
       "weight": -1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Business Combination, Recognized Identifiable Assets Acquired and Liabilities Assumed, Current Liabilities, Accrued Expenses",
        "label": "Business Combination, Recognized Identifiable Assets Acquired and Liabilities Assumed, Current Liabilities, Accrued Expenses",
        "negatedTerseLabel": "Accrued expenses"
       }
      }
     },
     "localname": "BusinessCombinationRecognizedIdentifiableAssetsAcquiredandLiabilitiesAssumedCurrentLiabilitiesAccruedExpenses",
     "nsuri": "http://cognex.com/20191231",
     "presentation": [
      "http://cognex.com/role/AcquisitionsGviVenturesIncPurchasePriceAllocationDetails",
      "http://cognex.com/role/AcquisitionsVidiSystemsSAPurchasePriceAllocationDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "cgnx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredandLiabilitiesAssumedCurrentLiabilitiesDeferredRevenueandCustomerDeposits": {
     "auth_ref": [],
     "calculation": {
      "http://cognex.com/role/AcquisitionsSualabCoLtdPurchasePriceAllocationDetails": {
       "order": 12.0,
       "parentTag": "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet",
       "weight": -1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Business Combination, Recognized Identifiable Assets Acquired and Liabilities Assumed, Current Liabilities, Deferred Revenue and Customer Deposits",
        "label": "Business Combination, Recognized Identifiable Assets Acquired and Liabilities Assumed, Current Liabilities, Deferred Revenue and Customer Deposits",
        "negatedTerseLabel": "Deferred revenue and customer deposits"
       }
      }
     },
     "localname": "BusinessCombinationRecognizedIdentifiableAssetsAcquiredandLiabilitiesAssumedCurrentLiabilitiesDeferredRevenueandCustomerDeposits",
     "nsuri": "http://cognex.com/20191231",
     "presentation": [
      "http://cognex.com/role/AcquisitionsSualabCoLtdPurchasePriceAllocationDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "cgnx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredandLiabilitiesAssumedOperatingLeaseLiabilityCurrent": {
     "auth_ref": [],
     "calculation": {
      "http://cognex.com/role/AcquisitionsSualabCoLtdPurchasePriceAllocationDetails": {
       "order": 13.0,
       "parentTag": "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet",
       "weight": -1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Business Combination, Recognized Identifiable Assets Acquired and Liabilities Assumed, Operating Lease, Liability, Current",
        "label": "Business Combination, Recognized Identifiable Assets Acquired and Liabilities Assumed, Operating Lease, Liability, Current",
        "negatedTerseLabel": "Operating lease liabilities"
       }
      }
     },
     "localname": "BusinessCombinationRecognizedIdentifiableAssetsAcquiredandLiabilitiesAssumedOperatingLeaseLiabilityCurrent",
     "nsuri": "http://cognex.com/20191231",
     "presentation": [
      "http://cognex.com/role/AcquisitionsSualabCoLtdPurchasePriceAllocationDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "cgnx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredandLiabilitiesAssumedOperatingLeaseLiabilityNoncurrent": {
     "auth_ref": [],
     "calculation": {
      "http://cognex.com/role/AcquisitionsSualabCoLtdPurchasePriceAllocationDetails": {
       "order": 14.0,
       "parentTag": "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet",
       "weight": -1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Business Combination, Recognized Identifiable Assets Acquired and Liabilities Assumed, Operating Lease, Liability, Noncurrent",
        "label": "Business Combination, Recognized Identifiable Assets Acquired and Liabilities Assumed, Operating Lease, Liability, Noncurrent",
        "negatedTerseLabel": "Non-current operating lease liabilities"
       }
      }
     },
     "localname": "BusinessCombinationRecognizedIdentifiableAssetsAcquiredandLiabilitiesAssumedOperatingLeaseLiabilityNoncurrent",
     "nsuri": "http://cognex.com/20191231",
     "presentation": [
      "http://cognex.com/role/AcquisitionsSualabCoLtdPurchasePriceAllocationDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "cgnx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredandLiabilitiesAssumedOperatingLeaseRightofUseAsset": {
     "auth_ref": [],
     "calculation": {
      "http://cognex.com/role/AcquisitionsSualabCoLtdPurchasePriceAllocationDetails": {
       "order": 7.0,
       "parentTag": "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Business Combination, Recognized Identifiable Assets Acquired and Liabilities Assumed, Operating Lease, Right-of-Use Asset",
        "label": "Business Combination, Recognized Identifiable Assets Acquired and Liabilities Assumed, Operating Lease, Right-of-Use Asset",
        "terseLabel": "Operating lease assets"
       }
      }
     },
     "localname": "BusinessCombinationRecognizedIdentifiableAssetsAcquiredandLiabilitiesAssumedOperatingLeaseRightofUseAsset",
     "nsuri": "http://cognex.com/20191231",
     "presentation": [
      "http://cognex.com/role/AcquisitionsSualabCoLtdPurchasePriceAllocationDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "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/20191231",
     "presentation": [
      "http://cognex.com/role/CashCashEquivalentsAndInvestmentsComponentsOfCashCashEquivalentsAndInvestmentsDetail"
     ],
     "xbrltype": "monetaryItemType"
    },
    "cgnx_CashflowshedgesAbstract": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Cash flows hedges [Abstract]",
        "label": "Cash flows hedges [Abstract]",
        "terseLabel": "Cash flow hedges:"
       }
      }
     },
     "localname": "CashflowshedgesAbstract",
     "nsuri": "http://cognex.com/20191231",
     "presentation": [
      "http://cognex.com/role/ConsolidatedStatementsOfComprehensiveIncome"
     ],
     "xbrltype": "stringItemType"
    },
    "cgnx_CertificateOfDepositFairValueDisclosure": {
     "auth_ref": [],
     "crdr": "debit",
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Certificate Of Deposit Fair Value Disclosure",
        "label": "Certificate Of Deposit Fair Value Disclosure",
        "terseLabel": "Certificate of deposit"
       }
      }
     },
     "localname": "CertificateOfDepositFairValueDisclosure",
     "nsuri": "http://cognex.com/20191231",
     "presentation": [
      "http://cognex.com/role/FairValueMeasurementsAssetsAndLiabilitiesMeasuredAtFairValueOnRecurringBasisDetail"
     ],
     "xbrltype": "monetaryItemType"
    },
    "cgnx_ChangeinGlobalIntangibleLowTaxedIncomeMember": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Change in Global Intangible Low-Taxed Income [Member]",
        "label": "Change in Global Intangible Low-Taxed Income [Member]",
        "terseLabel": "Change in accounting policy"
       }
      }
     },
     "localname": "ChangeinGlobalIntangibleLowTaxedIncomeMember",
     "nsuri": "http://cognex.com/20191231",
     "presentation": [
      "http://cognex.com/role/TaxesScheduleOfChangeInAccountingPolicyDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "cgnx_ChiaroTechnologiesLLCMember": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Chiaro Technologies LLC [Member]",
        "label": "Chiaro Technologies LLC [Member]",
        "terseLabel": "Chiaro Technologies LLC"
       }
      }
     },
     "localname": "ChiaroTechnologiesLLCMember",
     "nsuri": "http://cognex.com/20191231",
     "presentation": [
      "http://cognex.com/role/FairValueMeasurementsLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "cgnx_CompanyContributionsVestAtEndOfFiveYears": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Company contributions vest at end of five years.",
        "label": "Company Contributions Vest At End Of Five Years",
        "terseLabel": "Company contributions vest at end of five years"
       }
      }
     },
     "localname": "CompanyContributionsVestAtEndOfFiveYears",
     "nsuri": "http://cognex.com/20191231",
     "presentation": [
      "http://cognex.com/role/EmployeeSavingsPlanAdditionalInformationDetail"
     ],
     "xbrltype": "percentItemType"
    },
    "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/20191231",
     "presentation": [
      "http://cognex.com/role/EmployeeSavingsPlanAdditionalInformationDetail"
     ],
     "xbrltype": "percentItemType"
    },
    "cgnx_CompanyContributionsVestAtEndOfThreeYears": {
     "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 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/20191231",
     "presentation": [
      "http://cognex.com/role/EmployeeSavingsPlanAdditionalInformationDetail"
     ],
     "xbrltype": "percentItemType"
    },
    "cgnx_CompanyContributionsVestAtEndOfTwoYear": {
     "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 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/20191231",
     "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/20191231",
     "presentation": [
      "http://cognex.com/role/SummaryOfSignificantAccountingPoliciesIntangibleAssetsDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "cgnx_CompletedTechnologyMember": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Completed Technology [Member]",
        "label": "Completed Technology [Member]",
        "terseLabel": "Completed Technology [Member]"
       }
      }
     },
     "localname": "CompletedTechnologyMember",
     "nsuri": "http://cognex.com/20191231",
     "presentation": [
      "http://cognex.com/role/AcquisitionsSualabCoLtdNarrativeDetails",
      "http://cognex.com/role/AcquisitionsSualabCoLtdPurchasePriceAllocationDetails"
     ],
     "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/20191231",
     "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/20191231",
     "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/20191231",
     "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/20191231",
     "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/20191231",
     "presentation": [
      "http://cognex.com/role/FairValueMeasurementsAssetsAndLiabilitiesMeasuredAtFairValueOnRecurringBasisDetail"
     ],
     "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/20191231",
     "presentation": [
      "http://cognex.com/role/ConsolidatedStatementsOfComprehensiveIncome"
     ],
     "xbrltype": "stringItemType"
    },
    "cgnx_CustomerContractsAndRelationshipsMember": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Customer Contracts And Relationships [Member]",
        "label": "Customer Contracts And Relationships [Member]",
        "verboseLabel": "Customer Relationships [Member]"
       }
      }
     },
     "localname": "CustomerContractsAndRelationshipsMember",
     "nsuri": "http://cognex.com/20191231",
     "presentation": [
      "http://cognex.com/role/IntangibleAssetsAmortizedIntangibleAssetsDetail",
      "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/20191231",
     "presentation": [
      "http://cognex.com/role/RevenueRecognitionDeferredRevenueAndCustomerDepositsRollforwardDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "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/20191231",
     "presentation": [
      "http://cognex.com/role/TaxesAdditionalInformationDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "cgnx_DeferredTaxAssetsIntangibleAssetChangeinTaxStructure": {
     "auth_ref": [],
     "calculation": {
      "http://cognex.com/role/TaxesConstituentsOfDeferredTaxAssetsDetails": {
       "order": 1.0,
       "parentTag": "us-gaap_DeferredTaxAssetsGrossNoncurrent",
       "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/20191231",
     "presentation": [
      "http://cognex.com/role/TaxesConstituentsOfDeferredTaxAssetsDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "cgnx_DeferredTaxAssetsOtherNoncurrent": {
     "auth_ref": [],
     "calculation": {
      "http://cognex.com/role/TaxesConstituentsOfDeferredTaxAssetsDetails": {
       "order": 8.0,
       "parentTag": "us-gaap_DeferredTaxAssetsGrossNoncurrent",
       "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/20191231",
     "presentation": [
      "http://cognex.com/role/TaxesConstituentsOfDeferredTaxAssetsDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "cgnx_DeferredTaxLiabilitiesTaxCutsAndJobsActGlobalIntangibleLowTaxIncome": {
     "auth_ref": [],
     "calculation": {
      "http://cognex.com/role/TaxesConstituentsOfDeferredTaxAssetsDetails": {
       "order": 1.0,
       "parentTag": "us-gaap_DeferredTaxLiabilitiesGrossCurrent",
       "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/20191231",
     "presentation": [
      "http://cognex.com/role/TaxesAdditionalInformationDetails",
      "http://cognex.com/role/TaxesConstituentsOfDeferredTaxAssetsDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "cgnx_DeferredTaxLiabilitiesTaxCutsAndJobsActOtherGlobalIntangibleLowTaxIncome": {
     "auth_ref": [],
     "calculation": {
      "http://cognex.com/role/TaxesConstituentsOfDeferredTaxAssetsDetails": {
       "order": 2.0,
       "parentTag": "us-gaap_DeferredTaxLiabilitiesGrossCurrent",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Deferred Tax Liabilities, Tax Cuts And Jobs Act, Other Global Intangible Low Tax Income",
        "label": "Deferred Tax Liabilities, Tax Cuts And Jobs Act, Other Global Intangible Low Tax Income",
        "terseLabel": "Other GILTI tax basis differences"
       }
      }
     },
     "localname": "DeferredTaxLiabilitiesTaxCutsAndJobsActOtherGlobalIntangibleLowTaxIncome",
     "nsuri": "http://cognex.com/20191231",
     "presentation": [
      "http://cognex.com/role/TaxesConstituentsOfDeferredTaxAssetsDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "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/20191231",
     "presentation": [
      "http://cognex.com/role/CashCashEquivalentsAndInvestmentsAdditionalInformationDetail"
     ],
     "xbrltype": "monetaryItemType"
    },
    "cgnx_EffectiveIncomeTaxRateReconciliationDiscreteTaxExpenseTaxAndJobsActPercent": {
     "auth_ref": [],
     "calculation": {
      "http://cognex.com/role/TaxesReconciliationOfUnitedStatesFederalStatutoryCorporateTaxRateToCompanysEffectiveTaxRateOrIncomeTaxProvisionDetails": {
       "order": 6.0,
       "parentTag": "us-gaap_EffectiveIncomeTaxRateContinuingOperations",
       "weight": 1.0
      }
     },
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Effective Income Tax Rate Reconciliation, Discrete Tax Expense, Percent",
        "label": "Effective Income Tax Rate Reconciliation, Discrete Tax Expense, Tax And Jobs Act, Percent",
        "terseLabel": "Discrete tax expense (benefit) related to Tax Act"
       }
      }
     },
     "localname": "EffectiveIncomeTaxRateReconciliationDiscreteTaxExpenseTaxAndJobsActPercent",
     "nsuri": "http://cognex.com/20191231",
     "presentation": [
      "http://cognex.com/role/TaxesReconciliationOfUnitedStatesFederalStatutoryCorporateTaxRateToCompanysEffectiveTaxRateOrIncomeTaxProvisionDetails"
     ],
     "xbrltype": "percentItemType"
    },
    "cgnx_EffectiveIncomeTaxRateReconciliationMigrationofAcquiredIntellectualProperty": {
     "auth_ref": [],
     "calculation": {
      "http://cognex.com/role/TaxesReconciliationOfUnitedStatesFederalStatutoryCorporateTaxRateToCompanysEffectiveTaxRateOrIncomeTaxProvisionDetails": {
       "order": 8.0,
       "parentTag": "us-gaap_EffectiveIncomeTaxRateContinuingOperations",
       "weight": 1.0
      }
     },
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Effective Income Tax Rate Reconciliation, Migration of Acquired Intellectual Property",
        "label": "Effective Income Tax Rate Reconciliation, Migration of Acquired Intellectual Property",
        "terseLabel": "Discrete tax expense related to migration of acquired IP",
        "verboseLabel": "Discrete tax expense for migration of acquired intellectual property"
       }
      }
     },
     "localname": "EffectiveIncomeTaxRateReconciliationMigrationofAcquiredIntellectualProperty",
     "nsuri": "http://cognex.com/20191231",
     "presentation": [
      "http://cognex.com/role/TaxesAdditionalInformationDetails",
      "http://cognex.com/role/TaxesReconciliationOfUnitedStatesFederalStatutoryCorporateTaxRateToCompanysEffectiveTaxRateOrIncomeTaxProvisionDetails"
     ],
     "xbrltype": "percentItemType"
    },
    "cgnx_EffectiveIncomeTaxRateReconciliationTaxCutsandJobsActGlobalIntangibleLowTaxIncomePercent": {
     "auth_ref": [],
     "calculation": {
      "http://cognex.com/role/TaxesReconciliationOfUnitedStatesFederalStatutoryCorporateTaxRateToCompanysEffectiveTaxRateOrIncomeTaxProvisionDetails": {
       "order": 10.0,
       "parentTag": "us-gaap_EffectiveIncomeTaxRateContinuingOperations",
       "weight": 1.0
      }
     },
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Effective Income Tax Rate Reconciliation, Tax Cuts and Jobs Act, Global Intangible Low Tax Income, Percent",
        "label": "Effective Income Tax Rate Reconciliation, Tax Cuts and Jobs Act, Global Intangible Low Tax Income, Percent",
        "terseLabel": "Discrete tax expense related to GILTI impact of change in tax structure"
       }
      }
     },
     "localname": "EffectiveIncomeTaxRateReconciliationTaxCutsandJobsActGlobalIntangibleLowTaxIncomePercent",
     "nsuri": "http://cognex.com/20191231",
     "presentation": [
      "http://cognex.com/role/TaxesReconciliationOfUnitedStatesFederalStatutoryCorporateTaxRateToCompanysEffectiveTaxRateOrIncomeTaxProvisionDetails"
     ],
     "xbrltype": "percentItemType"
    },
    "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/20191231",
     "presentation": [
      "http://cognex.com/role/StockBasedCompensationExpenseAdditionalInformationDetail",
      "http://cognex.com/role/StockBasedCompensationExpenseStockBasedCompensationExpenseDetail"
     ],
     "xbrltype": "monetaryItemType"
    },
    "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/20191231",
     "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/20191231",
     "presentation": [
      "http://cognex.com/role/StockBasedCompensationExpenseAdditionalInformationDetail"
     ],
     "xbrltype": "percentItemType"
    },
    "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/20191231",
     "presentation": [
      "http://cognex.com/role/StockBasedCompensationExpenseAdditionalInformationDetail"
     ],
     "xbrltype": "durationItemType"
    },
    "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/20191231",
     "presentation": [
      "http://cognex.com/role/AcquisitionsGviVenturesIncDetails",
      "http://cognex.com/role/AcquisitionsGviVenturesIncPurchasePriceAllocationDetails",
      "http://cognex.com/role/FairValueMeasurementsLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationDetails"
     ],
     "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/20191231",
     "presentation": [
      "http://cognex.com/role/RevenueRecognitionDisaggregationByGeographyAndTypeDetails",
      "http://cognex.com/role/SegmentAndGeographicInformationScheduleOfRevenueFromExternalCustomersAndLongLivedAssetsByGeographicalAreasDetail"
     ],
     "xbrltype": "domainItemType"
    },
    "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/20191231",
     "presentation": [
      "http://cognex.com/role/PropertyPlantAndEquipmentPropertyPlantAndEquipmentDetail"
     ],
     "xbrltype": "domainItemType"
    },
    "cgnx_IncreaseInCompensationExpenseDueToRevisedEstimatedForfeitureRates": {
     "auth_ref": [],
     "crdr": "debit",
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Increase (decrease) in compensation expense due to revised estimated forfeiture rates.",
        "label": "Increase In Compensation Expense Due To Revised Estimated Forfeiture Rates",
        "terseLabel": "Increase in compensation expense due to revised estimated forfeiture rates"
       }
      }
     },
     "localname": "IncreaseInCompensationExpenseDueToRevisedEstimatedForfeitureRates",
     "nsuri": "http://cognex.com/20191231",
     "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/20191231",
     "presentation": [
      "http://cognex.com/role/IndemnificationProvisions"
     ],
     "xbrltype": "textBlockItemType"
    },
    "cgnx_InprocessTechnologyMember": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "In-process Technology [Member]",
        "label": "In-process Technology [Member]",
        "terseLabel": "In-process Technology [Member]"
       }
      }
     },
     "localname": "InprocessTechnologyMember",
     "nsuri": "http://cognex.com/20191231",
     "presentation": [
      "http://cognex.com/role/AcquisitionsSualabCoLtdPurchasePriceAllocationDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "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/20191231",
     "presentation": [
      "http://cognex.com/role/CashCashEquivalentsAndInvestmentsAmortizedCostToFairValueDetail"
     ],
     "xbrltype": "domainItemType"
    },
    "cgnx_ManateeWorksInc.Member": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Manatee Works, Inc. [Member]",
        "label": "Manatee Works, Inc. [Member]",
        "terseLabel": "Manatee Works, Inc."
       }
      }
     },
     "localname": "ManateeWorksInc.Member",
     "nsuri": "http://cognex.com/20191231",
     "presentation": [
      "http://cognex.com/role/FairValueMeasurementsLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationDetails"
     ],
     "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/20191231",
     "presentation": [
      "http://cognex.com/role/TaxesAdditionalInformationDetails"
     ],
     "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/20191231",
     "presentation": [
      "http://cognex.com/role/SummaryOfSignificantAccountingPoliciesAdditionalInformationDetail"
     ],
     "xbrltype": "percentItemType"
    },
    "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/20191231",
     "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/20191231",
     "presentation": [
      "http://cognex.com/role/TaxesAdditionalInformationDetails"
     ],
     "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/20191231",
     "presentation": [
      "http://cognex.com/role/FairValueMeasurementsAssetsAndLiabilitiesMeasuredAtFairValueOnRecurringBasisDetail"
     ],
     "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/20191231",
     "presentation": [
      "http://cognex.com/role/FairValueMeasurementsAssetsAndLiabilitiesMeasuredAtFairValueOnRecurringBasisDetail"
     ],
     "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/20191231",
     "presentation": [
      "http://cognex.com/role/SummaryOfSignificantAccountingPoliciesPolicies"
     ],
     "xbrltype": "textBlockItemType"
    },
    "cgnx_NoncurrentDeferredTaxAssetsDeprecation": {
     "auth_ref": [],
     "calculation": {
      "http://cognex.com/role/TaxesConstituentsOfDeferredTaxAssetsDetails": {
       "order": 5.0,
       "parentTag": "us-gaap_DeferredTaxAssetsGrossNoncurrent",
       "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/20191231",
     "presentation": [
      "http://cognex.com/role/TaxesConstituentsOfDeferredTaxAssetsDetails"
     ],
     "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/20191231",
     "presentation": [
      "http://cognex.com/role/StockBasedCompensationExpenseAdditionalInformationDetail"
     ],
     "xbrltype": "integerItemType"
    },
    "cgnx_OpenTaxYearStateAuthorities": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Open Tax Year State Authorities",
        "label": "Open Tax Year State Authorities",
        "terseLabel": "Open Tax Year State Authorities"
       }
      }
     },
     "localname": "OpenTaxYearStateAuthorities",
     "nsuri": "http://cognex.com/20191231",
     "presentation": [
      "http://cognex.com/role/TaxesAdditionalInformationDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "cgnx_OpentaxyearUnitedStatesInternalRevenueService": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Open tax years open to examination within the United States by the Internal Revenue Service",
        "label": "Open tax year United States Internal Revenue Service",
        "terseLabel": "Open tax year United States Internal Revenue Service"
       }
      }
     },
     "localname": "OpentaxyearUnitedStatesInternalRevenueService",
     "nsuri": "http://cognex.com/20191231",
     "presentation": [
      "http://cognex.com/role/TaxesAdditionalInformationDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "cgnx_Opentaxyearvarioustaxingauthorities": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Open tax year, various taxing authorities",
        "label": "Open tax year, various taxing authorities",
        "terseLabel": "Open tax year, various taxing authorities"
       }
      }
     },
     "localname": "Opentaxyearvarioustaxingauthorities",
     "nsuri": "http://cognex.com/20191231",
     "presentation": [
      "http://cognex.com/role/TaxesAdditionalInformationDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "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/20191231",
     "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/20191231",
     "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/20191231",
     "presentation": [
      "http://cognex.com/role/SegmentAndGeographicInformationScheduleOfRevenueFromExternalCustomersAndLongLivedAssetsByGeographicalAreasDetail"
     ],
     "xbrltype": "domainItemType"
    },
    "cgnx_OtherThanTemporaryImpairmentLossesInvestmentsPortionRecognizedInEarningsNetnoncurrent": {
     "auth_ref": [],
     "crdr": "debit",
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Other Than Temporary Impairment Losses Investments Portion Recognized In Earnings Net, non current",
        "label": "Other Than Temporary Impairment Losses Investments Portion Recognized In Earnings Net, non current",
        "terseLabel": "Other than temporary impairment loss non-current"
       }
      }
     },
     "localname": "OtherThanTemporaryImpairmentLossesInvestmentsPortionRecognizedInEarningsNetnoncurrent",
     "nsuri": "http://cognex.com/20191231",
     "presentation": [
      "http://cognex.com/role/FairValueMeasurementsAssetsAndLiabilitiesMeasuredAtFairValueOnRecurringBasisDetail"
     ],
     "xbrltype": "monetaryItemType"
    },
    "cgnx_OtherThantheU.SMember": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Other Than the U.S [Member]",
        "label": "Other Than the U.S [Member]",
        "terseLabel": "Other Than the U.S [Member]"
       }
      }
     },
     "localname": "OtherThantheU.SMember",
     "nsuri": "http://cognex.com/20191231",
     "presentation": [
      "http://cognex.com/role/TaxesAdditionalInformationDetails"
     ],
     "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/20191231",
     "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/20191231",
     "presentation": [
      "http://cognex.com/role/SummaryOfSignificantAccountingPoliciesWarrantyDetails"
     ],
     "xbrltype": "durationItemType"
    },
    "cgnx_RepurchaseProgram2014Member": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Repurchase Program 2014 [Member]",
        "label": "Repurchase Program 2014 [Member]",
        "terseLabel": "Repurchase Program 2014 [Member]"
       }
      }
     },
     "localname": "RepurchaseProgram2014Member",
     "nsuri": "http://cognex.com/20191231",
     "presentation": [
      "http://cognex.com/role/ShareholdersEquityAdditionalInformationDetail"
     ],
     "xbrltype": "domainItemType"
    },
    "cgnx_RepurchaseProgramNovember2015Member": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Repurchase Program November 2015 [Member]",
        "label": "Repurchase Program November 2015 [Member]",
        "terseLabel": "Repurchase Program November 2015 [Member]"
       }
      }
     },
     "localname": "RepurchaseProgramNovember2015Member",
     "nsuri": "http://cognex.com/20191231",
     "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/20191231",
     "presentation": [
      "http://cognex.com/role/ShareholdersEquityAdditionalInformationDetail"
     ],
     "xbrltype": "domainItemType"
    },
    "cgnx_RepurchaseProgramTwentyFifteenMember": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Repurchase Program Twenty Fifteen [Member]",
        "label": "Repurchase Program Twenty Fifteen [Member]",
        "terseLabel": "Repurchase Program 2015 [Member]"
       }
      }
     },
     "localname": "RepurchaseProgramTwentyFifteenMember",
     "nsuri": "http://cognex.com/20191231",
     "presentation": [
      "http://cognex.com/role/ShareholdersEquityAdditionalInformationDetail"
     ],
     "xbrltype": "domainItemType"
    },
    "cgnx_Repurchasedsharestotalcost": {
     "auth_ref": [],
     "crdr": "debit",
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Repurchased shares, total cost",
        "label": "Repurchased shares, total cost",
        "terseLabel": "Repurchased shares, total cost"
       }
      }
     },
     "localname": "Repurchasedsharestotalcost",
     "nsuri": "http://cognex.com/20191231",
     "presentation": [
      "http://cognex.com/role/ShareholdersEquityAdditionalInformationDetail"
     ],
     "xbrltype": "monetaryItemType"
    },
    "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/20191231",
     "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/20191231",
     "presentation": [
      "http://cognex.com/role/SummaryOfSignificantAccountingPoliciesSummaryOfSignificantAccountingPoliciesRevenueRecognitionDetails"
     ],
     "xbrltype": "durationItemType"
    },
    "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/20191231",
     "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/20191231",
     "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/20191231",
     "presentation": [
      "http://cognex.com/role/StockBasedCompensationExpenseAdditionalInformationDetail"
     ],
     "xbrltype": "monetaryItemType"
    },
    "cgnx_SharesBasedCompensationArrangementBySharesBasedPaymentAwardOptionsExercisableIntrinsicValue": {
     "auth_ref": [],
     "crdr": "debit",
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Shares based compensation arrangement by shares based payment award options exercisable intrinsic value.",
        "label": "Shares Based Compensation Arrangement By Shares Based Payment Award Options Exercisable Intrinsic Value",
        "terseLabel": "Total intrinsic values of stock options exercised"
       }
      }
     },
     "localname": "SharesBasedCompensationArrangementBySharesBasedPaymentAwardOptionsExercisableIntrinsicValue",
     "nsuri": "http://cognex.com/20191231",
     "presentation": [
      "http://cognex.com/role/StockBasedCompensationExpenseAdditionalInformationDetail"
     ],
     "xbrltype": "monetaryItemType"
    },
    "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/20191231",
     "presentation": [
      "http://cognex.com/role/FairValueMeasurementsAssetsAndLiabilitiesMeasuredAtFairValueOnRecurringBasisDetail"
     ],
     "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/20191231",
     "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/20191231",
     "presentation": [
      "http://cognex.com/role/TaxesAdditionalInformationDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "cgnx_Stateresearchandexperimentationtaxcarryforwards": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "State research and experimentation tax carryforwards",
        "label": "State research and experimentation tax carryforwards",
        "terseLabel": "State research and experimentation tax carryforwards"
       }
      }
     },
     "localname": "Stateresearchandexperimentationtaxcarryforwards",
     "nsuri": "http://cognex.com/20191231",
     "presentation": [
      "http://cognex.com/role/TaxesAdditionalInformationDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "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/20191231",
     "presentation": [
      "http://cognex.com/role/AcquisitionsSualabCoLtdNarrativeDetails",
      "http://cognex.com/role/AcquisitionsSualabCoLtdPurchasePriceAllocationDetails",
      "http://cognex.com/role/GoodwillChangesInCarryingValueOfGoodwillDetail",
      "http://cognex.com/role/TaxesAdditionalInformationDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "cgnx_TaxCutsAndJobsActOf2017IncompleteAccountingChangeInTaxRateDeferredTaxAssetProvisionalIncomeTaxExpense": {
     "auth_ref": [],
     "crdr": "debit",
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Tax Cuts And Jobs Act Of 2017, Incomplete Accounting, Change In Tax Rate, Deferred Tax Asset, Provisional Income Tax Expense",
        "label": "Tax Cuts And Jobs Act Of 2017, Incomplete Accounting, Change In Tax Rate, Deferred Tax Asset, Provisional Income Tax Expense",
        "terseLabel": "Tax expense from write down of deferred tax assets"
       }
      }
     },
     "localname": "TaxCutsAndJobsActOf2017IncompleteAccountingChangeInTaxRateDeferredTaxAssetProvisionalIncomeTaxExpense",
     "nsuri": "http://cognex.com/20191231",
     "presentation": [
      "http://cognex.com/role/TaxesAdditionalInformationDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "cgnx_TaxCutsAndJobsActOf2017IncompleteAccountingTransitionTaxForAccumulatedForeignEarningsProvisionalIncomeTaxExpense": {
     "auth_ref": [],
     "crdr": "debit",
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Tax Cuts And Jobs Act Of 2017, Incomplete Accounting, Transition Tax For Accumulated Foreign Earnings, Provisional Income Tax Expense",
        "label": "Tax Cuts And Jobs Act Of 2017, Incomplete Accounting, Transition Tax For Accumulated Foreign Earnings, Provisional Income Tax Expense",
        "terseLabel": "Estimated tax expense"
       }
      }
     },
     "localname": "TaxCutsAndJobsActOf2017IncompleteAccountingTransitionTaxForAccumulatedForeignEarningsProvisionalIncomeTaxExpense",
     "nsuri": "http://cognex.com/20191231",
     "presentation": [
      "http://cognex.com/role/TaxesAdditionalInformationDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "cgnx_TaxCutsAndJobsActOf2017TransitionTaxForAccumulatedForeignEarningsLiability": {
     "auth_ref": [],
     "crdr": "credit",
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Tax Cuts And Jobs Act Of 2017, Transition Tax For Accumulated Foreign Earnings, Liability",
        "label": "Tax Cuts And Jobs Act Of 2017, Transition Tax For Accumulated Foreign Earnings, Liability",
        "terseLabel": "One-time transition tax payable"
       }
      }
     },
     "localname": "TaxCutsAndJobsActOf2017TransitionTaxForAccumulatedForeignEarningsLiability",
     "nsuri": "http://cognex.com/20191231",
     "presentation": [
      "http://cognex.com/role/TaxesAdditionalInformationDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "cgnx_TaxYearsCoveredThroughAdvancedPricingAgreement": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Tax years covered through Advanced Pricing Agreement.",
        "label": "Tax Years Covered Through Advanced Pricing Agreement",
        "terseLabel": "Tax Years Covered Through Advanced Pricing Agreement"
       }
      }
     },
     "localname": "TaxYearsCoveredThroughAdvancedPricingAgreement",
     "nsuri": "http://cognex.com/20191231",
     "presentation": [
      "http://cognex.com/role/TaxesAdditionalInformationDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "cgnx_Taxdeductiblegoodwill": {
     "auth_ref": [],
     "crdr": "debit",
     "lang": {
      "en-US": {
       "role": {
        "documentation": "tax deductible goodwill",
        "label": "tax deductible goodwill",
        "terseLabel": "Tax deductible goodwill"
       }
      }
     },
     "localname": "Taxdeductiblegoodwill",
     "nsuri": "http://cognex.com/20191231",
     "presentation": [
      "http://cognex.com/role/AcquisitionsVidiSystemsSADetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "cgnx_TaxyearsforAPAagreement": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Tax years for APA agreement",
        "label": "Tax years for APA agreement",
        "terseLabel": "Tax years for APA agreement"
       }
      }
     },
     "localname": "TaxyearsforAPAagreement",
     "nsuri": "http://cognex.com/20191231",
     "presentation": [
      "http://cognex.com/role/TaxesAdditionalInformationDetails"
     ],
     "xbrltype": "durationStringItemType"
    },
    "cgnx_Totalsharesrepurchased": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "total shares repurchased",
        "label": "total shares repurchased",
        "terseLabel": "total shares repurchased"
       }
      }
     },
     "localname": "Totalsharesrepurchased",
     "nsuri": "http://cognex.com/20191231",
     "presentation": [
      "http://cognex.com/role/ShareholdersEquityAdditionalInformationDetail"
     ],
     "xbrltype": "sharesItemType"
    },
    "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/20191231",
     "presentation": [
      "http://cognex.com/role/FairValueMeasurementsAssetsAndLiabilitiesMeasuredAtFairValueOnRecurringBasisDetail"
     ],
     "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/20191231",
     "presentation": [
      "http://cognex.com/role/TaxesAdditionalInformationDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "cgnx_ViDiSystemsS.A.Member": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "ViDi Systems S.A. [Member]",
        "label": "ViDi Systems S.A. [Member]",
        "terseLabel": "ViDi Systems S.A. [Member]"
       }
      }
     },
     "localname": "ViDiSystemsS.A.Member",
     "nsuri": "http://cognex.com/20191231",
     "presentation": [
      "http://cognex.com/role/AcquisitionsVidiSystemsSADetails",
      "http://cognex.com/role/AcquisitionsVidiSystemsSAPurchasePriceAllocationDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "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/20191231",
     "presentation": [
      "http://cognex.com/role/ShareholdersEquityAdditionalInformationDetail"
     ],
     "xbrltype": "integerItemType"
    },
    "country_US": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "label": "UNITED STATES",
        "terseLabel": "United States [Member]"
       }
      }
     },
     "localname": "US",
     "nsuri": "http://xbrl.sec.gov/country/2017-01-31",
     "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/2017-01-31",
     "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/2017-01-31",
     "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/2017-01-31",
     "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/2017-01-31",
     "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/2017-01-31",
     "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/2017-01-31",
     "presentation": [
      "http://cognex.com/role/DerivativeInstrumentsOutstandingForwardContractsDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "currency_KRW": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "label": "Korea (South), Won",
        "terseLabel": "Korean Won [Member]"
       }
      }
     },
     "localname": "KRW",
     "nsuri": "http://xbrl.sec.gov/currency/2017-01-31",
     "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/2017-01-31",
     "presentation": [
      "http://cognex.com/role/DerivativeInstrumentsOutstandingForwardContractsDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "currency_SGD": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "label": "Singapore, Dollars",
        "terseLabel": "Singapore Dollar [Member]"
       }
      }
     },
     "localname": "SGD",
     "nsuri": "http://xbrl.sec.gov/currency/2017-01-31",
     "presentation": [
      "http://cognex.com/role/DerivativeInstrumentsOutstandingForwardContractsDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "currency_TWD": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "label": "Taiwan, New Dollars",
        "terseLabel": "Taiwanese Dollar [Member]"
       }
      }
     },
     "localname": "TWD",
     "nsuri": "http://xbrl.sec.gov/currency/2017-01-31",
     "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/2019-01-31",
     "presentation": [
      "http://cognex.com/role/CoverPage"
     ],
     "xbrltype": "booleanItemType"
    },
    "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/2019-01-31",
     "presentation": [
      "http://cognex.com/role/CoverPage"
     ],
     "xbrltype": "normalizedStringItemType"
    },
    "dei_CoverAbstract": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Cover page.",
        "label": "Cover page."
       }
      }
     },
     "localname": "CoverAbstract",
     "nsuri": "http://xbrl.sec.gov/dei/2019-01-31",
     "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/2019-01-31",
     "presentation": [
      "http://cognex.com/role/CoverPage"
     ],
     "xbrltype": "gMonthDayItemType"
    },
    "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/2019-01-31",
     "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 CCYY format. For a 2006 annual report, which may also provide financial information from prior periods, fiscal 2006 should be given as the fiscal year focus. Example: 2006.",
        "label": "Document Fiscal Year Focus",
        "terseLabel": "Document Fiscal Year Focus"
       }
      }
     },
     "localname": "DocumentFiscalYearFocus",
     "nsuri": "http://xbrl.sec.gov/dei/2019-01-31",
     "presentation": [
      "http://cognex.com/role/CoverPage"
     ],
     "xbrltype": "gYearItemType"
    },
    "dei_DocumentPeriodEndDate": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "The end date of the period reflected on the cover page if a periodic report. For all other reports and registration statements containing historical data, it is the date up through which that historical data is presented.  If there is no historical data in the report, use the filing date. The format of the date is CCYY-MM-DD.",
        "label": "Document Period End Date",
        "terseLabel": "Document Period End Date"
       }
      }
     },
     "localname": "DocumentPeriodEndDate",
     "nsuri": "http://xbrl.sec.gov/dei/2019-01-31",
     "presentation": [
      "http://cognex.com/role/CoverPage"
     ],
     "xbrltype": "dateItemType"
    },
    "dei_DocumentQuarterlyReport": {
     "auth_ref": [
      "r525"
     ],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Boolean flag that is true only for a form used as an quarterly report.",
        "label": "Document Quarterly Report",
        "terseLabel": "Document Quarterly Report"
       }
      }
     },
     "localname": "DocumentQuarterlyReport",
     "nsuri": "http://xbrl.sec.gov/dei/2019-01-31",
     "presentation": [
      "http://cognex.com/role/CoverPage"
     ],
     "xbrltype": "booleanItemType"
    },
    "dei_DocumentTransitionReport": {
     "auth_ref": [
      "r526"
     ],
     "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/2019-01-31",
     "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/2019-01-31",
     "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/2019-01-31",
     "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/2019-01-31",
     "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/2019-01-31",
     "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/2019-01-31",
     "presentation": [
      "http://cognex.com/role/CoverPage"
     ],
     "xbrltype": "stateOrProvinceItemType"
    },
    "dei_EntityCentralIndexKey": {
     "auth_ref": [
      "r527"
     ],
     "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/2019-01-31",
     "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/2019-01-31",
     "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/2019-01-31",
     "presentation": [
      "http://cognex.com/role/CoverPage"
     ],
     "xbrltype": "yesNoItemType"
    },
    "dei_EntityEmergingGrowthCompany": {
     "auth_ref": [
      "r527"
     ],
     "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/2019-01-31",
     "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/2019-01-31",
     "presentation": [
      "http://cognex.com/role/CoverPage"
     ],
     "xbrltype": "fileNumberItemType"
    },
    "dei_EntityFilerCategory": {
     "auth_ref": [
      "r527"
     ],
     "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/2019-01-31",
     "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/2019-01-31",
     "presentation": [
      "http://cognex.com/role/CoverPage"
     ],
     "xbrltype": "edgarStateCountryItemType"
    },
    "dei_EntityInteractiveDataCurrent": {
     "auth_ref": [
      "r528"
     ],
     "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/2019-01-31",
     "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/2019-01-31",
     "presentation": [
      "http://cognex.com/role/CoverPage"
     ],
     "xbrltype": "monetaryItemType"
    },
    "dei_EntityRegistrantName": {
     "auth_ref": [
      "r527"
     ],
     "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/2019-01-31",
     "presentation": [
      "http://cognex.com/role/CoverPage"
     ],
     "xbrltype": "normalizedStringItemType"
    },
    "dei_EntityShellCompany": {
     "auth_ref": [
      "r527"
     ],
     "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/2019-01-31",
     "presentation": [
      "http://cognex.com/role/CoverPage"
     ],
     "xbrltype": "booleanItemType"
    },
    "dei_EntitySmallBusiness": {
     "auth_ref": [
      "r527"
     ],
     "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/2019-01-31",
     "presentation": [
      "http://cognex.com/role/CoverPage"
     ],
     "xbrltype": "booleanItemType"
    },
    "dei_EntityTaxIdentificationNumber": {
     "auth_ref": [
      "r527"
     ],
     "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/2019-01-31",
     "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/2019-01-31",
     "presentation": [
      "http://cognex.com/role/CoverPage"
     ],
     "xbrltype": "yesNoItemType"
    },
    "dei_EntityWellKnownSeasonedIssuer": {
     "auth_ref": [],
     "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/2019-01-31",
     "presentation": [
      "http://cognex.com/role/CoverPage"
     ],
     "xbrltype": "yesNoItemType"
    },
    "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/2019-01-31",
     "presentation": [
      "http://cognex.com/role/CoverPage"
     ],
     "xbrltype": "normalizedStringItemType"
    },
    "dei_Security12bTitle": {
     "auth_ref": [
      "r523"
     ],
     "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/2019-01-31",
     "presentation": [
      "http://cognex.com/role/CoverPage"
     ],
     "xbrltype": "securityTitleItemType"
    },
    "dei_SecurityExchangeName": {
     "auth_ref": [
      "r524"
     ],
     "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/2019-01-31",
     "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/2019-01-31",
     "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/2018-01-31",
     "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/2018-01-31",
     "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/2018-01-31",
     "presentation": [
      "http://cognex.com/role/RevenueRecognitionDisaggregationByGeographyAndTypeDetails",
      "http://cognex.com/role/SegmentAndGeographicInformationAdditionalInformationDetail",
      "http://cognex.com/role/SegmentAndGeographicInformationScheduleOfRevenueFromExternalCustomersAndLongLivedAssetsByGeographicalAreasDetail"
     ],
     "xbrltype": "domainItemType"
    },
    "srt_LitigationCaseAxis": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Information by type of judicial proceeding, alternative dispute resolution or claim.",
        "label": "Litigation Case [Axis]",
        "terseLabel": "Litigation Case [Axis]"
       }
      }
     },
     "localname": "LitigationCaseAxis",
     "nsuri": "http://fasb.org/srt/2018-01-31",
     "presentation": [
      "http://cognex.com/role/IndemnificationProvisionsNarrativeDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "srt_LitigationCaseTypeDomain": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Judicial proceeding, alternative dispute resolution or claim. For example, but not limited to, name of case, category of litigation, or other differentiating information.",
        "label": "Litigation Case [Domain]",
        "terseLabel": "Litigation Case [Domain]"
       }
      }
     },
     "localname": "LitigationCaseTypeDomain",
     "nsuri": "http://fasb.org/srt/2018-01-31",
     "presentation": [
      "http://cognex.com/role/IndemnificationProvisionsNarrativeDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "srt_MaximumMember": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Upper limit of the provided range.",
        "label": "Maximum [Member]",
        "terseLabel": "Maximum [Member]"
       }
      }
     },
     "localname": "MaximumMember",
     "nsuri": "http://fasb.org/srt/2018-01-31",
     "presentation": [
      "http://cognex.com/role/AcquisitionsSualabCoLtdNarrativeDetails",
      "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": [],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Lower limit of the provided range.",
        "label": "Minimum [Member]",
        "terseLabel": "Minimum [Member]"
       }
      }
     },
     "localname": "MinimumMember",
     "nsuri": "http://fasb.org/srt/2018-01-31",
     "presentation": [
      "http://cognex.com/role/AcquisitionsSualabCoLtdNarrativeDetails",
      "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_ProductOrServiceAxis": {
     "auth_ref": [
      "r166",
      "r267",
      "r270",
      "r510"
     ],
     "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/2018-01-31",
     "presentation": [
      "http://cognex.com/role/RevenueRecognitionDisaggregationByGeographyAndTypeDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "srt_ProductsAndServicesDomain": {
     "auth_ref": [],
     "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/2018-01-31",
     "presentation": [
      "http://cognex.com/role/RevenueRecognitionDisaggregationByGeographyAndTypeDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "srt_RangeAxis": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Information by range, including, but not limited to, upper and lower bounds.",
        "label": "Range [Axis]",
        "terseLabel": "Range [Axis]"
       }
      }
     },
     "localname": "RangeAxis",
     "nsuri": "http://fasb.org/srt/2018-01-31",
     "presentation": [
      "http://cognex.com/role/AcquisitionsSualabCoLtdNarrativeDetails",
      "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": [],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Extent of variation, for example, but not limited to, upper and lower bounds.",
        "label": "Range [Domain]",
        "terseLabel": "Range [Domain]"
       }
      }
     },
     "localname": "RangeMember",
     "nsuri": "http://fasb.org/srt/2018-01-31",
     "presentation": [
      "http://cognex.com/role/AcquisitionsSualabCoLtdNarrativeDetails",
      "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_RestatementAdjustmentMember": {
     "auth_ref": [
      "r123",
      "r127",
      "r128",
      "r129"
     ],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Effect of a correction of an error, other prior year adjustment, or application of a new accounting pronouncement on a financial statement line item or any per share amounts. The cumulative effect of the change on retained earnings or net assets in the statement of financial position would also be represented under this domain member.",
        "label": "Restatement Adjustment [Member]",
        "terseLabel": "Effect of change",
        "verboseLabel": "Adjustment [Member]"
       }
      }
     },
     "localname": "RestatementAdjustmentMember",
     "nsuri": "http://fasb.org/srt/2018-01-31",
     "presentation": [
      "http://cognex.com/role/RevenueRecognitionBalanceSheetImpactDetails",
      "http://cognex.com/role/RevenueRecognitionStatementOfOperationsImpactDetails",
      "http://cognex.com/role/TaxesScheduleOfChangeInAccountingPolicyDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "srt_RestatementAxis": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Information by revision of previously issued financial statements.",
        "label": "Restatement [Axis]",
        "terseLabel": "Restatement [Axis]"
       }
      }
     },
     "localname": "RestatementAxis",
     "nsuri": "http://fasb.org/srt/2018-01-31",
     "presentation": [
      "http://cognex.com/role/RevenueRecognitionBalanceSheetImpactDetails",
      "http://cognex.com/role/RevenueRecognitionStatementOfOperationsImpactDetails",
      "http://cognex.com/role/TaxesScheduleOfChangeInAccountingPolicyDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "srt_RestatementDomain": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Revision of previously issued financial statements.",
        "label": "Restatement [Domain]",
        "terseLabel": "Restatement [Domain]"
       }
      }
     },
     "localname": "RestatementDomain",
     "nsuri": "http://fasb.org/srt/2018-01-31",
     "presentation": [
      "http://cognex.com/role/RevenueRecognitionBalanceSheetImpactDetails",
      "http://cognex.com/role/RevenueRecognitionStatementOfOperationsImpactDetails",
      "http://cognex.com/role/TaxesScheduleOfChangeInAccountingPolicyDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "srt_ScenarioPreviouslyReportedMember": {
     "auth_ref": [
      "r127",
      "r128",
      "r129"
     ],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Represents the amount as previously reported before the correction of an error or other adjustment.",
        "label": "Previously Reported [Member]",
        "terseLabel": "As computed under the previous accounting policy",
        "verboseLabel": "As previously reported"
       }
      }
     },
     "localname": "ScenarioPreviouslyReportedMember",
     "nsuri": "http://fasb.org/srt/2018-01-31",
     "presentation": [
      "http://cognex.com/role/RevenueRecognitionBalanceSheetImpactDetails",
      "http://cognex.com/role/RevenueRecognitionStatementOfOperationsImpactDetails",
      "http://cognex.com/role/TaxesScheduleOfChangeInAccountingPolicyDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "srt_ScheduleOfValuationAndQualifyingAccountsDisclosureTextBlock": {
     "auth_ref": [
      "r119",
      "r531"
     ],
     "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/2018-01-31",
     "presentation": [
      "http://cognex.com/role/ScheduleIiValuationAndQualifyingAccounts"
     ],
     "xbrltype": "textBlockItemType"
    },
    "srt_SegmentGeographicalDomain": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Geographical area.",
        "label": "Geographical [Domain]",
        "terseLabel": "Geographical [Domain]"
       }
      }
     },
     "localname": "SegmentGeographicalDomain",
     "nsuri": "http://fasb.org/srt/2018-01-31",
     "presentation": [
      "http://cognex.com/role/RevenueRecognitionDisaggregationByGeographyAndTypeDetails",
      "http://cognex.com/role/SegmentAndGeographicInformationAdditionalInformationDetail",
      "http://cognex.com/role/SegmentAndGeographicInformationScheduleOfRevenueFromExternalCustomersAndLongLivedAssetsByGeographicalAreasDetail",
      "http://cognex.com/role/TaxesAdditionalInformationDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "srt_StatementGeographicalAxis": {
     "auth_ref": [
      "r168",
      "r267",
      "r271",
      "r517",
      "r521",
      "r529",
      "r530"
     ],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Information by geographical components.",
        "label": "Geographical [Axis]",
        "terseLabel": "Geographical [Axis]"
       }
      }
     },
     "localname": "StatementGeographicalAxis",
     "nsuri": "http://fasb.org/srt/2018-01-31",
     "presentation": [
      "http://cognex.com/role/RevenueRecognitionDisaggregationByGeographyAndTypeDetails",
      "http://cognex.com/role/SegmentAndGeographicInformationAdditionalInformationDetail",
      "http://cognex.com/role/SegmentAndGeographicInformationScheduleOfRevenueFromExternalCustomersAndLongLivedAssetsByGeographicalAreasDetail",
      "http://cognex.com/role/TaxesAdditionalInformationDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "srt_ValuationAndQualifyingAccountsAbstract": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "label": "SEC Schedule, 12-09, Valuation and Qualifying Accounts [Abstract]"
       }
      }
     },
     "localname": "ValuationAndQualifyingAccountsAbstract",
     "nsuri": "http://fasb.org/srt/2018-01-31",
     "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/2018-01-31",
     "presentation": [
      "http://cognex.com/role/ScheduleIiValuationAndQualifyingAccountsDetail"
     ],
     "xbrltype": "stringItemType"
    },
    "srt_ValuationAndQualifyingAccountsDisclosureTable": {
     "auth_ref": [
      "r119",
      "r531"
     ],
     "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/2018-01-31",
     "presentation": [
      "http://cognex.com/role/ScheduleIiValuationAndQualifyingAccountsDetail"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_AOCIAttributableToParentNetOfTaxRollForward": {
     "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": "AOCI Attributable to Parent, Net of Tax [Roll Forward]",
        "terseLabel": "Accumulated Other Comprehensive Income (Loss), Net of Tax [Roll Forward]"
       }
      }
     },
     "localname": "AOCIAttributableToParentNetOfTaxRollForward",
     "nsuri": "http://fasb.org/us-gaap/2018-01-31",
     "presentation": [
      "http://cognex.com/role/DerivativeInstrumentsChangesInAociDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_AccountingChangesAndErrorCorrectionsAbstract": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "label": "Accounting Changes and Error Corrections [Abstract]"
       }
      }
     },
     "localname": "AccountingChangesAndErrorCorrectionsAbstract",
     "nsuri": "http://fasb.org/us-gaap/2018-01-31",
     "xbrltype": "stringItemType"
    },
    "us-gaap_AccountingPoliciesAbstract": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "label": "Accounting Policies [Abstract]"
       }
      }
     },
     "localname": "AccountingPoliciesAbstract",
     "nsuri": "http://fasb.org/us-gaap/2018-01-31",
     "xbrltype": "stringItemType"
    },
    "us-gaap_AccountingStandardsUpdate201602Member": {
     "auth_ref": [
      "r457"
     ],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Accounting Standards Update 2016-02 Leases (Topic 842).",
        "label": "Accounting Standards Update 2016-02 [Member]",
        "terseLabel": "Accounting Standards Update 2016-02 [Member]"
       }
      }
     },
     "localname": "AccountingStandardsUpdate201602Member",
     "nsuri": "http://fasb.org/us-gaap/2018-01-31",
     "presentation": [
      "http://cognex.com/role/LeasesDetails",
      "http://cognex.com/role/NewPronouncementsDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_AccountingStandardsUpdate201616Member": {
     "auth_ref": [
      "r355",
      "r356"
     ],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Accounting Standards Update 2016-16 Income Taxes (Topic 740): Intra-Entity Transfers of Assets Other Than Inventory.",
        "label": "Accounting Standards Update 2016-16 [Member]",
        "terseLabel": "Accounting Standards Update 2016-16 [Member]"
       }
      }
     },
     "localname": "AccountingStandardsUpdate201616Member",
     "nsuri": "http://fasb.org/us-gaap/2018-01-31",
     "presentation": [
      "http://cognex.com/role/TaxesAdditionalInformationDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_AccountsPayableAndAccruedLiabilitiesDisclosureTextBlock": {
     "auth_ref": [
      "r43"
     ],
     "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/2018-01-31",
     "presentation": [
      "http://cognex.com/role/AccruedExpenses"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_AccountsPayableCurrent": {
     "auth_ref": [
      "r42"
     ],
     "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/2018-01-31",
     "presentation": [
      "http://cognex.com/role/ConsolidatedBalanceSheets"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_AccountsReceivableMember": {
     "auth_ref": [],
     "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/2018-01-31",
     "presentation": [
      "http://cognex.com/role/SegmentAndGeographicInformationAdditionalInformationDetail"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_AccountsReceivableNetCurrent": {
     "auth_ref": [
      "r20",
      "r268"
     ],
     "calculation": {
      "http://cognex.com/role/ConsolidatedBalanceSheets": {
       "order": 3.0,
       "parentTag": "us-gaap_AssetsCurrent",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Amount due from customers or clients, within one year of the balance sheet date (or the normal operating cycle, whichever is longer), for goods or services (including trade receivables) that have been delivered or sold in the normal course of business, reduced to the estimated net realizable fair value by an allowance established by the entity of the amount it deems uncertain of collection.",
        "label": "Accounts Receivable, Net, Current",
        "terseLabel": "Accounts receivable, less reserves of $1,821 and $1,646 in 2019 and 2018, respectively"
       }
      }
     },
     "localname": "AccountsReceivableNetCurrent",
     "nsuri": "http://fasb.org/us-gaap/2018-01-31",
     "presentation": [
      "http://cognex.com/role/ConsolidatedBalanceSheets"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_AccretionAmortizationOfDiscountsAndPremiumsInvestments": {
     "auth_ref": [
      "r100"
     ],
     "calculation": {
      "http://cognex.com/role/ConsolidatedStatementsOfCashFlows": {
       "order": 7.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/2018-01-31",
     "presentation": [
      "http://cognex.com/role/ConsolidatedStatementsOfCashFlows"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_AccruedBonusesCurrent": {
     "auth_ref": [
      "r5",
      "r6",
      "r45"
     ],
     "calculation": {
      "http://cognex.com/role/AccruedExpensesConstituentsOfAccruedExpensesDetail": {
       "order": 6.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": "Company bonuses"
       }
      }
     },
     "localname": "AccruedBonusesCurrent",
     "nsuri": "http://fasb.org/us-gaap/2018-01-31",
     "presentation": [
      "http://cognex.com/role/AccruedExpensesConstituentsOfAccruedExpensesDetail"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_AccruedIncomeTaxesCurrent": {
     "auth_ref": [
      "r12",
      "r482",
      "r501"
     ],
     "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/2018-01-31",
     "presentation": [
      "http://cognex.com/role/ConsolidatedBalanceSheets",
      "http://cognex.com/role/RevenueRecognitionBalanceSheetImpactDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_AccruedIncomeTaxesNoncurrent": {
     "auth_ref": [
      "r13",
      "r482",
      "r501"
     ],
     "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/2018-01-31",
     "presentation": [
      "http://cognex.com/role/ConsolidatedBalanceSheets"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_AccruedLiabilitiesCurrent": {
     "auth_ref": [
      "r45"
     ],
     "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/2018-01-31",
     "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/2018-01-31",
     "presentation": [
      "http://cognex.com/role/AccruedExpensesConstituentsOfAccruedExpensesDetail"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_AccruedSalariesCurrent": {
     "auth_ref": [
      "r5",
      "r6",
      "r45"
     ],
     "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, commissions, and payroll taxes"
       }
      }
     },
     "localname": "AccruedSalariesCurrent",
     "nsuri": "http://fasb.org/us-gaap/2018-01-31",
     "presentation": [
      "http://cognex.com/role/AccruedExpensesConstituentsOfAccruedExpensesDetail"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_AccruedVacationCurrent": {
     "auth_ref": [
      "r5",
      "r45",
      "r273"
     ],
     "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/2018-01-31",
     "presentation": [
      "http://cognex.com/role/AccruedExpensesConstituentsOfAccruedExpensesDetail"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment": {
     "auth_ref": [
      "r39",
      "r223"
     ],
     "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/2018-01-31",
     "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/2018-01-31",
     "presentation": [
      "http://cognex.com/role/PropertyPlantAndEquipmentAdditionalInformationDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_AccumulatedOtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax": {
     "auth_ref": [
      "r63",
      "r66",
      "r68",
      "r69"
     ],
     "crdr": "credit",
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Accumulated unrealized gain (loss), after tax, on investment in debt security measured at fair value with change in fair value recognized in other comprehensive income (available-for-sale).",
        "label": "Accumulated Other Comprehensive Income (Loss), 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/2018-01-31",
     "presentation": [
      "http://cognex.com/role/SummaryOfSignificantAccountingPoliciesComprehensiveIncomeLossDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_AccumulatedOtherComprehensiveIncomeLossForeignCurrencyTranslationAdjustmentNetOfTax": {
     "auth_ref": [
      "r61",
      "r66",
      "r68",
      "r69",
      "r446",
      "r451"
     ],
     "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/2018-01-31",
     "presentation": [
      "http://cognex.com/role/SummaryOfSignificantAccountingPoliciesComprehensiveIncomeLossDetails"
     ],
     "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/2018-01-31",
     "presentation": [
      "http://cognex.com/role/DerivativeInstrumentsChangesInAociDetails",
      "http://cognex.com/role/SummaryOfSignificantAccountingPoliciesComprehensiveIncomeLossDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax": {
     "auth_ref": [
      "r66",
      "r68",
      "r69"
     ],
     "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",
        "periodEndLabel": "Ending balance",
        "periodStartLabel": "Beginning balance",
        "terseLabel": "Accumulated other comprehensive loss, net of tax",
        "verboseLabel": "Balance as of December 31, 2018"
       }
      }
     },
     "localname": "AccumulatedOtherComprehensiveIncomeLossNetOfTax",
     "nsuri": "http://fasb.org/us-gaap/2018-01-31",
     "presentation": [
      "http://cognex.com/role/ConsolidatedBalanceSheets",
      "http://cognex.com/role/DerivativeInstrumentsChangesInAociDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_AccumulatedOtherComprehensiveIncomeLossTable": {
     "auth_ref": [],
     "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/2018-01-31",
     "presentation": [
      "http://cognex.com/role/DerivativeInstrumentsChangesInAociDetails",
      "http://cognex.com/role/SummaryOfSignificantAccountingPoliciesComprehensiveIncomeLossDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_AccumulatedOtherComprehensiveIncomeMember": {
     "auth_ref": [
      "r65",
      "r69",
      "r72",
      "r392"
     ],
     "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/2018-01-31",
     "presentation": [
      "http://cognex.com/role/ConsolidatedStatementsOfShareholdersEquity",
      "http://cognex.com/role/SummaryOfSignificantAccountingPoliciesComprehensiveIncomeLossDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife": {
     "auth_ref": [
      "r208"
     ],
     "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/2018-01-31",
     "presentation": [
      "http://cognex.com/role/AcquisitionsGviVenturesIncDetails",
      "http://cognex.com/role/AcquisitionsSualabCoLtdNarrativeDetails",
      "http://cognex.com/role/AcquisitionsVidiSystemsSADetails"
     ],
     "xbrltype": "durationItemType"
    },
    "us-gaap_AdditionalPaidInCapitalCommonStock": {
     "auth_ref": [
      "r21"
     ],
     "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/2018-01-31",
     "presentation": [
      "http://cognex.com/role/ConsolidatedBalanceSheets"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_AdditionalPaidInCapitalMember": {
     "auth_ref": [],
     "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/2018-01-31",
     "presentation": [
      "http://cognex.com/role/ConsolidatedStatementsOfShareholdersEquity"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_AdjustmentForLongTermIntercompanyTransactionsNetOfTax": {
     "auth_ref": [
      "r441",
      "r447",
      "r448",
      "r451"
     ],
     "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/2018-01-31",
     "presentation": [
      "http://cognex.com/role/SummaryOfSignificantAccountingPoliciesComprehensiveIncomeLossDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_AdjustmentsForNewAccountingPronouncementsAxis": {
     "auth_ref": [
      "r122"
     ],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Information by new accounting pronouncement.",
        "label": "Adjustments for New Accounting Pronouncements [Axis]",
        "terseLabel": "Adjustments for New Accounting Pronouncements [Axis]"
       }
      }
     },
     "localname": "AdjustmentsForNewAccountingPronouncementsAxis",
     "nsuri": "http://fasb.org/us-gaap/2018-01-31",
     "presentation": [
      "http://cognex.com/role/LeasesDetails",
      "http://cognex.com/role/NewPronouncementsDetails",
      "http://cognex.com/role/RevenueRecognitionBalanceSheetImpactDetails",
      "http://cognex.com/role/RevenueRecognitionStatementOfOperationsImpactDetails",
      "http://cognex.com/role/TaxesAdditionalInformationDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue": {
     "auth_ref": [
      "r279",
      "r281",
      "r316",
      "r317"
     ],
     "crdr": "credit",
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Amount of increase to additional paid-in capital (APIC) from recognition of equity-based compensation.",
        "label": "Adjustments to Additional Paid in Capital, Share-based Compensation, Requisite Service Period Recognition",
        "terseLabel": "Stock-based compensation expense"
       }
      }
     },
     "localname": "AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue",
     "nsuri": "http://fasb.org/us-gaap/2018-01-31",
     "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/2018-01-31",
     "presentation": [
      "http://cognex.com/role/ConsolidatedStatementsOfCashFlows"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_AdvertisingCostsPolicyTextBlock": {
     "auth_ref": [
      "r106",
      "r195",
      "r196"
     ],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Disclosure of accounting policy for advertising costs. For those costs that cannot be capitalized, discloses whether such costs are expensed as incurred or the first period in which the advertising takes place. For direct response advertising costs that are capitalized, describes those assets and the accounting policy used, including a description of the qualifying activity, the types of costs capitalized and the related amortization period. An entity also may disclose its accounting policy for cooperative advertising arrangements.",
        "label": "Advertising Costs, Policy [Policy Text Block]",
        "terseLabel": "Advertising Costs"
       }
      }
     },
     "localname": "AdvertisingCostsPolicyTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2018-01-31",
     "presentation": [
      "http://cognex.com/role/SummaryOfSignificantAccountingPoliciesPolicies"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_AdvertisingExpense": {
     "auth_ref": [
      "r319"
     ],
     "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/2018-01-31",
     "presentation": [
      "http://cognex.com/role/SummaryOfSignificantAccountingPoliciesAdvertisingCostsDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_AllocatedShareBasedCompensationExpense": {
     "auth_ref": [
      "r281",
      "r310",
      "r315"
     ],
     "crdr": "debit",
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Represents the expense recognized during the period arising from equity-based compensation arrangements (for example, shares of stock, unit, stock options or other equity instruments) with employees, directors and certain consultants qualifying for treatment as employees.",
        "label": "Allocated Share-based Compensation Expense",
        "verboseLabel": "Stock-based compensation expense"
       }
      }
     },
     "localname": "AllocatedShareBasedCompensationExpense",
     "nsuri": "http://fasb.org/us-gaap/2018-01-31",
     "presentation": [
      "http://cognex.com/role/StockBasedCompensationExpenseAdditionalInformationDetail",
      "http://cognex.com/role/StockBasedCompensationExpenseStockBasedCompensationExpenseDetail"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_AmortizationOfIntangibleAssets": {
     "auth_ref": [
      "r99",
      "r206",
      "r214"
     ],
     "calculation": {
      "http://cognex.com/role/ConsolidatedStatementsOfCashFlows": {
       "order": 5.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/2018-01-31",
     "presentation": [
      "http://cognex.com/role/ConsolidatedStatementsOfCashFlows"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount": {
     "auth_ref": [
      "r137"
     ],
     "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",
        "verboseLabel": "Stock not included in calculation of diluted net loss per share (in shares)"
       }
      }
     },
     "localname": "AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount",
     "nsuri": "http://fasb.org/us-gaap/2018-01-31",
     "presentation": [
      "http://cognex.com/role/SelectedQuarterlyFinancialDataUnauditedDetails",
      "http://cognex.com/role/WeightedAverageSharesAdditionalInformationDetail"
     ],
     "xbrltype": "sharesItemType"
    },
    "us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis": {
     "auth_ref": [
      "r137"
     ],
     "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/2018-01-31",
     "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/2018-01-31",
     "presentation": [
      "http://cognex.com/role/WeightedAverageSharesAdditionalInformationDetail"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_AntidilutiveSecuritiesNameDomain": {
     "auth_ref": [
      "r137"
     ],
     "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/2018-01-31",
     "presentation": [
      "http://cognex.com/role/WeightedAverageSharesAdditionalInformationDetail"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_AssetBackedSecuritiesMember": {
     "auth_ref": [
      "r183",
      "r274"
     ],
     "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/2018-01-31",
     "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": [
      "r99",
      "r220"
     ],
     "calculation": {
      "http://cognex.com/role/ConsolidatedStatementsOfCashFlows": {
       "order": 6.0,
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": 1.0
      }
     },
     "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": "Impairment of intangible assets"
       }
      }
     },
     "localname": "AssetImpairmentCharges",
     "nsuri": "http://fasb.org/us-gaap/2018-01-31",
     "presentation": [
      "http://cognex.com/role/ConsolidatedStatementsOfCashFlows"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_Assets": {
     "auth_ref": [
      "r165",
      "r481",
      "r500"
     ],
     "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/2018-01-31",
     "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/2018-01-31",
     "presentation": [
      "http://cognex.com/role/ConsolidatedBalanceSheets"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_AssetsCurrent": {
     "auth_ref": [
      "r3",
      "r4",
      "r53"
     ],
     "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/2018-01-31",
     "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/2018-01-31",
     "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/2018-01-31",
     "presentation": [
      "http://cognex.com/role/FairValueMeasurementsAssetsAndLiabilitiesMeasuredAtFairValueOnRecurringBasisDetail"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_AvailableForSaleDebtSecuritiesAmortizedCostBasis": {
     "auth_ref": [
      "r176"
     ],
     "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/2018-01-31",
     "presentation": [
      "http://cognex.com/role/CashCashEquivalentsAndInvestmentsAmortizedCostToFairValueDetail"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_AvailableForSaleSecuritiesAccumulatedGrossUnrealizedGainBeforeTax": {
     "auth_ref": [
      "r178"
     ],
     "calculation": {
      "http://cognex.com/role/CashCashEquivalentsAndInvestmentsAmortizedCostToFairValueDetail": {
       "order": 1.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 investments in debt and equity securities classified as available-for-sale.",
        "label": "Available-for-sale Securities, Accumulated Gross Unrealized Gain, before Tax",
        "terseLabel": "Gross Unrealized Gains"
       }
      }
     },
     "localname": "AvailableForSaleSecuritiesAccumulatedGrossUnrealizedGainBeforeTax",
     "nsuri": "http://fasb.org/us-gaap/2018-01-31",
     "presentation": [
      "http://cognex.com/role/CashCashEquivalentsAndInvestmentsAmortizedCostToFairValueDetail"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_AvailableForSaleSecuritiesAccumulatedGrossUnrealizedLossBeforeTax": {
     "auth_ref": [],
     "calculation": {
      "http://cognex.com/role/CashCashEquivalentsAndInvestmentsAmortizedCostToFairValueDetail": {
       "order": 2.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 investments in debt and equity securities classified as available-for-sale.",
        "label": "Available-for-sale Securities, Accumulated Gross Unrealized Loss, before Tax",
        "negatedLabel": "Gross Unrealized Losses"
       }
      }
     },
     "localname": "AvailableForSaleSecuritiesAccumulatedGrossUnrealizedLossBeforeTax",
     "nsuri": "http://fasb.org/us-gaap/2018-01-31",
     "presentation": [
      "http://cognex.com/role/CashCashEquivalentsAndInvestmentsAmortizedCostToFairValueDetail"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPosition12MonthsOrLongerAccumulatedLoss": {
     "auth_ref": [],
     "calculation": {
      "http://cognex.com/role/CashCashEquivalentsAndInvestmentsGrossUnrealizedLossesAndFairValueForAvailableForSaleInvestmentsDetail": {
       "order": 2.0,
       "parentTag": "us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionAccumulatedLoss",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Amount of accumulated unrealized loss on investments in debt and equity securities classified as available-for-sale that have been in a continuous loss position for twelve months or longer.",
        "label": "Available-for-sale Securities, Continuous Unrealized Loss Position, 12 Months or Longer, Accumulated Loss",
        "negatedLabel": "Unrealized Losses, Greater than 12 Months"
       }
      }
     },
     "localname": "AvailableForSaleSecuritiesContinuousUnrealizedLossPosition12MonthsOrLongerAccumulatedLoss",
     "nsuri": "http://fasb.org/us-gaap/2018-01-31",
     "presentation": [
      "http://cognex.com/role/CashCashEquivalentsAndInvestmentsGrossUnrealizedLossesAndFairValueForAvailableForSaleInvestmentsDetail"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionAccumulatedLoss": {
     "auth_ref": [
      "r185"
     ],
     "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 investments in debt and equity securities classified as available-for-sale in a continuous loss position.",
        "label": "Available-for-sale Securities, Continuous Unrealized Loss Position, Accumulated Loss",
        "negatedTotalLabel": "Unrealized Losses"
       }
      }
     },
     "localname": "AvailableForSaleSecuritiesContinuousUnrealizedLossPositionAccumulatedLoss",
     "nsuri": "http://fasb.org/us-gaap/2018-01-31",
     "presentation": [
      "http://cognex.com/role/CashCashEquivalentsAndInvestmentsGrossUnrealizedLossesAndFairValueForAvailableForSaleInvestmentsDetail"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionFairValue": {
     "auth_ref": [],
     "calculation": {
      "http://cognex.com/role/CashCashEquivalentsAndInvestmentsGrossUnrealizedLossesAndFairValueForAvailableForSaleInvestmentsDetail": {
       "order": null,
       "parentTag": null,
       "root": true,
       "weight": null
      }
     },
     "crdr": "debit",
     "lang": {
      "en-US": {
       "role": {
        "documentation": "This item represents the aggregate fair value of investments in debt and equity securities in an unrealized loss position which are categorized neither as held-to-maturity nor trading securities.",
        "label": "Available-for-sale Securities, Continuous Unrealized Loss Position, Fair Value",
        "totalLabel": "Fair Value"
       }
      }
     },
     "localname": "AvailableForSaleSecuritiesContinuousUnrealizedLossPositionFairValue",
     "nsuri": "http://fasb.org/us-gaap/2018-01-31",
     "presentation": [
      "http://cognex.com/role/CashCashEquivalentsAndInvestmentsGrossUnrealizedLossesAndFairValueForAvailableForSaleInvestmentsDetail"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionLessThan12MonthsAccumulatedLoss": {
     "auth_ref": [],
     "calculation": {
      "http://cognex.com/role/CashCashEquivalentsAndInvestmentsGrossUnrealizedLossesAndFairValueForAvailableForSaleInvestmentsDetail": {
       "order": 1.0,
       "parentTag": "us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionAccumulatedLoss",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Amount of accumulated unrealized loss on investments in debt and equity securities classified as available-for-sale that have been in a continuous loss position for less than twelve months.",
        "label": "Available-for-sale Securities, Continuous Unrealized Loss Position, Less than 12 Months, Accumulated Loss",
        "negatedLabel": "Unrealized Losses, Less than 12 months"
       }
      }
     },
     "localname": "AvailableForSaleSecuritiesContinuousUnrealizedLossPositionLessThan12MonthsAccumulatedLoss",
     "nsuri": "http://fasb.org/us-gaap/2018-01-31",
     "presentation": [
      "http://cognex.com/role/CashCashEquivalentsAndInvestmentsGrossUnrealizedLossesAndFairValueForAvailableForSaleInvestmentsDetail"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionLessThanTwelveMonthsFairValue": {
     "auth_ref": [],
     "calculation": {
      "http://cognex.com/role/CashCashEquivalentsAndInvestmentsGrossUnrealizedLossesAndFairValueForAvailableForSaleInvestmentsDetail": {
       "order": 2.0,
       "parentTag": "us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionFairValue",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-US": {
       "role": {
        "documentation": "This item represents the aggregate fair value of investments in debt and equity securities categorized neither as held-to-maturity nor trading securities that have been in a continuous unrealized loss position for less than twelve months.",
        "label": "Available-for-sale Securities, Continuous Unrealized Loss Position, Less than Twelve Months, Fair Value",
        "terseLabel": "Fair Value, Less than 12 months"
       }
      }
     },
     "localname": "AvailableForSaleSecuritiesContinuousUnrealizedLossPositionLessThanTwelveMonthsFairValue",
     "nsuri": "http://fasb.org/us-gaap/2018-01-31",
     "presentation": [
      "http://cognex.com/role/CashCashEquivalentsAndInvestmentsGrossUnrealizedLossesAndFairValueForAvailableForSaleInvestmentsDetail"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionTwelveMonthsOrLongerFairValue": {
     "auth_ref": [],
     "calculation": {
      "http://cognex.com/role/CashCashEquivalentsAndInvestmentsGrossUnrealizedLossesAndFairValueForAvailableForSaleInvestmentsDetail": {
       "order": 1.0,
       "parentTag": "us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionFairValue",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-US": {
       "role": {
        "documentation": "This item represents the aggregate fair value of investments in debt and equity securities categorized neither as held-to-maturity nor trading securities that have been in a continuous unrealized loss position for twelve months or longer.",
        "label": "Available-for-sale Securities, Continuous Unrealized Loss Position, Twelve Months or Longer, Fair Value",
        "terseLabel": "Fair Value, Greater than 12 Months"
       }
      }
     },
     "localname": "AvailableForSaleSecuritiesContinuousUnrealizedLossPositionTwelveMonthsOrLongerFairValue",
     "nsuri": "http://fasb.org/us-gaap/2018-01-31",
     "presentation": [
      "http://cognex.com/role/CashCashEquivalentsAndInvestmentsGrossUnrealizedLossesAndFairValueForAvailableForSaleInvestmentsDetail"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_AvailableForSaleSecuritiesDebtMaturitiesWithinOneYearFairValue": {
     "auth_ref": [
      "r179",
      "r181",
      "r495"
     ],
     "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), maturing in next fiscal year following latest fiscal year. Excludes interim and annual periods when interim period is reported on rolling approach, from latest statement of financial position date.",
        "label": "Debt Securities, Available-for-sale, Maturity, Allocated and Single Maturity Date, within One Year, Fair Value",
        "terseLabel": "Less than 1 Year"
       }
      }
     },
     "localname": "AvailableForSaleSecuritiesDebtMaturitiesWithinOneYearFairValue",
     "nsuri": "http://fasb.org/us-gaap/2018-01-31",
     "presentation": [
      "http://cognex.com/role/CashCashEquivalentsAndInvestmentsEffectiveMaturityDatesOfAvailableForSaleInvestmentsDetail"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_AvailableForSaleSecuritiesDebtSecurities": {
     "auth_ref": [
      "r174",
      "r177"
     ],
     "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/2018-01-31",
     "presentation": [
      "http://cognex.com/role/CashCashEquivalentsAndInvestmentsAmortizedCostToFairValueDetail",
      "http://cognex.com/role/CashCashEquivalentsAndInvestmentsEffectiveMaturityDatesOfAvailableForSaleInvestmentsDetail"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_AvailableForSaleSecuritiesDebtSecuritiesCurrent": {
     "auth_ref": [
      "r175"
     ],
     "calculation": {
      "http://cognex.com/role/CashCashEquivalentsAndInvestmentsComponentsOfCashCashEquivalentsAndInvestmentsDetail": {
       "order": 2.0,
       "parentTag": "cgnx_CashCashEquivalentsShortTermAndLongTermInvestments",
       "weight": 1.0
      },
      "http://cognex.com/role/ConsolidatedBalanceSheets": {
       "order": 2.0,
       "parentTag": "us-gaap_AssetsCurrent",
       "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"
       }
      }
     },
     "localname": "AvailableForSaleSecuritiesDebtSecuritiesCurrent",
     "nsuri": "http://fasb.org/us-gaap/2018-01-31",
     "presentation": [
      "http://cognex.com/role/CashCashEquivalentsAndInvestmentsComponentsOfCashCashEquivalentsAndInvestmentsDetail",
      "http://cognex.com/role/ConsolidatedBalanceSheets"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_AvailableForSaleSecuritiesDebtSecuritiesNoncurrent": {
     "auth_ref": [
      "r175"
     ],
     "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 net 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/2018-01-31",
     "presentation": [
      "http://cognex.com/role/CashCashEquivalentsAndInvestmentsComponentsOfCashCashEquivalentsAndInvestmentsDetail"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_AvailableForSaleSecuritiesGrossRealizedGains": {
     "auth_ref": [],
     "crdr": "credit",
     "lang": {
      "en-US": {
       "role": {
        "documentation": "This item represents the gross profit realized on the sale of debt or equity securities categorized neither as held-to-maturity nor trading securities.",
        "label": "Available-for-sale Securities, Gross Realized Gains",
        "terseLabel": "Gross realized gains on sale of debt securities"
       }
      }
     },
     "localname": "AvailableForSaleSecuritiesGrossRealizedGains",
     "nsuri": "http://fasb.org/us-gaap/2018-01-31",
     "presentation": [
      "http://cognex.com/role/CashCashEquivalentsAndInvestmentsAdditionalInformationDetail"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_AvailableForSaleSecuritiesGrossRealizedLosses": {
     "auth_ref": [],
     "crdr": "debit",
     "lang": {
      "en-US": {
       "role": {
        "documentation": "This item represents the gross loss realized on the sale of debt or equity securities categorized neither as held-to-maturity nor trading securities.",
        "label": "Available-for-sale Securities, Gross Realized Losses",
        "terseLabel": "Gross realized losses on sale of debt securities"
       }
      }
     },
     "localname": "AvailableForSaleSecuritiesGrossRealizedLosses",
     "nsuri": "http://fasb.org/us-gaap/2018-01-31",
     "presentation": [
      "http://cognex.com/role/CashCashEquivalentsAndInvestmentsAdditionalInformationDetail"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_AwardTypeAxis": {
     "auth_ref": [
      "r282",
      "r312"
     ],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Information by award type pertaining to equity-based compensation.",
        "label": "Award Type [Axis]",
        "terseLabel": "Award Type [Axis]"
       }
      }
     },
     "localname": "AwardTypeAxis",
     "nsuri": "http://fasb.org/us-gaap/2018-01-31",
     "presentation": [
      "http://cognex.com/role/StockBasedCompensationExpenseAdditionalInformationDetail",
      "http://cognex.com/role/StockBasedCompensationExpenseSummaryOfRestrictedStockOptionActivityDetail",
      "http://cognex.com/role/StockBasedCompensationExpenseWeightedAverageAssumptionsUsedInEstimatingFairValuesOfStockOptionsGrantedDetail"
     ],
     "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/2018-01-31",
     "presentation": [
      "http://cognex.com/role/DerivativeInstrumentsBalanceSheetLocationDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_BalanceSheetLocationDomain": {
     "auth_ref": [
      "r405",
      "r409"
     ],
     "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/2018-01-31",
     "presentation": [
      "http://cognex.com/role/DerivativeInstrumentsBalanceSheetLocationDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_BuildingImprovementsMember": {
     "auth_ref": [
      "r222"
     ],
     "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/2018-01-31",
     "presentation": [
      "http://cognex.com/role/PropertyPlantAndEquipmentPropertyPlantAndEquipmentDetail",
      "http://cognex.com/role/SummaryOfSignificantAccountingPoliciesAdditionalInformationDetail"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_BuildingMember": {
     "auth_ref": [
      "r222"
     ],
     "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/2018-01-31",
     "presentation": [
      "http://cognex.com/role/PropertyPlantAndEquipmentPropertyPlantAndEquipmentDetail",
      "http://cognex.com/role/SummaryOfSignificantAccountingPoliciesAdditionalInformationDetail"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_BusinessAcquisitionAcquireeDomain": {
     "auth_ref": [],
     "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/2018-01-31",
     "presentation": [
      "http://cognex.com/role/AcquisitionsGviVenturesIncDetails",
      "http://cognex.com/role/AcquisitionsGviVenturesIncPurchasePriceAllocationDetails",
      "http://cognex.com/role/AcquisitionsSualabCoLtdNarrativeDetails",
      "http://cognex.com/role/AcquisitionsSualabCoLtdPurchasePriceAllocationDetails",
      "http://cognex.com/role/AcquisitionsVidiSystemsSADetails",
      "http://cognex.com/role/AcquisitionsVidiSystemsSAPurchasePriceAllocationDetails",
      "http://cognex.com/role/FairValueMeasurementsLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationDetails",
      "http://cognex.com/role/GoodwillChangesInCarryingValueOfGoodwillDetail",
      "http://cognex.com/role/TaxesAdditionalInformationDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_BusinessAcquisitionAxis": {
     "auth_ref": [
      "r364",
      "r365"
     ],
     "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/2018-01-31",
     "presentation": [
      "http://cognex.com/role/AcquisitionsGviVenturesIncDetails",
      "http://cognex.com/role/AcquisitionsGviVenturesIncPurchasePriceAllocationDetails",
      "http://cognex.com/role/AcquisitionsSualabCoLtdNarrativeDetails",
      "http://cognex.com/role/AcquisitionsSualabCoLtdPurchasePriceAllocationDetails",
      "http://cognex.com/role/AcquisitionsVidiSystemsSADetails",
      "http://cognex.com/role/AcquisitionsVidiSystemsSAPurchasePriceAllocationDetails",
      "http://cognex.com/role/FairValueMeasurementsLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationDetails",
      "http://cognex.com/role/GoodwillChangesInCarryingValueOfGoodwillDetail",
      "http://cognex.com/role/TaxesAdditionalInformationDetails"
     ],
     "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/2018-01-31",
     "presentation": [
      "http://cognex.com/role/AcquisitionsGviVenturesIncDetails",
      "http://cognex.com/role/AcquisitionsGviVenturesIncPurchasePriceAllocationDetails",
      "http://cognex.com/role/AcquisitionsSualabCoLtdNarrativeDetails",
      "http://cognex.com/role/AcquisitionsSualabCoLtdPurchasePriceAllocationDetails",
      "http://cognex.com/role/AcquisitionsVidiSystemsSADetails",
      "http://cognex.com/role/AcquisitionsVidiSystemsSAPurchasePriceAllocationDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_BusinessAcquisitionPurchasePriceAllocationGoodwillExpectedTaxDeductibleAmount": {
     "auth_ref": [
      "r384"
     ],
     "crdr": "debit",
     "lang": {
      "en-US": {
       "role": {
        "documentation": "The amount of goodwill arising from a business combination that is expected to be deductible for tax purposes.",
        "label": "Business Acquisition, Goodwill, Expected Tax Deductible Amount",
        "terseLabel": "Tax deductible goodwill"
       }
      }
     },
     "localname": "BusinessAcquisitionPurchasePriceAllocationGoodwillExpectedTaxDeductibleAmount",
     "nsuri": "http://fasb.org/us-gaap/2018-01-31",
     "presentation": [
      "http://cognex.com/role/AcquisitionsGviVenturesIncDetails",
      "http://cognex.com/role/AcquisitionsSualabCoLtdNarrativeDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_BusinessCombinationConsiderationTransferred1": {
     "auth_ref": [
      "r376",
      "r377",
      "r379"
     ],
     "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/2018-01-31",
     "presentation": [
      "http://cognex.com/role/AcquisitionsGviVenturesIncDetails",
      "http://cognex.com/role/AcquisitionsSualabCoLtdNarrativeDetails",
      "http://cognex.com/role/AcquisitionsVidiSystemsSADetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_BusinessCombinationConsiderationTransferredLiabilitiesIncurred": {
     "auth_ref": [
      "r374",
      "r376",
      "r377",
      "r381"
     ],
     "crdr": "credit",
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Amount of liabilities incurred by the acquirer as part of consideration transferred in a business combination.",
        "label": "Business Combination, Consideration Transferred, Liabilities Incurred",
        "terseLabel": "Holdback security"
       }
      }
     },
     "localname": "BusinessCombinationConsiderationTransferredLiabilitiesIncurred",
     "nsuri": "http://fasb.org/us-gaap/2018-01-31",
     "presentation": [
      "http://cognex.com/role/AcquisitionsVidiSystemsSADetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1": {
     "auth_ref": [
      "r98",
      "r385"
     ],
     "calculation": {
      "http://cognex.com/role/ConsolidatedStatementsOfCashFlows": {
       "order": 9.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/2018-01-31",
     "presentation": [
      "http://cognex.com/role/AcquisitionsGviVenturesIncDetails",
      "http://cognex.com/role/ConsolidatedStatementsOfCashFlows"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_BusinessCombinationContingentConsiderationArrangementsChangeInTheRangeOfOutcomesContingentConsiderationLiabilityValueHigh": {
     "auth_ref": [
      "r386"
     ],
     "crdr": "credit",
     "lang": {
      "en-US": {
       "role": {
        "documentation": "This element represents the amount of any change recognized during the period in the high-end of the estimated range of outcomes (undiscounted) of a liability assumed in a business combination arising from an item of contingent consideration.",
        "label": "Business Combination, Contingent Consideration Arrangements, Change in Range of Outcomes, Contingent Consideration, Liability, Value, High",
        "terseLabel": "Business Combination, Contingent Consideration Arrangements, Change in Range of Outcomes, Contingent Consideration, Liability, Value, High"
       }
      }
     },
     "localname": "BusinessCombinationContingentConsiderationArrangementsChangeInTheRangeOfOutcomesContingentConsiderationLiabilityValueHigh",
     "nsuri": "http://fasb.org/us-gaap/2018-01-31",
     "presentation": [
      "http://cognex.com/role/AcquisitionsGviVenturesIncDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_BusinessCombinationContingentConsiderationArrangementsChangeInTheRangeOfOutcomesContingentConsiderationLiabilityValueLow": {
     "auth_ref": [
      "r386"
     ],
     "crdr": "credit",
     "lang": {
      "en-US": {
       "role": {
        "documentation": "This element represents the amount of any change recognized during the period in the low-end of the estimated range of outcomes (undiscounted) of a liability assumed in a business combination arising from an item of contingent consideration.",
        "label": "Business Combination, Contingent Consideration Arrangements, Change in Range of Outcomes, Contingent Consideration, Liability, Value, Low",
        "terseLabel": "Business Combination, Contingent Consideration Arrangements, Change in Range of Outcomes, Contingent Consideration, Liability, Value, Low"
       }
      }
     },
     "localname": "BusinessCombinationContingentConsiderationArrangementsChangeInTheRangeOfOutcomesContingentConsiderationLiabilityValueLow",
     "nsuri": "http://fasb.org/us-gaap/2018-01-31",
     "presentation": [
      "http://cognex.com/role/AcquisitionsGviVenturesIncDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueHigh": {
     "auth_ref": [
      "r383"
     ],
     "crdr": "credit",
     "lang": {
      "en-US": {
       "role": {
        "documentation": "For contingent consideration arrangements recognized in connection with a business combination, this element represents an estimate of the high-end of the potential range (undiscounted) of the consideration which may be paid.",
        "label": "Business Combination, Contingent Consideration Arrangements, Range of Outcomes, Value, High",
        "terseLabel": "Contingent consideration, high range"
       }
      }
     },
     "localname": "BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueHigh",
     "nsuri": "http://fasb.org/us-gaap/2018-01-31",
     "presentation": [
      "http://cognex.com/role/AcquisitionsGviVenturesIncDetails",
      "http://cognex.com/role/FairValueMeasurementsLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueLow": {
     "auth_ref": [
      "r383"
     ],
     "crdr": "credit",
     "lang": {
      "en-US": {
       "role": {
        "documentation": "For contingent consideration arrangements and indemnification assets recognized in connection with a business combination, this element represents an estimate of the low-end of the potential range (undiscounted) of the consideration which may be paid.",
        "label": "Business Combination, Contingent Consideration Arrangements, Range of Outcomes, Value, Low",
        "terseLabel": "Contingent consideration, low range"
       }
      }
     },
     "localname": "BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueLow",
     "nsuri": "http://fasb.org/us-gaap/2018-01-31",
     "presentation": [
      "http://cognex.com/role/AcquisitionsGviVenturesIncDetails",
      "http://cognex.com/role/FairValueMeasurementsLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_BusinessCombinationContingentConsiderationLiability": {
     "auth_ref": [
      "r375",
      "r378",
      "r382"
     ],
     "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",
        "verboseLabel": "Contingent consideration liability"
       }
      }
     },
     "localname": "BusinessCombinationContingentConsiderationLiability",
     "nsuri": "http://fasb.org/us-gaap/2018-01-31",
     "presentation": [
      "http://cognex.com/role/AcquisitionsGviVenturesIncDetails",
      "http://cognex.com/role/AcquisitionsSualabCoLtdNarrativeDetails",
      "http://cognex.com/role/FairValueMeasurementsAssetsAndLiabilitiesMeasuredAtFairValueOnRecurringBasisDetail"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_BusinessCombinationDisclosureTextBlock": {
     "auth_ref": [
      "r387"
     ],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "The entire disclosure for a business combination (or series of individually immaterial business combinations) completed during the period, including background, timing, and recognized assets and liabilities. The disclosure may include leverage buyout transactions (as applicable).",
        "label": "Business Combination Disclosure [Text Block]",
        "terseLabel": "Acquisitions"
       }
      }
     },
     "localname": "BusinessCombinationDisclosureTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2018-01-31",
     "presentation": [
      "http://cognex.com/role/Acquisitions"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCashAndEquivalents": {
     "auth_ref": [
      "r367"
     ],
     "calculation": {
      "http://cognex.com/role/AcquisitionsSualabCoLtdPurchasePriceAllocationDetails": {
       "order": 1.0,
       "parentTag": "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet",
       "weight": 1.0
      },
      "http://cognex.com/role/AcquisitionsVidiSystemsSAPurchasePriceAllocationDetails": {
       "order": 1.0,
       "parentTag": "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet",
       "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, acquired at the acquisition date. Includes other kinds of accounts that have the general characteristics of demand deposits. Also includes short-term, highly liquid investments that are both readily convertible to known amounts of cash and so near their maturity that they present insignificant risk of changes in value because of changes in interest rates.",
        "label": "Business Combination, Recognized Identifiable Assets Acquired and Liabilities Assumed, Cash and Equivalents",
        "terseLabel": "Cash and cash equivalents",
        "verboseLabel": "Cash"
       }
      }
     },
     "localname": "BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCashAndEquivalents",
     "nsuri": "http://fasb.org/us-gaap/2018-01-31",
     "presentation": [
      "http://cognex.com/role/AcquisitionsSualabCoLtdPurchasePriceAllocationDetails",
      "http://cognex.com/role/AcquisitionsVidiSystemsSAPurchasePriceAllocationDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsMarketableSecurities": {
     "auth_ref": [
      "r367"
     ],
     "calculation": {
      "http://cognex.com/role/AcquisitionsSualabCoLtdPurchasePriceAllocationDetails": {
       "order": 2.0,
       "parentTag": "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Amount of investments in debt and equity securities, including, but not limited to, held-to-maturity, trading and available-for-sale expected to be converted to cash, sold or exchanged within one year or the normal operating cycle, if longer, acquired at the acquisition date.",
        "label": "Business Combination, Recognized Identifiable Assets Acquired and Liabilities Assumed, Current Assets, Marketable Securities",
        "terseLabel": "Current investments"
       }
      }
     },
     "localname": "BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsMarketableSecurities",
     "nsuri": "http://fasb.org/us-gaap/2018-01-31",
     "presentation": [
      "http://cognex.com/role/AcquisitionsSualabCoLtdPurchasePriceAllocationDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsPrepaidExpenseAndOtherAssets": {
     "auth_ref": [
      "r367"
     ],
     "calculation": {
      "http://cognex.com/role/AcquisitionsGviVenturesIncPurchasePriceAllocationDetails": {
       "order": 3.0,
       "parentTag": "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet",
       "weight": 1.0
      },
      "http://cognex.com/role/AcquisitionsSualabCoLtdPurchasePriceAllocationDetails": {
       "order": 5.0,
       "parentTag": "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet",
       "weight": 1.0
      },
      "http://cognex.com/role/AcquisitionsVidiSystemsSAPurchasePriceAllocationDetails": {
       "order": 3.0,
       "parentTag": "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet",
       "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, acquired at the acquisition date.",
        "label": "Business Combination, Recognized Identifiable Assets Acquired and Liabilities Assumed, Current Assets, Prepaid Expense and Other Assets",
        "terseLabel": "Prepaid expenses and other current assets"
       }
      }
     },
     "localname": "BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsPrepaidExpenseAndOtherAssets",
     "nsuri": "http://fasb.org/us-gaap/2018-01-31",
     "presentation": [
      "http://cognex.com/role/AcquisitionsGviVenturesIncPurchasePriceAllocationDetails",
      "http://cognex.com/role/AcquisitionsSualabCoLtdPurchasePriceAllocationDetails",
      "http://cognex.com/role/AcquisitionsVidiSystemsSAPurchasePriceAllocationDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsReceivables": {
     "auth_ref": [
      "r367"
     ],
     "calculation": {
      "http://cognex.com/role/AcquisitionsGviVenturesIncPurchasePriceAllocationDetails": {
       "order": 1.0,
       "parentTag": "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet",
       "weight": 1.0
      },
      "http://cognex.com/role/AcquisitionsSualabCoLtdPurchasePriceAllocationDetails": {
       "order": 3.0,
       "parentTag": "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet",
       "weight": 1.0
      },
      "http://cognex.com/role/AcquisitionsVidiSystemsSAPurchasePriceAllocationDetails": {
       "order": 2.0,
       "parentTag": "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Amount due from customers or clients for goods or services, including trade receivables, that have been delivered or sold in the normal course of business, and amounts due from others, including related parties expected to be converted to cash, sold or exchanged within one year or the normal operating cycle, if longer, acquired at the acquisition date.",
        "label": "Business Combination, Recognized Identifiable Assets Acquired and Liabilities Assumed, Current Assets, Receivables",
        "terseLabel": "Accounts receivable"
       }
      }
     },
     "localname": "BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsReceivables",
     "nsuri": "http://fasb.org/us-gaap/2018-01-31",
     "presentation": [
      "http://cognex.com/role/AcquisitionsGviVenturesIncPurchasePriceAllocationDetails",
      "http://cognex.com/role/AcquisitionsSualabCoLtdPurchasePriceAllocationDetails",
      "http://cognex.com/role/AcquisitionsVidiSystemsSAPurchasePriceAllocationDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilities": {
     "auth_ref": [
      "r367"
     ],
     "calculation": {
      "http://cognex.com/role/AcquisitionsSualabCoLtdPurchasePriceAllocationDetails": {
       "order": 11.0,
       "parentTag": "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet",
       "weight": -1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Amount of liabilities due within one year or within the normal operating cycle, if longer, assumed at the acquisition date.",
        "label": "Business Combination, Recognized Identifiable Assets Acquired and Liabilities Assumed, Current Liabilities",
        "negatedTerseLabel": "Accrued expenses"
       }
      }
     },
     "localname": "BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilities",
     "nsuri": "http://fasb.org/us-gaap/2018-01-31",
     "presentation": [
      "http://cognex.com/role/AcquisitionsSualabCoLtdPurchasePriceAllocationDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccountsPayable": {
     "auth_ref": [
      "r367"
     ],
     "calculation": {
      "http://cognex.com/role/AcquisitionsGviVenturesIncPurchasePriceAllocationDetails": {
       "order": 4.0,
       "parentTag": "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet",
       "weight": -1.0
      },
      "http://cognex.com/role/AcquisitionsSualabCoLtdPurchasePriceAllocationDetails": {
       "order": 10.0,
       "parentTag": "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet",
       "weight": -1.0
      },
      "http://cognex.com/role/AcquisitionsVidiSystemsSAPurchasePriceAllocationDetails": {
       "order": 6.0,
       "parentTag": "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet",
       "weight": -1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Amount of liabilities incurred for goods and services received that are used in an entity's business and related party payables, assumed at the acquisition date.",
        "label": "Business Combination, Recognized Identifiable Assets Acquired and Liabilities Assumed, Current Liabilities, Accounts Payable",
        "negatedTerseLabel": "Accounts payable"
       }
      }
     },
     "localname": "BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccountsPayable",
     "nsuri": "http://fasb.org/us-gaap/2018-01-31",
     "presentation": [
      "http://cognex.com/role/AcquisitionsGviVenturesIncPurchasePriceAllocationDetails",
      "http://cognex.com/role/AcquisitionsSualabCoLtdPurchasePriceAllocationDetails",
      "http://cognex.com/role/AcquisitionsVidiSystemsSAPurchasePriceAllocationDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesDeferredRevenue": {
     "auth_ref": [
      "r367"
     ],
     "calculation": {
      "http://cognex.com/role/AcquisitionsSualabCoLtdPurchasePriceAllocationDetails": {
       "order": 15.0,
       "parentTag": "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet",
       "weight": -1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Amount of deferred revenue expected to be recognized as such within one year or the normal operating cycle, if longer, assumed at the acquisition date.",
        "label": "Business Combination, Recognized Identifiable Assets Acquired and Liabilities Assumed, Current Liabilities, Deferred Revenue",
        "negatedTerseLabel": "Deferred income tax liabilities"
       }
      }
     },
     "localname": "BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesDeferredRevenue",
     "nsuri": "http://fasb.org/us-gaap/2018-01-31",
     "presentation": [
      "http://cognex.com/role/AcquisitionsSualabCoLtdPurchasePriceAllocationDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxAssets": {
     "auth_ref": [
      "r326",
      "r367"
     ],
     "calculation": {
      "http://cognex.com/role/AcquisitionsSualabCoLtdPurchasePriceAllocationDetails": {
       "order": 8.0,
       "parentTag": "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet",
       "weight": 1.0
      },
      "http://cognex.com/role/AcquisitionsVidiSystemsSAPurchasePriceAllocationDetails": {
       "order": 5.0,
       "parentTag": "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Amount of deferred tax asset attributable to deductible temporary differences and carryforwards acquired at the acquisition date.",
        "label": "Business Combination Recognized Identifiable Assets Acquired and Liabilities Assumed, Deferred Tax Assets",
        "terseLabel": "Deferred income tax asset"
       }
      }
     },
     "localname": "BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxAssets",
     "nsuri": "http://fasb.org/us-gaap/2018-01-31",
     "presentation": [
      "http://cognex.com/role/AcquisitionsSualabCoLtdPurchasePriceAllocationDetails",
      "http://cognex.com/role/AcquisitionsVidiSystemsSAPurchasePriceAllocationDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxLiabilities": {
     "auth_ref": [
      "r326",
      "r367"
     ],
     "calculation": {
      "http://cognex.com/role/AcquisitionsVidiSystemsSAPurchasePriceAllocationDetails": {
       "order": 8.0,
       "parentTag": "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet",
       "weight": -1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Amount of deferred tax liability attributable to taxable temporary differences assumed at the acquisition date.",
        "label": "Business Combination, Recognized Identifiable Assets Acquired and Liabilities Assumed, Deferred Tax Liabilities",
        "negatedLabel": "Deferred income tax liability"
       }
      }
     },
     "localname": "BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxLiabilities",
     "nsuri": "http://fasb.org/us-gaap/2018-01-31",
     "presentation": [
      "http://cognex.com/role/AcquisitionsVidiSystemsSAPurchasePriceAllocationDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibleAssetsOtherThanGoodwill": {
     "auth_ref": [
      "r367"
     ],
     "calculation": {
      "http://cognex.com/role/AcquisitionsSualabCoLtdPurchasePriceAllocationDetails": {
       "order": 17.0,
       "parentTag": "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet",
       "weight": 1.0
      }
     },
     "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/2018-01-31",
     "presentation": [
      "http://cognex.com/role/AcquisitionsSualabCoLtdPurchasePriceAllocationDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles": {
     "auth_ref": [
      "r366",
      "r367"
     ],
     "calculation": {
      "http://cognex.com/role/AcquisitionsGviVenturesIncPurchasePriceAllocationDetails": {
       "order": 6.0,
       "parentTag": "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet",
       "weight": 1.0
      },
      "http://cognex.com/role/AcquisitionsVidiSystemsSAPurchasePriceAllocationDetails": {
       "order": 9.0,
       "parentTag": "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet",
       "weight": 1.0
      }
     },
     "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/2018-01-31",
     "presentation": [
      "http://cognex.com/role/AcquisitionsGviVenturesIncPurchasePriceAllocationDetails",
      "http://cognex.com/role/AcquisitionsVidiSystemsSAPurchasePriceAllocationDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedInventory": {
     "auth_ref": [
      "r366",
      "r367"
     ],
     "calculation": {
      "http://cognex.com/role/AcquisitionsGviVenturesIncPurchasePriceAllocationDetails": {
       "order": 2.0,
       "parentTag": "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet",
       "weight": 1.0
      },
      "http://cognex.com/role/AcquisitionsSualabCoLtdPurchasePriceAllocationDetails": {
       "order": 4.0,
       "parentTag": "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-US": {
       "role": {
        "documentation": "The amount of inventory recognized as of the acquisition date.",
        "label": "Business Combination, Recognized Identifiable Assets Acquired and Liabilities Assumed, Inventory",
        "terseLabel": "Inventories"
       }
      }
     },
     "localname": "BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedInventory",
     "nsuri": "http://fasb.org/us-gaap/2018-01-31",
     "presentation": [
      "http://cognex.com/role/AcquisitionsGviVenturesIncPurchasePriceAllocationDetails",
      "http://cognex.com/role/AcquisitionsSualabCoLtdPurchasePriceAllocationDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNoncurrentAssets": {
     "auth_ref": [
      "r367"
     ],
     "calculation": {
      "http://cognex.com/role/AcquisitionsSualabCoLtdPurchasePriceAllocationDetails": {
       "order": 9.0,
       "parentTag": "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Amount of assets expected to be realized or consumed after one year or the normal operating cycle, if longer, acquired at the acquisition date.",
        "label": "Business Combination, Recognized Identifiable Assets Acquired and Liabilities Assumed, Noncurrent Assets",
        "terseLabel": "Other assets"
       }
      }
     },
     "localname": "BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNoncurrentAssets",
     "nsuri": "http://fasb.org/us-gaap/2018-01-31",
     "presentation": [
      "http://cognex.com/role/AcquisitionsSualabCoLtdPurchasePriceAllocationDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNoncurrentLiabilitiesOther": {
     "auth_ref": [
      "r367"
     ],
     "calculation": {
      "http://cognex.com/role/AcquisitionsSualabCoLtdPurchasePriceAllocationDetails": {
       "order": 16.0,
       "parentTag": "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet",
       "weight": -1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Amount of other liabilities due after one year or the normal operating cycle, if longer, assumed at the acquisition date.",
        "label": "Business Combination, Recognized Identifiable Assets Acquired and Liabilities Assumed, Noncurrent Liabilities, Other",
        "negatedTerseLabel": "Other liabilities"
       }
      }
     },
     "localname": "BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNoncurrentLiabilitiesOther",
     "nsuri": "http://fasb.org/us-gaap/2018-01-31",
     "presentation": [
      "http://cognex.com/role/AcquisitionsSualabCoLtdPurchasePriceAllocationDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment": {
     "auth_ref": [
      "r366",
      "r367"
     ],
     "calculation": {
      "http://cognex.com/role/AcquisitionsSualabCoLtdPurchasePriceAllocationDetails": {
       "order": 6.0,
       "parentTag": "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet",
       "weight": 1.0
      },
      "http://cognex.com/role/AcquisitionsVidiSystemsSAPurchasePriceAllocationDetails": {
       "order": 4.0,
       "parentTag": "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-US": {
       "role": {
        "documentation": "The amount of property, plant, and equipment recognized as of the acquisition date.",
        "label": "Business Combination, Recognized Identifiable Assets Acquired and Liabilities Assumed, Property, Plant, and Equipment",
        "terseLabel": "Property, plant, and equipment"
       }
      }
     },
     "localname": "BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment",
     "nsuri": "http://fasb.org/us-gaap/2018-01-31",
     "presentation": [
      "http://cognex.com/role/AcquisitionsSualabCoLtdPurchasePriceAllocationDetails",
      "http://cognex.com/role/AcquisitionsVidiSystemsSAPurchasePriceAllocationDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet": {
     "auth_ref": [
      "r367"
     ],
     "calculation": {
      "http://cognex.com/role/AcquisitionsGviVenturesIncPurchasePriceAllocationDetails": {
       "order": null,
       "parentTag": null,
       "root": true,
       "weight": null
      },
      "http://cognex.com/role/AcquisitionsSualabCoLtdPurchasePriceAllocationDetails": {
       "order": null,
       "parentTag": null,
       "root": true,
       "weight": null
      },
      "http://cognex.com/role/AcquisitionsVidiSystemsSAPurchasePriceAllocationDetails": {
       "order": null,
       "parentTag": null,
       "root": true,
       "weight": null
      }
     },
     "crdr": "debit",
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Amount recognized for assets, including goodwill, in excess of (less than) the aggregate liabilities assumed.",
        "label": "Business Combination, Recognized Identifiable Assets Acquired, Goodwill, and Liabilities Assumed, Net",
        "totalLabel": "Purchase price"
       }
      }
     },
     "localname": "BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet",
     "nsuri": "http://fasb.org/us-gaap/2018-01-31",
     "presentation": [
      "http://cognex.com/role/AcquisitionsGviVenturesIncPurchasePriceAllocationDetails",
      "http://cognex.com/role/AcquisitionsSualabCoLtdPurchasePriceAllocationDetails",
      "http://cognex.com/role/AcquisitionsVidiSystemsSAPurchasePriceAllocationDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_BusinessCombinationSeparatelyRecognizedTransactionsLiabilitiesRecognized": {
     "auth_ref": [
      "r363"
     ],
     "calculation": {
      "http://cognex.com/role/AccruedExpensesConstituentsOfAccruedExpensesDetail": {
       "order": 5.0,
       "parentTag": "us-gaap_AccruedLiabilitiesCurrent",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-US": {
       "role": {
        "documentation": "The amount of liabilities recognized recorded in a transaction with the acquiree for each transaction that is recognized separately from the acquisition of assets and assumptions of liabilities in the business combination.",
        "label": "Business Combination, Separately Recognized Transactions, Liabilities Recognized",
        "terseLabel": "Acquisition deferred and contingent liabilities"
       }
      }
     },
     "localname": "BusinessCombinationSeparatelyRecognizedTransactionsLiabilitiesRecognized",
     "nsuri": "http://fasb.org/us-gaap/2018-01-31",
     "presentation": [
      "http://cognex.com/role/AccruedExpensesConstituentsOfAccruedExpensesDetail"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_BusinessCombinationsAbstract": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "label": "Business Combinations [Abstract]"
       }
      }
     },
     "localname": "BusinessCombinationsAbstract",
     "nsuri": "http://fasb.org/us-gaap/2018-01-31",
     "xbrltype": "stringItemType"
    },
    "us-gaap_BusinessCombinationsPolicy": {
     "auth_ref": [
      "r106",
      "r362"
     ],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Disclosure of accounting policy for completed business combinations (purchase method, acquisition method or combination of entities under common control). This accounting policy may include a general discussion of the purchase method or acquisition method of accounting (including for example, the treatment accorded contingent consideration, the identification of assets and liabilities, the purchase price allocation process, how the fair values of acquired assets and liabilities are determined) and the entity's specific application thereof. An entity that acquires another entity in a leveraged buyout transaction generally discloses the accounting policy followed by the acquiring entity in determining the basis used to value its interest in the acquired entity, and the rationale for that accounting policy.",
        "label": "Business Combinations Policy [Policy Text Block]",
        "terseLabel": "Business Combinations"
       }
      }
     },
     "localname": "BusinessCombinationsPolicy",
     "nsuri": "http://fasb.org/us-gaap/2018-01-31",
     "presentation": [
      "http://cognex.com/role/SummaryOfSignificantAccountingPoliciesPolicies"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_CapitalizedContractCostGross": {
     "auth_ref": [
      "r197"
     ],
     "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/2018-01-31",
     "presentation": [
      "http://cognex.com/role/RevenueRecognitionNarrativesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_Cash": {
     "auth_ref": [
      "r35"
     ],
     "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/2018-01-31",
     "presentation": [
      "http://cognex.com/role/CashCashEquivalentsAndInvestmentsComponentsOfCashCashEquivalentsAndInvestmentsDetail",
      "http://cognex.com/role/TaxesAdditionalInformationDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_CashAndCashEquivalentsAbstract": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "label": "Cash and Cash Equivalents [Abstract]"
       }
      }
     },
     "localname": "CashAndCashEquivalentsAbstract",
     "nsuri": "http://fasb.org/us-gaap/2018-01-31",
     "xbrltype": "stringItemType"
    },
    "us-gaap_CashAndCashEquivalentsAtCarryingValue": {
     "auth_ref": [
      "r1",
      "r35",
      "r101"
     ],
     "calculation": {
      "http://cognex.com/role/CashCashEquivalentsAndInvestmentsComponentsOfCashCashEquivalentsAndInvestmentsDetail": {
       "order": 1.0,
       "parentTag": "cgnx_CashCashEquivalentsShortTermAndLongTermInvestments",
       "weight": 1.0
      },
      "http://cognex.com/role/ConsolidatedBalanceSheets": {
       "order": 1.0,
       "parentTag": "us-gaap_AssetsCurrent",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Amount of currency on hand as well as demand deposits with banks or financial institutions. Includes other kinds of accounts that have the general characteristics of demand deposits. Also includes short-term, highly liquid investments that are both readily convertible to known amounts of cash and so near their maturity that they present insignificant risk of changes in value because of changes in interest rates. Excludes cash and cash equivalents within disposal group and discontinued operation.",
        "label": "Cash and Cash Equivalents, at Carrying Value",
        "periodEndLabel": "Cash and cash equivalents at end of year",
        "periodStartLabel": "Cash and cash equivalents at beginning of year",
        "terseLabel": "Cash and cash equivalents",
        "totalLabel": "Cash and cash equivalents"
       }
      }
     },
     "localname": "CashAndCashEquivalentsAtCarryingValue",
     "nsuri": "http://fasb.org/us-gaap/2018-01-31",
     "presentation": [
      "http://cognex.com/role/CashCashEquivalentsAndInvestmentsComponentsOfCashCashEquivalentsAndInvestmentsDetail",
      "http://cognex.com/role/ConsolidatedBalanceSheets",
      "http://cognex.com/role/ConsolidatedStatementsOfCashFlows"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_CashAndCashEquivalentsPeriodIncreaseDecrease": {
     "auth_ref": [],
     "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 and cash equivalents. Cash and cash equivalents are the 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. Includes effect from exchange rate changes.",
        "label": "Cash and Cash Equivalents, Period Increase (Decrease)",
        "totalLabel": "Net change in cash and cash equivalents"
       }
      }
     },
     "localname": "CashAndCashEquivalentsPeriodIncreaseDecrease",
     "nsuri": "http://fasb.org/us-gaap/2018-01-31",
     "presentation": [
      "http://cognex.com/role/ConsolidatedStatementsOfCashFlows"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_CashAndCashEquivalentsPolicyTextBlock": {
     "auth_ref": [
      "r9",
      "r102",
      "r106",
      "r170"
     ],
     "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/2018-01-31",
     "presentation": [
      "http://cognex.com/role/SummaryOfSignificantAccountingPoliciesPolicies"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_CashFlowHedgingMember": {
     "auth_ref": [
      "r401"
     ],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Hedge of the exposure to variability in the cash flows of a recognized asset or liability, or of a forecasted transaction, that is attributable to a particular risk.",
        "label": "Cash Flow Hedging [Member]",
        "terseLabel": "Accumulated other comprehensive income (loss), net of tax"
       }
      }
     },
     "localname": "CashFlowHedgingMember",
     "nsuri": "http://fasb.org/us-gaap/2018-01-31",
     "presentation": [
      "http://cognex.com/role/DerivativeInstrumentsGainLossRecognizedInOtherComprehensiveIncomeLossDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_CertificatesOfDepositMember": {
     "auth_ref": [
      "r497"
     ],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Short to medium-term investment available at banks and savings and loan institutions where a customer agrees to lend money to the institution for a certain amount of time and is paid a predetermined rate of interest. Certificates of deposit (CD) are typically Federal Deposit Insurance Corporation (FDIC) insured.",
        "label": "Certificates of Deposit [Member]",
        "terseLabel": "Certificates of Deposit [Member]"
       }
      }
     },
     "localname": "CertificatesOfDepositMember",
     "nsuri": "http://fasb.org/us-gaap/2018-01-31",
     "presentation": [
      "http://cognex.com/role/CashCashEquivalentsAndInvestmentsComponentsOfCashCashEquivalentsAndInvestmentsDetail"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_ChangeInAccountingEstimateByTypeAxis": {
     "auth_ref": [
      "r121",
      "r126",
      "r144",
      "r148"
     ],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Information by type of change in accounting estimate.",
        "label": "Change in Accounting Estimate by Type [Axis]",
        "terseLabel": "Change in Accounting Estimate by Type [Axis]"
       }
      }
     },
     "localname": "ChangeInAccountingEstimateByTypeAxis",
     "nsuri": "http://fasb.org/us-gaap/2018-01-31",
     "presentation": [
      "http://cognex.com/role/TaxesScheduleOfChangeInAccountingPolicyDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_ChangeInAccountingEstimateLineItems": {
     "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": "Change in Accounting Estimate [Line Items]",
        "terseLabel": "Change in Accounting Estimate [Line Items]"
       }
      }
     },
     "localname": "ChangeInAccountingEstimateLineItems",
     "nsuri": "http://fasb.org/us-gaap/2018-01-31",
     "presentation": [
      "http://cognex.com/role/TaxesScheduleOfChangeInAccountingPolicyDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_ChangeInAccountingEstimateTypeDomain": {
     "auth_ref": [
      "r121",
      "r126",
      "r144",
      "r149"
     ],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Identification of the accounting estimate that was changed that had the effect of adjusting the carrying amount of an existing asset or liability, or that will alter the subsequent accounting for existing or future assets or liabilities.",
        "label": "Change in Accounting Estimate, Type [Domain]",
        "terseLabel": "Change in Accounting Estimate, Type [Domain]"
       }
      }
     },
     "localname": "ChangeInAccountingEstimateTypeDomain",
     "nsuri": "http://fasb.org/us-gaap/2018-01-31",
     "presentation": [
      "http://cognex.com/role/TaxesScheduleOfChangeInAccountingPolicyDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_ClassOfStockDomain": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Share of stock differentiated by the voting rights the holder receives. Examples include, but are not limited to, common stock, redeemable preferred stock, nonredeemable preferred stock, and convertible stock.",
        "label": "Class of Stock [Domain]",
        "terseLabel": "Class of Stock [Domain]"
       }
      }
     },
     "localname": "ClassOfStockDomain",
     "nsuri": "http://fasb.org/us-gaap/2018-01-31",
     "presentation": [
      "http://cognex.com/role/ShareholdersEquityAdditionalInformationDetail"
     ],
     "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/2018-01-31",
     "presentation": [
      "http://cognex.com/role/ShareholdersEquityAdditionalInformationDetail"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_CommitmentsAndContingencies": {
     "auth_ref": [
      "r48",
      "r228",
      "r490",
      "r507"
     ],
     "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/2018-01-31",
     "presentation": [
      "http://cognex.com/role/ConsolidatedBalanceSheets"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_CommitmentsAndContingenciesDisclosureAbstract": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "label": "Commitments and Contingencies Disclosure [Abstract]"
       }
      }
     },
     "localname": "CommitmentsAndContingenciesDisclosureAbstract",
     "nsuri": "http://fasb.org/us-gaap/2018-01-31",
     "xbrltype": "stringItemType"
    },
    "us-gaap_CommitmentsAndContingenciesDisclosureTextBlock": {
     "auth_ref": [
      "r227",
      "r236"
     ],
     "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/2018-01-31",
     "presentation": [
      "http://cognex.com/role/CommitmentsAndContingencies"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_CommitmentsAndContingenciesPolicyTextBlock": {
     "auth_ref": [
      "r106",
      "r243",
      "r518",
      "r519"
     ],
     "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/2018-01-31",
     "presentation": [
      "http://cognex.com/role/SummaryOfSignificantAccountingPoliciesPolicies"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_CommonStockDividendsPerShareCashPaid": {
     "auth_ref": [
      "r258"
     ],
     "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/2018-01-31",
     "presentation": [
      "http://cognex.com/role/ConsolidatedStatementsOfOperations"
     ],
     "xbrltype": "perShareItemType"
    },
    "us-gaap_CommonStockDividendsPerShareDeclared": {
     "auth_ref": [
      "r258"
     ],
     "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/2018-01-31",
     "presentation": [
      "http://cognex.com/role/ShareholdersEquityAdditionalInformationDetail"
     ],
     "xbrltype": "perShareItemType"
    },
    "us-gaap_CommonStockMember": {
     "auth_ref": [],
     "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/2018-01-31",
     "presentation": [
      "http://cognex.com/role/ConsolidatedStatementsOfShareholdersEquity",
      "http://cognex.com/role/ShareholdersEquityAdditionalInformationDetail"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_CommonStockParOrStatedValuePerShare": {
     "auth_ref": [
      "r19"
     ],
     "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/2018-01-31",
     "presentation": [
      "http://cognex.com/role/ConsolidatedBalanceSheetsParenthetical",
      "http://cognex.com/role/ShareholdersEquityAdditionalInformationDetail"
     ],
     "xbrltype": "perShareItemType"
    },
    "us-gaap_CommonStockSharesAuthorized": {
     "auth_ref": [
      "r19"
     ],
     "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"
       }
      }
     },
     "localname": "CommonStockSharesAuthorized",
     "nsuri": "http://fasb.org/us-gaap/2018-01-31",
     "presentation": [
      "http://cognex.com/role/ConsolidatedBalanceSheetsParenthetical",
      "http://cognex.com/role/ShareholdersEquityAdditionalInformationDetail"
     ],
     "xbrltype": "sharesItemType"
    },
    "us-gaap_CommonStockSharesIssued": {
     "auth_ref": [
      "r19"
     ],
     "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",
        "periodStartLabel": "Beginning Balance, shares",
        "terseLabel": "Common stock, shares issued"
       }
      }
     },
     "localname": "CommonStockSharesIssued",
     "nsuri": "http://fasb.org/us-gaap/2018-01-31",
     "presentation": [
      "http://cognex.com/role/ConsolidatedBalanceSheetsParenthetical",
      "http://cognex.com/role/ConsolidatedStatementsOfShareholdersEquity"
     ],
     "xbrltype": "sharesItemType"
    },
    "us-gaap_CommonStockSharesOutstanding": {
     "auth_ref": [
      "r19",
      "r251"
     ],
     "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"
       }
      }
     },
     "localname": "CommonStockSharesOutstanding",
     "nsuri": "http://fasb.org/us-gaap/2018-01-31",
     "presentation": [
      "http://cognex.com/role/ConsolidatedBalanceSheetsParenthetical"
     ],
     "xbrltype": "sharesItemType"
    },
    "us-gaap_CommonStockValueOutstanding": {
     "auth_ref": [
      "r19"
     ],
     "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, $.002 par value \u2013 Authorized: 300,000 shares in 2019 and 2018, respectively, issued and outstanding: 172,440 and 170,820 shares in 2019 and 2018, respectively"
       }
      }
     },
     "localname": "CommonStockValueOutstanding",
     "nsuri": "http://fasb.org/us-gaap/2018-01-31",
     "presentation": [
      "http://cognex.com/role/ConsolidatedBalanceSheets"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_CompensationAndRetirementDisclosureAbstract": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "label": "Retirement Benefits [Abstract]"
       }
      }
     },
     "localname": "CompensationAndRetirementDisclosureAbstract",
     "nsuri": "http://fasb.org/us-gaap/2018-01-31",
     "xbrltype": "stringItemType"
    },
    "us-gaap_ComprehensiveIncomeNetOfTax": {
     "auth_ref": [
      "r75",
      "r77",
      "r78"
     ],
     "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/2018-01-31",
     "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/2018-01-31",
     "presentation": [
      "http://cognex.com/role/SummaryOfSignificantAccountingPoliciesPolicies"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_ConcentrationRiskBenchmarkDomain": {
     "auth_ref": [
      "r158",
      "r159",
      "r438",
      "r439"
     ],
     "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/2018-01-31",
     "presentation": [
      "http://cognex.com/role/SegmentAndGeographicInformationAdditionalInformationDetail"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_ConcentrationRiskByBenchmarkAxis": {
     "auth_ref": [
      "r158",
      "r159",
      "r438",
      "r439",
      "r512"
     ],
     "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/2018-01-31",
     "presentation": [
      "http://cognex.com/role/SegmentAndGeographicInformationAdditionalInformationDetail"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_ConcentrationRiskByTypeAxis": {
     "auth_ref": [
      "r158",
      "r159",
      "r438",
      "r439",
      "r512"
     ],
     "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/2018-01-31",
     "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/2018-01-31",
     "presentation": [
      "http://cognex.com/role/SegmentAndGeographicInformationAdditionalInformationDetail"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_ConcentrationRiskPercentage1": {
     "auth_ref": [
      "r158",
      "r159",
      "r438",
      "r439"
     ],
     "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/2018-01-31",
     "presentation": [
      "http://cognex.com/role/SegmentAndGeographicInformationAdditionalInformationDetail"
     ],
     "xbrltype": "percentItemType"
    },
    "us-gaap_ConcentrationRiskTable": {
     "auth_ref": [
      "r156",
      "r158",
      "r159",
      "r160",
      "r438",
      "r440"
     ],
     "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/2018-01-31",
     "presentation": [
      "http://cognex.com/role/SegmentAndGeographicInformationAdditionalInformationDetail"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_ConcentrationRiskTypeDomain": {
     "auth_ref": [
      "r158",
      "r159",
      "r438",
      "r439"
     ],
     "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/2018-01-31",
     "presentation": [
      "http://cognex.com/role/SegmentAndGeographicInformationAdditionalInformationDetail"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_ConsolidationPolicyTextBlock": {
     "auth_ref": [
      "r106",
      "r390",
      "r393",
      "r394"
     ],
     "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/2018-01-31",
     "presentation": [
      "http://cognex.com/role/SummaryOfSignificantAccountingPoliciesPolicies"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_ContractWithCustomerAssetAndLiabilityTableTextBlock": {
     "auth_ref": [
      "r265"
     ],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Tabular disclosure of contract balances and changes in contract balances.",
        "label": "Contract with Customer, Asset and Liability [Table Text Block]",
        "terseLabel": "Contract with Customer, Liability"
       }
      }
     },
     "localname": "ContractWithCustomerAssetAndLiabilityTableTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2018-01-31",
     "presentation": [
      "http://cognex.com/role/RevenueRecognitionTables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_ContractWithCustomerLiabilityCurrent": {
     "auth_ref": [
      "r262",
      "r263",
      "r268"
     ],
     "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/2018-01-31",
     "presentation": [
      "http://cognex.com/role/ConsolidatedBalanceSheets",
      "http://cognex.com/role/RevenueRecognitionBalanceSheetImpactDetails",
      "http://cognex.com/role/RevenueRecognitionDeferredRevenueAndCustomerDepositsRollforwardDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_ContractWithCustomerLiabilityRevenueRecognized": {
     "auth_ref": [
      "r269"
     ],
     "crdr": "credit",
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Amount of revenue recognized that was previously included in balance of obligation to transfer good or service to customer for which consideration from customer has been received or is due.",
        "label": "Contract with Customer, Liability, Revenue Recognized",
        "negatedTerseLabel": "Recognition of revenue"
       }
      }
     },
     "localname": "ContractWithCustomerLiabilityRevenueRecognized",
     "nsuri": "http://fasb.org/us-gaap/2018-01-31",
     "presentation": [
      "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/2018-01-31",
     "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": [
      "r86"
     ],
     "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/2018-01-31",
     "presentation": [
      "http://cognex.com/role/ConsolidatedStatementsOfOperations",
      "http://cognex.com/role/RevenueRecognitionStatementOfOperationsImpactDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_CumulativeEffectOfNewAccountingPrincipleInPeriodOfAdoption": {
     "auth_ref": [],
     "crdr": "credit",
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Amount after tax of increase (decrease) to equity or (increase) decrease to net assets, resulting from the cumulative effect adjustment of a new accounting principle applied in the period of adoption.",
        "label": "Cumulative Effect of New Accounting Principle in Period of Adoption",
        "terseLabel": "Adjustment as a result of the adoption of ASU 2016-06 Income Taxes - Intra-Entity Transfers Other than Inventory (Note 18)"
       }
      }
     },
     "localname": "CumulativeEffectOfNewAccountingPrincipleInPeriodOfAdoption",
     "nsuri": "http://fasb.org/us-gaap/2018-01-31",
     "presentation": [
      "http://cognex.com/role/ConsolidatedStatementsOfShareholdersEquity"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_CumulativeEffectOnRetainedEarningsNetOfTax1": {
     "auth_ref": [
      "r129"
     ],
     "crdr": "credit",
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Amount of the cumulative effect on retained earnings net of related income tax effect.",
        "label": "Cumulative Effect on Retained Earnings, Net of Tax",
        "terseLabel": "Cumulative effect on retained earnings, net of tax"
       }
      }
     },
     "localname": "CumulativeEffectOnRetainedEarningsNetOfTax1",
     "nsuri": "http://fasb.org/us-gaap/2018-01-31",
     "presentation": [
      "http://cognex.com/role/TaxesAdditionalInformationDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_CurrentFederalTaxExpenseBenefit": {
     "auth_ref": [
      "r109",
      "r352",
      "r358"
     ],
     "calculation": {
      "http://cognex.com/role/TaxesConstituentsOfProvisionForIncomeTaxesDetails": {
       "order": 1.0,
       "parentTag": "us-gaap_CurrentIncomeTaxExpenseBenefit",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Amount of current federal tax expense (benefit) pertaining to income (loss) from continuing operations.",
        "label": "Current Federal Tax Expense (Benefit)",
        "terseLabel": "Federal"
       }
      }
     },
     "localname": "CurrentFederalTaxExpenseBenefit",
     "nsuri": "http://fasb.org/us-gaap/2018-01-31",
     "presentation": [
      "http://cognex.com/role/TaxesConstituentsOfProvisionForIncomeTaxesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_CurrentForeignTaxExpenseBenefit": {
     "auth_ref": [
      "r114",
      "r354"
     ],
     "calculation": {
      "http://cognex.com/role/TaxesConstituentsOfProvisionForIncomeTaxesDetails": {
       "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/2018-01-31",
     "presentation": [
      "http://cognex.com/role/TaxesConstituentsOfProvisionForIncomeTaxesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_CurrentIncomeTaxExpenseBenefit": {
     "auth_ref": [
      "r109",
      "r352",
      "r358"
     ],
     "calculation": {
      "http://cognex.com/role/TaxesConstituentsOfProvisionForIncomeTaxesDetails": {
       "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/2018-01-31",
     "presentation": [
      "http://cognex.com/role/TaxesConstituentsOfProvisionForIncomeTaxesDetails"
     ],
     "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/2018-01-31",
     "presentation": [
      "http://cognex.com/role/TaxesConstituentsOfProvisionForIncomeTaxesDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_CurrentStateAndLocalTaxExpenseBenefit": {
     "auth_ref": [
      "r109",
      "r352",
      "r358"
     ],
     "calculation": {
      "http://cognex.com/role/TaxesConstituentsOfProvisionForIncomeTaxesDetails": {
       "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) pertaining to income (loss) from continuing operations.",
        "label": "Current State and Local Tax Expense (Benefit)",
        "terseLabel": "State"
       }
      }
     },
     "localname": "CurrentStateAndLocalTaxExpenseBenefit",
     "nsuri": "http://fasb.org/us-gaap/2018-01-31",
     "presentation": [
      "http://cognex.com/role/TaxesConstituentsOfProvisionForIncomeTaxesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_CustomerConcentrationRiskMember": {
     "auth_ref": [
      "r157"
     ],
     "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/2018-01-31",
     "presentation": [
      "http://cognex.com/role/SegmentAndGeographicInformationAdditionalInformationDetail"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_CustomerRelationshipsMember": {
     "auth_ref": [
      "r372"
     ],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Customer relationship that exists between an entity and its customer, for example, but not limited to, tenant relationships.",
        "label": "Customer Relationships [Member]",
        "terseLabel": "Customer Relationships [Member]"
       }
      }
     },
     "localname": "CustomerRelationshipsMember",
     "nsuri": "http://fasb.org/us-gaap/2018-01-31",
     "presentation": [
      "http://cognex.com/role/AcquisitionsGviVenturesIncDetails",
      "http://cognex.com/role/AcquisitionsGviVenturesIncPurchasePriceAllocationDetails",
      "http://cognex.com/role/AcquisitionsSualabCoLtdNarrativeDetails",
      "http://cognex.com/role/AcquisitionsSualabCoLtdPurchasePriceAllocationDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_DeferredFederalIncomeTaxExpenseBenefit": {
     "auth_ref": [
      "r109",
      "r353",
      "r358"
     ],
     "calculation": {
      "http://cognex.com/role/TaxesConstituentsOfProvisionForIncomeTaxesDetails": {
       "order": 1.0,
       "parentTag": "us-gaap_DeferredIncomeTaxExpenseBenefit",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Amount of deferred federal income tax expense (benefit) pertaining to income (loss) from continuing operations.",
        "label": "Deferred Federal Income Tax Expense (Benefit)",
        "terseLabel": "Federal"
       }
      }
     },
     "localname": "DeferredFederalIncomeTaxExpenseBenefit",
     "nsuri": "http://fasb.org/us-gaap/2018-01-31",
     "presentation": [
      "http://cognex.com/role/TaxesConstituentsOfProvisionForIncomeTaxesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_DeferredForeignIncomeTaxExpenseBenefit": {
     "auth_ref": [
      "r109",
      "r353",
      "r358"
     ],
     "calculation": {
      "http://cognex.com/role/TaxesConstituentsOfProvisionForIncomeTaxesDetails": {
       "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/2018-01-31",
     "presentation": [
      "http://cognex.com/role/TaxesConstituentsOfProvisionForIncomeTaxesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_DeferredIncomeTaxExpenseBenefit": {
     "auth_ref": [
      "r99",
      "r109",
      "r353",
      "r358"
     ],
     "calculation": {
      "http://cognex.com/role/TaxesConstituentsOfProvisionForIncomeTaxesDetails": {
       "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/2018-01-31",
     "presentation": [
      "http://cognex.com/role/TaxesConstituentsOfProvisionForIncomeTaxesDetails"
     ],
     "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/2018-01-31",
     "presentation": [
      "http://cognex.com/role/TaxesConstituentsOfProvisionForIncomeTaxesDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_DeferredIncomeTaxLiabilities": {
     "auth_ref": [
      "r15",
      "r16",
      "r343",
      "r483",
      "r498"
     ],
     "crdr": "credit",
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Amount of deferred tax liability attributable to taxable temporary differences.",
        "label": "Deferred Tax Liabilities, Gross",
        "terseLabel": "Deferred tax liabilities"
       }
      }
     },
     "localname": "DeferredIncomeTaxLiabilities",
     "nsuri": "http://fasb.org/us-gaap/2018-01-31",
     "presentation": [
      "http://cognex.com/role/TaxesScheduleOfChangeInAccountingPolicyDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_DeferredIncomeTaxLiabilitiesNet": {
     "auth_ref": [
      "r328",
      "r346"
     ],
     "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/2018-01-31",
     "presentation": [
      "http://cognex.com/role/ConsolidatedBalanceSheets"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_DeferredStateAndLocalIncomeTaxExpenseBenefit": {
     "auth_ref": [
      "r109",
      "r353",
      "r358"
     ],
     "calculation": {
      "http://cognex.com/role/TaxesConstituentsOfProvisionForIncomeTaxesDetails": {
       "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) pertaining to income (loss) from continuing operations.",
        "label": "Deferred State and Local Income Tax Expense (Benefit)",
        "terseLabel": "State"
       }
      }
     },
     "localname": "DeferredStateAndLocalIncomeTaxExpenseBenefit",
     "nsuri": "http://fasb.org/us-gaap/2018-01-31",
     "presentation": [
      "http://cognex.com/role/TaxesConstituentsOfProvisionForIncomeTaxesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_DeferredTaxAssetDomain": {
     "auth_ref": [
      "r345"
     ],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Identification of the deferred tax asset for which a valuation reserve exists.",
        "label": "Deferred Tax Asset [Domain]",
        "terseLabel": "Deferred Tax Asset [Domain]"
       }
      }
     },
     "localname": "DeferredTaxAssetDomain",
     "nsuri": "http://fasb.org/us-gaap/2018-01-31",
     "presentation": [
      "http://cognex.com/role/TaxesConstituentsOfDeferredTaxAssetsDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_DeferredTaxAssetsGrossNoncurrent": {
     "auth_ref": [
      "r326",
      "r328",
      "r344"
     ],
     "calculation": {
      "http://cognex.com/role/TaxesConstituentsOfDeferredTaxAssetsDetails": {
       "order": 1.0,
       "parentTag": "us-gaap_DeferredTaxAssetsLiabilitiesNetNoncurrent",
       "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 and carryforwards, classified as noncurrent.",
        "label": "Deferred Tax Assets, Gross, Noncurrent",
        "totalLabel": "Gross non-current deferred tax assets"
       }
      }
     },
     "localname": "DeferredTaxAssetsGrossNoncurrent",
     "nsuri": "http://fasb.org/us-gaap/2018-01-31",
     "presentation": [
      "http://cognex.com/role/TaxesConstituentsOfDeferredTaxAssetsDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_DeferredTaxAssetsInventory": {
     "auth_ref": [
      "r322",
      "r350",
      "r351"
     ],
     "calculation": {
      "http://cognex.com/role/TaxesConstituentsOfDeferredTaxAssetsDetails": {
       "order": 6.0,
       "parentTag": "us-gaap_DeferredTaxAssetsGrossNoncurrent",
       "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/2018-01-31",
     "presentation": [
      "http://cognex.com/role/TaxesConstituentsOfDeferredTaxAssetsDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_DeferredTaxAssetsLiabilitiesNetNoncurrent": {
     "auth_ref": [
      "r326",
      "r328",
      "r346"
     ],
     "calculation": {
      "http://cognex.com/role/TaxesConstituentsOfDeferredTaxAssetsDetails": {
       "order": null,
       "parentTag": null,
       "root": true,
       "weight": null
      }
     },
     "crdr": "debit",
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Amount, after allocation of valuation allowances and deferred tax liability, of deferred tax asset attributable to deductible differences and carryforwards, with jurisdictional netting and classified as noncurrent.",
        "label": "Deferred Tax Assets, Net, Noncurrent",
        "totalLabel": "Net non-current deferred tax assets"
       }
      }
     },
     "localname": "DeferredTaxAssetsLiabilitiesNetNoncurrent",
     "nsuri": "http://fasb.org/us-gaap/2018-01-31",
     "presentation": [
      "http://cognex.com/role/TaxesConstituentsOfDeferredTaxAssetsDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_DeferredTaxAssetsNetNoncurrent": {
     "auth_ref": [
      "r326",
      "r327",
      "r328",
      "r329",
      "r344"
     ],
     "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 of deferred tax asset attributable to deductible temporary differences and carryforwards classified as noncurrent.",
        "label": "Deferred Tax Assets, Net of Valuation Allowance, Noncurrent",
        "terseLabel": "Deferred income taxes",
        "verboseLabel": "Deferred tax assets"
       }
      }
     },
     "localname": "DeferredTaxAssetsNetNoncurrent",
     "nsuri": "http://fasb.org/us-gaap/2018-01-31",
     "presentation": [
      "http://cognex.com/role/ConsolidatedBalanceSheets",
      "http://cognex.com/role/TaxesScheduleOfChangeInAccountingPolicyDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_DeferredTaxAssetsNetNoncurrentClassificationAbstract": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "label": "Deferred Tax Assets, Net of Valuation Allowance, Noncurrent Classification [Abstract]",
        "terseLabel": "Non-current gross deferred tax assets:"
       }
      }
     },
     "localname": "DeferredTaxAssetsNetNoncurrentClassificationAbstract",
     "nsuri": "http://fasb.org/us-gaap/2018-01-31",
     "presentation": [
      "http://cognex.com/role/TaxesConstituentsOfDeferredTaxAssetsDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_DeferredTaxAssetsOperatingLossCarryforwardsDomestic": {
     "auth_ref": [
      "r321",
      "r350",
      "r351"
     ],
     "calculation": {
      "http://cognex.com/role/TaxesConstituentsOfDeferredTaxAssetsDetails": {
       "order": 3.0,
       "parentTag": "us-gaap_DeferredTaxAssetsGrossNoncurrent",
       "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/2018-01-31",
     "presentation": [
      "http://cognex.com/role/TaxesConstituentsOfDeferredTaxAssetsDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_DeferredTaxAssetsOperatingLossCarryforwardsForeign": {
     "auth_ref": [
      "r321",
      "r350",
      "r351"
     ],
     "calculation": {
      "http://cognex.com/role/TaxesConstituentsOfDeferredTaxAssetsDetails": {
       "order": 4.0,
       "parentTag": "us-gaap_DeferredTaxAssetsGrossNoncurrent",
       "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/2018-01-31",
     "presentation": [
      "http://cognex.com/role/TaxesConstituentsOfDeferredTaxAssetsDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_DeferredTaxAssetsTaxCreditCarryforwardsResearch": {
     "auth_ref": [
      "r348",
      "r350",
      "r351"
     ],
     "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/2018-01-31",
     "presentation": [
      "http://cognex.com/role/TaxesAdditionalInformationDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsOther": {
     "auth_ref": [
      "r321",
      "r350",
      "r351"
     ],
     "calculation": {
      "http://cognex.com/role/TaxesConstituentsOfDeferredTaxAssetsDetails": {
       "order": 7.0,
       "parentTag": "us-gaap_DeferredTaxAssetsGrossNoncurrent",
       "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/2018-01-31",
     "presentation": [
      "http://cognex.com/role/TaxesConstituentsOfDeferredTaxAssetsDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost": {
     "auth_ref": [
      "r321",
      "r350",
      "r351"
     ],
     "calculation": {
      "http://cognex.com/role/TaxesConstituentsOfDeferredTaxAssetsDetails": {
       "order": 2.0,
       "parentTag": "us-gaap_DeferredTaxAssetsGrossNoncurrent",
       "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/2018-01-31",
     "presentation": [
      "http://cognex.com/role/TaxesConstituentsOfDeferredTaxAssetsDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_DeferredTaxAssetsValuationAllowance": {
     "auth_ref": [
      "r345"
     ],
     "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",
        "terseLabel": "Deferred tax assets, valuation allowance"
       }
      }
     },
     "localname": "DeferredTaxAssetsValuationAllowance",
     "nsuri": "http://fasb.org/us-gaap/2018-01-31",
     "presentation": [
      "http://cognex.com/role/TaxesAdditionalInformationDetails",
      "http://cognex.com/role/TaxesConstituentsOfDeferredTaxAssetsDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_DeferredTaxAssetsValuationAllowanceNoncurrent": {
     "auth_ref": [
      "r326",
      "r327",
      "r345"
     ],
     "calculation": {
      "http://cognex.com/role/TaxesConstituentsOfDeferredTaxAssetsDetails": {
       "order": 2.0,
       "parentTag": "us-gaap_DeferredTaxAssetsLiabilitiesNetNoncurrent",
       "weight": -1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Amount of valuation allowance of deferred tax asset attributable to deductible temporary differences and carryforwards, classified as noncurrent.",
        "label": "Deferred Tax Assets, Valuation Allowance, Noncurrent",
        "negatedTerseLabel": "Valuation allowance"
       }
      }
     },
     "localname": "DeferredTaxAssetsValuationAllowanceNoncurrent",
     "nsuri": "http://fasb.org/us-gaap/2018-01-31",
     "presentation": [
      "http://cognex.com/role/TaxesConstituentsOfDeferredTaxAssetsDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_DeferredTaxLiabilitiesAbstract": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "label": "Deferred Tax Liabilities, Gross [Abstract]",
        "terseLabel": "Non-current gross deferred tax liabilities:"
       }
      }
     },
     "localname": "DeferredTaxLiabilitiesAbstract",
     "nsuri": "http://fasb.org/us-gaap/2018-01-31",
     "presentation": [
      "http://cognex.com/role/TaxesConstituentsOfDeferredTaxAssetsDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_DeferredTaxLiabilitiesGoodwillAndIntangibleAssetsIntangibleAssets": {
     "auth_ref": [
      "r322",
      "r350",
      "r351"
     ],
     "calculation": {
      "http://cognex.com/role/TaxesConstituentsOfDeferredTaxAssetsDetails": {
       "order": 3.0,
       "parentTag": "us-gaap_DeferredTaxLiabilitiesGrossCurrent",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Amount of deferred tax liability attributable to taxable temporary differences from intangible assets other than goodwill.",
        "label": "Deferred Tax Liabilities, Intangible Assets",
        "negatedTerseLabel": "Nondeductible intangible assets",
        "terseLabel": "Non deductible federal and state liabilities"
       }
      }
     },
     "localname": "DeferredTaxLiabilitiesGoodwillAndIntangibleAssetsIntangibleAssets",
     "nsuri": "http://fasb.org/us-gaap/2018-01-31",
     "presentation": [
      "http://cognex.com/role/TaxesAdditionalInformationDetails",
      "http://cognex.com/role/TaxesConstituentsOfDeferredTaxAssetsDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_DeferredTaxLiabilitiesGrossCurrent": {
     "auth_ref": [
      "r326",
      "r346"
     ],
     "calculation": {
      "http://cognex.com/role/TaxesConstituentsOfDeferredTaxAssetsDetails": {
       "order": null,
       "parentTag": null,
       "root": true,
       "weight": null
      }
     },
     "crdr": "credit",
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Amount of deferred tax liability attributable to taxable temporary differences classified as current.",
        "label": "Deferred Tax Liabilities, Gross, Current",
        "negatedTerseLabel": "Net non-current deferred tax liabilities",
        "totalLabel": "Net non-current deferred tax liabilities"
       }
      }
     },
     "localname": "DeferredTaxLiabilitiesGrossCurrent",
     "nsuri": "http://fasb.org/us-gaap/2018-01-31",
     "presentation": [
      "http://cognex.com/role/TaxesAdditionalInformationDetails",
      "http://cognex.com/role/TaxesConstituentsOfDeferredTaxAssetsDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_DeferredTaxLiabilitiesGrossNoncurrent": {
     "auth_ref": [
      "r326",
      "r346"
     ],
     "crdr": "credit",
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Gross amount of noncurrent deferred tax liabilities, which result from applying the applicable tax rate to taxable temporary differences pertaining to each jurisdiction to which the entity is obligated to pay income tax.",
        "label": "Deferred Tax Liabilities, Gross, Noncurrent",
        "terseLabel": "Deferred tax liabilities, gross"
       }
      }
     },
     "localname": "DeferredTaxLiabilitiesGrossNoncurrent",
     "nsuri": "http://fasb.org/us-gaap/2018-01-31",
     "presentation": [
      "http://cognex.com/role/TaxesAdditionalInformationDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_DeferredTaxLiabilitiesOther": {
     "auth_ref": [
      "r322",
      "r350",
      "r351"
     ],
     "calculation": {
      "http://cognex.com/role/TaxesConstituentsOfDeferredTaxAssetsDetails": {
       "order": 4.0,
       "parentTag": "us-gaap_DeferredTaxLiabilitiesGrossCurrent",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Amount of deferred tax liability attributable to taxable temporary differences classified as other.",
        "label": "Deferred Tax Liabilities, Other",
        "negatedTerseLabel": "Other"
       }
      }
     },
     "localname": "DeferredTaxLiabilitiesOther",
     "nsuri": "http://fasb.org/us-gaap/2018-01-31",
     "presentation": [
      "http://cognex.com/role/TaxesConstituentsOfDeferredTaxAssetsDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_DefinedContributionPlanCostRecognized": {
     "auth_ref": [
      "r277"
     ],
     "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/2018-01-31",
     "presentation": [
      "http://cognex.com/role/EmployeeSavingsPlanAdditionalInformationDetail"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_DefinedContributionPlanDisclosureLineItems": {
     "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": "Defined Contribution Plan Disclosure [Line Items]",
        "terseLabel": "Defined Contribution Plan Disclosure [Line Items]"
       }
      }
     },
     "localname": "DefinedContributionPlanDisclosureLineItems",
     "nsuri": "http://fasb.org/us-gaap/2018-01-31",
     "presentation": [
      "http://cognex.com/role/EmployeeSavingsPlanAdditionalInformationDetail"
     ],
     "xbrltype": "stringItemType"
    },
    "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/2018-01-31",
     "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/2018-01-31",
     "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/2018-01-31",
     "presentation": [
      "http://cognex.com/role/EmployeeSavingsPlanAdditionalInformationDetail"
     ],
     "xbrltype": "percentItemType"
    },
    "us-gaap_DefinedContributionPlanTable": {
     "auth_ref": [
      "r277"
     ],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Disclosure of information about defined contribution pension plans or defined contribution other postretirement plans, separately for pension plans and other postretirement benefit plans.",
        "label": "Defined Contribution Plan [Table]",
        "terseLabel": "Defined Contribution Plan [Table]"
       }
      }
     },
     "localname": "DefinedContributionPlanTable",
     "nsuri": "http://fasb.org/us-gaap/2018-01-31",
     "presentation": [
      "http://cognex.com/role/EmployeeSavingsPlanAdditionalInformationDetail"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_Depreciation": {
     "auth_ref": [
      "r99",
      "r221"
     ],
     "calculation": {
      "http://cognex.com/role/ConsolidatedStatementsOfCashFlows": {
       "order": 4.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/2018-01-31",
     "presentation": [
      "http://cognex.com/role/ConsolidatedStatementsOfCashFlows"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_DerivativeAssetCollateralObligationToReturnCashOffset": {
     "auth_ref": [
      "r55",
      "r395"
     ],
     "calculation": {
      "http://cognex.com/role/DerivativeInstrumentsAssetsAndLiabilitiesPresentedOnNetBasisDueToRightOfOffsetDetails": {
       "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, Collateral, Obligation to Return Cash, Offset",
        "negatedTerseLabel": "Derivative Asset gross amount offset"
       }
      }
     },
     "localname": "DerivativeAssetCollateralObligationToReturnCashOffset",
     "nsuri": "http://fasb.org/us-gaap/2018-01-31",
     "presentation": [
      "http://cognex.com/role/DerivativeInstrumentsAssetsAndLiabilitiesPresentedOnNetBasisDueToRightOfOffsetDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_DerivativeAssetNotionalAmount": {
     "auth_ref": [
      "r397",
      "r398",
      "r400"
     ],
     "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/2018-01-31",
     "presentation": [
      "http://cognex.com/role/DerivativeInstrumentsOutstandingForwardContractsDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_DerivativeAssets": {
     "auth_ref": [
      "r56",
      "r59",
      "r437"
     ],
     "calculation": {
      "http://cognex.com/role/DerivativeInstrumentsAssetsAndLiabilitiesPresentedOnNetBasisDueToRightOfOffsetDetails": {
       "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/2018-01-31",
     "presentation": [
      "http://cognex.com/role/DerivativeInstrumentsAssetsAndLiabilitiesPresentedOnNetBasisDueToRightOfOffsetDetails",
      "http://cognex.com/role/DerivativeInstrumentsBalanceSheetLocationDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_DerivativeFairValueOfDerivativeAsset": {
     "auth_ref": [
      "r54",
      "r60",
      "r408",
      "r478"
     ],
     "calculation": {
      "http://cognex.com/role/DerivativeInstrumentsAssetsAndLiabilitiesPresentedOnNetBasisDueToRightOfOffsetDetails": {
       "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, Fair Value, Gross Asset",
        "terseLabel": "Derivative Asset, Fair Value, Gross Asset"
       }
      }
     },
     "localname": "DerivativeFairValueOfDerivativeAsset",
     "nsuri": "http://fasb.org/us-gaap/2018-01-31",
     "presentation": [
      "http://cognex.com/role/DerivativeInstrumentsAssetsAndLiabilitiesPresentedOnNetBasisDueToRightOfOffsetDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_DerivativeFairValueOfDerivativeLiability": {
     "auth_ref": [
      "r54",
      "r60",
      "r408",
      "r478"
     ],
     "calculation": {
      "http://cognex.com/role/DerivativeInstrumentsAssetsAndLiabilitiesPresentedOnNetBasisDueToRightOfOffsetDetails": {
       "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, Fair Value, Gross Liability",
        "terseLabel": "Derivative Liability, Fair Value, Gross Liability"
       }
      }
     },
     "localname": "DerivativeFairValueOfDerivativeLiability",
     "nsuri": "http://fasb.org/us-gaap/2018-01-31",
     "presentation": [
      "http://cognex.com/role/DerivativeInstrumentsAssetsAndLiabilitiesPresentedOnNetBasisDueToRightOfOffsetDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_DerivativeGainLossOnDerivativeNet": {
     "auth_ref": [
      "r407"
     ],
     "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/2018-01-31",
     "presentation": [
      "http://cognex.com/role/DerivativeInstrumentsGainLossRecognizedInOtherComprehensiveIncomeLossDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_DerivativeGainLossOnDerivativeNetAbstract": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "label": "Derivative, Gain (Loss) on Derivative, Net [Abstract]",
        "terseLabel": "Derivative, Gain (Loss) on Derivative, Net [Abstract]"
       }
      }
     },
     "localname": "DerivativeGainLossOnDerivativeNetAbstract",
     "nsuri": "http://fasb.org/us-gaap/2018-01-31",
     "presentation": [
      "http://cognex.com/role/DerivativeInstrumentsGainLossRecognizedInOtherComprehensiveIncomeLossDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosureAbstract": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "label": "Derivative Instruments and Hedging Activities Disclosure [Abstract]"
       }
      }
     },
     "localname": "DerivativeInstrumentsAndHedgingActivitiesDisclosureAbstract",
     "nsuri": "http://fasb.org/us-gaap/2018-01-31",
     "xbrltype": "stringItemType"
    },
    "us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosureTextBlock": {
     "auth_ref": [
      "r424"
     ],
     "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/2018-01-31",
     "presentation": [
      "http://cognex.com/role/DerivativeInstruments"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_DerivativeInstrumentsGainLossByHedgingRelationshipByIncomeStatementLocationByDerivativeInstrumentRiskTable": {
     "auth_ref": [
      "r402",
      "r406",
      "r413",
      "r415",
      "r416",
      "r420",
      "r421"
     ],
     "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/2018-01-31",
     "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/2018-01-31",
     "presentation": [
      "http://cognex.com/role/DerivativeInstrumentsGainLossRecognizedInOtherComprehensiveIncomeLossDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_DerivativeInstrumentsGainLossReclassifiedFromAccumulatedOCIIntoIncomeEffectivePortionNet": {
     "auth_ref": [
      "r412",
      "r414"
     ],
     "crdr": "credit",
     "lang": {
      "en-US": {
       "role": {
        "documentation": "The effective portion of net gain (loss) reclassified from accumulated other comprehensive income into income on derivative instruments designated and qualifying as hedging instruments.",
        "label": "Derivative Instruments, Gain (Loss) Reclassified from Accumulated OCI into Income, Effective Portion, Net",
        "terseLabel": "Gains (losses) reclassified from accumulated other comprehensive income (loss) into net income (effective portion)"
       }
      }
     },
     "localname": "DerivativeInstrumentsGainLossReclassifiedFromAccumulatedOCIIntoIncomeEffectivePortionNet",
     "nsuri": "http://fasb.org/us-gaap/2018-01-31",
     "presentation": [
      "http://cognex.com/role/DerivativeInstrumentsGainLossRecognizedInOtherComprehensiveIncomeLossDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_DerivativeLiabilities": {
     "auth_ref": [
      "r56",
      "r59",
      "r437"
     ],
     "calculation": {
      "http://cognex.com/role/DerivativeInstrumentsAssetsAndLiabilitiesPresentedOnNetBasisDueToRightOfOffsetDetails": {
       "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/2018-01-31",
     "presentation": [
      "http://cognex.com/role/DerivativeInstrumentsAssetsAndLiabilitiesPresentedOnNetBasisDueToRightOfOffsetDetails",
      "http://cognex.com/role/DerivativeInstrumentsBalanceSheetLocationDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_DerivativeLiabilityCollateralRightToReclaimCashOffset": {
     "auth_ref": [
      "r55",
      "r395"
     ],
     "calculation": {
      "http://cognex.com/role/DerivativeInstrumentsAssetsAndLiabilitiesPresentedOnNetBasisDueToRightOfOffsetDetails": {
       "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, Collateral, Right to Reclaim Cash, Offset",
        "negatedTerseLabel": "Derivative liability gross amount offset"
       }
      }
     },
     "localname": "DerivativeLiabilityCollateralRightToReclaimCashOffset",
     "nsuri": "http://fasb.org/us-gaap/2018-01-31",
     "presentation": [
      "http://cognex.com/role/DerivativeInstrumentsAssetsAndLiabilitiesPresentedOnNetBasisDueToRightOfOffsetDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "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/2018-01-31",
     "presentation": [
      "http://cognex.com/role/DerivativeInstrumentsAdditionalDetailsDetails",
      "http://cognex.com/role/DerivativeInstrumentsOutstandingForwardContractsDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_DerivativeTable": {
     "auth_ref": [
      "r115",
      "r396",
      "r399",
      "r400",
      "r402",
      "r404",
      "r410",
      "r413",
      "r417",
      "r419",
      "r421"
     ],
     "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/2018-01-31",
     "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/2018-01-31",
     "presentation": [
      "http://cognex.com/role/DerivativeInstrumentsBalanceSheetLocationDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_DerivativesPolicyTextBlock": {
     "auth_ref": [
      "r106",
      "r116",
      "r396",
      "r399",
      "r402",
      "r404",
      "r418"
     ],
     "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/2018-01-31",
     "presentation": [
      "http://cognex.com/role/SummaryOfSignificantAccountingPoliciesPolicies"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_DesignatedAsHedgingInstrumentMember": {
     "auth_ref": [
      "r402"
     ],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Derivative instrument designated as hedging instrument under Generally Accepted Accounting Principles (GAAP).",
        "label": "Designated as Hedging Instrument [Member]",
        "terseLabel": "Designated as Hedging Instrument [Member]"
       }
      }
     },
     "localname": "DesignatedAsHedgingInstrumentMember",
     "nsuri": "http://fasb.org/us-gaap/2018-01-31",
     "presentation": [
      "http://cognex.com/role/DerivativeInstrumentsAdditionalDetailsDetails",
      "http://cognex.com/role/DerivativeInstrumentsGainLossRecognizedInOtherComprehensiveIncomeLossDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_DevelopedTechnologyRightsMember": {
     "auth_ref": [
      "r373"
     ],
     "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/2018-01-31",
     "presentation": [
      "http://cognex.com/role/IntangibleAssetsAmortizedIntangibleAssetsDetail"
     ],
     "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/2018-01-31",
     "presentation": [
      "http://cognex.com/role/RevenueRecognitionDisaggregationByGeographyAndTypeDetails",
      "http://cognex.com/role/SummaryOfSignificantAccountingPoliciesSummaryOfSignificantAccountingPoliciesRevenueRecognitionDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_DisaggregationOfRevenueTable": {
     "auth_ref": [],
     "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/2018-01-31",
     "presentation": [
      "http://cognex.com/role/RevenueRecognitionDisaggregationByGeographyAndTypeDetails",
      "http://cognex.com/role/SummaryOfSignificantAccountingPoliciesSummaryOfSignificantAccountingPoliciesRevenueRecognitionDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_DisaggregationOfRevenueTableTextBlock": {
     "auth_ref": [
      "r267"
     ],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Tabular disclosure of disaggregation of revenue into categories depicting how nature, amount, timing, and uncertainty of revenue and cash flows are affected by economic factor.",
        "label": "Disaggregation of Revenue [Table Text Block]",
        "terseLabel": "Disaggregation of Revenue"
       }
      }
     },
     "localname": "DisaggregationOfRevenueTableTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2018-01-31",
     "presentation": [
      "http://cognex.com/role/RevenueRecognitionTables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock": {
     "auth_ref": [
      "r260",
      "r318"
     ],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "The entire disclosure for compensation-related costs for equity-based compensation, which may include disclosure of policies, compensation plan details, allocation of equity compensation, incentive distributions, equity-based arrangements to obtain goods and services, deferred compensation arrangements, employee stock ownership plan details and employee stock purchase plan details.",
        "label": "Disclosure of Compensation Related Costs, Share-based Payments [Text Block]",
        "terseLabel": "Stock-Based Compensation"
       }
      }
     },
     "localname": "DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2018-01-31",
     "presentation": [
      "http://cognex.com/role/StockBasedCompensation"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "label": "Disclosure of Compensation Related Costs, Share-based Payments [Abstract]"
       }
      }
     },
     "localname": "DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract",
     "nsuri": "http://fasb.org/us-gaap/2018-01-31",
     "xbrltype": "stringItemType"
    },
    "us-gaap_DisposalGroupClassificationAxis": {
     "auth_ref": [
      "r0"
     ],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Information by disposal group classification.",
        "label": "Disposal Group Classification [Axis]",
        "terseLabel": "Disposal Group Classification [Axis]"
       }
      }
     },
     "localname": "DisposalGroupClassificationAxis",
     "nsuri": "http://fasb.org/us-gaap/2018-01-31",
     "presentation": [
      "http://cognex.com/role/IndemnificationProvisionsNarrativeDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_DisposalGroupClassificationDomain": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Component or group of components disposed of, including but not limited to, disposal group held-for-sale or disposed of by sale, disposed of by means other than sale, and discontinued operations.",
        "label": "Disposal Group Classification [Domain]",
        "terseLabel": "Disposal Group Classification [Domain]"
       }
      }
     },
     "localname": "DisposalGroupClassificationDomain",
     "nsuri": "http://fasb.org/us-gaap/2018-01-31",
     "presentation": [
      "http://cognex.com/role/IndemnificationProvisionsNarrativeDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "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/2018-01-31",
     "presentation": [
      "http://cognex.com/role/IntangibleAssetsAmortizedIntangibleAssetsDetail",
      "http://cognex.com/role/SummaryOfSignificantAccountingPoliciesIntangibleAssetsDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_DividendsCommonStockCash": {
     "auth_ref": [
      "r258"
     ],
     "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"
       }
      }
     },
     "localname": "DividendsCommonStockCash",
     "nsuri": "http://fasb.org/us-gaap/2018-01-31",
     "presentation": [
      "http://cognex.com/role/ConsolidatedStatementsOfShareholdersEquity"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_DividendsPayableAmountPerShare": {
     "auth_ref": [
      "r104"
     ],
     "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/2018-01-31",
     "presentation": [
      "http://cognex.com/role/SubsequentEventsDetails"
     ],
     "xbrltype": "perShareItemType"
    },
    "us-gaap_DividendsPayableDateDeclaredDayMonthAndYear": {
     "auth_ref": [
      "r104"
     ],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Date the dividend to be paid was declared, in CCYY-MM-DD format.",
        "label": "Dividends Payable, Date Declared",
        "terseLabel": "Dividends Payable, Date Declared"
       }
      }
     },
     "localname": "DividendsPayableDateDeclaredDayMonthAndYear",
     "nsuri": "http://fasb.org/us-gaap/2018-01-31",
     "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 CCYY-MM-DD format.",
        "label": "Dividends Payable, Date of Record",
        "terseLabel": "Dividends Payable, Date of Record"
       }
      }
     },
     "localname": "DividendsPayableDateOfRecordDayMonthAndYear",
     "nsuri": "http://fasb.org/us-gaap/2018-01-31",
     "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/2018-01-31",
     "presentation": [
      "http://cognex.com/role/TaxesAdditionalInformationDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_EarningsPerShareAbstract": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "label": "Earnings Per Share [Abstract]"
       }
      }
     },
     "localname": "EarningsPerShareAbstract",
     "nsuri": "http://fasb.org/us-gaap/2018-01-31",
     "xbrltype": "stringItemType"
    },
    "us-gaap_EarningsPerShareBasic": {
     "auth_ref": [
      "r82",
      "r123",
      "r133",
      "r134",
      "r135",
      "r136",
      "r140",
      "r493",
      "r509"
     ],
     "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)",
        "totalLabel": "Net income (in dollars per share)",
        "verboseLabel": "Basic net income (loss) per share (in dollars per share)"
       }
      }
     },
     "localname": "EarningsPerShareBasic",
     "nsuri": "http://fasb.org/us-gaap/2018-01-31",
     "presentation": [
      "http://cognex.com/role/ConsolidatedStatementsOfOperations",
      "http://cognex.com/role/RevenueRecognitionStatementOfOperationsImpactDetails",
      "http://cognex.com/role/SelectedQuarterlyFinancialDataUnauditedDetails",
      "http://cognex.com/role/TaxesScheduleOfChangeInAccountingPolicyDetails"
     ],
     "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 (1):"
       }
      }
     },
     "localname": "EarningsPerShareBasicAbstract",
     "nsuri": "http://fasb.org/us-gaap/2018-01-31",
     "presentation": [
      "http://cognex.com/role/ConsolidatedStatementsOfOperations"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_EarningsPerShareBasicAndDilutedAbstract": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "label": "Earnings Per Share, Basic and Diluted [Abstract]",
        "terseLabel": "Net income per weighted-average common and common-equivalent share:"
       }
      }
     },
     "localname": "EarningsPerShareBasicAndDilutedAbstract",
     "nsuri": "http://fasb.org/us-gaap/2018-01-31",
     "presentation": [
      "http://cognex.com/role/RevenueRecognitionStatementOfOperationsImpactDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_EarningsPerShareDiluted": {
     "auth_ref": [
      "r82",
      "r123",
      "r133",
      "r134",
      "r135",
      "r136",
      "r140",
      "r493",
      "r509"
     ],
     "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",
        "totalLabel": "Net income (in dollars per share)",
        "verboseLabel": "Diluted net income (loss) per share (in dollars per share)"
       }
      }
     },
     "localname": "EarningsPerShareDiluted",
     "nsuri": "http://fasb.org/us-gaap/2018-01-31",
     "presentation": [
      "http://cognex.com/role/ConsolidatedStatementsOfOperations",
      "http://cognex.com/role/RevenueRecognitionStatementOfOperationsImpactDetails",
      "http://cognex.com/role/SelectedQuarterlyFinancialDataUnauditedDetails",
      "http://cognex.com/role/TaxesScheduleOfChangeInAccountingPolicyDetails"
     ],
     "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/2018-01-31",
     "presentation": [
      "http://cognex.com/role/ConsolidatedStatementsOfOperations"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_EarningsPerSharePolicyTextBlock": {
     "auth_ref": [
      "r106",
      "r137",
      "r138",
      "r139"
     ],
     "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/2018-01-31",
     "presentation": [
      "http://cognex.com/role/SummaryOfSignificantAccountingPoliciesPolicies"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_EarningsPerShareTextBlock": {
     "auth_ref": [
      "r141"
     ],
     "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/2018-01-31",
     "presentation": [
      "http://cognex.com/role/WeightedAverageShares"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_EffectOfExchangeRateOnCashAndCashEquivalents": {
     "auth_ref": [
      "r445"
     ],
     "calculation": {
      "http://cognex.com/role/ConsolidatedStatementsOfCashFlows": {
       "order": 4.0,
       "parentTag": "us-gaap_CashAndCashEquivalentsPeriodIncreaseDecrease",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Amount of increase (decrease) from the effect of exchange rate changes on cash and cash equivalent balances held in foreign currencies.",
        "label": "Effect of Exchange Rate on Cash and Cash Equivalents",
        "terseLabel": "Effect of foreign exchange rate changes on cash and cash equivalents"
       }
      }
     },
     "localname": "EffectOfExchangeRateOnCashAndCashEquivalents",
     "nsuri": "http://fasb.org/us-gaap/2018-01-31",
     "presentation": [
      "http://cognex.com/role/ConsolidatedStatementsOfCashFlows"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_EffectiveIncomeTaxRateContinuingOperations": {
     "auth_ref": [
      "r113",
      "r331",
      "r332"
     ],
     "calculation": {
      "http://cognex.com/role/TaxesReconciliationOfUnitedStatesFederalStatutoryCorporateTaxRateToCompanysEffectiveTaxRateOrIncomeTaxProvisionDetails": {
       "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/2018-01-31",
     "presentation": [
      "http://cognex.com/role/TaxesReconciliationOfUnitedStatesFederalStatutoryCorporateTaxRateToCompanysEffectiveTaxRateOrIncomeTaxProvisionDetails"
     ],
     "xbrltype": "percentItemType"
    },
    "us-gaap_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate": {
     "auth_ref": [
      "r331",
      "r332",
      "r357"
     ],
     "calculation": {
      "http://cognex.com/role/TaxesReconciliationOfUnitedStatesFederalStatutoryCorporateTaxRateToCompanysEffectiveTaxRateOrIncomeTaxProvisionDetails": {
       "order": 1.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",
        "verboseLabel": "Income tax rate"
       }
      }
     },
     "localname": "EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate",
     "nsuri": "http://fasb.org/us-gaap/2018-01-31",
     "presentation": [
      "http://cognex.com/role/TaxesAdditionalInformationDetails",
      "http://cognex.com/role/TaxesReconciliationOfUnitedStatesFederalStatutoryCorporateTaxRateToCompanysEffectiveTaxRateOrIncomeTaxProvisionDetails"
     ],
     "xbrltype": "percentItemType"
    },
    "us-gaap_EffectiveIncomeTaxRateReconciliationChangeInDeferredTaxAssetsValuationAllowance": {
     "auth_ref": [
      "r331",
      "r332",
      "r357"
     ],
     "calculation": {
      "http://cognex.com/role/TaxesReconciliationOfUnitedStatesFederalStatutoryCorporateTaxRateToCompanysEffectiveTaxRateOrIncomeTaxProvisionDetails": {
       "order": 7.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",
        "terseLabel": "Discrete tax expense related to write-down of deferred tax assets"
       }
      }
     },
     "localname": "EffectiveIncomeTaxRateReconciliationChangeInDeferredTaxAssetsValuationAllowance",
     "nsuri": "http://fasb.org/us-gaap/2018-01-31",
     "presentation": [
      "http://cognex.com/role/TaxesReconciliationOfUnitedStatesFederalStatutoryCorporateTaxRateToCompanysEffectiveTaxRateOrIncomeTaxProvisionDetails"
     ],
     "xbrltype": "percentItemType"
    },
    "us-gaap_EffectiveIncomeTaxRateReconciliationChangeInEnactedTaxRate": {
     "auth_ref": [
      "r331",
      "r332",
      "r357"
     ],
     "calculation": {
      "http://cognex.com/role/TaxesReconciliationOfUnitedStatesFederalStatutoryCorporateTaxRateToCompanysEffectiveTaxRateOrIncomeTaxProvisionDetails": {
       "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 changes in the income tax rates.",
        "label": "Effective Income Tax Rate Reconciliation, Change in Enacted Tax Rate, Percent",
        "terseLabel": "Discrete tax (benefit) related to change in tax structure"
       }
      }
     },
     "localname": "EffectiveIncomeTaxRateReconciliationChangeInEnactedTaxRate",
     "nsuri": "http://fasb.org/us-gaap/2018-01-31",
     "presentation": [
      "http://cognex.com/role/TaxesReconciliationOfUnitedStatesFederalStatutoryCorporateTaxRateToCompanysEffectiveTaxRateOrIncomeTaxProvisionDetails"
     ],
     "xbrltype": "percentItemType"
    },
    "us-gaap_EffectiveIncomeTaxRateReconciliationForeignIncomeTaxRateDifferential": {
     "auth_ref": [
      "r331",
      "r332",
      "r357"
     ],
     "calculation": {
      "http://cognex.com/role/TaxesReconciliationOfUnitedStatesFederalStatutoryCorporateTaxRateToCompanysEffectiveTaxRateOrIncomeTaxProvisionDetails": {
       "order": 3.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/2018-01-31",
     "presentation": [
      "http://cognex.com/role/TaxesAdditionalInformationDetails",
      "http://cognex.com/role/TaxesReconciliationOfUnitedStatesFederalStatutoryCorporateTaxRateToCompanysEffectiveTaxRateOrIncomeTaxProvisionDetails"
     ],
     "xbrltype": "percentItemType"
    },
    "us-gaap_EffectiveIncomeTaxRateReconciliationOtherAdjustments": {
     "auth_ref": [
      "r331",
      "r332",
      "r357"
     ],
     "calculation": {
      "http://cognex.com/role/TaxesReconciliationOfUnitedStatesFederalStatutoryCorporateTaxRateToCompanysEffectiveTaxRateOrIncomeTaxProvisionDetails": {
       "order": 12.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/2018-01-31",
     "presentation": [
      "http://cognex.com/role/TaxesReconciliationOfUnitedStatesFederalStatutoryCorporateTaxRateToCompanysEffectiveTaxRateOrIncomeTaxProvisionDetails"
     ],
     "xbrltype": "percentItemType"
    },
    "us-gaap_EffectiveIncomeTaxRateReconciliationOtherReconcilingItemsPercent": {
     "auth_ref": [],
     "calculation": {
      "http://cognex.com/role/TaxesReconciliationOfUnitedStatesFederalStatutoryCorporateTaxRateToCompanysEffectiveTaxRateOrIncomeTaxProvisionDetails": {
       "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 the expected income tax expense (benefit) computed by applying the domestic federal statutory income tax rates to pretax income (loss) from continuing operations, that is attributable to tax exempt income, equity in earnings (loss) of an unconsolidated subsidiary, minority interest income (expense), tax holiday, disposition of a business, disposition of an asset, repatriation of foreign earnings, repatriation of foreign earnings jobs creation act of 2004, change in enacted tax rate, prior year income taxes, change in deferred tax asset valuation allowance, and other adjustments.",
        "label": "Effective Income Tax Rate Reconciliation,Other Reconciling Items, Percent",
        "terseLabel": "Other discrete tax events"
       }
      }
     },
     "localname": "EffectiveIncomeTaxRateReconciliationOtherReconcilingItemsPercent",
     "nsuri": "http://fasb.org/us-gaap/2018-01-31",
     "presentation": [
      "http://cognex.com/role/TaxesReconciliationOfUnitedStatesFederalStatutoryCorporateTaxRateToCompanysEffectiveTaxRateOrIncomeTaxProvisionDetails"
     ],
     "xbrltype": "percentItemType"
    },
    "us-gaap_EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitAmount": {
     "auth_ref": [
      "r331"
     ],
     "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 excess tax benefit for share-based compensation cost.",
        "label": "Effective Income Tax Rate Reconciliation, Share-based Compensation, Excess Tax Benefit, Amount",
        "terseLabel": "Reduction of income tax expense for adoption of ASU 2016-09"
       }
      }
     },
     "localname": "EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitAmount",
     "nsuri": "http://fasb.org/us-gaap/2018-01-31",
     "presentation": [
      "http://cognex.com/role/TaxesAdditionalInformationDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitPercent": {
     "auth_ref": [
      "r331"
     ],
     "calculation": {
      "http://cognex.com/role/TaxesReconciliationOfUnitedStatesFederalStatutoryCorporateTaxRateToCompanysEffectiveTaxRateOrIncomeTaxProvisionDetails": {
       "order": 5.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 excess tax benefit for share-based compensation cost.",
        "label": "Effective Income Tax Rate Reconciliation, Share-based Compensation, Excess Tax Benefit, Percent",
        "negatedTerseLabel": "Discrete tax benefit related to employee stock options",
        "terseLabel": "Discrete tax benefit related to employee stock option exercises"
       }
      }
     },
     "localname": "EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitPercent",
     "nsuri": "http://fasb.org/us-gaap/2018-01-31",
     "presentation": [
      "http://cognex.com/role/TaxesAdditionalInformationDetails",
      "http://cognex.com/role/TaxesReconciliationOfUnitedStatesFederalStatutoryCorporateTaxRateToCompanysEffectiveTaxRateOrIncomeTaxProvisionDetails"
     ],
     "xbrltype": "percentItemType"
    },
    "us-gaap_EffectiveIncomeTaxRateReconciliationStateAndLocalIncomeTaxes": {
     "auth_ref": [
      "r331",
      "r332",
      "r357"
     ],
     "calculation": {
      "http://cognex.com/role/TaxesReconciliationOfUnitedStatesFederalStatutoryCorporateTaxRateToCompanysEffectiveTaxRateOrIncomeTaxProvisionDetails": {
       "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 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/2018-01-31",
     "presentation": [
      "http://cognex.com/role/TaxesReconciliationOfUnitedStatesFederalStatutoryCorporateTaxRateToCompanysEffectiveTaxRateOrIncomeTaxProvisionDetails"
     ],
     "xbrltype": "percentItemType"
    },
    "us-gaap_EffectiveIncomeTaxRateReconciliationTaxCredits": {
     "auth_ref": [
      "r331",
      "r332",
      "r357"
     ],
     "calculation": {
      "http://cognex.com/role/TaxesReconciliationOfUnitedStatesFederalStatutoryCorporateTaxRateToCompanysEffectiveTaxRateOrIncomeTaxProvisionDetails": {
       "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 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/2018-01-31",
     "presentation": [
      "http://cognex.com/role/TaxesReconciliationOfUnitedStatesFederalStatutoryCorporateTaxRateToCompanysEffectiveTaxRateOrIncomeTaxProvisionDetails"
     ],
     "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 Compensation Arrangement by Share-based Payment Award, Compensation Cost [Line Items]",
        "terseLabel": "Employee Service Share-based Compensation, Allocation of Recognized Period Costs [Line Items]"
       }
      }
     },
     "localname": "EmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsLineItems",
     "nsuri": "http://fasb.org/us-gaap/2018-01-31",
     "presentation": [
      "http://cognex.com/role/StockBasedCompensationExpenseStockBasedCompensationExpenseDetail"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1": {
     "auth_ref": [
      "r311"
     ],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Weighted average period over which unrecognized compensation is expected to be recognized for equity-based compensation plans, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents the reported fact of one year, five months, and thirteen days.",
        "label": "Employee Service Share-based Compensation, Nonvested Awards, Compensation Cost Not yet Recognized, Period for Recognition",
        "terseLabel": "Recognition period for unrecognized compensation expense"
       }
      }
     },
     "localname": "EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1",
     "nsuri": "http://fasb.org/us-gaap/2018-01-31",
     "presentation": [
      "http://cognex.com/role/StockBasedCompensationExpenseAdditionalInformationDetail",
      "http://cognex.com/role/StockBasedCompensationExpenseStockBasedCompensationExpenseDetail"
     ],
     "xbrltype": "durationItemType"
    },
    "us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedStockOptions": {
     "auth_ref": [
      "r311"
     ],
     "crdr": "debit",
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Unrecognized cost of unvested options awarded to employees as compensation.",
        "label": "Employee Service Share-based Compensation, Nonvested Awards, Compensation Not yet Recognized, Stock Options",
        "terseLabel": "Total unrecognized compensation expense related to non-vested stock options"
       }
      }
     },
     "localname": "EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedStockOptions",
     "nsuri": "http://fasb.org/us-gaap/2018-01-31",
     "presentation": [
      "http://cognex.com/role/StockBasedCompensationExpenseAdditionalInformationDetail"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense": {
     "auth_ref": [
      "r310"
     ],
     "crdr": "credit",
     "lang": {
      "en-US": {
       "role": {
        "documentation": "The total recognized tax benefit related to compensation cost for equity-based payment arrangements recognized in income during the period.",
        "label": "Employee Service Share-based Compensation, Tax Benefit from Compensation Expense",
        "terseLabel": "Income tax benefit recognized related to stock-based compensation expense"
       }
      }
     },
     "localname": "EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense",
     "nsuri": "http://fasb.org/us-gaap/2018-01-31",
     "presentation": [
      "http://cognex.com/role/StockBasedCompensationExpenseAdditionalInformationDetail",
      "http://cognex.com/role/StockBasedCompensationExpenseStockBasedCompensationExpenseDetail"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_EmployeeStockOptionMember": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "An arrangement whereby an employee is entitled to receive in the future, subject to vesting and other restrictions, a number of shares in the entity at a specified price, as defined in the agreement. Although there are variations, normally, after vesting, when an option is exercised, the employee-holder pays the strike value in cash to the issuing employer-entity and receives equity shares. The equity shares can be sold into the market for cash at the current market price without restriction. Options may be used to attract, retain and incentivize employees, in addition to their regular salary and other benefits.",
        "label": "Employee Stock Option [Member]",
        "terseLabel": "Employee Stock Option [Member]",
        "verboseLabel": "Stock Compensation Plan [Member]"
       }
      }
     },
     "localname": "EmployeeStockOptionMember",
     "nsuri": "http://fasb.org/us-gaap/2018-01-31",
     "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/2018-01-31",
     "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]"
       }
      }
     },
     "localname": "EquityAbstract",
     "nsuri": "http://fasb.org/us-gaap/2018-01-31",
     "xbrltype": "stringItemType"
    },
    "us-gaap_EquityComponentDomain": {
     "auth_ref": [
      "r251"
     ],
     "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/2018-01-31",
     "presentation": [
      "http://cognex.com/role/ConsolidatedStatementsOfShareholdersEquity",
      "http://cognex.com/role/DerivativeInstrumentsChangesInAociDetails",
      "http://cognex.com/role/SummaryOfSignificantAccountingPoliciesComprehensiveIncomeLossDetails"
     ],
     "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/2018-01-31",
     "presentation": [
      "http://cognex.com/role/FairValueMeasurementsAssetsAndLiabilitiesMeasuredAtFairValueOnRecurringBasisDetail"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisTable": {
     "auth_ref": [
      "r425",
      "r426",
      "r427",
      "r428",
      "r432",
      "r433"
     ],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Disclosure of information about financial instruments measured at fair value, including those classified in shareholders' equity measured on a recurring or nonrecurring basis. Disclosures include, but are not limited to, fair value measurements recorded and the reasons for the measurements, level within the fair value hierarchy in which the fair value measurements are categorized and transfers between levels 1 and 2. Nonrecurring fair value measurements are those that are required or permitted in the statement of financial position in particular circumstances.",
        "label": "Fair Value Measurements, Recurring and Nonrecurring [Table]",
        "terseLabel": "Fair Value Measurements, Recurring and Nonrecurring [Table]"
       }
      }
     },
     "localname": "FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisTable",
     "nsuri": "http://fasb.org/us-gaap/2018-01-31",
     "presentation": [
      "http://cognex.com/role/FairValueMeasurementsAssetsAndLiabilitiesMeasuredAtFairValueOnRecurringBasisDetail"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_FairValueByFairValueHierarchyLevelAxis": {
     "auth_ref": [
      "r274",
      "r275",
      "r276",
      "r427",
      "r474"
     ],
     "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/2018-01-31",
     "presentation": [
      "http://cognex.com/role/FairValueMeasurementsAssetsAndLiabilitiesMeasuredAtFairValueOnRecurringBasisDetail"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_FairValueByMeasurementFrequencyAxis": {
     "auth_ref": [
      "r425"
     ],
     "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/2018-01-31",
     "presentation": [
      "http://cognex.com/role/FairValueMeasurementsAssetsAndLiabilitiesMeasuredAtFairValueOnRecurringBasisDetail"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_FairValueDisclosuresAbstract": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "label": "Fair Value Disclosures [Abstract]"
       }
      }
     },
     "localname": "FairValueDisclosuresAbstract",
     "nsuri": "http://fasb.org/us-gaap/2018-01-31",
     "xbrltype": "stringItemType"
    },
    "us-gaap_FairValueDisclosuresTextBlock": {
     "auth_ref": [
      "r435"
     ],
     "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/2018-01-31",
     "presentation": [
      "http://cognex.com/role/FairValueMeasurements"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_FairValueInputsLevel1Member": {
     "auth_ref": [
      "r274",
      "r275",
      "r276",
      "r427",
      "r475"
     ],
     "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 Prices in Active Markets for Identical Assets (Level 1)"
       }
      }
     },
     "localname": "FairValueInputsLevel1Member",
     "nsuri": "http://fasb.org/us-gaap/2018-01-31",
     "presentation": [
      "http://cognex.com/role/FairValueMeasurementsAssetsAndLiabilitiesMeasuredAtFairValueOnRecurringBasisDetail"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_FairValueInputsLevel2Member": {
     "auth_ref": [
      "r274",
      "r275",
      "r276",
      "r427",
      "r476"
     ],
     "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 Other Observable Inputs (Level 2)"
       }
      }
     },
     "localname": "FairValueInputsLevel2Member",
     "nsuri": "http://fasb.org/us-gaap/2018-01-31",
     "presentation": [
      "http://cognex.com/role/FairValueMeasurementsAssetsAndLiabilitiesMeasuredAtFairValueOnRecurringBasisDetail"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_FairValueInputsLevel3Member": {
     "auth_ref": [
      "r274",
      "r275",
      "r276",
      "r427",
      "r477"
     ],
     "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/2018-01-31",
     "presentation": [
      "http://cognex.com/role/FairValueMeasurementsAssetsAndLiabilitiesMeasuredAtFairValueOnRecurringBasisDetail"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationCalculationRollForward": {
     "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": "Fair Value, Liabilities Measured on Recurring Basis, Unobservable Input Reconciliation, Calculation [Roll Forward]",
        "terseLabel": "Fair Value, Liabilities Measured on Recurring Basis, Unobservable Input Reconciliation, Calculation [Roll Forward]"
       }
      }
     },
     "localname": "FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationCalculationRollForward",
     "nsuri": "http://fasb.org/us-gaap/2018-01-31",
     "presentation": [
      "http://cognex.com/role/FairValueMeasurementsLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationLineItems": {
     "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, Liabilities Measured on Recurring Basis, Unobservable Input Reconciliation [Line Items]",
        "terseLabel": "Fair Value, Liabilities Measured on Recurring Basis, Unobservable Input Reconciliation [Line Items]"
       }
      }
     },
     "localname": "FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationLineItems",
     "nsuri": "http://fasb.org/us-gaap/2018-01-31",
     "presentation": [
      "http://cognex.com/role/FairValueMeasurementsLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationTable": {
     "auth_ref": [
      "r429",
      "r433"
     ],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Schedule of information required and determined to be provided for purposes of reconciling beginning and ending balances of fair value measurements of liabilities using significant unobservable inputs (level 3). Separately presenting changes during the period, attributable to: (1) total gains or losses for the period (realized and unrealized) and location reported in the statement of income (or activities); (2) purchases, sales, issuances, and settlements (net); (3) transfers in and/or out of Level 3.",
        "label": "Fair Value, Liabilities Measured on Recurring Basis, Unobservable Input Reconciliation [Table]",
        "terseLabel": "Fair Value, Liabilities Measured on Recurring Basis, Unobservable Input Reconciliation [Table]"
       }
      }
     },
     "localname": "FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationTable",
     "nsuri": "http://fasb.org/us-gaap/2018-01-31",
     "presentation": [
      "http://cognex.com/role/FairValueMeasurementsLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationTextBlock": {
     "auth_ref": [
      "r429",
      "r433"
     ],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Tabular disclosure of the fair value measurement of liabilities using significant unobservable inputs (Level 3), a reconciliation of the beginning and ending balances, separately presenting changes attributable to the following: (1) total gains or losses for the period (realized and unrealized), segregating those gains or losses included in earnings (or changes in net assets), and gains or losses recognized in other comprehensive income (loss) and a description of where those gains or losses included in earnings (or changes in net assets) are reported in the statement of income (or activities); (2) purchases, sales, issues, and settlements (each type disclosed separately); and (3) transfers in and transfers out of Level 3 (for example, transfers due to changes in the observability of significant inputs) by class of liability.",
        "label": "Fair Value, Liabilities Measured on Recurring Basis, Unobservable Input Reconciliation [Table Text Block]",
        "terseLabel": "Fair Value, Liabilities Measured on Recurring Basis, Unobservable Input Reconciliation"
       }
      }
     },
     "localname": "FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2018-01-31",
     "presentation": [
      "http://cognex.com/role/FairValueMeasurementsTables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_FairValueMeasurementFrequencyDomain": {
     "auth_ref": [
      "r425",
      "r431"
     ],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Provides the general categories used to describe the frequency with which financial assets and liabilities (as defined) are measured at fair value (on a recurring or nonrecurring basis).",
        "label": "Fair Value, Measurement Frequency [Domain]",
        "terseLabel": "Fair Value, Measurement Frequency [Domain]"
       }
      }
     },
     "localname": "FairValueMeasurementFrequencyDomain",
     "nsuri": "http://fasb.org/us-gaap/2018-01-31",
     "presentation": [
      "http://cognex.com/role/FairValueMeasurementsAssetsAndLiabilitiesMeasuredAtFairValueOnRecurringBasisDetail"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilitySettlements": {
     "auth_ref": [
      "r430"
     ],
     "crdr": "debit",
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Amount of settlements of financial instrument classified as a liability measured using unobservable inputs that reflect the entity's own assumption about the assumptions market participants would use in pricing.",
        "label": "Fair Value, Measurement with Unobservable Inputs Reconciliation, Recurring Basis, Liability, Settlements",
        "negatedTerseLabel": "Payment of contingent consideration"
       }
      }
     },
     "localname": "FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilitySettlements",
     "nsuri": "http://fasb.org/us-gaap/2018-01-31",
     "presentation": [
      "http://cognex.com/role/FairValueMeasurementsLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue": {
     "auth_ref": [
      "r429"
     ],
     "crdr": "credit",
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Fair value of financial instrument classified as a liability measured using unobservable inputs that reflect the entity's own assumption about the assumptions market participants would use in pricing.",
        "label": "Fair Value, Measurement with Unobservable Inputs Reconciliation, Recurring Basis, Liability Value",
        "periodEndLabel": "Ending balance",
        "periodStartLabel": "Beginning balance"
       }
      }
     },
     "localname": "FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue",
     "nsuri": "http://fasb.org/us-gaap/2018-01-31",
     "presentation": [
      "http://cognex.com/role/FairValueMeasurementsLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_FairValueMeasurementsFairValueHierarchyDomain": {
     "auth_ref": [],
     "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/2018-01-31",
     "presentation": [
      "http://cognex.com/role/FairValueMeasurementsAssetsAndLiabilitiesMeasuredAtFairValueOnRecurringBasisDetail"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_FairValueMeasurementsRecurringMember": {
     "auth_ref": [
      "r425",
      "r431"
     ],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "This item represents a description of the frequency with which certain items are measured at fair value. Items measured at fair value on a recurring basis generally include those items for which measurement inputs are readily available and which are measured at fair value at successive reporting periods.",
        "label": "Fair Value, Measurements, Recurring [Member]",
        "terseLabel": "Fair Value, Measurements, Recurring"
       }
      }
     },
     "localname": "FairValueMeasurementsRecurringMember",
     "nsuri": "http://fasb.org/us-gaap/2018-01-31",
     "presentation": [
      "http://cognex.com/role/FairValueMeasurementsAssetsAndLiabilitiesMeasuredAtFairValueOnRecurringBasisDetail"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_FairValueOfFinancialInstrumentsPolicy": {
     "auth_ref": [
      "r106",
      "r434",
      "r436"
     ],
     "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/2018-01-31",
     "presentation": [
      "http://cognex.com/role/SummaryOfSignificantAccountingPoliciesPolicies"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_FairValuesDerivativesBalanceSheetLocationByDerivativeContractTypeByHedgingDesignationTable": {
     "auth_ref": [
      "r405",
      "r410",
      "r420"
     ],
     "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/2018-01-31",
     "presentation": [
      "http://cognex.com/role/DerivativeInstrumentsBalanceSheetLocationDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_FinancialInstrumentAxis": {
     "auth_ref": [],
     "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/2018-01-31",
     "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/2018-01-31",
     "presentation": [
      "http://cognex.com/role/SummaryOfSignificantAccountingPoliciesIntangibleAssetsDetails"
     ],
     "xbrltype": "durationItemType"
    },
    "us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization": {
     "auth_ref": [
      "r213"
     ],
     "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"
       }
      }
     },
     "localname": "FiniteLivedIntangibleAssetsAccumulatedAmortization",
     "nsuri": "http://fasb.org/us-gaap/2018-01-31",
     "presentation": [
      "http://cognex.com/role/IntangibleAssetsAmortizedIntangibleAssetsDetail"
     ],
     "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 expense for assets, excluding financial assets and goodwill, lacking physical substance with a finite life expected to be recognized after the fifth fiscal year following the latest fiscal year. Excludes interim and annual periods when interim periods are reported on a rolling approach, from latest balance sheet date.",
        "label": "Finite-Lived Intangible Assets, Amortization Expense, after Year Five",
        "terseLabel": "Thereafter"
       }
      }
     },
     "localname": "FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive",
     "nsuri": "http://fasb.org/us-gaap/2018-01-31",
     "presentation": [
      "http://cognex.com/role/IntangibleAssetsEstimatedAmortizationExpenseSucceedingFiscalYearsDetail"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths": {
     "auth_ref": [
      "r215"
     ],
     "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 expense for assets, excluding financial assets and goodwill, lacking physical substance with a finite life expected to be recognized during the next fiscal year following the latest fiscal year. Excludes interim and annual periods when interim periods are reported on a rolling approach, from latest balance sheet date.",
        "label": "Finite-Lived Intangible Assets, Amortization Expense, Next Twelve Months",
        "terseLabel": "2019"
       }
      }
     },
     "localname": "FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths",
     "nsuri": "http://fasb.org/us-gaap/2018-01-31",
     "presentation": [
      "http://cognex.com/role/IntangibleAssetsEstimatedAmortizationExpenseSucceedingFiscalYearsDetail"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFive": {
     "auth_ref": [
      "r215"
     ],
     "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 expense for assets, excluding financial assets and goodwill, lacking physical substance with a finite life expected to be recognized during the fifth fiscal year following the latest fiscal year. Excludes interim and annual periods when interim periods are reported on a rolling approach, from latest balance sheet date.",
        "label": "Finite-Lived Intangible Assets, Amortization Expense, Year Five",
        "terseLabel": "2023"
       }
      }
     },
     "localname": "FiniteLivedIntangibleAssetsAmortizationExpenseYearFive",
     "nsuri": "http://fasb.org/us-gaap/2018-01-31",
     "presentation": [
      "http://cognex.com/role/IntangibleAssetsEstimatedAmortizationExpenseSucceedingFiscalYearsDetail"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFour": {
     "auth_ref": [
      "r215"
     ],
     "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 expense for assets, excluding financial assets and goodwill, lacking physical substance with a finite life expected to be recognized during the fourth fiscal year following the latest fiscal year. Excludes interim and annual periods when interim periods are reported on a rolling approach, from latest balance sheet date.",
        "label": "Finite-Lived Intangible Assets, Amortization Expense, Year Four",
        "terseLabel": "2022"
       }
      }
     },
     "localname": "FiniteLivedIntangibleAssetsAmortizationExpenseYearFour",
     "nsuri": "http://fasb.org/us-gaap/2018-01-31",
     "presentation": [
      "http://cognex.com/role/IntangibleAssetsEstimatedAmortizationExpenseSucceedingFiscalYearsDetail"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearThree": {
     "auth_ref": [
      "r215"
     ],
     "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 expense for assets, excluding financial assets and goodwill, lacking physical substance with a finite life expected to be recognized during the third fiscal year following the latest fiscal year. Excludes interim and annual periods when interim periods are reported on a rolling approach, from latest balance sheet date.",
        "label": "Finite-Lived Intangible Assets, Amortization Expense, Year Three",
        "terseLabel": "2021"
       }
      }
     },
     "localname": "FiniteLivedIntangibleAssetsAmortizationExpenseYearThree",
     "nsuri": "http://fasb.org/us-gaap/2018-01-31",
     "presentation": [
      "http://cognex.com/role/IntangibleAssetsEstimatedAmortizationExpenseSucceedingFiscalYearsDetail"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo": {
     "auth_ref": [
      "r215"
     ],
     "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 expense for assets, excluding financial assets and goodwill, lacking physical substance with a finite life expected to be recognized during the second fiscal year following the latest fiscal year. Excludes interim and annual periods when interim periods are reported on a rolling approach, from latest balance sheet date.",
        "label": "Finite-Lived Intangible Assets, Amortization Expense, Year Two",
        "terseLabel": "2020"
       }
      }
     },
     "localname": "FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo",
     "nsuri": "http://fasb.org/us-gaap/2018-01-31",
     "presentation": [
      "http://cognex.com/role/IntangibleAssetsEstimatedAmortizationExpenseSucceedingFiscalYearsDetail"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis": {
     "auth_ref": [
      "r207",
      "r210",
      "r213",
      "r216",
      "r480"
     ],
     "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/2018-01-31",
     "presentation": [
      "http://cognex.com/role/AcquisitionsGviVenturesIncDetails",
      "http://cognex.com/role/AcquisitionsGviVenturesIncPurchasePriceAllocationDetails",
      "http://cognex.com/role/AcquisitionsSualabCoLtdNarrativeDetails",
      "http://cognex.com/role/AcquisitionsSualabCoLtdPurchasePriceAllocationDetails",
      "http://cognex.com/role/AcquisitionsVidiSystemsSADetails",
      "http://cognex.com/role/AcquisitionsVidiSystemsSAPurchasePriceAllocationDetails",
      "http://cognex.com/role/IntangibleAssetsAmortizedIntangibleAssetsDetail",
      "http://cognex.com/role/SummaryOfSignificantAccountingPoliciesIntangibleAssetsDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_FiniteLivedIntangibleAssetsGross": {
     "auth_ref": [
      "r213",
      "r480"
     ],
     "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/2018-01-31",
     "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/2018-01-31",
     "presentation": [
      "http://cognex.com/role/IntangibleAssetsAmortizedIntangibleAssetsDetail",
      "http://cognex.com/role/SummaryOfSignificantAccountingPoliciesIntangibleAssetsDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain": {
     "auth_ref": [
      "r207",
      "r212"
     ],
     "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/2018-01-31",
     "presentation": [
      "http://cognex.com/role/AcquisitionsGviVenturesIncDetails",
      "http://cognex.com/role/AcquisitionsGviVenturesIncPurchasePriceAllocationDetails",
      "http://cognex.com/role/AcquisitionsSualabCoLtdNarrativeDetails",
      "http://cognex.com/role/AcquisitionsSualabCoLtdPurchasePriceAllocationDetails",
      "http://cognex.com/role/AcquisitionsVidiSystemsSADetails",
      "http://cognex.com/role/AcquisitionsVidiSystemsSAPurchasePriceAllocationDetails",
      "http://cognex.com/role/IntangibleAssetsAmortizedIntangibleAssetsDetail",
      "http://cognex.com/role/SummaryOfSignificantAccountingPoliciesIntangibleAssetsDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_FiniteLivedIntangibleAssetsNet": {
     "auth_ref": [
      "r213"
     ],
     "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/2018-01-31",
     "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/2018-01-31",
     "presentation": [
      "http://cognex.com/role/TaxesAdditionalInformationDetails"
     ],
     "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/2018-01-31",
     "presentation": [
      "http://cognex.com/role/FairValueMeasurementsAssetsAndLiabilitiesMeasuredAtFairValueOnRecurringBasisDetail"
     ],
     "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/2018-01-31",
     "presentation": [
      "http://cognex.com/role/FairValueMeasurementsAssetsAndLiabilitiesMeasuredAtFairValueOnRecurringBasisDetail"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_ForeignCurrencyGainLossMember": {
     "auth_ref": [
      "r414"
     ],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Primary financial statement caption encompassing foreign currency gain (loss).",
        "label": "Foreign Currency Gain (Loss) [Member]",
        "terseLabel": "Foreign currency gain (loss)"
       }
      }
     },
     "localname": "ForeignCurrencyGainLossMember",
     "nsuri": "http://fasb.org/us-gaap/2018-01-31",
     "presentation": [
      "http://cognex.com/role/DerivativeInstrumentsGainLossRecognizedInOtherComprehensiveIncomeLossDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_ForeignCurrencyTransactionGainLossBeforeTax": {
     "auth_ref": [
      "r442",
      "r443",
      "r444"
     ],
     "calculation": {
      "http://cognex.com/role/ConsolidatedStatementsOfOperations": {
       "order": 2.0,
       "parentTag": "us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments",
       "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/2018-01-31",
     "presentation": [
      "http://cognex.com/role/ConsolidatedStatementsOfOperations"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_ForeignCurrencyTransactionsAndTranslationsPolicyTextBlock": {
     "auth_ref": [
      "r106",
      "r444",
      "r451"
     ],
     "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/2018-01-31",
     "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/2018-01-31",
     "presentation": [
      "http://cognex.com/role/PropertyPlantAndEquipmentPropertyPlantAndEquipmentDetail",
      "http://cognex.com/role/SummaryOfSignificantAccountingPoliciesAdditionalInformationDetail"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_GainLossOnSaleOfInvestments": {
     "auth_ref": [
      "r99"
     ],
     "calculation": {
      "http://cognex.com/role/ConsolidatedStatementsOfCashFlows": {
       "order": 8.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/2018-01-31",
     "presentation": [
      "http://cognex.com/role/ConsolidatedStatementsOfCashFlows"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_GeneralAndAdministrativeExpenseMember": {
     "auth_ref": [
      "r83"
     ],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Primary financial statement caption encompassing general and administrative expense.",
        "label": "General and Administrative Expense [Member]",
        "terseLabel": "Selling, general and administrative expenses"
       }
      }
     },
     "localname": "GeneralAndAdministrativeExpenseMember",
     "nsuri": "http://fasb.org/us-gaap/2018-01-31",
     "presentation": [
      "http://cognex.com/role/DerivativeInstrumentsGainLossRecognizedInOtherComprehensiveIncomeLossDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_Goodwill": {
     "auth_ref": [
      "r198",
      "r199"
     ],
     "calculation": {
      "http://cognex.com/role/AcquisitionsGviVenturesIncPurchasePriceAllocationDetails": {
       "order": 7.0,
       "parentTag": "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet",
       "weight": 1.0
      },
      "http://cognex.com/role/AcquisitionsSualabCoLtdPurchasePriceAllocationDetails": {
       "order": 18.0,
       "parentTag": "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet",
       "weight": 1.0
      },
      "http://cognex.com/role/AcquisitionsVidiSystemsSAPurchasePriceAllocationDetails": {
       "order": 10.0,
       "parentTag": "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet",
       "weight": 1.0
      },
      "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/2018-01-31",
     "presentation": [
      "http://cognex.com/role/AcquisitionsGviVenturesIncPurchasePriceAllocationDetails",
      "http://cognex.com/role/AcquisitionsSualabCoLtdPurchasePriceAllocationDetails",
      "http://cognex.com/role/AcquisitionsVidiSystemsSAPurchasePriceAllocationDetails",
      "http://cognex.com/role/ConsolidatedBalanceSheets",
      "http://cognex.com/role/GoodwillChangesInCarryingValueOfGoodwillDetail"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_GoodwillAcquiredDuringPeriod": {
     "auth_ref": [
      "r200"
     ],
     "crdr": "debit",
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Amount of increase in asset representing future economic benefits arising from other assets acquired in a business combination that are not individually identified and separately recognized resulting from a business combination.",
        "label": "Goodwill, Acquired During Period",
        "terseLabel": "Goodwill acquired during the period"
       }
      }
     },
     "localname": "GoodwillAcquiredDuringPeriod",
     "nsuri": "http://fasb.org/us-gaap/2018-01-31",
     "presentation": [
      "http://cognex.com/role/GoodwillChangesInCarryingValueOfGoodwillDetail"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_GoodwillAndIntangibleAssetImpairment": {
     "auth_ref": [],
     "crdr": "debit",
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Total loss recognized during the period from the impairment of goodwill plus the loss recognized in the period resulting from the impairment of the carrying amount of intangible assets, other than goodwill.",
        "label": "Goodwill and Intangible Asset Impairment",
        "terseLabel": "Goodwill and intangible asset impairment"
       }
      }
     },
     "localname": "GoodwillAndIntangibleAssetImpairment",
     "nsuri": "http://fasb.org/us-gaap/2018-01-31",
     "presentation": [
      "http://cognex.com/role/FairValueMeasurementsLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "label": "Goodwill and Intangible Assets Disclosure [Abstract]"
       }
      }
     },
     "localname": "GoodwillAndIntangibleAssetsDisclosureAbstract",
     "nsuri": "http://fasb.org/us-gaap/2018-01-31",
     "xbrltype": "stringItemType"
    },
    "us-gaap_GoodwillAndIntangibleAssetsGoodwillPolicy": {
     "auth_ref": [
      "r106",
      "r202"
     ],
     "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/2018-01-31",
     "presentation": [
      "http://cognex.com/role/SummaryOfSignificantAccountingPoliciesPolicies"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_GoodwillDisclosureTextBlock": {
     "auth_ref": [
      "r204"
     ],
     "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/2018-01-31",
     "presentation": [
      "http://cognex.com/role/Goodwill"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_GoodwillForeignCurrencyTranslationGainLoss": {
     "auth_ref": [
      "r201"
     ],
     "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/2018-01-31",
     "presentation": [
      "http://cognex.com/role/GoodwillChangesInCarryingValueOfGoodwillDetail"
     ],
     "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/2018-01-31",
     "presentation": [
      "http://cognex.com/role/GoodwillChangesInCarryingValueOfGoodwillDetail"
     ],
     "xbrltype": "stringItemType"
    },
    "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/2018-01-31",
     "presentation": [
      "http://cognex.com/role/GoodwillChangesInCarryingValueOfGoodwillDetail"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_GrossProfit": {
     "auth_ref": [
      "r85"
     ],
     "calculation": {
      "http://cognex.com/role/ConsolidatedStatementsOfOperations": {
       "order": 1.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",
        "terseLabel": "Gross margin",
        "totalLabel": "Gross margin"
       }
      }
     },
     "localname": "GrossProfit",
     "nsuri": "http://fasb.org/us-gaap/2018-01-31",
     "presentation": [
      "http://cognex.com/role/ConsolidatedStatementsOfOperations",
      "http://cognex.com/role/RevenueRecognitionStatementOfOperationsImpactDetails",
      "http://cognex.com/role/SelectedQuarterlyFinancialDataUnauditedDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_GuaranteeObligationsMember": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "A written or oral contract that obligates the guarantor to either pay cash or perform services if another party fails to perform specified actions or achieve specified results.",
        "label": "Guarantee Obligations [Member]",
        "terseLabel": "Guarantee Obligations [Member]"
       }
      }
     },
     "localname": "GuaranteeObligationsMember",
     "nsuri": "http://fasb.org/us-gaap/2018-01-31",
     "presentation": [
      "http://cognex.com/role/IndemnificationProvisionsNarrativeDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_GuaranteesAbstract": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "label": "Guarantees [Abstract]"
       }
      }
     },
     "localname": "GuaranteesAbstract",
     "nsuri": "http://fasb.org/us-gaap/2018-01-31",
     "xbrltype": "stringItemType"
    },
    "us-gaap_HedgingDesignationAxis": {
     "auth_ref": [
      "r402",
      "r416"
     ],
     "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/2018-01-31",
     "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": [
      "r402"
     ],
     "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/2018-01-31",
     "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_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/2018-01-31",
     "presentation": [
      "http://cognex.com/role/IntangibleAssetsAmortizedIntangibleAssetsDetail"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesDomestic": {
     "auth_ref": [
      "r111"
     ],
     "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/2018-01-31",
     "presentation": [
      "http://cognex.com/role/TaxesAdditionalInformationDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign": {
     "auth_ref": [
      "r111"
     ],
     "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/2018-01-31",
     "presentation": [
      "http://cognex.com/role/TaxesAdditionalInformationDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments": {
     "auth_ref": [
      "r111"
     ],
     "calculation": {
      "http://cognex.com/role/ConsolidatedStatementsOfOperations": {
       "order": null,
       "parentTag": null,
       "root": true,
       "weight": null
      }
     },
     "crdr": "credit",
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Amount of income (loss) from continuing operations before deduction of income tax expense (benefit) and income (loss) attributable to noncontrolling interest, and addition of income (loss) from equity method investments.",
        "label": "Income (Loss) from Continuing Operations before Equity Method Investments, Income Taxes, Noncontrolling Interest",
        "terseLabel": "Income before income tax expense",
        "totalLabel": "Income before income tax expense",
        "verboseLabel": "Income before income tax expense"
       }
      }
     },
     "localname": "IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments",
     "nsuri": "http://fasb.org/us-gaap/2018-01-31",
     "presentation": [
      "http://cognex.com/role/ConsolidatedStatementsOfOperations",
      "http://cognex.com/role/RevenueRecognitionStatementOfOperationsImpactDetails",
      "http://cognex.com/role/TaxesScheduleOfChangeInAccountingPolicyDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_IncomeStatementAbstract": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "label": "Income Statement [Abstract]"
       }
      }
     },
     "localname": "IncomeStatementAbstract",
     "nsuri": "http://fasb.org/us-gaap/2018-01-31",
     "xbrltype": "stringItemType"
    },
    "us-gaap_IncomeStatementLocationAxis": {
     "auth_ref": [
      "r225"
     ],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Information by location in the income statement.",
        "label": "Income Statement Location [Axis]",
        "terseLabel": "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/2018-01-31",
     "presentation": [
      "http://cognex.com/role/DerivativeInstrumentsGainLossRecognizedInOtherComprehensiveIncomeLossDetails",
      "http://cognex.com/role/StockBasedCompensationExpenseStockBasedCompensationExpenseDetail"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_IncomeStatementLocationDomain": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Location in the income statement.",
        "label": "Income Statement Location [Domain]",
        "terseLabel": "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/2018-01-31",
     "presentation": [
      "http://cognex.com/role/DerivativeInstrumentsGainLossRecognizedInOtherComprehensiveIncomeLossDetails",
      "http://cognex.com/role/StockBasedCompensationExpenseStockBasedCompensationExpenseDetail"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_IncomeTaxAuthorityAxis": {
     "auth_ref": [
      "r335"
     ],
     "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/2018-01-31",
     "presentation": [
      "http://cognex.com/role/TaxesAdditionalInformationDetails"
     ],
     "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/2018-01-31",
     "presentation": [
      "http://cognex.com/role/TaxesAdditionalInformationDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_IncomeTaxAuthorityNameAxis": {
     "auth_ref": [
      "r335"
     ],
     "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/2018-01-31",
     "presentation": [
      "http://cognex.com/role/TaxesAdditionalInformationDetails"
     ],
     "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/2018-01-31",
     "presentation": [
      "http://cognex.com/role/TaxesAdditionalInformationDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_IncomeTaxDisclosureAbstract": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "label": "Income Tax Disclosure [Abstract]"
       }
      }
     },
     "localname": "IncomeTaxDisclosureAbstract",
     "nsuri": "http://fasb.org/us-gaap/2018-01-31",
     "xbrltype": "stringItemType"
    },
    "us-gaap_IncomeTaxDisclosureTextBlock": {
     "auth_ref": [
      "r361"
     ],
     "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": "Taxes"
       }
      }
     },
     "localname": "IncomeTaxDisclosureTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2018-01-31",
     "presentation": [
      "http://cognex.com/role/Taxes"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_IncomeTaxExpenseBenefit": {
     "auth_ref": [
      "r109",
      "r164",
      "r359"
     ],
     "calculation": {
      "http://cognex.com/role/TaxesConstituentsOfProvisionForIncomeTaxesDetails": {
       "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",
        "verboseLabel": "Income tax expense (benefit)"
       }
      }
     },
     "localname": "IncomeTaxExpenseBenefit",
     "nsuri": "http://fasb.org/us-gaap/2018-01-31",
     "presentation": [
      "http://cognex.com/role/ConsolidatedStatementsOfOperations",
      "http://cognex.com/role/RevenueRecognitionStatementOfOperationsImpactDetails",
      "http://cognex.com/role/TaxesConstituentsOfProvisionForIncomeTaxesDetails",
      "http://cognex.com/role/TaxesScheduleOfChangeInAccountingPolicyDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_IncomeTaxPolicyTextBlock": {
     "auth_ref": [
      "r106",
      "r324",
      "r325",
      "r341",
      "r342",
      "r347",
      "r360",
      "r520"
     ],
     "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/2018-01-31",
     "presentation": [
      "http://cognex.com/role/SummaryOfSignificantAccountingPoliciesPolicies"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_IncomeTaxReconciliationForeignIncomeTaxRateDifferential": {
     "auth_ref": [
      "r108",
      "r331",
      "r332"
     ],
     "crdr": "debit",
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Amount of the difference between reported income tax expense (benefit) and expected income tax expense (benefit) computed by applying the domestic federal statutory income tax rates to pretax income (loss) from continuing operations attributable to foreign income tax expense (benefit).",
        "label": "Effective Income Tax Rate Reconciliation, Foreign Income Tax Rate Differential, Amount",
        "terseLabel": "Discrete tax benefit for changes to international tax structure"
       }
      }
     },
     "localname": "IncomeTaxReconciliationForeignIncomeTaxRateDifferential",
     "nsuri": "http://fasb.org/us-gaap/2018-01-31",
     "presentation": [
      "http://cognex.com/role/TaxesAdditionalInformationDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_IncomeTaxesPaidNet": {
     "auth_ref": [
      "r103"
     ],
     "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/2018-01-31",
     "presentation": [
      "http://cognex.com/role/TaxesAdditionalInformationDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_IncreaseDecreaseInAccountsPayable": {
     "auth_ref": [
      "r98"
     ],
     "calculation": {
      "http://cognex.com/role/ConsolidatedStatementsOfCashFlows": {
       "order": 14.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/2018-01-31",
     "presentation": [
      "http://cognex.com/role/ConsolidatedStatementsOfCashFlows"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_IncreaseDecreaseInAccountsReceivable": {
     "auth_ref": [
      "r98"
     ],
     "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 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/2018-01-31",
     "presentation": [
      "http://cognex.com/role/ConsolidatedStatementsOfCashFlows"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_IncreaseDecreaseInAccruedIncomeTaxesPayable": {
     "auth_ref": [
      "r98"
     ],
     "calculation": {
      "http://cognex.com/role/ConsolidatedStatementsOfCashFlows": {
       "order": 16.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/2018-01-31",
     "presentation": [
      "http://cognex.com/role/ConsolidatedStatementsOfCashFlows"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_IncreaseDecreaseInAccruedLiabilities": {
     "auth_ref": [
      "r98"
     ],
     "calculation": {
      "http://cognex.com/role/ConsolidatedStatementsOfCashFlows": {
       "order": 15.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/2018-01-31",
     "presentation": [
      "http://cognex.com/role/ConsolidatedStatementsOfCashFlows"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_IncreaseDecreaseInContractWithCustomerLiability": {
     "auth_ref": [
      "r98"
     ],
     "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": "Increases to deferred revenue and customer deposits"
       }
      }
     },
     "localname": "IncreaseDecreaseInContractWithCustomerLiability",
     "nsuri": "http://fasb.org/us-gaap/2018-01-31",
     "presentation": [
      "http://cognex.com/role/RevenueRecognitionDeferredRevenueAndCustomerDepositsRollforwardDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_IncreaseDecreaseInDeferredIncomeTaxes": {
     "auth_ref": [
      "r98"
     ],
     "calculation": {
      "http://cognex.com/role/ConsolidatedStatementsOfCashFlows": {
       "order": 10.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/2018-01-31",
     "presentation": [
      "http://cognex.com/role/ConsolidatedStatementsOfCashFlows"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_IncreaseDecreaseInDeferredRevenueAndCustomerAdvancesAndDeposits": {
     "auth_ref": [
      "r98"
     ],
     "calculation": {
      "http://cognex.com/role/ConsolidatedStatementsOfCashFlows": {
       "order": 17.0,
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-US": {
       "role": {
        "documentation": "The increase (decrease) during the reporting period in the amount of (a) prepayments by customers for goods or services to be provided at a later date, (b) the amount of customer money held in customer accounts, including security deposits, collateral for current or future transactions, initial payment of the cost of an acquisition or for the right to enter into a contract or agreement, (c) the increase (decrease) during the reporting period, excluding the portion taken into income, in the liability reflecting services yet to be performed by the reporting entity for which cash or other forms of consideration was received or recorded as a receivable, or (d) some combination of (a), (b), and (c).",
        "label": "Increase (Decrease) in Deferred Revenue and Customer Advances and Deposits",
        "terseLabel": "Deferred revenue and customer deposits"
       }
      }
     },
     "localname": "IncreaseDecreaseInDeferredRevenueAndCustomerAdvancesAndDeposits",
     "nsuri": "http://fasb.org/us-gaap/2018-01-31",
     "presentation": [
      "http://cognex.com/role/ConsolidatedStatementsOfCashFlows"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_IncreaseDecreaseInInventories": {
     "auth_ref": [
      "r98"
     ],
     "calculation": {
      "http://cognex.com/role/ConsolidatedStatementsOfCashFlows": {
       "order": 13.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/2018-01-31",
     "presentation": [
      "http://cognex.com/role/ConsolidatedStatementsOfCashFlows"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_IncreaseDecreaseInOtherOperatingCapitalNet": {
     "auth_ref": [
      "r98"
     ],
     "calculation": {
      "http://cognex.com/role/ConsolidatedStatementsOfCashFlows": {
       "order": 18.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/2018-01-31",
     "presentation": [
      "http://cognex.com/role/ConsolidatedStatementsOfCashFlows"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets": {
     "auth_ref": [
      "r98"
     ],
     "calculation": {
      "http://cognex.com/role/ConsolidatedStatementsOfCashFlows": {
       "order": 1.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/2018-01-31",
     "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/2018-01-31",
     "presentation": [
      "http://cognex.com/role/ConsolidatedStatementsOfShareholdersEquity"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_IncreaseDecreaseInUnbilledReceivables": {
     "auth_ref": [
      "r98"
     ],
     "calculation": {
      "http://cognex.com/role/ConsolidatedStatementsOfCashFlows": {
       "order": 12.0,
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": -1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-US": {
       "role": {
        "documentation": "The increase (decrease) during the reporting period of the amount of revenue for work performed for which billing has not occurred, net of uncollectible accounts.",
        "label": "Increase (Decrease) in Unbilled Receivables",
        "negatedTerseLabel": "Unbilled revenue"
       }
      }
     },
     "localname": "IncreaseDecreaseInUnbilledReceivables",
     "nsuri": "http://fasb.org/us-gaap/2018-01-31",
     "presentation": [
      "http://cognex.com/role/ConsolidatedStatementsOfCashFlows"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_IntangibleAssetsDisclosureTextBlock": {
     "auth_ref": [
      "r219"
     ],
     "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/2018-01-31",
     "presentation": [
      "http://cognex.com/role/IntangibleAssets"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_IntangibleAssetsFiniteLivedPolicy": {
     "auth_ref": [
      "r106",
      "r212"
     ],
     "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/2018-01-31",
     "presentation": [
      "http://cognex.com/role/SummaryOfSignificantAccountingPoliciesPolicies"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_IntangibleAssetsNetExcludingGoodwill": {
     "auth_ref": [
      "r205",
      "r211"
     ],
     "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 (Excluding Goodwill)"
       }
      }
     },
     "localname": "IntangibleAssetsNetExcludingGoodwill",
     "nsuri": "http://fasb.org/us-gaap/2018-01-31",
     "presentation": [
      "http://cognex.com/role/ConsolidatedBalanceSheets"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_IntangibleAssetsNetIncludingGoodwill": {
     "auth_ref": [],
     "crdr": "debit",
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Carrying amount of finite-lived intangible assets, indefinite-lived intangible assets and goodwill. Goodwill is an asset representing the future economic benefits arising from other assets acquired in a business combination that are not individually identified and separately recognized. Intangible assets are assets, not including financial assets, lacking physical substance.",
        "label": "Intangible Assets, Net (Including Goodwill)",
        "terseLabel": "Intangible Assets, Net (Including Goodwill)"
       }
      }
     },
     "localname": "IntangibleAssetsNetIncludingGoodwill",
     "nsuri": "http://fasb.org/us-gaap/2018-01-31",
     "presentation": [
      "http://cognex.com/role/IntangibleAssetsAmortizedIntangibleAssetsDetail"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_InventoryDisclosureAbstract": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "label": "Inventory Disclosure [Abstract]"
       }
      }
     },
     "localname": "InventoryDisclosureAbstract",
     "nsuri": "http://fasb.org/us-gaap/2018-01-31",
     "xbrltype": "stringItemType"
    },
    "us-gaap_InventoryDisclosureTextBlock": {
     "auth_ref": [
      "r194"
     ],
     "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/2018-01-31",
     "presentation": [
      "http://cognex.com/role/Inventories"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_InventoryFinishedGoodsNetOfReserves": {
     "auth_ref": [
      "r27",
      "r193"
     ],
     "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/2018-01-31",
     "presentation": [
      "http://cognex.com/role/InventoriesInventoriesDetail"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_InventoryNet": {
     "auth_ref": [
      "r2",
      "r51",
      "r190"
     ],
     "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/2018-01-31",
     "presentation": [
      "http://cognex.com/role/ConsolidatedBalanceSheets",
      "http://cognex.com/role/InventoriesInventoriesDetail"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_InventoryPolicyTextBlock": {
     "auth_ref": [
      "r8",
      "r52",
      "r106",
      "r145",
      "r191",
      "r192"
     ],
     "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/2018-01-31",
     "presentation": [
      "http://cognex.com/role/SummaryOfSignificantAccountingPoliciesPolicies"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_InventoryRawMaterialsNetOfReserves": {
     "auth_ref": [
      "r29",
      "r193"
     ],
     "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/2018-01-31",
     "presentation": [
      "http://cognex.com/role/InventoriesInventoriesDetail"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_InventoryWorkInProcessNetOfReserves": {
     "auth_ref": [
      "r28",
      "r193"
     ],
     "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/2018-01-31",
     "presentation": [
      "http://cognex.com/role/InventoriesInventoriesDetail"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_InvestmentIncomeNonoperating": {
     "auth_ref": [
      "r88"
     ],
     "calculation": {
      "http://cognex.com/role/ConsolidatedStatementsOfOperations": {
       "order": 3.0,
       "parentTag": "us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments",
       "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/2018-01-31",
     "presentation": [
      "http://cognex.com/role/ConsolidatedStatementsOfOperations"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_InvestmentTypeAxis": {
     "auth_ref": [
      "r513",
      "r514",
      "r515",
      "r516"
     ],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Information by type of investments.",
        "label": "Investment Type [Axis]",
        "terseLabel": "Investment Type [Axis]"
       }
      }
     },
     "localname": "InvestmentTypeAxis",
     "nsuri": "http://fasb.org/us-gaap/2018-01-31",
     "presentation": [
      "http://cognex.com/role/CashCashEquivalentsAndInvestmentsAmortizedCostToFairValueDetail"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_InvestmentTypeCategorizationMember": {
     "auth_ref": [
      "r513",
      "r514",
      "r515",
      "r516"
     ],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Asset obtained to generate income or appreciate in value.",
        "label": "Investments [Domain]",
        "terseLabel": "Investment Type Categorization [Domain]"
       }
      }
     },
     "localname": "InvestmentTypeCategorizationMember",
     "nsuri": "http://fasb.org/us-gaap/2018-01-31",
     "presentation": [
      "http://cognex.com/role/CashCashEquivalentsAndInvestmentsAmortizedCostToFairValueDetail"
     ],
     "xbrltype": "domainItemType"
    },
    "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/2018-01-31",
     "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/2018-01-31",
     "presentation": [
      "http://cognex.com/role/CashCashEquivalentsAndInvestments"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_LandMember": {
     "auth_ref": [
      "r270"
     ],
     "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/2018-01-31",
     "presentation": [
      "http://cognex.com/role/PropertyPlantAndEquipmentPropertyPlantAndEquipmentDetail"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_LeaseAndRentalExpense": {
     "auth_ref": [],
     "crdr": "debit",
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Amount of rent expense incurred for leased assets, including but not limited to, furniture and equipment, that is not directly or indirectly associated with the manufacture, sale or creation of a product or product line.",
        "label": "Operating Leases, Rent Expense",
        "terseLabel": "Rent expense"
       }
      }
     },
     "localname": "LeaseAndRentalExpense",
     "nsuri": "http://fasb.org/us-gaap/2018-01-31",
     "presentation": [
      "http://cognex.com/role/LeasesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_LeaseholdImprovementsMember": {
     "auth_ref": [
      "r222"
     ],
     "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/2018-01-31",
     "presentation": [
      "http://cognex.com/role/PropertyPlantAndEquipmentPropertyPlantAndEquipmentDetail"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_LeasesAbstract": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "label": "Leases [Abstract]"
       }
      }
     },
     "localname": "LeasesAbstract",
     "nsuri": "http://fasb.org/us-gaap/2018-01-31",
     "xbrltype": "stringItemType"
    },
    "us-gaap_LesseeOperatingLeaseLiabilityMaturityTableTextBlock": {
     "auth_ref": [
      "r465"
     ],
     "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/2018-01-31",
     "presentation": [
      "http://cognex.com/role/LeasesTables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue": {
     "auth_ref": [
      "r465"
     ],
     "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 payments for operating lease.",
        "label": "Lessee, Operating Lease, Liability, Payments, Due",
        "totalLabel": "Total"
       }
      }
     },
     "localname": "LesseeOperatingLeaseLiabilityPaymentsDue",
     "nsuri": "http://fasb.org/us-gaap/2018-01-31",
     "presentation": [
      "http://cognex.com/role/LeasesScheduleOfPaymentsDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive": {
     "auth_ref": [
      "r465"
     ],
     "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 payments for operating lease, due after fifth fiscal year following latest fiscal year.",
        "label": "Lessee, Operating Lease, Liability, Payments, Due after Year Five",
        "terseLabel": "Thereafter"
       }
      }
     },
     "localname": "LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive",
     "nsuri": "http://fasb.org/us-gaap/2018-01-31",
     "presentation": [
      "http://cognex.com/role/LeasesScheduleOfPaymentsDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths": {
     "auth_ref": [
      "r465"
     ],
     "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 payments for operating lease, due in next fiscal year following latest fiscal year.",
        "label": "Lessee, Operating Lease, Liability, Payments, Due Next Twelve Months",
        "terseLabel": "2020"
       }
      }
     },
     "localname": "LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths",
     "nsuri": "http://fasb.org/us-gaap/2018-01-31",
     "presentation": [
      "http://cognex.com/role/LeasesScheduleOfPaymentsDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFive": {
     "auth_ref": [
      "r465"
     ],
     "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 payments for operating lease, due in fifth fiscal year following latest fiscal year.",
        "label": "Lessee, Operating Lease, Liability, Payments, Due Year Five",
        "terseLabel": "2024"
       }
      }
     },
     "localname": "LesseeOperatingLeaseLiabilityPaymentsDueYearFive",
     "nsuri": "http://fasb.org/us-gaap/2018-01-31",
     "presentation": [
      "http://cognex.com/role/LeasesScheduleOfPaymentsDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour": {
     "auth_ref": [
      "r465"
     ],
     "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 payments for operating lease, due in fourth fiscal year following latest fiscal year.",
        "label": "Lessee, Operating Lease, Liability, Payments, Due Year Four",
        "terseLabel": "2023"
       }
      }
     },
     "localname": "LesseeOperatingLeaseLiabilityPaymentsDueYearFour",
     "nsuri": "http://fasb.org/us-gaap/2018-01-31",
     "presentation": [
      "http://cognex.com/role/LeasesScheduleOfPaymentsDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree": {
     "auth_ref": [
      "r465"
     ],
     "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 payments for operating lease, due in third fiscal year following latest fiscal year.",
        "label": "Lessee, Operating Lease, Liability, Payments, Due Year Three",
        "terseLabel": "2022"
       }
      }
     },
     "localname": "LesseeOperatingLeaseLiabilityPaymentsDueYearThree",
     "nsuri": "http://fasb.org/us-gaap/2018-01-31",
     "presentation": [
      "http://cognex.com/role/LeasesScheduleOfPaymentsDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo": {
     "auth_ref": [
      "r465"
     ],
     "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 payments for operating lease, due in second fiscal year following latest fiscal year.",
        "label": "Lessee, Operating Lease, Liability, Payments, Due Year Two",
        "terseLabel": "2021"
       }
      }
     },
     "localname": "LesseeOperatingLeaseLiabilityPaymentsDueYearTwo",
     "nsuri": "http://fasb.org/us-gaap/2018-01-31",
     "presentation": [
      "http://cognex.com/role/LeasesScheduleOfPaymentsDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_LesseeOperatingLeasesTextBlock": {
     "auth_ref": [
      "r467"
     ],
     "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/2018-01-31",
     "presentation": [
      "http://cognex.com/role/LeasesLeases"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_LessorOperatingLeasePaymentsToBeReceived": {
     "auth_ref": [
      "r469"
     ],
     "calculation": {
      "http://cognex.com/role/LeasesScheduleOfRentalReceiptsDetails": {
       "order": null,
       "parentTag": null,
       "root": true,
       "weight": null
      }
     },
     "crdr": "debit",
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Amount of lease payments to be received by lessor for operating lease.",
        "label": "Lessor, Operating Lease, Payments to be Received",
        "totalLabel": "Total"
       }
      }
     },
     "localname": "LessorOperatingLeasePaymentsToBeReceived",
     "nsuri": "http://fasb.org/us-gaap/2018-01-31",
     "presentation": [
      "http://cognex.com/role/LeasesScheduleOfRentalReceiptsDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_LessorOperatingLeasePaymentsToBeReceivedMaturityTableTextBlock": {
     "auth_ref": [
      "r469"
     ],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Tabular disclosure of maturity of undiscounted cash flows to be received by lessor on annual basis for operating lease.",
        "label": "Lessor, Operating Lease, Payments to be Received, Maturity [Table Text Block]",
        "terseLabel": "Schedule of lease receipts"
       }
      }
     },
     "localname": "LessorOperatingLeasePaymentsToBeReceivedMaturityTableTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2018-01-31",
     "presentation": [
      "http://cognex.com/role/LeasesTables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_LessorOperatingLeasePaymentsToBeReceivedNextTwelveMonths": {
     "auth_ref": [
      "r469"
     ],
     "calculation": {
      "http://cognex.com/role/LeasesScheduleOfRentalReceiptsDetails": {
       "order": 1.0,
       "parentTag": "us-gaap_LessorOperatingLeasePaymentsToBeReceived",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Amount of lease payments to be received by lessor in next fiscal year following latest fiscal year for operating lease. Excludes interim and annual periods when interim periods are reported on rolling approach, from latest statement of financial position date.",
        "label": "Lessor, Operating Lease, Payments to be Received, Next Twelve Months",
        "terseLabel": "2020"
       }
      }
     },
     "localname": "LessorOperatingLeasePaymentsToBeReceivedNextTwelveMonths",
     "nsuri": "http://fasb.org/us-gaap/2018-01-31",
     "presentation": [
      "http://cognex.com/role/LeasesScheduleOfRentalReceiptsDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_LessorOperatingLeasePaymentsToBeReceivedThreeYears": {
     "auth_ref": [
      "r469"
     ],
     "calculation": {
      "http://cognex.com/role/LeasesScheduleOfRentalReceiptsDetails": {
       "order": 3.0,
       "parentTag": "us-gaap_LessorOperatingLeasePaymentsToBeReceived",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Amount of lease payments to be received by lessor in third fiscal year following latest fiscal year for operating lease. Excludes interim and annual periods when interim periods are reported on rolling approach, from latest statement of financial position date.",
        "label": "Lessor, Operating Lease, Payments to be Received, Three Years",
        "terseLabel": "2022"
       }
      }
     },
     "localname": "LessorOperatingLeasePaymentsToBeReceivedThreeYears",
     "nsuri": "http://fasb.org/us-gaap/2018-01-31",
     "presentation": [
      "http://cognex.com/role/LeasesScheduleOfRentalReceiptsDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_LessorOperatingLeasePaymentsToBeReceivedTwoYears": {
     "auth_ref": [
      "r469"
     ],
     "calculation": {
      "http://cognex.com/role/LeasesScheduleOfRentalReceiptsDetails": {
       "order": 2.0,
       "parentTag": "us-gaap_LessorOperatingLeasePaymentsToBeReceived",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Amount of lease payments to be received by lessor in second fiscal year following latest fiscal year for operating lease. Excludes interim and annual periods when interim periods are reported on rolling approach, from latest statement of financial position date.",
        "label": "Lessor, Operating Lease, Payments to be Received, Two Years",
        "terseLabel": "2021"
       }
      }
     },
     "localname": "LessorOperatingLeasePaymentsToBeReceivedTwoYears",
     "nsuri": "http://fasb.org/us-gaap/2018-01-31",
     "presentation": [
      "http://cognex.com/role/LeasesScheduleOfRentalReceiptsDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_Liabilities": {
     "auth_ref": [
      "r44"
     ],
     "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/2018-01-31",
     "presentation": [
      "http://cognex.com/role/ConsolidatedBalanceSheets"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_LiabilitiesAndStockholdersEquity": {
     "auth_ref": [
      "r25",
      "r485",
      "r504"
     ],
     "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/2018-01-31",
     "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/2018-01-31",
     "presentation": [
      "http://cognex.com/role/ConsolidatedBalanceSheets"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_LiabilitiesCurrent": {
     "auth_ref": [
      "r46"
     ],
     "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/2018-01-31",
     "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/2018-01-31",
     "presentation": [
      "http://cognex.com/role/ConsolidatedBalanceSheets"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_LiabilitiesFairValueAdjustment": {
     "auth_ref": [],
     "crdr": "credit",
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Amount of addition (reduction) to the amount at which a liability could be incurred (settled) in a current transaction between willing parties.",
        "label": "Liabilities, Fair Value Adjustment",
        "terseLabel": "Fair value adjustment"
       }
      }
     },
     "localname": "LiabilitiesFairValueAdjustment",
     "nsuri": "http://fasb.org/us-gaap/2018-01-31",
     "presentation": [
      "http://cognex.com/role/FairValueMeasurementsLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "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/2018-01-31",
     "presentation": [
      "http://cognex.com/role/FairValueMeasurementsAssetsAndLiabilitiesMeasuredAtFairValueOnRecurringBasisDetail"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_LiabilityForUncertainTaxPositionsNoncurrent": {
     "auth_ref": [
      "r47"
     ],
     "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/2018-01-31",
     "presentation": [
      "http://cognex.com/role/ConsolidatedBalanceSheets",
      "http://cognex.com/role/TaxesAdditionalInformationDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_LitigationStatusAxis": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Information by status of pending, threatened, or settled litigation.",
        "label": "Litigation Status [Axis]",
        "terseLabel": "Litigation Status [Axis]"
       }
      }
     },
     "localname": "LitigationStatusAxis",
     "nsuri": "http://fasb.org/us-gaap/2018-01-31",
     "presentation": [
      "http://cognex.com/role/IndemnificationProvisionsNarrativeDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_LitigationStatusDomain": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Status of pending, threatened, or settled litigation.",
        "label": "Litigation Status [Domain]",
        "terseLabel": "Litigation Status [Domain]"
       }
      }
     },
     "localname": "LitigationStatusDomain",
     "nsuri": "http://fasb.org/us-gaap/2018-01-31",
     "presentation": [
      "http://cognex.com/role/IndemnificationProvisionsNarrativeDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_LongTermInvestments": {
     "auth_ref": [
      "r36"
     ],
     "calculation": {
      "http://cognex.com/role/CashCashEquivalentsAndInvestmentsComponentsOfCashCashEquivalentsAndInvestmentsDetail": {
       "order": 3.0,
       "parentTag": "cgnx_CashCashEquivalentsShortTermAndLongTermInvestments",
       "weight": 1.0
      },
      "http://cognex.com/role/ConsolidatedBalanceSheets": {
       "order": 2.0,
       "parentTag": "us-gaap_Assets",
       "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",
        "totalLabel": "Non-current investments"
       }
      }
     },
     "localname": "LongTermInvestments",
     "nsuri": "http://fasb.org/us-gaap/2018-01-31",
     "presentation": [
      "http://cognex.com/role/CashCashEquivalentsAndInvestmentsComponentsOfCashCashEquivalentsAndInvestmentsDetail",
      "http://cognex.com/role/ConsolidatedBalanceSheets"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_LossContingenciesByNatureOfContingencyAxis": {
     "auth_ref": [
      "r228",
      "r229",
      "r230",
      "r231",
      "r232",
      "r233",
      "r234",
      "r238",
      "r239"
     ],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Information by type of existing condition, situation, or set of circumstances involving uncertainty as to possible loss to an enterprise that will ultimately be resolved when one or more future events occur or fail to occur.",
        "label": "Loss Contingency Nature [Axis]",
        "terseLabel": "Loss Contingency Nature [Axis]"
       }
      }
     },
     "localname": "LossContingenciesByNatureOfContingencyAxis",
     "nsuri": "http://fasb.org/us-gaap/2018-01-31",
     "presentation": [
      "http://cognex.com/role/IndemnificationProvisionsNarrativeDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_LossContingenciesLineItems": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table.",
        "label": "Loss Contingencies [Line Items]",
        "terseLabel": "Loss Contingencies [Line Items]"
       }
      }
     },
     "localname": "LossContingenciesLineItems",
     "nsuri": "http://fasb.org/us-gaap/2018-01-31",
     "presentation": [
      "http://cognex.com/role/IndemnificationProvisionsNarrativeDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_LossContingenciesTable": {
     "auth_ref": [
      "r228",
      "r229",
      "r230",
      "r231",
      "r232",
      "r233",
      "r234",
      "r238",
      "r239"
     ],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Discloses the specific components (such as the nature, name, and date) of the loss contingency and gives an estimate of the possible loss or range of loss, or states that a reasonable estimate cannot be made. Excludes environmental contingencies, warranties and unconditional purchase obligations.",
        "label": "Loss Contingencies [Table]",
        "terseLabel": "Loss Contingencies [Table]"
       }
      }
     },
     "localname": "LossContingenciesTable",
     "nsuri": "http://fasb.org/us-gaap/2018-01-31",
     "presentation": [
      "http://cognex.com/role/IndemnificationProvisionsNarrativeDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_LossContingencyNatureDomain": {
     "auth_ref": [
      "r228",
      "r229",
      "r230",
      "r231",
      "r232",
      "r233",
      "r234",
      "r238",
      "r239"
     ],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "An existing condition, situation, or set of circumstances involving uncertainty as to possible loss to an enterprise that will ultimately be resolved when one or more future events occur or fail to occur. Resolution of the uncertainty may confirm the incurrence of a loss or impairment of an asset or the incurrence of a liability.",
        "label": "Loss Contingency, Nature [Domain]",
        "terseLabel": "Loss Contingency, Nature [Domain]"
       }
      }
     },
     "localname": "LossContingencyNatureDomain",
     "nsuri": "http://fasb.org/us-gaap/2018-01-31",
     "presentation": [
      "http://cognex.com/role/IndemnificationProvisionsNarrativeDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_MaximumLengthOfTimeHedgedInCashFlowHedge1": {
     "auth_ref": [
      "r423"
     ],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Maximum length of time over which the entity is hedging its exposure to the variability in future cash flows for forecasted transactions, excluding those forecasted transactions related to the payment of variable interest on existing financial instruments, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents the reported fact of one year, five months, and thirteen days.",
        "label": "Maximum Length of Time Hedged in Cash Flow Hedge",
        "terseLabel": "Maturities of foreign currency forward contracts"
       }
      }
     },
     "localname": "MaximumLengthOfTimeHedgedInCashFlowHedge1",
     "nsuri": "http://fasb.org/us-gaap/2018-01-31",
     "presentation": [
      "http://cognex.com/role/DerivativeInstrumentsAdditionalDetailsDetails"
     ],
     "xbrltype": "durationItemType"
    },
    "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/2018-01-31",
     "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/2018-01-31",
     "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/2018-01-31",
     "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/2018-01-31",
     "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/2018-01-31",
     "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": [
      "r96"
     ],
     "calculation": {
      "http://cognex.com/role/ConsolidatedStatementsOfCashFlows": {
       "order": 3.0,
       "parentTag": "us-gaap_CashAndCashEquivalentsPeriodIncreaseDecrease",
       "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",
        "negatedTerseLabel": "Net cash used in financing activities",
        "totalLabel": "Net cash used in financing activities"
       }
      }
     },
     "localname": "NetCashProvidedByUsedInFinancingActivities",
     "nsuri": "http://fasb.org/us-gaap/2018-01-31",
     "presentation": [
      "http://cognex.com/role/ConsolidatedStatementsOfCashFlows",
      "http://cognex.com/role/TaxesAdditionalInformationDetails"
     ],
     "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/2018-01-31",
     "presentation": [
      "http://cognex.com/role/ConsolidatedStatementsOfCashFlows"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_NetCashProvidedByUsedInInvestingActivities": {
     "auth_ref": [
      "r96"
     ],
     "calculation": {
      "http://cognex.com/role/ConsolidatedStatementsOfCashFlows": {
       "order": 2.0,
       "parentTag": "us-gaap_CashAndCashEquivalentsPeriodIncreaseDecrease",
       "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 used in investing activities"
       }
      }
     },
     "localname": "NetCashProvidedByUsedInInvestingActivities",
     "nsuri": "http://fasb.org/us-gaap/2018-01-31",
     "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/2018-01-31",
     "presentation": [
      "http://cognex.com/role/ConsolidatedStatementsOfCashFlows"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_NetCashProvidedByUsedInOperatingActivities": {
     "auth_ref": [
      "r96",
      "r97",
      "r100"
     ],
     "calculation": {
      "http://cognex.com/role/ConsolidatedStatementsOfCashFlows": {
       "order": 1.0,
       "parentTag": "us-gaap_CashAndCashEquivalentsPeriodIncreaseDecrease",
       "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",
        "terseLabel": "Net cash provided by operating activities",
        "totalLabel": "Net cash provided by operating activities"
       }
      }
     },
     "localname": "NetCashProvidedByUsedInOperatingActivities",
     "nsuri": "http://fasb.org/us-gaap/2018-01-31",
     "presentation": [
      "http://cognex.com/role/ConsolidatedStatementsOfCashFlows",
      "http://cognex.com/role/TaxesAdditionalInformationDetails"
     ],
     "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/2018-01-31",
     "presentation": [
      "http://cognex.com/role/ConsolidatedStatementsOfCashFlows"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_NetIncomeLoss": {
     "auth_ref": [
      "r73",
      "r76",
      "r81",
      "r100",
      "r138",
      "r492",
      "r508"
     ],
     "calculation": {
      "http://cognex.com/role/ConsolidatedStatementsOfCashFlows": {
       "order": 2.0,
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": 1.0
      },
      "http://cognex.com/role/ConsolidatedStatementsOfComprehensiveIncome": {
       "order": 1.0,
       "parentTag": "us-gaap_ComprehensiveIncomeNetOfTax",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-US": {
       "role": {
        "documentation": "The portion of profit or loss for the period, net of income taxes, which is attributable to the parent.",
        "label": "Net Income (Loss) Attributable to Parent",
        "terseLabel": "Net income",
        "totalLabel": "Net income",
        "verboseLabel": "Net income"
       }
      }
     },
     "localname": "NetIncomeLoss",
     "nsuri": "http://fasb.org/us-gaap/2018-01-31",
     "presentation": [
      "http://cognex.com/role/ConsolidatedStatementsOfCashFlows",
      "http://cognex.com/role/ConsolidatedStatementsOfComprehensiveIncome",
      "http://cognex.com/role/ConsolidatedStatementsOfOperations",
      "http://cognex.com/role/ConsolidatedStatementsOfShareholdersEquity",
      "http://cognex.com/role/RevenueRecognitionStatementOfOperationsImpactDetails",
      "http://cognex.com/role/SelectedQuarterlyFinancialDataUnauditedDetails",
      "http://cognex.com/role/TaxesScheduleOfChangeInAccountingPolicyDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_NewAccountingPronouncementsAndChangesInAccountingPrinciplesTextBlock": {
     "auth_ref": [
      "r130"
     ],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "The entire disclosure of changes in accounting principles, including adoption of new accounting pronouncements, that describes the new methods, amount and effects on financial statement line items.",
        "label": "New Accounting Pronouncements and Changes in Accounting Principles [Text Block]",
        "terseLabel": "New Pronouncements"
       }
      }
     },
     "localname": "NewAccountingPronouncementsAndChangesInAccountingPrinciplesTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2018-01-31",
     "presentation": [
      "http://cognex.com/role/NewPronouncements"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_NewAccountingPronouncementsOrChangeInAccountingPrincipleLineItems": {
     "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": "New Accounting Pronouncements or Change in Accounting Principle [Line Items]",
        "terseLabel": "New Accounting Pronouncements or Change in Accounting Principle [Line Items]"
       }
      }
     },
     "localname": "NewAccountingPronouncementsOrChangeInAccountingPrincipleLineItems",
     "nsuri": "http://fasb.org/us-gaap/2018-01-31",
     "presentation": [
      "http://cognex.com/role/LeasesDetails",
      "http://cognex.com/role/NewPronouncementsDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_NewAccountingPronouncementsOrChangeInAccountingPrincipleTable": {
     "auth_ref": [
      "r122",
      "r124",
      "r125"
     ],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Summarization of the changes in an accounting principle or a new accounting pronouncement, including the line items affected by the change and the financial effects of the change on those particular line items.",
        "label": "New Accounting Pronouncements or Change in Accounting Principle [Table]",
        "terseLabel": "New Accounting Pronouncements or Change in Accounting Principle [Table]"
       }
      }
     },
     "localname": "NewAccountingPronouncementsOrChangeInAccountingPrincipleTable",
     "nsuri": "http://fasb.org/us-gaap/2018-01-31",
     "presentation": [
      "http://cognex.com/role/LeasesDetails",
      "http://cognex.com/role/NewPronouncementsDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_NoncompeteAgreementsMember": {
     "auth_ref": [
      "r371"
     ],
     "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/2018-01-31",
     "presentation": [
      "http://cognex.com/role/AcquisitionsSualabCoLtdNarrativeDetails",
      "http://cognex.com/role/AcquisitionsSualabCoLtdPurchasePriceAllocationDetails",
      "http://cognex.com/role/AcquisitionsVidiSystemsSADetails",
      "http://cognex.com/role/AcquisitionsVidiSystemsSAPurchasePriceAllocationDetails",
      "http://cognex.com/role/IntangibleAssetsAmortizedIntangibleAssetsDetail",
      "http://cognex.com/role/SummaryOfSignificantAccountingPoliciesIntangibleAssetsDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_NoncurrentAssets": {
     "auth_ref": [
      "r167"
     ],
     "crdr": "debit",
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Long-lived assets other than financial instruments, long-term customer relationships of a financial institution, mortgage and other servicing rights, deferred policy acquisition costs, and deferred tax assets.",
        "label": "Long-Lived Assets",
        "terseLabel": "Long-lived assets"
       }
      }
     },
     "localname": "NoncurrentAssets",
     "nsuri": "http://fasb.org/us-gaap/2018-01-31",
     "presentation": [
      "http://cognex.com/role/SegmentAndGeographicInformationScheduleOfRevenueFromExternalCustomersAndLongLivedAssetsByGeographicalAreasDetail"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_NondesignatedMember": {
     "auth_ref": [
      "r402"
     ],
     "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/2018-01-31",
     "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": [
      "r286"
     ],
     "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 [Table Text Block]"
       }
      }
     },
     "localname": "NonvestedRestrictedStockSharesActivityTableTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2018-01-31",
     "presentation": [
      "http://cognex.com/role/StockBasedCompensationTables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_NumberOfBusinessesAcquired": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "The number of businesses acquired by the entity during the period.",
        "label": "Number of Businesses Acquired",
        "terseLabel": "Number of acquisitions"
       }
      }
     },
     "localname": "NumberOfBusinessesAcquired",
     "nsuri": "http://fasb.org/us-gaap/2018-01-31",
     "presentation": [
      "http://cognex.com/role/AcquisitionsAcquisitionsDetails"
     ],
     "xbrltype": "integerItemType"
    },
    "us-gaap_NumberOfReportableSegments": {
     "auth_ref": [],
     "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/2018-01-31",
     "presentation": [
      "http://cognex.com/role/SegmentAndGeographicInformationAdditionalInformationDetail"
     ],
     "xbrltype": "integerItemType"
    },
    "us-gaap_OffsettingAssetsTableTextBlock": {
     "auth_ref": [
      "r57",
      "r58"
     ],
     "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/2018-01-31",
     "presentation": [
      "http://cognex.com/role/DerivativeInstrumentsTables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_OperatingIncomeLoss": {
     "auth_ref": [],
     "calculation": {
      "http://cognex.com/role/ConsolidatedStatementsOfOperations": {
       "order": 1.0,
       "parentTag": "us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments",
       "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)",
        "terseLabel": "Operating income",
        "totalLabel": "Operating income"
       }
      }
     },
     "localname": "OperatingIncomeLoss",
     "nsuri": "http://fasb.org/us-gaap/2018-01-31",
     "presentation": [
      "http://cognex.com/role/ConsolidatedStatementsOfOperations",
      "http://cognex.com/role/RevenueRecognitionStatementOfOperationsImpactDetails",
      "http://cognex.com/role/SelectedQuarterlyFinancialDataUnauditedDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_OperatingLeaseExpense": {
     "auth_ref": [
      "r460"
     ],
     "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/2018-01-31",
     "presentation": [
      "http://cognex.com/role/LeasesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_OperatingLeaseLeaseIncome": {
     "auth_ref": [
      "r147",
      "r468",
      "r470"
     ],
     "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/2018-01-31",
     "presentation": [
      "http://cognex.com/role/LeasesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_OperatingLeaseLiability": {
     "auth_ref": [
      "r459"
     ],
     "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/2018-01-31",
     "presentation": [
      "http://cognex.com/role/LeasesDetails",
      "http://cognex.com/role/NewPronouncementsDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_OperatingLeaseLiabilityCurrent": {
     "auth_ref": [
      "r459"
     ],
     "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/2018-01-31",
     "presentation": [
      "http://cognex.com/role/ConsolidatedBalanceSheets",
      "http://cognex.com/role/LeasesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_OperatingLeaseLiabilityNoncurrent": {
     "auth_ref": [
      "r459"
     ],
     "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/2018-01-31",
     "presentation": [
      "http://cognex.com/role/ConsolidatedBalanceSheets",
      "http://cognex.com/role/LeasesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_OperatingLeasePayments": {
     "auth_ref": [
      "r461",
      "r462"
     ],
     "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/2018-01-31",
     "presentation": [
      "http://cognex.com/role/LeasesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_OperatingLeaseRightOfUseAsset": {
     "auth_ref": [
      "r458"
     ],
     "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/2018-01-31",
     "presentation": [
      "http://cognex.com/role/ConsolidatedBalanceSheets",
      "http://cognex.com/role/LeasesDetails",
      "http://cognex.com/role/NewPronouncementsDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_OperatingLeaseWeightedAverageDiscountRatePercent": {
     "auth_ref": [
      "r464",
      "r466"
     ],
     "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/2018-01-31",
     "presentation": [
      "http://cognex.com/role/LeasesDetails"
     ],
     "xbrltype": "percentItemType"
    },
    "us-gaap_OperatingLeaseWeightedAverageRemainingLeaseTerm1": {
     "auth_ref": [
      "r463",
      "r466"
     ],
     "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/2018-01-31",
     "presentation": [
      "http://cognex.com/role/LeasesDetails"
     ],
     "xbrltype": "durationItemType"
    },
    "us-gaap_OperatingLeasesOfLessorDisclosureTextBlock": {
     "auth_ref": [
      "r452",
      "r453",
      "r471"
     ],
     "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/2018-01-31",
     "presentation": [
      "http://cognex.com/role/LeasesLeases"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_OtherAccruedLiabilitiesCurrent": {
     "auth_ref": [
      "r5",
      "r6",
      "r7",
      "r45"
     ],
     "calculation": {
      "http://cognex.com/role/AccruedExpensesConstituentsOfAccruedExpensesDetail": {
       "order": 7.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/2018-01-31",
     "presentation": [
      "http://cognex.com/role/AccruedExpensesConstituentsOfAccruedExpensesDetail"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_OtherAssetsNoncurrent": {
     "auth_ref": [
      "r41"
     ],
     "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/2018-01-31",
     "presentation": [
      "http://cognex.com/role/ConsolidatedBalanceSheets"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_OtherComprehensiveIncomeAvailableforsaleSecuritiesAdjustmentNetOfTaxPortionAttributableToParent": {
     "auth_ref": [
      "r388",
      "r389",
      "r391"
     ],
     "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 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/2018-01-31",
     "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/2018-01-31",
     "presentation": [
      "http://cognex.com/role/ConsolidatedStatementsOfComprehensiveIncome"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent": {
     "auth_ref": [
      "r388",
      "r389",
      "r391"
     ],
     "calculation": {
      "http://cognex.com/role/ConsolidatedStatementsOfComprehensiveIncome": {
       "order": 3.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/2018-01-31",
     "presentation": [
      "http://cognex.com/role/ConsolidatedStatementsOfComprehensiveIncome"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_OtherComprehensiveIncomeForeignCurrencyTranslationGainLossArisingDuringPeriodTax": {
     "auth_ref": [
      "r61",
      "r67",
      "r450"
     ],
     "crdr": "debit",
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Amount of tax expense (benefit), before 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 Gain (Loss) Arising During Period, Tax",
        "terseLabel": "Tax effect of foreign currency translation adjustment"
       }
      }
     },
     "localname": "OtherComprehensiveIncomeForeignCurrencyTranslationGainLossArisingDuringPeriodTax",
     "nsuri": "http://fasb.org/us-gaap/2018-01-31",
     "presentation": [
      "http://cognex.com/role/ConsolidatedStatementsOfComprehensiveIncomeParenthetical"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_OtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax": {
     "auth_ref": [
      "r63"
     ],
     "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 reclassification adjustments, of appreciation (loss) in value of unsold available-for-sale securities. Excludes amounts related to other than temporary impairment (OTTI) loss.",
        "label": "Other Comprehensive Income (Loss), Securities, Available-for-sale, Adjustment, after Tax",
        "terseLabel": "Net unrealized gain (loss), net of tax of $515, ($188), and $2 in 2019, 2018, and 2017, respectively",
        "verboseLabel": "Net unrealized gain (loss) on available-for-sale investments, net of tax"
       }
      }
     },
     "localname": "OtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax",
     "nsuri": "http://fasb.org/us-gaap/2018-01-31",
     "presentation": [
      "http://cognex.com/role/ConsolidatedStatementsOfComprehensiveIncome",
      "http://cognex.com/role/ConsolidatedStatementsOfShareholdersEquity"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_OtherComprehensiveIncomeLossDerivativesQualifyingAsHedgesNetOfTax": {
     "auth_ref": [
      "r62"
     ],
     "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 increase (decrease) in accumulated gain (loss) from derivative instruments designated and qualifying as the effective portion of cash flow hedges and an entity's share of an equity investee's increase (decrease) in deferred hedging gain (loss).",
        "label": "Other Comprehensive Income (Loss), Derivatives Qualifying as Hedges, Net of Tax",
        "totalLabel": "Net change related to cash flow hedges"
       }
      }
     },
     "localname": "OtherComprehensiveIncomeLossDerivativesQualifyingAsHedgesNetOfTax",
     "nsuri": "http://fasb.org/us-gaap/2018-01-31",
     "presentation": [
      "http://cognex.com/role/ConsolidatedStatementsOfComprehensiveIncome"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_OtherComprehensiveIncomeLossDerivativesQualifyingAsHedgesTax": {
     "auth_ref": [
      "r62",
      "r67"
     ],
     "crdr": "debit",
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Amount of tax expense (benefit), after reclassification adjustments, of increase (decrease) in accumulated gain (loss) from derivative instruments designated and qualifying as the effective portion of cash flow hedges and an entity's share of an equity investee's increase (decrease) in deferred hedging gain (loss).",
        "label": "Other Comprehensive Income (Loss), Derivatives Qualifying as Hedges, Tax",
        "terseLabel": "Tax effect of unrealized gain on cash flow hedges",
        "verboseLabel": "Tax effect of unrealized gain on derivative instruments"
       }
      }
     },
     "localname": "OtherComprehensiveIncomeLossDerivativesQualifyingAsHedgesTax",
     "nsuri": "http://fasb.org/us-gaap/2018-01-31",
     "presentation": [
      "http://cognex.com/role/ConsolidatedStatementsOfComprehensiveIncomeParenthetical",
      "http://cognex.com/role/ConsolidatedStatementsOfShareholdersEquityParenthetical"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax": {
     "auth_ref": [
      "r61",
      "r449"
     ],
     "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 adjustments",
        "verboseLabel": "Foreign currency translation adjustments, net of tax"
       }
      }
     },
     "localname": "OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax",
     "nsuri": "http://fasb.org/us-gaap/2018-01-31",
     "presentation": [
      "http://cognex.com/role/ConsolidatedStatementsOfComprehensiveIncome",
      "http://cognex.com/role/ConsolidatedStatementsOfShareholdersEquity"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTranslationAdjustmentTax": {
     "auth_ref": [
      "r61",
      "r67"
     ],
     "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/2018-01-31",
     "presentation": [
      "http://cognex.com/role/ConsolidatedStatementsOfShareholdersEquityParenthetical"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent": {
     "auth_ref": [
      "r74",
      "r77",
      "r388",
      "r389",
      "r391"
     ],
     "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/2018-01-31",
     "presentation": [
      "http://cognex.com/role/ConsolidatedStatementsOfComprehensiveIncome"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax": {
     "auth_ref": [
      "r66",
      "r70",
      "r71",
      "r188"
     ],
     "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/2018-01-31",
     "presentation": [
      "http://cognex.com/role/ConsolidatedStatementsOfComprehensiveIncome",
      "http://cognex.com/role/ConsolidatedStatementsOfShareholdersEquity",
      "http://cognex.com/role/SummaryOfSignificantAccountingPoliciesComprehensiveIncomeLossDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIOnDerivativesNetOfTax": {
     "auth_ref": [
      "r66",
      "r70",
      "r71",
      "r403"
     ],
     "calculation": {
      "http://cognex.com/role/ConsolidatedStatementsOfComprehensiveIncome": {
       "order": 2.0,
       "parentTag": "us-gaap_OtherComprehensiveIncomeLossDerivativesQualifyingAsHedgesNetOfTax",
       "weight": -1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Amount after tax of reclassification adjustment from accumulated other comprehensive income of accumulated gain (loss) realized from derivative instruments designated and qualifying as the effective portion of cash flow hedges and an entity's share of an equity investee's deferred hedging gain (loss).",
        "label": "Other Comprehensive Income (Loss), Reclassification Adjustment from AOCI on Derivatives, Net of Tax",
        "negatedTerseLabel": "Reclassification of net realized (gain) loss into current operations",
        "terseLabel": "Total gains (losses) reclassified from accumulated other comprehensive income (loss) into net income"
       }
      }
     },
     "localname": "OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIOnDerivativesNetOfTax",
     "nsuri": "http://fasb.org/us-gaap/2018-01-31",
     "presentation": [
      "http://cognex.com/role/ConsolidatedStatementsOfComprehensiveIncome",
      "http://cognex.com/role/ConsolidatedStatementsOfShareholdersEquity",
      "http://cognex.com/role/DerivativeInstrumentsGainLossRecognizedInOtherComprehensiveIncomeLossDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_OtherComprehensiveIncomeUnrealizedGainLossOnDerivativesArisingDuringPeriodNetOfTax": {
     "auth_ref": [
      "r62",
      "r66",
      "r422"
     ],
     "calculation": {
      "http://cognex.com/role/ConsolidatedStatementsOfComprehensiveIncome": {
       "order": 1.0,
       "parentTag": "us-gaap_OtherComprehensiveIncomeLossDerivativesQualifyingAsHedgesNetOfTax",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Amount after tax of increase (decrease) in accumulated gain (loss) from derivative instruments designated and qualifying as the effective portion of cash flow hedges and an entity's share of an equity investee's increase (decrease) in deferred hedging gain (loss).",
        "label": "Other Comprehensive Income (Loss), Unrealized Gain (Loss) on Derivatives Arising During Period, Net of Tax",
        "terseLabel": "Net unrealized gain (loss), net of tax of $0, $0, and ($5) in 2019, 2018, and 2017, respectively",
        "verboseLabel": "Net unrealized gain (loss) on cash flow hedges, net of tax"
       }
      }
     },
     "localname": "OtherComprehensiveIncomeUnrealizedGainLossOnDerivativesArisingDuringPeriodNetOfTax",
     "nsuri": "http://fasb.org/us-gaap/2018-01-31",
     "presentation": [
      "http://cognex.com/role/ConsolidatedStatementsOfComprehensiveIncome",
      "http://cognex.com/role/ConsolidatedStatementsOfShareholdersEquity"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodTax": {
     "auth_ref": [
      "r64",
      "r67"
     ],
     "crdr": "debit",
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Amount of tax expense (benefit) before reclassification adjustments of unrealized holding gain (loss) on available-for-sale securities.",
        "label": "Other Comprehensive Income (Loss), Securities, Available-for-Sale, Unrealized Holding Gain (Loss) Arising During Period, 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/2018-01-31",
     "presentation": [
      "http://cognex.com/role/ConsolidatedStatementsOfComprehensiveIncomeParenthetical",
      "http://cognex.com/role/ConsolidatedStatementsOfShareholdersEquityParenthetical"
     ],
     "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/2018-01-31",
     "presentation": [
      "http://cognex.com/role/IntangibleAssetsAmortizedIntangibleAssetsDetail"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_OtherLiabilitiesNoncurrent": {
     "auth_ref": [
      "r47"
     ],
     "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/2018-01-31",
     "presentation": [
      "http://cognex.com/role/ConsolidatedBalanceSheets"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_OtherNonoperatingIncomeExpense": {
     "auth_ref": [
      "r89"
     ],
     "calculation": {
      "http://cognex.com/role/ConsolidatedStatementsOfOperations": {
       "order": 4.0,
       "parentTag": "us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments",
       "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/2018-01-31",
     "presentation": [
      "http://cognex.com/role/ConsolidatedStatementsOfOperations"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_OtherTaxExpenseBenefit": {
     "auth_ref": [
      "r112",
      "r330",
      "r354"
     ],
     "crdr": "debit",
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Amount of other income tax expense (benefit).",
        "label": "Other Tax Expense (Benefit)",
        "terseLabel": "Other Tax Expense (Benefit)"
       }
      }
     },
     "localname": "OtherTaxExpenseBenefit",
     "nsuri": "http://fasb.org/us-gaap/2018-01-31",
     "presentation": [
      "http://cognex.com/role/TaxesReconciliationOfUnitedStatesFederalStatutoryCorporateTaxRateToCompanysEffectiveTaxRateOrIncomeTaxProvisionDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_OtherThanTemporaryImpairmentLossesInvestmentsPortionRecognizedInEarningsNet": {
     "auth_ref": [],
     "crdr": "debit",
     "lang": {
      "en-US": {
       "role": {
        "documentation": "The amount of other than temporary impairment (OTTI) losses on equity securities, OTTI related to credit losses on debt securities, and OTTI losses on debt securities when the entity intends to sell the securities or it is more likely than not that the entity will be required to sell the securities before recovery of its amortized cost basis. Additionally, this item includes OTTI losses recognized during the period on investments accounted for under the cost method of accounting.",
        "label": "Other than Temporary Impairment Losses, Investments, Portion Recognized in Earnings, Net",
        "terseLabel": "Other than temporary impairment loss"
       }
      }
     },
     "localname": "OtherThanTemporaryImpairmentLossesInvestmentsPortionRecognizedInEarningsNet",
     "nsuri": "http://fasb.org/us-gaap/2018-01-31",
     "presentation": [
      "http://cognex.com/role/FairValueMeasurementsAssetsAndLiabilitiesMeasuredAtFairValueOnRecurringBasisDetail"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_PayablesAndAccrualsAbstract": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "label": "Payables and Accruals [Abstract]"
       }
      }
     },
     "localname": "PayablesAndAccrualsAbstract",
     "nsuri": "http://fasb.org/us-gaap/2018-01-31",
     "xbrltype": "stringItemType"
    },
    "us-gaap_PaymentsForPreviousAcquisition": {
     "auth_ref": [
      "r93"
     ],
     "calculation": {
      "http://cognex.com/role/ConsolidatedStatementsOfCashFlows": {
       "order": 4.0,
       "parentTag": "us-gaap_NetCashProvidedByUsedInFinancingActivities",
       "weight": -1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Cash outflow representing an adjustment to the purchase price of a previous acquisition.",
        "label": "Payments for Previous Acquisition",
        "negatedTerseLabel": "Payment of contingent consideration",
        "terseLabel": "Payment of contingent consideration"
       }
      }
     },
     "localname": "PaymentsForPreviousAcquisition",
     "nsuri": "http://fasb.org/us-gaap/2018-01-31",
     "presentation": [
      "http://cognex.com/role/AcquisitionsGviVenturesIncDetails",
      "http://cognex.com/role/ConsolidatedStatementsOfCashFlows"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_PaymentsForProceedsFromBusinessesAndInterestInAffiliates": {
     "auth_ref": [
      "r117"
     ],
     "calculation": {
      "http://cognex.com/role/ConsolidatedStatementsOfCashFlows": {
       "order": 5.0,
       "parentTag": "us-gaap_NetCashProvidedByUsedInInvestingActivities",
       "weight": -1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-US": {
       "role": {
        "documentation": "The net cash outflow or inflow associated with the acquisition or sale of a business segment during the period.",
        "label": "Payments for (Proceeds from) Businesses and Interest in Affiliates",
        "negatedTerseLabel": "Net cash paid from sale of discontinued business"
       }
      }
     },
     "localname": "PaymentsForProceedsFromBusinessesAndInterestInAffiliates",
     "nsuri": "http://fasb.org/us-gaap/2018-01-31",
     "presentation": [
      "http://cognex.com/role/ConsolidatedStatementsOfCashFlows"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_PaymentsForRepurchaseOfCommonStock": {
     "auth_ref": [
      "r95"
     ],
     "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/2018-01-31",
     "presentation": [
      "http://cognex.com/role/ConsolidatedStatementsOfCashFlows"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_PaymentsOfDividends": {
     "auth_ref": [
      "r95"
     ],
     "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/2018-01-31",
     "presentation": [
      "http://cognex.com/role/ShareholdersEquityAdditionalInformationDetail"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_PaymentsOfDividendsCommonStock": {
     "auth_ref": [
      "r95"
     ],
     "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/2018-01-31",
     "presentation": [
      "http://cognex.com/role/ConsolidatedStatementsOfCashFlows"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_PaymentsToAcquireBusinessesGross": {
     "auth_ref": [
      "r91",
      "r380"
     ],
     "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/2018-01-31",
     "presentation": [
      "http://cognex.com/role/AcquisitionsGviVenturesIncDetails",
      "http://cognex.com/role/AcquisitionsSualabCoLtdNarrativeDetails",
      "http://cognex.com/role/AcquisitionsVidiSystemsSADetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired": {
     "auth_ref": [
      "r91"
     ],
     "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": "Cash paid for acquisition of business, net of cash acquired"
       }
      }
     },
     "localname": "PaymentsToAcquireBusinessesNetOfCashAcquired",
     "nsuri": "http://fasb.org/us-gaap/2018-01-31",
     "presentation": [
      "http://cognex.com/role/ConsolidatedStatementsOfCashFlows"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_PaymentsToAcquireInvestments": {
     "auth_ref": [
      "r93"
     ],
     "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/2018-01-31",
     "presentation": [
      "http://cognex.com/role/ConsolidatedStatementsOfCashFlows"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_PaymentsToAcquirePropertyPlantAndEquipment": {
     "auth_ref": [
      "r92"
     ],
     "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/2018-01-31",
     "presentation": [
      "http://cognex.com/role/ConsolidatedStatementsOfCashFlows"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_PensionAndOtherPostretirementBenefitsDisclosureTextBlock": {
     "auth_ref": [
      "r278"
     ],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "The entire disclosure for pension and other postretirement benefits.",
        "label": "Pension and Other Postretirement Benefits Disclosure [Text Block]",
        "terseLabel": "Employee Savings Plan"
       }
      }
     },
     "localname": "PensionAndOtherPostretirementBenefitsDisclosureTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2018-01-31",
     "presentation": [
      "http://cognex.com/role/EmployeeSavingsPlan"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_PerformanceSharesMember": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Shares or units awarded to employees for meeting certain performance targets.",
        "label": "Performance Shares [Member]",
        "terseLabel": "Performance Shares [Member]"
       }
      }
     },
     "localname": "PerformanceSharesMember",
     "nsuri": "http://fasb.org/us-gaap/2018-01-31",
     "presentation": [
      "http://cognex.com/role/StockBasedCompensationExpenseAdditionalInformationDetail"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_PreferredStockParOrStatedValuePerShare": {
     "auth_ref": [
      "r18"
     ],
     "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)",
        "verboseLabel": "Preferred stock par value, in dollars per share"
       }
      }
     },
     "localname": "PreferredStockParOrStatedValuePerShare",
     "nsuri": "http://fasb.org/us-gaap/2018-01-31",
     "presentation": [
      "http://cognex.com/role/ConsolidatedBalanceSheetsParenthetical",
      "http://cognex.com/role/ShareholdersEquityAdditionalInformationDetail"
     ],
     "xbrltype": "perShareItemType"
    },
    "us-gaap_PreferredStockSharesAuthorized": {
     "auth_ref": [
      "r18"
     ],
     "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",
        "verboseLabel": "Preferred stock, shares authorized"
       }
      }
     },
     "localname": "PreferredStockSharesAuthorized",
     "nsuri": "http://fasb.org/us-gaap/2018-01-31",
     "presentation": [
      "http://cognex.com/role/ConsolidatedBalanceSheetsParenthetical",
      "http://cognex.com/role/ShareholdersEquityAdditionalInformationDetail"
     ],
     "xbrltype": "sharesItemType"
    },
    "us-gaap_PreferredStockSharesIssued": {
     "auth_ref": [
      "r18"
     ],
     "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"
       }
      }
     },
     "localname": "PreferredStockSharesIssued",
     "nsuri": "http://fasb.org/us-gaap/2018-01-31",
     "presentation": [
      "http://cognex.com/role/ConsolidatedBalanceSheetsParenthetical"
     ],
     "xbrltype": "sharesItemType"
    },
    "us-gaap_PreferredStockSharesOutstanding": {
     "auth_ref": [
      "r18"
     ],
     "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"
       }
      }
     },
     "localname": "PreferredStockSharesOutstanding",
     "nsuri": "http://fasb.org/us-gaap/2018-01-31",
     "presentation": [
      "http://cognex.com/role/ConsolidatedBalanceSheetsParenthetical"
     ],
     "xbrltype": "sharesItemType"
    },
    "us-gaap_PreferredStockValueOutstanding": {
     "auth_ref": [
      "r18"
     ],
     "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,$.01 par value - Authorized: 400 shares in 2019 and 2018, respectively, no shares issued and outstanding"
       }
      }
     },
     "localname": "PreferredStockValueOutstanding",
     "nsuri": "http://fasb.org/us-gaap/2018-01-31",
     "presentation": [
      "http://cognex.com/role/ConsolidatedBalanceSheets"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_PrepaidExpenseAndOtherAssetsCurrent": {
     "auth_ref": [
      "r3",
      "r33",
      "r34"
     ],
     "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/2018-01-31",
     "presentation": [
      "http://cognex.com/role/ConsolidatedBalanceSheets",
      "http://cognex.com/role/RevenueRecognitionBalanceSheetImpactDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_PrepaidExpensesAndOtherCurrentAssetsMember": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Primary financial statement caption encompassing prepaid expenses and other current assets.",
        "label": "Prepaid Expenses and Other Current Assets [Member]",
        "terseLabel": "Prepaid Expenses and Other Current Assets [Member]"
       }
      }
     },
     "localname": "PrepaidExpensesAndOtherCurrentAssetsMember",
     "nsuri": "http://fasb.org/us-gaap/2018-01-31",
     "presentation": [
      "http://cognex.com/role/DerivativeInstrumentsBalanceSheetLocationDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_ProceedsFromIssuanceOfSharesUnderIncentiveAndShareBasedCompensationPlansIncludingStockOptions": {
     "auth_ref": [
      "r94",
      "r313"
     ],
     "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 compensation arrangement. Issuance includes, but is not limited to, exercise of stock options and similar instruments.",
        "label": "Proceeds from Issuance of Shares under Incentive and Share-based Compensation Plans, Including Stock Options",
        "terseLabel": "Issuance of common stock under stock plans"
       }
      }
     },
     "localname": "ProceedsFromIssuanceOfSharesUnderIncentiveAndShareBasedCompensationPlansIncludingStockOptions",
     "nsuri": "http://fasb.org/us-gaap/2018-01-31",
     "presentation": [
      "http://cognex.com/role/ConsolidatedStatementsOfCashFlows"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_ProceedsFromSaleMaturityAndCollectionsOfInvestments": {
     "auth_ref": [
      "r90"
     ],
     "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/2018-01-31",
     "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/2018-01-31",
     "presentation": [
      "http://cognex.com/role/SummaryOfSignificantAccountingPoliciesWarrantyDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_ProductLiabilityContingencyTable": {
     "auth_ref": [
      "r228",
      "r230",
      "r231",
      "r232",
      "r233",
      "r234",
      "r235"
     ],
     "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/2018-01-31",
     "presentation": [
      "http://cognex.com/role/SummaryOfSignificantAccountingPoliciesWarrantyDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_ProductWarrantyAccrual": {
     "auth_ref": [
      "r245",
      "r246",
      "r489"
     ],
     "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/2018-01-31",
     "presentation": [
      "http://cognex.com/role/AccruedExpensesChangesInWarrantyObligationsDetail"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_ProductWarrantyAccrualClassifiedCurrent": {
     "auth_ref": [
      "r45",
      "r237",
      "r240"
     ],
     "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/2018-01-31",
     "presentation": [
      "http://cognex.com/role/AccruedExpensesConstituentsOfAccruedExpensesDetail"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_ProductWarrantyAccrualPayments": {
     "auth_ref": [
      "r241"
     ],
     "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/2018-01-31",
     "presentation": [
      "http://cognex.com/role/AccruedExpensesChangesInWarrantyObligationsDetail"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_ProductWarrantyAccrualWarrantiesIssued": {
     "auth_ref": [
      "r242"
     ],
     "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/2018-01-31",
     "presentation": [
      "http://cognex.com/role/AccruedExpensesChangesInWarrantyObligationsDetail"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_PropertyPlantAndEquipmentAbstract": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "label": "Property, Plant and Equipment [Abstract]"
       }
      }
     },
     "localname": "PropertyPlantAndEquipmentAbstract",
     "nsuri": "http://fasb.org/us-gaap/2018-01-31",
     "xbrltype": "stringItemType"
    },
    "us-gaap_PropertyPlantAndEquipmentByTypeAxis": {
     "auth_ref": [
      "r39",
      "r224"
     ],
     "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": "Property, Plant and Equipment, Type [Axis]",
        "terseLabel": "Property, Plant and Equipment, Type [Axis]"
       }
      }
     },
     "localname": "PropertyPlantAndEquipmentByTypeAxis",
     "nsuri": "http://fasb.org/us-gaap/2018-01-31",
     "presentation": [
      "http://cognex.com/role/PropertyPlantAndEquipmentPropertyPlantAndEquipmentDetail",
      "http://cognex.com/role/SummaryOfSignificantAccountingPoliciesAdditionalInformationDetail"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_PropertyPlantAndEquipmentDisclosureTextBlock": {
     "auth_ref": [
      "r226"
     ],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "The entire disclosure for long-lived, physical assets used in the normal conduct of business and not intended for resale. Includes, but is not limited to, accounting policies and methodology, roll forwards, depreciation, depletion and amortization expense, including composite depreciation, accumulated depreciation, depletion and amortization expense, useful lives and method used, income statement disclosures, assets held for sale and public utility disclosures.",
        "label": "Property, Plant and Equipment Disclosure [Text Block]",
        "terseLabel": "Property, Plant, and Equipment"
       }
      }
     },
     "localname": "PropertyPlantAndEquipmentDisclosureTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2018-01-31",
     "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/2018-01-31",
     "presentation": [
      "http://cognex.com/role/PropertyPlantAndEquipmentAdditionalInformationDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_PropertyPlantAndEquipmentGross": {
     "auth_ref": [
      "r38",
      "r222"
     ],
     "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/2018-01-31",
     "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/2018-01-31",
     "presentation": [
      "http://cognex.com/role/PropertyPlantAndEquipmentPropertyPlantAndEquipmentDetail",
      "http://cognex.com/role/SummaryOfSignificantAccountingPoliciesAdditionalInformationDetail"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_PropertyPlantAndEquipmentNet": {
     "auth_ref": [
      "r10",
      "r11",
      "r224",
      "r506"
     ],
     "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/2018-01-31",
     "presentation": [
      "http://cognex.com/role/ConsolidatedBalanceSheets",
      "http://cognex.com/role/PropertyPlantAndEquipmentPropertyPlantAndEquipmentDetail"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_PropertyPlantAndEquipmentPolicyTextBlock": {
     "auth_ref": [
      "r37",
      "r106",
      "r224"
     ],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Disclosure of accounting policy for long-lived, physical assets used in the normal conduct of business and not intended for resale. Includes, but is not limited to, basis of assets, depreciation and depletion methods used, including composite deprecation, estimated useful lives, capitalization policy, accounting treatment for costs incurred for repairs and maintenance, capitalized interest and the method it is calculated, disposals and impairments.",
        "label": "Property, Plant and Equipment, Policy [Policy Text Block]",
        "terseLabel": "Property, Plant, and Equipment"
       }
      }
     },
     "localname": "PropertyPlantAndEquipmentPolicyTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2018-01-31",
     "presentation": [
      "http://cognex.com/role/SummaryOfSignificantAccountingPoliciesPolicies"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_PropertyPlantAndEquipmentTextBlock": {
     "auth_ref": [
      "r10",
      "r224"
     ],
     "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/2018-01-31",
     "presentation": [
      "http://cognex.com/role/PropertyPlantAndEquipmentTables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_PropertyPlantAndEquipmentTypeDomain": {
     "auth_ref": [
      "r10",
      "r222"
     ],
     "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": "Property, Plant and Equipment, Type [Domain]",
        "terseLabel": "Property, Plant and Equipment, Type [Domain]"
       }
      }
     },
     "localname": "PropertyPlantAndEquipmentTypeDomain",
     "nsuri": "http://fasb.org/us-gaap/2018-01-31",
     "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/2018-01-31",
     "presentation": [
      "http://cognex.com/role/SummaryOfSignificantAccountingPoliciesAdditionalInformationDetail"
     ],
     "xbrltype": "durationItemType"
    },
    "us-gaap_PropertySubjectToOrAvailableForOperatingLeaseAccumulatedDepreciation": {
     "auth_ref": [
      "r455",
      "r456"
     ],
     "crdr": "credit",
     "lang": {
      "en-US": {
       "role": {
        "documentation": "The amount of accumulated depreciation, by major property class, recorded on property subject to or available for lease as of the balance sheet date.",
        "label": "Property Subject to or Available for Operating Lease, Accumulated Depreciation",
        "terseLabel": "Accumulated depreciation"
       }
      }
     },
     "localname": "PropertySubjectToOrAvailableForOperatingLeaseAccumulatedDepreciation",
     "nsuri": "http://fasb.org/us-gaap/2018-01-31",
     "presentation": [
      "http://cognex.com/role/PropertyPlantAndEquipmentAdditionalInformationDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_PropertySubjectToOrAvailableForOperatingLeaseGross": {
     "auth_ref": [
      "r454",
      "r456"
     ],
     "crdr": "debit",
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Amount before accumulated depreciation of physical assets used in the normal conduct of business to produce goods and services subject to or available for lease.",
        "label": "Property Subject to or Available for Operating Lease, Gross",
        "terseLabel": "Buildings include rental property"
       }
      }
     },
     "localname": "PropertySubjectToOrAvailableForOperatingLeaseGross",
     "nsuri": "http://fasb.org/us-gaap/2018-01-31",
     "presentation": [
      "http://cognex.com/role/PropertyPlantAndEquipmentAdditionalInformationDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_PurchaseCommitmentRemainingMinimumAmountCommitted": {
     "auth_ref": [
      "r14",
      "r484",
      "r502"
     ],
     "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/2018-01-31",
     "presentation": [
      "http://cognex.com/role/CommitmentsAndContingenciesAdditionalInformationDetail"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_QuarterlyFinancialInformationDisclosureAbstract": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "label": "Quarterly Financial Information Disclosure [Abstract]"
       }
      }
     },
     "localname": "QuarterlyFinancialInformationDisclosureAbstract",
     "nsuri": "http://fasb.org/us-gaap/2018-01-31",
     "xbrltype": "stringItemType"
    },
    "us-gaap_QuarterlyFinancialInformationTextBlock": {
     "auth_ref": [
      "r151"
     ],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "The entire disclosure for quarterly financial data. Includes, but is not limited to, tabular presentation of financial information for fiscal quarters, effect of year-end adjustments, and an explanation of matters or transactions that affect comparability of the information.",
        "label": "Quarterly Financial Information [Text Block]",
        "terseLabel": "Selected Quarterly Financial Data (Unaudited)"
       }
      }
     },
     "localname": "QuarterlyFinancialInformationTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2018-01-31",
     "presentation": [
      "http://cognex.com/role/SelectedQuarterlyFinancialDataUnaudited"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_ReceivablesPolicyTextBlock": {
     "auth_ref": [
      "r20",
      "r26",
      "r106",
      "r171",
      "r173",
      "r505"
     ],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Disclosure of accounting policy for trade and other accounts receivable, and finance, loan and lease receivables, including those classified as held for investment and held for sale. This disclosure may include (1) the basis at which such receivables are carried in the entity's statements of financial position (2) how the level of the valuation allowance for receivables is determined (3) when impairments, charge-offs or recoveries are recognized for such receivables (4) the treatment of origination fees and costs, including the amortization method for net deferred fees or costs (5) the treatment of any premiums or discounts or unearned income (6) the entity's income recognition policies for such receivables, including those that are impaired, past due or placed on nonaccrual status and (7) the treatment of foreclosures or repossessions (8) the nature and amount of any guarantees to repurchase receivables.",
        "label": "Receivables, Policy [Policy Text Block]",
        "terseLabel": "Accounts Receivable"
       }
      }
     },
     "localname": "ReceivablesPolicyTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2018-01-31",
     "presentation": [
      "http://cognex.com/role/SummaryOfSignificantAccountingPoliciesPolicies"
     ],
     "xbrltype": "textBlockItemType"
    },
    "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/2018-01-31",
     "presentation": [
      "http://cognex.com/role/TaxesChangesInReserveForIncomeTaxesExcludingInterestAndPenaltiesDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_RentalIncomeNonoperating": {
     "auth_ref": [
      "r88"
     ],
     "crdr": "credit",
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Income earned by providing the use of assets to an outside party in exchange for a payment or series of payments that is nonoperating in nature.",
        "label": "Rental Income, Nonoperating",
        "terseLabel": "Operating lease income"
       }
      }
     },
     "localname": "RentalIncomeNonoperating",
     "nsuri": "http://fasb.org/us-gaap/2018-01-31",
     "presentation": [
      "http://cognex.com/role/LeasesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_ResearchAndDevelopmentExpense": {
     "auth_ref": [
      "r320",
      "r522"
     ],
     "calculation": {
      "http://cognex.com/role/ConsolidatedStatementsOfOperations": {
       "order": 2.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/2018-01-31",
     "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/2018-01-31",
     "presentation": [
      "http://cognex.com/role/DerivativeInstrumentsGainLossRecognizedInOtherComprehensiveIncomeLossDetails",
      "http://cognex.com/role/StockBasedCompensationExpenseStockBasedCompensationExpenseDetail"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_ResearchDevelopmentAndComputerSoftwarePolicyTextBlock": {
     "auth_ref": [
      "r40",
      "r106",
      "r217",
      "r218",
      "r522"
     ],
     "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/2018-01-31",
     "presentation": [
      "http://cognex.com/role/SummaryOfSignificantAccountingPoliciesPolicies"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_ResearchMember": {
     "auth_ref": [
      "r349"
     ],
     "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/2018-01-31",
     "presentation": [
      "http://cognex.com/role/TaxesAdditionalInformationDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_RestrictedStockMember": {
     "auth_ref": [
      "r137"
     ],
     "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/2018-01-31",
     "presentation": [
      "http://cognex.com/role/StockBasedCompensationExpenseSummaryOfRestrictedStockOptionActivityDetail",
      "http://cognex.com/role/StockBasedCompensationExpenseWeightedAverageAssumptionsUsedInEstimatingFairValuesOfStockOptionsGrantedDetail",
      "http://cognex.com/role/WeightedAverageSharesAdditionalInformationDetail"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_RetainedEarningsAccumulatedDeficit": {
     "auth_ref": [
      "r22",
      "r258",
      "r503"
     ],
     "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",
        "verboseLabel": "Retained earnings"
       }
      }
     },
     "localname": "RetainedEarningsAccumulatedDeficit",
     "nsuri": "http://fasb.org/us-gaap/2018-01-31",
     "presentation": [
      "http://cognex.com/role/ConsolidatedBalanceSheets",
      "http://cognex.com/role/RevenueRecognitionBalanceSheetImpactDetails",
      "http://cognex.com/role/TaxesScheduleOfChangeInAccountingPolicyDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_RetainedEarningsMember": {
     "auth_ref": [],
     "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/2018-01-31",
     "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/2018-01-31",
     "presentation": [
      "http://cognex.com/role/TaxesAdditionalInformationDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_RevenueFromContractWithCustomerAbstract": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "label": "Revenue from Contract with Customer [Abstract]"
       }
      }
     },
     "localname": "RevenueFromContractWithCustomerAbstract",
     "nsuri": "http://fasb.org/us-gaap/2018-01-31",
     "xbrltype": "stringItemType"
    },
    "us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax": {
     "auth_ref": [
      "r264",
      "r266",
      "r267"
     ],
     "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/2018-01-31",
     "presentation": [
      "http://cognex.com/role/ConsolidatedStatementsOfOperations",
      "http://cognex.com/role/RevenueRecognitionDisaggregationByGeographyAndTypeDetails",
      "http://cognex.com/role/RevenueRecognitionStatementOfOperationsImpactDetails",
      "http://cognex.com/role/SegmentAndGeographicInformationScheduleOfRevenueFromExternalCustomersAndLongLivedAssetsByGeographicalAreasDetail",
      "http://cognex.com/role/SelectedQuarterlyFinancialDataUnauditedDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_RevenueFromContractWithCustomerTextBlock": {
     "auth_ref": [
      "r120",
      "r272"
     ],
     "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/2018-01-31",
     "presentation": [
      "http://cognex.com/role/RevenueRecognition"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_RevenueInitialApplicationPeriodCumulativeEffectTransitionLineItems": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table.",
        "label": "Revenue, Initial Application Period Cumulative Effect Transition [Line Items]",
        "terseLabel": "Revenue"
       }
      }
     },
     "localname": "RevenueInitialApplicationPeriodCumulativeEffectTransitionLineItems",
     "nsuri": "http://fasb.org/us-gaap/2018-01-31",
     "presentation": [
      "http://cognex.com/role/RevenueRecognitionBalanceSheetImpactDetails",
      "http://cognex.com/role/RevenueRecognitionStatementOfOperationsImpactDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_RevenueInitialApplicationPeriodCumulativeEffectTransitionTable": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Disclosure of information when using transition method for cumulative effect in initial period of application for revenue from contract with customer.",
        "label": "Revenue, Initial Application Period Cumulative Effect Transition [Table]",
        "terseLabel": "Revenue, Initial Application Period Cumulative Effect Transition [Table]"
       }
      }
     },
     "localname": "RevenueInitialApplicationPeriodCumulativeEffectTransitionTable",
     "nsuri": "http://fasb.org/us-gaap/2018-01-31",
     "presentation": [
      "http://cognex.com/role/RevenueRecognitionBalanceSheetImpactDetails",
      "http://cognex.com/role/RevenueRecognitionStatementOfOperationsImpactDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_RevenueRecognitionPolicyTextBlock": {
     "auth_ref": [
      "r105",
      "r106",
      "r107"
     ],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Disclosure of accounting policy for revenue recognition. If the entity has different policies for different types of revenue transactions, the policy for each material type of transaction is generally disclosed. If a sales transaction has multiple element arrangements (for example, delivery of multiple products, services or the rights to use assets) the disclosure may indicate the accounting policy for each unit of accounting as well as how units of accounting are determined and valued. The disclosure may encompass important judgment as to appropriateness of principles related to recognition of revenue. The disclosure also may indicate the entity's treatment of any unearned or deferred revenue that arises from the transaction.",
        "label": "Revenue Recognition, Policy [Policy Text Block]",
        "terseLabel": "Revenue Recognition"
       }
      }
     },
     "localname": "RevenueRecognitionPolicyTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2018-01-31",
     "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/2018-01-31",
     "presentation": [
      "http://cognex.com/role/SegmentAndGeographicInformationScheduleOfRevenueFromExternalCustomersAndLongLivedAssetsByGeographicalAreasDetail"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_SalesRevenueGoodsNetMember": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Aggregate revenue during the period from the sale of goods in the normal course of business, after deducting returns, allowances and discounts, when it serves as a benchmark in a concentration of risk calculation.",
        "label": "Sales Revenue, Goods, Net [Member]",
        "terseLabel": "Product Revenue"
       }
      }
     },
     "localname": "SalesRevenueGoodsNetMember",
     "nsuri": "http://fasb.org/us-gaap/2018-01-31",
     "presentation": [
      "http://cognex.com/role/DerivativeInstrumentsGainLossRecognizedInOtherComprehensiveIncomeLossDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_SalesRevenueNetMember": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Revenue from sale of goods and services rendered, in the normal course of business, after sales returns and allowances, and sales discounts, when it serves as a benchmark in a concentration of risk calculation.",
        "label": "Sales Revenue, Net [Member]",
        "verboseLabel": "Total Revenue"
       }
      }
     },
     "localname": "SalesRevenueNetMember",
     "nsuri": "http://fasb.org/us-gaap/2018-01-31",
     "presentation": [
      "http://cognex.com/role/SegmentAndGeographicInformationAdditionalInformationDetail"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_ScenarioUnspecifiedDomain": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Any scenario, that is, the particular reporting scenario is left unspecified. Scenarios distinguish among different kinds of business reporting facts, as for example actual versus budgeted figures.",
        "label": "Scenario, Unspecified [Domain]",
        "terseLabel": "Scenario, Unspecified [Domain]"
       }
      }
     },
     "localname": "ScenarioUnspecifiedDomain",
     "nsuri": "http://fasb.org/us-gaap/2018-01-31",
     "presentation": [
      "http://cognex.com/role/NewPronouncementsDetails"
     ],
     "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/2018-01-31",
     "presentation": [
      "http://cognex.com/role/AccruedExpensesTables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTable": {
     "auth_ref": [
      "r137"
     ],
     "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/2018-01-31",
     "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/2018-01-31",
     "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/2018-01-31",
     "presentation": [
      "http://cognex.com/role/CashCashEquivalentsAndInvestmentsTables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_ScheduleOfAvailableForSaleSecuritiesTable": {
     "auth_ref": [
      "r180",
      "r182",
      "r184",
      "r185",
      "r186",
      "r187",
      "r494",
      "r496"
     ],
     "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/2018-01-31",
     "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": [
      "r364",
      "r365"
     ],
     "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/2018-01-31",
     "presentation": [
      "http://cognex.com/role/AcquisitionsGviVenturesIncDetails",
      "http://cognex.com/role/AcquisitionsGviVenturesIncPurchasePriceAllocationDetails",
      "http://cognex.com/role/AcquisitionsSualabCoLtdNarrativeDetails",
      "http://cognex.com/role/AcquisitionsSualabCoLtdPurchasePriceAllocationDetails",
      "http://cognex.com/role/AcquisitionsVidiSystemsSADetails",
      "http://cognex.com/role/AcquisitionsVidiSystemsSAPurchasePriceAllocationDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_ScheduleOfChangeInAccountingEstimateTable": {
     "auth_ref": [
      "r121",
      "r126",
      "r144"
     ],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "A summarization of the nature of changes in accounting estimates, including changes that occur in interim periods. Changes in accounting estimate have the effect of adjusting the carrying amounts of existing assets or liabilities or altering the subsequent accounting for existing or future assets or liabilities. Changes in accounting estimates are a necessary consequence of assessments, in conjunction with the periodic presentation of financial statements, of the present status and expected future benefits and obligations associated with assets and liabilities. Changes in accounting estimates result from new or better information. Examples of items for which estimates are necessary are uncollectible receivables, inventory obsolescence, service lives and salvage values of depreciable assets, warranty obligations, and regulatory reviews.",
        "label": "Schedule of Change in Accounting Estimate [Table]",
        "terseLabel": "Schedule of Change in Accounting Estimate [Table]"
       }
      }
     },
     "localname": "ScheduleOfChangeInAccountingEstimateTable",
     "nsuri": "http://fasb.org/us-gaap/2018-01-31",
     "presentation": [
      "http://cognex.com/role/TaxesScheduleOfChangeInAccountingPolicyDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_ScheduleOfChangeInAccountingEstimateTextBlock": {
     "auth_ref": [
      "r121",
      "r126",
      "r144",
      "r149"
     ],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Tabular disclosure of the change in an accounting estimate, including a change that occurs in an interim period. If a change in accounting estimate affects several future periods (for example, a change in the service life of a depreciable asset) disclose the effect on income from continuing operations, net income (or other appropriate captions of changes in the applicable net assets or performance indicator), and any related per-share amounts of the current period. Disclosure of the effects of a change in an accounting estimate that occurs in the ordinary course of business (such as uncollectible accounts or inventory obsolescence) is not required, unless the effect is material.",
        "label": "Schedule of Change in Accounting Estimate [Table Text Block]",
        "terseLabel": "Schedule of Change in Accounting Policy"
       }
      }
     },
     "localname": "ScheduleOfChangeInAccountingEstimateTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2018-01-31",
     "presentation": [
      "http://cognex.com/role/TaxesTables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock": {
     "auth_ref": [
      "r354"
     ],
     "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/2018-01-31",
     "presentation": [
      "http://cognex.com/role/TaxesTables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock": {
     "auth_ref": [
      "r346"
     ],
     "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/2018-01-31",
     "presentation": [
      "http://cognex.com/role/TaxesTables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_ScheduleOfDerivativeInstrumentsEffectOnOtherComprehensiveIncomeLossTableTextBlock": {
     "auth_ref": [
      "r411"
     ],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Tabular disclosure of the effective portion of the gains and losses on derivative instruments designated (and non-derivative instruments) designated and qualifying in cash flow hedges and net investment hedges that was recognized in other comprehensive income (loss) during the current period.",
        "label": "Schedule of Derivative Instruments, Effect on Other Comprehensive Income (Loss) [Table Text Block]",
        "terseLabel": "Schedule of Derivative Instruments, Effect on Other Comprehensive Income (Loss)"
       }
      }
     },
     "localname": "ScheduleOfDerivativeInstrumentsEffectOnOtherComprehensiveIncomeLossTableTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2018-01-31",
     "presentation": [
      "http://cognex.com/role/DerivativeInstrumentsTables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_ScheduleOfDerivativeInstrumentsGainLossInStatementOfFinancialPerformanceTextBlock": {
     "auth_ref": [
      "r406",
      "r413",
      "r416"
     ],
     "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/2018-01-31",
     "presentation": [
      "http://cognex.com/role/DerivativeInstrumentsTables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_ScheduleOfDerivativeInstrumentsInStatementOfFinancialPositionFairValueTextBlock": {
     "auth_ref": [
      "r410"
     ],
     "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/2018-01-31",
     "presentation": [
      "http://cognex.com/role/DerivativeInstrumentsTables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock": {
     "auth_ref": [
      "r331"
     ],
     "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/2018-01-31",
     "presentation": [
      "http://cognex.com/role/TaxesTables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTable": {
     "auth_ref": [
      "r281",
      "r309",
      "r315"
     ],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Schedule that sets forth the allocation of equity-based compensation costs to a given line item on the balance sheet and income statement for the period. This may include the reporting line for the costs and the amount capitalized and expensed.",
        "label": "Schedule of Employee Service Share-based Compensation, Allocation of Recognized Period Costs [Table]",
        "terseLabel": "Schedule of Employee Service Share-based Compensation, Allocation of Recognized Period Costs [Table]"
       }
      }
     },
     "localname": "ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTable",
     "nsuri": "http://fasb.org/us-gaap/2018-01-31",
     "presentation": [
      "http://cognex.com/role/StockBasedCompensationExpenseStockBasedCompensationExpenseDetail"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock": {
     "auth_ref": [
      "r281",
      "r309",
      "r315"
     ],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Tabular disclosure of the allocation of equity-based compensation costs to a given line item on the balance sheet and income statement for the period. This may include the reporting line for the costs and the amount capitalized and expensed.",
        "label": "Schedule of Employee Service Share-based Compensation, Allocation of Recognized Period Costs [Table Text Block]",
        "terseLabel": "Stock-Based Compensation Expense"
       }
      }
     },
     "localname": "ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2018-01-31",
     "presentation": [
      "http://cognex.com/role/StockBasedCompensationTables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_ScheduleOfFairValueAssetsAndLiabilitiesMeasuredOnRecurringBasisTableTextBlock": {
     "auth_ref": [
      "r425"
     ],
     "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/2018-01-31",
     "presentation": [
      "http://cognex.com/role/FairValueMeasurementsTables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable": {
     "auth_ref": [
      "r207",
      "r212"
     ],
     "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/2018-01-31",
     "presentation": [
      "http://cognex.com/role/IntangibleAssetsAmortizedIntangibleAssetsDetail",
      "http://cognex.com/role/SummaryOfSignificantAccountingPoliciesIntangibleAssetsDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock": {
     "auth_ref": [
      "r207",
      "r212"
     ],
     "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/2018-01-31",
     "presentation": [
      "http://cognex.com/role/IntangibleAssetsTables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_ScheduleOfGoodwillTable": {
     "auth_ref": [
      "r202",
      "r203"
     ],
     "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/2018-01-31",
     "presentation": [
      "http://cognex.com/role/GoodwillChangesInCarryingValueOfGoodwillDetail"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_ScheduleOfGoodwillTextBlock": {
     "auth_ref": [
      "r202",
      "r203"
     ],
     "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/2018-01-31",
     "presentation": [
      "http://cognex.com/role/GoodwillTables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_ScheduleOfIndefiniteLivedIntangibleAssetsAcquiredAsPartOfBusinessCombinationTextBlock": {
     "auth_ref": [
      "r209",
      "r368"
     ],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Tabular disclosure of characteristics and cost, by total and major class, of indefinite-lived intangible assets acquired as part of a business combination. Indefinite-lived intangible assets are assets that have no physical form, but have expected future economic benefit. The future benefit is not expected to diminish over a stated period of time. Acquired indefinite-lived intangible assets are disclosed by major class (assets that can be grouped together because they are similar, either by their nature or by their use in operations of the entity) and in total.",
        "label": "Schedule of Indefinite-lived Intangible Assets Acquired as Part of Business Combination [Table Text Block]",
        "terseLabel": "Schedule of Indefinite-lived Intangible Assets Acquired as Part of Business Combination"
       }
      }
     },
     "localname": "ScheduleOfIndefiniteLivedIntangibleAssetsAcquiredAsPartOfBusinessCombinationTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2018-01-31",
     "presentation": [
      "http://cognex.com/role/AcquisitionsAcquisitionsTables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_ScheduleOfInventoryCurrentTableTextBlock": {
     "auth_ref": [
      "r8",
      "r30",
      "r31",
      "r32"
     ],
     "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/2018-01-31",
     "presentation": [
      "http://cognex.com/role/InventoriesTables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_ScheduleOfNewAccountingPronouncementsAndChangesInAccountingPrinciplesTextBlock": {
     "auth_ref": [
      "r122",
      "r124",
      "r125",
      "r142",
      "r143",
      "r150"
     ],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Tabular disclosure of changes in accounting principles, including adoption of new accounting pronouncements, that describes the new methods, amount and effects on financial statement line items.",
        "label": "Schedule of New Accounting Pronouncements and Changes in Accounting Principles [Table Text Block]",
        "terseLabel": "Impact on Face Financials"
       }
      }
     },
     "localname": "ScheduleOfNewAccountingPronouncementsAndChangesInAccountingPrinciplesTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2018-01-31",
     "presentation": [
      "http://cognex.com/role/RevenueRecognitionTables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_ScheduleOfNotionalAmountsOfOutstandingDerivativePositionsTableTextBlock": {
     "auth_ref": [
      "r398"
     ],
     "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/2018-01-31",
     "presentation": [
      "http://cognex.com/role/DerivativeInstrumentsTables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_ScheduleOfProductWarrantyLiabilityTableTextBlock": {
     "auth_ref": [
      "r247"
     ],
     "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/2018-01-31",
     "presentation": [
      "http://cognex.com/role/AccruedExpensesTables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_ScheduleOfPropertyPlantAndEquipmentTable": {
     "auth_ref": [
      "r39",
      "r224"
     ],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Disclosure of information about physical assets used in the normal conduct of business and not intended for resale. Includes, but is not limited to, balances by class of assets, depreciation and depletion expense and method used, including composite depreciation, and accumulated deprecation.",
        "label": "Property, Plant and Equipment [Table]"
       }
      }
     },
     "localname": "ScheduleOfPropertyPlantAndEquipmentTable",
     "nsuri": "http://fasb.org/us-gaap/2018-01-31",
     "presentation": [
      "http://cognex.com/role/PropertyPlantAndEquipmentPropertyPlantAndEquipmentDetail",
      "http://cognex.com/role/SummaryOfSignificantAccountingPoliciesAdditionalInformationDetail"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_ScheduleOfQuarterlyFinancialInformationTableTextBlock": {
     "auth_ref": [
      "r146"
     ],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Tabular disclosure of quarterly financial data. Includes, but is not limited to, financial information for fiscal quarters, cumulative effect of a change in accounting principle and earnings per share data.",
        "label": "Quarterly Financial Information [Table Text Block]",
        "terseLabel": "Schedule of Selected Quarterly Financial Information Data"
       }
      }
     },
     "localname": "ScheduleOfQuarterlyFinancialInformationTableTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2018-01-31",
     "presentation": [
      "http://cognex.com/role/SelectedQuarterlyFinancialDataUnauditedTables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsByGeographicalAreasTableTextBlock": {
     "auth_ref": [
      "r84",
      "r168"
     ],
     "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/2018-01-31",
     "presentation": [
      "http://cognex.com/role/SegmentAndGeographicInformationTables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsTable": {
     "auth_ref": [
      "r79",
      "r80",
      "r168"
     ],
     "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/2018-01-31",
     "presentation": [
      "http://cognex.com/role/SegmentAndGeographicInformationScheduleOfRevenueFromExternalCustomersAndLongLivedAssetsByGeographicalAreasDetail"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable": {
     "auth_ref": [
      "r282",
      "r312"
     ],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Components of an equity-based arrangement under which compensation is awarded to employees, typically comprised of compensation expense; changes in the quantity and fair value of the shares (or other type of equity) granted, exercised, forfeited, and issued and outstanding pertaining to that plan; and cash flow effects resulting from the equity-based payment arrangement. Component disclosures are by type of award and plan name.",
        "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/2018-01-31",
     "presentation": [
      "http://cognex.com/role/StockBasedCompensationExpenseAdditionalInformationDetail",
      "http://cognex.com/role/StockBasedCompensationExpenseWeightedAverageAssumptionsUsedInEstimatingFairValuesOfStockOptionsGrantedDetail"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_ScheduleOfShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeTable": {
     "auth_ref": [
      "r312"
     ],
     "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": "Schedule of Share-based Compensation, Shares Authorized under Stock Option Plans, by 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/2018-01-31",
     "presentation": [
      "http://cognex.com/role/StockBasedCompensationExpenseSummaryOfRestrictedStockOptionActivityDetail"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock": {
     "auth_ref": [
      "r287",
      "r299",
      "r301"
     ],
     "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 Compensation, Stock Options, Activity [Table Text Block]",
        "terseLabel": "Summary of Stock Option Activity"
       }
      }
     },
     "localname": "ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2018-01-31",
     "presentation": [
      "http://cognex.com/role/StockBasedCompensationTables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock": {
     "auth_ref": [
      "r304"
     ],
     "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/2018-01-31",
     "presentation": [
      "http://cognex.com/role/StockBasedCompensationTables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_ScheduleOfStockByClassTable": {
     "auth_ref": [
      "r49",
      "r110",
      "r248",
      "r249",
      "r250",
      "r252",
      "r253",
      "r254",
      "r255",
      "r256",
      "r257",
      "r258"
     ],
     "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/2018-01-31",
     "presentation": [
      "http://cognex.com/role/ShareholdersEquityAdditionalInformationDetail"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_ScheduleOfUnrealizedLossOnInvestmentsTableTextBlock": {
     "auth_ref": [
      "r184"
     ],
     "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/2018-01-31",
     "presentation": [
      "http://cognex.com/role/CashCashEquivalentsAndInvestmentsTables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_ScheduleOfWeightedAverageNumberOfSharesTableTextBlock": {
     "auth_ref": [
      "r138"
     ],
     "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/2018-01-31",
     "presentation": [
      "http://cognex.com/role/WeightedAverageSharesTables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock": {
     "auth_ref": [
      "r212"
     ],
     "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/2018-01-31",
     "presentation": [
      "http://cognex.com/role/IntangibleAssetsTables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_SegmentReportingAbstract": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "label": "Segment Reporting [Abstract]"
       }
      }
     },
     "localname": "SegmentReportingAbstract",
     "nsuri": "http://fasb.org/us-gaap/2018-01-31",
     "xbrltype": "stringItemType"
    },
    "us-gaap_SegmentReportingDisclosureTextBlock": {
     "auth_ref": [
      "r169"
     ],
     "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/2018-01-31",
     "presentation": [
      "http://cognex.com/role/SegmentAndGeographicInformation"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_SellingGeneralAndAdministrativeExpense": {
     "auth_ref": [
      "r87",
      "r189"
     ],
     "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/2018-01-31",
     "presentation": [
      "http://cognex.com/role/ConsolidatedStatementsOfOperations"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1": {
     "auth_ref": [
      "r283"
     ],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Period which an employee's right to exercise an award is no longer contingent on satisfaction of either a service condition, market condition or a performance condition, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents the reported fact of one year, five months, and thirteen days.",
        "label": "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/2018-01-31",
     "presentation": [
      "http://cognex.com/role/StockBasedCompensationExpenseAdditionalInformationDetail"
     ],
     "xbrltype": "durationItemType"
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod": {
     "auth_ref": [
      "r293"
     ],
     "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",
        "terseLabel": "Share-based Compensation Arrangement by Share-based Payment Award, Equity Instruments Other than Options, Forfeited in Period"
       }
      }
     },
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod",
     "nsuri": "http://fasb.org/us-gaap/2018-01-31",
     "presentation": [
      "http://cognex.com/role/StockBasedCompensationExpenseSummaryOfRestrictedStockOptionActivityDetail",
      "http://cognex.com/role/StockBasedCompensationExpenseWeightedAverageAssumptionsUsedInEstimatingFairValuesOfStockOptionsGrantedDetail"
     ],
     "xbrltype": "sharesItemType"
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue": {
     "auth_ref": [
      "r298"
     ],
     "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/2018-01-31",
     "presentation": [
      "http://cognex.com/role/StockBasedCompensationExpenseSummaryOfRestrictedStockOptionActivityDetail"
     ],
     "xbrltype": "perShareItemType"
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod": {
     "auth_ref": [
      "r296"
     ],
     "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/2018-01-31",
     "presentation": [
      "http://cognex.com/role/StockBasedCompensationExpenseSummaryOfRestrictedStockOptionActivityDetail",
      "http://cognex.com/role/StockBasedCompensationExpenseWeightedAverageAssumptionsUsedInEstimatingFairValuesOfStockOptionsGrantedDetail"
     ],
     "xbrltype": "sharesItemType"
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue": {
     "auth_ref": [
      "r296"
     ],
     "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/2018-01-31",
     "presentation": [
      "http://cognex.com/role/StockBasedCompensationExpenseSummaryOfRestrictedStockOptionActivityDetail",
      "http://cognex.com/role/StockBasedCompensationExpenseWeightedAverageAssumptionsUsedInEstimatingFairValuesOfStockOptionsGrantedDetail"
     ],
     "xbrltype": "perShareItemType"
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber": {
     "auth_ref": [
      "r295"
     ],
     "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",
        "terseLabel": "Share-based Compensation Arrangement by Share-based Payment Award, Equity Instruments Other than Options, Nonvested, Number"
       }
      }
     },
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber",
     "nsuri": "http://fasb.org/us-gaap/2018-01-31",
     "presentation": [
      "http://cognex.com/role/StockBasedCompensationExpenseSummaryOfRestrictedStockOptionActivityDetail",
      "http://cognex.com/role/StockBasedCompensationExpenseWeightedAverageAssumptionsUsedInEstimatingFairValuesOfStockOptionsGrantedDetail"
     ],
     "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/2018-01-31",
     "presentation": [
      "http://cognex.com/role/StockBasedCompensationExpenseSummaryOfRestrictedStockOptionActivityDetail"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue": {
     "auth_ref": [
      "r295"
     ],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "The weighted average fair value of nonvested awards on equity-based plans excluding option plans (for example, phantom stock or unit plan, stock or unit appreciation rights plan, revenue or profit achievement stock award plan) for which the employer is contingently obligated to issue equity instruments or transfer assets to an employee who has not yet satisfied service or performance criteria necessary to gain title to proceeds from the sale of the award or underlying shares or units.",
        "label": "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",
        "terseLabel": "Share-based Compensation Arrangement by Share-based Payment Award, Equity Instruments Other than Options, Nonvested, Weighted Average Grant Date Fair Value"
       }
      }
     },
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue",
     "nsuri": "http://fasb.org/us-gaap/2018-01-31",
     "presentation": [
      "http://cognex.com/role/StockBasedCompensationExpenseSummaryOfRestrictedStockOptionActivityDetail",
      "http://cognex.com/role/StockBasedCompensationExpenseWeightedAverageAssumptionsUsedInEstimatingFairValuesOfStockOptionsGrantedDetail"
     ],
     "xbrltype": "perShareItemType"
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward": {
     "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, Weighted Average Grant Date Fair Value [Abstract]",
        "terseLabel": "Weighted-Average Grant Fair Value"
       }
      }
     },
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward",
     "nsuri": "http://fasb.org/us-gaap/2018-01-31",
     "presentation": [
      "http://cognex.com/role/StockBasedCompensationExpenseSummaryOfRestrictedStockOptionActivityDetail"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod": {
     "auth_ref": [
      "r297"
     ],
     "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": "Share-based Compensation Arrangement by Share-based Payment Award, Equity Instruments Other than Options, Vested in Period"
       }
      }
     },
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod",
     "nsuri": "http://fasb.org/us-gaap/2018-01-31",
     "presentation": [
      "http://cognex.com/role/StockBasedCompensationExpenseSummaryOfRestrictedStockOptionActivityDetail",
      "http://cognex.com/role/StockBasedCompensationExpenseWeightedAverageAssumptionsUsedInEstimatingFairValuesOfStockOptionsGrantedDetail"
     ],
     "xbrltype": "sharesItemType"
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue": {
     "auth_ref": [
      "r297"
     ],
     "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/2018-01-31",
     "presentation": [
      "http://cognex.com/role/StockBasedCompensationExpenseSummaryOfRestrictedStockOptionActivityDetail"
     ],
     "xbrltype": "perShareItemType"
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate": {
     "auth_ref": [
      "r307"
     ],
     "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/2018-01-31",
     "presentation": [
      "http://cognex.com/role/StockBasedCompensationExpenseWeightedAverageAssumptionsUsedInEstimatingFairValuesOfStockOptionsGrantedDetail"
     ],
     "xbrltype": "percentItemType"
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate": {
     "auth_ref": [
      "r306"
     ],
     "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/2018-01-31",
     "presentation": [
      "http://cognex.com/role/StockBasedCompensationExpenseWeightedAverageAssumptionsUsedInEstimatingFairValuesOfStockOptionsGrantedDetail"
     ],
     "xbrltype": "percentItemType"
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate": {
     "auth_ref": [
      "r308"
     ],
     "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/2018-01-31",
     "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/2018-01-31",
     "presentation": [
      "http://cognex.com/role/StockBasedCompensationExpenseAdditionalInformationDetail",
      "http://cognex.com/role/StockBasedCompensationExpenseWeightedAverageAssumptionsUsedInEstimatingFairValuesOfStockOptionsGrantedDetail"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant": {
     "auth_ref": [
      "r312"
     ],
     "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/2018-01-31",
     "presentation": [
      "http://cognex.com/role/StockBasedCompensationExpenseAdditionalInformationDetail"
     ],
     "xbrltype": "sharesItemType"
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber": {
     "auth_ref": [
      "r290"
     ],
     "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/2018-01-31",
     "presentation": [
      "http://cognex.com/role/StockBasedCompensationExpenseSummaryOfStockOptionActivityDetail"
     ],
     "xbrltype": "sharesItemType"
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice": {
     "auth_ref": [
      "r290"
     ],
     "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/2018-01-31",
     "presentation": [
      "http://cognex.com/role/StockBasedCompensationExpenseSummaryOfStockOptionActivityDetail"
     ],
     "xbrltype": "perShareItemType"
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriod": {
     "auth_ref": [
      "r294"
     ],
     "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/2018-01-31",
     "presentation": [
      "http://cognex.com/role/StockBasedCompensationExpenseSummaryOfStockOptionActivityDetail"
     ],
     "xbrltype": "sharesItemType"
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriodWeightedAverageExercisePrice": {
     "auth_ref": [
      "r294"
     ],
     "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/2018-01-31",
     "presentation": [
      "http://cognex.com/role/StockBasedCompensationExpenseSummaryOfStockOptionActivityDetail"
     ],
     "xbrltype": "perShareItemType"
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriod": {
     "auth_ref": [
      "r291"
     ],
     "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/2018-01-31",
     "presentation": [
      "http://cognex.com/role/StockBasedCompensationExpenseSummaryOfStockOptionActivityDetail"
     ],
     "xbrltype": "sharesItemType"
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue": {
     "auth_ref": [
      "r300"
     ],
     "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/2018-01-31",
     "presentation": [
      "http://cognex.com/role/StockBasedCompensationExpenseAdditionalInformationDetail"
     ],
     "xbrltype": "perShareItemType"
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue": {
     "auth_ref": [
      "r312"
     ],
     "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/2018-01-31",
     "presentation": [
      "http://cognex.com/role/StockBasedCompensationExpenseSummaryOfStockOptionActivityDetail"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber": {
     "auth_ref": [
      "r289",
      "r312"
     ],
     "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/2018-01-31",
     "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/2018-01-31",
     "presentation": [
      "http://cognex.com/role/StockBasedCompensationExpenseSummaryOfStockOptionActivityDetail"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice": {
     "auth_ref": [
      "r288"
     ],
     "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/2018-01-31",
     "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]"
       }
      }
     },
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward",
     "nsuri": "http://fasb.org/us-gaap/2018-01-31",
     "presentation": [
      "http://cognex.com/role/StockBasedCompensationExpenseSummaryOfStockOptionActivityDetail"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableNumber": {
     "auth_ref": [
      "r303"
     ],
     "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/2018-01-31",
     "presentation": [
      "http://cognex.com/role/StockBasedCompensationExpenseSummaryOfStockOptionActivityDetail"
     ],
     "xbrltype": "sharesItemType"
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue": {
     "auth_ref": [
      "r301"
     ],
     "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/2018-01-31",
     "presentation": [
      "http://cognex.com/role/StockBasedCompensationExpenseSummaryOfStockOptionActivityDetail"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice": {
     "auth_ref": [
      "r302"
     ],
     "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/2018-01-31",
     "presentation": [
      "http://cognex.com/role/StockBasedCompensationExpenseSummaryOfStockOptionActivityDetail"
     ],
     "xbrltype": "perShareItemType"
    },
    "us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain": {
     "auth_ref": [
      "r280",
      "r284"
     ],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Equity-based compensation award.",
        "label": "Equity Award [Domain]",
        "terseLabel": "Equity Award [Domain]"
       }
      }
     },
     "localname": "ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain",
     "nsuri": "http://fasb.org/us-gaap/2018-01-31",
     "presentation": [
      "http://cognex.com/role/StockBasedCompensationExpenseAdditionalInformationDetail",
      "http://cognex.com/role/StockBasedCompensationExpenseSummaryOfRestrictedStockOptionActivityDetail",
      "http://cognex.com/role/StockBasedCompensationExpenseWeightedAverageAssumptionsUsedInEstimatingFairValuesOfStockOptionsGrantedDetail"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Weighted average price at which option holders acquired shares when converting their stock options into shares.",
        "label": "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/2018-01-31",
     "presentation": [
      "http://cognex.com/role/StockBasedCompensationExpenseSummaryOfStockOptionActivityDetail"
     ],
     "xbrltype": "perShareItemType"
    },
    "us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Weighted average per share amount at which grantees can acquire shares of common stock by exercise of options.",
        "label": "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/2018-01-31",
     "presentation": [
      "http://cognex.com/role/StockBasedCompensationExpenseSummaryOfStockOptionActivityDetail"
     ],
     "xbrltype": "perShareItemType"
    },
    "us-gaap_ShareBasedCompensationOptionAndIncentivePlansPolicy": {
     "auth_ref": [
      "r106",
      "r282",
      "r285"
     ],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Disclosure of accounting policy for stock option and stock incentive plans. This disclosure may include (1) the types of stock option or incentive plans sponsored by the entity (2) the groups that participate in (or are covered by) each plan (3) significant plan provisions and (4) how stock compensation is measured, and the methodologies and significant assumptions used to determine that measurement.",
        "label": "Share-based Compensation, Option and Incentive Plans Policy [Policy Text Block]",
        "terseLabel": "Stock-Based Compensation"
       }
      }
     },
     "localname": "ShareBasedCompensationOptionAndIncentivePlansPolicy",
     "nsuri": "http://fasb.org/us-gaap/2018-01-31",
     "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 Compensation, Shares Authorized under Stock Option Plans, Exercise Price Range [Line Items]",
        "terseLabel": "Shares"
       }
      }
     },
     "localname": "ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeLineItems",
     "nsuri": "http://fasb.org/us-gaap/2018-01-31",
     "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/2018-01-31",
     "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/2018-01-31",
     "presentation": [
      "http://cognex.com/role/ShareholdersEquityAdditionalInformationDetail"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1": {
     "auth_ref": [
      "r305",
      "r314"
     ],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Expected term of share-based compensation awards, 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, Fair Value Assumptions, Expected Term",
        "terseLabel": "Expected term (in years)"
       }
      }
     },
     "localname": "SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1",
     "nsuri": "http://fasb.org/us-gaap/2018-01-31",
     "presentation": [
      "http://cognex.com/role/StockBasedCompensationExpenseWeightedAverageAssumptionsUsedInEstimatingFairValuesOfStockOptionsGrantedDetail"
     ],
     "xbrltype": "durationItemType"
    },
    "us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1": {
     "auth_ref": [
      "r312"
     ],
     "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/2018-01-31",
     "presentation": [
      "http://cognex.com/role/StockBasedCompensationExpenseSummaryOfStockOptionActivityDetail"
     ],
     "xbrltype": "durationItemType"
    },
    "us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2": {
     "auth_ref": [
      "r302"
     ],
     "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/2018-01-31",
     "presentation": [
      "http://cognex.com/role/StockBasedCompensationExpenseSummaryOfStockOptionActivityDetail"
     ],
     "xbrltype": "durationItemType"
    },
    "us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1": {
     "auth_ref": [
      "r302"
     ],
     "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/2018-01-31",
     "presentation": [
      "http://cognex.com/role/StockBasedCompensationExpenseSummaryOfStockOptionActivityDetail"
     ],
     "xbrltype": "durationItemType"
    },
    "us-gaap_ShortTermInvestmentsMember": {
     "auth_ref": [
      "r486",
      "r487",
      "r499",
      "r511"
     ],
     "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/2018-01-31",
     "presentation": [
      "http://cognex.com/role/CashCashEquivalentsAndInvestmentsAmortizedCostToFairValueDetail"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_SignificantAccountingPoliciesTextBlock": {
     "auth_ref": [
      "r120"
     ],
     "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/2018-01-31",
     "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/2018-01-31",
     "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_StandardAndExtendedProductWarrantyAccrualForeignCurrencyTranslationGainLoss": {
     "auth_ref": [
      "r244"
     ],
     "crdr": "credit",
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Amount of foreign currency translation gain (loss) which decreases (increases) the standard and extended product warranty accrual.",
        "label": "Standard and Extended Product Warranty Accrual, Foreign Currency Translation Gain (Loss)",
        "terseLabel": "Foreign exchange rate changes"
       }
      }
     },
     "localname": "StandardAndExtendedProductWarrantyAccrualForeignCurrencyTranslationGainLoss",
     "nsuri": "http://fasb.org/us-gaap/2018-01-31",
     "presentation": [
      "http://cognex.com/role/AccruedExpensesChangesInWarrantyObligationsDetail"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_StandardProductWarrantyPolicy": {
     "auth_ref": [
      "r106",
      "r243"
     ],
     "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/2018-01-31",
     "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/2018-01-31",
     "presentation": [
      "http://cognex.com/role/TaxesAdditionalInformationDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_StatementClassOfStockAxis": {
     "auth_ref": [
      "r17",
      "r18",
      "r19",
      "r251"
     ],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Information by the different classes of stock of the entity.",
        "label": "Class of Stock [Axis]",
        "terseLabel": "Class of Stock [Axis]"
       }
      }
     },
     "localname": "StatementClassOfStockAxis",
     "nsuri": "http://fasb.org/us-gaap/2018-01-31",
     "presentation": [
      "http://cognex.com/role/ShareholdersEquityAdditionalInformationDetail"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_StatementEquityComponentsAxis": {
     "auth_ref": [
      "r50",
      "r251"
     ],
     "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/2018-01-31",
     "presentation": [
      "http://cognex.com/role/ConsolidatedStatementsOfShareholdersEquity",
      "http://cognex.com/role/DerivativeInstrumentsChangesInAociDetails",
      "http://cognex.com/role/SummaryOfSignificantAccountingPoliciesComprehensiveIncomeLossDetails"
     ],
     "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/2018-01-31",
     "presentation": [
      "http://cognex.com/role/ConsolidatedStatementsOfShareholdersEquity"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_StatementOfCashFlowsAbstract": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "label": "Statement of Cash Flows [Abstract]"
       }
      }
     },
     "localname": "StatementOfCashFlowsAbstract",
     "nsuri": "http://fasb.org/us-gaap/2018-01-31",
     "xbrltype": "stringItemType"
    },
    "us-gaap_StatementOfFinancialPositionAbstract": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "label": "Statement of Financial Position [Abstract]"
       }
      }
     },
     "localname": "StatementOfFinancialPositionAbstract",
     "nsuri": "http://fasb.org/us-gaap/2018-01-31",
     "xbrltype": "stringItemType"
    },
    "us-gaap_StatementOfIncomeAndComprehensiveIncomeAbstract": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "label": "Statement of Comprehensive Income [Abstract]"
       }
      }
     },
     "localname": "StatementOfIncomeAndComprehensiveIncomeAbstract",
     "nsuri": "http://fasb.org/us-gaap/2018-01-31",
     "xbrltype": "stringItemType"
    },
    "us-gaap_StatementOfStockholdersEquityAbstract": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "label": "Statement of Stockholders' Equity [Abstract]"
       }
      }
     },
     "localname": "StatementOfStockholdersEquityAbstract",
     "nsuri": "http://fasb.org/us-gaap/2018-01-31",
     "xbrltype": "stringItemType"
    },
    "us-gaap_StatementScenarioAxis": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Information by scenario to be reported. Scenarios distinguish among different kinds of business reporting facts, as for example actual versus budgeted figures.",
        "label": "Scenario [Axis]",
        "terseLabel": "Scenario [Axis]"
       }
      }
     },
     "localname": "StatementScenarioAxis",
     "nsuri": "http://fasb.org/us-gaap/2018-01-31",
     "presentation": [
      "http://cognex.com/role/NewPronouncementsDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_StatementTable": {
     "auth_ref": [],
     "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/2018-01-31",
     "presentation": [
      "http://cognex.com/role/ConsolidatedStatementsOfShareholdersEquity"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised": {
     "auth_ref": [
      "r18",
      "r19",
      "r251",
      "r258",
      "r292"
     ],
     "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/2018-01-31",
     "presentation": [
      "http://cognex.com/role/ConsolidatedStatementsOfShareholdersEquity",
      "http://cognex.com/role/StockBasedCompensationExpenseSummaryOfStockOptionActivityDetail"
     ],
     "xbrltype": "sharesItemType"
    },
    "us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised": {
     "auth_ref": [
      "r50",
      "r251",
      "r258"
     ],
     "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/2018-01-31",
     "presentation": [
      "http://cognex.com/role/ConsolidatedStatementsOfShareholdersEquity"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_StockOptionPlanExpense": {
     "auth_ref": [
      "r99"
     ],
     "calculation": {
      "http://cognex.com/role/ConsolidatedStatementsOfCashFlows": {
       "order": 3.0,
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-US": {
       "role": {
        "documentation": "The noncash expense that accounts for the value of stock or unit options distributed to employees as compensation.",
        "label": "Stock or Unit Option Plan Expense",
        "terseLabel": "Stock-based compensation expense"
       }
      }
     },
     "localname": "StockOptionPlanExpense",
     "nsuri": "http://fasb.org/us-gaap/2018-01-31",
     "presentation": [
      "http://cognex.com/role/ConsolidatedStatementsOfCashFlows"
     ],
     "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/2018-01-31",
     "presentation": [
      "http://cognex.com/role/ShareholdersEquityAdditionalInformationDetail"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_StockRepurchasedDuringPeriodShares": {
     "auth_ref": [
      "r18",
      "r19",
      "r251",
      "r258"
     ],
     "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",
        "verboseLabel": "Repurchase of common stock, shares"
       }
      }
     },
     "localname": "StockRepurchasedDuringPeriodShares",
     "nsuri": "http://fasb.org/us-gaap/2018-01-31",
     "presentation": [
      "http://cognex.com/role/ConsolidatedStatementsOfShareholdersEquity",
      "http://cognex.com/role/ShareholdersEquityAdditionalInformationDetail"
     ],
     "xbrltype": "sharesItemType"
    },
    "us-gaap_StockRepurchasedDuringPeriodValue": {
     "auth_ref": [
      "r18",
      "r19",
      "r251",
      "r258"
     ],
     "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",
        "verboseLabel": "Repurchase of common stock"
       }
      }
     },
     "localname": "StockRepurchasedDuringPeriodValue",
     "nsuri": "http://fasb.org/us-gaap/2018-01-31",
     "presentation": [
      "http://cognex.com/role/ConsolidatedStatementsOfShareholdersEquity",
      "http://cognex.com/role/ShareholdersEquityAdditionalInformationDetail"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_StockholdersEquity": {
     "auth_ref": [
      "r19",
      "r23",
      "r24",
      "r172"
     ],
     "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/2018-01-31",
     "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/2018-01-31",
     "presentation": [
      "http://cognex.com/role/ConsolidatedBalanceSheets"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_StockholdersEquityNoteDisclosureTextBlock": {
     "auth_ref": [
      "r261"
     ],
     "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/2018-01-31",
     "presentation": [
      "http://cognex.com/role/ShareholdersEquity"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_StockholdersEquityNoteStockSplitConversionRatio1": {
     "auth_ref": [
      "r259"
     ],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Ratio applied to the conversion of stock split, for example but not limited to, one share converted to two or two shares converted to one.",
        "label": "Stockholders' Equity Note, Stock Split, Conversion Ratio",
        "terseLabel": "Stock split"
       }
      }
     },
     "localname": "StockholdersEquityNoteStockSplitConversionRatio1",
     "nsuri": "http://fasb.org/us-gaap/2018-01-31",
     "presentation": [
      "http://cognex.com/role/ConsolidatedStatementsOfOperationsParenthetical",
      "http://cognex.com/role/ConsolidatedStatementsOfShareholdersEquityParenthetical",
      "http://cognex.com/role/SelectedQuarterlyFinancialDataUnauditedDetails",
      "http://cognex.com/role/ShareholdersEquityAdditionalInformationDetail"
     ],
     "xbrltype": "pureItemType"
    },
    "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/2018-01-31",
     "presentation": [
      "http://cognex.com/role/SubsequentEventsDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_SubsequentEventMember": {
     "auth_ref": [],
     "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/2018-01-31",
     "presentation": [
      "http://cognex.com/role/SubsequentEventsDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_SubsequentEventTable": {
     "auth_ref": [
      "r472"
     ],
     "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/2018-01-31",
     "presentation": [
      "http://cognex.com/role/SubsequentEventsDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_SubsequentEventTypeAxis": {
     "auth_ref": [
      "r472"
     ],
     "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/2018-01-31",
     "presentation": [
      "http://cognex.com/role/SubsequentEventsDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_SubsequentEventTypeDomain": {
     "auth_ref": [
      "r472"
     ],
     "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/2018-01-31",
     "presentation": [
      "http://cognex.com/role/SubsequentEventsDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_SubsequentEventsAbstract": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "label": "Subsequent Events [Abstract]"
       }
      }
     },
     "localname": "SubsequentEventsAbstract",
     "nsuri": "http://fasb.org/us-gaap/2018-01-31",
     "xbrltype": "stringItemType"
    },
    "us-gaap_SubsequentEventsTextBlock": {
     "auth_ref": [
      "r473"
     ],
     "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/2018-01-31",
     "presentation": [
      "http://cognex.com/role/SubsequentEvents"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_SummaryOfIncomeTaxContingenciesTextBlock": {
     "auth_ref": [
      "r334",
      "r340",
      "r342"
     ],
     "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/2018-01-31",
     "presentation": [
      "http://cognex.com/role/TaxesTables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_TaxCreditCarryforwardAxis": {
     "auth_ref": [
      "r349"
     ],
     "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/2018-01-31",
     "presentation": [
      "http://cognex.com/role/TaxesAdditionalInformationDetails"
     ],
     "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/2018-01-31",
     "presentation": [
      "http://cognex.com/role/TaxesAdditionalInformationDetails",
      "http://cognex.com/role/TaxesConstituentsOfDeferredTaxAssetsDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_TaxCreditCarryforwardNameDomain": {
     "auth_ref": [
      "r349"
     ],
     "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/2018-01-31",
     "presentation": [
      "http://cognex.com/role/TaxesAdditionalInformationDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_TaxCreditCarryforwardTable": {
     "auth_ref": [
      "r349"
     ],
     "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/2018-01-31",
     "presentation": [
      "http://cognex.com/role/TaxesAdditionalInformationDetails",
      "http://cognex.com/role/TaxesConstituentsOfDeferredTaxAssetsDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_TechnologyBasedIntangibleAssetsMember": {
     "auth_ref": [
      "r369"
     ],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Technology-based intangible assets, including, but not limited to, patented technology, unpatented technology, and developed technology rights.",
        "label": "Technology-Based Intangible Assets [Member]",
        "terseLabel": "Technology-Based Intangible Assets [Member]",
        "verboseLabel": "Completed Technologies [Member]"
       }
      }
     },
     "localname": "TechnologyBasedIntangibleAssetsMember",
     "nsuri": "http://fasb.org/us-gaap/2018-01-31",
     "presentation": [
      "http://cognex.com/role/AcquisitionsGviVenturesIncDetails",
      "http://cognex.com/role/AcquisitionsGviVenturesIncPurchasePriceAllocationDetails",
      "http://cognex.com/role/AcquisitionsVidiSystemsSADetails",
      "http://cognex.com/role/AcquisitionsVidiSystemsSAPurchasePriceAllocationDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_TitleOfIndividualAxis": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Information by title of individual or nature of relationship to individual or group of individuals.",
        "label": "Title of Individual [Axis]",
        "terseLabel": "Title of Individual [Axis]"
       }
      }
     },
     "localname": "TitleOfIndividualAxis",
     "nsuri": "http://fasb.org/us-gaap/2018-01-31",
     "presentation": [
      "http://cognex.com/role/EmployeeSavingsPlanAdditionalInformationDetail"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_TitleOfIndividualWithRelationshipToEntityDomain": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Title of individual, or nature of relationship to individual or group of individuals.",
        "label": "Relationship to Entity [Domain]",
        "terseLabel": "Relationship to Entity [Domain]"
       }
      }
     },
     "localname": "TitleOfIndividualWithRelationshipToEntityDomain",
     "nsuri": "http://fasb.org/us-gaap/2018-01-31",
     "presentation": [
      "http://cognex.com/role/EmployeeSavingsPlanAdditionalInformationDetail"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_TrademarksMember": {
     "auth_ref": [
      "r370"
     ],
     "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/2018-01-31",
     "presentation": [
      "http://cognex.com/role/AcquisitionsSualabCoLtdNarrativeDetails",
      "http://cognex.com/role/AcquisitionsSualabCoLtdPurchasePriceAllocationDetails",
      "http://cognex.com/role/IntangibleAssetsAmortizedIntangibleAssetsDetail",
      "http://cognex.com/role/SummaryOfSignificantAccountingPoliciesIntangibleAssetsDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain": {
     "auth_ref": [
      "r479"
     ],
     "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/2018-01-31",
     "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_TypeOfAdoptionMember": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Adoption and early adoption of sources of change to generally accepted accounting principles (GAAP) in the United States. The FASB released the FASB Accounting Standards Codification as the authoritative source of literature effective for interim and annual periods ending after September 15, 2009. As part of the Codification process, the FASB issues Accounting Standards Updates to amend the Codification but otherwise the Accounting Standards Updates are not authoritative in their own right. All previous accounting standards (such as FASB Statements of Financial Accounting Standards, FASB Interpretations, FASB Staff Positions, Emerging Issues Task Force Consensuses, other pronouncements of the FASB or other designated bodies, or other forms of GAAP are considered accounting pronouncements) were superseded upon the adoption of the Codification. For an interim period, references to the superseded standards are included to help users transition from the previous accounting hierarchy and will be removed from future versions of this taxonomy.",
        "label": "Type of Adoption [Domain]",
        "terseLabel": "Type of Adoption [Domain]"
       }
      }
     },
     "localname": "TypeOfAdoptionMember",
     "nsuri": "http://fasb.org/us-gaap/2018-01-31",
     "presentation": [
      "http://cognex.com/role/LeasesDetails",
      "http://cognex.com/role/NewPronouncementsDetails",
      "http://cognex.com/role/RevenueRecognitionBalanceSheetImpactDetails",
      "http://cognex.com/role/RevenueRecognitionStatementOfOperationsImpactDetails",
      "http://cognex.com/role/TaxesAdditionalInformationDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_USTreasuryBillSecuritiesMember": {
     "auth_ref": [
      "r491"
     ],
     "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/2018-01-31",
     "presentation": [
      "http://cognex.com/role/CashCashEquivalentsAndInvestmentsComponentsOfCashCashEquivalentsAndInvestmentsDetail"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_USTreasurySecuritiesMember": {
     "auth_ref": [
      "r274",
      "r276",
      "r488"
     ],
     "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/2018-01-31",
     "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/2018-01-31",
     "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/2018-01-31",
     "presentation": [
      "http://cognex.com/role/ScheduleIiValuationAndQualifyingAccountsDetail"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_UnrecognizedTaxBenefits": {
     "auth_ref": [
      "r323",
      "r336"
     ],
     "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",
        "terseLabel": "Reserve for tax uncertainties"
       }
      }
     },
     "localname": "UnrecognizedTaxBenefits",
     "nsuri": "http://fasb.org/us-gaap/2018-01-31",
     "presentation": [
      "http://cognex.com/role/TaxesAdditionalInformationDetails",
      "http://cognex.com/role/TaxesChangesInReserveForIncomeTaxesExcludingInterestAndPenaltiesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestAccrued": {
     "auth_ref": [
      "r333"
     ],
     "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/2018-01-31",
     "presentation": [
      "http://cognex.com/role/TaxesAdditionalInformationDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestExpense": {
     "auth_ref": [
      "r333"
     ],
     "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/2018-01-31",
     "presentation": [
      "http://cognex.com/role/TaxesAdditionalInformationDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_UnrecognizedTaxBenefitsIncreasesResultingFromCurrentPeriodTaxPositions": {
     "auth_ref": [
      "r338"
     ],
     "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/2018-01-31",
     "presentation": [
      "http://cognex.com/role/TaxesChangesInReserveForIncomeTaxesExcludingInterestAndPenaltiesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_UnrecognizedTaxBenefitsIncreasesResultingFromPriorPeriodTaxPositions": {
     "auth_ref": [
      "r337"
     ],
     "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/2018-01-31",
     "presentation": [
      "http://cognex.com/role/TaxesChangesInReserveForIncomeTaxesExcludingInterestAndPenaltiesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_UnrecognizedTaxBenefitsPeriodIncreaseDecrease": {
     "auth_ref": [
      "r336"
     ],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Amount of increase (decrease) in unrecognized tax benefits attributable to uncertain tax positions taken in tax returns.",
        "label": "Unrecognized Tax Benefits, Period Increase (Decrease)",
        "terseLabel": "Gross amounts of increases in unrecognized tax benefits as a result of tax positions taken in prior periods"
       }
      }
     },
     "localname": "UnrecognizedTaxBenefitsPeriodIncreaseDecrease",
     "nsuri": "http://fasb.org/us-gaap/2018-01-31",
     "presentation": [
      "http://cognex.com/role/TaxesChangesInReserveForIncomeTaxesExcludingInterestAndPenaltiesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_UnrecognizedTaxBenefitsReductionsResultingFromLapseOfApplicableStatuteOfLimitations": {
     "auth_ref": [
      "r339"
     ],
     "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/2018-01-31",
     "presentation": [
      "http://cognex.com/role/TaxesChangesInReserveForIncomeTaxesExcludingInterestAndPenaltiesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_UseOfEstimates": {
     "auth_ref": [
      "r152",
      "r153",
      "r154",
      "r155",
      "r161",
      "r162",
      "r163"
     ],
     "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/2018-01-31",
     "presentation": [
      "http://cognex.com/role/SummaryOfSignificantAccountingPoliciesPolicies"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_ValuationAllowanceByDeferredTaxAssetAxis": {
     "auth_ref": [
      "r345"
     ],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Information by type of deferred tax consequences attributable to deductible temporary differences.",
        "label": "Valuation Allowance by Deferred Tax Asset [Axis]",
        "terseLabel": "Valuation Allowance by Deferred Tax Asset [Axis]"
       }
      }
     },
     "localname": "ValuationAllowanceByDeferredTaxAssetAxis",
     "nsuri": "http://fasb.org/us-gaap/2018-01-31",
     "presentation": [
      "http://cognex.com/role/TaxesConstituentsOfDeferredTaxAssetsDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_ValuationAllowanceOfDeferredTaxAssetsMember": {
     "auth_ref": [
      "r118"
     ],
     "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/2018-01-31",
     "presentation": [
      "http://cognex.com/role/ScheduleIiValuationAndQualifyingAccountsDetail",
      "http://cognex.com/role/TaxesConstituentsOfDeferredTaxAssetsDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_ValuationAllowancesAndReservesAdjustments": {
     "auth_ref": [
      "r119"
     ],
     "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/2018-01-31",
     "presentation": [
      "http://cognex.com/role/ScheduleIiValuationAndQualifyingAccountsDetail"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_ValuationAllowancesAndReservesBalance": {
     "auth_ref": [
      "r119"
     ],
     "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 at End of Period",
        "periodStartLabel": "Balance at Beginning of Period",
        "terseLabel": "SEC Schedule, 12-09, Valuation Allowances and Reserves, Amount"
       }
      }
     },
     "localname": "ValuationAllowancesAndReservesBalance",
     "nsuri": "http://fasb.org/us-gaap/2018-01-31",
     "presentation": [
      "http://cognex.com/role/ConsolidatedBalanceSheetsParenthetical",
      "http://cognex.com/role/ScheduleIiValuationAndQualifyingAccountsDetail"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_ValuationAllowancesAndReservesChargedToCostAndExpense": {
     "auth_ref": [
      "r119"
     ],
     "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 to Costs and Expenses"
       }
      }
     },
     "localname": "ValuationAllowancesAndReservesChargedToCostAndExpense",
     "nsuri": "http://fasb.org/us-gaap/2018-01-31",
     "presentation": [
      "http://cognex.com/role/ScheduleIiValuationAndQualifyingAccountsDetail"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_ValuationAllowancesAndReservesDeductions": {
     "auth_ref": [
      "r119"
     ],
     "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/2018-01-31",
     "presentation": [
      "http://cognex.com/role/ScheduleIiValuationAndQualifyingAccountsDetail"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_ValuationAllowancesAndReservesDomain": {
     "auth_ref": [],
     "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/2018-01-31",
     "presentation": [
      "http://cognex.com/role/ScheduleIiValuationAndQualifyingAccountsDetail"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_ValuationAllowancesAndReservesTypeAxis": {
     "auth_ref": [
      "r119"
     ],
     "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/2018-01-31",
     "presentation": [
      "http://cognex.com/role/ScheduleIiValuationAndQualifyingAccountsDetail"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_WeightedAverageNumberDilutedSharesOutstandingAdjustment": {
     "auth_ref": [
      "r136"
     ],
     "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 Diluted Shares Outstanding Adjustment",
        "terseLabel": "Effect of dilutive stock options"
       }
      }
     },
     "localname": "WeightedAverageNumberDilutedSharesOutstandingAdjustment",
     "nsuri": "http://fasb.org/us-gaap/2018-01-31",
     "presentation": [
      "http://cognex.com/role/WeightedAverageSharesCalculationOfWeightedAverageSharesDetail"
     ],
     "xbrltype": "sharesItemType"
    },
    "us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding": {
     "auth_ref": [
      "r132",
      "r136"
     ],
     "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/2018-01-31",
     "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 (1):"
       }
      }
     },
     "localname": "WeightedAverageNumberOfSharesOutstandingAbstract",
     "nsuri": "http://fasb.org/us-gaap/2018-01-31",
     "presentation": [
      "http://cognex.com/role/ConsolidatedStatementsOfOperations"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_WeightedAverageNumberOfSharesOutstandingBasic": {
     "auth_ref": [
      "r131",
      "r136"
     ],
     "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/2018-01-31",
     "presentation": [
      "http://cognex.com/role/ConsolidatedStatementsOfOperations",
      "http://cognex.com/role/WeightedAverageSharesCalculationOfWeightedAverageSharesDetail"
     ],
     "xbrltype": "sharesItemType"
    }
   },
   "unitCount": 14
  }
 },
 "std_ref": {
  "r0": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "5C",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(a)(2)",
   "Topic": "205",
   "URI": "http://asc.fasb.org/extlink&oid=109222650&loc=SL51721675-107760"
  },
  "r1": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "210",
   "URI": "http://asc.fasb.org/extlink&oid=82887183&loc=d3e6676-107765"
  },
  "r10": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02(13))",
   "Topic": "210",
   "URI": "http://asc.fasb.org/extlink&oid=6877327&loc=d3e13212-122682"
  },
  "r100": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "28",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "230",
   "URI": "http://asc.fasb.org/extlink&oid=109223946&loc=d3e3602-108585"
  },
  "r101": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "230",
   "URI": "http://asc.fasb.org/extlink&oid=109223946&loc=d3e3044-108585"
  },
  "r102": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "230",
   "URI": "http://asc.fasb.org/extlink&oid=98513485&loc=d3e4273-108586"
  },
  "r103": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "230",
   "URI": "http://asc.fasb.org/extlink&oid=98513485&loc=d3e4297-108586"
  },
  "r104": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "230",
   "URI": "http://asc.fasb.org/extlink&oid=98513485&loc=d3e4304-108586"
  },
  "r105": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "235",
   "URI": "http://asc.fasb.org/extlink&oid=84158767&loc=d3e18726-107790"
  },
  "r106": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "235",
   "URI": "http://asc.fasb.org/extlink&oid=84158767&loc=d3e18780-107790"
  },
  "r107": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "235",
   "URI": "http://asc.fasb.org/extlink&oid=84158767&loc=d3e18823-107790"
  },
  "r108": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.4-08(h)(1))",
   "Topic": "235",
   "URI": "http://asc.fasb.org/extlink&oid=26873400&loc=d3e23780-122690"
  },
  "r109": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.4-08(h))",
   "Topic": "235",
   "URI": "http://asc.fasb.org/extlink&oid=26873400&loc=d3e23780-122690"
  },
  "r11": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02(14))",
   "Topic": "210",
   "URI": "http://asc.fasb.org/extlink&oid=6877327&loc=d3e13212-122682"
  },
  "r110": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.4-08.(d),(e))",
   "Topic": "235",
   "URI": "http://asc.fasb.org/extlink&oid=26873400&loc=d3e23780-122690"
  },
  "r111": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.4-08.(h)(1)(i))",
   "Topic": "235",
   "URI": "http://asc.fasb.org/extlink&oid=26873400&loc=d3e23780-122690"
  },
  "r112": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.4-08.(h)(1))",
   "Topic": "235",
   "URI": "http://asc.fasb.org/extlink&oid=26873400&loc=d3e23780-122690"
  },
  "r113": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.4-08.(h)(2))",
   "Topic": "235",
   "URI": "http://asc.fasb.org/extlink&oid=26873400&loc=d3e23780-122690"
  },
  "r114": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.4-08.(h))",
   "Topic": "235",
   "URI": "http://asc.fasb.org/extlink&oid=26873400&loc=d3e23780-122690"
  },
  "r115": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.4-08.(n)(2))",
   "Topic": "235",
   "URI": "http://asc.fasb.org/extlink&oid=26873400&loc=d3e23780-122690"
  },
  "r116": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.4-08.(n))",
   "Topic": "235",
   "URI": "http://asc.fasb.org/extlink&oid=26873400&loc=d3e23780-122690"
  },
  "r117": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.12-04(a))",
   "Topic": "235",
   "URI": "http://asc.fasb.org/extlink&oid=26873400&loc=d3e24072-122690"
  },
  "r118": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.12-09(ColumnA))",
   "Topic": "235",
   "URI": "http://asc.fasb.org/extlink&oid=26873400&loc=d3e24092-122690"
  },
  "r119": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.12-09)",
   "Topic": "235",
   "URI": "http://asc.fasb.org/extlink&oid=26873400&loc=d3e24092-122690"
  },
  "r12": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02(20))",
   "Topic": "210",
   "URI": "http://asc.fasb.org/extlink&oid=6877327&loc=d3e13212-122682"
  },
  "r120": {
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "Topic": "235",
   "URI": "http://asc.fasb.org/topic&trid=2122369"
  },
  "r121": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "18",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "250",
   "URI": "http://asc.fasb.org/extlink&oid=115929471&loc=d3e21843-107793"
  },
  "r122": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "250",
   "URI": "http://asc.fasb.org/extlink&oid=109234566&loc=d3e22499-107794"
  },
  "r123": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "11",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "250",
   "URI": "http://asc.fasb.org/extlink&oid=109234566&loc=d3e22694-107794"
  },
  "r124": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "250",
   "URI": "http://asc.fasb.org/extlink&oid=109234566&loc=d3e22580-107794"
  },
  "r125": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "250",
   "URI": "http://asc.fasb.org/extlink&oid=109234566&loc=d3e22583-107794"
  },
  "r126": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "250",
   "URI": "http://asc.fasb.org/extlink&oid=109234566&loc=d3e22595-107794"
  },
  "r127": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "7",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "250",
   "URI": "http://asc.fasb.org/extlink&oid=109234566&loc=d3e22644-107794"
  },
  "r128": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "8",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "250",
   "URI": "http://asc.fasb.org/extlink&oid=109234566&loc=d3e22658-107794"
  },
  "r129": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "9",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "250",
   "URI": "http://asc.fasb.org/extlink&oid=109234566&loc=d3e22663-107794"
  },
  "r13": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02(24))",
   "Topic": "210",
   "URI": "http://asc.fasb.org/extlink&oid=6877327&loc=d3e13212-122682"
  },
  "r130": {
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "Topic": "250",
   "URI": "http://asc.fasb.org/topic&trid=2122394"
  },
  "r131": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "10",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "260",
   "URI": "http://asc.fasb.org/extlink&oid=109260490&loc=d3e1448-109256"
  },
  "r132": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "16",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "260",
   "URI": "http://asc.fasb.org/extlink&oid=109260490&loc=d3e1505-109256"
  },
  "r133": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "260",
   "URI": "http://asc.fasb.org/extlink&oid=109260490&loc=d3e1252-109256"
  },
  "r134": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "60B",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Subparagraph": "(d)",
   "Topic": "260",
   "URI": "http://asc.fasb.org/extlink&oid=109260490&loc=SL5780133-109256"
  },
  "r135": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "7",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "260",
   "URI": "http://asc.fasb.org/extlink&oid=109260490&loc=d3e1337-109256"
  },
  "r136": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "260",
   "URI": "http://asc.fasb.org/extlink&oid=6371337&loc=d3e3550-109257"
  },
  "r137": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)",
   "Topic": "260",
   "URI": "http://asc.fasb.org/extlink&oid=6371337&loc=d3e3550-109257"
  },
  "r138": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "260",
   "URI": "http://asc.fasb.org/extlink&oid=6371337&loc=d3e3550-109257"
  },
  "r139": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "260",
   "URI": "http://asc.fasb.org/extlink&oid=6371337&loc=d3e3630-109257"
  },
  "r14": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02(25))",
   "Topic": "210",
   "URI": "http://asc.fasb.org/extlink&oid=6877327&loc=d3e13212-122682"
  },
  "r140": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "52",
   "Publisher": "FASB",
   "Section": "55",
   "SubTopic": "10",
   "Topic": "260",
   "URI": "http://asc.fasb.org/extlink&oid=109256448&loc=d3e4984-109258"
  },
  "r141": {
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "Topic": "260",
   "URI": "http://asc.fasb.org/topic&trid=2144383"
  },
  "r142": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "12",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "270",
   "URI": "http://asc.fasb.org/extlink&oid=109236672&loc=d3e725-108305"
  },
  "r143": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "13",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "270",
   "URI": "http://asc.fasb.org/extlink&oid=109236672&loc=d3e765-108305"
  },
  "r144": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "14",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "270",
   "URI": "http://asc.fasb.org/extlink&oid=109236672&loc=d3e777-108305"
  },
  "r145": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "6",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "270",
   "URI": "http://asc.fasb.org/extlink&oid=109236672&loc=d3e543-108305"
  },
  "r146": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "270",
   "URI": "http://asc.fasb.org/extlink&oid=109225645&loc=d3e1280-108306"
  },
  "r147": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "6A",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "270",
   "URI": "http://asc.fasb.org/extlink&oid=109225645&loc=SL77927221-108306"
  },
  "r148": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.10-01(a)(5))",
   "Topic": "270",
   "URI": "http://asc.fasb.org/extlink&oid=27015980&loc=d3e46468-122699"
  },
  "r149": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.10-01.(a)(5))",
   "Topic": "270",
   "URI": "http://asc.fasb.org/extlink&oid=27015980&loc=d3e46468-122699"
  },
  "r15": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02(26)(a))",
   "Topic": "210",
   "URI": "http://asc.fasb.org/extlink&oid=6877327&loc=d3e13212-122682"
  },
  "r150": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.10-01.(b)(6))",
   "Topic": "270",
   "URI": "http://asc.fasb.org/extlink&oid=27015980&loc=d3e46468-122699"
  },
  "r151": {
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "Topic": "270",
   "URI": "http://asc.fasb.org/topic&trid=2126967"
  },
  "r152": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "275",
   "URI": "http://asc.fasb.org/extlink&oid=99393423&loc=d3e5967-108592"
  },
  "r153": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)",
   "Topic": "275",
   "URI": "http://asc.fasb.org/extlink&oid=99393423&loc=d3e5967-108592"
  },
  "r154": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "11",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "275",
   "URI": "http://asc.fasb.org/extlink&oid=99393423&loc=d3e6161-108592"
  },
  "r155": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "12",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "275",
   "URI": "http://asc.fasb.org/extlink&oid=99393423&loc=d3e6191-108592"
  },
  "r156": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "16",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "275",
   "URI": "http://asc.fasb.org/extlink&oid=99393423&loc=d3e6327-108592"
  },
  "r157": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "18",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "275",
   "URI": "http://asc.fasb.org/extlink&oid=99393423&loc=d3e6351-108592"
  },
  "r158": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "18",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "275",
   "URI": "http://asc.fasb.org/extlink&oid=99393423&loc=d3e6351-108592"
  },
  "r159": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "20",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "275",
   "URI": "http://asc.fasb.org/extlink&oid=99393423&loc=d3e6404-108592"
  },
  "r16": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02(26)(b))",
   "Topic": "210",
   "URI": "http://asc.fasb.org/extlink&oid=6877327&loc=d3e13212-122682"
  },
  "r160": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "21",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "275",
   "URI": "http://asc.fasb.org/extlink&oid=99393423&loc=d3e6442-108592"
  },
  "r161": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "275",
   "URI": "http://asc.fasb.org/extlink&oid=99393423&loc=d3e6061-108592"
  },
  "r162": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "8",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "275",
   "URI": "http://asc.fasb.org/extlink&oid=99393423&loc=d3e6132-108592"
  },
  "r163": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "9",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "275",
   "URI": "http://asc.fasb.org/extlink&oid=99393423&loc=d3e6143-108592"
  },
  "r164": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "22",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(h)",
   "Topic": "280",
   "URI": "http://asc.fasb.org/extlink&oid=115929826&loc=d3e8736-108599"
  },
  "r165": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "22",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "280",
   "URI": "http://asc.fasb.org/extlink&oid=115929826&loc=d3e8736-108599"
  },
  "r166": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "40",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "280",
   "URI": "http://asc.fasb.org/extlink&oid=115929826&loc=d3e9031-108599"
  },
  "r167": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "41",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "280",
   "URI": "http://asc.fasb.org/extlink&oid=115929826&loc=d3e9038-108599"
  },
  "r168": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "41",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "280",
   "URI": "http://asc.fasb.org/extlink&oid=115929826&loc=d3e9038-108599"
  },
  "r169": {
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "Topic": "280",
   "URI": "http://asc.fasb.org/topic&trid=2134510"
  },
  "r17": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02(27))",
   "Topic": "210",
   "URI": "http://asc.fasb.org/extlink&oid=6877327&loc=d3e13212-122682"
  },
  "r170": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "05",
   "SubTopic": "10",
   "Topic": "305",
   "URI": "http://asc.fasb.org/extlink&oid=6375392&loc=d3e26790-107797"
  },
  "r171": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "310",
   "URI": "http://asc.fasb.org/extlink&oid=84173941&loc=d3e4975-111524"
  },
  "r172": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SAB Topic 4.E)",
   "Topic": "310",
   "URI": "http://asc.fasb.org/extlink&oid=27010918&loc=d3e74512-122707"
  },
  "r173": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Topic": "310",
   "URI": "http://asc.fasb.org/extlink&oid=84159169&loc=d3e10133-111534"
  },
  "r174": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "320",
   "URI": "http://asc.fasb.org/extlink&oid=109979856&loc=d3e26610-111562"
  },
  "r175": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "320",
   "URI": "http://asc.fasb.org/extlink&oid=109979856&loc=d3e26626-111562"
  },
  "r176": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "320",
   "URI": "http://asc.fasb.org/extlink&oid=82897076&loc=d3e27161-111563"
  },
  "r177": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(aa)",
   "Topic": "320",
   "URI": "http://asc.fasb.org/extlink&oid=82897076&loc=d3e27161-111563"
  },
  "r178": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "320",
   "URI": "http://asc.fasb.org/extlink&oid=82897076&loc=d3e27161-111563"
  },
  "r179": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(d)",
   "Topic": "320",
   "URI": "http://asc.fasb.org/extlink&oid=82897076&loc=d3e27161-111563"
  },
  "r18": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02(28))",
   "Topic": "210",
   "URI": "http://asc.fasb.org/extlink&oid=6877327&loc=d3e13212-122682"
  },
  "r180": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "320",
   "URI": "http://asc.fasb.org/extlink&oid=82897076&loc=d3e27161-111563"
  },
  "r181": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "320",
   "URI": "http://asc.fasb.org/extlink&oid=82897076&loc=d3e27198-111563"
  },
  "r182": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "320",
   "URI": "http://asc.fasb.org/extlink&oid=82897076&loc=d3e27198-111563"
  },
  "r183": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "5",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "320",
   "URI": "http://asc.fasb.org/extlink&oid=82897076&loc=d3e27232-111563"
  },
  "r184": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "6",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "320",
   "URI": "http://asc.fasb.org/extlink&oid=82897076&loc=d3e27290-111563"
  },
  "r185": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "7",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "320",
   "URI": "http://asc.fasb.org/extlink&oid=82897076&loc=d3e27337-111563"
  },
  "r186": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "8",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "320",
   "URI": "http://asc.fasb.org/extlink&oid=82897076&loc=d3e27340-111563"
  },
  "r187": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "9",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)-(d)",
   "Topic": "320",
   "URI": "http://asc.fasb.org/extlink&oid=82897076&loc=d3e27357-111563"
  },
  "r188": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "9",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(d)",
   "Topic": "320",
   "URI": "http://asc.fasb.org/extlink&oid=82897076&loc=d3e27357-111563"
  },
  "r189": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "8",
   "Publisher": "FASB",
   "Section": "30",
   "SubTopic": "10",
   "Topic": "330",
   "URI": "http://asc.fasb.org/extlink&oid=68048583&loc=d3e3636-108311"
  },
  "r19": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02(29))",
   "Topic": "210",
   "URI": "http://asc.fasb.org/extlink&oid=6877327&loc=d3e13212-122682"
  },
  "r190": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "35",
   "SubTopic": "10",
   "Topic": "330",
   "URI": "http://asc.fasb.org/extlink&oid=68049868&loc=d3e3927-108312"
  },
  "r191": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "330",
   "URI": "http://asc.fasb.org/extlink&oid=66092785&loc=d3e4492-108314"
  },
  "r192": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "330",
   "URI": "http://asc.fasb.org/extlink&oid=66092785&loc=d3e4556-108314"
  },
  "r193": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SAB Topic 5.BB)",
   "Topic": "330",
   "URI": "http://asc.fasb.org/extlink&oid=27011343&loc=d3e100047-122729"
  },
  "r194": {
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "Topic": "330",
   "URI": "http://asc.fasb.org/topic&trid=2126998"
  },
  "r195": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(a)",
   "Topic": "340",
   "URI": "http://asc.fasb.org/extlink&oid=84159346&loc=d3e8275-108329"
  },
  "r196": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "55",
   "SubTopic": "20",
   "Topic": "340",
   "URI": "http://asc.fasb.org/extlink&oid=68054294&loc=d3e8384-108330"
  },
  "r197": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "40",
   "Subparagraph": "(a)",
   "Topic": "340",
   "URI": "http://asc.fasb.org/extlink&oid=68051541&loc=SL49131252-203054"
  },
  "r198": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "20",
   "Topic": "350",
   "URI": "http://asc.fasb.org/extlink&oid=99380562&loc=d3e13770-109266"
  },
  "r199": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "5",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "20",
   "Topic": "350",
   "URI": "http://asc.fasb.org/extlink&oid=77989000&loc=SL49117168-202975"
  },
  "r2": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "210",
   "URI": "http://asc.fasb.org/extlink&oid=82887183&loc=d3e6676-107765"
  },
  "r20": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02(3))",
   "Topic": "210",
   "URI": "http://asc.fasb.org/extlink&oid=6877327&loc=d3e13212-122682"
  },
  "r200": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(b)",
   "Topic": "350",
   "URI": "http://asc.fasb.org/extlink&oid=108376223&loc=d3e13816-109267"
  },
  "r201": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(f)",
   "Topic": "350",
   "URI": "http://asc.fasb.org/extlink&oid=108376223&loc=d3e13816-109267"
  },
  "r202": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Topic": "350",
   "URI": "http://asc.fasb.org/extlink&oid=108376223&loc=d3e13816-109267"
  },
  "r203": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Topic": "350",
   "URI": "http://asc.fasb.org/extlink&oid=108376223&loc=d3e13854-109267"
  },
  "r204": {
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "SubTopic": "20",
   "Topic": "350",
   "URI": "http://asc.fasb.org/subtopic&trid=2144439"
  },
  "r205": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "30",
   "Topic": "350",
   "URI": "http://asc.fasb.org/extlink&oid=6388964&loc=d3e16212-109274"
  },
  "r206": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "30",
   "Topic": "350",
   "URI": "http://asc.fasb.org/extlink&oid=6388964&loc=d3e16225-109274"
  },
  "r207": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "30",
   "Subparagraph": "(a)",
   "Topic": "350",
   "URI": "http://asc.fasb.org/extlink&oid=66006027&loc=d3e16265-109275"
  },
  "r208": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "30",
   "Subparagraph": "(a)(3)",
   "Topic": "350",
   "URI": "http://asc.fasb.org/extlink&oid=66006027&loc=d3e16265-109275"
  },
  "r209": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "30",
   "Subparagraph": "(b)",
   "Topic": "350",
   "URI": "http://asc.fasb.org/extlink&oid=66006027&loc=d3e16265-109275"
  },
  "r21": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02(30)(a)(1))",
   "Topic": "210",
   "URI": "http://asc.fasb.org/extlink&oid=6877327&loc=d3e13212-122682"
  },
  "r210": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "30",
   "Subparagraph": "(d)",
   "Topic": "350",
   "URI": "http://asc.fasb.org/extlink&oid=66006027&loc=d3e16265-109275"
  },
  "r211": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "30",
   "Subparagraph": "((a)(1),(b))",
   "Topic": "350",
   "URI": "http://asc.fasb.org/extlink&oid=66006027&loc=d3e16323-109275"
  },
  "r212": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "30",
   "Subparagraph": "(a)",
   "Topic": "350",
   "URI": "http://asc.fasb.org/extlink&oid=66006027&loc=d3e16323-109275"
  },
  "r213": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "30",
   "Subparagraph": "(a)(1)",
   "Topic": "350",
   "URI": "http://asc.fasb.org/extlink&oid=66006027&loc=d3e16323-109275"
  },
  "r214": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "30",
   "Subparagraph": "(a)(2)",
   "Topic": "350",
   "URI": "http://asc.fasb.org/extlink&oid=66006027&loc=d3e16323-109275"
  },
  "r215": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "30",
   "Subparagraph": "(a)(3)",
   "Topic": "350",
   "URI": "http://asc.fasb.org/extlink&oid=66006027&loc=d3e16323-109275"
  },
  "r216": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "30",
   "Subparagraph": "(d)",
   "Topic": "350",
   "URI": "http://asc.fasb.org/extlink&oid=66006027&loc=d3e16323-109275"
  },
  "r217": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "30",
   "SubTopic": "40",
   "Topic": "350",
   "URI": "http://asc.fasb.org/extlink&oid=6389767&loc=d3e17916-109280"
  },
  "r218": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "25",
   "SubTopic": "50",
   "Topic": "350",
   "URI": "http://asc.fasb.org/extlink&oid=16397303&loc=d3e19347-109286"
  },
  "r219": {
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "Topic": "350",
   "URI": "http://asc.fasb.org/topic&trid=2144416"
  },
  "r22": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02(30)(a)(3))",
   "Topic": "210",
   "URI": "http://asc.fasb.org/extlink&oid=6877327&loc=d3e13212-122682"
  },
  "r220": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "360",
   "URI": "http://asc.fasb.org/extlink&oid=109226348&loc=d3e2420-110228"
  },
  "r221": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "360",
   "URI": "http://asc.fasb.org/extlink&oid=6391035&loc=d3e2868-110229"
  },
  "r222": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "360",
   "URI": "http://asc.fasb.org/extlink&oid=6391035&loc=d3e2868-110229"
  },
  "r223": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)",
   "Topic": "360",
   "URI": "http://asc.fasb.org/extlink&oid=6391035&loc=d3e2868-110229"
  },
  "r224": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "360",
   "URI": "http://asc.fasb.org/extlink&oid=6391035&loc=d3e2868-110229"
  },
  "r225": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(d)",
   "Topic": "360",
   "URI": "http://asc.fasb.org/extlink&oid=109226691&loc=d3e2941-110230"
  },
  "r226": {
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "Topic": "360",
   "URI": "http://asc.fasb.org/topic&trid=2155823"
  },
  "r227": {
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "Topic": "440",
   "URI": "http://asc.fasb.org/topic&trid=2144648"
  },
  "r228": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Topic": "450",
   "URI": "http://asc.fasb.org/extlink&oid=82911808&loc=d3e14326-108349"
  },
  "r229": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "10",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Topic": "450",
   "URI": "http://asc.fasb.org/extlink&oid=82911808&loc=d3e14615-108349"
  },
  "r23": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02(30))",
   "Topic": "210",
   "URI": "http://asc.fasb.org/extlink&oid=6877327&loc=d3e13212-122682"
  },
  "r230": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Topic": "450",
   "URI": "http://asc.fasb.org/extlink&oid=82911808&loc=d3e14394-108349"
  },
  "r231": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Topic": "450",
   "URI": "http://asc.fasb.org/extlink&oid=82911808&loc=d3e14435-108349"
  },
  "r232": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "5",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Topic": "450",
   "URI": "http://asc.fasb.org/extlink&oid=82911808&loc=d3e14453-108349"
  },
  "r233": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "6",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Topic": "450",
   "URI": "http://asc.fasb.org/extlink&oid=82911808&loc=d3e14472-108349"
  },
  "r234": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "9",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Topic": "450",
   "URI": "http://asc.fasb.org/extlink&oid=82911808&loc=d3e14557-108349"
  },
  "r235": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "20",
   "Subparagraph": "(SAB Topic 5.Y.Q2)",
   "Topic": "450",
   "URI": "http://asc.fasb.org/extlink&oid=27011672&loc=d3e149879-122751"
  },
  "r236": {
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "Topic": "450",
   "URI": "http://asc.fasb.org/topic&trid=2127136"
  },
  "r237": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "5",
   "Publisher": "FASB",
   "Section": "25",
   "SubTopic": "10",
   "Topic": "460",
   "URI": "http://asc.fasb.org/extlink&oid=68070138&loc=d3e11281-110244"
  },
  "r238": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "460",
   "URI": "http://asc.fasb.org/extlink&oid=115931803&loc=d3e12021-110248"
  },
  "r239": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "460",
   "URI": "http://asc.fasb.org/extlink&oid=115931803&loc=d3e12053-110248"
  },
  "r24": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02(31))",
   "Topic": "210",
   "URI": "http://asc.fasb.org/extlink&oid=6877327&loc=d3e13212-122682"
  },
  "r240": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "7",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "460",
   "URI": "http://asc.fasb.org/extlink&oid=68068213&loc=d3e12524-110249"
  },
  "r241": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "8",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "((c)(2))",
   "Topic": "460",
   "URI": "http://asc.fasb.org/extlink&oid=68068213&loc=d3e12565-110249"
  },
  "r242": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "8",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "((c)(3))",
   "Topic": "460",
   "URI": "http://asc.fasb.org/extlink&oid=68068213&loc=d3e12565-110249"
  },
  "r243": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "8",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "460",
   "URI": "http://asc.fasb.org/extlink&oid=68068213&loc=d3e12565-110249"
  },
  "r244": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "8",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)",
   "Topic": "460",
   "URI": "http://asc.fasb.org/extlink&oid=68068213&loc=d3e12565-110249"
  },
  "r245": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "8",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)(1)",
   "Topic": "460",
   "URI": "http://asc.fasb.org/extlink&oid=68068213&loc=d3e12565-110249"
  },
  "r246": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "8",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)(5)",
   "Topic": "460",
   "URI": "http://asc.fasb.org/extlink&oid=68068213&loc=d3e12565-110249"
  },
  "r247": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "8",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "460",
   "URI": "http://asc.fasb.org/extlink&oid=68068213&loc=d3e12565-110249"
  },
  "r248": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(CFRR 211.02)",
   "Topic": "480",
   "URI": "http://asc.fasb.org/extlink&oid=65877616&loc=d3e177068-122764"
  },
  "r249": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "505",
   "URI": "http://asc.fasb.org/extlink&oid=65888546&loc=d3e21300-112643"
  },
  "r25": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02(32))",
   "Topic": "210",
   "URI": "http://asc.fasb.org/extlink&oid=6877327&loc=d3e13212-122682"
  },
  "r250": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "10",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "505",
   "URI": "http://asc.fasb.org/extlink&oid=109259400&loc=d3e21553-112644"
  },
  "r251": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "505",
   "URI": "http://asc.fasb.org/extlink&oid=109259400&loc=d3e21463-112644"
  },
  "r252": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "505",
   "URI": "http://asc.fasb.org/extlink&oid=109259400&loc=d3e21475-112644"
  },
  "r253": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "505",
   "URI": "http://asc.fasb.org/extlink&oid=109259400&loc=d3e21484-112644"
  },
  "r254": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "5",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "505",
   "URI": "http://asc.fasb.org/extlink&oid=109259400&loc=d3e21488-112644"
  },
  "r255": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "6",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "505",
   "URI": "http://asc.fasb.org/extlink&oid=109259400&loc=d3e21506-112644"
  },
  "r256": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "7",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "505",
   "URI": "http://asc.fasb.org/extlink&oid=109259400&loc=d3e21521-112644"
  },
  "r257": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "8",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "505",
   "URI": "http://asc.fasb.org/extlink&oid=109259400&loc=d3e21538-112644"
  },
  "r258": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.3-04)",
   "Topic": "505",
   "URI": "http://asc.fasb.org/extlink&oid=27012166&loc=d3e187085-122770"
  },
  "r259": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SAB TOPIC 4.C)",
   "Topic": "505",
   "URI": "http://asc.fasb.org/extlink&oid=27012166&loc=d3e187143-122770"
  },
  "r26": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02(4))",
   "Topic": "210",
   "URI": "http://asc.fasb.org/extlink&oid=6877327&loc=d3e13212-122682"
  },
  "r260": {
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "SubTopic": "50",
   "Topic": "505",
   "URI": "http://asc.fasb.org/subtopic&trid=2208855"
  },
  "r261": {
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "Topic": "505",
   "URI": "http://asc.fasb.org/topic&trid=2208762"
  },
  "r262": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "606",
   "URI": "http://asc.fasb.org/extlink&oid=82913815&loc=SL49130531-203044"
  },
  "r263": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "606",
   "URI": "http://asc.fasb.org/extlink&oid=82913815&loc=SL49130532-203044"
  },
  "r264": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "606",
   "URI": "http://asc.fasb.org/extlink&oid=109196051&loc=SL49130539-203045"
  },
  "r265": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "10",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "606",
   "URI": "http://asc.fasb.org/extlink&oid=109196051&loc=SL49130551-203045"
  },
  "r266": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "606",
   "URI": "http://asc.fasb.org/extlink&oid=109196051&loc=SL49130543-203045"
  },
  "r267": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "5",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "606",
   "URI": "http://asc.fasb.org/extlink&oid=109196051&loc=SL49130545-203045"
  },
  "r268": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "8",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "606",
   "URI": "http://asc.fasb.org/extlink&oid=109196051&loc=SL49130549-203045"
  },
  "r269": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "8",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "606",
   "URI": "http://asc.fasb.org/extlink&oid=109196051&loc=SL49130549-203045"
  },
  "r27": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02(6)(a)(1))",
   "Topic": "210",
   "URI": "http://asc.fasb.org/extlink&oid=6877327&loc=d3e13212-122682"
  },
  "r270": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "91",
   "Publisher": "FASB",
   "Section": "55",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "606",
   "URI": "http://asc.fasb.org/extlink&oid=108792157&loc=SL49130690-203046-203046"
  },
  "r271": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "91",
   "Publisher": "FASB",
   "Section": "55",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "606",
   "URI": "http://asc.fasb.org/extlink&oid=108792157&loc=SL49130690-203046-203046"
  },
  "r272": {
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "Topic": "606",
   "URI": "http://asc.fasb.org/topic&trid=49130388"
  },
  "r273": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "25",
   "SubTopic": "10",
   "Topic": "710",
   "URI": "http://asc.fasb.org/extlink&oid=6409733&loc=d3e19396-108361"
  },
  "r274": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(d)(ii)",
   "Topic": "715",
   "URI": "http://asc.fasb.org/extlink&oid=108410482&loc=d3e1928-114920"
  },
  "r275": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(d)(iv)(01)",
   "Topic": "715",
   "URI": "http://asc.fasb.org/extlink&oid=108410482&loc=d3e1928-114920"
  },
  "r276": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "17",
   "Publisher": "FASB",
   "Section": "55",
   "SubTopic": "20",
   "Topic": "715",
   "URI": "http://asc.fasb.org/extlink&oid=112275985&loc=d3e4179-114921"
  },
  "r277": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "70",
   "Topic": "715",
   "URI": "http://asc.fasb.org/extlink&oid=49170846&loc=d3e28014-114942"
  },
  "r278": {
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "Topic": "715",
   "URI": "http://asc.fasb.org/topic&trid=2235017"
  },
  "r279": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "35",
   "SubTopic": "10",
   "Topic": "718",
   "URI": "http://asc.fasb.org/extlink&oid=79507207&loc=d3e4534-113899"
  },
  "r28": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02(6)(a)(3))",
   "Topic": "210",
   "URI": "http://asc.fasb.org/extlink&oid=6877327&loc=d3e13212-122682"
  },
  "r280": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "718",
   "URI": "http://asc.fasb.org/extlink&oid=109197908&loc=d3e5047-113901"
  },
  "r281": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "718",
   "URI": "http://asc.fasb.org/extlink&oid=109197908&loc=d3e5047-113901"
  },
  "r282": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "718",
   "URI": "http://asc.fasb.org/extlink&oid=109197908&loc=d3e5047-113901"
  },
  "r283": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)(1)",
   "Topic": "718",
   "URI": "http://asc.fasb.org/extlink&oid=109197908&loc=d3e5070-113901"
  },
  "r284": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a),(g)",
   "Topic": "718",
   "URI": "http://asc.fasb.org/extlink&oid=109197908&loc=d3e5070-113901"
  },
  "r285": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(b),(f)",
   "Topic": "718",
   "URI": "http://asc.fasb.org/extlink&oid=109197908&loc=d3e5070-113901"
  },
  "r286": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)",
   "Topic": "718",
   "URI": "http://asc.fasb.org/extlink&oid=109197908&loc=d3e5070-113901"
  },
  "r287": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)(1)",
   "Topic": "718",
   "URI": "http://asc.fasb.org/extlink&oid=109197908&loc=d3e5070-113901"
  },
  "r288": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)(1)(i)",
   "Topic": "718",
   "URI": "http://asc.fasb.org/extlink&oid=109197908&loc=d3e5070-113901"
  },
  "r289": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)(1)(i)-(ii)",
   "Topic": "718",
   "URI": "http://asc.fasb.org/extlink&oid=109197908&loc=d3e5070-113901"
  },
  "r29": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02(6)(a)(4))",
   "Topic": "210",
   "URI": "http://asc.fasb.org/extlink&oid=6877327&loc=d3e13212-122682"
  },
  "r290": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)(1)(iii)",
   "Topic": "718",
   "URI": "http://asc.fasb.org/extlink&oid=109197908&loc=d3e5070-113901"
  },
  "r291": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)(1)(iv)(1)",
   "Topic": "718",
   "URI": "http://asc.fasb.org/extlink&oid=109197908&loc=d3e5070-113901"
  },
  "r292": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)(1)(iv)(2)",
   "Topic": "718",
   "URI": "http://asc.fasb.org/extlink&oid=109197908&loc=d3e5070-113901"
  },
  "r293": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)(1)(iv)(3)",
   "Topic": "718",
   "URI": "http://asc.fasb.org/extlink&oid=109197908&loc=d3e5070-113901"
  },
  "r294": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)(1)(iv)(3)-(4)",
   "Topic": "718",
   "URI": "http://asc.fasb.org/extlink&oid=109197908&loc=d3e5070-113901"
  },
  "r295": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)(2)(i)-(ii)",
   "Topic": "718",
   "URI": "http://asc.fasb.org/extlink&oid=109197908&loc=d3e5070-113901"
  },
  "r296": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)(2)(iii)(1)",
   "Topic": "718",
   "URI": "http://asc.fasb.org/extlink&oid=109197908&loc=d3e5070-113901"
  },
  "r297": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)(2)(iii)(2)",
   "Topic": "718",
   "URI": "http://asc.fasb.org/extlink&oid=109197908&loc=d3e5070-113901"
  },
  "r298": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)(2)(iii)(3)",
   "Topic": "718",
   "URI": "http://asc.fasb.org/extlink&oid=109197908&loc=d3e5070-113901"
  },
  "r299": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(d)",
   "Topic": "718",
   "URI": "http://asc.fasb.org/extlink&oid=109197908&loc=d3e5070-113901"
  },
  "r3": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "210",
   "URI": "http://asc.fasb.org/extlink&oid=82887183&loc=d3e6676-107765"
  },
  "r30": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02(6)(a))",
   "Topic": "210",
   "URI": "http://asc.fasb.org/extlink&oid=6877327&loc=d3e13212-122682"
  },
  "r300": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(d)(1)",
   "Topic": "718",
   "URI": "http://asc.fasb.org/extlink&oid=109197908&loc=d3e5070-113901"
  },
  "r301": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(e)",
   "Topic": "718",
   "URI": "http://asc.fasb.org/extlink&oid=109197908&loc=d3e5070-113901"
  },
  "r302": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(e)(1)",
   "Topic": "718",
   "URI": "http://asc.fasb.org/extlink&oid=109197908&loc=d3e5070-113901"
  },
  "r303": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(e)(2)",
   "Topic": "718",
   "URI": "http://asc.fasb.org/extlink&oid=109197908&loc=d3e5070-113901"
  },
  "r304": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(f)(2)",
   "Topic": "718",
   "URI": "http://asc.fasb.org/extlink&oid=109197908&loc=d3e5070-113901"
  },
  "r305": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(f)(2)(i)",
   "Topic": "718",
   "URI": "http://asc.fasb.org/extlink&oid=109197908&loc=d3e5070-113901"
  },
  "r306": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(f)(2)(ii)",
   "Topic": "718",
   "URI": "http://asc.fasb.org/extlink&oid=109197908&loc=d3e5070-113901"
  },
  "r307": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(f)(2)(iii)",
   "Topic": "718",
   "URI": "http://asc.fasb.org/extlink&oid=109197908&loc=d3e5070-113901"
  },
  "r308": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(f)(2)(iv)",
   "Topic": "718",
   "URI": "http://asc.fasb.org/extlink&oid=109197908&loc=d3e5070-113901"
  },
  "r309": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(h)(1)",
   "Topic": "718",
   "URI": "http://asc.fasb.org/extlink&oid=109197908&loc=d3e5070-113901"
  },
  "r31": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02(6)(b))",
   "Topic": "210",
   "URI": "http://asc.fasb.org/extlink&oid=6877327&loc=d3e13212-122682"
  },
  "r310": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(h)(1)(i)",
   "Topic": "718",
   "URI": "http://asc.fasb.org/extlink&oid=109197908&loc=d3e5070-113901"
  },
  "r311": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(i)",
   "Topic": "718",
   "URI": "http://asc.fasb.org/extlink&oid=109197908&loc=d3e5070-113901"
  },
  "r312": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "718",
   "URI": "http://asc.fasb.org/extlink&oid=109197908&loc=d3e5070-113901"
  },
  "r313": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2A",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "718",
   "URI": "http://asc.fasb.org/extlink&oid=109197908&loc=SL79508275-113901"
  },
  "r314": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SAB Topic 14.D.2)",
   "Topic": "718",
   "URI": "http://asc.fasb.org/extlink&oid=115993241&loc=d3e301413-122809"
  },
  "r315": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SAB Topic 14.F)",
   "Topic": "718",
   "URI": "http://asc.fasb.org/extlink&oid=115993241&loc=d3e301413-122809"
  },
  "r316": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "12",
   "Publisher": "FASB",
   "Section": "55",
   "SubTopic": "20",
   "Topic": "718",
   "URI": "http://asc.fasb.org/extlink&oid=109196918&loc=d3e11149-113907"
  },
  "r317": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "13",
   "Publisher": "FASB",
   "Section": "55",
   "SubTopic": "20",
   "Topic": "718",
   "URI": "http://asc.fasb.org/extlink&oid=109196918&loc=d3e11178-113907"
  },
  "r318": {
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "Topic": "718",
   "URI": "http://asc.fasb.org/topic&trid=2228938"
  },
  "r319": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "35",
   "Subparagraph": "(b)",
   "Topic": "720",
   "URI": "http://asc.fasb.org/extlink&oid=6420018&loc=d3e36677-107848"
  },
  "r32": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02(6)(c))",
   "Topic": "210",
   "URI": "http://asc.fasb.org/extlink&oid=6877327&loc=d3e13212-122682"
  },
  "r320": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "730",
   "URI": "http://asc.fasb.org/extlink&oid=6420194&loc=d3e21568-108373"
  },
  "r321": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "20",
   "Publisher": "FASB",
   "Section": "25",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "740",
   "URI": "http://asc.fasb.org/extlink&oid=115928272&loc=d3e28680-109314"
  },
  "r322": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "20",
   "Publisher": "FASB",
   "Section": "25",
   "SubTopic": "10",
   "Topic": "740",
   "URI": "http://asc.fasb.org/extlink&oid=115928272&loc=d3e28680-109314"
  },
  "r323": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "10B",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "740",
   "URI": "http://asc.fasb.org/extlink&oid=84176650&loc=SL37586934-109318"
  },
  "r324": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "25",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "740",
   "URI": "http://asc.fasb.org/extlink&oid=84176650&loc=d3e32247-109318"
  },
  "r325": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "28",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "740",
   "URI": "http://asc.fasb.org/extlink&oid=84176650&loc=d3e32280-109318"
  },
  "r326": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "740",
   "URI": "http://asc.fasb.org/extlink&oid=84176650&loc=d3e31917-109318"
  },
  "r327": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "5",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "740",
   "URI": "http://asc.fasb.org/extlink&oid=84176650&loc=d3e31928-109318"
  },
  "r328": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "6",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "740",
   "URI": "http://asc.fasb.org/extlink&oid=84176650&loc=d3e31931-109318"
  },
  "r329": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "9",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "740",
   "URI": "http://asc.fasb.org/extlink&oid=84176650&loc=d3e31958-109318"
  },
  "r33": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02(7))",
   "Topic": "210",
   "URI": "http://asc.fasb.org/extlink&oid=6877327&loc=d3e13212-122682"
  },
  "r330": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "10",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "740",
   "URI": "http://asc.fasb.org/extlink&oid=84230637&loc=d3e32672-109319"
  },
  "r331": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "12",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "740",
   "URI": "http://asc.fasb.org/extlink&oid=84230637&loc=d3e32687-109319"
  },
  "r332": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "13",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "740",
   "URI": "http://asc.fasb.org/extlink&oid=84230637&loc=d3e32698-109319"
  },
  "r333": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "15",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)",
   "Topic": "740",
   "URI": "http://asc.fasb.org/extlink&oid=84230637&loc=d3e32718-109319"
  },
  "r334": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "15",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(d)",
   "Topic": "740",
   "URI": "http://asc.fasb.org/extlink&oid=84230637&loc=d3e32718-109319"
  },
  "r335": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "15",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(e)",
   "Topic": "740",
   "URI": "http://asc.fasb.org/extlink&oid=84230637&loc=d3e32718-109319"
  },
  "r336": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "15A",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "740",
   "URI": "http://asc.fasb.org/extlink&oid=84230637&loc=SL6600010-109319"
  },
  "r337": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "15A",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)(1)",
   "Topic": "740",
   "URI": "http://asc.fasb.org/extlink&oid=84230637&loc=SL6600010-109319"
  },
  "r338": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "15A",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)(2)",
   "Topic": "740",
   "URI": "http://asc.fasb.org/extlink&oid=84230637&loc=SL6600010-109319"
  },
  "r339": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "15A",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)(4)",
   "Topic": "740",
   "URI": "http://asc.fasb.org/extlink&oid=84230637&loc=SL6600010-109319"
  },
  "r34": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02(8))",
   "Topic": "210",
   "URI": "http://asc.fasb.org/extlink&oid=6877327&loc=d3e13212-122682"
  },
  "r340": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "15A",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "740",
   "URI": "http://asc.fasb.org/extlink&oid=84230637&loc=SL6600010-109319"
  },
  "r341": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "17",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "740",
   "URI": "http://asc.fasb.org/extlink&oid=84230637&loc=d3e32809-109319"
  },
  "r342": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "19",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "740",
   "URI": "http://asc.fasb.org/extlink&oid=84230637&loc=d3e32840-109319"
  },
  "r343": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "740",
   "URI": "http://asc.fasb.org/extlink&oid=84230637&loc=d3e32537-109319"
  },
  "r344": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "740",
   "URI": "http://asc.fasb.org/extlink&oid=84230637&loc=d3e32537-109319"
  },
  "r345": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)",
   "Topic": "740",
   "URI": "http://asc.fasb.org/extlink&oid=84230637&loc=d3e32537-109319"
  },
  "r346": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "740",
   "URI": "http://asc.fasb.org/extlink&oid=84230637&loc=d3e32537-109319"
  },
  "r347": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "20",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "740",
   "URI": "http://asc.fasb.org/extlink&oid=84230637&loc=d3e32847-109319"
  },
  "r348": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "740",
   "URI": "http://asc.fasb.org/extlink&oid=84230637&loc=d3e32559-109319"
  },
  "r349": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "740",
   "URI": "http://asc.fasb.org/extlink&oid=84230637&loc=d3e32559-109319"
  },
  "r35": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02.1)",
   "Topic": "210",
   "URI": "http://asc.fasb.org/extlink&oid=6877327&loc=d3e13212-122682"
  },
  "r350": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "6",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "740",
   "URI": "http://asc.fasb.org/extlink&oid=84230637&loc=d3e32621-109319"
  },
  "r351": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "8",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "740",
   "URI": "http://asc.fasb.org/extlink&oid=84230637&loc=d3e32632-109319"
  },
  "r352": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "9",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "740",
   "URI": "http://asc.fasb.org/extlink&oid=84230637&loc=d3e32639-109319"
  },
  "r353": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "9",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "740",
   "URI": "http://asc.fasb.org/extlink&oid=84230637&loc=d3e32639-109319"
  },
  "r354": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "9",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "740",
   "URI": "http://asc.fasb.org/extlink&oid=84230637&loc=d3e32639-109319"
  },
  "r355": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "5",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "10",
   "Subparagraph": "(c)",
   "Topic": "740",
   "URI": "http://asc.fasb.org/extlink&oid=115928189&loc=SL96870463-158277"
  },
  "r356": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "5",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "10",
   "Subparagraph": "(d)",
   "Topic": "740",
   "URI": "http://asc.fasb.org/extlink&oid=115928189&loc=SL96870463-158277"
  },
  "r357": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SAB TOPIC 6.I)",
   "Topic": "740",
   "URI": "http://asc.fasb.org/extlink&oid=34349781&loc=d3e330036-122817"
  },
  "r358": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SAB Topic 6.I.7)",
   "Topic": "740",
   "URI": "http://asc.fasb.org/extlink&oid=34349781&loc=d3e330036-122817"
  },
  "r359": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "20",
   "Subparagraph": "(a)",
   "Topic": "740",
   "URI": "http://asc.fasb.org/extlink&oid=109238882&loc=d3e38679-109324"
  },
  "r36": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02.12)",
   "Topic": "210",
   "URI": "http://asc.fasb.org/extlink&oid=6877327&loc=d3e13212-122682"
  },
  "r360": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "05",
   "SubTopic": "30",
   "Topic": "740",
   "URI": "http://asc.fasb.org/extlink&oid=65884525&loc=d3e40913-109327"
  },
  "r361": {
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "Topic": "740",
   "URI": "http://asc.fasb.org/topic&trid=2144680"
  },
  "r362": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "05",
   "SubTopic": "10",
   "Subparagraph": "(a)-(d)",
   "Topic": "805",
   "URI": "http://asc.fasb.org/extlink&oid=6909625&loc=d3e227-128457"
  },
  "r363": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(e)(3)",
   "Topic": "805",
   "URI": "http://asc.fasb.org/extlink&oid=79982066&loc=d3e1392-128463"
  },
  "r364": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "805",
   "URI": "http://asc.fasb.org/extlink&oid=79982066&loc=d3e1392-128463"
  },
  "r365": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "805",
   "URI": "http://asc.fasb.org/extlink&oid=79982066&loc=d3e1486-128463"
  },
  "r366": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "37",
   "Publisher": "FASB",
   "Section": "55",
   "SubTopic": "10",
   "Topic": "805",
   "URI": "http://asc.fasb.org/extlink&oid=108330185&loc=d3e2207-128464"
  },
  "r367": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(c)",
   "Topic": "805",
   "URI": "http://asc.fasb.org/extlink&oid=84161108&loc=d3e4845-128472"
  },
  "r368": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Topic": "805",
   "URI": "http://asc.fasb.org/extlink&oid=84161108&loc=d3e4922-128472"
  },
  "r369": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "13",
   "Publisher": "FASB",
   "Section": "55",
   "SubTopic": "20",
   "Topic": "805",
   "URI": "http://asc.fasb.org/extlink&oid=77890550&loc=d3e5227-128473"
  },
  "r37": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02.13(a))",
   "Topic": "210",
   "URI": "http://asc.fasb.org/extlink&oid=6877327&loc=d3e13212-122682"
  },
  "r370": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "14",
   "Publisher": "FASB",
   "Section": "55",
   "SubTopic": "20",
   "Subparagraph": "(a)",
   "Topic": "805",
   "URI": "http://asc.fasb.org/extlink&oid=77890550&loc=d3e5263-128473"
  },
  "r371": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "14",
   "Publisher": "FASB",
   "Section": "55",
   "SubTopic": "20",
   "Subparagraph": "(e)",
   "Topic": "805",
   "URI": "http://asc.fasb.org/extlink&oid=77890550&loc=d3e5263-128473"
  },
  "r372": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "20",
   "Publisher": "FASB",
   "Section": "55",
   "SubTopic": "20",
   "Subparagraph": "(c)",
   "Topic": "805",
   "URI": "http://asc.fasb.org/extlink&oid=77890550&loc=d3e5333-128473"
  },
  "r373": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "38",
   "Publisher": "FASB",
   "Section": "55",
   "SubTopic": "20",
   "Topic": "805",
   "URI": "http://asc.fasb.org/extlink&oid=77890550&loc=d3e5504-128473"
  },
  "r374": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "5",
   "Publisher": "FASB",
   "Section": "25",
   "SubTopic": "30",
   "Topic": "805",
   "URI": "http://asc.fasb.org/extlink&oid=6911189&loc=d3e6405-128476"
  },
  "r375": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "6",
   "Publisher": "FASB",
   "Section": "25",
   "SubTopic": "30",
   "Topic": "805",
   "URI": "http://asc.fasb.org/extlink&oid=6911189&loc=d3e6408-128476"
  },
  "r376": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "7",
   "Publisher": "FASB",
   "Section": "30",
   "SubTopic": "30",
   "Topic": "805",
   "URI": "http://asc.fasb.org/extlink&oid=109124213&loc=d3e6578-128477"
  },
  "r377": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "8",
   "Publisher": "FASB",
   "Section": "30",
   "SubTopic": "30",
   "Topic": "805",
   "URI": "http://asc.fasb.org/extlink&oid=109124213&loc=d3e6613-128477"
  },
  "r378": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "35",
   "SubTopic": "30",
   "Subparagraph": "(b)",
   "Topic": "805",
   "URI": "http://asc.fasb.org/extlink&oid=6911338&loc=d3e6819-128478"
  },
  "r379": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "30",
   "Subparagraph": "(b)",
   "Topic": "805",
   "URI": "http://asc.fasb.org/extlink&oid=35744584&loc=d3e6927-128479"
  },
  "r38": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02.13)",
   "Topic": "210",
   "URI": "http://asc.fasb.org/extlink&oid=6877327&loc=d3e13212-122682"
  },
  "r380": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "30",
   "Subparagraph": "(b)(1)",
   "Topic": "805",
   "URI": "http://asc.fasb.org/extlink&oid=35744584&loc=d3e6927-128479"
  },
  "r381": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "30",
   "Subparagraph": "(b)(3)",
   "Topic": "805",
   "URI": "http://asc.fasb.org/extlink&oid=35744584&loc=d3e6927-128479"
  },
  "r382": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "30",
   "Subparagraph": "(c)(1)",
   "Topic": "805",
   "URI": "http://asc.fasb.org/extlink&oid=35744584&loc=d3e6927-128479"
  },
  "r383": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "30",
   "Subparagraph": "(c)(3)",
   "Topic": "805",
   "URI": "http://asc.fasb.org/extlink&oid=35744584&loc=d3e6927-128479"
  },
  "r384": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "30",
   "Subparagraph": "(d)",
   "Topic": "805",
   "URI": "http://asc.fasb.org/extlink&oid=35744584&loc=d3e6927-128479"
  },
  "r385": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "30",
   "Subparagraph": "(a)(1)",
   "Topic": "805",
   "URI": "http://asc.fasb.org/extlink&oid=35744584&loc=d3e7008-128479"
  },
  "r386": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "30",
   "Subparagraph": "(a)(2)",
   "Topic": "805",
   "URI": "http://asc.fasb.org/extlink&oid=35744584&loc=d3e7008-128479"
  },
  "r387": {
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "Topic": "805",
   "URI": "http://asc.fasb.org/topic&trid=2303972"
  },
  "r388": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "19",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "810",
   "URI": "http://asc.fasb.org/extlink&oid=108774443&loc=SL4569616-111683"
  },
  "r389": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "20",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "810",
   "URI": "http://asc.fasb.org/extlink&oid=108774443&loc=SL4569643-111683"
  },
  "r39": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02.14)",
   "Topic": "210",
   "URI": "http://asc.fasb.org/extlink&oid=6877327&loc=d3e13212-122682"
  },
  "r390": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "810",
   "URI": "http://asc.fasb.org/extlink&oid=109239629&loc=d3e5614-111684"
  },
  "r391": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1A",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)(3)",
   "Topic": "810",
   "URI": "http://asc.fasb.org/extlink&oid=109239629&loc=SL4573702-111684"
  },
  "r392": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1A",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c),(3)",
   "Topic": "810",
   "URI": "http://asc.fasb.org/extlink&oid=109239629&loc=SL4573702-111684"
  },
  "r393": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.3A-02)",
   "Topic": "810",
   "URI": "http://asc.fasb.org/extlink&oid=27015204&loc=d3e355033-122828"
  },
  "r394": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.3A-03)",
   "Topic": "810",
   "URI": "http://asc.fasb.org/extlink&oid=27015204&loc=d3e355100-122828"
  },
  "r395": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "5",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "815",
   "URI": "http://asc.fasb.org/extlink&oid=6945355&loc=d3e41228-113958"
  },
  "r396": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "815",
   "URI": "http://asc.fasb.org/extlink&oid=109980867&loc=SL5579240-113959"
  },
  "r397": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1A",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "815",
   "URI": "http://asc.fasb.org/extlink&oid=109980867&loc=SL5579245-113959"
  },
  "r398": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1A",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(d)",
   "Topic": "815",
   "URI": "http://asc.fasb.org/extlink&oid=109980867&loc=SL5579245-113959"
  },
  "r399": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1A",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "815",
   "URI": "http://asc.fasb.org/extlink&oid=109980867&loc=SL5579245-113959"
  },
  "r4": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "210",
   "URI": "http://asc.fasb.org/extlink&oid=82887183&loc=d3e6801-107765"
  },
  "r40": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02.15)",
   "Topic": "210",
   "URI": "http://asc.fasb.org/extlink&oid=6877327&loc=d3e13212-122682"
  },
  "r400": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1B",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "815",
   "URI": "http://asc.fasb.org/extlink&oid=109980867&loc=SL5580258-113959"
  },
  "r401": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)(1)(ii)",
   "Topic": "815",
   "URI": "http://asc.fasb.org/extlink&oid=109980867&loc=d3e41620-113959"
  },
  "r402": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "815",
   "URI": "http://asc.fasb.org/extlink&oid=109980867&loc=d3e41620-113959"
  },
  "r403": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "c",
   "Topic": "815",
   "URI": "http://asc.fasb.org/extlink&oid=109980867&loc=d3e41638-113959"
  },
  "r404": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "815",
   "URI": "http://asc.fasb.org/extlink&oid=109980867&loc=d3e41638-113959"
  },
  "r405": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4A",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "815",
   "URI": "http://asc.fasb.org/extlink&oid=109980867&loc=SL5618551-113959"
  },
  "r406": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4A",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "815",
   "URI": "http://asc.fasb.org/extlink&oid=109980867&loc=SL5618551-113959"
  },
  "r407": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4A",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(b)(1)",
   "Topic": "815",
   "URI": "http://asc.fasb.org/extlink&oid=109980867&loc=SL5618551-113959"
  },
  "r408": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4B",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a),(c)",
   "Topic": "815",
   "URI": "http://asc.fasb.org/extlink&oid=109980867&loc=SL5624163-113959"
  },
  "r409": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4B",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(d)",
   "Topic": "815",
   "URI": "http://asc.fasb.org/extlink&oid=109980867&loc=SL5624163-113959"
  },
  "r41": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02.17)",
   "Topic": "210",
   "URI": "http://asc.fasb.org/extlink&oid=6877327&loc=d3e13212-122682"
  },
  "r410": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4B",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "815",
   "URI": "http://asc.fasb.org/extlink&oid=109980867&loc=SL5624163-113959"
  },
  "r411": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4C",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "815",
   "URI": "http://asc.fasb.org/extlink&oid=109980867&loc=SL5624171-113959"
  },
  "r412": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4C",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)",
   "Topic": "815",
   "URI": "http://asc.fasb.org/extlink&oid=109980867&loc=SL5624171-113959"
  },
  "r413": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4C",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "815",
   "URI": "http://asc.fasb.org/extlink&oid=109980867&loc=SL5624171-113959"
  },
  "r414": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4D",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "815",
   "URI": "http://asc.fasb.org/extlink&oid=109980867&loc=SL5624177-113959"
  },
  "r415": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4D",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "815",
   "URI": "http://asc.fasb.org/extlink&oid=109980867&loc=SL5624177-113959"
  },
  "r416": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4E",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "815",
   "URI": "http://asc.fasb.org/extlink&oid=109980867&loc=SL5624181-113959"
  },
  "r417": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "5",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "815",
   "URI": "http://asc.fasb.org/extlink&oid=109980867&loc=d3e41641-113959"
  },
  "r418": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "7",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "815",
   "URI": "http://asc.fasb.org/extlink&oid=109980867&loc=d3e41675-113959"
  },
  "r419": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "8",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "815",
   "URI": "http://asc.fasb.org/extlink&oid=109980867&loc=d3e41678-113959"
  },
  "r42": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02.19(a))",
   "Topic": "210",
   "URI": "http://asc.fasb.org/extlink&oid=6877327&loc=d3e13212-122682"
  },
  "r420": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "182",
   "Publisher": "FASB",
   "Section": "55",
   "SubTopic": "10",
   "Topic": "815",
   "URI": "http://asc.fasb.org/extlink&oid=109975725&loc=SL5629052-113961"
  },
  "r421": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "25",
   "Topic": "815",
   "URI": "http://asc.fasb.org/extlink&oid=109977999&loc=d3e76258-113986"
  },
  "r422": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "30",
   "Topic": "815",
   "URI": "http://asc.fasb.org/extlink&oid=109978405&loc=d3e80720-113993"
  },
  "r423": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "30",
   "Subparagraph": "(d)",
   "Topic": "815",
   "URI": "http://asc.fasb.org/extlink&oid=112277219&loc=d3e80748-113994"
  },
  "r424": {
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "Topic": "815",
   "URI": "http://asc.fasb.org/topic&trid=2229140"
  },
  "r425": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "820",
   "URI": "http://asc.fasb.org/extlink&oid=99377789&loc=d3e19190-110258"
  },
  "r426": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "820",
   "URI": "http://asc.fasb.org/extlink&oid=99377789&loc=d3e19207-110258"
  },
  "r427": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "820",
   "URI": "http://asc.fasb.org/extlink&oid=99377789&loc=d3e19207-110258"
  },
  "r428": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(bb)",
   "Topic": "820",
   "URI": "http://asc.fasb.org/extlink&oid=99377789&loc=d3e19207-110258"
  },
  "r429": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)",
   "Topic": "820",
   "URI": "http://asc.fasb.org/extlink&oid=99377789&loc=d3e19207-110258"
  },
  "r43": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02.19(a),20,24)",
   "Topic": "210",
   "URI": "http://asc.fasb.org/extlink&oid=6877327&loc=d3e13212-122682"
  },
  "r430": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)(2)",
   "Topic": "820",
   "URI": "http://asc.fasb.org/extlink&oid=99377789&loc=d3e19207-110258"
  },
  "r431": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "820",
   "URI": "http://asc.fasb.org/extlink&oid=99377789&loc=d3e19207-110258"
  },
  "r432": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2C",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "820",
   "URI": "http://asc.fasb.org/extlink&oid=99377789&loc=SL7498348-110258"
  },
  "r433": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "820",
   "URI": "http://asc.fasb.org/extlink&oid=99377789&loc=d3e19279-110258"
  },
  "r434": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "60",
   "SubTopic": "10",
   "Topic": "820",
   "URI": "http://asc.fasb.org/extlink&oid=7493716&loc=d3e21868-110260"
  },
  "r435": {
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "Topic": "820",
   "URI": "http://asc.fasb.org/topic&trid=2155941"
  },
  "r436": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "825",
   "URI": "http://asc.fasb.org/extlink&oid=109250915&loc=d3e13279-108611"
  },
  "r437": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "10",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "825",
   "URI": "http://asc.fasb.org/extlink&oid=109250915&loc=d3e13433-108611"
  },
  "r438": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "20",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "825",
   "URI": "http://asc.fasb.org/extlink&oid=109250915&loc=d3e13531-108611"
  },
  "r439": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "21",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "825",
   "URI": "http://asc.fasb.org/extlink&oid=109250915&loc=d3e13537-108611"
  },
  "r44": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02.19-26)",
   "Topic": "210",
   "URI": "http://asc.fasb.org/extlink&oid=6877327&loc=d3e13212-122682"
  },
  "r440": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "21",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "825",
   "URI": "http://asc.fasb.org/extlink&oid=109250915&loc=d3e13537-108611"
  },
  "r441": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "35",
   "SubTopic": "20",
   "Subparagraph": "(b)",
   "Topic": "830",
   "URI": "http://asc.fasb.org/extlink&oid=82918529&loc=d3e30304-110892"
  },
  "r442": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "20",
   "Topic": "830",
   "URI": "http://asc.fasb.org/extlink&oid=109240200&loc=d3e30690-110894"
  },
  "r443": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "20",
   "Topic": "830",
   "URI": "http://asc.fasb.org/extlink&oid=109240200&loc=d3e30700-110894"
  },
  "r444": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Topic": "830",
   "URI": "http://asc.fasb.org/extlink&oid=6450222&loc=d3e30840-110895"
  },
  "r445": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "230",
   "Topic": "830",
   "URI": "http://asc.fasb.org/extlink&oid=98513438&loc=d3e33268-110906"
  },
  "r446": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "12",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "30",
   "Topic": "830",
   "URI": "http://asc.fasb.org/extlink&oid=109240241&loc=d3e32022-110900"
  },
  "r447": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "18",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "30",
   "Topic": "830",
   "URI": "http://asc.fasb.org/extlink&oid=109240241&loc=d3e32157-110900"
  },
  "r448": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "20",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "30",
   "Subparagraph": "(b),(c)",
   "Topic": "830",
   "URI": "http://asc.fasb.org/extlink&oid=109240241&loc=d3e32211-110900"
  },
  "r449": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "20",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "30",
   "Subparagraph": "(b,c)",
   "Topic": "830",
   "URI": "http://asc.fasb.org/extlink&oid=109240241&loc=d3e32211-110900"
  },
  "r45": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02.20)",
   "Topic": "210",
   "URI": "http://asc.fasb.org/extlink&oid=6877327&loc=d3e13212-122682"
  },
  "r450": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "20",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "30",
   "Subparagraph": "(c)",
   "Topic": "830",
   "URI": "http://asc.fasb.org/extlink&oid=109240241&loc=d3e32211-110900"
  },
  "r451": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "30",
   "Topic": "830",
   "URI": "http://asc.fasb.org/extlink&oid=6450520&loc=d3e32583-110901"
  },
  "r452": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "40",
   "Publisher": "FASB",
   "Section": "55",
   "SubTopic": "10",
   "Subparagraph": "Note 1",
   "Topic": "840",
   "URI": "http://asc.fasb.org/extlink&oid=82846649&loc=d3e38371-112697"
  },
  "r453": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "40",
   "Publisher": "FASB",
   "Section": "55",
   "SubTopic": "10",
   "Subparagraph": "Note 3",
   "Topic": "840",
   "URI": "http://asc.fasb.org/extlink&oid=82846649&loc=d3e38371-112697"
  },
  "r454": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "20",
   "Topic": "840",
   "URI": "http://asc.fasb.org/extlink&oid=77907726&loc=d3e41457-112716"
  },
  "r455": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "20",
   "Topic": "840",
   "URI": "http://asc.fasb.org/extlink&oid=77907726&loc=d3e41460-112716"
  },
  "r456": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(a)",
   "Topic": "840",
   "URI": "http://asc.fasb.org/extlink&oid=84164653&loc=d3e41551-112718"
  },
  "r457": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "10",
   "Topic": "842",
   "URI": "http://asc.fasb.org/extlink&oid=113997351&loc=SL77916155-209984"
  },
  "r458": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "20",
   "Subparagraph": "(a)",
   "Topic": "842",
   "URI": "http://asc.fasb.org/extlink&oid=77888419&loc=SL77918627-209977"
  },
  "r459": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "20",
   "Subparagraph": "(b)",
   "Topic": "842",
   "URI": "http://asc.fasb.org/extlink&oid=77888419&loc=SL77918627-209977"
  },
  "r46": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02.21)",
   "Topic": "210",
   "URI": "http://asc.fasb.org/extlink&oid=6877327&loc=d3e13212-122682"
  },
  "r460": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "20",
   "Subparagraph": "(b)",
   "Topic": "842",
   "URI": "http://asc.fasb.org/extlink&oid=77888419&loc=SL77918638-209977"
  },
  "r461": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "5",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "20",
   "Subparagraph": "(c)",
   "Topic": "842",
   "URI": "http://asc.fasb.org/extlink&oid=77888419&loc=SL77918643-209977"
  },
  "r462": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(g)(1)",
   "Topic": "842",
   "URI": "http://asc.fasb.org/extlink&oid=77888426&loc=SL77918686-209980"
  },
  "r463": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(g)(3)",
   "Topic": "842",
   "URI": "http://asc.fasb.org/extlink&oid=77888426&loc=SL77918686-209980"
  },
  "r464": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(g)(4)",
   "Topic": "842",
   "URI": "http://asc.fasb.org/extlink&oid=77888426&loc=SL77918686-209980"
  },
  "r465": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "6",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Topic": "842",
   "URI": "http://asc.fasb.org/extlink&oid=77888426&loc=SL77918701-209980"
  },
  "r466": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "53",
   "Publisher": "FASB",
   "Section": "55",
   "SubTopic": "20",
   "Topic": "842",
   "URI": "http://asc.fasb.org/extlink&oid=77888399&loc=SL77918982-209971"
  },
  "r467": {
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "SubTopic": "20",
   "Topic": "842",
   "URI": "http://asc.fasb.org/subtopic&trid=77888251"
  },
  "r468": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "30",
   "Topic": "842",
   "URI": "http://asc.fasb.org/extlink&oid=77888421&loc=SL77919311-209978"
  },
  "r469": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "12",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "30",
   "Topic": "842",
   "URI": "http://asc.fasb.org/extlink&oid=77888428&loc=SL77919396-209981"
  },
  "r47": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02.24)",
   "Topic": "210",
   "URI": "http://asc.fasb.org/extlink&oid=6877327&loc=d3e13212-122682"
  },
  "r470": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "5",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "30",
   "Topic": "842",
   "URI": "http://asc.fasb.org/extlink&oid=77888428&loc=SL77919372-209981"
  },
  "r471": {
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "SubTopic": "30",
   "Topic": "842",
   "URI": "http://asc.fasb.org/subtopic&trid=77888252"
  },
  "r472": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "855",
   "URI": "http://asc.fasb.org/extlink&oid=6842918&loc=SL6314017-165662"
  },
  "r473": {
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "Topic": "855",
   "URI": "http://asc.fasb.org/topic&trid=2122774"
  },
  "r474": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(bb)",
   "Topic": "860",
   "URI": "http://asc.fasb.org/extlink&oid=109247956&loc=d3e107207-111719"
  },
  "r475": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(bb)(1)",
   "Topic": "860",
   "URI": "http://asc.fasb.org/extlink&oid=109247956&loc=d3e107207-111719"
  },
  "r476": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(bb)(2)",
   "Topic": "860",
   "URI": "http://asc.fasb.org/extlink&oid=109247956&loc=d3e107207-111719"
  },
  "r477": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(bb)(3)",
   "Topic": "860",
   "URI": "http://asc.fasb.org/extlink&oid=109247956&loc=d3e107207-111719"
  },
  "r478": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4D",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(c)(2)",
   "Topic": "860",
   "URI": "http://asc.fasb.org/extlink&oid=109247956&loc=SL51823488-111719"
  },
  "r479": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "50",
   "Topic": "860",
   "URI": "http://asc.fasb.org/extlink&oid=68078379&loc=d3e122625-111746"
  },
  "r48": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02.25)",
   "Topic": "210",
   "URI": "http://asc.fasb.org/extlink&oid=6877327&loc=d3e13212-122682"
  },
  "r480": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "340",
   "Topic": "928",
   "URI": "http://asc.fasb.org/extlink&oid=6473545&loc=d3e61844-108004"
  },
  "r481": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "210",
   "Subparagraph": "(SX 210.9-03(11))",
   "Topic": "942",
   "URI": "http://asc.fasb.org/extlink&oid=6876686&loc=d3e534808-122878"
  },
  "r482": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "210",
   "Subparagraph": "(SX 210.9-03(15)(1))",
   "Topic": "942",
   "URI": "http://asc.fasb.org/extlink&oid=6876686&loc=d3e534808-122878"
  },
  "r483": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "210",
   "Subparagraph": "(SX 210.9-03(15)(2))",
   "Topic": "942",
   "URI": "http://asc.fasb.org/extlink&oid=6876686&loc=d3e534808-122878"
  },
  "r484": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "210",
   "Subparagraph": "(SX 210.9-03(17))",
   "Topic": "942",
   "URI": "http://asc.fasb.org/extlink&oid=6876686&loc=d3e534808-122878"
  },
  "r485": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "210",
   "Subparagraph": "(SX 210.9-03(23))",
   "Topic": "942",
   "URI": "http://asc.fasb.org/extlink&oid=6876686&loc=d3e534808-122878"
  },
  "r486": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "210",
   "Subparagraph": "(SX 210.9-03(4))",
   "Topic": "942",
   "URI": "http://asc.fasb.org/extlink&oid=6876686&loc=d3e534808-122878"
  },
  "r487": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "210",
   "Subparagraph": "(SX 210.9-03(5))",
   "Topic": "942",
   "URI": "http://asc.fasb.org/extlink&oid=6876686&loc=d3e534808-122878"
  },
  "r488": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "210",
   "Subparagraph": "(SX 210.9-03(6)(a)(1))",
   "Topic": "942",
   "URI": "http://asc.fasb.org/extlink&oid=6876686&loc=d3e534808-122878"
  },
  "r489": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "210",
   "Subparagraph": "(SX 210.9-03.15(5))",
   "Topic": "942",
   "URI": "http://asc.fasb.org/extlink&oid=6876686&loc=d3e534808-122878"
  },
  "r49": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02.28,29)",
   "Topic": "210",
   "URI": "http://asc.fasb.org/extlink&oid=6877327&loc=d3e13212-122682"
  },
  "r490": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "210",
   "Subparagraph": "(SX 210.9-03.17)",
   "Topic": "942",
   "URI": "http://asc.fasb.org/extlink&oid=6876686&loc=d3e534808-122878"
  },
  "r491": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "210",
   "Subparagraph": "(SX 210.9-03.6(a)(1))",
   "Topic": "942",
   "URI": "http://asc.fasb.org/extlink&oid=6876686&loc=d3e534808-122878"
  },
  "r492": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "220",
   "Subparagraph": "(SX 210.9-04(22))",
   "Topic": "942",
   "URI": "http://asc.fasb.org/extlink&oid=114873765&loc=SL114874048-224260"
  },
  "r493": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "220",
   "Subparagraph": "(SX 210.9-04(23))",
   "Topic": "942",
   "URI": "http://asc.fasb.org/extlink&oid=114873765&loc=SL114874048-224260"
  },
  "r494": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "320",
   "Topic": "942",
   "URI": "http://asc.fasb.org/extlink&oid=75019621&loc=d3e62557-112803"
  },
  "r495": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "320",
   "Subparagraph": "(a)",
   "Topic": "942",
   "URI": "http://asc.fasb.org/extlink&oid=75019621&loc=d3e62586-112803"
  },
  "r496": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "320",
   "Topic": "942",
   "URI": "http://asc.fasb.org/extlink&oid=75019621&loc=d3e62586-112803"
  },
  "r497": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "405",
   "Topic": "942",
   "URI": "http://asc.fasb.org/extlink&oid=50488274&loc=d3e64164-112818"
  },
  "r498": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "210",
   "Subparagraph": "(SX 210.7-03(15)(b)(2))",
   "Topic": "944",
   "URI": "http://asc.fasb.org/extlink&oid=6879938&loc=d3e572229-122910"
  },
  "r499": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "210",
   "Subparagraph": "(SX 210.7-03(a)(1)(g))",
   "Topic": "944",
   "URI": "http://asc.fasb.org/extlink&oid=6879938&loc=d3e572229-122910"
  },
  "r5": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "6",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "210",
   "URI": "http://asc.fasb.org/extlink&oid=82887183&loc=d3e6911-107765"
  },
  "r50": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02.29-31)",
   "Topic": "210",
   "URI": "http://asc.fasb.org/extlink&oid=6877327&loc=d3e13212-122682"
  },
  "r500": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "210",
   "Subparagraph": "(SX 210.7-03(a)(12))",
   "Topic": "944",
   "URI": "http://asc.fasb.org/extlink&oid=6879938&loc=d3e572229-122910"
  },
  "r501": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "210",
   "Subparagraph": "(SX 210.7-03(a)(15)(b)(1))",
   "Topic": "944",
   "URI": "http://asc.fasb.org/extlink&oid=6879938&loc=d3e572229-122910"
  },
  "r502": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "210",
   "Subparagraph": "(SX 210.7-03(a)(19))",
   "Topic": "944",
   "URI": "http://asc.fasb.org/extlink&oid=6879938&loc=d3e572229-122910"
  },
  "r503": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "210",
   "Subparagraph": "(SX 210.7-03(a)(23)(a)(4))",
   "Topic": "944",
   "URI": "http://asc.fasb.org/extlink&oid=6879938&loc=d3e572229-122910"
  },
  "r504": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "210",
   "Subparagraph": "(SX 210.7-03(a)(25))",
   "Topic": "944",
   "URI": "http://asc.fasb.org/extlink&oid=6879938&loc=d3e572229-122910"
  },
  "r505": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "210",
   "Subparagraph": "(SX 210.7-03(a)(5))",
   "Topic": "944",
   "URI": "http://asc.fasb.org/extlink&oid=6879938&loc=d3e572229-122910"
  },
  "r506": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "210",
   "Subparagraph": "(SX 210.7-03(a)(8))",
   "Topic": "944",
   "URI": "http://asc.fasb.org/extlink&oid=6879938&loc=d3e572229-122910"
  },
  "r507": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "210",
   "Subparagraph": "(SX 210.7-03.(a),19)",
   "Topic": "944",
   "URI": "http://asc.fasb.org/extlink&oid=6879938&loc=d3e572229-122910"
  },
  "r508": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "220",
   "Subparagraph": "(SX 210.7-04(18))",
   "Topic": "944",
   "URI": "http://asc.fasb.org/extlink&oid=114873790&loc=SL114874131-224263"
  },
  "r509": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "220",
   "Subparagraph": "(SX 210.7-04(19))",
   "Topic": "944",
   "URI": "http://asc.fasb.org/extlink&oid=114873790&loc=SL114874131-224263"
  },
  "r51": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02.6(a))",
   "Topic": "210",
   "URI": "http://asc.fasb.org/extlink&oid=6877327&loc=d3e13212-122682"
  },
  "r510": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4H",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "40",
   "Topic": "944",
   "URI": "http://asc.fasb.org/extlink&oid=99384497&loc=SL65671331-158438"
  },
  "r511": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "80",
   "Subparagraph": "(e)",
   "Topic": "944",
   "URI": "http://asc.fasb.org/extlink&oid=6484115&loc=d3e19393-158473"
  },
  "r512": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1B",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "825",
   "Topic": "944",
   "URI": "http://asc.fasb.org/extlink&oid=99380617&loc=SL75241803-196195"
  },
  "r513": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "320",
   "Subparagraph": "(SX 210.12-12(2)(i))",
   "Topic": "946",
   "URI": "http://asc.fasb.org/extlink&oid=50485924&loc=d3e611133-123010"
  },
  "r514": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "320",
   "Subparagraph": "(SX 210.12-12C(1)(a))",
   "Topic": "946",
   "URI": "http://asc.fasb.org/extlink&oid=50485924&loc=d3e611225-123010"
  },
  "r515": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "5",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "320",
   "Subparagraph": "(SX 210.12-13(1))",
   "Topic": "946",
   "URI": "http://asc.fasb.org/extlink&oid=50485924&loc=d3e611282-123010"
  },
  "r516": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "7",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "320",
   "Subparagraph": "(SX 210.12-15(Column A))",
   "Topic": "946",
   "URI": "http://asc.fasb.org/extlink&oid=50485924&loc=d3e611379-123010"
  },
  "r517": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "310",
   "Subparagraph": "(SX 210.12-29(Footnote 4))",
   "Topic": "948",
   "URI": "http://asc.fasb.org/extlink&oid=6589523&loc=d3e617274-123014"
  },
  "r518": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "450",
   "Topic": "954",
   "URI": "http://asc.fasb.org/extlink&oid=6491354&loc=d3e6049-115624"
  },
  "r519": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "450",
   "Topic": "954",
   "URI": "http://asc.fasb.org/extlink&oid=6491354&loc=d3e6052-115624"
  },
  "r52": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02.6(b))",
   "Topic": "210",
   "URI": "http://asc.fasb.org/extlink&oid=6877327&loc=d3e13212-122682"
  },
  "r520": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "740",
   "Topic": "954",
   "URI": "http://asc.fasb.org/extlink&oid=6491622&loc=d3e9504-115650"
  },
  "r521": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "360",
   "Subparagraph": "(SX 210.12-28(Footnote 2))",
   "Topic": "970",
   "URI": "http://asc.fasb.org/extlink&oid=6590653&loc=d3e638233-123024"
  },
  "r522": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Topic": "985",
   "URI": "http://asc.fasb.org/extlink&oid=6501960&loc=d3e128462-111756"
  },
  "r523": {
   "Name": "Exchange Act",
   "Number": "240",
   "Publisher": "SEC",
   "Section": "12",
   "Subsection": "b"
  },
  "r524": {
   "Name": "Exchange Act",
   "Number": "240",
   "Publisher": "SEC",
   "Section": "12",
   "Subsection": "d1-1"
  },
  "r525": {
   "Name": "Form 10-Q",
   "Number": "240",
   "Publisher": "SEC",
   "Section": "13",
   "Subsection": "a-13"
  },
  "r526": {
   "Name": "Forms 10-K, 10-Q, 20-F",
   "Number": "240",
   "Publisher": "SEC",
   "Section": "13",
   "Subsection": "a-1-"
  },
  "r527": {
   "Name": "Regulation 12B",
   "Number": "240",
   "Publisher": "SEC",
   "Section": "12",
   "Subsection": "b-2"
  },
  "r528": {
   "Name": "Regulation S-T",
   "Number": "232",
   "Publisher": "SEC",
   "Section": "405"
  },
  "r529": {
   "Footnote": "2",
   "Name": "Regulation S-X (SX)",
   "Number": "210",
   "Publisher": "SEC",
   "Section": "12",
   "Subsection": "28"
  },
  "r53": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02.9)",
   "Topic": "210",
   "URI": "http://asc.fasb.org/extlink&oid=6877327&loc=d3e13212-122682"
  },
  "r530": {
   "Footnote": "4",
   "Name": "Regulation S-X (SX)",
   "Number": "210",
   "Publisher": "SEC",
   "Section": "12",
   "Subsection": "29"
  },
  "r531": {
   "Name": "Regulation S-X (SX)",
   "Number": "210",
   "Publisher": "SEC",
   "Section": "12",
   "Subsection": "09"
  },
  "r54": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(a)",
   "Topic": "210",
   "URI": "http://asc.fasb.org/extlink&oid=51824906&loc=SL20225862-175312"
  },
  "r55": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(b)",
   "Topic": "210",
   "URI": "http://asc.fasb.org/extlink&oid=51824906&loc=SL20225862-175312"
  },
  "r56": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(c)",
   "Topic": "210",
   "URI": "http://asc.fasb.org/extlink&oid=51824906&loc=SL20225862-175312"
  },
  "r57": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Topic": "210",
   "URI": "http://asc.fasb.org/extlink&oid=51824906&loc=SL20225862-175312"
  },
  "r58": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Topic": "210",
   "URI": "http://asc.fasb.org/extlink&oid=51824906&loc=SL20225877-175312"
  },
  "r59": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "10",
   "Publisher": "FASB",
   "Section": "55",
   "SubTopic": "20",
   "Topic": "210",
   "URI": "http://asc.fasb.org/extlink&oid=99393222&loc=SL20226008-175313"
  },
  "r6": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "8",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "210",
   "URI": "http://asc.fasb.org/extlink&oid=82887183&loc=d3e6935-107765"
  },
  "r60": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "7",
   "Publisher": "FASB",
   "Section": "55",
   "SubTopic": "20",
   "Topic": "210",
   "URI": "http://asc.fasb.org/extlink&oid=99393222&loc=SL20226000-175313"
  },
  "r61": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "10A",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "220",
   "URI": "http://asc.fasb.org/extlink&oid=114867106&loc=SL7669646-108580"
  },
  "r62": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "10A",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Subparagraph": "(d)",
   "Topic": "220",
   "URI": "http://asc.fasb.org/extlink&oid=114867106&loc=SL7669646-108580"
  },
  "r63": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "10A",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Subparagraph": "(e)",
   "Topic": "220",
   "URI": "http://asc.fasb.org/extlink&oid=114867106&loc=SL7669646-108580"
  },
  "r64": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "10A",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Subparagraph": "(f)",
   "Topic": "220",
   "URI": "http://asc.fasb.org/extlink&oid=114867106&loc=SL7669646-108580"
  },
  "r65": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "10A",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "220",
   "URI": "http://asc.fasb.org/extlink&oid=114867106&loc=SL7669646-108580"
  },
  "r66": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "11",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "220",
   "URI": "http://asc.fasb.org/extlink&oid=114867106&loc=d3e637-108580"
  },
  "r67": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "12",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "220",
   "URI": "http://asc.fasb.org/extlink&oid=114867106&loc=d3e640-108580"
  },
  "r68": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "14",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "220",
   "URI": "http://asc.fasb.org/extlink&oid=114867106&loc=d3e681-108580"
  },
  "r69": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "14A",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "220",
   "URI": "http://asc.fasb.org/extlink&oid=114867106&loc=SL7669686-108580"
  },
  "r7": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "9",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "210",
   "URI": "http://asc.fasb.org/extlink&oid=82887183&loc=d3e7018-107765"
  },
  "r70": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "15",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "220",
   "URI": "http://asc.fasb.org/extlink&oid=114867106&loc=d3e689-108580"
  },
  "r71": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "17A",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "220",
   "URI": "http://asc.fasb.org/extlink&oid=114867106&loc=SL34724391-108580"
  },
  "r72": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "17B",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "220",
   "URI": "http://asc.fasb.org/extlink&oid=114867106&loc=SL34724394-108580"
  },
  "r73": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1A",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "220",
   "URI": "http://asc.fasb.org/extlink&oid=114867106&loc=SL7669619-108580"
  },
  "r74": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1A",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "220",
   "URI": "http://asc.fasb.org/extlink&oid=114867106&loc=SL7669619-108580"
  },
  "r75": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1A",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Subparagraph": "(c)",
   "Topic": "220",
   "URI": "http://asc.fasb.org/extlink&oid=114867106&loc=SL7669619-108580"
  },
  "r76": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1B",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "220",
   "URI": "http://asc.fasb.org/extlink&oid=114867106&loc=SL7669625-108580"
  },
  "r77": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1B",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "220",
   "URI": "http://asc.fasb.org/extlink&oid=114867106&loc=SL7669625-108580"
  },
  "r78": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "5",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "220",
   "URI": "http://asc.fasb.org/extlink&oid=114867106&loc=d3e557-108580"
  },
  "r79": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.3-03(e))",
   "Topic": "220",
   "URI": "http://asc.fasb.org/extlink&oid=115205541&loc=SL114868656-224227"
  },
  "r8": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "210",
   "URI": "http://asc.fasb.org/extlink&oid=6361739&loc=d3e7789-107766"
  },
  "r80": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-03(1))",
   "Topic": "220",
   "URI": "http://asc.fasb.org/extlink&oid=115205541&loc=SL114868664-224227"
  },
  "r81": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-03(20))",
   "Topic": "220",
   "URI": "http://asc.fasb.org/extlink&oid=115205541&loc=SL114868664-224227"
  },
  "r82": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-03(21))",
   "Topic": "220",
   "URI": "http://asc.fasb.org/extlink&oid=115205541&loc=SL114868664-224227"
  },
  "r83": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-03(4))",
   "Topic": "220",
   "URI": "http://asc.fasb.org/extlink&oid=115205541&loc=SL114868664-224227"
  },
  "r84": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-03.1)",
   "Topic": "220",
   "URI": "http://asc.fasb.org/extlink&oid=115205541&loc=SL114868664-224227"
  },
  "r85": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-03.1,2)",
   "Topic": "220",
   "URI": "http://asc.fasb.org/extlink&oid=115205541&loc=SL114868664-224227"
  },
  "r86": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-03.2(a),(d))",
   "Topic": "220",
   "URI": "http://asc.fasb.org/extlink&oid=115205541&loc=SL114868664-224227"
  },
  "r87": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-03.4)",
   "Topic": "220",
   "URI": "http://asc.fasb.org/extlink&oid=115205541&loc=SL114868664-224227"
  },
  "r88": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-03.7)",
   "Topic": "220",
   "URI": "http://asc.fasb.org/extlink&oid=115205541&loc=SL114868664-224227"
  },
  "r89": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-03.9)",
   "Topic": "220",
   "URI": "http://asc.fasb.org/extlink&oid=115205541&loc=SL114868664-224227"
  },
  "r9": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02(1))",
   "Topic": "210",
   "URI": "http://asc.fasb.org/extlink&oid=6877327&loc=d3e13212-122682"
  },
  "r90": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "12",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "230",
   "URI": "http://asc.fasb.org/extlink&oid=109223946&loc=d3e3179-108585"
  },
  "r91": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "13",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "230",
   "URI": "http://asc.fasb.org/extlink&oid=109223946&loc=d3e3213-108585"
  },
  "r92": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "13",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Subparagraph": "(c)",
   "Topic": "230",
   "URI": "http://asc.fasb.org/extlink&oid=109223946&loc=d3e3213-108585"
  },
  "r93": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "13",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "230",
   "URI": "http://asc.fasb.org/extlink&oid=109223946&loc=d3e3213-108585"
  },
  "r94": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "14",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "230",
   "URI": "http://asc.fasb.org/extlink&oid=109223946&loc=d3e3255-108585"
  },
  "r95": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "15",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "230",
   "URI": "http://asc.fasb.org/extlink&oid=109223946&loc=d3e3291-108585"
  },
  "r96": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "24",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "230",
   "URI": "http://asc.fasb.org/extlink&oid=109223946&loc=d3e3521-108585"
  },
  "r97": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "25",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "230",
   "URI": "http://asc.fasb.org/extlink&oid=109223946&loc=d3e3536-108585"
  },
  "r98": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "28",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "230",
   "URI": "http://asc.fasb.org/extlink&oid=109223946&loc=d3e3602-108585"
  },
  "r99": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "28",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "230",
   "URI": "http://asc.fasb.org/extlink&oid=109223946&loc=d3e3602-108585"
  }
 },
 "version": "2.1"
}
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>77
<FILENAME>R66.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.19.3.a.u2</span><table class="report" border="0" cellspacing="2" id="idp6633894928">
<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, 2019</div></th>
<th class="th"><div>Dec. 31, 2018</div></th>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_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="top.Show.showAR( this, 'defref_us-gaap_InventoryRawMaterialsNetOfReserves', window );">Raw materials</a></td>
<td class="nump">$ 27,285<span></span>
</td>
<td class="nump">$ 42,738<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_InventoryWorkInProcessNetOfReserves', window );">Work-in-process</a></td>
<td class="nump">5,503<span></span>
</td>
<td class="nump">3,435<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_InventoryFinishedGoodsNetOfReserves', window );">Finished goods</a></td>
<td class="nump">27,473<span></span>
</td>
<td class="nump">37,109<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_InventoryNet', window );">Inventories</a></td>
<td class="nump">$ 60,261<span></span>
</td>
<td class="nump">$ 83,282<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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Carrying amount, 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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 330<br> -SubTopic 10<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SAB Topic 5.BB)<br> -URI http://asc.fasb.org/extlink&amp;oid=27011343&amp;loc=d3e100047-122729<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(6)(a)(1))<br> -URI http://asc.fasb.org/extlink&amp;oid=6877327&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount after valuation and LIFO reserves of inventory expected to be sold, or consumed within one year or operating cycle, if longer.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section 45<br> -Paragraph 1<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=82887183&amp;loc=d3e6676-107765<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 330<br> -SubTopic 10<br> -Section 35<br> -Paragraph 2<br> -URI http://asc.fasb.org/extlink&amp;oid=68049868&amp;loc=d3e3927-108312<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02.6(a))<br> -URI http://asc.fasb.org/extlink&amp;oid=6877327&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_InventoryNet</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_InventoryRawMaterialsNetOfReserves">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Carrying amount, 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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 330<br> -SubTopic 10<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SAB Topic 5.BB)<br> -URI http://asc.fasb.org/extlink&amp;oid=27011343&amp;loc=d3e100047-122729<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(6)(a)(4))<br> -URI http://asc.fasb.org/extlink&amp;oid=6877327&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Carrying amount, 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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 330<br> -SubTopic 10<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SAB Topic 5.BB)<br> -URI http://asc.fasb.org/extlink&amp;oid=27011343&amp;loc=d3e100047-122729<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(6)(a)(3))<br> -URI http://asc.fasb.org/extlink&amp;oid=6877327&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_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>78
<FILENAME>R96.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.19.3.a.u2</span><table class="report" border="0" cellspacing="2" id="idp6889564400">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Taxes - Additional Information (Details) - USD ($)<br></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>
</tr>
<tr>
<th class="th"><div>Jan. 01, 2018</div></th>
<th class="th"><div>Dec. 31, 2019</div></th>
<th class="th"><div>Dec. 31, 2019</div></th>
<th class="th"><div>Dec. 31, 2018</div></th>
<th class="th"><div>Dec. 31, 2017</div></th>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_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>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_cgnx_EffectiveIncomeTaxRateReconciliationMigrationofAcquiredIntellectualProperty', window );">Discrete tax expense for migration of acquired intellectual property</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">18.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="top.Show.showAR( this, 'defref_us-gaap_UnrecognizedTaxBenefits', window );">Reserve for tax uncertainties</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 11,591,000<span></span>
</td>
<td class="nump">$ 11,591,000<span></span>
</td>
<td class="nump">$ 7,294,000<span></span>
</td>
<td class="nump">$ 6,749,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="top.Show.showAR( this, 'defref_us-gaap_IncomeTaxReconciliationForeignIncomeTaxRateDifferential', window );">Discrete tax benefit for changes to international tax structure</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">87,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="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_cgnx_DeferredTaxAssetsForeignTaxStructureChange', window );">Foreign tax structure deferred tax asset</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">437,500,000<span></span>
</td>
<td class="nump">437,500,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="top.Show.showAR( this, 'defref_cgnx_DeferredTaxLiabilitiesTaxCutsAndJobsActGlobalIntangibleLowTaxIncome', window );">GILTI tax basis differences</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">350,000,000<span></span>
</td>
<td class="nump">350,000,000<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="top.Show.showAR( this, 'defref_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesDomestic', window );">Domestic income from continuing operations before taxes</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">31,396,000<span></span>
</td>
<td class="nump">39,042,000<span></span>
</td>
<td class="nump">30,345,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="top.Show.showAR( this, 'defref_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign', window );">Foreign income from continuing operations before taxes</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">131,598,000<span></span>
</td>
<td class="nump">195,532,000<span></span>
</td>
<td class="nump">236,119,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="top.Show.showAR( this, 'defref_cgnx_TaxCutsAndJobsActOf2017IncompleteAccountingChangeInTaxRateDeferredTaxAssetProvisionalIncomeTaxExpense', window );">Tax expense from write down of deferred tax assets</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 3,240,000<span></span>
</td>
<td class="nump">12,523,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="top.Show.showAR( this, 'defref_cgnx_TaxCutsAndJobsActOf2017IncompleteAccountingTransitionTaxForAccumulatedForeignEarningsProvisionalIncomeTaxExpense', window );">Estimated tax expense</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">11,028,000<span></span>
</td>
<td class="nump">$ 101,379,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="top.Show.showAR( this, 'defref_cgnx_TaxCutsAndJobsActOf2017TransitionTaxForAccumulatedForeignEarningsLiability', window );">One-time transition tax payable</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 90,351,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate', window );">Income tax rate</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">21.00%<span></span>
</td>
<td class="nump">21.00%<span></span>
</td>
<td class="nump">35.00%<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_Cash', window );">Cash</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">155,498,000<span></span>
</td>
<td class="nump">$ 155,498,000<span></span>
</td>
<td class="nump">$ 104,655,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_EffectiveIncomeTaxRateReconciliationForeignIncomeTaxRateDifferential', window );">Foreign tax rate differential</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">9.00%<span></span>
</td>
<td class="nump">9.00%<span></span>
</td>
<td class="nump">27.00%<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitAmount', window );">Reduction of income tax expense for adoption of ASU 2016-09</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 6,472,000<span></span>
</td>
<td class="nump">$ 8,488,000<span></span>
</td>
<td class="nump">$ 38,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="top.Show.showAR( this, 'defref_us-gaap_EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitPercent', window );">Discrete tax benefit related to employee stock option exercises</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">4.00%<span></span>
</td>
<td class="nump">4.00%<span></span>
</td>
<td class="nump">14.00%<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_NetCashProvidedByUsedInOperatingActivities', window );">Net cash provided by operating activities</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 253,225,000<span></span>
</td>
<td class="nump">$ 223,454,000<span></span>
</td>
<td class="nump">$ 224,323,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="top.Show.showAR( this, 'defref_us-gaap_NetCashProvidedByUsedInFinancingActivities', window );">Net cash used in financing activities</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">32,233,000<span></span>
</td>
<td class="nump">209,904,000<span></span>
</td>
<td class="nump">100,121,000<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestExpense', window );">Income tax penalties and interest expense</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">116,000<span></span>
</td>
<td class="nump">91,000<span></span>
</td>
<td class="nump">71,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="top.Show.showAR( this, 'defref_us-gaap_DeferredTaxLiabilitiesGrossNoncurrent', window );">Deferred tax liabilities, gross</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">12,591,000<span></span>
</td>
<td class="nump">12,591,000<span></span>
</td>
<td class="nump">8,134,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="top.Show.showAR( this, 'defref_us-gaap_LiabilityForUncertainTaxPositionsNoncurrent', window );">Reserve for income taxes</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">11,563,000<span></span>
</td>
<td class="nump">11,563,000<span></span>
</td>
<td class="nump">7,106,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="top.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="nump">1,028,000<span></span>
</td>
<td class="nump">1,028,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="top.Show.showAR( this, 'defref_us-gaap_UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestAccrued', window );">Interest and penalties, gross</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">1,000,000<span></span>
</td>
<td class="nump">1,000,000<span></span>
</td>
<td class="nump">840,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="top.Show.showAR( this, 'defref_cgnx_MinimumDecreaseInIncomeTaxExpenseDueToReleaseInReserves', window );">Minimum decrease in income tax expense due to release in reserves</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">1,300,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="top.Show.showAR( this, 'defref_cgnx_MaximumDecreaseInIncomeTaxExpenseDueToReleaseInReserves', window );">Maximum decrease in income tax expense due to release in reserves</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">1,400,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="top.Show.showAR( this, 'defref_us-gaap_DeferredTaxLiabilitiesGrossCurrent', window );">Net non-current deferred tax liabilities</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="num">(352,446,000)<span></span>
</td>
<td class="num">(352,446,000)<span></span>
</td>
<td class="num">(1,006,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="top.Show.showAR( this, 'defref_us-gaap_DeferredTaxLiabilitiesGoodwillAndIntangibleAssetsIntangibleAssets', window );">Non deductible federal and state liabilities</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">44,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_IncomeTaxesPaidNet', window );">Income tax paid net</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 13,443,000<span></span>
</td>
<td class="nump">$ 41,430,000<span></span>
</td>
<td class="nump">11,802,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="top.Show.showAR( this, 'defref_cgnx_OpenTaxYearStateAuthorities', window );">Open Tax Year State Authorities</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">2013 through 2016<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_cgnx_OpentaxyearUnitedStatesInternalRevenueService', window );">Open tax year United States Internal Revenue Service</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">2013 through 2016<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_cgnx_Opentaxyearvarioustaxingauthorities', window );">Open tax year, various taxing authorities</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">2012 through 2016<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_cgnx_TaxYearsCoveredThroughAdvancedPricingAgreement', window );">Tax Years Covered Through Advanced Pricing Agreement</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">2006 through 2011<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_cgnx_TaxyearsforAPAagreement', window );">Tax years for APA agreement</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">Between 2014 and 2018<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_cgnx_Stateresearchandexperimentationtaxcarryforwards', window );">State research and experimentation tax carryforwards</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">2014 through 2016<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_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>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_DeferredTaxAssetsValuationAllowance', window );">Deferred tax assets, valuation allowance</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">1,200,000<span></span>
</td>
<td class="nump">$ 1,200,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_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>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_DeferredTaxAssetsTaxCreditCarryforwardsResearch', window );">Deferred tax assets, tax credit carryforwards, research</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">9,519,000<span></span>
</td>
<td class="nump">9,519,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_srt_StatementGeographicalAxis=cgnx_OtherThantheU.SMember', window );">Other Than the U.S [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_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>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_Cash', window );">Cash</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">370,953,000<span></span>
</td>
<td class="nump">$ 370,953,000<span></span>
</td>
<td class="nump">$ 446,346,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AdjustmentsForNewAccountingPronouncementsAxis=us-gaap_AccountingStandardsUpdate201616Member', window );">Accounting Standards Update 2016-16 [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_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>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_CumulativeEffectOnRetainedEarningsNetOfTax1', window );">Cumulative effect on retained earnings, net of tax</a></td>
<td class="nump">$ 5,961,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="top.Show.showAR( this, 'defref_us-gaap_AdjustmentsForNewAccountingPronouncementsAxis=cgnx_AccountingStandardsUpdate201609StatutoryTaxWithholdingComponentMember', window );">Accounting Standards Update 2016-09, Statutory Tax Withholding Component [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_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>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_NetCashProvidedByUsedInFinancingActivities', window );">Net cash used in financing activities</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 9,964,000<span></span>
</td>
<td class="nump">$ 7,871,000<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_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>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate', window );">Income tax rate</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">12.50%<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_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>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate', window );">Income tax rate</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</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="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_IncomeTaxAuthorityAxis=us-gaap_DomesticCountryMember', window );">Domestic Tax Authority [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate', window );">Income tax rate</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">21.00%<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionAxis=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>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_cgnx_EffectiveIncomeTaxRateReconciliationMigrationofAcquiredIntellectualProperty', window );">Discrete tax expense for migration of acquired intellectual property</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">2852800000.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="top.Show.showAR( this, 'defref_us-gaap_UnrecognizedTaxBenefits', window );">Reserve for tax uncertainties</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 3,700,000<span></span>
</td>
<td class="nump">$ 3,700,000<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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Deferred Tax Assets, Foreign Tax Structure Change</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">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_DeferredTaxLiabilitiesTaxCutsAndJobsActGlobalIntangibleLowTaxIncome">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">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_EffectiveIncomeTaxRateReconciliationMigrationofAcquiredIntellectualProperty">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Effective Income Tax Rate Reconciliation, Migration of Acquired Intellectual Property</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cgnx_EffectiveIncomeTaxRateReconciliationMigrationofAcquiredIntellectualProperty</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>num:percentItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_cgnx_MaximumDecreaseInIncomeTaxExpenseDueToReleaseInReserves">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Maximum decrease in income tax expense due to release in reserves.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">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_OpenTaxYearStateAuthorities">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Open Tax Year State Authorities</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cgnx_OpenTaxYearStateAuthorities</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_cgnx_OpentaxyearUnitedStatesInternalRevenueService">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Open tax years open to examination within the United States by the Internal Revenue Service</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cgnx_OpentaxyearUnitedStatesInternalRevenueService</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_cgnx_Opentaxyearvarioustaxingauthorities">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Open tax year, various taxing authorities</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cgnx_Opentaxyearvarioustaxingauthorities</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_cgnx_Stateresearchandexperimentationtaxcarryforwards">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>State research and experimentation tax carryforwards</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cgnx_Stateresearchandexperimentationtaxcarryforwards</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_cgnx_TaxCutsAndJobsActOf2017IncompleteAccountingChangeInTaxRateDeferredTaxAssetProvisionalIncomeTaxExpense">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Tax Cuts And Jobs Act Of 2017, Incomplete Accounting, Change In Tax Rate, Deferred Tax Asset, Provisional Income Tax Expense</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cgnx_TaxCutsAndJobsActOf2017IncompleteAccountingChangeInTaxRateDeferredTaxAssetProvisionalIncomeTaxExpense</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_TaxCutsAndJobsActOf2017IncompleteAccountingTransitionTaxForAccumulatedForeignEarningsProvisionalIncomeTaxExpense">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Tax Cuts And Jobs Act Of 2017, Incomplete Accounting, Transition Tax For Accumulated Foreign Earnings, Provisional Income Tax Expense</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cgnx_TaxCutsAndJobsActOf2017IncompleteAccountingTransitionTaxForAccumulatedForeignEarningsProvisionalIncomeTaxExpense</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_TaxCutsAndJobsActOf2017TransitionTaxForAccumulatedForeignEarningsLiability">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Tax Cuts And Jobs Act Of 2017, Transition Tax For Accumulated Foreign Earnings, Liability</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cgnx_TaxCutsAndJobsActOf2017TransitionTaxForAccumulatedForeignEarningsLiability</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_TaxYearsCoveredThroughAdvancedPricingAgreement">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Tax years covered through Advanced Pricing Agreement.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cgnx_TaxYearsCoveredThroughAdvancedPricingAgreement</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_cgnx_TaxyearsforAPAagreement">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Tax years for APA agreement</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cgnx_TaxyearsforAPAagreement</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>us-types:durationStringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<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_Unrecognizedtaxbenefitshownasareductiontononcurrentdeferredtaxassets">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">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_Cash">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of currency on hand as well as demand deposits with banks or financial institutions. Includes other kinds of accounts that have the general characteristics of demand deposits. Excludes cash and cash equivalents within disposal group and discontinued operation.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02.1)<br> -URI http://asc.fasb.org/extlink&amp;oid=6877327&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_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_CumulativeEffectOnRetainedEarningsNetOfTax1">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of the cumulative effect on retained earnings net of related income tax effect.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 9<br> -URI http://asc.fasb.org/extlink&amp;oid=109234566&amp;loc=d3e22663-107794<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_CumulativeEffectOnRetainedEarningsNetOfTax1</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_DeferredTaxAssetsTaxCreditCarryforwardsResearch">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount before allocation of valuation allowances of deferred tax asset attributable to deductible research tax credit carryforwards.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 8<br> -URI http://asc.fasb.org/extlink&amp;oid=84230637&amp;loc=d3e32632-109319<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=84230637&amp;loc=d3e32559-109319<br><br>Reference 3: http://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 6<br> -URI http://asc.fasb.org/extlink&amp;oid=84230637&amp;loc=d3e32621-109319<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DeferredTaxAssetsTaxCreditCarryforwardsResearch</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DeferredTaxAssetsValuationAllowance">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of deferred tax assets for which it is more likely than not that a tax benefit will not be realized.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://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> -Subparagraph (c)<br> -URI http://asc.fasb.org/extlink&amp;oid=84230637&amp;loc=d3e32537-109319<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DeferredTaxAssetsValuationAllowance</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DeferredTaxLiabilitiesGoodwillAndIntangibleAssetsIntangibleAssets">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of deferred tax liability attributable to taxable temporary differences from intangible assets other than goodwill.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 25<br> -Paragraph 20<br> -URI http://asc.fasb.org/extlink&amp;oid=115928272&amp;loc=d3e28680-109314<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 6<br> -URI http://asc.fasb.org/extlink&amp;oid=84230637&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 8<br> -URI http://asc.fasb.org/extlink&amp;oid=84230637&amp;loc=d3e32632-109319<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DeferredTaxLiabilitiesGoodwillAndIntangibleAssetsIntangibleAssets</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DeferredTaxLiabilitiesGrossCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of deferred tax liability attributable to taxable temporary differences classified as current.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 45<br> -Paragraph 4<br> -URI http://asc.fasb.org/extlink&amp;oid=84176650&amp;loc=d3e31917-109318<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 2<br> -URI http://asc.fasb.org/extlink&amp;oid=84230637&amp;loc=d3e32537-109319<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DeferredTaxLiabilitiesGrossCurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_DeferredTaxLiabilitiesGrossNoncurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Gross amount of noncurrent deferred tax liabilities, which result from applying the applicable tax rate to taxable temporary differences pertaining to each jurisdiction to which the entity is obligated to pay income tax.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 45<br> -Paragraph 4<br> -URI http://asc.fasb.org/extlink&amp;oid=84176650&amp;loc=d3e31917-109318<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 2<br> -URI http://asc.fasb.org/extlink&amp;oid=84230637&amp;loc=d3e32537-109319<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DeferredTaxLiabilitiesGrossNoncurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Percentage of domestic federal statutory tax rate applicable to pretax income (loss).</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://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)<br> -URI http://asc.fasb.org/extlink&amp;oid=34349781&amp;loc=d3e330036-122817<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 12<br> -URI http://asc.fasb.org/extlink&amp;oid=84230637&amp;loc=d3e32687-109319<br><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 13<br> -URI http://asc.fasb.org/extlink&amp;oid=84230637&amp;loc=d3e32698-109319<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>num:percentItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_EffectiveIncomeTaxRateReconciliationForeignIncomeTaxRateDifferential">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Percentage of 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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 13<br> -URI http://asc.fasb.org/extlink&amp;oid=84230637&amp;loc=d3e32698-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 S99<br> -Paragraph 1<br> -Subparagraph (SAB TOPIC 6.I)<br> -URI http://asc.fasb.org/extlink&amp;oid=34349781&amp;loc=d3e330036-122817<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 12<br> -URI http://asc.fasb.org/extlink&amp;oid=84230637&amp;loc=d3e32687-109319<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_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>num:percentItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitAmount">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of difference between 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 excess tax benefit for share-based compensation cost.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 12<br> -URI http://asc.fasb.org/extlink&amp;oid=84230637&amp;loc=d3e32687-109319<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitAmount</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitPercent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Percentage of 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 excess tax benefit for share-based compensation cost.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 12<br> -URI http://asc.fasb.org/extlink&amp;oid=84230637&amp;loc=d3e32687-109319<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_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>num:percentItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesDomestic">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The portion of earnings or loss from continuing operations before income taxes that is attributable to domestic operations.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 235<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08.(h)(1)(i))<br> -URI http://asc.fasb.org/extlink&amp;oid=26873400&amp;loc=d3e23780-122690<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The portion of 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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 235<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08.(h)(1)(i))<br> -URI http://asc.fasb.org/extlink&amp;oid=26873400&amp;loc=d3e23780-122690<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_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_IncomeTaxReconciliationForeignIncomeTaxRateDifferential">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of the difference between reported income tax expense (benefit) and expected income tax expense (benefit) computed by applying the domestic federal statutory income tax rates to pretax income (loss) from continuing operations attributable to foreign income tax expense (benefit).</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://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 13<br> -URI http://asc.fasb.org/extlink&amp;oid=84230637&amp;loc=d3e32698-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 12<br> -URI http://asc.fasb.org/extlink&amp;oid=84230637&amp;loc=d3e32687-109319<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 235<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(h)(1))<br> -URI http://asc.fasb.org/extlink&amp;oid=26873400&amp;loc=d3e23780-122690<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncomeTaxReconciliationForeignIncomeTaxRateDifferential</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncomeTaxesPaidNet">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The amount of cash paid during the current period to foreign, federal, state, and local authorities as taxes on income, net of any cash received during the current period as refunds for the overpayment of taxes.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -URI http://asc.fasb.org/extlink&amp;oid=98513485&amp;loc=d3e4297-108586<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncomeTaxesPaidNet</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LiabilityForUncertainTaxPositionsNoncurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount recognized for uncertainty in income taxes classified as noncurrent.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02.24)<br> -URI http://asc.fasb.org/extlink&amp;oid=6877327&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LiabilityForUncertainTaxPositionsNoncurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_NetCashProvidedByUsedInFinancingActivities">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of cash inflow (outflow) from financing activities, including discontinued operations. Financing activity cash flows include obtaining resources from owners and providing them with a return on, and a return of, their investment; borrowing money and repaying amounts borrowed, or settling the obligation; and obtaining and paying for other resources obtained from creditors on long-term credit.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 24<br> -URI http://asc.fasb.org/extlink&amp;oid=109223946&amp;loc=d3e3521-108585<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_NetCashProvidedByUsedInFinancingActivities</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_NetCashProvidedByUsedInOperatingActivities">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of cash inflow (outflow) from operating activities, including discontinued operations. Operating activity cash flows include transactions, adjustments, and changes in value not defined as investing or financing activities.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 25<br> -URI http://asc.fasb.org/extlink&amp;oid=109223946&amp;loc=d3e3536-108585<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 24<br> -URI http://asc.fasb.org/extlink&amp;oid=109223946&amp;loc=d3e3521-108585<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 28<br> -URI http://asc.fasb.org/extlink&amp;oid=109223946&amp;loc=d3e3602-108585<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_NetCashProvidedByUsedInOperatingActivities</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_TaxCreditCarryforwardLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">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_UnrecognizedTaxBenefits">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of unrecognized tax benefits.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 45<br> -Paragraph 10B<br> -URI http://asc.fasb.org/extlink&amp;oid=84176650&amp;loc=SL37586934-109318<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 15A<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=84230637&amp;loc=SL6600010-109319<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_UnrecognizedTaxBenefits</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestAccrued">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount 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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 15<br> -Subparagraph (c)<br> -URI http://asc.fasb.org/extlink&amp;oid=84230637&amp;loc=d3e32718-109319<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of expense for 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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 15<br> -Subparagraph (c)<br> -URI http://asc.fasb.org/extlink&amp;oid=84230637&amp;loc=d3e32718-109319<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_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_srt_StatementGeographicalAxis=cgnx_OtherThantheU.SMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_StatementGeographicalAxis=cgnx_OtherThantheU.SMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AdjustmentsForNewAccountingPronouncementsAxis=us-gaap_AccountingStandardsUpdate201616Member">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AdjustmentsForNewAccountingPronouncementsAxis=us-gaap_AccountingStandardsUpdate201616Member</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AdjustmentsForNewAccountingPronouncementsAxis=cgnx_AccountingStandardsUpdate201609StatutoryTaxWithholdingComponentMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AdjustmentsForNewAccountingPronouncementsAxis=cgnx_AccountingStandardsUpdate201609StatutoryTaxWithholdingComponentMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncomeTaxAuthorityAxis=us-gaap_ForeignCountryMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncomeTaxAuthorityAxis=us-gaap_ForeignCountryMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncomeTaxAuthorityNameAxis=us-gaap_RevenueCommissionersIrelandMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncomeTaxAuthorityNameAxis=us-gaap_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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncomeTaxAuthorityNameAxis=us-gaap_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_IncomeTaxAuthorityAxis=us-gaap_DomesticCountryMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncomeTaxAuthorityAxis=us-gaap_DomesticCountryMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_BusinessAcquisitionAxis=cgnx_SualabCo.Ltd.Member">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_BusinessAcquisitionAxis=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>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>79
<FILENAME>R92.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.19.3.a.u2</span><table class="report" border="0" cellspacing="2" id="idp6890992560">
<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) - $ / 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, 2019</div></th>
<th class="th"><div>Dec. 31, 2018</div></th>
<th class="th"><div>Dec. 31, 2017</div></th>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AwardTypeAxis=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="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber', window );">Share-based Compensation Arrangement by Share-based Payment Award, Equity Instruments Other than Options, Nonvested, Number</a></td>
<td class="nump">150<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="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue', window );">Share-based Compensation Arrangement by Share-based Payment Award, Equity Instruments Other than Options, Nonvested, Weighted Average Grant Date Fair Value</a></td>
<td class="nump">$ 48.63<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="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod', window );">Share-based Compensation Arrangement by Share-based Payment Award, Equity Instruments Other than Options, Vested in Period</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="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod', window );">Granted</a></td>
<td class="nump">151<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue', window );">Granted, weighted-average exercise price</a></td>
<td class="nump">$ 48.61<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod', window );">Share-based Compensation Arrangement by Share-based Payment Award, Equity Instruments Other than Options, Forfeited in Period</a></td>
<td class="nump">1<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AwardTypeAxis=us-gaap_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>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate', window );">Risk-free rate</a></td>
<td class="nump">2.70%<span></span>
</td>
<td class="nump">2.90%<span></span>
</td>
<td class="nump">2.40%<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate', window );">Expected dividend yield</a></td>
<td class="nump">0.39%<span></span>
</td>
<td class="nump">0.35%<span></span>
</td>
<td class="nump">0.40%<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_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">41.00%<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1', window );">Expected term (in years)</a></td>
<td class="text">5 years 3 months 18 days<span></span>
</td>
<td class="text">5 years 4 months 24 days<span></span>
</td>
<td class="text">5 years 4 months 24 days<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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The number of equity-based payment instruments, excluding stock (or unit) options, that were forfeited during the reporting period.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(iv)(3)<br> -URI http://asc.fasb.org/extlink&amp;oid=109197908&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_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_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The number of grants made during the period on other than stock (or unit) option plans (for example, phantom stock or unit plan, stock or unit appreciation rights plan, performance target plan).</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(2)(iii)(1)<br> -URI http://asc.fasb.org/extlink&amp;oid=109197908&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The weighted average fair value at grant date for nonvested equity-based awards issued during the period on other than stock (or unit) option plans (for example, phantom stock or unit plan, stock or unit appreciation rights plan, performance target plan).</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(2)(iii)(1)<br> -URI http://asc.fasb.org/extlink&amp;oid=109197908&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>num:perShareItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The number of 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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(2)(i)-(ii)<br> -URI http://asc.fasb.org/extlink&amp;oid=109197908&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The weighted average fair value of nonvested awards on equity-based plans excluding option plans (for example, phantom stock or unit plan, stock or unit appreciation rights plan, revenue or profit achievement stock award plan) for which the employer is contingently obligated to issue equity instruments or transfer assets to an employee who has not yet satisfied service or performance criteria necessary to gain title to proceeds from the sale of the award or underlying shares or units.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(2)(i)-(ii)<br> -URI http://asc.fasb.org/extlink&amp;oid=109197908&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>num:perShareItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The number of equity-based payment instruments, excluding stock (or unit) options, that vested during the reporting period.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(2)(iii)(2)<br> -URI http://asc.fasb.org/extlink&amp;oid=109197908&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_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_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The estimated dividend rate (a percentage of the share price) to be paid (expected dividends) to holders of the underlying shares over the option's term.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (f)(2)(iii)<br> -URI http://asc.fasb.org/extlink&amp;oid=109197908&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>num:percentItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The estimated measure of the percentage by which a share price is expected to fluctuate during a period. Volatility also may be defined as a probability-weighted measure of the dispersion of returns about the mean. The volatility of a share price is the standard deviation of the continuously compounded rates of return on the share over a specified period. That is the same as the standard deviation of the differences in the natural logarithms of the stock prices plus dividends, if any, over the period.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (f)(2)(ii)<br> -URI http://asc.fasb.org/extlink&amp;oid=109197908&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>num:percentItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The risk-free interest rate assumption that is used in valuing an option on its own shares.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (f)(2)(iv)<br> -URI http://asc.fasb.org/extlink&amp;oid=109197908&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>num:percentItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Expected term of share-based compensation awards, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents the reported fact of one year, five months, and thirteen days.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (f)(2)(i)<br> -URI http://asc.fasb.org/extlink&amp;oid=109197908&amp;loc=d3e5070-113901<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 14.D.2)<br> -URI http://asc.fasb.org/extlink&amp;oid=115993241&amp;loc=d3e301413-122809<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:durationItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AwardTypeAxis=us-gaap_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_AwardTypeAxis=us-gaap_EmployeeStockOptionMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AwardTypeAxis=us-gaap_EmployeeStockOptionMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>80
<FILENAME>R62.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.19.3.a.u2</span><table class="report" border="0" cellspacing="2" id="idp6872312128">
<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, 2019</div></th>
<th class="th"><div>Dec. 31, 2018</div></th>
<th class="th"><div>Dec. 31, 2017</div></th>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_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="top.Show.showAR( this, 'defref_cgnx_DueFromForeignBanks', window );">Cash balance included foreign bank balance</a></td>
<td class="nump">$ 123,499<span></span>
</td>
<td class="nump">$ 67,502<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AvailableForSaleSecuritiesGrossRealizedGains', window );">Gross realized gains on sale of debt securities</a></td>
<td class="nump">1,581<span></span>
</td>
<td class="nump">669<span></span>
</td>
<td class="nump">$ 929<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AvailableForSaleSecuritiesGrossRealizedLosses', window );">Gross realized losses on sale of debt securities</a></td>
<td class="nump">$ 129<span></span>
</td>
<td class="nump">$ 168<span></span>
</td>
<td class="nump">$ 100<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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Due from foreign banks.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">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_AvailableForSaleSecuritiesGrossRealizedGains">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>This item represents the gross profit realized on the sale of debt or equity securities categorized neither as held-to-maturity nor trading securities.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AvailableForSaleSecuritiesGrossRealizedGains</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_AvailableForSaleSecuritiesGrossRealizedLosses">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>This item represents the gross loss realized on the sale of debt or equity securities categorized neither as held-to-maturity nor trading securities.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AvailableForSaleSecuritiesGrossRealizedLosses</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_CashAndCashEquivalentsAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_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>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>81
<FILENAME>R41.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.19.3.a.u2</span><table class="report" border="0" cellspacing="2" id="idp6615743456">
<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, 2019</div></th></tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_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="top.Show.showAR( this, 'defref_us-gaap_ScheduleOfGoodwillTextBlock', window );">Changes in the Carrying Value of Goodwill</a></td>
<td class="text"><div style="line-height:120%;padding-top:6px;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">The changes in the carrying value of goodwill were as follows (in thousands):</span></div><div style="line-height:120%;font-size:10pt;"><div style="padding-left:0px;text-indent:0px;line-height:normal;padding-top:10px;"><table cellpadding="0" cellspacing="0" style="font-family:Times New Roman;font-size:10pt;width:100%;border-collapse:collapse;text-align:left;"><tr><td colspan="5"/></tr><tr><td style="width:84%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:13%;"/><td style="width:1%;"/></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;">Amount</span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Balance as of December 31, 2017</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>113,208</span></span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Balance as of December 31, 2018</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>113,208</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Acquisition of Sualab Co., Ltd.</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>130,142</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">&#160;&#160;Foreign exchange rate changes</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>95</span></span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Balance as of December 31, 2019</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>243,445</span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr></table></div><span style="font-family:inherit;font-size:10pt;"><br/></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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Tabular disclosure of goodwill by reportable segment and in total which includes a rollforward schedule.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 350<br> -SubTopic 20<br> -Section 50<br> -Paragraph 1<br> -URI http://asc.fasb.org/extlink&amp;oid=108376223&amp;loc=d3e13816-109267<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 350<br> -SubTopic 20<br> -Section 50<br> -Paragraph 2<br> -URI http://asc.fasb.org/extlink&amp;oid=108376223&amp;loc=d3e13854-109267<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_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>nonnum:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>82
<FILENAME>R45.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.19.3.a.u2</span><table class="report" border="0" cellspacing="2" id="idp6654973536">
<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, 2019</div></th></tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_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="top.Show.showAR( this, 'defref_us-gaap_ScheduleOfNewAccountingPronouncementsAndChangesInAccountingPrinciplesTextBlock', window );">Impact on Face Financials</a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_DisaggregationOfRevenueTableTextBlock', window );">Disaggregation of Revenue</a></td>
<td class="text"><div style="line-height:120%;padding-top:8px;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">The following table summarizes disaggregated revenue information by geographic area based upon the customer's country of domicile (in thousands):</span></div><div style="line-height:120%;padding-top:8px;text-align:center;font-size:10pt;"><div style="padding-left:0px;text-indent:0px;line-height:normal;padding-top:10px;"><table cellpadding="0" cellspacing="0" style="font-family:Times New Roman;font-size:10pt;margin-left:auto;margin-right:auto;width:100%;border-collapse:collapse;text-align:left;"><tr><td colspan="13"/></tr><tr><td style="width:61%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:10%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:10%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:10%;"/><td style="width:1%;"/></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="11" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:center;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">Year Ended December 31,</span></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">2019</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">2018</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">2017</span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Americas</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">$</span></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>277,155</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>265,175</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>214,338</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Europe</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>227,738</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>311,914</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>328,826</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Greater China</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>115,061</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>123,708</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>108,738</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Other Asia</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>105,671</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>105,541</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>114,181</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>725,625</span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>806,338</span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>766,083</span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr></table></div></div><div style="line-height:120%;padding-top:8px;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">The following table summarizes disaggregated revenue information by revenue type (in thousands):</span></div><div style="line-height:120%;padding-top:8px;text-align:center;font-size:10pt;"><div style="padding-left:0px;text-indent:0px;line-height:normal;padding-top:10px;"><table cellpadding="0" cellspacing="0" style="font-family:Times New Roman;font-size:10pt;margin-left:auto;margin-right:auto;width:100%;border-collapse:collapse;text-align:left;"><tr><td colspan="13"/></tr><tr><td style="width:61%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:10%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:10%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:10%;"/><td style="width:1%;"/></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="11" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:center;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">Year Ended December 31,</span></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">2019</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">2018</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">2017</span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Standard products and services</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">$</span></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>629,220</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>654,509</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>603,196</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Application-specific customer solutions</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>96,405</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>151,829</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>162,887</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>725,625</span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>806,338</span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>766,083</span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr></table></div><span style="font-family:inherit;font-size:10pt;"><br/></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="top.Show.showAR( this, 'defref_us-gaap_ContractWithCustomerAssetAndLiabilityTableTextBlock', window );">Contract with Customer, Liability</a></td>
<td class="text"><div style="line-height:120%;padding-top:4px;text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">The following table summarizes the deferred revenue and customer deposits activity (in thousands):</span></div><div style="line-height:120%;padding-top:4px;text-align:center;font-size:10pt;"><div style="padding-left:0px;text-indent:0px;line-height:normal;padding-top:10px;"><table cellpadding="0" cellspacing="0" style="font-family:Times New Roman;font-size:10pt;margin-left:auto;margin-right:auto;width:100%;border-collapse:collapse;text-align:left;"><tr><td colspan="4"/></tr><tr><td style="width:80%;"/><td style="width:1%;"/><td style="width:18%;"/><td style="width:1%;"/></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Amount</span></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Balance as of December 31, 2017</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>9,420</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Increases to deferred revenue and customer deposits</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>63,231</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Recognition of revenue</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>(61,819</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">)</span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Foreign exchange rate changes</span></div></td><td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>(987</span></span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">)</span></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Balance as of December 31, 2018</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>9,845</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Increases to deferred revenue and customer deposits</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>53,422</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Recognition of revenue</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>(48,730</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">)</span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Foreign exchange rate changes</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>(105</span></span></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">)</span></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Balance as of December 31, 2019</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>14,432</span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr></table></div><span style="font-family:inherit;font-size:10pt;"><br/></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_ContractWithCustomerAssetAndLiabilityTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Tabular disclosure of contract balances and changes in contract balances.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 606<br> -SubTopic 10<br> -Section 50<br> -Paragraph 10<br> -URI http://asc.fasb.org/extlink&amp;oid=109196051&amp;loc=SL49130551-203045<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ContractWithCustomerAssetAndLiabilityTableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>nonnum:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DisaggregationOfRevenueTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Tabular disclosure of 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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 606<br> -SubTopic 10<br> -Section 50<br> -Paragraph 5<br> -URI http://asc.fasb.org/extlink&amp;oid=109196051&amp;loc=SL49130545-203045<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_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>nonnum:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_RevenueFromContractWithCustomerAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_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_ScheduleOfNewAccountingPronouncementsAndChangesInAccountingPrinciplesTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Tabular disclosure of changes in accounting principles, including adoption of new accounting pronouncements, that describes the new methods, amount and effects on financial statement line items.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -URI http://asc.fasb.org/extlink&amp;oid=109234566&amp;loc=d3e22499-107794<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 270<br> -SubTopic 10<br> -Section 45<br> -Paragraph 13<br> -URI http://asc.fasb.org/extlink&amp;oid=109236672&amp;loc=d3e765-108305<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 270<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.10-01.(b)(6))<br> -URI http://asc.fasb.org/extlink&amp;oid=27015980&amp;loc=d3e46468-122699<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -URI http://asc.fasb.org/extlink&amp;oid=109234566&amp;loc=d3e22580-107794<br><br>Reference 5: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 270<br> -SubTopic 10<br> -Section 45<br> -Paragraph 12<br> -URI http://asc.fasb.org/extlink&amp;oid=109236672&amp;loc=d3e725-108305<br><br>Reference 6: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -URI http://asc.fasb.org/extlink&amp;oid=109234566&amp;loc=d3e22583-107794<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ScheduleOfNewAccountingPronouncementsAndChangesInAccountingPrinciplesTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>nonnum:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>83
<FILENAME>R49.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.19.3.a.u2</span><table class="report" border="0" cellspacing="2" id="idp6865254512">
<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, 2019</div></th></tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_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="top.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="line-height:120%;padding-top:6px;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">The following table summarizes information about geographic areas (in thousands):</span></div><div style="line-height:120%;font-size:10pt;"><div style="padding-left:0px;text-indent:0px;line-height:normal;padding-top:10px;"><table cellpadding="0" cellspacing="0" style="font-family:Times New Roman;font-size:10pt;width:99.80506822612085%;border-collapse:collapse;text-align:left;"><tr><td colspan="20"/></tr><tr><td style="width:31%;"/><td style="width:1%;"/><td style="width:11%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:11%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:11%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:11%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:11%;"/><td style="width:1%;"/></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;">United&#160;States</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;">Europe</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;">Greater China </span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;">Other</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;">Total</span></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Year Ended December 31, 2019</span></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Revenue</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>247,689</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>227,738</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>115,061</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>135,137</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>725,625</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Long-lived assets</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>68,496</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>21,691</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>1,487</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>3,602</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">$</span></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>95,276</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Year Ended December 31, 2018</span></div></td><td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td></tr><tr><td style="vertical-align:top;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Revenue</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>231,760</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>311,914</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>123,708</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>138,956</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>806,338</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Long-lived assets</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>67,156</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>23,948</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>1,482</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>2,735</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>95,321</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Year Ended December 31, 2017</span></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Revenue</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>180,248</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>328,826</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>108,738</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>148,271</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>766,083</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Long-lived assets</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>53,983</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>22,437</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>1,594</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>2,525</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>80,539</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr></table></div><span style="font-family:inherit;font-size:10pt;"><br/></span></div><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsByGeographicalAreasTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Tabular disclosure of 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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 41<br> -URI http://asc.fasb.org/extlink&amp;oid=115929826&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 http://asc.fasb.org/extlink&amp;oid=115205541&amp;loc=SL114868664-224227<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_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>nonnum:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_SegmentReportingAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_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>84
<FILENAME>R28.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.19.3.a.u2</span><table class="report" border="0" cellspacing="2" id="idp6629070752">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Taxes<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><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="top.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="top.Show.showAR( this, 'defref_us-gaap_IncomeTaxDisclosureTextBlock', window );">Taxes</a></td>
<td class="text">Taxes<div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Domestic income before taxes was </span><span style="font-family:Arial;font-size:10pt;"><span>$31,396,000</span></span><span style="font-family:Arial;font-size:10pt;"> in </span><span style="font-family:Arial;font-size:10pt;">2019</span><span style="font-family:Arial;font-size:10pt;">, </span><span style="font-family:Arial;font-size:10pt;"><span>$39,042,000</span></span><span style="font-family:Arial;font-size:10pt;"> in </span><span style="font-family:Arial;font-size:10pt;">2018</span><span style="font-family:Arial;font-size:10pt;">, and </span><span style="font-family:Arial;font-size:10pt;"><span>$30,345,000</span></span><span style="font-family:Arial;font-size:10pt;"> in </span><span style="font-family:Arial;font-size:10pt;">2017</span><span style="font-family:Arial;font-size:10pt;">.  Foreign income before taxes was </span><span style="font-family:Arial;font-size:10pt;"><span>$131,598,000</span></span><span style="font-family:Arial;font-size:10pt;"> in </span><span style="font-family:Arial;font-size:10pt;">2019</span><span style="font-family:Arial;font-size:10pt;">, </span><span style="font-family:Arial;font-size:10pt;"><span>$195,532,000</span></span><span style="font-family:Arial;font-size:10pt;"> in </span><span style="font-family:Arial;font-size:10pt;">2018</span><span style="font-family:Arial;font-size:10pt;">, and </span><span style="font-family:Arial;font-size:10pt;"><span>$236,119,000</span></span><span style="font-family:Arial;font-size:10pt;"> in </span><span style="font-family:Arial;font-size:10pt;">2017</span><span style="font-family:Arial;font-size:10pt;">.  </span></div><div style="line-height:120%;padding-top:6px;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Income tax expense consisted of the following (in thousands):</span></div><div style="line-height:120%;font-size:10pt;"><div style="padding-left:0px;text-indent:0px;line-height:normal;padding-top:10px;"><table cellpadding="0" cellspacing="0" style="font-family:Times New Roman;font-size:10pt;width:99.80506822612085%;border-collapse:collapse;text-align:left;"><tr><td colspan="12"/></tr><tr><td style="width:50%;"/><td style="width:1%;"/><td style="width:14%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:14%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:14%;"/><td style="width:1%;"/></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;">&#160;</span></div></td><td colspan="11" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;">Year Ended December&#160;31,</span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;">2019</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">2018</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">2017</span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Current:</span></div></td><td colspan="11" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td></tr><tr><td style="vertical-align:top;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Federal</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">$</span></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>15,854</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>10,624</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>78,152</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">State</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>2,108</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>(879</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">)</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>2,687</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Foreign</span></div></td><td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>30,670</span></span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>6,307</span></span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>7,624</span></span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>48,632</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>16,052</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>88,463</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Deferred:</span></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Federal</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>352,808</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>(1,271</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">)</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>1,569</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">State</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>183</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>554</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>(639</span></span></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">)</span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Foreign</span></div></td><td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>(442,494</span></span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">)</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>(28</span></span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">)</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>359</span></span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>(89,503</span></span></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">)</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>(745</span></span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;padding-right:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">)</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>1,289</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:top;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">$</span></div></td><td style="vertical-align:top;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>(40,871</span></span></div></td><td style="vertical-align:top;border-bottom:3px double #000000;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">)</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:top;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:top;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>15,307</span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:top;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:top;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>89,752</span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr></table></div><span style="font-family:inherit;font-size:10pt;"><br/></span></div><div style="line-height:120%;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><br/></span></div><div style="line-height:120%;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">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 style="padding-left:0px;text-indent:0px;line-height:normal;padding-top:10px;"><table cellpadding="0" cellspacing="0" style="font-family:Times New Roman;font-size:10pt;width:100%;border-collapse:collapse;text-align:left;"><tr><td colspan="9"/></tr><tr><td style="width:62%;"/><td style="width:11%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:11%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:11%;"/><td style="width:1%;"/></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;">&#160;</span></div></td><td colspan="8" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;">Year&#160;Ended&#160;December&#160;31,</span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;">2019</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">2018</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">2017</span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Income tax expense at U.S. federal statutory corporate tax rate</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>21</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">&#160;%</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>21</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">&#160;%</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>35</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">&#160;%</span></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">State income taxes, net of federal benefit</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>2</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>1</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>&#8212;</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Foreign tax rate differential</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>(9</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">)</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>(9</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">)</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>(27</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">)</span></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Tax credit</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>(1</span></span></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">)</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>&#8212;</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>(1</span></span></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">)</span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Discrete tax benefit related to employee stock options</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>(4</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">)</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>(4</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">)</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>(14</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">)</span></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Discrete tax expense (benefit) related to Tax Act</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>&#8212;</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>(3</span></span></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">)</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>36</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Discrete tax expense related to write-down of deferred tax assets </span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>&#8212;</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>&#8212;</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>5</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Discrete tax expense related to migration of acquired IP</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>18</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>&#8212;</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>&#8212;</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Discrete tax (benefit) related to change in tax structure</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>(268</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">)</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>&#8212;</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>&#8212;</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Discrete tax expense related to GILTI impact of change in tax structure</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>214</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>&#8212;</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>&#8212;</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Other discrete tax events</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>(1</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">)</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>&#8212;</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>(1</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">)</span></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Other</span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>3</span></span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>1</span></span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>1</span></span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Income tax expense</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>(25</span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">)%</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>7</span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">&#160;%</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>34</span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">&#160;%</span></div></td></tr></table></div><span style="font-family:inherit;font-size:10pt;"><br/></span></div><div style="line-height:120%;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><br/></span></div><div style="line-height:120%;padding-bottom:10px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-style:italic;text-decoration:underline;">Change in Accounting Policy</span></div><div style="line-height:120%;padding-bottom:10px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">In 2019, the Company elected to change its method of accounting for the United States Global Intangible Low-Taxed Income (GILTI) tax from recording the tax impact in the period it is incurred to recognizing deferred taxes for temporary tax basis differences expected to reverse as GILTI tax in future years.  The change is considered preferable, as it appropriately matches the Company's current and deferred income tax implications related to the change in tax structure noted under the heading "Discrete Tax Events 2019" below.</span></div><div style="line-height:120%;padding-bottom:10px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">The change in this accounting policy impacted the Company's 2019 reported results as follows (in thousands):</span></div><div style="line-height:120%;padding-bottom:10px;text-align:center;font-size:10pt;"><div style="padding-left:0px;text-indent:0px;line-height:normal;padding-top:10px;"><table cellpadding="0" cellspacing="0" style="font-family:Times New Roman;font-size:10pt;margin-left:auto;margin-right:auto;width:100%;border-collapse:collapse;text-align:left;"><tr><td colspan="12"/></tr><tr><td style="width:54%;"/><td style="width:1%;"/><td style="width:14%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:14%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:10%;"/><td style="width:1%;"/></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="font-size:10pt;"><span style="font-family:Arial;font-size:10pt;text-decoration:underline;">Statement of Operations</span></div><div style="font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><br/></span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="11" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:center;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">&#160;Year Ended December 31, 2019</span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">As reported under the new accounting policy</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">As computed under the previous accounting policy</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Effect of change</span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Income before income tax expense</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>162,994</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>162,994</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>&#8212;</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Income tax expense (benefit)</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>(40,871</span></span></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">)</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>(393,317</span></span></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">)</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>352,446</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Net income</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>203,865</span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>556,311</span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>(352,446</span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">)</span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:12px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:12px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:12px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:12px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:12px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:12px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td></tr><tr><td colspan="4" style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Net income per weighted-average common and common-equivalent share:</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td></tr><tr><td style="vertical-align:top;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Basic</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>1.19</span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>3.25</span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>(2.06</span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">)</span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Diluted</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>1.16</span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>3.17</span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>(2.01</span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">)</span></div></td></tr></table></div></div><div style="line-height:120%;padding-bottom:10px;text-align:center;font-size:10pt;"><div style="padding-left:0px;text-indent:0px;line-height:normal;padding-top:10px;"><table cellpadding="0" cellspacing="0" style="font-family:Times New Roman;font-size:10pt;margin-left:auto;margin-right:auto;width:100%;border-collapse:collapse;text-align:left;"><tr><td colspan="12"/></tr><tr><td style="width:54%;"/><td style="width:1%;"/><td style="width:14%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:14%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:10%;"/><td style="width:1%;"/></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;text-decoration:underline;">Balance Sheet</span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="11" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:center;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">&#160;December 31, 2019</span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">As reported under the new accounting policy</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">As computed under the previous accounting policy</span></div><div style="text-align:center;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Effect of change</span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Deferred tax assets</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>449,519</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>469,621</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>(20,102</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">)</span></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Deferred tax liabilities</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>332,344</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>&#8212;</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>332,344</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr></table></div></div><div style="line-height:120%;padding-bottom:10px;text-align:center;font-size:10pt;"><div style="padding-left:0px;text-indent:0px;line-height:normal;padding-top:10px;"><table cellpadding="0" cellspacing="0" style="font-family:Times New Roman;font-size:10pt;margin-left:auto;margin-right:auto;width:100%;border-collapse:collapse;text-align:left;"><tr><td colspan="12"/></tr><tr><td style="width:54%;"/><td style="width:1%;"/><td style="width:14%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:14%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:10%;"/><td style="width:1%;"/></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;text-decoration:underline;">Statement of Shareholders' Equity</span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="11" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:center;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">&#160;Year Ended December 31, 2019</span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">As reported under the new accounting policy</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">As computed under the previous accounting policy</span></div><div style="text-align:center;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Effect of change</span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Retained earnings</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>753,268</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>1,105,714</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>(352,446</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">)</span></div></td></tr></table></div><span style="font-family:inherit;font-size:10pt;"><br/></span></div><div style="line-height:120%;padding-bottom:10px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">There were no material differences to the Company's reported results in prior years.</span></div><div style="line-height:120%;padding-top:6px;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-style:italic;text-decoration:underline;">Discrete Tax Events 2019</span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">The European Union has enacted a series of tax reform legislation over the past few years regarding low tax structures.  The Company made changes to its international tax structure in the fourth quarter of 2019 as a result of this legislation that resulted in an intercompany sale of intellectual property.  The Company recorded an associated deferred tax asset and income tax benefit of </span><span style="font-family:Arial;font-size:10pt;"><span>$437,500,000</span></span><span style="font-family:Arial;font-size:10pt;"> in Ireland based upon the fair value of the intellectual property, that will be realized over 15 years as future tax deductions.  From a United States perspective, the sale is disregarded, and any future deductions claimed in Ireland will be added back to taxable income as part of GILTI minimum tax.  The Company recorded an associated deferred tax liability and income tax expense of </span><span style="font-family:Arial;font-size:10pt;"><span>$350,000,000</span></span><span style="font-family:Arial;font-size:10pt;">, representing the GILTI minimum tax related to the fair value of the intellectual property.  The result of these transactions was a net discrete tax benefit of </span><span style="font-family:Arial;font-size:10pt;"><span>$87,500,000</span></span><span style="font-family:Arial;font-size:10pt;">.  Management expects its current effective tax rate excluding discrete items to increase slightly in future years as a result of this change.</span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">In connection with the acquisition of Sualab, Co. Ltd., the Company migrated acquired intellectual property to certain subsidiaries in the fourth quarter of 2019 in order to align with its corporate tax structure.  As a result of this transaction, the Company recorded a discrete tax expense of </span><span style="font-family:Arial;font-size:10pt;"><span>$28,528,000</span></span><span style="font-family:Arial;font-size:10pt;">, which included a reserve of </span><span style="font-family:Arial;font-size:10pt;"><span>$3,700,000</span></span><span style="font-family:Arial;font-size:10pt;"> for certain related tax uncertainties. </span></div><div style="line-height:120%;padding-top:12px;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-style:italic;text-decoration:underline;">The Tax Act</span></div><div style="line-height:120%;padding-bottom:10px;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">In December 2017, the Tax Cuts and Jobs Act of 2017 (Tax Act) was signed into law.  The Tax Act resulted in a decrease in the U.S. federal statutory corporate tax rate from 35% to 21%.  As a result of the reduction in anticipated tax rate, the Company remeasured its deferred tax positions as of December 31, 2017 at the new enacted tax rate, and accordingly, recorded tax expense of </span><span style="font-family:Arial;font-size:10pt;"><span>$12,523,000</span></span><span style="font-family:Arial;font-size:10pt;"> in 2017 from the associated write-down of its deferred tax assets.  In 2018, the Company recorded an increase in tax expense of </span><span style="font-family:Arial;font-size:10pt;"><span>$3,240,000</span></span><span style="font-family:Arial;font-size:10pt;"> from the write-down of its deferred tax assets primarily relating to guidance under the Tax Act regarding stock-based compensation.</span></div><div style="line-height:120%;padding-bottom:10px;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">The Tax Act subjects unrepatriated foreign earnings to a one-time transition tax, regardless of the Company's financial statement assertion related to indefinite reinvestment or whether the Company ultimately repatriates any of the foreign earnings, for which the Company recorded estimated tax expense of </span><span style="font-family:Arial;font-size:10pt;"><span>$101,379,000</span></span><span style="font-family:Arial;font-size:10pt;"> in 2017.  In 2018, the Company revised its estimate of the one-time transition tax and recorded a decrease in tax expense of </span><span style="font-family:Arial;font-size:10pt;"><span>$11,028,000</span></span><span style="font-family:Arial;font-size:10pt;">, which resulted in a revised estimate for the one-time transition tax of </span><span style="font-family:Arial;font-size:10pt;"><span>$90,351,000</span></span><span style="font-family:Arial;font-size:10pt;">.</span></div><div style="line-height:120%;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">The Tax Act replaces the current system of taxing U.S. corporations on repatriated foreign earnings with a partial territorial system that provides a 100% dividends-received deduction to domestic corporations for foreign-source dividends received from 10% or more owned foreign corporations. The Company recorded a decrease in tax expense of $3,843,000 in 2017 from the reversal of the tax effect of a 2016 dividend paid in 2017 from a wholly-owned foreign subsidiary to its domestic entity.</span></div><div style="line-height:120%;padding-bottom:10px;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-style:italic;text-decoration:underline;">Other Discrete Tax Events</span></div><div style="line-height:120%;padding-bottom:10px;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">The effective tax rate also included a decrease in tax expense of </span><span style="font-family:Arial;font-size:10pt;"><span>$6,472,000</span></span><span style="font-family:Arial;font-size:10pt;"> in 2019, </span><span style="font-family:Arial;font-size:10pt;"><span>$8,488,000</span></span><span style="font-family:Arial;font-size:10pt;"> in 2018, and </span><span style="font-family:Arial;font-size:10pt;"><span>$38,569,000</span></span><span style="font-family:Arial;font-size:10pt;"> in 2017 related to stock options, primarily from the excess tax benefit arising from the difference between the deduction for tax purposes and the compensation cost recognized for financial reporting purposes from stock option exercises.  The Company cannot predict the level of stock option exercises by employees in future periods.</span></div><div style="line-height:120%;padding-bottom:10px;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Other discrete tax events included a net decrease in tax expense of $</span><span style="font-family:Arial;font-size:10pt;"><span>1,932,000</span></span><span style="font-family:Arial;font-size:10pt;"> in 2019, $</span><span style="font-family:Arial;font-size:10pt;"><span>1,847,000</span></span><span style="font-family:Arial;font-size:10pt;"> in 2018, and </span><span style="font-family:Arial;font-size:10pt;"><span>$2,502,000</span></span><span style="font-family:Arial;font-size:10pt;"> in 2017, consisting primarily of the expiration of the statutes of limitations for certain reserves for income tax uncertainties and the final true-up of the prior year's tax accrual upon filing the related tax returns.</span></div><div style="line-height:120%;padding-bottom:10px;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">The Company is tax resident in numerous jurisdictions around the world and has identified its major tax jurisdictions as the United States, Ireland, and China.  Management has determined that earnings from its legal entity in China will remain indefinitely reinvested to provide local funding for growth, and that earnings from all other jurisdictions will not be indefinitely reinvested.  As of December 31, 2019 and 2018, </span><span style="font-family:Arial;font-size:10pt;"><span>$370,953,000</span></span><span style="font-family:Arial;font-size:10pt;"> and </span><span style="font-family:Arial;font-size:10pt;"><span>$446,346,000</span></span><span style="font-family:Arial;font-size:10pt;">, respectively, of the Company&#8217;s cash, cash equivalents, and investments were held by foreign subsidiaries and were primarily denominated in U.S. Dollars.</span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Interest and penalties included in income tax expense were </span><span style="font-family:Arial;font-size:10pt;"><span>$116,000</span></span><span style="font-family:Arial;font-size:10pt;">, </span><span style="font-family:Arial;font-size:10pt;"><span>$91,000</span></span><span style="font-family:Arial;font-size:10pt;">, and </span><span style="font-family:Arial;font-size:10pt;"><span>$71,000</span></span><span style="font-family:Arial;font-size:10pt;"> in 2019, 2018, and 2017, respectively.</span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">On January 1, 2018, the Company adopted Accounting Standard Update (ASU) 2016-16, "Income Taxes - Intra-Entity Transfers of Assets Other than Inventory."  This ASU requires the recognition of deferred income taxes for an intra-entity transfer of an asset other than inventory.  As a result of this ASU, the Company recorded </span><span style="font-family:Arial;font-size:10pt;"><span>$5,961,000</span></span><span style="font-family:Arial;font-size:10pt;"> through a cumulative-effect adjustment directly to retained earnings at the beginning of fiscal year 2018.</span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-style:italic;text-decoration:underline;">Tax Reserves</span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">The changes in the reserve for income taxes, excluding gross interest and penalties, were as follows (in thousands):</span></div><div style="line-height:120%;font-size:10pt;"><div style="padding-left:0px;text-indent:0px;line-height:normal;padding-top:10px;"><table cellpadding="0" cellspacing="0" style="font-family:Times New Roman;font-size:10pt;width:99.80506822612085%;border-collapse:collapse;text-align:left;"><tr><td colspan="4"/></tr><tr><td style="width:82%;"/><td style="width:1%;"/><td style="width:16%;"/><td style="width:1%;"/></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Balance of reserve for income taxes as of December 31, 2017</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>6,749</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Gross amounts of increases in unrecognized tax benefits as a result of tax positions taken in prior periods</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>69</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Gross amounts of increases in unrecognized tax benefits as a result of tax positions taken in the current period</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>1,499</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Gross amounts of decreases in unrecognized tax benefits as a result of the expiration of the applicable statutes of limitations</span></div></td><td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>(1,023</span></span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">)</span></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Balance of reserve for income taxes as of December 31, 2018</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>7,294</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Gross amounts of increases in unrecognized tax benefits as a result of tax positions taken in prior periods</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>199</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Gross amounts of increases in unrecognized tax benefits as a result of tax positions taken in the current period</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>5,259</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Gross amounts of decreases in unrecognized tax benefits as a result of the expiration of the applicable statutes of limitations</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>(1,161</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">)</span></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Balance of reserve for income taxes as of December 31, 2019</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>11,591</span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr></table></div><span style="font-family:inherit;font-size:10pt;"><br/></span></div><div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">The Company&#8217;s reserve for income taxes, including gross interest and penalties, was </span><span style="font-family:Arial;font-size:10pt;"><span>$12,591,000</span></span><span style="font-family:Arial;font-size:10pt;"> as of December 31, 2019, which included </span><span style="font-family:Arial;font-size:10pt;"><span>$11,563,000</span></span><span style="font-family:Arial;font-size:10pt;"> classified as a non-current liability and </span><span style="font-family:Arial;font-size:10pt;"><span>$1,028,000</span></span><span style="font-family:Arial;font-size:10pt;"> recorded as a reduction to non-current deferred tax assets.  The Company's reserve for income taxes, including gross interest and penalties, was </span><span style="font-family:Arial;font-size:10pt;"><span>$8,134,000</span></span><span style="font-family:Arial;font-size:10pt;"> as of December 31, 2018, which included </span><span style="font-family:Arial;font-size:10pt;"><span>$7,106,000</span></span><span style="font-family:Arial;font-size:10pt;"> classified as a non-current liability and </span><span style="font-family:Arial;font-size:10pt;"><span>$1,028,000</span></span><span style="font-family:Arial;font-size:10pt;"> recorded as a reduction to non-current deferred tax assets.  The amount of gross interest and penalties included in these balances was </span><span style="font-family:Arial;font-size:10pt;"><span>$1,000,000</span></span><span style="font-family:Arial;font-size:10pt;"> and </span><span style="font-family:Arial;font-size:10pt;"><span>$840,000</span></span><span style="font-family:Arial;font-size:10pt;"> as of December&#160;31, 2019 and December&#160;31, 2018, 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 </span><span style="font-family:Arial;font-size:10pt;"><span>$1,300,000</span></span><span style="font-family:Arial;font-size:10pt;"> to </span><span style="font-family:Arial;font-size:10pt;"><span>$1,400,000</span></span><span style="font-family:Arial;font-size:10pt;"> over the next twelve months.</span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">The Company has defined its major tax jurisdictions as the United States, Ireland, and China, and within the United States, Massachusetts.  Within the United States, the tax years 2016 through 2019 remain open to examination by the Internal Revenue Service and various state taxing authorities.  The tax years 2015 through 2019 remain open to examination by various taxing authorities in other jurisdictions in which the Company operates. </span></div><div style="line-height:120%;padding-top:6px;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-style:italic;text-decoration:underline;">Deferred Tax Assets and Liabilities</span></div><div style="line-height:120%;padding-top:6px;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Deferred tax assets and liabilities, presented on a gross basis by jurisdiction, consisted of the following (in thousands):</span></div><div style="line-height:120%;font-size:10pt;"><div style="padding-left:0px;text-indent:0px;line-height:normal;padding-top:10px;"><table cellpadding="0" cellspacing="0" style="font-family:Times New Roman;font-size:10pt;width:99.80506822612085%;border-collapse:collapse;text-align:left;"><tr><td colspan="8"/></tr><tr><td style="width:67%;"/><td style="width:1%;"/><td style="width:14%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:14%;"/><td style="width:1%;"/></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="7" style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;">December&#160;31,</span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;">2019</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">2018</span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Non-current gross deferred tax assets:</span></div></td><td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td></tr><tr><td style="vertical-align:top;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Intangible asset in connection with change in tax structure</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">$</span></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>437,500</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>&#8212;</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Stock-based compensation expense</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>15,042</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>13,818</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Federal and state tax credit carryforwards</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>8,491</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>7,395</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Foreign net operating losses</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>4,286</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>&#8212;</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Depreciation</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>3,522</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>2,475</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Inventory and revenue related</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>2,934</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>3,233</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Bonuses, commissions, and other compensation</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>1,609</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>5,470</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Other</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>3,550</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>2,425</span></span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Gross non-current deferred tax assets</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>476,934</span></span></div></td><td style="vertical-align:bottom;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>34,816</span></span></div></td><td style="vertical-align:bottom;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Valuation allowance</span></div></td><td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>(7,312</span></span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">)</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>(6,112</span></span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">)</span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>469,622</span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>28,704</span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:18px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:18px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:18px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:18px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Non-current gross deferred tax liabilities:</span></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">GILTI tax basis differences in connection with change in tax structure</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>(350,000</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">)</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>&#8212;</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Other GILTI tax basis differences</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>(2,446</span></span></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">)</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>&#8212;</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Nondeductible intangible assets</span></div><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><br/></span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>&#8212;</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>(44</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">)</span></div></td></tr><tr><td style="vertical-align:top;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Other</span></div></td><td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>&#8212;</span></span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>(962</span></span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">)</span></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>(352,446</span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">)</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>(1,006</span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">)</span></div></td></tr></table></div><span style="font-family:inherit;font-size:10pt;"><br/></span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">In 2019, the Company recorded a valuation allowance of </span><span style="font-family:Arial;font-size:10pt;"><span>$1,200,000</span></span><span style="font-family:Arial;font-size:10pt;"> for state research and development tax credits that were 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.  In addition, the Company had </span><span style="font-family:Arial;font-size:10pt;"><span>$9,519,000</span></span><span style="font-family:Arial;font-size:10pt;"> of state research and development tax credit carryforwards, net of federal tax, as of December&#160;31, </span><span style="font-family:Arial;font-size:10pt;">2019</span><span style="font-family:Arial;font-size:10pt;">, which will begin to expire in 2020.</span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">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 style="font-family:Arial;font-size:10pt;">Cash paid for income taxes totaled </span><span style="font-family:Arial;font-size:10pt;"><span>$13,443,000</span></span><span style="font-family:Arial;font-size:10pt;"> in </span><span style="font-family:Arial;font-size:10pt;">2019</span><span style="font-family:Arial;font-size:10pt;">, </span><span style="font-family:Arial;font-size:10pt;"><span>$41,430,000</span></span><span style="font-family:Arial;font-size:10pt;"> in </span><span style="font-family:Arial;font-size:10pt;">2018</span><span style="font-family:Arial;font-size:10pt;">, and </span><span style="font-family:Arial;font-size:10pt;"><span>$11,802,000</span></span><span style="font-family:Arial;font-size:10pt;"> in </span><span style="font-family:Arial;font-size:10pt;">2017</span>.<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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The entire disclosure for income taxes. Disclosures may include net deferred tax liability or asset recognized in an enterprise's statement of financial position, net change during the year in the total valuation allowance, approximate tax effect of each type of temporary difference and carryforward that gives rise to a significant portion of deferred tax liabilities and deferred tax assets, utilization of a tax carryback, and tax uncertainties information.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -URI http://asc.fasb.org/topic&amp;trid=2144680<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncomeTaxDisclosureTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>nonnum:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>85
<FILENAME>R110.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.19.3.a.u2</span><table class="report" border="0" cellspacing="2" id="idp6866644640">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>Acquisitions - GVi Ventures, Inc. Purchase Price Allocation (Details) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th"><div>Dec. 31, 2019</div></th>
<th class="th"><div>Dec. 31, 2018</div></th>
<th class="th"><div>Dec. 31, 2017</div></th>
<th class="th"><div>Apr. 12, 2017</div></th>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionLineItems', window );"><strong>Business Acquisition [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_Goodwill', window );">Goodwill</a></td>
<td class="nump">$ 243,445<span></span>
</td>
<td class="nump">$ 113,208<span></span>
</td>
<td class="nump">$ 113,208<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionAxis=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>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionLineItems', window );"><strong>Business Acquisition [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsReceivables', window );">Accounts receivable</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 423<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedInventory', window );">Inventories</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">120<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsPrepaidExpenseAndOtherAssets', window );">Prepaid expenses and other current 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="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="top.Show.showAR( this, 'defref_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccountsPayable', window );">Accounts payable</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="num">(152)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_cgnx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredandLiabilitiesAssumedCurrentLiabilitiesAccruedExpenses', window );">Accrued expenses</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="num">(10)<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_Goodwill', window );">Goodwill</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">1,476<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet', window );">Purchase price</a></td>
<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,368<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_TechnologyBasedIntangibleAssetsMember', window );">Completed Technologies [Member] | 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>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionLineItems', window );"><strong>Business Acquisition [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles', window );">Finite-lived intangible assets</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">910<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_CustomerRelationshipsMember', window );">Customer Relationships [Member] | 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>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionLineItems', window );"><strong>Business Acquisition [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles', window );">Finite-lived intangible assets</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 2,600<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_cgnx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredandLiabilitiesAssumedCurrentLiabilitiesAccruedExpenses">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Business Combination, Recognized Identifiable Assets Acquired and Liabilities Assumed, Current Liabilities, Accrued Expenses</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cgnx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredandLiabilitiesAssumedCurrentLiabilitiesAccruedExpenses</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cgnx_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_BusinessAcquisitionLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsPrepaidExpenseAndOtherAssets">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of asset related to consideration paid in advance for costs that provide economic benefits in future periods, and amount of other assets that are expected to be realized or consumed within one year or the normal operating cycle, if longer, acquired at the acquisition date.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 805<br> -SubTopic 20<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (c)<br> -URI http://asc.fasb.org/extlink&amp;oid=84161108&amp;loc=d3e4845-128472<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsPrepaidExpenseAndOtherAssets</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsReceivables">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount due from customers or clients for goods or services, including trade receivables, that have been delivered or sold in the normal course of business, and amounts due from others, including related parties expected to be converted to cash, sold or exchanged within one year or the normal operating cycle, if longer, acquired at the acquisition date.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 805<br> -SubTopic 20<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (c)<br> -URI http://asc.fasb.org/extlink&amp;oid=84161108&amp;loc=d3e4845-128472<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsReceivables</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccountsPayable">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of liabilities incurred for goods and services received that are used in an entity's business and related party payables, assumed at the acquisition date.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 805<br> -SubTopic 20<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (c)<br> -URI http://asc.fasb.org/extlink&amp;oid=84161108&amp;loc=d3e4845-128472<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccountsPayable</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The amount of identifiable intangible assets recognized as of the acquisition date.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 805<br> -SubTopic 10<br> -Section 55<br> -Paragraph 37<br> -URI http://asc.fasb.org/extlink&amp;oid=108330185&amp;loc=d3e2207-128464<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 805<br> -SubTopic 20<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (c)<br> -URI http://asc.fasb.org/extlink&amp;oid=84161108&amp;loc=d3e4845-128472<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedInventory">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The amount of inventory recognized as of the acquisition date.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 805<br> -SubTopic 20<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (c)<br> -URI http://asc.fasb.org/extlink&amp;oid=84161108&amp;loc=d3e4845-128472<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 805<br> -SubTopic 10<br> -Section 55<br> -Paragraph 37<br> -URI http://asc.fasb.org/extlink&amp;oid=108330185&amp;loc=d3e2207-128464<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedInventory</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount recognized for assets, including goodwill, in excess of (less than) the aggregate liabilities assumed.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 805<br> -SubTopic 20<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (c)<br> -URI http://asc.fasb.org/extlink&amp;oid=84161108&amp;loc=d3e4845-128472<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_Goodwill">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount after accumulated impairment loss of an asset representing future economic benefits arising from other assets acquired in a business combination that are not individually identified and separately recognized.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 350<br> -SubTopic 20<br> -Section 45<br> -Paragraph 5<br> -URI http://asc.fasb.org/extlink&amp;oid=77989000&amp;loc=SL49117168-202975<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 350<br> -SubTopic 20<br> -Section 45<br> -Paragraph 1<br> -URI http://asc.fasb.org/extlink&amp;oid=99380562&amp;loc=d3e13770-109266<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_Goodwill</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_BusinessAcquisitionAxis=cgnx_GViVenturesInc.Member">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_BusinessAcquisitionAxis=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>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_TechnologyBasedIntangibleAssetsMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_TechnologyBasedIntangibleAssetsMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_CustomerRelationshipsMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_CustomerRelationshipsMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>86
<FILENAME>R114.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.19.3.a.u2</span><table class="report" border="0" cellspacing="2" id="idp6861400240">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Selected Quarterly Financial Data (Unaudited) (Details)<br> $ / shares in Units, $ in Thousands</strong></div></th>
<th class="th" colspan="1"></th>
<th class="th" colspan="8">3 Months Ended</th>
<th class="th" colspan="3">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Oct. 30, 2017</div></th>
<th class="th">
<div>Dec. 31, 2018 </div>
<div>USD ($) </div>
<div>$ / shares</div>
</th>
<th class="th">
<div>Sep. 30, 2018 </div>
<div>USD ($) </div>
<div>$ / shares</div>
</th>
<th class="th">
<div>Jul. 01, 2018 </div>
<div>USD ($) </div>
<div>$ / shares</div>
</th>
<th class="th">
<div>Apr. 01, 2018 </div>
<div>USD ($) </div>
<div>$ / shares</div>
</th>
<th class="th">
<div>Dec. 31, 2017 </div>
<div>USD ($) </div>
<div>$ / shares</div>
</th>
<th class="th">
<div>Oct. 01, 2017 </div>
<div>USD ($) </div>
<div>$ / shares</div>
</th>
<th class="th">
<div>Jul. 02, 2017 </div>
<div>USD ($) </div>
<div>$ / shares</div>
</th>
<th class="th">
<div>Apr. 02, 2017 </div>
<div>USD ($) </div>
<div>$ / shares</div>
</th>
<th class="th">
<div>Dec. 31, 2019 </div>
<div>USD ($) </div>
<div>$ / shares</div>
</th>
<th class="th">
<div>Dec. 31, 2018 </div>
<div>USD ($) </div>
<div>$ / shares</div>
</th>
<th class="th">
<div>Dec. 31, 2017 </div>
<div>USD ($) </div>
<div>$ / shares</div>
</th>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_QuarterlyFinancialInformationDisclosureAbstract', window );"><strong>Quarterly Financial Information 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>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax', window );">Revenue</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 169,769<span></span>
</td>
<td class="nump">$ 183,325<span></span>
</td>
<td class="nump">$ 199,047<span></span>
</td>
<td class="nump">$ 173,484<span></span>
</td>
<td class="nump">$ 193,286<span></span>
</td>
<td class="nump">$ 232,221<span></span>
</td>
<td class="nump">$ 211,264<span></span>
</td>
<td class="nump">$ 169,567<span></span>
</td>
<td class="nump">$ 725,625<span></span>
</td>
<td class="nump">$ 806,338<span></span>
</td>
<td class="nump">$ 766,083<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_GrossProfit', window );">Gross margin</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">124,898<span></span>
</td>
<td class="nump">135,693<span></span>
</td>
<td class="nump">148,080<span></span>
</td>
<td class="nump">127,200<span></span>
</td>
<td class="nump">140,461<span></span>
</td>
<td class="nump">173,361<span></span>
</td>
<td class="nump">157,095<span></span>
</td>
<td class="nump">129,369<span></span>
</td>
<td class="nump">535,871<span></span>
</td>
<td class="nump">600,286<span></span>
</td>
<td class="nump">578,794<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_OperatingIncomeLoss', window );">Operating income</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">17,607<span></span>
</td>
<td class="nump">43,092<span></span>
</td>
<td class="nump">51,756<span></span>
</td>
<td class="nump">30,147<span></span>
</td>
<td class="nump">45,247<span></span>
</td>
<td class="nump">77,844<span></span>
</td>
<td class="nump">63,455<span></span>
</td>
<td class="nump">34,596<span></span>
</td>
<td class="nump">142,602<span></span>
</td>
<td class="nump">221,142<span></span>
</td>
<td class="nump">258,861<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_NetIncomeLoss', window );">Net income</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 80,327<span></span>
</td>
<td class="nump">$ 41,685<span></span>
</td>
<td class="nump">$ 48,749<span></span>
</td>
<td class="nump">$ 33,104<span></span>
</td>
<td class="nump">$ 45,418<span></span>
</td>
<td class="nump">$ 80,436<span></span>
</td>
<td class="nump">$ 56,196<span></span>
</td>
<td class="nump">$ 37,217<span></span>
</td>
<td class="nump">$ 203,865<span></span>
</td>
<td class="nump">$ 219,267<span></span>
</td>
<td class="nump">$ 176,712<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_EarningsPerShareBasic', window );">Basic net income (loss) per share (in dollars per share) | $ / shares</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 0.47<span></span>
</td>
<td class="nump">$ 0.24<span></span>
</td>
<td class="nump">$ 0.28<span></span>
</td>
<td class="nump">$ 0.19<span></span>
</td>
<td class="nump">$ 0.26<span></span>
</td>
<td class="nump">$ 0.47<span></span>
</td>
<td class="nump">$ 0.33<span></span>
</td>
<td class="nump">$ 0.21<span></span>
</td>
<td class="nump">$ 1.19<span></span>
</td>
<td class="nump">$ 1.27<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="top.Show.showAR( this, 'defref_us-gaap_EarningsPerShareDiluted', window );">Diluted net income (loss) per share (in dollars per share) | $ / shares</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 0.46<span></span>
</td>
<td class="nump">$ 0.24<span></span>
</td>
<td class="nump">$ 0.28<span></span>
</td>
<td class="nump">$ 0.19<span></span>
</td>
<td class="nump">$ 0.26<span></span>
</td>
<td class="nump">$ 0.45<span></span>
</td>
<td class="nump">$ 0.32<span></span>
</td>
<td class="nump">$ 0.21<span></span>
</td>
<td class="nump">$ 1.16<span></span>
</td>
<td class="nump">$ 1.24<span></span>
</td>
<td class="nump">$ 0.98<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_StockholdersEquityNoteStockSplitConversionRatio1', window );">Stock split</a></td>
<td class="nump">2<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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>
<td class="text">&#160;<span></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_EarningsPerShareBasic">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The amount of net income (loss) for the period per each share of common stock or unit outstanding during the reporting period.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 944<br> -SubTopic 220<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-04(19))<br> -URI http://asc.fasb.org/extlink&amp;oid=114873790&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 260<br> -SubTopic 10<br> -Section 45<br> -Paragraph 7<br> -URI http://asc.fasb.org/extlink&amp;oid=109260490&amp;loc=d3e1337-109256<br><br>Reference 3: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 55<br> -Paragraph 52<br> -URI http://asc.fasb.org/extlink&amp;oid=109256448&amp;loc=d3e4984-109258<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03(21))<br> -URI http://asc.fasb.org/extlink&amp;oid=115205541&amp;loc=SL114868664-224227<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> -URI http://asc.fasb.org/extlink&amp;oid=109234566&amp;loc=d3e22694-107794<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=6371337&amp;loc=d3e3550-109257<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 2<br> -URI http://asc.fasb.org/extlink&amp;oid=109260490&amp;loc=d3e1252-109256<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 942<br> -SubTopic 220<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-04(23))<br> -URI http://asc.fasb.org/extlink&amp;oid=114873765&amp;loc=SL114874048-224260<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 45<br> -Paragraph 60B<br> -Subparagraph (d)<br> -URI http://asc.fasb.org/extlink&amp;oid=109260490&amp;loc=SL5780133-109256<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_EarningsPerShareBasic</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>num:perShareItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_EarningsPerShareDiluted">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The amount of net income (loss) for the period available to each share of common stock or common unit outstanding during the reporting period and to each share or unit that would have been outstanding assuming the issuance of common shares or units for all dilutive potential common shares or units outstanding during the reporting period.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 55<br> -Paragraph 52<br> -URI http://asc.fasb.org/extlink&amp;oid=109256448&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 260<br> -SubTopic 10<br> -Section 45<br> -Paragraph 2<br> -URI http://asc.fasb.org/extlink&amp;oid=109260490&amp;loc=d3e1252-109256<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 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=6371337&amp;loc=d3e3550-109257<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(23))<br> -URI http://asc.fasb.org/extlink&amp;oid=114873765&amp;loc=SL114874048-224260<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 11<br> -URI http://asc.fasb.org/extlink&amp;oid=109234566&amp;loc=d3e22694-107794<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 45<br> -Paragraph 7<br> -URI http://asc.fasb.org/extlink&amp;oid=109260490&amp;loc=d3e1337-109256<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03(21))<br> -URI http://asc.fasb.org/extlink&amp;oid=115205541&amp;loc=SL114868664-224227<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 45<br> -Paragraph 60B<br> -Subparagraph (d)<br> -URI http://asc.fasb.org/extlink&amp;oid=109260490&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 944<br> -SubTopic 220<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-04(19))<br> -URI http://asc.fasb.org/extlink&amp;oid=114873790&amp;loc=SL114874131-224263<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_EarningsPerShareDiluted</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>num:perShareItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_GrossProfit">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Aggregate revenue less cost of goods and services sold or operating expenses directly attributable to the revenue generation activity.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03.1,2)<br> -URI http://asc.fasb.org/extlink&amp;oid=115205541&amp;loc=SL114868664-224227<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_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_NetIncomeLoss">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The portion of profit or loss for the period, net of income taxes, which is attributable to the parent.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section 45<br> -Paragraph 1A<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=114867106&amp;loc=SL7669619-108580<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 942<br> -SubTopic 220<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-04(22))<br> -URI http://asc.fasb.org/extlink&amp;oid=114873765&amp;loc=SL114874048-224260<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 1B<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=114867106&amp;loc=SL7669625-108580<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 http://asc.fasb.org/extlink&amp;oid=114873790&amp;loc=SL114874131-224263<br><br>Reference 5: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03(20))<br> -URI http://asc.fasb.org/extlink&amp;oid=115205541&amp;loc=SL114868664-224227<br><br>Reference 6: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 28<br> -URI http://asc.fasb.org/extlink&amp;oid=109223946&amp;loc=d3e3602-108585<br><br>Reference 7: 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 http://asc.fasb.org/extlink&amp;oid=6371337&amp;loc=d3e3550-109257<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The net result for the period of deducting operating expenses from operating revenues.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_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_QuarterlyFinancialInformationDisclosureAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_QuarterlyFinancialInformationDisclosureAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount, 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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 606<br> -SubTopic 10<br> -Section 50<br> -Paragraph 4<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=109196051&amp;loc=SL49130543-203045<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 606<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=109196051&amp;loc=SL49130539-203045<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 606<br> -SubTopic 10<br> -Section 50<br> -Paragraph 5<br> -URI http://asc.fasb.org/extlink&amp;oid=109196051&amp;loc=SL49130545-203045<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_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_StockholdersEquityNoteStockSplitConversionRatio1">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Ratio applied to the conversion of stock split, for example but not limited to, one share converted to two or two shares converted to one.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 505<br> -SubTopic 10<br> -Section S99<br> -Paragraph 4<br> -Subparagraph (SAB TOPIC 4.C)<br> -URI http://asc.fasb.org/extlink&amp;oid=27012166&amp;loc=d3e187143-122770<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_StockholdersEquityNoteStockSplitConversionRatio1</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:pureItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>87
<FILENAME>R24.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.19.3.a.u2</span><table class="report" border="0" cellspacing="2" id="idp6864934016">
<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, 2019</div></th></tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_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="top.Show.showAR( this, 'defref_us-gaap_RevenueFromContractWithCustomerTextBlock', window );">Revenue Recognition</a></td>
<td class="text">Revenue Recognition<div style="line-height:120%;padding-top:8px;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">The following table summarizes disaggregated revenue information by geographic area based upon the customer's country of domicile (in thousands):</span></div><div style="line-height:120%;padding-top:8px;text-align:center;font-size:10pt;"><div style="padding-left:0px;text-indent:0px;line-height:normal;padding-top:10px;"><table cellpadding="0" cellspacing="0" style="font-family:Times New Roman;font-size:10pt;margin-left:auto;margin-right:auto;width:100%;border-collapse:collapse;text-align:left;"><tr><td colspan="13"/></tr><tr><td style="width:61%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:10%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:10%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:10%;"/><td style="width:1%;"/></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="11" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:center;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">Year Ended December 31,</span></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">2019</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">2018</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">2017</span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Americas</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">$</span></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>277,155</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>265,175</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>214,338</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Europe</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>227,738</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>311,914</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>328,826</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Greater China</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>115,061</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>123,708</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>108,738</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Other Asia</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>105,671</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>105,541</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>114,181</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>725,625</span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>806,338</span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>766,083</span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr></table></div></div><div style="line-height:120%;padding-top:8px;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">The following table summarizes disaggregated revenue information by revenue type (in thousands):</span></div><div style="line-height:120%;padding-top:8px;text-align:center;font-size:10pt;"><div style="padding-left:0px;text-indent:0px;line-height:normal;padding-top:10px;"><table cellpadding="0" cellspacing="0" style="font-family:Times New Roman;font-size:10pt;margin-left:auto;margin-right:auto;width:100%;border-collapse:collapse;text-align:left;"><tr><td colspan="13"/></tr><tr><td style="width:61%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:10%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:10%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:10%;"/><td style="width:1%;"/></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="11" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:center;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">Year Ended December 31,</span></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">2019</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">2018</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">2017</span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Standard products and services</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">$</span></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>629,220</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>654,509</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>603,196</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Application-specific customer solutions</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>96,405</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>151,829</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>162,887</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>725,625</span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>806,338</span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>766,083</span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr></table></div><span style="font-family:inherit;font-size:10pt;"><br/></span></div><div style="line-height:120%;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><br/></span></div><div style="line-height:120%;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;text-decoration:underline;">Costs to Fulfill a Contract</span></div><div style="line-height:120%;padding-top:4px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Costs to fulfill a contract are included in "Prepaid expenses and other current assets" on the Consolidated Balance Sheet and amounted to $</span><span style="font-family:Arial;font-size:10pt;"><span>3,963,000</span></span><span style="font-family:Arial;font-size:10pt;"> and $</span><span style="font-family:Arial;font-size:10pt;"><span>3,514,000</span></span><span style="font-family:Arial;font-size:10pt;"> as of December 31, 2019 and 2018, respectively. </span></div><div style="line-height:120%;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><br/></span></div><div style="line-height:120%;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;text-decoration:underline;">Accounts Receivable, Contract Assets, and Contract Liabilities</span></div><div style="line-height:120%;padding-top:4px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Accounts receivable represent amounts billed and currently due from customers which are reported at their net estimated realizable value.  The Company maintains reserves against its accounts receivable for potential credit losses.  Credit losses recognized on accounts receivable were immaterial for the year ended December 31, 2019 and 2018.  Contract assets consist of unbilled revenue which arises when revenue is recognized in advance of billing for certain application-specific customer solutions contracts.  Contract liabilities consist of deferred revenue and customer deposits which arise when amounts are billed to or collected from customers in advance of revenue recognition.</span></div><div style="line-height:120%;padding-top:4px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><br/></span></div><div style="line-height:120%;padding-top:4px;text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">The following table summarizes the deferred revenue and customer deposits activity (in thousands):</span></div><div style="line-height:120%;padding-top:4px;text-align:center;font-size:10pt;"><div style="padding-left:0px;text-indent:0px;line-height:normal;padding-top:10px;"><table cellpadding="0" cellspacing="0" style="font-family:Times New Roman;font-size:10pt;margin-left:auto;margin-right:auto;width:100%;border-collapse:collapse;text-align:left;"><tr><td colspan="4"/></tr><tr><td style="width:80%;"/><td style="width:1%;"/><td style="width:18%;"/><td style="width:1%;"/></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Amount</span></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Balance as of December 31, 2017</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>9,420</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Increases to deferred revenue and customer deposits</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>63,231</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Recognition of revenue</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>(61,819</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">)</span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Foreign exchange rate changes</span></div></td><td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>(987</span></span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">)</span></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Balance as of December 31, 2018</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>9,845</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Increases to deferred revenue and customer deposits</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>53,422</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Recognition of revenue</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>(48,730</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">)</span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Foreign exchange rate changes</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>(105</span></span></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">)</span></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Balance as of December 31, 2019</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>14,432</span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr></table></div><span style="font-family:inherit;font-size:10pt;"><br/></span></div><div style="line-height:120%;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><br/></span></div><div style="line-height:120%;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The entire disclosure of revenue from contract with customer to transfer good or service and to transfer nonfinancial asset. Includes, but is not limited to, disaggregation of revenue, credit loss recognized from contract with customer, judgment and change in judgment related to contract with customer, and asset recognized from cost incurred to obtain or fulfill contract with customer. Excludes insurance and lease contracts.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 606<br> -URI http://asc.fasb.org/topic&amp;trid=49130388<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 235<br> -URI http://asc.fasb.org/topic&amp;trid=2122369<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_RevenueFromContractWithCustomerTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>nonnum:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>88
<FILENAME>R20.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.19.3.a.u2</span><table class="report" border="0" cellspacing="2" id="idp6866050816">
<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, 2019</div></th></tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_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="top.Show.showAR( this, 'defref_us-gaap_AccountsPayableAndAccruedLiabilitiesDisclosureTextBlock', window );">Accrued Expenses</a></td>
<td class="text">Accrued Expenses<div style="line-height:120%;padding-top:6px;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Accrued expenses consisted of the following (in thousands):</span></div><div style="line-height:120%;font-size:10pt;"><div style="padding-left:0px;text-indent:0px;line-height:normal;padding-top:10px;"><table cellpadding="0" cellspacing="0" style="font-family:Times New Roman;font-size:10pt;width:99.80506822612085%;border-collapse:collapse;text-align:left;"><tr><td colspan="8"/></tr><tr><td style="width:65%;"/><td style="width:1%;"/><td style="width:15%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:15%;"/><td style="width:1%;"/></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;">&#160;</span></div></td><td colspan="7" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;">December&#160;31,</span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-top:2px;padding-bottom:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;">2019</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-top:2px;padding-bottom:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;">2018</span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Salaries, commissions, and payroll taxes</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>11,500</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>11,039</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Foreign retirement obligations</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>6,146</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>4,816</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Warranty obligations</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>4,713</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>4,743</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Vacation</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>4,708</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>6,507</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Acquisition deferred and contingent liabilities</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>2,103</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>1,706</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Company bonuses</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>&#8212;</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>9,134</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Other</span></div></td><td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>23,029</span></span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>22,275</span></span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>52,199</span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>60,220</span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr></table></div><span style="font-family:inherit;font-size:10pt;"><br/></span></div><div style="line-height:120%;padding-top:12px;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">The changes in the warranty obligation were as follows (in thousands):</span></div><div style="line-height:120%;font-size:10pt;"><div style="padding-left:0px;text-indent:0px;line-height:normal;padding-top:10px;"><table cellpadding="0" cellspacing="0" style="font-family:Times New Roman;font-size:10pt;width:100%;border-collapse:collapse;text-align:left;"><tr><td colspan="4"/></tr><tr><td style="width:82%;"/><td style="width:1%;"/><td style="width:16%;"/><td style="width:1%;"/></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Balance as of December 31, 2017</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>4,701</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Provisions for warranties issued during the period</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>4,184</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Fulfillment of warranty obligations</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>(4,024</span></span></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">)</span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Foreign exchange rate changes</span></div></td><td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>(118</span></span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">)</span></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Balance as of December 31, 2018</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>4,743</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Provisions for warranties issued during the period</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>3,841</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Fulfillment of warranty obligations</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>(3,871</span></span></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">)</span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Balance as of December 31, 2019</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>4,713</span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr></table></div><span style="font-family:inherit;font-size:10pt;"><br/></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_AccountsPayableAndAccruedLiabilitiesDisclosureTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The entire disclosure for accounts payable and accrued liabilities at the end of the reporting period.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02.19(a),20,24)<br> -URI http://asc.fasb.org/extlink&amp;oid=6877327&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AccountsPayableAndAccruedLiabilitiesDisclosureTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>nonnum:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PayablesAndAccrualsAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_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>89
<FILENAME>R4.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.19.3.a.u2</span><table class="report" border="0" cellspacing="2" id="idp6886947456">
<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, 2019</div></th>
<th class="th"><div>Dec. 31, 2018</div></th>
<th class="th"><div>Dec. 31, 2017</div></th>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_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="top.Show.showAR( this, 'defref_us-gaap_NetIncomeLoss', window );">Net income</a></td>
<td class="nump">$ 203,865<span></span>
</td>
<td class="nump">$ 219,267<span></span>
</td>
<td class="nump">$ 176,712<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_cgnx_CashflowshedgesAbstract', window );"><strong>Cash flow hedges:</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_OtherComprehensiveIncomeUnrealizedGainLossOnDerivativesArisingDuringPeriodNetOfTax', window );">Net unrealized gain (loss), net of tax of $0, $0, and ($5) in 2019, 2018, and 2017, respectively</a></td>
<td class="nump">0<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="nump">4<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIOnDerivativesNetOfTax', window );">Reclassification of net realized (gain) loss into current operations</a></td>
<td class="nump">0<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="num">(41)<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_OtherComprehensiveIncomeLossDerivativesQualifyingAsHedgesNetOfTax', window );">Net change related to cash flow hedges</a></td>
<td class="nump">0<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="num">(37)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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="top.Show.showAR( this, 'defref_us-gaap_OtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax', window );">Net unrealized gain (loss), net of tax of $515, ($188), and $2 in 2019, 2018, and 2017, respectively</a></td>
<td class="nump">5,219<span></span>
</td>
<td class="num">(1,185)<span></span>
</td>
<td class="nump">703<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax', window );">Reclassification of net realized (gain) loss into current operations</a></td>
<td class="num">(1,452)<span></span>
</td>
<td class="num">(501)<span></span>
</td>
<td class="num">(829)<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_OtherComprehensiveIncomeAvailableforsaleSecuritiesAdjustmentNetOfTaxPortionAttributableToParent', window );">Net change related to available-for-sale investments</a></td>
<td class="nump">3,767<span></span>
</td>
<td class="num">(1,686)<span></span>
</td>
<td class="num">(126)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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="top.Show.showAR( this, 'defref_us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax', window );">Foreign currency translation adjustments</a></td>
<td class="num">(541)<span></span>
</td>
<td class="num">(4,216)<span></span>
</td>
<td class="nump">21,992<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent', window );">Net change related to foreign currency translation adjustments</a></td>
<td class="num">(541)<span></span>
</td>
<td class="num">(4,216)<span></span>
</td>
<td class="nump">21,992<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent', window );">Other comprehensive income (loss), net of tax</a></td>
<td class="nump">3,226<span></span>
</td>
<td class="num">(5,902)<span></span>
</td>
<td class="nump">21,829<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ComprehensiveIncomeNetOfTax', window );">Total comprehensive income</a></td>
<td class="nump">$ 207,091<span></span>
</td>
<td class="nump">$ 213,365<span></span>
</td>
<td class="nump">$ 198,541<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_cgnx_CashflowshedgesAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Cash flows hedges [Abstract]</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cgnx_CashflowshedgesAbstract</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_cgnx_CurrencytranslationadjustmentAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Currency translation adjustment [Abstract]</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount after tax of increase (decrease) in equity from transactions and other events and circumstances from net income and other comprehensive income, attributable to parent entity. Excludes changes in equity resulting from investments by owners and distributions to owners.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section 45<br> -Paragraph 5<br> -URI http://asc.fasb.org/extlink&amp;oid=114867106&amp;loc=d3e557-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 1B<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=114867106&amp;loc=SL7669625-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 1A<br> -Subparagraph (c)<br> -URI http://asc.fasb.org/extlink&amp;oid=114867106&amp;loc=SL7669619-108580<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ComprehensiveIncomeNetOfTax</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_NetIncomeLoss">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The portion of profit or loss for the period, net of income taxes, which is attributable to the parent.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section 45<br> -Paragraph 1A<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=114867106&amp;loc=SL7669619-108580<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 942<br> -SubTopic 220<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-04(22))<br> -URI http://asc.fasb.org/extlink&amp;oid=114873765&amp;loc=SL114874048-224260<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 1B<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=114867106&amp;loc=SL7669625-108580<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 http://asc.fasb.org/extlink&amp;oid=114873790&amp;loc=SL114874131-224263<br><br>Reference 5: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03(20))<br> -URI http://asc.fasb.org/extlink&amp;oid=115205541&amp;loc=SL114868664-224227<br><br>Reference 6: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 28<br> -URI http://asc.fasb.org/extlink&amp;oid=109223946&amp;loc=d3e3602-108585<br><br>Reference 7: 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 http://asc.fasb.org/extlink&amp;oid=6371337&amp;loc=d3e3550-109257<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount after tax and reclassification adjustments, of 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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 810<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1A<br> -Subparagraph (c)(3)<br> -URI http://asc.fasb.org/extlink&amp;oid=109239629&amp;loc=SL4573702-111684<br><br>Reference 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 http://asc.fasb.org/extlink&amp;oid=108774443&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 http://asc.fasb.org/extlink&amp;oid=108774443&amp;loc=SL4569643-111683<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount after tax and reclassification adjustments of gain (loss) on foreign currency translation adjustments, foreign currency transactions designated and effective as economic hedges of a net investment in a foreign entity and intra-entity foreign currency transactions that are of a long-term-investment nature, attributable to parent entity.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 810<br> -SubTopic 10<br> -Section 45<br> -Paragraph 20<br> -URI http://asc.fasb.org/extlink&amp;oid=108774443&amp;loc=SL4569643-111683<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 810<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1A<br> -Subparagraph (c)(3)<br> -URI http://asc.fasb.org/extlink&amp;oid=109239629&amp;loc=SL4573702-111684<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 810<br> -SubTopic 10<br> -Section 45<br> -Paragraph 19<br> -URI http://asc.fasb.org/extlink&amp;oid=108774443&amp;loc=SL4569616-111683<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_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_OtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount after tax and reclassification adjustments, of appreciation (loss) in value of unsold available-for-sale securities. Excludes amounts related to other than temporary impairment (OTTI) loss.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section 45<br> -Paragraph 10A<br> -Subparagraph (e)<br> -URI http://asc.fasb.org/extlink&amp;oid=114867106&amp;loc=SL7669646-108580<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_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_OtherComprehensiveIncomeLossDerivativesQualifyingAsHedgesNetOfTax">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount after tax and reclassification adjustments, of increase (decrease) in accumulated gain (loss) from derivative instruments designated and qualifying as the effective portion of cash flow hedges and an entity's share of an equity investee's increase (decrease) in deferred hedging gain (loss).</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section 45<br> -Paragraph 10A<br> -Subparagraph (d)<br> -URI http://asc.fasb.org/extlink&amp;oid=114867106&amp;loc=SL7669646-108580<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OtherComprehensiveIncomeLossDerivativesQualifyingAsHedgesNetOfTax</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount after tax and reclassification adjustments of gain (loss) on foreign currency translation adjustments, foreign currency transactions designated and effective as economic hedges of a net investment in a foreign entity and intra-entity foreign currency transactions that are of a long-term-investment nature.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section 45<br> -Paragraph 10A<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=114867106&amp;loc=SL7669646-108580<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 830<br> -SubTopic 30<br> -Section 45<br> -Paragraph 20<br> -Subparagraph (b,c)<br> -URI http://asc.fasb.org/extlink&amp;oid=109240241&amp;loc=d3e32211-110900<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount after tax of other comprehensive income (loss) attributable to parent entity.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section 45<br> -Paragraph 1B<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=114867106&amp;loc=SL7669625-108580<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 810<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1A<br> -Subparagraph (c)(3)<br> -URI http://asc.fasb.org/extlink&amp;oid=109239629&amp;loc=SL4573702-111684<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 810<br> -SubTopic 10<br> -Section 45<br> -Paragraph 20<br> -URI http://asc.fasb.org/extlink&amp;oid=108774443&amp;loc=SL4569643-111683<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section 45<br> -Paragraph 1A<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=114867106&amp;loc=SL7669619-108580<br><br>Reference 5: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 810<br> -SubTopic 10<br> -Section 45<br> -Paragraph 19<br> -URI http://asc.fasb.org/extlink&amp;oid=108774443&amp;loc=SL4569616-111683<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount after tax of 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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section 45<br> -Paragraph 15<br> -URI http://asc.fasb.org/extlink&amp;oid=114867106&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 http://asc.fasb.org/extlink&amp;oid=114867106&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 http://asc.fasb.org/extlink&amp;oid=82897076&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 http://asc.fasb.org/extlink&amp;oid=114867106&amp;loc=SL34724391-108580<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_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_OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIOnDerivativesNetOfTax">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount after tax of reclassification adjustment from accumulated other comprehensive income of accumulated gain (loss) realized from derivative instruments designated and qualifying as the effective portion of cash flow hedges and an entity's share of an equity investee's deferred hedging gain (loss).</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 815<br> -SubTopic 10<br> -Section 50<br> -Paragraph 4<br> -Subparagraph c<br> -URI http://asc.fasb.org/extlink&amp;oid=109980867&amp;loc=d3e41638-113959<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 17A<br> -URI http://asc.fasb.org/extlink&amp;oid=114867106&amp;loc=SL34724391-108580<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 15<br> -URI http://asc.fasb.org/extlink&amp;oid=114867106&amp;loc=d3e689-108580<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 11<br> -URI http://asc.fasb.org/extlink&amp;oid=114867106&amp;loc=d3e637-108580<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIOnDerivativesNetOfTax</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_OtherComprehensiveIncomeUnrealizedGainLossOnDerivativesArisingDuringPeriodNetOfTax">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount after tax of increase (decrease) in accumulated gain (loss) from derivative instruments designated and qualifying as the effective portion of cash flow hedges and an entity's share of an equity investee's increase (decrease) in deferred hedging gain (loss).</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section 45<br> -Paragraph 10A<br> -Subparagraph (d)<br> -URI http://asc.fasb.org/extlink&amp;oid=114867106&amp;loc=SL7669646-108580<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 30<br> -Section 45<br> -Paragraph 1<br> -URI http://asc.fasb.org/extlink&amp;oid=109978405&amp;loc=d3e80720-113993<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 11<br> -URI http://asc.fasb.org/extlink&amp;oid=114867106&amp;loc=d3e637-108580<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OtherComprehensiveIncomeUnrealizedGainLossOnDerivativesArisingDuringPeriodNetOfTax</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_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>90
<FILENAME>R8.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.19.3.a.u2</span><table class="report" border="0" cellspacing="2" id="idp6888071616">
<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, 2019</div></th>
<th class="th"><div>Dec. 31, 2018</div></th>
<th class="th"><div>Dec. 31, 2017</div></th>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract', window );"><strong>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="top.Show.showAR( this, 'defref_us-gaap_NetIncomeLoss', window );">Net income</a></td>
<td class="nump">$ 203,865<span></span>
</td>
<td class="nump">$ 219,267<span></span>
</td>
<td class="nump">$ 176,712<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_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="top.Show.showAR( this, 'defref_us-gaap_StockOptionPlanExpense', window );">Stock-based compensation expense</a></td>
<td class="nump">45,589<span></span>
</td>
<td class="nump">41,090<span></span>
</td>
<td class="nump">31,942<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_Depreciation', window );">Depreciation of property, plant, and equipment</a></td>
<td class="nump">21,527<span></span>
</td>
<td class="nump">18,473<span></span>
</td>
<td class="nump">13,683<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AmortizationOfIntangibleAssets', window );">Amortization of intangible assets</a></td>
<td class="nump">3,373<span></span>
</td>
<td class="nump">3,076<span></span>
</td>
<td class="nump">3,308<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AssetImpairmentCharges', window );">Impairment of intangible assets</a></td>
<td class="nump">0<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="nump">469<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AccretionAmortizationOfDiscountsAndPremiumsInvestments', window );">Amortization of discounts or premiums on investments</a></td>
<td class="num">(618)<span></span>
</td>
<td class="nump">108<span></span>
</td>
<td class="nump">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="top.Show.showAR( this, 'defref_us-gaap_GainLossOnSaleOfInvestments', window );">Realized (gain) loss on sale of investments</a></td>
<td class="num">(1,452)<span></span>
</td>
<td class="num">(501)<span></span>
</td>
<td class="num">(829)<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1', window );">Revaluation of contingent consideration</a></td>
<td class="num">(1,401)<span></span>
</td>
<td class="num">(3)<span></span>
</td>
<td class="num">(28)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_IncreaseDecreaseInDeferredIncomeTaxes', window );">Change in deferred income taxes</a></td>
<td class="num">(94,866)<span></span>
</td>
<td class="num">(413)<span></span>
</td>
<td class="nump">1,787<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_IncreaseDecreaseInAccountsReceivable', window );">Accounts receivable</a></td>
<td class="nump">16,807<span></span>
</td>
<td class="num">(1,867)<span></span>
</td>
<td class="num">(55,185)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_IncreaseDecreaseInUnbilledReceivables', window );">Unbilled revenue</a></td>
<td class="nump">3,530<span></span>
</td>
<td class="num">(906)<span></span>
</td>
<td class="num">(4,604)<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_IncreaseDecreaseInInventories', window );">Inventories</a></td>
<td class="nump">23,137<span></span>
</td>
<td class="num">(16,946)<span></span>
</td>
<td class="num">(37,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="top.Show.showAR( this, 'defref_us-gaap_IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets', window );">Prepaid expenses and other current assets</a></td>
<td class="nump">7,405<span></span>
</td>
<td class="num">(9,750)<span></span>
</td>
<td class="num">(7,016)<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_IncreaseDecreaseInAccountsPayable', window );">Accounts payable</a></td>
<td class="nump">1,633<span></span>
</td>
<td class="num">(7,247)<span></span>
</td>
<td class="nump">12,322<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_IncreaseDecreaseInAccruedLiabilities', window );">Accrued expenses</a></td>
<td class="num">(8,938)<span></span>
</td>
<td class="nump">380<span></span>
</td>
<td class="nump">14,476<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_IncreaseDecreaseInAccruedIncomeTaxesPayable', window );">Accrued income taxes</a></td>
<td class="nump">25,266<span></span>
</td>
<td class="num">(21,903)<span></span>
</td>
<td class="nump">71,335<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_IncreaseDecreaseInDeferredRevenueAndCustomerAdvancesAndDeposits', window );">Deferred revenue and customer deposits</a></td>
<td class="nump">3,875<span></span>
</td>
<td class="nump">1,434<span></span>
</td>
<td class="nump">1,619<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_IncreaseDecreaseInOtherOperatingCapitalNet', window );">Other</a></td>
<td class="nump">4,493<span></span>
</td>
<td class="num">(838)<span></span>
</td>
<td class="nump">1,215<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_NetCashProvidedByUsedInOperatingActivities', window );">Net cash provided by operating activities</a></td>
<td class="nump">253,225<span></span>
</td>
<td class="nump">223,454<span></span>
</td>
<td class="nump">224,323<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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="top.Show.showAR( this, 'defref_us-gaap_PaymentsToAcquireInvestments', window );">Purchases of investments</a></td>
<td class="num">(1,031,642)<span></span>
</td>
<td class="num">(782,032)<span></span>
</td>
<td class="num">(636,856)<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ProceedsFromSaleMaturityAndCollectionsOfInvestments', window );">Maturities and sales of investments</a></td>
<td class="nump">1,062,962<span></span>
</td>
<td class="nump">812,565<span></span>
</td>
<td class="nump">584,464<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_PaymentsToAcquirePropertyPlantAndEquipment', window );">Purchases of property, plant, and equipment</a></td>
<td class="num">(21,745)<span></span>
</td>
<td class="num">(37,095)<span></span>
</td>
<td class="num">(28,754)<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired', window );">Cash paid for acquisition of business, net of cash acquired</a></td>
<td class="num">(166,911)<span></span>
</td>
<td class="num">(4,265)<span></span>
</td>
<td class="num">(24,118)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_PaymentsForProceedsFromBusinessesAndInterestInAffiliates', window );">Net cash paid from sale of discontinued business</a></td>
<td class="nump">0<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="num">(291)<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_NetCashProvidedByUsedInInvestingActivities', window );">Net cash used in investing activities</a></td>
<td class="num">(157,336)<span></span>
</td>
<td class="num">(10,827)<span></span>
</td>
<td class="num">(105,555)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ProceedsFromIssuanceOfSharesUnderIncentiveAndShareBasedCompensationPlansIncludingStockOptions', window );">Issuance of common stock under stock plans</a></td>
<td class="nump">64,581<span></span>
</td>
<td class="nump">26,783<span></span>
</td>
<td class="nump">54,557<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_PaymentsForRepurchaseOfCommonStock', window );">Repurchase of common stock</a></td>
<td class="num">(61,690)<span></span>
</td>
<td class="num">(203,822)<span></span>
</td>
<td class="num">(123,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="top.Show.showAR( this, 'defref_us-gaap_PaymentsOfDividendsCommonStock', window );">Payment of dividends</a></td>
<td class="num">(35,124)<span></span>
</td>
<td class="num">(31,865)<span></span>
</td>
<td class="num">(29,037)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_PaymentsForPreviousAcquisition', window );">Payment of contingent consideration</a></td>
<td class="nump">0<span></span>
</td>
<td class="num">(1,000)<span></span>
</td>
<td class="num">(1,926)<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_NetCashProvidedByUsedInFinancingActivities', window );">Net cash used in financing activities</a></td>
<td class="num">(32,233)<span></span>
</td>
<td class="num">(209,904)<span></span>
</td>
<td class="num">(100,121)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_EffectOfExchangeRateOnCashAndCashEquivalents', window );">Effect of foreign exchange rate changes on cash and cash equivalents</a></td>
<td class="num">(437)<span></span>
</td>
<td class="num">(1,093)<span></span>
</td>
<td class="nump">8,294<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_CashAndCashEquivalentsPeriodIncreaseDecrease', window );">Net change in cash and cash equivalents</a></td>
<td class="nump">63,219<span></span>
</td>
<td class="nump">1,630<span></span>
</td>
<td class="nump">26,941<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_CashAndCashEquivalentsAtCarryingValue', window );">Cash and cash equivalents at beginning of year</a></td>
<td class="nump">108,212<span></span>
</td>
<td class="nump">106,582<span></span>
</td>
<td class="nump">79,641<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_CashAndCashEquivalentsAtCarryingValue', window );">Cash and cash equivalents at end of year</a></td>
<td class="nump">$ 171,431<span></span>
</td>
<td class="nump">$ 108,212<span></span>
</td>
<td class="nump">$ 106,582<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_AccretionAmortizationOfDiscountsAndPremiumsInvestments">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The 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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 28<br> -URI http://asc.fasb.org/extlink&amp;oid=109223946&amp;loc=d3e3602-108585<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AmortizationOfIntangibleAssets">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The aggregate expense charged against earnings to allocate the cost of intangible assets (nonphysical assets not used in production) in a systematic and rational manner to the periods expected to benefit from such assets. As a noncash expense, this element is added back to net income when calculating cash provided by or used in operations using the indirect method.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=109223946&amp;loc=d3e3602-108585<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 350<br> -SubTopic 30<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)(2)<br> -URI http://asc.fasb.org/extlink&amp;oid=66006027&amp;loc=d3e16323-109275<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 350<br> -SubTopic 30<br> -Section 45<br> -Paragraph 2<br> -URI http://asc.fasb.org/extlink&amp;oid=6388964&amp;loc=d3e16225-109274<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AmortizationOfIntangibleAssets</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AssetImpairmentCharges">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of 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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=109223946&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 http://asc.fasb.org/extlink&amp;oid=109226348&amp;loc=d3e2420-110228<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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_BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of increase (decrease) in the value of a contingent consideration liability, including, but not limited to, differences arising upon settlement.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=109223946&amp;loc=d3e3602-108585<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 805<br> -SubTopic 30<br> -Section 50<br> -Paragraph 4<br> -Subparagraph (a)(1)<br> -URI http://asc.fasb.org/extlink&amp;oid=35744584&amp;loc=d3e7008-128479<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_CashAndCashEquivalentsAtCarryingValue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of currency on hand as well as demand deposits with banks or financial institutions. Includes other kinds of accounts that have the general characteristics of demand deposits. Also includes short-term, highly liquid investments that are both readily convertible to known amounts of cash and so near their maturity that they present insignificant risk of changes in value because of changes in interest rates. Excludes cash and cash equivalents within disposal group and discontinued operation.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 4<br> -URI http://asc.fasb.org/extlink&amp;oid=109223946&amp;loc=d3e3044-108585<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section 45<br> -Paragraph 1<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=82887183&amp;loc=d3e6676-107765<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02.1)<br> -URI http://asc.fasb.org/extlink&amp;oid=6877327&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_CashAndCashEquivalentsAtCarryingValue</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_CashAndCashEquivalentsPeriodIncreaseDecrease">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of increase (decrease) in cash and cash equivalents. Cash and cash equivalents are the 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. Includes effect from exchange rate changes.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_CashAndCashEquivalentsPeriodIncreaseDecrease</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_Depreciation">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The amount of expense recognized in the current period that reflects the allocation of the cost of tangible assets over the assets' useful lives. Includes production and non-production related depreciation.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 360<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=6391035&amp;loc=d3e2868-110229<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=109223946&amp;loc=d3e3602-108585<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_Depreciation</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_EffectOfExchangeRateOnCashAndCashEquivalents">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of increase (decrease) from the effect of exchange rate changes on cash and cash equivalent balances held in foreign currencies.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 830<br> -SubTopic 230<br> -Section 45<br> -Paragraph 1<br> -URI http://asc.fasb.org/extlink&amp;oid=98513438&amp;loc=d3e33268-110906<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_EffectOfExchangeRateOnCashAndCashEquivalents</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The net 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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=109223946&amp;loc=d3e3602-108585<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_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_IncreaseDecreaseInAccountsPayable">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The increase (decrease) during the reporting period in the aggregate amount of liabilities incurred (and for which invoices have typically been received) and payable to vendors for goods and services received that are used in an entity's business.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=109223946&amp;loc=d3e3602-108585<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncreaseDecreaseInAccountsPayable</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncreaseDecreaseInAccountsReceivable">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The increase (decrease) during the reporting period in amount due within one year (or one business cycle) from customers for the credit sale of goods and services.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=109223946&amp;loc=d3e3602-108585<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncreaseDecreaseInAccountsReceivable</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncreaseDecreaseInAccruedIncomeTaxesPayable">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The increase (decrease) during the 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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=109223946&amp;loc=d3e3602-108585<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The increase (decrease) during the reporting period in the aggregate amount of expenses incurred but not yet paid.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=109223946&amp;loc=d3e3602-108585<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncreaseDecreaseInAccruedLiabilities</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncreaseDecreaseInDeferredIncomeTaxes">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The increase (decrease) during the reporting period in the 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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=109223946&amp;loc=d3e3602-108585<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_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_IncreaseDecreaseInDeferredRevenueAndCustomerAdvancesAndDeposits">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The increase (decrease) during the reporting period in the amount of (a) prepayments by customers for goods or services to be provided at a later date, (b) the amount of customer money held in customer accounts, including security deposits, collateral for current or future transactions, initial payment of the cost of an acquisition or for the right to enter into a contract or agreement, (c) the increase (decrease) during the reporting period, excluding the portion taken into income, in the liability reflecting services yet to be performed by the reporting entity for which cash or other forms of consideration was received or recorded as a receivable, or (d) some combination of (a), (b), and (c).</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/otherTransitionRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=109223946&amp;loc=d3e3602-108585<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncreaseDecreaseInDeferredRevenueAndCustomerAdvancesAndDeposits</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncreaseDecreaseInInventories">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The increase (decrease) during the reporting period in the aggregate value of all inventory held by the reporting entity, associated with underlying transactions that are classified as operating activities.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=109223946&amp;loc=d3e3602-108585<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncreaseDecreaseInInventories</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncreaseDecreaseInOtherOperatingCapitalNet">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of increase (decrease) in operating assets after deduction of operating liabilities classified as other.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=109223946&amp;loc=d3e3602-108585<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of increase (decrease) in prepaid expenses, and assets classified as other.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=109223946&amp;loc=d3e3602-108585<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncreaseDecreaseInUnbilledReceivables">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The increase (decrease) during the reporting period of the amount of revenue for work performed for which billing has not occurred, net of uncollectible accounts.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/otherTransitionRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=109223946&amp;loc=d3e3602-108585<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncreaseDecreaseInUnbilledReceivables</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_NetCashProvidedByUsedInFinancingActivities">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of cash inflow (outflow) from financing activities, including discontinued operations. Financing activity cash flows include obtaining resources from owners and providing them with a return on, and a return of, their investment; borrowing money and repaying amounts borrowed, or settling the obligation; and obtaining and paying for other resources obtained from creditors on long-term credit.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 24<br> -URI http://asc.fasb.org/extlink&amp;oid=109223946&amp;loc=d3e3521-108585<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_NetCashProvidedByUsedInFinancingActivities</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of cash inflow (outflow) from investing activities, including discontinued operations. Investing activity cash flows include making and collecting loans and acquiring and disposing of debt or equity instruments and property, plant, and equipment and other productive assets.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 24<br> -URI http://asc.fasb.org/extlink&amp;oid=109223946&amp;loc=d3e3521-108585<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_NetCashProvidedByUsedInInvestingActivities</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of cash inflow (outflow) from operating activities, including discontinued operations. Operating activity cash flows include transactions, adjustments, and changes in value not defined as investing or financing activities.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 25<br> -URI http://asc.fasb.org/extlink&amp;oid=109223946&amp;loc=d3e3536-108585<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 24<br> -URI http://asc.fasb.org/extlink&amp;oid=109223946&amp;loc=d3e3521-108585<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 28<br> -URI http://asc.fasb.org/extlink&amp;oid=109223946&amp;loc=d3e3602-108585<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_NetCashProvidedByUsedInOperatingActivities</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_NetIncomeLoss">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The portion of profit or loss for the period, net of income taxes, which is attributable to the parent.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section 45<br> -Paragraph 1A<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=114867106&amp;loc=SL7669619-108580<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 942<br> -SubTopic 220<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-04(22))<br> -URI http://asc.fasb.org/extlink&amp;oid=114873765&amp;loc=SL114874048-224260<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 1B<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=114867106&amp;loc=SL7669625-108580<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 http://asc.fasb.org/extlink&amp;oid=114873790&amp;loc=SL114874131-224263<br><br>Reference 5: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03(20))<br> -URI http://asc.fasb.org/extlink&amp;oid=115205541&amp;loc=SL114868664-224227<br><br>Reference 6: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 28<br> -URI http://asc.fasb.org/extlink&amp;oid=109223946&amp;loc=d3e3602-108585<br><br>Reference 7: 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 http://asc.fasb.org/extlink&amp;oid=6371337&amp;loc=d3e3550-109257<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_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_PaymentsForPreviousAcquisition">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Cash outflow representing an adjustment to the purchase price of a previous acquisition.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 13<br> -URI http://asc.fasb.org/extlink&amp;oid=109223946&amp;loc=d3e3213-108585<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PaymentsForPreviousAcquisition</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_PaymentsForProceedsFromBusinessesAndInterestInAffiliates">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The net cash outflow or inflow associated with the acquisition or sale of a business segment during the period.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://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 3<br> -Subparagraph (SX 210.12-04(a))<br> -URI http://asc.fasb.org/extlink&amp;oid=26873400&amp;loc=d3e24072-122690<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PaymentsForProceedsFromBusinessesAndInterestInAffiliates</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The cash outflow to reacquire common stock during the period.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 15<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=109223946&amp;loc=d3e3291-108585<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of cash outflow in the form of ordinary dividends to common shareholders of the parent entity.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 15<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=109223946&amp;loc=d3e3291-108585<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The cash outflow associated with the acquisition of a business, net of the cash acquired from the purchase.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 13<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=109223946&amp;loc=d3e3213-108585<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PaymentsToAcquireInvestments">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The cash outflow associated with the purchase of all investments (debt, security, other) during the period.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 13<br> -URI http://asc.fasb.org/extlink&amp;oid=109223946&amp;loc=d3e3213-108585<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The cash outflow associated with the acquisition of long-lived, physical assets that are used in the normal conduct of business to produce goods and services and not intended for resale; includes cash outflows to pay for construction of self-constructed assets.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 13<br> -Subparagraph (c)<br> -URI http://asc.fasb.org/extlink&amp;oid=109223946&amp;loc=d3e3213-108585<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PaymentsToAcquirePropertyPlantAndEquipment</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ProceedsFromIssuanceOfSharesUnderIncentiveAndShareBasedCompensationPlansIncludingStockOptions">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of cash inflow from issuance of shares under share-based compensation arrangement. Issuance includes, but is not limited to, exercise of stock options and similar instruments.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2A<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=109197908&amp;loc=SL79508275-113901<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 14<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=109223946&amp;loc=d3e3255-108585<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The cash inflow associated with the 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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 12<br> -URI http://asc.fasb.org/extlink&amp;oid=109223946&amp;loc=d3e3179-108585<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The noncash expense that accounts for the value of stock or unit options distributed to employees as compensation.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=109223946&amp;loc=d3e3602-108585<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_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>91
<FILENAME>R14.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.19.3.a.u2</span><table class="report" border="0" cellspacing="2" id="idp6636715664">
<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, 2019</div></th></tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_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="top.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="line-height:120%;padding-top:6px;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Cash, cash equivalents, and investments consisted of the following (in thousands):</span></div><div style="line-height:120%;font-size:10pt;"><div style="padding-left:0px;text-indent:0px;line-height:normal;padding-top:10px;"><table cellpadding="0" cellspacing="0" style="font-family:Times New Roman;font-size:10pt;width:99.80506822612085%;border-collapse:collapse;text-align:left;"><tr><td colspan="8"/></tr><tr><td style="width:66%;"/><td style="width:1%;"/><td style="width:14%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:15%;"/><td style="width:1%;"/></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;">&#160;</span></div></td><td colspan="7" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;">December&#160;31,</span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;">2019</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">2018</span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Cash</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>155,498</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>104,655</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Money market instruments</span></div></td><td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>15,933</span></span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>3,557</span></span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Cash and cash equivalents</span></div></td><td colspan="2" style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>171,431</span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>108,212</span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Treasury bills</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>92,914</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;border-top:3px double #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>198,477</span></span></div></td><td style="vertical-align:bottom;border-top:3px double #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Asset-backed securities</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>66,680</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>78,407</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Corporate bonds</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>65,624</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>137,871</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Sovereign bonds</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>6,294</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>8,101</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Municipal bonds</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>4,630</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>4,492</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Certificate of deposit</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>4,328</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>&#8212;</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Current investments</span></div></td><td colspan="2" style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>240,470</span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>427,348</span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Treasury bills</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>216,334</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>32,760</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Corporate bonds</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>146,474</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>162,566</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Asset-backed securities</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>46,403</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>53,631</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Sovereign bonds</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>16,005</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>6,316</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Agency bonds</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>5,914</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>5,921</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Municipal bonds</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>2,322</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>845</span></span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Non-current investments</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>433,452</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>262,039</span></span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>845,353</span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>797,599</span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr></table></div><span style="font-family:inherit;font-size:10pt;"><br/></span></div><div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">The Company&#8217;s cash balance included foreign bank balances totaling </span><span style="font-family:Arial;font-size:10pt;"><span>$123,499,000</span></span><span style="font-family:Arial;font-size:10pt;"> and </span><span style="font-family:Arial;font-size:10pt;"><span>$67,502,000</span></span><span style="font-family:Arial;font-size:10pt;"> as of December&#160;31, </span><span style="font-family:Arial;font-size:10pt;">2019</span><span style="font-family:Arial;font-size:10pt;"> and </span><span style="font-family:Arial;font-size:10pt;">2018</span><span style="font-family:Arial;font-size:10pt;">, respectively.</span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Treasury bills consist of debt securities issued by the U.S. government; asset-backed securities consist of debt securities collateralized by pools of receivables or loans with credit enhancement; corporate bonds consist of debt securities issued by both domestic and foreign companies; sovereign bonds consist of direct debt issued by foreign governments; municipal bonds consist of debt securities issued by state and local government entities; agency bonds consist of domestic or foreign obligations of government agencies and government-sponsored enterprises that have government backing; and certificates of deposit are time deposits held by financial institutions with a fixed interest rate.</span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><br/></span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><br/></span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">The following table summarizes the Company&#8217;s available-for-sale investments as of December&#160;31, </span><span style="font-family:Arial;font-size:10pt;color:#000000;text-decoration:none;">2019</span><span style="font-family:Arial;font-size:10pt;"> (in thousands):</span></div><div style="line-height:120%;font-size:10pt;"><div style="padding-left:0px;text-indent:0px;line-height:normal;padding-top:10px;"><table cellpadding="0" cellspacing="0" style="font-family:Times New Roman;font-size:10pt;width:99.80506822612085%;border-collapse:collapse;text-align:left;"><tr><td colspan="16"/></tr><tr><td style="width:37%;"/><td style="width:1%;"/><td style="width:13%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:13%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:13%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:13%;"/><td style="width:1%;"/></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">Amortized</span></div><div style="text-align:center;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">Cost</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">Gross</span></div><div style="text-align:center;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">Unrealized</span></div><div style="text-align:center;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">Gains</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">Gross</span></div><div style="text-align:center;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">Unrealized</span></div><div style="text-align:center;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">Losses</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-top:2px;padding-bottom:2px;"><div style="text-align:center;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">Fair Value</span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Current:</span></div></td><td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td></tr><tr><td style="vertical-align:top;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Treasury bills</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>92,782</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>137</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>(5</span></span></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">)</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>92,914</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Asset-backed securities</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>66,474</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>207</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>(1</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">)</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>66,680</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Corporate bonds</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>65,440</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>188</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>(4</span></span></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">)</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>65,624</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Sovereign bonds</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>6,286</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>8</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>&#8212;</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>6,294</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Municipal bonds</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>4,628</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>3</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>(1</span></span></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">)</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>4,630</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Non-current:</span></div></td><td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Treasury bills</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>215,339</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>1,005</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>(10</span></span></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">)</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>216,334</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Corporate bonds</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>145,806</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>674</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>(6</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">)</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>146,474</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Asset-backed securities</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>46,269</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>150</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>(16</span></span></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">)</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>46,403</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Sovereign bonds</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>15,971</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>40</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>(6</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">)</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>16,005</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Agency bonds</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>5,930</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>&#8212;</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>(16</span></span></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">)</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>5,914</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Municipal bonds</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>2,318</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>4</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>&#8212;</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>2,322</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>667,243</span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>2,416</span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>(65</span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-right:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">)</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>669,594</span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr></table></div><span style="font-family:inherit;font-size:10pt;"><br/></span></div><div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">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, </span><span style="font-family:Arial;font-size:10pt;color:#000000;text-decoration:none;">2019</span><span style="font-family:Arial;font-size:10pt;"> (in thousands):</span></div><div style="line-height:120%;font-size:10pt;"><div style="padding-left:0px;text-indent:0px;line-height:normal;padding-top:10px;"><table cellpadding="0" cellspacing="0" style="font-family:Times New Roman;font-size:10pt;width:100%;border-collapse:collapse;text-align:left;"><tr><td colspan="24"/></tr><tr><td style="width:35%;"/><td style="width:1%;"/><td style="width:8%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:8%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:8%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:8%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:8%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:8%;"/><td style="width:1%;"/></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;">&#160;</span></div></td><td colspan="7" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;">Unrealized Loss</span></div><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;">Position For Less than</span></div><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;">12 Months</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="7" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;">Unrealized Loss<br/>Position For Greater than<br/>12 Months</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="7" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;">Total</span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;">Fair Value</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;">Unrealized</span></div><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;">Losses</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;">Fair Value</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;">Unrealized<br/>Losses</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;">Fair Value</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;">Unrealized<br/>Losses</span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Treasury bills</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>27,121</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>(13</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">)</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>7,488</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>(2</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">)</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>34,609</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>(15</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">)</span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Asset-backed securities</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>11,621</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>(16</span></span></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">)</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>2,469</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>(1</span></span></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">)</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>14,090</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>(17</span></span></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">)</span></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Sovereign bonds</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>11,566</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>(6</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">)</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>&#8212;</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>&#8212;</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>11,566</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>(6</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">)</span></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Corporate bonds</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>8,128</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>(4</span></span></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">)</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>2,804</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>(6</span></span></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">)</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>10,932</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>(10</span></span></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">)</span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Agency Bonds</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>&#8212;</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>&#8212;</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>5,914</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>(16</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">)</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>5,914</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>(16</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">)</span></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Municipal bonds</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>2,111</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>&#8212;</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>344</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>(1</span></span></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">)</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>2,455</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>(1</span></span></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">)</span></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>60,547</span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>(39</span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">)</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>19,019</span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>(26</span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">)</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>79,566</span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>(65</span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">)</span></div></td></tr></table></div><span style="font-family:inherit;font-size:10pt;"><br/></span></div><div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">As of December&#160;31, </span><span style="font-family:Arial;font-size:10pt;color:#000000;text-decoration:none;">2019</span><span style="font-family:Arial;font-size:10pt;">, the Company did not recognize any other-than-temporary impairment of these investments. In its evaluation, management considered the type of security, the credit rating of the security, the length of time the security has been in a loss position, the size of the loss position, our intent and ability to hold the security to expected recovery of value, and other meaningful information.  The Company does not intend to sell, and is unlikely to be required to sell, any of these available-for-sale investments before its effective maturity or market price recovery.</span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">The Company recorded gross realized gains on the sale of debt securities totaling </span><span style="font-family:Arial;font-size:10pt;"><span>$1,581,000</span></span><span style="font-family:Arial;font-size:10pt;"> in </span><span style="font-family:Arial;font-size:10pt;">2019</span><span style="font-family:Arial;font-size:10pt;">, </span><span style="font-family:Arial;font-size:10pt;"><span>$669,000</span></span><span style="font-family:Arial;font-size:10pt;"> in </span><span style="font-family:Arial;font-size:10pt;">2018</span><span style="font-family:Arial;font-size:10pt;">, and </span><span style="font-family:Arial;font-size:10pt;"><span>$929,000</span></span><span style="font-family:Arial;font-size:10pt;"> in 2017, and gross realized losses on the sale of debt securities totaling </span><span style="font-family:Arial;font-size:10pt;"><span>$129,000</span></span><span style="font-family:Arial;font-size:10pt;"> in </span><span style="font-family:Arial;font-size:10pt;">2019</span><span style="font-family:Arial;font-size:10pt;">, </span><span style="font-family:Arial;font-size:10pt;"><span>$168,000</span></span><span style="font-family:Arial;font-size:10pt;"> in </span><span style="font-family:Arial;font-size:10pt;">2018</span><span style="font-family:Arial;font-size:10pt;">, and </span><span style="font-family:Arial;font-size:10pt;"><span>$100,000</span></span><span style="font-family:Arial;font-size:10pt;"> in 2017.  These gains and losses are included in "Investment income" on the Consolidated Statement of Operations.  Prior to the sale of these securities, unrealized gains and losses for these debt securities, net of tax, are recorded in shareholders&#8217; equity as other comprehensive income (loss). </span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">The following table summarizes the effective maturity dates of the Company&#8217;s available-for-sale investments as of December&#160;31, </span><span style="font-family:Arial;font-size:10pt;color:#000000;text-decoration:none;">2019</span><span style="font-family:Arial;font-size:10pt;"> (in thousands):</span></div><div style="line-height:120%;font-size:10pt;"><div style="padding-left:0px;text-indent:0px;line-height:normal;padding-top:10px;"><table cellpadding="0" cellspacing="0" style="font-family:Times New Roman;font-size:10pt;width:100%;border-collapse:collapse;text-align:left;"><tr><td colspan="24"/></tr><tr><td style="width:35%;"/><td style="width:1%;"/><td style="width:9%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:9%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:7%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:7%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:7%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:9%;"/><td style="width:1%;"/></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-top:2px;padding-bottom:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;">&lt;1&#160;Year</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-top:2px;padding-bottom:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;">1-2&#160;Years</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-top:2px;padding-bottom:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;">2-3&#160;Years</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-top:2px;padding-bottom:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;">3-4&#160;Years</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-top:2px;padding-bottom:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;">4-5&#160;Years</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-top:2px;padding-bottom:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;">Total</span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Treasury bills</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>92,914</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>187,917</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>28,417</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>&#8212;</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>&#8212;</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>309,248</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Corporate bonds</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>65,624</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>88,033</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>54,208</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>4,233</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>&#8212;</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>212,098</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Asset-backed securities</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>66,680</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>17,744</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>24,089</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>3,423</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>1,147</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>113,083</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Sovereign bonds</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>6,294</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>16,005</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>&#8212;</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>&#8212;</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>&#8212;</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>22,299</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Municipal bonds</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>4,630</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>2,322</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>&#8212;</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>&#8212;</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>&#8212;</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>6,952</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Agency bonds</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>&#8212;</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>&#8212;</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>5,914</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>&#8212;</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>&#8212;</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>5,914</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>236,142</span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>312,021</span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>112,628</span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>7,656</span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>1,147</span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>669,594</span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr></table></div><span style="font-family:inherit;font-size:10pt;"><br/></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_CashAndCashEquivalentsAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The entire disclosure for 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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_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>nonnum:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>92
<FILENAME>R10.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.19.3.a.u2</span><table class="report" border="0" cellspacing="2" id="idp6865292800">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>CONSOLIDATED STATEMENTS OF SHAREHOLDERS' EQUITY (Parenthetical)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="3">12 Months Ended</th>
</tr>
<tr>
<th class="th">
<div>Dec. 31, 2019 </div>
<div>USD ($)</div>
</th>
<th class="th">
<div>Dec. 31, 2018 </div>
<div>USD ($)</div>
</th>
<th class="th">
<div>Dec. 31, 2017 </div>
<div>USD ($)</div>
</th>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_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="top.Show.showAR( this, 'defref_us-gaap_OtherComprehensiveIncomeLossDerivativesQualifyingAsHedgesTax', window );">Tax effect of unrealized gain on derivative instruments</a></td>
<td class="nump">$ 0<span></span>
</td>
<td class="nump">$ 0<span></span>
</td>
<td class="num">$ (5)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodTax', window );">Tax effect of unrealized gain on available-for-sale investments</a></td>
<td class="nump">515<span></span>
</td>
<td class="num">(188)<span></span>
</td>
<td class="nump">2<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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_OtherComprehensiveIncomeLossDerivativesQualifyingAsHedgesTax">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of tax expense (benefit), after reclassification adjustments, of increase (decrease) in accumulated gain (loss) from derivative instruments designated and qualifying as the effective portion of cash flow hedges and an entity's share of an equity investee's increase (decrease) in deferred hedging gain (loss).</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section 45<br> -Paragraph 10A<br> -Subparagraph (d)<br> -URI http://asc.fasb.org/extlink&amp;oid=114867106&amp;loc=SL7669646-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 12<br> -URI http://asc.fasb.org/extlink&amp;oid=114867106&amp;loc=d3e640-108580<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OtherComprehensiveIncomeLossDerivativesQualifyingAsHedgesTax</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_OtherComprehensiveIncomeLossForeignCurrencyTranslationAdjustmentTax">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of tax expense (benefit), after reclassification adjustments of gain (loss) on foreign currency translation adjustments, foreign currency transactions designated and effective as economic hedges of a net investment in a foreign entity and intra-entity foreign currency transactions that are of a long-term-investment nature.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section 45<br> -Paragraph 12<br> -URI http://asc.fasb.org/extlink&amp;oid=114867106&amp;loc=d3e640-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 10A<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=114867106&amp;loc=SL7669646-108580<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTranslationAdjustmentTax</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of tax expense (benefit) before reclassification adjustments of unrealized holding gain (loss) on available-for-sale securities.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section 45<br> -Paragraph 12<br> -URI http://asc.fasb.org/extlink&amp;oid=114867106&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 http://asc.fasb.org/extlink&amp;oid=114867106&amp;loc=SL7669646-108580<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_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>93
<FILENAME>R18.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.19.3.a.u2</span><table class="report" border="0" cellspacing="2" id="idp6653783328">
<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, 2019</div></th></tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_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="top.Show.showAR( this, 'defref_us-gaap_GoodwillDisclosureTextBlock', window );">Goodwill</a></td>
<td class="text">Goodwill<div style="line-height:120%;padding-top:6px;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">The changes in the carrying value of goodwill were as follows (in thousands):</span></div><div style="line-height:120%;font-size:10pt;"><div style="padding-left:0px;text-indent:0px;line-height:normal;padding-top:10px;"><table cellpadding="0" cellspacing="0" style="font-family:Times New Roman;font-size:10pt;width:100%;border-collapse:collapse;text-align:left;"><tr><td colspan="5"/></tr><tr><td style="width:84%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:13%;"/><td style="width:1%;"/></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;">Amount</span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Balance as of December 31, 2017</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>113,208</span></span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Balance as of December 31, 2018</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>113,208</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Acquisition of Sualab Co., Ltd.</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>130,142</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">&#160;&#160;Foreign exchange rate changes</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>95</span></span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Balance as of December 31, 2019</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>243,445</span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr></table></div><span style="font-family:inherit;font-size:10pt;"><br/></span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Refer to Note 21 to the Consolidated Financial Statements for further information regarding acquisitions.  </span></div><div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">For its </span><span style="font-family:Arial;font-size:10pt;">2019</span><span style="font-family:Arial;font-size:10pt;"> analysis of goodwill, management elected to perform a qualitative assessment.  Based upon this assessment, management believes that it is more likely than not that the fair value of the reporting unit exceeds its carrying amount.  Factors that management considered in the qualitative assessment include macroeconomic conditions, industry and market considerations, overall financial performance (both current and projected), changes in management or strategy, changes in the composition or carrying amount of net assets, and market capitalization.</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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The entire disclosure for goodwill.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 350<br> -SubTopic 20<br> -URI http://asc.fasb.org/subtopic&amp;trid=2144439<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_GoodwillDisclosureTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>nonnum:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>94
<FILENAME>R33.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.19.3.a.u2</span><table class="report" border="0" cellspacing="2" id="idp6878221728">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Selected Quarterly Financial Data (Unaudited)<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><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="top.Show.showAR( this, 'defref_us-gaap_QuarterlyFinancialInformationDisclosureAbstract', window );"><strong>Quarterly Financial Information 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="top.Show.showAR( this, 'defref_us-gaap_QuarterlyFinancialInformationTextBlock', window );">Selected Quarterly Financial Data (Unaudited)</a></td>
<td class="text"><div style="line-height:120%;text-align:center;font-size:10pt;"><div style="padding-left:0px;text-indent:0px;line-height:normal;padding-top:10px;"><table cellpadding="0" cellspacing="0" style="font-family:Times New Roman;font-size:10pt;margin-left:auto;margin-right:auto;width:100%;border-collapse:collapse;text-align:left;"><tr><td colspan="16"/></tr><tr><td style="width:53%;"/><td style="width:1%;"/><td style="width:9%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:9%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:9%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:9%;"/><td style="width:1%;"/></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;color:#ee2724;">&#160;</span></div></td><td colspan="15" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;">Quarter Ended</span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;color:#ee2724;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:7pt;"><span style="font-family:Arial;font-size:7pt;font-weight:bold;">March 31,                             2019</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:7pt;"><span style="font-family:Arial;font-size:7pt;font-weight:bold;">June 30,                                 2019</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:7pt;"><span style="font-family:Arial;font-size:7pt;font-weight:bold;">September 29,                           2019</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:7pt;"><span style="font-family:Arial;font-size:7pt;font-weight:bold;">December&#160;31,<br/>2019</span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;">&#160;</span></div></td><td colspan="15" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">(In thousands, except per share amounts)</span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;">Revenue</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;"><span>173,484</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;"><span>199,047</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;"><span>183,325</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;"><span>169,769</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;">Gross margin</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;"><span>127,200</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;"><span>148,080</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;"><span>135,693</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;"><span>124,898</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;">Operating income</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;"><span>30,147</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;"><span>51,756</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;"><span>43,092</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;"><span>17,607</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:13px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:13px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:13px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:13px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:13px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:13px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:13px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:13px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;">Net income</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;"><span>33,104</span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;"><span>48,749</span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;"><span>41,685</span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;"><span>80,327</span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:13px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:13px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:13px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:13px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:13px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:13px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:13px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:13px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;">Basic net income per share</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;"><span>0.19</span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;"><span>0.28</span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;"><span>0.24</span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;"><span>0.47</span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;">Diluted net income per share</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;"><span>0.19</span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;"><span>0.28</span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;"><span>0.24</span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;"><span>0.46</span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr></table></div></div><div style="line-height:120%;padding-top:12px;text-align:center;font-size:10pt;"><div style="padding-left:0px;text-indent:0px;line-height:normal;padding-top:10px;"><table cellpadding="0" cellspacing="0" style="font-family:Times New Roman;font-size:10pt;margin-left:auto;margin-right:auto;width:100%;border-collapse:collapse;text-align:left;"><tr><td colspan="16"/></tr><tr><td style="width:53%;"/><td style="width:1%;"/><td style="width:9%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:9%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:9%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:9%;"/><td style="width:1%;"/></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;">&#160;</span></div></td><td colspan="15" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;">Quarter Ended</span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;border-top:1px solid #000000;"><div style="text-align:center;font-size:7pt;"><span style="font-family:Arial;font-size:7pt;font-weight:bold;">April 1,                        2018</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;border-top:1px solid #000000;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;border-top:1px solid #000000;"><div style="text-align:center;font-size:7pt;"><span style="font-family:Arial;font-size:7pt;font-weight:bold;">July 1,                                 2018</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;border-top:1px solid #000000;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;border-top:1px solid #000000;"><div style="text-align:center;font-size:7pt;"><span style="font-family:Arial;font-size:7pt;font-weight:bold;">September 30,                           2018</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;border-top:1px solid #000000;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;border-top:1px solid #000000;"><div style="text-align:center;font-size:7pt;"><span style="font-family:Arial;font-size:7pt;font-weight:bold;">December&#160;31,</span></div><div style="text-align:center;font-size:7pt;"><span style="font-family:Arial;font-size:7pt;font-weight:bold;">2018</span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;">&#160;</span></div></td><td colspan="15" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">(In thousands, except per share amounts)</span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;">Revenue</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;"><span>169,567</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;"><span>211,264</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;"><span>232,221</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;"><span>193,286</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;">Gross margin</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;"><span>129,369</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;"><span>157,095</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;"><span>173,361</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;"><span>140,461</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;">Operating income</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;"><span>34,596</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;"><span>63,455</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;"><span>77,844</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;"><span>45,247</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:13px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:13px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:13px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:13px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:13px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:13px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:13px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:13px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;">Net income</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;"><span>37,217</span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;"><span>56,196</span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;"><span>80,436</span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;"><span>45,418</span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:13px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:13px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:13px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:13px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:13px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:13px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:13px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:13px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;">Basic net income per share</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;"><span>0.21</span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;"><span>0.33</span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;"><span>0.47</span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;"><span>0.26</span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;">Diluted net income per share</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;"><span>0.21</span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;"><span>0.32</span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;"><span>0.45</span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;"><span>0.26</span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr></table></div><span style="font-family:inherit;font-size:10pt;"><br/></span></div><div style="line-height:120%;font-size:9pt;"><span style="font-family:inherit;font-size:9pt;"><br/></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_QuarterlyFinancialInformationDisclosureAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_QuarterlyFinancialInformationDisclosureAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_QuarterlyFinancialInformationTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The entire disclosure for quarterly financial data. Includes, but is not limited to, tabular presentation of financial information for fiscal quarters, effect of year-end adjustments, and an explanation of matters or transactions that affect comparability of the information.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 270<br> -URI http://asc.fasb.org/topic&amp;trid=2126967<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_QuarterlyFinancialInformationTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>nonnum:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>95
<FILENAME>R37.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.19.3.a.u2</span><table class="report" border="0" cellspacing="2" id="idp6729030848">
<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, 2019</div></th></tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_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="top.Show.showAR( this, 'defref_cgnx_ComponentsOfCashCashEquivalentsAndInvestmentsTableTableTextBlock', window );">Components of Cash, Cash Equivalents and Investments</a></td>
<td class="text"><div style="line-height:120%;padding-top:6px;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Cash, cash equivalents, and investments consisted of the following (in thousands):</span></div><div style="line-height:120%;font-size:10pt;"><div style="padding-left:0px;text-indent:0px;line-height:normal;padding-top:10px;"><table cellpadding="0" cellspacing="0" style="font-family:Times New Roman;font-size:10pt;width:99.80506822612085%;border-collapse:collapse;text-align:left;"><tr><td colspan="8"/></tr><tr><td style="width:66%;"/><td style="width:1%;"/><td style="width:14%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:15%;"/><td style="width:1%;"/></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;">&#160;</span></div></td><td colspan="7" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;">December&#160;31,</span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;">2019</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">2018</span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Cash</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>155,498</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>104,655</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Money market instruments</span></div></td><td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>15,933</span></span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>3,557</span></span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Cash and cash equivalents</span></div></td><td colspan="2" style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>171,431</span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>108,212</span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Treasury bills</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>92,914</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;border-top:3px double #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>198,477</span></span></div></td><td style="vertical-align:bottom;border-top:3px double #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Asset-backed securities</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>66,680</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>78,407</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Corporate bonds</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>65,624</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>137,871</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Sovereign bonds</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>6,294</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>8,101</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Municipal bonds</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>4,630</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>4,492</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Certificate of deposit</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>4,328</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>&#8212;</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Current investments</span></div></td><td colspan="2" style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>240,470</span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>427,348</span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Treasury bills</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>216,334</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>32,760</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Corporate bonds</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>146,474</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>162,566</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Asset-backed securities</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>46,403</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>53,631</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Sovereign bonds</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>16,005</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>6,316</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Agency bonds</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>5,914</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>5,921</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Municipal bonds</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>2,322</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>845</span></span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Non-current investments</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>433,452</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>262,039</span></span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>845,353</span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>797,599</span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr></table></div><span style="font-family:inherit;font-size:10pt;"><br/></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="top.Show.showAR( this, 'defref_us-gaap_ScheduleOfAvailableForSaleSecuritiesReconciliationTableTextBlock', window );">Summary of Available-for-Sale Investments</a></td>
<td class="text"><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">The following table summarizes the Company&#8217;s available-for-sale investments as of December&#160;31, </span><span style="font-family:Arial;font-size:10pt;color:#000000;text-decoration:none;">2019</span><span style="font-family:Arial;font-size:10pt;"> (in thousands):</span></div><div style="line-height:120%;font-size:10pt;"><div style="padding-left:0px;text-indent:0px;line-height:normal;padding-top:10px;"><table cellpadding="0" cellspacing="0" style="font-family:Times New Roman;font-size:10pt;width:99.80506822612085%;border-collapse:collapse;text-align:left;"><tr><td colspan="16"/></tr><tr><td style="width:37%;"/><td style="width:1%;"/><td style="width:13%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:13%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:13%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:13%;"/><td style="width:1%;"/></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">Amortized</span></div><div style="text-align:center;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">Cost</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">Gross</span></div><div style="text-align:center;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">Unrealized</span></div><div style="text-align:center;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">Gains</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">Gross</span></div><div style="text-align:center;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">Unrealized</span></div><div style="text-align:center;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">Losses</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-top:2px;padding-bottom:2px;"><div style="text-align:center;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">Fair Value</span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Current:</span></div></td><td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td></tr><tr><td style="vertical-align:top;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Treasury bills</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>92,782</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>137</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>(5</span></span></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">)</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>92,914</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Asset-backed securities</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>66,474</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>207</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>(1</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">)</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>66,680</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Corporate bonds</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>65,440</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>188</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>(4</span></span></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">)</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>65,624</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Sovereign bonds</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>6,286</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>8</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>&#8212;</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>6,294</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Municipal bonds</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>4,628</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>3</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>(1</span></span></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">)</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>4,630</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Non-current:</span></div></td><td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Treasury bills</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>215,339</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>1,005</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>(10</span></span></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">)</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>216,334</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Corporate bonds</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>145,806</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>674</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>(6</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">)</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>146,474</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Asset-backed securities</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>46,269</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>150</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>(16</span></span></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">)</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>46,403</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Sovereign bonds</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>15,971</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>40</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>(6</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">)</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>16,005</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Agency bonds</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>5,930</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>&#8212;</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>(16</span></span></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">)</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>5,914</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Municipal bonds</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>2,318</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>4</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>&#8212;</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>2,322</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>667,243</span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>2,416</span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>(65</span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-right:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">)</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>669,594</span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr></table></div><span style="font-family:inherit;font-size:10pt;"><br/></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="top.Show.showAR( this, 'defref_us-gaap_ScheduleOfUnrealizedLossOnInvestmentsTableTextBlock', window );">Gross Unrealized Losses and Fair Value for Available-for-Sale Investments</a></td>
<td class="text"><div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">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, </span><span style="font-family:Arial;font-size:10pt;color:#000000;text-decoration:none;">2019</span><span style="font-family:Arial;font-size:10pt;"> (in thousands):</span></div><div style="line-height:120%;font-size:10pt;"><div style="padding-left:0px;text-indent:0px;line-height:normal;padding-top:10px;"><table cellpadding="0" cellspacing="0" style="font-family:Times New Roman;font-size:10pt;width:100%;border-collapse:collapse;text-align:left;"><tr><td colspan="24"/></tr><tr><td style="width:35%;"/><td style="width:1%;"/><td style="width:8%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:8%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:8%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:8%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:8%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:8%;"/><td style="width:1%;"/></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;">&#160;</span></div></td><td colspan="7" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;">Unrealized Loss</span></div><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;">Position For Less than</span></div><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;">12 Months</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="7" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;">Unrealized Loss<br/>Position For Greater than<br/>12 Months</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="7" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;">Total</span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;">Fair Value</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;">Unrealized</span></div><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;">Losses</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;">Fair Value</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;">Unrealized<br/>Losses</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;">Fair Value</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;">Unrealized<br/>Losses</span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Treasury bills</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>27,121</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>(13</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">)</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>7,488</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>(2</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">)</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>34,609</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>(15</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">)</span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Asset-backed securities</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>11,621</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>(16</span></span></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">)</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>2,469</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>(1</span></span></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">)</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>14,090</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>(17</span></span></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">)</span></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Sovereign bonds</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>11,566</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>(6</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">)</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>&#8212;</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>&#8212;</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>11,566</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>(6</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">)</span></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Corporate bonds</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>8,128</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>(4</span></span></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">)</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>2,804</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>(6</span></span></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">)</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>10,932</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>(10</span></span></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">)</span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Agency Bonds</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>&#8212;</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>&#8212;</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>5,914</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>(16</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">)</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>5,914</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>(16</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">)</span></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Municipal bonds</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>2,111</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>&#8212;</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>344</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>(1</span></span></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">)</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>2,455</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>(1</span></span></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">)</span></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>60,547</span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>(39</span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">)</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>19,019</span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>(26</span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">)</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>79,566</span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>(65</span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">)</span></div></td></tr></table></div><span style="font-family:inherit;font-size:10pt;"><br/></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="top.Show.showAR( this, 'defref_us-gaap_InvestmentsClassifiedByContractualMaturityDateTableTextBlock', window );">Effective Maturity Dates of Available-for-Sale Investments</a></td>
<td class="text"><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">The following table summarizes the effective maturity dates of the Company&#8217;s available-for-sale investments as of December&#160;31, </span><span style="font-family:Arial;font-size:10pt;color:#000000;text-decoration:none;">2019</span><span style="font-family:Arial;font-size:10pt;"> (in thousands):</span></div><div style="line-height:120%;font-size:10pt;"><div style="padding-left:0px;text-indent:0px;line-height:normal;padding-top:10px;"><table cellpadding="0" cellspacing="0" style="font-family:Times New Roman;font-size:10pt;width:100%;border-collapse:collapse;text-align:left;"><tr><td colspan="24"/></tr><tr><td style="width:35%;"/><td style="width:1%;"/><td style="width:9%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:9%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:7%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:7%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:7%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:9%;"/><td style="width:1%;"/></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-top:2px;padding-bottom:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;">&lt;1&#160;Year</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-top:2px;padding-bottom:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;">1-2&#160;Years</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-top:2px;padding-bottom:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;">2-3&#160;Years</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-top:2px;padding-bottom:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;">3-4&#160;Years</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-top:2px;padding-bottom:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;">4-5&#160;Years</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-top:2px;padding-bottom:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;">Total</span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Treasury bills</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>92,914</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>187,917</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>28,417</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>&#8212;</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>&#8212;</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>309,248</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Corporate bonds</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>65,624</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>88,033</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>54,208</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>4,233</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>&#8212;</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>212,098</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Asset-backed securities</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>66,680</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>17,744</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>24,089</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>3,423</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>1,147</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>113,083</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Sovereign bonds</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>6,294</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>16,005</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>&#8212;</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>&#8212;</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>&#8212;</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>22,299</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Municipal bonds</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>4,630</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>2,322</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>&#8212;</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>&#8212;</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>&#8212;</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>6,952</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Agency bonds</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>&#8212;</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>&#8212;</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>5,914</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>&#8212;</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>&#8212;</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>5,914</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>236,142</span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>312,021</span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>112,628</span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>7,656</span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>1,147</span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>669,594</span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr></table></div><span style="font-family:inherit;font-size:10pt;"><br/></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_ComponentsOfCashCashEquivalentsAndInvestmentsTableTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Components of cash cash equivalents and investments.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">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>nonnum:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_CashAndCashEquivalentsAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Tabular disclosure of maturities of an entity's investments as well as any other information pertinent to the investments.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_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>nonnum:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ScheduleOfAvailableForSaleSecuritiesReconciliationTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Tabular disclosure of the reconciliation of available-for-sale securities from cost basis to fair value.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_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>nonnum:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ScheduleOfUnrealizedLossOnInvestmentsTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>For 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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 320<br> -SubTopic 10<br> -Section 50<br> -Paragraph 6<br> -URI http://asc.fasb.org/extlink&amp;oid=82897076&amp;loc=d3e27290-111563<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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>nonnum:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>96
<FILENAME>R107.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.19.3.a.u2</span><table class="report" border="0" cellspacing="2" id="idp6677758096">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>Acquisitions - Sualab Co., Ltd. Narrative (Details) - Sualab Co., Ltd. [Member] - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th"><div>Oct. 16, 2019</div></th>
<th class="th"><div>Apr. 12, 2017</div></th>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionLineItems', window );"><strong>Business Acquisition [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="top.Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionPurchasePriceAllocationGoodwillExpectedTaxDeductibleAmount', window );">Tax deductible goodwill</a></td>
<td class="nump">$ 104,609<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_BusinessCombinationConsiderationTransferred1', window );">Purchase price</a></td>
<td class="nump">194,642<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_BusinessCombinationContingentConsiderationLiability', window );">Contingent consideration liabilities</a></td>
<td class="nump">$ 24,040<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionAxis=cgnx_SualabCo.Ltd.Member', window );">Completed Technology [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionLineItems', window );"><strong>Business Acquisition [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="top.Show.showAR( this, 'defref_us-gaap_AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife', window );">Intangible assets, useful life</a></td>
<td class="text">8 years<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionAxis=cgnx_SualabCo.Ltd.Member', 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="top.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>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionAxis=cgnx_SualabCo.Ltd.Member', window );">Trademarks [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionLineItems', window );"><strong>Business Acquisition [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="top.Show.showAR( this, 'defref_us-gaap_AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife', window );">Intangible assets, useful life</a></td>
<td class="text">2 years<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionAxis=cgnx_SualabCo.Ltd.Member', window );">Non-compete agreements | Minimum [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionLineItems', window );"><strong>Business Acquisition [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="top.Show.showAR( this, 'defref_us-gaap_AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife', window );">Intangible assets, useful life</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">6 years<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionAxis=cgnx_SualabCo.Ltd.Member', window );">Non-compete agreements | Maximum [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionLineItems', window );"><strong>Business Acquisition [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="top.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>
</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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Weighted average 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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 350<br> -SubTopic 30<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)(3)<br> -URI http://asc.fasb.org/extlink&amp;oid=66006027&amp;loc=d3e16265-109275<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_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_BusinessAcquisitionLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">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_BusinessAcquisitionPurchasePriceAllocationGoodwillExpectedTaxDeductibleAmount">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The amount of goodwill arising from a business combination that is expected to be deductible for tax purposes.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 805<br> -SubTopic 30<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (d)<br> -URI http://asc.fasb.org/extlink&amp;oid=35744584&amp;loc=d3e6927-128479<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_BusinessAcquisitionPurchasePriceAllocationGoodwillExpectedTaxDeductibleAmount</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_BusinessCombinationConsiderationTransferred1">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of consideration transferred, consisting of acquisition-date fair value of assets transferred by the acquirer, liabilities incurred by the acquirer, and equity interest issued by the acquirer.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 805<br> -SubTopic 30<br> -Section 30<br> -Paragraph 8<br> -URI http://asc.fasb.org/extlink&amp;oid=109124213&amp;loc=d3e6613-128477<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 805<br> -SubTopic 30<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=35744584&amp;loc=d3e6927-128479<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 805<br> -SubTopic 30<br> -Section 30<br> -Paragraph 7<br> -URI http://asc.fasb.org/extlink&amp;oid=109124213&amp;loc=d3e6578-128477<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_BusinessCombinationConsiderationTransferred1</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_BusinessCombinationContingentConsiderationLiability">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of liability recognized arising from contingent consideration in a business combination.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 805<br> -SubTopic 30<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (c)(1)<br> -URI http://asc.fasb.org/extlink&amp;oid=35744584&amp;loc=d3e6927-128479<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 805<br> -SubTopic 30<br> -Section 35<br> -Paragraph 1<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=6911338&amp;loc=d3e6819-128478<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 805<br> -SubTopic 30<br> -Section 25<br> -Paragraph 6<br> -URI http://asc.fasb.org/extlink&amp;oid=6911189&amp;loc=d3e6408-128476<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_BusinessCombinationContingentConsiderationLiability</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PaymentsToAcquireBusinessesGross">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The cash outflow associated with the acquisition of business during the period. The cash portion only of the acquisition price.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 805<br> -SubTopic 30<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (b)(1)<br> -URI http://asc.fasb.org/extlink&amp;oid=35744584&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 http://asc.fasb.org/extlink&amp;oid=109223946&amp;loc=d3e3213-108585<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_BusinessAcquisitionAxis=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_FiniteLivedIntangibleAssetsByMajorClassAxis=cgnx_CompletedTechnologyMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis=cgnx_CompletedTechnologyMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_CustomerRelationshipsMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_CustomerRelationshipsMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_TrademarksMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_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_NoncompeteAgreementsMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_NoncompeteAgreementsMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_srt_RangeAxis=srt_MinimumMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_RangeAxis=srt_MinimumMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_srt_RangeAxis=srt_MaximumMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_RangeAxis=srt_MaximumMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>97
<FILENAME>R103.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.19.3.a.u2</span><table class="report" border="0" cellspacing="2" id="idp6866459280">
<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, 2019</div></th>
<th class="th"><div>Dec. 31, 2018</div></th>
<th class="th"><div>Dec. 31, 2017</div></th>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis=us-gaap_EmployeeStockOptionMember', window );">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="top.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="top.Show.showAR( this, 'defref_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount', window );">Stock options to purchase anti-dilutive common stock</a></td>
<td class="nump">5,735,608<span></span>
</td>
<td class="nump">2,650,164<span></span>
</td>
<td class="nump">3,363,141<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis=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="top.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="top.Show.showAR( this, 'defref_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount', window );">Stock options to purchase anti-dilutive common stock</a></td>
<td class="nump">13,092<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_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Securities (including those issuable pursuant to contingent stock agreements) that could potentially dilute basic earnings per share (EPS) or earnings per unit (EPU) in the future that were not included in the computation of diluted EPS or EPU because to do so would increase EPS or EPU amounts or decrease loss per share or unit amounts for the period presented.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (c)<br> -URI http://asc.fasb.org/extlink&amp;oid=6371337&amp;loc=d3e3550-109257<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis=us-gaap_EmployeeStockOptionMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis=us-gaap_RestrictedStockMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis=us-gaap_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>98
<FILENAME>R56.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.19.3.a.u2</span><table class="report" border="0" cellspacing="2" id="idp6729751984">
<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, 2019</div></th>
<th class="th"><div>Dec. 31, 2018</div></th>
<th class="th"><div>Dec. 31, 2017</div></th>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AccountingPoliciesAbstract', window );"><strong>Accounting Policies [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AdvertisingExpense', window );">Advertising costs</a></td>
<td class="nump">$ 1,385,000<span></span>
</td>
<td class="nump">$ 1,662,000<span></span>
</td>
<td class="nump">$ 1,679,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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AccountingPoliciesAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AdvertisingExpense">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount 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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 720<br> -SubTopic 35<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=6420018&amp;loc=d3e36677-107848<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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>99
<FILENAME>R52.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.19.3.a.u2</span><table class="report" border="0" cellspacing="2" id="idp6888046208">
<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, 2019</div></th></tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_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="top.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="top.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="top.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="top.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="top.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="top.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="top.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="top.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="top.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="top.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="top.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="top.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="top.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="top.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="top.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="top.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="top.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="top.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="top.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="top.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="top.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="top.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="top.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="top.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="top.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="top.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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Available-for-sale Securities, Debt Maturities, Effective Term, Maximum</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Maximum investment of the company in partnership.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">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>num:percentItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AccountingPoliciesAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AccountingPoliciesAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PropertyPlantAndEquipmentLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Useful life of long lived, physical assets used in the normal conduct of business and not intended for resale, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents the reported fact of one year, five months, and thirteen days. Examples include, but not limited to, land, buildings, machinery and equipment, office equipment, furniture and fixtures, and computer equipment.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PropertyPlantAndEquipmentUsefulLife</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:durationItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PropertyPlantAndEquipmentByTypeAxis=us-gaap_BuildingMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PropertyPlantAndEquipmentByTypeAxis=us-gaap_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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PropertyPlantAndEquipmentByTypeAxis=us-gaap_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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PropertyPlantAndEquipmentByTypeAxis=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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_RangeAxis=srt_MinimumMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_srt_RangeAxis=srt_MaximumMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_RangeAxis=srt_MaximumMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PropertyPlantAndEquipmentByTypeAxis=us-gaap_EquipmentMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PropertyPlantAndEquipmentByTypeAxis=us-gaap_EquipmentMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PropertyPlantAndEquipmentByTypeAxis=us-gaap_FurnitureAndFixturesMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PropertyPlantAndEquipmentByTypeAxis=us-gaap_FurnitureAndFixturesMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>100
<FILENAME>R79.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.19.3.a.u2</span><table class="report" border="0" cellspacing="2" id="idp6889494384">
<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> &#8361; in Thousands, &#165; in Thousands, &#163; in Thousands, Ft in Thousands, $ in Thousands, $ in Thousands, $ in Thousands</strong></div></th>
<th class="th">
<div>Dec. 31, 2019 </div>
<div>USD ($)</div>
</th>
<th class="th">
<div>Dec. 31, 2019 </div>
<div>HUF (Ft)</div>
</th>
<th class="th">
<div>Dec. 31, 2019 </div>
<div>GBP (&#163;)</div>
</th>
<th class="th">
<div>Dec. 31, 2019 </div>
<div>SGD ($)</div>
</th>
<th class="th">
<div>Dec. 31, 2019 </div>
<div>JPY (&#165;)</div>
</th>
<th class="th">
<div>Dec. 31, 2019 </div>
<div>KRW (&#8361;)</div>
</th>
<th class="th">
<div>Dec. 31, 2019 </div>
<div>TWD ($)</div>
</th>
<th class="th">
<div>Dec. 31, 2018 </div>
<div>USD ($)</div>
</th>
<th class="th">
<div>Dec. 31, 2018 </div>
<div>HUF (Ft)</div>
</th>
<th class="th">
<div>Dec. 31, 2018 </div>
<div>GBP (&#163;)</div>
</th>
<th class="th">
<div>Dec. 31, 2018 </div>
<div>SGD ($)</div>
</th>
<th class="th">
<div>Dec. 31, 2018 </div>
<div>JPY (&#165;)</div>
</th>
<th class="th">
<div>Dec. 31, 2018 </div>
<div>KRW (&#8361;)</div>
</th>
<th class="th">
<div>Dec. 31, 2018 </div>
<div>TWD ($)</div>
</th>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_HedgingDesignationAxis=us-gaap_NondesignatedMember', window );">Korean Won [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_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>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_DerivativeAssetNotionalAmount', window );">Derivative Asset, Notional Amount</a></td>
<td class="nump">$ 139,688<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">&#8361; 161,951,500<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 2,808<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">&#8361; 3,125,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_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>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_DerivativeAssetNotionalAmount', window );">Derivative Asset, Notional Amount</a></td>
<td class="nump">20,249<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">&#165; 18,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">26,330<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">&#165; 23,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_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>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_DerivativeAssetNotionalAmount', window );">Derivative Asset, Notional Amount</a></td>
<td class="nump">5,291<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">575,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">3,459<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">380,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_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>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_DerivativeAssetNotionalAmount', window );">Derivative Asset, Notional Amount</a></td>
<td class="nump">4,223<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">&#165; 80,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">&#165; 0<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_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>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_DerivativeAssetNotionalAmount', window );">Derivative Asset, Notional Amount</a></td>
<td class="nump">3,569<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">&#163; 2,700<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">3,204<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">&#163; 2,500<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_HedgingDesignationAxis=us-gaap_NondesignatedMember', window );">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>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_DerivativeAssetNotionalAmount', window );">Derivative Asset, Notional Amount</a></td>
<td class="nump">2,962<span></span>
</td>
<td class="nump">Ft 870,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">2,685<span></span>
</td>
<td class="nump">Ft 750,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_HedgingDesignationAxis=us-gaap_NondesignatedMember', window );">Taiwanese 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>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_DerivativeAssetNotionalAmount', window );">Derivative Asset, Notional Amount</a></td>
<td class="nump">1,256<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 37,450<span></span>
</td>
<td class="nump">1,807<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 55,000<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_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>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_DerivativeAssetNotionalAmount', window );">Derivative Asset, Notional Amount</a></td>
<td class="nump">1,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 1,300<span></span>
</td>
<td class="nump">726<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 990<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_HedgingDesignationAxis=us-gaap_NondesignatedMember', window );">Singapore Dollar [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_DerivativeAssetNotionalAmount', window );">Derivative Asset, Notional Amount</a></td>
<td class="nump">$ 628<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 845<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 514<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 700<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 815<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1A<br> -Subparagraph (d)<br> -URI http://asc.fasb.org/extlink&amp;oid=109980867&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 http://asc.fasb.org/extlink&amp;oid=109980867&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 http://asc.fasb.org/extlink&amp;oid=109980867&amp;loc=SL5579245-113959<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_HedgingDesignationAxis=us-gaap_NondesignatedMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_srt_CurrencyAxis=currency_KRW">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_CurrencyAxis=currency_KRW</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_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_TWD">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_CurrencyAxis=currency_TWD</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_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_SGD">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_CurrencyAxis=currency_SGD</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>101
<FILENAME>R89.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.19.3.a.u2</span><table class="report" border="0" cellspacing="2" id="idp6890939216">
<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="1">1 Months Ended</th>
<th class="th" colspan="3">3 Months Ended</th>
<th class="th" colspan="2">9 Months Ended</th>
<th class="th" colspan="3">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>Oct. 30, 2017</div></th>
<th class="th">
<div>Feb. 28, 2018 </div>
<div>USD ($) </div>
<div>shares</div>
</th>
<th class="th">
<div>Dec. 31, 2019 </div>
<div>USD ($) </div>
<div>Vote </div>
<div>$ / shares </div>
<div>shares</div>
</th>
<th class="th">
<div>Apr. 01, 2018 </div>
<div>USD ($) </div>
<div>shares</div>
</th>
<th class="th"><div>Dec. 31, 2017</div></th>
<th class="th">
<div>Sep. 29, 2019 </div>
<div>$ / shares</div>
</th>
<th class="th">
<div>Sep. 30, 2018 </div>
<div>USD ($) </div>
<div>$ / shares</div>
</th>
<th class="th">
<div>Dec. 31, 2019 </div>
<div>USD ($) </div>
<div>Vote </div>
<div>$ / shares </div>
<div>shares</div>
</th>
<th class="th">
<div>Dec. 31, 2018 </div>
<div>USD ($) </div>
<div>$ / shares </div>
<div>shares</div>
</th>
<th class="th">
<div>Dec. 31, 2017 </div>
<div>USD ($)</div>
</th>
<th class="th">
<div>Apr. 25, 2018 </div>
<div>shares</div>
</th>
<th class="th">
<div>Feb. 01, 2018 </div>
<div>USD ($)</div>
</th>
<th class="th">
<div>Oct. 31, 2017 </div>
<div>$ / shares</div>
</th>
<th class="th">
<div>Apr. 12, 2017 </div>
<div>USD ($)</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="top.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="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_PreferredStockSharesAuthorized', window );">Authorized shares | shares</a></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="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">400,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="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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="text">&#160;<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="text">&#160;<span></span>
</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="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_CommonStockSharesAuthorized', window );">Common stock, shares authorized | shares</a></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="text">&#160;<span></span>
</td>
<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">300,000,000<span></span>
</td>
<td class="text">&#160;<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="text">&#160;<span></span>
</td>
<td class="nump">10,000,000<span></span>
</td>
<td class="nump">200,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="top.Show.showAR( this, 'defref_us-gaap_StockholdersEquityNoteStockSplitConversionRatio1', window );">Stock split</a></td>
<td class="nump">2<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">2<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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="text">&#160;<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="text">&#160;<span></span>
</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="text">&#160;<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="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_cgnx_VoteEntitledForEachCommonShareOutstanding', window );">Vote entitled for each common share outstanding | Vote</a></td>
<td class="text">&#160;<span></span>
</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="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="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_StockRepurchasedDuringPeriodValue', window );">Repurchase of 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="text">&#160;<span></span>
</td>
<td class="nump">$ 61,690,000<span></span>
</td>
<td class="nump">$ 203,822,000<span></span>
</td>
<td class="nump">$ 123,715,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="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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="nump">$ 0.055<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 0.050<span></span>
</td>
<td class="nump">$ 0.045<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_PaymentsOfDividends', window );">Payments of dividends</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 35,124,000<span></span>
</td>
<td class="nump">$ 31,865,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ShareRepurchaseProgramAxis=cgnx_RepurchaseProgram2014Member', window );">Repurchase Program 2014 [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>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_cgnx_Totalsharesrepurchased', window );">total shares repurchased | shares</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">1,744,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_StockRepurchasedDuringPeriodShares', window );">Repurchase of common stock, 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="nump">803,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_StockRepurchasedDuringPeriodValue', window );">Repurchase of 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="nump">$ 45,200,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ShareRepurchaseProgramAxis=cgnx_RepurchaseProgramTwentyFifteenMember', window );">Repurchase Program 2015 [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>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 100,000,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="top.Show.showAR( this, 'defref_us-gaap_StockRepurchasedDuringPeriodShares', window );">Repurchase of common stock, shares | shares</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">3,174,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">1,601,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_StockRepurchasedDuringPeriodValue', window );">Repurchase of common stock</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 150,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>
<td class="nump">$ 70,312,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ShareRepurchaseProgramAxis=cgnx_RepurchaseProgramNovember2015Member', window );">Repurchase Program November 2015 [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>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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="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>
<td class="nump">$ 150,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="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_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="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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="nump">$ 129,688,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">$ 129,688,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_StockRepurchasedDuringPeriodShares', window );">Repurchase of common stock, shares | shares</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">1,398,000<span></span>
</td>
<td class="nump">203,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_StockRepurchasedDuringPeriodValue', window );">Repurchase of 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="text">&#160;<span></span>
</td>
<td class="nump">$ 61,690,000<span></span>
</td>
<td class="nump">$ 8,622,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_StatementClassOfStockAxis=us-gaap_CommonStockMember', window );">Common Stock [Member] | Repurchase Program 2014 [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>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_cgnx_Repurchasedsharestotalcost', window );">Repurchased shares, total cost</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 100,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>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></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_Repurchasedsharestotalcost">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Repurchased shares, total cost</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cgnx_Repurchasedsharestotalcost</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_Totalsharesrepurchased">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>total shares repurchased</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cgnx_Totalsharesrepurchased</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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Vote entitled for each common share outstanding.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">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_CommonStockDividendsPerShareDeclared">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Aggregate dividends declared during the period for each share of common stock outstanding.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 505<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.3-04)<br> -URI http://asc.fasb.org/extlink&amp;oid=27012166&amp;loc=d3e187085-122770<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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>num:perShareItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_CommonStockParOrStatedValuePerShare">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(29))<br> -URI http://asc.fasb.org/extlink&amp;oid=6877327&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_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>num:perShareItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_CommonStockSharesAuthorized">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The maximum number of common shares permitted to be issued by an entity's charter and bylaws.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(29))<br> -URI http://asc.fasb.org/extlink&amp;oid=6877327&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 15<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=109223946&amp;loc=d3e3291-108585<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(28))<br> -URI http://asc.fasb.org/extlink&amp;oid=6877327&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_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>num:perShareItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PreferredStockSharesAuthorized">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The maximum 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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(28))<br> -URI http://asc.fasb.org/extlink&amp;oid=6877327&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_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_StockRepurchaseProgramAuthorizedAmount1">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of stock repurchase plan authorized.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_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_StockRepurchasedDuringPeriodShares">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Number of shares 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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 505<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -URI http://asc.fasb.org/extlink&amp;oid=109259400&amp;loc=d3e21463-112644<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(29))<br> -URI http://asc.fasb.org/extlink&amp;oid=6877327&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 http://asc.fasb.org/extlink&amp;oid=27012166&amp;loc=d3e187085-122770<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(28))<br> -URI http://asc.fasb.org/extlink&amp;oid=6877327&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Equity impact of the value of 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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(28))<br> -URI http://asc.fasb.org/extlink&amp;oid=6877327&amp;loc=d3e13212-122682<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 505<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -URI http://asc.fasb.org/extlink&amp;oid=109259400&amp;loc=d3e21463-112644<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 505<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.3-04)<br> -URI http://asc.fasb.org/extlink&amp;oid=27012166&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 http://asc.fasb.org/extlink&amp;oid=6877327&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_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_StockholdersEquityNoteStockSplitConversionRatio1">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Ratio applied to the conversion of stock split, for example but not limited to, one share converted to two or two shares converted to one.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 505<br> -SubTopic 10<br> -Section S99<br> -Paragraph 4<br> -Subparagraph (SAB TOPIC 4.C)<br> -URI http://asc.fasb.org/extlink&amp;oid=27012166&amp;loc=d3e187143-122770<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_StockholdersEquityNoteStockSplitConversionRatio1</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:pureItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareRepurchaseProgramAxis=cgnx_RepurchaseProgram2014Member">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareRepurchaseProgramAxis=cgnx_RepurchaseProgram2014Member</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></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_RepurchaseProgramTwentyFifteenMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareRepurchaseProgramAxis=cgnx_RepurchaseProgramTwentyFifteenMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></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_RepurchaseProgramNovember2015Member">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareRepurchaseProgramAxis=cgnx_RepurchaseProgramNovember2015Member</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></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_RepurchaseProgramOctober2018Member">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_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_StatementClassOfStockAxis=us-gaap_CommonStockMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_StatementClassOfStockAxis=us-gaap_CommonStockMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>102
<FILENAME>R71.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.19.3.a.u2</span><table class="report" border="0" cellspacing="2" id="idp6872535312">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>Leases - Schedule of Rental Receipts (Details)<br> $ in Thousands</strong></div></th>
<th class="th">
<div>Dec. 31, 2019 </div>
<div>USD ($)</div>
</th>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_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="top.Show.showAR( this, 'defref_us-gaap_LessorOperatingLeasePaymentsToBeReceivedNextTwelveMonths', window );">2020</a></td>
<td class="nump">$ 307<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_LessorOperatingLeasePaymentsToBeReceivedTwoYears', window );">2021</a></td>
<td class="nump">307<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_LessorOperatingLeasePaymentsToBeReceivedThreeYears', window );">2022</a></td>
<td class="nump">307<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_LessorOperatingLeasePaymentsToBeReceived', window );">Total</a></td>
<td class="nump">$ 921<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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_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_LessorOperatingLeasePaymentsToBeReceived">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of lease payments to be received by lessor for operating lease.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 842<br> -SubTopic 30<br> -Section 50<br> -Paragraph 12<br> -URI http://asc.fasb.org/extlink&amp;oid=77888428&amp;loc=SL77919396-209981<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LessorOperatingLeasePaymentsToBeReceived</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LessorOperatingLeasePaymentsToBeReceivedNextTwelveMonths">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of lease payments to be received by lessor in next fiscal year following latest fiscal year for operating lease. Excludes interim and annual periods when interim periods are reported on rolling approach, from latest statement of financial position date.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 842<br> -SubTopic 30<br> -Section 50<br> -Paragraph 12<br> -URI http://asc.fasb.org/extlink&amp;oid=77888428&amp;loc=SL77919396-209981<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LessorOperatingLeasePaymentsToBeReceivedNextTwelveMonths</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LessorOperatingLeasePaymentsToBeReceivedThreeYears">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of lease payments to be received by lessor in third fiscal year following latest fiscal year for operating lease. Excludes interim and annual periods when interim periods are reported on rolling approach, from latest statement of financial position date.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 842<br> -SubTopic 30<br> -Section 50<br> -Paragraph 12<br> -URI http://asc.fasb.org/extlink&amp;oid=77888428&amp;loc=SL77919396-209981<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LessorOperatingLeasePaymentsToBeReceivedThreeYears</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LessorOperatingLeasePaymentsToBeReceivedTwoYears">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of lease payments to be received by lessor in second fiscal year following latest fiscal year for operating lease. Excludes interim and annual periods when interim periods are reported on rolling approach, from latest statement of financial position date.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 842<br> -SubTopic 30<br> -Section 50<br> -Paragraph 12<br> -URI http://asc.fasb.org/extlink&amp;oid=77888428&amp;loc=SL77919396-209981<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LessorOperatingLeasePaymentsToBeReceivedTwoYears</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance 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>103
<FILENAME>R81.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.19.3.a.u2</span><table class="report" border="0" cellspacing="2" id="idp6634185312">
<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, 2019</div></th>
<th class="th"><div>Dec. 31, 2018</div></th>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_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="top.Show.showAR( this, 'defref_us-gaap_DerivativeFairValueOfDerivativeAsset', window );">Derivative Asset, Fair Value, Gross Asset</a></td>
<td class="nump">$ 857<span></span>
</td>
<td class="nump">$ 1<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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="top.Show.showAR( this, 'defref_us-gaap_DerivativeAssets', window );">Net amount of assets presented</a></td>
<td class="nump">857<span></span>
</td>
<td class="nump">1<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_DerivativeFairValueOfDerivativeLiability', window );">Derivative Liability, Fair Value, Gross Liability</a></td>
<td class="nump">23<span></span>
</td>
<td class="nump">106<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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="top.Show.showAR( this, 'defref_us-gaap_DerivativeLiabilities', window );">Net amount of liabilities presented</a></td>
<td class="nump">$ 23<span></span>
</td>
<td class="nump">$ 106<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DerivativeAssetCollateralObligationToReturnCashOffset">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of obligation to return cash collateral under master netting arrangements offset against derivative assets.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 20<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (b)<br> -URI http://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 http://asc.fasb.org/extlink&amp;oid=6945355&amp;loc=d3e41228-113958<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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_DerivativeAssets">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Fair value, after the effects of master netting arrangements, of a financial asset or other contract with one or more underlyings, notional amount or payment provision or both, and the contract can be net settled by means outside the contract or delivery of an asset. Includes assets not subject to a master netting arrangement and not elected to be offset.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 20<br> -Section 55<br> -Paragraph 10<br> -URI http://asc.fasb.org/extlink&amp;oid=99393222&amp;loc=SL20226008-175313<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 825<br> -SubTopic 10<br> -Section 50<br> -Paragraph 10<br> -URI http://asc.fasb.org/extlink&amp;oid=109250915&amp;loc=d3e13433-108611<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 20<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -URI http://asc.fasb.org/extlink&amp;oid=51824906&amp;loc=SL20225862-175312<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DerivativeAssets</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DerivativeFairValueOfDerivativeAsset">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Fair value, 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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 20<br> -Section 55<br> -Paragraph 7<br> -URI http://asc.fasb.org/extlink&amp;oid=99393222&amp;loc=SL20226000-175313<br><br>Reference 2: 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 http://asc.fasb.org/extlink&amp;oid=109247956&amp;loc=SL51823488-111719<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 20<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (a)<br> -URI http://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 815<br> -SubTopic 10<br> -Section 50<br> -Paragraph 4B<br> -Subparagraph (a),(c)<br> -URI http://asc.fasb.org/extlink&amp;oid=109980867&amp;loc=SL5624163-113959<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Fair value, 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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 860<br> -SubTopic 20<br> -Section 50<br> -Paragraph 4D<br> -Subparagraph (c)(2)<br> -URI http://asc.fasb.org/extlink&amp;oid=109247956&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 http://asc.fasb.org/extlink&amp;oid=109980867&amp;loc=SL5624163-113959<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 20<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (a)<br> -URI http://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 http://asc.fasb.org/extlink&amp;oid=99393222&amp;loc=SL20226000-175313<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Fair value, after the effects of master netting arrangements, of a financial 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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 20<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -URI http://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 825<br> -SubTopic 10<br> -Section 50<br> -Paragraph 10<br> -URI http://asc.fasb.org/extlink&amp;oid=109250915&amp;loc=d3e13433-108611<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 20<br> -Section 55<br> -Paragraph 10<br> -URI http://asc.fasb.org/extlink&amp;oid=99393222&amp;loc=SL20226008-175313<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of right to receive cash collateral under master netting arrangements offset against derivative liabilities.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 815<br> -SubTopic 10<br> -Section 45<br> -Paragraph 5<br> -URI http://asc.fasb.org/extlink&amp;oid=6945355&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 http://asc.fasb.org/extlink&amp;oid=51824906&amp;loc=SL20225862-175312<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_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>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>104
<FILENAME>R85.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.19.3.a.u2</span><table class="report" border="0" cellspacing="2" id="idp6889990864">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Revenue Recognition - Statement of Operations Impact (Details) - USD ($)<br> $ / shares in Units, $ in Thousands</strong></div></th>
<th class="th" colspan="8">3 Months Ended</th>
<th class="th" colspan="3">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Dec. 31, 2018</div></th>
<th class="th"><div>Sep. 30, 2018</div></th>
<th class="th"><div>Jul. 01, 2018</div></th>
<th class="th"><div>Apr. 01, 2018</div></th>
<th class="th"><div>Dec. 31, 2017</div></th>
<th class="th"><div>Oct. 01, 2017</div></th>
<th class="th"><div>Jul. 02, 2017</div></th>
<th class="th"><div>Apr. 02, 2017</div></th>
<th class="th"><div>Dec. 31, 2019</div></th>
<th class="th"><div>Dec. 31, 2018</div></th>
<th class="th"><div>Dec. 31, 2017</div></th>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_RevenueInitialApplicationPeriodCumulativeEffectTransitionLineItems', window );"><strong>Revenue</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>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax', window );">Revenue</a></td>
<td class="nump">$ 169,769<span></span>
</td>
<td class="nump">$ 183,325<span></span>
</td>
<td class="nump">$ 199,047<span></span>
</td>
<td class="nump">$ 173,484<span></span>
</td>
<td class="nump">$ 193,286<span></span>
</td>
<td class="nump">$ 232,221<span></span>
</td>
<td class="nump">$ 211,264<span></span>
</td>
<td class="nump">$ 169,567<span></span>
</td>
<td class="nump">$ 725,625<span></span>
</td>
<td class="nump">$ 806,338<span></span>
</td>
<td class="nump">$ 766,083<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_CostOfGoodsAndServicesSold', window );">Cost of revenue</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">189,754<span></span>
</td>
<td class="nump">206,052<span></span>
</td>
<td class="nump">187,289<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_GrossProfit', window );">Gross margin</a></td>
<td class="nump">124,898<span></span>
</td>
<td class="nump">135,693<span></span>
</td>
<td class="nump">148,080<span></span>
</td>
<td class="nump">127,200<span></span>
</td>
<td class="nump">140,461<span></span>
</td>
<td class="nump">173,361<span></span>
</td>
<td class="nump">157,095<span></span>
</td>
<td class="nump">129,369<span></span>
</td>
<td class="nump">535,871<span></span>
</td>
<td class="nump">600,286<span></span>
</td>
<td class="nump">578,794<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_OperatingIncomeLoss', window );">Operating income</a></td>
<td class="nump">17,607<span></span>
</td>
<td class="nump">43,092<span></span>
</td>
<td class="nump">51,756<span></span>
</td>
<td class="nump">30,147<span></span>
</td>
<td class="nump">45,247<span></span>
</td>
<td class="nump">77,844<span></span>
</td>
<td class="nump">63,455<span></span>
</td>
<td class="nump">34,596<span></span>
</td>
<td class="nump">142,602<span></span>
</td>
<td class="nump">221,142<span></span>
</td>
<td class="nump">258,861<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments', window );">Income before income tax expense</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">162,994<span></span>
</td>
<td class="nump">234,574<span></span>
</td>
<td class="nump">266,464<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_IncomeTaxExpenseBenefit', window );">Income tax expense (benefit)</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</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">(40,871)<span></span>
</td>
<td class="nump">15,307<span></span>
</td>
<td class="nump">89,752<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_NetIncomeLoss', window );">Net income</a></td>
<td class="nump">$ 80,327<span></span>
</td>
<td class="nump">$ 41,685<span></span>
</td>
<td class="nump">$ 48,749<span></span>
</td>
<td class="nump">$ 33,104<span></span>
</td>
<td class="nump">$ 45,418<span></span>
</td>
<td class="nump">$ 80,436<span></span>
</td>
<td class="nump">$ 56,196<span></span>
</td>
<td class="nump">$ 37,217<span></span>
</td>
<td class="nump">$ 203,865<span></span>
</td>
<td class="nump">$ 219,267<span></span>
</td>
<td class="nump">$ 176,712<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_EarningsPerShareBasicAndDilutedAbstract', window );"><strong>Net income per weighted-average common and common-equivalent share:</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_EarningsPerShareBasic', window );">Net income (in dollars per share)</a></td>
<td class="nump">$ 0.47<span></span>
</td>
<td class="nump">$ 0.24<span></span>
</td>
<td class="nump">$ 0.28<span></span>
</td>
<td class="nump">$ 0.19<span></span>
</td>
<td class="nump">$ 0.26<span></span>
</td>
<td class="nump">$ 0.47<span></span>
</td>
<td class="nump">$ 0.33<span></span>
</td>
<td class="nump">$ 0.21<span></span>
</td>
<td class="nump">$ 1.19<span></span>
</td>
<td class="nump">$ 1.27<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="top.Show.showAR( this, 'defref_us-gaap_EarningsPerShareDiluted', window );">Diluted net income (loss) per share (in dollars per share)</a></td>
<td class="nump">$ 0.46<span></span>
</td>
<td class="nump">$ 0.24<span></span>
</td>
<td class="nump">$ 0.28<span></span>
</td>
<td class="nump">$ 0.19<span></span>
</td>
<td class="nump">$ 0.26<span></span>
</td>
<td class="nump">$ 0.45<span></span>
</td>
<td class="nump">$ 0.32<span></span>
</td>
<td class="nump">$ 0.21<span></span>
</td>
<td class="nump">$ 1.16<span></span>
</td>
<td class="nump">$ 1.24<span></span>
</td>
<td class="nump">$ 0.98<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_srt_RestatementAxis=srt_ScenarioPreviouslyReportedMember', window );">As previously reported</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_RevenueInitialApplicationPeriodCumulativeEffectTransitionLineItems', window );"><strong>Revenue</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>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments', window );">Income before income tax expense</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 162,994<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_IncomeTaxExpenseBenefit', window );">Income tax expense (benefit)</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</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">(393,317)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_NetIncomeLoss', window );">Net income</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 556,311<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_EarningsPerShareBasicAndDilutedAbstract', window );"><strong>Net income per weighted-average common and common-equivalent share:</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_EarningsPerShareBasic', window );">Net income (in dollars per share)</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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.25<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_EarningsPerShareDiluted', window );">Diluted net income (loss) per share (in dollars per share)</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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.17<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_CostOfGoodsAndServicesSold">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The aggregate costs related to goods produced and sold and services rendered by an entity during the reporting period. This excludes costs incurred during the reporting period related to financial services rendered and other revenue generating activities.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03.2(a),(d))<br> -URI http://asc.fasb.org/extlink&amp;oid=115205541&amp;loc=SL114868664-224227<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_CostOfGoodsAndServicesSold</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_EarningsPerShareBasic">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The amount of net income (loss) for the period per each share of common stock or unit outstanding during the reporting period.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 944<br> -SubTopic 220<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-04(19))<br> -URI http://asc.fasb.org/extlink&amp;oid=114873790&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 260<br> -SubTopic 10<br> -Section 45<br> -Paragraph 7<br> -URI http://asc.fasb.org/extlink&amp;oid=109260490&amp;loc=d3e1337-109256<br><br>Reference 3: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 55<br> -Paragraph 52<br> -URI http://asc.fasb.org/extlink&amp;oid=109256448&amp;loc=d3e4984-109258<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03(21))<br> -URI http://asc.fasb.org/extlink&amp;oid=115205541&amp;loc=SL114868664-224227<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> -URI http://asc.fasb.org/extlink&amp;oid=109234566&amp;loc=d3e22694-107794<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=6371337&amp;loc=d3e3550-109257<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 2<br> -URI http://asc.fasb.org/extlink&amp;oid=109260490&amp;loc=d3e1252-109256<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 942<br> -SubTopic 220<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-04(23))<br> -URI http://asc.fasb.org/extlink&amp;oid=114873765&amp;loc=SL114874048-224260<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 45<br> -Paragraph 60B<br> -Subparagraph (d)<br> -URI http://asc.fasb.org/extlink&amp;oid=109260490&amp;loc=SL5780133-109256<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_EarningsPerShareBasic</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>num:perShareItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_EarningsPerShareBasicAndDilutedAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_EarningsPerShareBasicAndDilutedAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_EarningsPerShareDiluted">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The amount of net income (loss) for the period available to each share of common stock or common unit outstanding during the reporting period and to each share or unit that would have been outstanding assuming the issuance of common shares or units for all dilutive potential common shares or units outstanding during the reporting period.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 55<br> -Paragraph 52<br> -URI http://asc.fasb.org/extlink&amp;oid=109256448&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 260<br> -SubTopic 10<br> -Section 45<br> -Paragraph 2<br> -URI http://asc.fasb.org/extlink&amp;oid=109260490&amp;loc=d3e1252-109256<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 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=6371337&amp;loc=d3e3550-109257<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(23))<br> -URI http://asc.fasb.org/extlink&amp;oid=114873765&amp;loc=SL114874048-224260<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 11<br> -URI http://asc.fasb.org/extlink&amp;oid=109234566&amp;loc=d3e22694-107794<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 45<br> -Paragraph 7<br> -URI http://asc.fasb.org/extlink&amp;oid=109260490&amp;loc=d3e1337-109256<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03(21))<br> -URI http://asc.fasb.org/extlink&amp;oid=115205541&amp;loc=SL114868664-224227<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 45<br> -Paragraph 60B<br> -Subparagraph (d)<br> -URI http://asc.fasb.org/extlink&amp;oid=109260490&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 944<br> -SubTopic 220<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-04(19))<br> -URI http://asc.fasb.org/extlink&amp;oid=114873790&amp;loc=SL114874131-224263<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_EarningsPerShareDiluted</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>num:perShareItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_GrossProfit">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Aggregate revenue less cost of goods and services sold or operating expenses directly attributable to the revenue generation activity.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03.1,2)<br> -URI http://asc.fasb.org/extlink&amp;oid=115205541&amp;loc=SL114868664-224227<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_GrossProfit</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of income (loss) from continuing operations before deduction of income tax expense (benefit) and income (loss) attributable to noncontrolling interest, and addition of income (loss) from equity method investments.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 235<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08.(h)(1)(i))<br> -URI http://asc.fasb.org/extlink&amp;oid=26873400&amp;loc=d3e23780-122690<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncomeTaxExpenseBenefit">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of current income tax expense (benefit) and deferred income tax expense (benefit) pertaining to continuing operations.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 22<br> -Subparagraph (h)<br> -URI http://asc.fasb.org/extlink&amp;oid=115929826&amp;loc=d3e8736-108599<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))<br> -URI http://asc.fasb.org/extlink&amp;oid=26873400&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 20<br> -Section 45<br> -Paragraph 2<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=109238882&amp;loc=d3e38679-109324<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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_NetIncomeLoss">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The portion of profit or loss for the period, net of income taxes, which is attributable to the parent.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section 45<br> -Paragraph 1A<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=114867106&amp;loc=SL7669619-108580<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 942<br> -SubTopic 220<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-04(22))<br> -URI http://asc.fasb.org/extlink&amp;oid=114873765&amp;loc=SL114874048-224260<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 1B<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=114867106&amp;loc=SL7669625-108580<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 http://asc.fasb.org/extlink&amp;oid=114873790&amp;loc=SL114874131-224263<br><br>Reference 5: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03(20))<br> -URI http://asc.fasb.org/extlink&amp;oid=115205541&amp;loc=SL114868664-224227<br><br>Reference 6: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 28<br> -URI http://asc.fasb.org/extlink&amp;oid=109223946&amp;loc=d3e3602-108585<br><br>Reference 7: 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 http://asc.fasb.org/extlink&amp;oid=6371337&amp;loc=d3e3550-109257<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The net result for the period of deducting operating expenses from operating revenues.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_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_RevenueFromContractWithCustomerExcludingAssessedTax">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount, 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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 606<br> -SubTopic 10<br> -Section 50<br> -Paragraph 4<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=109196051&amp;loc=SL49130543-203045<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 606<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=109196051&amp;loc=SL49130539-203045<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 606<br> -SubTopic 10<br> -Section 50<br> -Paragraph 5<br> -URI http://asc.fasb.org/extlink&amp;oid=109196051&amp;loc=SL49130545-203045<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_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_RevenueInitialApplicationPeriodCumulativeEffectTransitionLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_RevenueInitialApplicationPeriodCumulativeEffectTransitionLineItems</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<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_RestatementAxis=srt_ScenarioPreviouslyReportedMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_RestatementAxis=srt_ScenarioPreviouslyReportedMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><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>R75.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.19.3.a.u2</span><table class="report" border="0" cellspacing="2" id="idp6622709952">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>Accrued Expenses - Constituents of Accrued Expenses (Detail) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th"><div>Dec. 31, 2019</div></th>
<th class="th"><div>Dec. 31, 2018</div></th>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_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="top.Show.showAR( this, 'defref_us-gaap_AccruedSalariesCurrent', window );">Salaries, commissions, and payroll taxes</a></td>
<td class="nump">$ 11,500<span></span>
</td>
<td class="nump">$ 11,039<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AccruedBonusesCurrent', window );">Company bonuses</a></td>
<td class="nump">0<span></span>
</td>
<td class="nump">9,134<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AccruedVacationCurrent', window );">Vacation</a></td>
<td class="nump">4,708<span></span>
</td>
<td class="nump">6,507<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_cgnx_RetirementAllowance', window );">Foreign retirement obligations</a></td>
<td class="nump">6,146<span></span>
</td>
<td class="nump">4,816<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ProductWarrantyAccrualClassifiedCurrent', window );">Warranty obligations</a></td>
<td class="nump">4,713<span></span>
</td>
<td class="nump">4,743<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_BusinessCombinationSeparatelyRecognizedTransactionsLiabilitiesRecognized', window );">Acquisition deferred and contingent liabilities</a></td>
<td class="nump">2,103<span></span>
</td>
<td class="nump">1,706<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_OtherAccruedLiabilitiesCurrent', window );">Other</a></td>
<td class="nump">23,029<span></span>
</td>
<td class="nump">22,275<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AccruedLiabilitiesCurrent', window );">Accrued expenses</a></td>
<td class="nump">$ 52,199<span></span>
</td>
<td class="nump">$ 60,220<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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Retirement allowance Japan.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Carrying value as of the balance sheet date of obligations incurred and payable 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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02.20)<br> -URI http://asc.fasb.org/extlink&amp;oid=6877327&amp;loc=d3e13212-122682<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section 45<br> -Paragraph 8<br> -URI http://asc.fasb.org/extlink&amp;oid=82887183&amp;loc=d3e6935-107765<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section 45<br> -Paragraph 6<br> -URI http://asc.fasb.org/extlink&amp;oid=82887183&amp;loc=d3e6911-107765<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Carrying value as of the balance sheet date of obligations incurred and payable, pertaining to costs that are statutory in nature, are incurred on contractual obligations, or accumulate over time and for which invoices have not yet been received or will not be rendered. Examples include taxes, interest, rent and utilities. Used to reflect the current portion of the liabilities (due within one year or within the normal operating cycle if longer).</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02.20)<br> -URI http://asc.fasb.org/extlink&amp;oid=6877327&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AccruedLiabilitiesCurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AccruedLiabilitiesCurrentAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Carrying value as of the balance sheet date of 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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section 45<br> -Paragraph 6<br> -URI http://asc.fasb.org/extlink&amp;oid=82887183&amp;loc=d3e6911-107765<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02.20)<br> -URI http://asc.fasb.org/extlink&amp;oid=6877327&amp;loc=d3e13212-122682<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section 45<br> -Paragraph 8<br> -URI http://asc.fasb.org/extlink&amp;oid=82887183&amp;loc=d3e6935-107765<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Carrying value as of the balance sheet date of obligations incurred and payable 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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02.20)<br> -URI http://asc.fasb.org/extlink&amp;oid=6877327&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 http://asc.fasb.org/extlink&amp;oid=6409733&amp;loc=d3e19396-108361<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section 45<br> -Paragraph 6<br> -URI http://asc.fasb.org/extlink&amp;oid=82887183&amp;loc=d3e6911-107765<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_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_BusinessCombinationSeparatelyRecognizedTransactionsLiabilitiesRecognized">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The amount of liabilities recognized recorded in a transaction with the acquiree for each transaction that is recognized separately from the acquisition of assets and assumptions of liabilities in the business combination.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 805<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (e)(3)<br> -URI http://asc.fasb.org/extlink&amp;oid=79982066&amp;loc=d3e1392-128463<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_BusinessCombinationSeparatelyRecognizedTransactionsLiabilitiesRecognized</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_OtherAccruedLiabilitiesCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of expenses incurred but not yet paid classified as other, due within one year or the normal operating cycle, if longer.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02.20)<br> -URI http://asc.fasb.org/extlink&amp;oid=6877327&amp;loc=d3e13212-122682<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section 45<br> -Paragraph 6<br> -URI http://asc.fasb.org/extlink&amp;oid=82887183&amp;loc=d3e6911-107765<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section 45<br> -Paragraph 9<br> -URI http://asc.fasb.org/extlink&amp;oid=82887183&amp;loc=d3e7018-107765<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section 45<br> -Paragraph 8<br> -URI http://asc.fasb.org/extlink&amp;oid=82887183&amp;loc=d3e6935-107765<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OtherAccruedLiabilitiesCurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Carrying value as of the balance sheet date of obligations incurred through that date and payable for 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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 460<br> -SubTopic 10<br> -Section 50<br> -Paragraph 7<br> -URI http://asc.fasb.org/extlink&amp;oid=68068213&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 http://asc.fasb.org/extlink&amp;oid=6877327&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 http://asc.fasb.org/extlink&amp;oid=68070138&amp;loc=d3e11281-110244<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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>106
<FILENAME>R43.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.19.3.a.u2</span><table class="report" border="0" cellspacing="2" id="idp6636767136">
<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, 2019</div></th></tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_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="top.Show.showAR( this, 'defref_us-gaap_ScheduleOfAccruedLiabilitiesTableTextBlock', window );">Constituents of Accrued Expenses</a></td>
<td class="text"><div style="line-height:120%;padding-top:6px;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Accrued expenses consisted of the following (in thousands):</span></div><div style="line-height:120%;font-size:10pt;"><div style="padding-left:0px;text-indent:0px;line-height:normal;padding-top:10px;"><table cellpadding="0" cellspacing="0" style="font-family:Times New Roman;font-size:10pt;width:99.80506822612085%;border-collapse:collapse;text-align:left;"><tr><td colspan="8"/></tr><tr><td style="width:65%;"/><td style="width:1%;"/><td style="width:15%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:15%;"/><td style="width:1%;"/></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;">&#160;</span></div></td><td colspan="7" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;">December&#160;31,</span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-top:2px;padding-bottom:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;">2019</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-top:2px;padding-bottom:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;">2018</span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Salaries, commissions, and payroll taxes</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>11,500</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>11,039</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Foreign retirement obligations</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>6,146</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>4,816</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Warranty obligations</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>4,713</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>4,743</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Vacation</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>4,708</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>6,507</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Acquisition deferred and contingent liabilities</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>2,103</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>1,706</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Company bonuses</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>&#8212;</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>9,134</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Other</span></div></td><td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>23,029</span></span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>22,275</span></span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>52,199</span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>60,220</span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr></table></div><span style="font-family:inherit;font-size:10pt;"><br/></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="top.Show.showAR( this, 'defref_us-gaap_ScheduleOfProductWarrantyLiabilityTableTextBlock', window );">Changes in Warranty Obligations</a></td>
<td class="text"><div style="line-height:120%;padding-top:12px;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">The changes in the warranty obligation were as follows (in thousands):</span></div><div style="line-height:120%;font-size:10pt;"><div style="padding-left:0px;text-indent:0px;line-height:normal;padding-top:10px;"><table cellpadding="0" cellspacing="0" style="font-family:Times New Roman;font-size:10pt;width:100%;border-collapse:collapse;text-align:left;"><tr><td colspan="4"/></tr><tr><td style="width:82%;"/><td style="width:1%;"/><td style="width:16%;"/><td style="width:1%;"/></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Balance as of December 31, 2017</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>4,701</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Provisions for warranties issued during the period</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>4,184</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Fulfillment of warranty obligations</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>(4,024</span></span></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">)</span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Foreign exchange rate changes</span></div></td><td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>(118</span></span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">)</span></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Balance as of December 31, 2018</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>4,743</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Provisions for warranties issued during the period</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>3,841</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Fulfillment of warranty obligations</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>(3,871</span></span></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">)</span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Balance as of December 31, 2019</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>4,713</span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr></table></div><span style="font-family:inherit;font-size:10pt;"><br/></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_PayablesAndAccrualsAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Tabular disclosure of the components of accrued liabilities.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ScheduleOfAccruedLiabilitiesTableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>nonnum:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ScheduleOfProductWarrantyLiabilityTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Tabular disclosure of the changes in 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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 460<br> -SubTopic 10<br> -Section 50<br> -Paragraph 8<br> -URI http://asc.fasb.org/extlink&amp;oid=68068213&amp;loc=d3e12565-110249<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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>nonnum:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>107
<FILENAME>R47.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.19.3.a.u2</span><table class="report" border="0" cellspacing="2" id="idp6861299840">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Taxes (Tables)<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><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="top.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="top.Show.showAR( this, 'defref_us-gaap_ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock', window );">Constituents of Provision for Income Taxes</a></td>
<td class="text"><div style="line-height:120%;padding-top:6px;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Income tax expense consisted of the following (in thousands):</span></div><div style="line-height:120%;font-size:10pt;"><div style="padding-left:0px;text-indent:0px;line-height:normal;padding-top:10px;"><table cellpadding="0" cellspacing="0" style="font-family:Times New Roman;font-size:10pt;width:99.80506822612085%;border-collapse:collapse;text-align:left;"><tr><td colspan="12"/></tr><tr><td style="width:50%;"/><td style="width:1%;"/><td style="width:14%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:14%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:14%;"/><td style="width:1%;"/></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;">&#160;</span></div></td><td colspan="11" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;">Year Ended December&#160;31,</span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;">2019</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">2018</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">2017</span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Current:</span></div></td><td colspan="11" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td></tr><tr><td style="vertical-align:top;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Federal</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">$</span></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>15,854</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>10,624</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>78,152</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">State</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>2,108</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>(879</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">)</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>2,687</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Foreign</span></div></td><td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>30,670</span></span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>6,307</span></span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>7,624</span></span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>48,632</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>16,052</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>88,463</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Deferred:</span></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Federal</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>352,808</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>(1,271</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">)</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>1,569</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">State</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>183</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>554</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>(639</span></span></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">)</span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Foreign</span></div></td><td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>(442,494</span></span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">)</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>(28</span></span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">)</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>359</span></span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>(89,503</span></span></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">)</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>(745</span></span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;padding-right:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">)</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>1,289</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:top;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">$</span></div></td><td style="vertical-align:top;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>(40,871</span></span></div></td><td style="vertical-align:top;border-bottom:3px double #000000;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">)</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:top;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:top;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>15,307</span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:top;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:top;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>89,752</span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr></table></div><span style="font-family:inherit;font-size:10pt;"><br/></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="top.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="line-height:120%;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">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 style="padding-left:0px;text-indent:0px;line-height:normal;padding-top:10px;"><table cellpadding="0" cellspacing="0" style="font-family:Times New Roman;font-size:10pt;width:100%;border-collapse:collapse;text-align:left;"><tr><td colspan="9"/></tr><tr><td style="width:62%;"/><td style="width:11%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:11%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:11%;"/><td style="width:1%;"/></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;">&#160;</span></div></td><td colspan="8" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;">Year&#160;Ended&#160;December&#160;31,</span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;">2019</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">2018</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">2017</span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Income tax expense at U.S. federal statutory corporate tax rate</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>21</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">&#160;%</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>21</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">&#160;%</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>35</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">&#160;%</span></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">State income taxes, net of federal benefit</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>2</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>1</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>&#8212;</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Foreign tax rate differential</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>(9</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">)</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>(9</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">)</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>(27</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">)</span></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Tax credit</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>(1</span></span></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">)</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>&#8212;</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>(1</span></span></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">)</span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Discrete tax benefit related to employee stock options</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>(4</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">)</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>(4</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">)</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>(14</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">)</span></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Discrete tax expense (benefit) related to Tax Act</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>&#8212;</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>(3</span></span></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">)</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>36</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Discrete tax expense related to write-down of deferred tax assets </span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>&#8212;</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>&#8212;</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>5</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Discrete tax expense related to migration of acquired IP</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>18</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>&#8212;</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>&#8212;</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Discrete tax (benefit) related to change in tax structure</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>(268</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">)</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>&#8212;</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>&#8212;</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Discrete tax expense related to GILTI impact of change in tax structure</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>214</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>&#8212;</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>&#8212;</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Other discrete tax events</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>(1</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">)</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>&#8212;</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>(1</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">)</span></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Other</span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>3</span></span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>1</span></span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>1</span></span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Income tax expense</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>(25</span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">)%</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>7</span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">&#160;%</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>34</span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">&#160;%</span></div></td></tr></table></div><span style="font-family:inherit;font-size:10pt;"><br/></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="top.Show.showAR( this, 'defref_us-gaap_ScheduleOfChangeInAccountingEstimateTextBlock', window );">Schedule of Change in Accounting Policy</a></td>
<td class="text"><div style="line-height:120%;padding-bottom:10px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">The change in this accounting policy impacted the Company's 2019 reported results as follows (in thousands):</span></div><div style="line-height:120%;padding-bottom:10px;text-align:center;font-size:10pt;"><div style="padding-left:0px;text-indent:0px;line-height:normal;padding-top:10px;"><table cellpadding="0" cellspacing="0" style="font-family:Times New Roman;font-size:10pt;margin-left:auto;margin-right:auto;width:100%;border-collapse:collapse;text-align:left;"><tr><td colspan="12"/></tr><tr><td style="width:54%;"/><td style="width:1%;"/><td style="width:14%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:14%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:10%;"/><td style="width:1%;"/></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="font-size:10pt;"><span style="font-family:Arial;font-size:10pt;text-decoration:underline;">Statement of Operations</span></div><div style="font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><br/></span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="11" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:center;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">&#160;Year Ended December 31, 2019</span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">As reported under the new accounting policy</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">As computed under the previous accounting policy</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Effect of change</span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Income before income tax expense</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>162,994</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>162,994</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>&#8212;</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Income tax expense (benefit)</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>(40,871</span></span></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">)</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>(393,317</span></span></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">)</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>352,446</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Net income</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>203,865</span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>556,311</span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>(352,446</span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">)</span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:12px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:12px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:12px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:12px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:12px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:12px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td></tr><tr><td colspan="4" style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Net income per weighted-average common and common-equivalent share:</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td></tr><tr><td style="vertical-align:top;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Basic</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>1.19</span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>3.25</span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>(2.06</span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">)</span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Diluted</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>1.16</span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>3.17</span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>(2.01</span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">)</span></div></td></tr></table></div></div><div style="line-height:120%;padding-bottom:10px;text-align:center;font-size:10pt;"><div style="padding-left:0px;text-indent:0px;line-height:normal;padding-top:10px;"><table cellpadding="0" cellspacing="0" style="font-family:Times New Roman;font-size:10pt;margin-left:auto;margin-right:auto;width:100%;border-collapse:collapse;text-align:left;"><tr><td colspan="12"/></tr><tr><td style="width:54%;"/><td style="width:1%;"/><td style="width:14%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:14%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:10%;"/><td style="width:1%;"/></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;text-decoration:underline;">Balance Sheet</span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="11" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:center;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">&#160;December 31, 2019</span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">As reported under the new accounting policy</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">As computed under the previous accounting policy</span></div><div style="text-align:center;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Effect of change</span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Deferred tax assets</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>449,519</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>469,621</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>(20,102</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">)</span></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Deferred tax liabilities</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>332,344</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>&#8212;</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>332,344</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr></table></div></div><div style="line-height:120%;padding-bottom:10px;text-align:center;font-size:10pt;"><div style="padding-left:0px;text-indent:0px;line-height:normal;padding-top:10px;"><table cellpadding="0" cellspacing="0" style="font-family:Times New Roman;font-size:10pt;margin-left:auto;margin-right:auto;width:100%;border-collapse:collapse;text-align:left;"><tr><td colspan="12"/></tr><tr><td style="width:54%;"/><td style="width:1%;"/><td style="width:14%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:14%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:10%;"/><td style="width:1%;"/></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;text-decoration:underline;">Statement of Shareholders' Equity</span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="11" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:center;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">&#160;Year Ended December 31, 2019</span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">As reported under the new accounting policy</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">As computed under the previous accounting policy</span></div><div style="text-align:center;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Effect of change</span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Retained earnings</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>753,268</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>1,105,714</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>(352,446</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">)</span></div></td></tr></table></div><span style="font-family:inherit;font-size:10pt;"><br/></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="top.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="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">The changes in the reserve for income taxes, excluding gross interest and penalties, were as follows (in thousands):</span></div><div style="line-height:120%;font-size:10pt;"><div style="padding-left:0px;text-indent:0px;line-height:normal;padding-top:10px;"><table cellpadding="0" cellspacing="0" style="font-family:Times New Roman;font-size:10pt;width:99.80506822612085%;border-collapse:collapse;text-align:left;"><tr><td colspan="4"/></tr><tr><td style="width:82%;"/><td style="width:1%;"/><td style="width:16%;"/><td style="width:1%;"/></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Balance of reserve for income taxes as of December 31, 2017</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>6,749</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Gross amounts of increases in unrecognized tax benefits as a result of tax positions taken in prior periods</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>69</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Gross amounts of increases in unrecognized tax benefits as a result of tax positions taken in the current period</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>1,499</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Gross amounts of decreases in unrecognized tax benefits as a result of the expiration of the applicable statutes of limitations</span></div></td><td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>(1,023</span></span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">)</span></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Balance of reserve for income taxes as of December 31, 2018</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>7,294</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Gross amounts of increases in unrecognized tax benefits as a result of tax positions taken in prior periods</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>199</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Gross amounts of increases in unrecognized tax benefits as a result of tax positions taken in the current period</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>5,259</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Gross amounts of decreases in unrecognized tax benefits as a result of the expiration of the applicable statutes of limitations</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>(1,161</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">)</span></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Balance of reserve for income taxes as of December 31, 2019</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>11,591</span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr></table></div><span style="font-family:inherit;font-size:10pt;"><br/></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="top.Show.showAR( this, 'defref_us-gaap_ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock', window );">Constituents of Deferred Tax Assets</a></td>
<td class="text"><div style="line-height:120%;padding-top:6px;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Deferred tax assets and liabilities, presented on a gross basis by jurisdiction, consisted of the following (in thousands):</span></div><div style="line-height:120%;font-size:10pt;"><div style="padding-left:0px;text-indent:0px;line-height:normal;padding-top:10px;"><table cellpadding="0" cellspacing="0" style="font-family:Times New Roman;font-size:10pt;width:99.80506822612085%;border-collapse:collapse;text-align:left;"><tr><td colspan="8"/></tr><tr><td style="width:67%;"/><td style="width:1%;"/><td style="width:14%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:14%;"/><td style="width:1%;"/></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="7" style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;">December&#160;31,</span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;">2019</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">2018</span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Non-current gross deferred tax assets:</span></div></td><td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td></tr><tr><td style="vertical-align:top;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Intangible asset in connection with change in tax structure</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">$</span></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>437,500</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>&#8212;</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Stock-based compensation expense</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>15,042</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>13,818</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Federal and state tax credit carryforwards</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>8,491</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>7,395</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Foreign net operating losses</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>4,286</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>&#8212;</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Depreciation</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>3,522</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>2,475</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Inventory and revenue related</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>2,934</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>3,233</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Bonuses, commissions, and other compensation</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>1,609</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>5,470</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Other</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>3,550</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>2,425</span></span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Gross non-current deferred tax assets</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>476,934</span></span></div></td><td style="vertical-align:bottom;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>34,816</span></span></div></td><td style="vertical-align:bottom;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Valuation allowance</span></div></td><td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>(7,312</span></span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">)</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>(6,112</span></span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">)</span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>469,622</span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>28,704</span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:18px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:18px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:18px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:18px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Non-current gross deferred tax liabilities:</span></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">GILTI tax basis differences in connection with change in tax structure</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>(350,000</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">)</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>&#8212;</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Other GILTI tax basis differences</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>(2,446</span></span></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">)</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>&#8212;</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Nondeductible intangible assets</span></div><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><br/></span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>&#8212;</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>(44</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">)</span></div></td></tr><tr><td style="vertical-align:top;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Other</span></div></td><td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>&#8212;</span></span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>(962</span></span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">)</span></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>(352,446</span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">)</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>(1,006</span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">)</span></div></td></tr></table></div><span style="font-family:inherit;font-size:10pt;"><br/></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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_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_ScheduleOfChangeInAccountingEstimateTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Tabular disclosure of the change in an accounting estimate, including a change that occurs in an interim period. If a change in accounting estimate affects several future periods (for example, a change in the service life of a depreciable asset) disclose the effect on income from continuing operations, net income (or other appropriate captions of changes in the applicable net assets or performance indicator), and any related per-share amounts of the current period. Disclosure of the effects of a change in an accounting estimate that occurs in the ordinary course of business (such as uncollectible accounts or inventory obsolescence) is not required, unless the effect is material.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 270<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.10-01.(a)(5))<br> -URI http://asc.fasb.org/extlink&amp;oid=27015980&amp;loc=d3e46468-122699<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 270<br> -SubTopic 10<br> -Section 45<br> -Paragraph 14<br> -URI http://asc.fasb.org/extlink&amp;oid=109236672&amp;loc=d3e777-108305<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 4<br> -URI http://asc.fasb.org/extlink&amp;oid=109234566&amp;loc=d3e22595-107794<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 45<br> -Paragraph 18<br> -URI http://asc.fasb.org/extlink&amp;oid=115929471&amp;loc=d3e21843-107793<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ScheduleOfChangeInAccountingEstimateTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>nonnum:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Tabular disclosure of the components of income tax expense attributable to continuing operations for each year presented including, but not limited to: current tax expense (benefit), deferred tax expense (benefit), investment tax credits, government grants, the benefits of operating loss carryforwards, tax expense that results from allocating certain tax benefits either directly to contributed capital or to reduce goodwill or other noncurrent intangible assets of an acquired entity, adjustments of a deferred tax liability or asset for enacted changes in tax laws or rates or a change in the tax status of the entity, and adjustments of the beginning-of-the-year balances of a valuation allowance because of a change in circumstances that causes a change in judgment about the realizability of the related deferred tax asset in future years.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 9<br> -URI http://asc.fasb.org/extlink&amp;oid=84230637&amp;loc=d3e32639-109319<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>nonnum:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Tabular disclosure of the components of net deferred tax asset or liability recognized in an entity's statement of financial position, including the following: the total of all deferred tax liabilities, the total of all deferred tax assets, the total valuation allowance recognized for deferred tax assets.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -URI http://asc.fasb.org/extlink&amp;oid=84230637&amp;loc=d3e32537-109319<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>nonnum:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Tabular disclosure of the reconciliation using percentage or dollar amounts of the reported amount of income tax expense attributable to continuing operations for the year to the amount of income tax expense that would result from applying domestic federal statutory tax rates to pretax income from continuing operations.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 12<br> -URI http://asc.fasb.org/extlink&amp;oid=84230637&amp;loc=d3e32687-109319<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>nonnum:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_SummaryOfIncomeTaxContingenciesTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Tabular disclosure for 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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 15A<br> -URI http://asc.fasb.org/extlink&amp;oid=84230637&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 http://asc.fasb.org/extlink&amp;oid=84230637&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 http://asc.fasb.org/extlink&amp;oid=84230637&amp;loc=d3e32840-109319<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_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>nonnum:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>108
<FILENAME>R64.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.19.3.a.u2</span><table class="report" border="0" cellspacing="2" id="idp6888307552">
<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, 2019 </div>
<div>USD ($)</div>
</th>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_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="top.Show.showAR( this, 'defref_us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionLessThanTwelveMonthsFairValue', window );">Fair Value, Less than 12 months</a></td>
<td class="nump">$ 60,547<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionLessThan12MonthsAccumulatedLoss', window );">Unrealized Losses, Less than 12 months</a></td>
<td class="num">(39)<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionTwelveMonthsOrLongerFairValue', window );">Fair Value, Greater than 12 Months</a></td>
<td class="nump">19,019<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPosition12MonthsOrLongerAccumulatedLoss', window );">Unrealized Losses, Greater than 12 Months</a></td>
<td class="num">(26)<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionFairValue', window );">Fair Value</a></td>
<td class="nump">79,566<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionAccumulatedLoss', window );">Unrealized Losses</a></td>
<td class="num">(65)<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_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="top.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="top.Show.showAR( this, 'defref_us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionLessThanTwelveMonthsFairValue', window );">Fair Value, Less than 12 months</a></td>
<td class="nump">27,121<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionLessThan12MonthsAccumulatedLoss', window );">Unrealized Losses, Less than 12 months</a></td>
<td class="num">(13)<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionTwelveMonthsOrLongerFairValue', window );">Fair Value, Greater than 12 Months</a></td>
<td class="nump">7,488<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPosition12MonthsOrLongerAccumulatedLoss', window );">Unrealized Losses, Greater than 12 Months</a></td>
<td class="num">(2)<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionFairValue', window );">Fair Value</a></td>
<td class="nump">34,609<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionAccumulatedLoss', window );">Unrealized Losses</a></td>
<td class="num">(15)<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_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="top.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="top.Show.showAR( this, 'defref_us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionLessThanTwelveMonthsFairValue', window );">Fair Value, Less than 12 months</a></td>
<td class="nump">11,621<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionLessThan12MonthsAccumulatedLoss', window );">Unrealized Losses, Less than 12 months</a></td>
<td class="num">(16)<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionTwelveMonthsOrLongerFairValue', window );">Fair Value, Greater than 12 Months</a></td>
<td class="nump">2,469<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPosition12MonthsOrLongerAccumulatedLoss', window );">Unrealized Losses, Greater than 12 Months</a></td>
<td class="num">(1)<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionFairValue', window );">Fair Value</a></td>
<td class="nump">14,090<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionAccumulatedLoss', window );">Unrealized Losses</a></td>
<td class="num">(17)<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_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="top.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="top.Show.showAR( this, 'defref_us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionLessThanTwelveMonthsFairValue', window );">Fair Value, Less than 12 months</a></td>
<td class="nump">11,566<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionLessThan12MonthsAccumulatedLoss', window );">Unrealized Losses, Less than 12 months</a></td>
<td class="num">(6)<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionTwelveMonthsOrLongerFairValue', 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="top.Show.showAR( this, 'defref_us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPosition12MonthsOrLongerAccumulatedLoss', 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="top.Show.showAR( this, 'defref_us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionFairValue', window );">Fair Value</a></td>
<td class="nump">11,566<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionAccumulatedLoss', window );">Unrealized Losses</a></td>
<td class="num">(6)<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_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="top.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="top.Show.showAR( this, 'defref_us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionLessThanTwelveMonthsFairValue', window );">Fair Value, Less than 12 months</a></td>
<td class="nump">8,128<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionLessThan12MonthsAccumulatedLoss', window );">Unrealized Losses, Less than 12 months</a></td>
<td class="num">(4)<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionTwelveMonthsOrLongerFairValue', window );">Fair Value, Greater than 12 Months</a></td>
<td class="nump">2,804<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPosition12MonthsOrLongerAccumulatedLoss', window );">Unrealized Losses, Greater than 12 Months</a></td>
<td class="num">(6)<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionFairValue', window );">Fair Value</a></td>
<td class="nump">10,932<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionAccumulatedLoss', window );">Unrealized Losses</a></td>
<td class="num">(10)<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_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="top.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="top.Show.showAR( this, 'defref_us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionLessThanTwelveMonthsFairValue', window );">Fair Value, Less 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="top.Show.showAR( this, 'defref_us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionLessThan12MonthsAccumulatedLoss', window );">Unrealized Losses, Less than 12 months</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="top.Show.showAR( this, 'defref_us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionTwelveMonthsOrLongerFairValue', window );">Fair Value, Greater than 12 Months</a></td>
<td class="nump">5,914<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPosition12MonthsOrLongerAccumulatedLoss', window );">Unrealized Losses, Greater than 12 Months</a></td>
<td class="num">(16)<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionFairValue', window );">Fair Value</a></td>
<td class="nump">5,914<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionAccumulatedLoss', window );">Unrealized Losses</a></td>
<td class="num">(16)<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_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="top.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="top.Show.showAR( this, 'defref_us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionLessThanTwelveMonthsFairValue', window );">Fair Value, Less than 12 months</a></td>
<td class="nump">2,111<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionLessThan12MonthsAccumulatedLoss', window );">Unrealized Losses, Less than 12 months</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="top.Show.showAR( this, 'defref_us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionTwelveMonthsOrLongerFairValue', window );">Fair Value, Greater than 12 Months</a></td>
<td class="nump">344<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPosition12MonthsOrLongerAccumulatedLoss', window );">Unrealized Losses, Greater than 12 Months</a></td>
<td class="num">(1)<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionFairValue', window );">Fair Value</a></td>
<td class="nump">2,455<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionAccumulatedLoss', window );">Unrealized Losses</a></td>
<td class="num">$ (1)<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPosition12MonthsOrLongerAccumulatedLoss">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of accumulated unrealized loss on investments in debt and equity securities classified as available-for-sale that have been in a continuous loss position for twelve months or longer.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPosition12MonthsOrLongerAccumulatedLoss</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionAccumulatedLoss">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of accumulated unrealized loss on investments in debt and equity securities classified as available-for-sale in a continuous loss position.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 320<br> -SubTopic 10<br> -Section 50<br> -Paragraph 7<br> -URI http://asc.fasb.org/extlink&amp;oid=82897076&amp;loc=d3e27337-111563<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionAccumulatedLoss</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionFairValue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>This item represents the aggregate fair value of investments in debt and equity securities in an unrealized loss position which are categorized neither as held-to-maturity nor trading securities.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionFairValue</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionLessThan12MonthsAccumulatedLoss">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of accumulated unrealized loss on investments in debt and equity securities classified as available-for-sale that have been in a continuous loss position for less than twelve months.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionLessThan12MonthsAccumulatedLoss</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionLessThanTwelveMonthsFairValue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>This item represents the aggregate fair value of investments in debt and equity securities categorized neither as held-to-maturity nor trading securities that have been in a continuous unrealized loss position for less than twelve months.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionLessThanTwelveMonthsFairValue</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionTwelveMonthsOrLongerFairValue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>This item represents the aggregate fair value of investments in debt and equity securities categorized neither as held-to-maturity nor trading securities that have been in a continuous unrealized loss position for twelve months or longer.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionTwelveMonthsOrLongerFairValue</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_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>109
<FILENAME>R94.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.19.3.a.u2</span><table class="report" border="0" cellspacing="2" id="idp6887527840">
<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>
<th class="th" colspan="1"></th>
</tr>
<tr>
<th class="th"><div>Dec. 31, 2019</div></th>
<th class="th"><div>Dec. 31, 2018</div></th>
<th class="th"><div>Dec. 31, 2017</div></th>
<th class="th"><div>Dec. 31, 2016</div></th>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract', window );"><strong>Disclosure of Compensation Related Costs, Share-based Payments [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="top.Show.showAR( this, 'defref_us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1', window );">Recognition period for unrecognized compensation expense</a></td>
<td class="text">1 year 7 months 28 days<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AllocatedShareBasedCompensationExpense', window );">Stock-based compensation expense</a></td>
<td class="nump">$ 45,589,000<span></span>
</td>
<td class="nump">$ 41,090,000<span></span>
</td>
<td class="nump">$ 31,942,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="top.Show.showAR( this, 'defref_us-gaap_EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense', window );">Income tax benefit recognized related to stock-based compensation expense</a></td>
<td class="nump">7,756,000<span></span>
</td>
<td class="nump">7,317,000<span></span>
</td>
<td class="nump">10,473,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="top.Show.showAR( this, 'defref_cgnx_EmployeeServiceShareBasedCompensationRecognizedPeriodCostsCapitalizedAmount', window );">Compensation expense capitalized</a></td>
<td class="nump">0<span></span>
</td>
<td class="text">&#160;<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="top.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>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AllocatedShareBasedCompensationExpense', window );">Stock-based compensation expense</a></td>
<td class="nump">1,504,000<span></span>
</td>
<td class="nump">2,447,000<span></span>
</td>
<td class="nump">1,881,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_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>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AllocatedShareBasedCompensationExpense', window );">Stock-based compensation expense</a></td>
<td class="nump">15,748,000<span></span>
</td>
<td class="nump">14,578,000<span></span>
</td>
<td class="nump">11,022,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_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>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AllocatedShareBasedCompensationExpense', window );">Stock-based compensation expense</a></td>
<td class="nump">$ 28,337,000<span></span>
</td>
<td class="nump">$ 24,065,000<span></span>
</td>
<td class="nump">$ 19,039,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_EmployeeServiceShareBasedCompensationRecognizedPeriodCostsCapitalizedAmount">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Employee service share based compensation recognized period costs capitalized amount.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cgnx_EmployeeServiceShareBasedCompensationRecognizedPeriodCostsCapitalizedAmount</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cgnx_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AllocatedShareBasedCompensationExpense">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Represents the expense recognized during the period arising from equity-based compensation arrangements (for example, shares of stock, unit, stock options or other equity instruments) with employees, directors and certain consultants qualifying for treatment as employees.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=109197908&amp;loc=d3e5047-113901<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 14.F)<br> -URI http://asc.fasb.org/extlink&amp;oid=115993241&amp;loc=d3e301413-122809<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (h)(1)(i)<br> -URI http://asc.fasb.org/extlink&amp;oid=109197908&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AllocatedShareBasedCompensationExpense</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Weighted average period over which unrecognized compensation is expected to be recognized for equity-based compensation plans, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents the reported fact of one year, five months, and thirteen days.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (i)<br> -URI http://asc.fasb.org/extlink&amp;oid=109197908&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:durationItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The total recognized tax benefit related to compensation cost for equity-based payment arrangements recognized in income during the period.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (h)(1)(i)<br> -URI http://asc.fasb.org/extlink&amp;oid=109197908&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncomeStatementLocationAxis=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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncomeStatementLocationAxis=us-gaap_ResearchAndDevelopmentExpenseMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncomeStatementLocationAxis=cgnx_SellingGeneralAndAdministrativeMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncomeStatementLocationAxis=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>110
<FILENAME>R90.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.19.3.a.u2</span><table class="report" border="0" cellspacing="2" id="idp6891014336">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Stock-Based Compensation Expense - Additional Information (Detail)<br></strong></div></th>
<th class="th" colspan="3">12 Months Ended</th>
<th class="th" colspan="1"></th>
</tr>
<tr>
<th class="th">
<div>Dec. 31, 2019 </div>
<div>USD ($) </div>
<div>group </div>
<div>$ / shares </div>
<div>shares</div>
</th>
<th class="th">
<div>Dec. 31, 2018 </div>
<div>USD ($) </div>
<div>$ / shares</div>
</th>
<th class="th">
<div>Dec. 31, 2017 </div>
<div>USD ($) </div>
<div>$ / shares</div>
</th>
<th class="th">
<div>Dec. 31, 2016 </div>
<div>USD ($)</div>
</th>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_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="top.Show.showAR( this, 'defref_cgnx_NumberOfGroupsWithinEmployeePopulation', window );">Number of groups within the employee population | group</a></td>
<td class="nump">2<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_cgnx_EstimatedForfeitureRateForUnvestedOptionsForSeniorManagement', window );">Estimated forfeiture rate for unvested options for senior management</a></td>
<td class="nump">9.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="top.Show.showAR( this, 'defref_cgnx_EstimatedForfeitureRateForUnvestedOptionsForAllNonSeniorManagement', window );">Estimated forfeiture rate for unvested options for all non-senior management</a></td>
<td class="nump">12.00%<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_cgnx_IncreaseInCompensationExpenseDueToRevisedEstimatedForfeitureRates', window );">Increase in compensation expense due to revised estimated forfeiture rates</a></td>
<td class="nump">$ 499,000<span></span>
</td>
<td class="nump">$ 1,283,000<span></span>
</td>
<td class="nump">$ 673,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue', window );">Weighted-average grant-date fair values of stock options granted | $ / shares</a></td>
<td class="nump">$ 18.62<span></span>
</td>
<td class="nump">$ 20.84<span></span>
</td>
<td class="nump">$ 15.59<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_cgnx_SharesBasedCompensationArrangementBySharesBasedPaymentAwardOptionsExercisableIntrinsicValue', window );">Total intrinsic values of stock options exercised</a></td>
<td class="nump">$ 90,762,000<span></span>
</td>
<td class="nump">$ 52,629,000<span></span>
</td>
<td class="nump">$ 136,672,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="top.Show.showAR( this, 'defref_cgnx_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedFairValue', window );">Total fair values of stock options vested</a></td>
<td class="nump">38,974,000<span></span>
</td>
<td class="nump">31,106,000<span></span>
</td>
<td class="nump">21,519,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="top.Show.showAR( this, 'defref_us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedStockOptions', window );">Total unrecognized compensation expense related to non-vested stock options</a></td>
<td class="nump">$ 53,491,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="top.Show.showAR( this, 'defref_us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1', window );">Recognition period for unrecognized compensation expense</a></td>
<td class="text">1 year 7 months 28 days<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AllocatedShareBasedCompensationExpense', window );">Stock-based compensation expense</a></td>
<td class="nump">$ 45,589,000<span></span>
</td>
<td class="nump">41,090,000<span></span>
</td>
<td class="nump">31,942,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense', window );">Income tax benefit recognized related to stock-based compensation expense</a></td>
<td class="nump">7,756,000<span></span>
</td>
<td class="nump">$ 7,317,000<span></span>
</td>
<td class="nump">10,473,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="top.Show.showAR( this, 'defref_cgnx_EmployeeServiceShareBasedCompensationRecognizedPeriodCostsCapitalizedAmount', window );">Compensation expense capitalized</a></td>
<td class="nump">$ 0<span></span>
</td>
<td class="text">&#160;<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="top.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="top.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="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant', window );">Shares available for grant under stock option plans | shares</a></td>
<td class="nump">17,300,802<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1', window );">Vesting period for stock option plans</a></td>
<td class="text"> <span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_cgnx_ExpirationPeriodOfStockOptionPlan', window );">Expiration period of stock option plan</a></td>
<td class="text">10 years<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_srt_RangeAxis=srt_MinimumMember', window );">Minimum [Member] | 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="top.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="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1', window );">Vesting period for stock option plans</a></td>
<td class="text">4 years<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_srt_RangeAxis=srt_MinimumMember', window );">Minimum [Member] | Performance Shares [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1', window );">Vesting period for stock option plans</a></td>
<td class="text">3 years<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_srt_RangeAxis=srt_MaximumMember', window );">Maximum [Member] | 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="top.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="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1', window );">Vesting period for stock option plans</a></td>
<td class="text">5 years<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_srt_RangeAxis=srt_MaximumMember', window );">Maximum [Member] | Performance Shares [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1', window );">Vesting period for stock option plans</a></td>
<td class="text">3 years<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_cgnx_EmployeeServiceShareBasedCompensationRecognizedPeriodCostsCapitalizedAmount">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Employee service share based compensation recognized period costs capitalized amount.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cgnx_EmployeeServiceShareBasedCompensationRecognizedPeriodCostsCapitalizedAmount</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cgnx_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_cgnx_EstimatedForfeitureRateForUnvestedOptionsForAllNonSeniorManagement">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">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>num:percentItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_cgnx_EstimatedForfeitureRateForUnvestedOptionsForSeniorManagement">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Estimated forfeiture rate for unvested options for senior management.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">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>num:percentItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_cgnx_ExpirationPeriodOfStockOptionPlan">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Expiration period of stock option plan.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">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_IncreaseInCompensationExpenseDueToRevisedEstimatedForfeitureRates">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cgnx_IncreaseInCompensationExpenseDueToRevisedEstimatedForfeitureRates</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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Number of groups within employee population.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">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_SharesBasedCompensationArrangementBySharesBasedPaymentAwardOptionsExercisableIntrinsicValue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Shares based compensation arrangement by shares based payment award options exercisable intrinsic value.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cgnx_SharesBasedCompensationArrangementBySharesBasedPaymentAwardOptionsExercisableIntrinsicValue</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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Represents the expense recognized during the period arising from equity-based compensation arrangements (for example, shares of stock, unit, stock options or other equity instruments) with employees, directors and certain consultants qualifying for treatment as employees.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=109197908&amp;loc=d3e5047-113901<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 14.F)<br> -URI http://asc.fasb.org/extlink&amp;oid=115993241&amp;loc=d3e301413-122809<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (h)(1)(i)<br> -URI http://asc.fasb.org/extlink&amp;oid=109197908&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AllocatedShareBasedCompensationExpense</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Weighted average period over which unrecognized compensation is expected to be recognized for equity-based compensation plans, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents the reported fact of one year, five months, and thirteen days.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (i)<br> -URI http://asc.fasb.org/extlink&amp;oid=109197908&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:durationItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedStockOptions">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Unrecognized cost of unvested options awarded to employees as compensation.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (i)<br> -URI http://asc.fasb.org/extlink&amp;oid=109197908&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The total recognized tax benefit related to compensation cost for equity-based payment arrangements recognized in income during the period.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (h)(1)(i)<br> -URI http://asc.fasb.org/extlink&amp;oid=109197908&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_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_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Period which an employee's right to exercise an award is no longer contingent on satisfaction of either a service condition, market condition or a performance condition, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents the reported fact of one year, five months, and thirteen days.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)(1)<br> -URI http://asc.fasb.org/extlink&amp;oid=109197908&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:durationItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The difference between the maximum number of shares (or other type of equity) authorized for issuance under the plan (including the effects of amendments and adjustments), and the sum of: 1) the number of shares (or other type of equity) already issued upon exercise of options or other equity-based awards under the plan; and 2) shares (or other type of equity) reserved for issuance on granting of outstanding awards, net of cancellations and forfeitures, if applicable.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -URI http://asc.fasb.org/extlink&amp;oid=109197908&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The weighted average grant-date fair value of options granted during the reporting period as calculated by applying the disclosed option pricing methodology.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (d)(1)<br> -URI http://asc.fasb.org/extlink&amp;oid=109197908&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>num:perShareItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AwardTypeAxis=us-gaap_EmployeeStockOptionMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AwardTypeAxis=us-gaap_EmployeeStockOptionMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_srt_RangeAxis=srt_MinimumMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_RangeAxis=srt_MinimumMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AwardTypeAxis=us-gaap_PerformanceSharesMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AwardTypeAxis=us-gaap_PerformanceSharesMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_srt_RangeAxis=srt_MaximumMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_RangeAxis=srt_MaximumMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>111
<FILENAME>R60.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.19.3.a.u2</span><table class="report" border="0" cellspacing="2" id="idp6886138256">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Fair Value Measurements - Liabilities Measured on Recurring Basis, Unobservable Input Reconciliation (Details) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="3">12 Months Ended</th>
<th class="th" colspan="1"></th>
</tr>
<tr>
<th class="th"><div>Dec. 31, 2019</div></th>
<th class="th"><div>Dec. 31, 2018</div></th>
<th class="th"><div>Dec. 31, 2017</div></th>
<th class="th"><div>Dec. 31, 2016</div></th>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationCalculationRollForward', window );"><strong>Fair Value, Liabilities Measured on Recurring Basis, Unobservable Input Reconciliation, Calculation [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>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue', window );">Beginning balance</a></td>
<td class="nump">$ 2,554<span></span>
</td>
<td class="nump">$ 3,557<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue', window );">Ending balance</a></td>
<td class="nump">1,153<span></span>
</td>
<td class="nump">2,554<span></span>
</td>
<td class="nump">$ 3,557<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_GoodwillAndIntangibleAssetImpairment', window );">Goodwill and intangible asset impairment</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 469<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionAxis=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>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationCalculationRollForward', window );"><strong>Fair Value, Liabilities Measured on Recurring Basis, Unobservable Input Reconciliation, Calculation [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>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilitySettlements', window );">Payment of contingent consideration</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="num">(1,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="top.Show.showAR( this, 'defref_us-gaap_LiabilitiesFairValueAdjustment', window );">Fair value adjustment</a></td>
<td class="num">(1,646)<span></span>
</td>
<td class="nump">1,065<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionAxis=cgnx_ManateeWorksInc.Member', window );">Manatee Works, 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>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationCalculationRollForward', window );"><strong>Fair Value, Liabilities Measured on Recurring Basis, Unobservable Input Reconciliation, Calculation [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>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_LiabilitiesFairValueAdjustment', window );">Fair value adjustment</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="num">(1,350)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionAxis=cgnx_ChiaroTechnologiesLLCMember', window );">Chiaro Technologies LLC</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationCalculationRollForward', window );"><strong>Fair Value, Liabilities Measured on Recurring Basis, Unobservable Input Reconciliation, Calculation [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>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_LiabilitiesFairValueAdjustment', window );">Fair value adjustment</a></td>
<td class="nump">$ 245<span></span>
</td>
<td class="nump">$ 282<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueLow', window );">Contingent consideration, low range</a></td>
<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="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueHigh', window );">Contingent consideration, high range</a></td>
<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,250<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_BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueHigh">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>For contingent consideration arrangements recognized in connection with a business combination, this element represents an estimate of the high-end of the potential range (undiscounted) of the consideration which may be paid.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 805<br> -SubTopic 30<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (c)(3)<br> -URI http://asc.fasb.org/extlink&amp;oid=35744584&amp;loc=d3e6927-128479<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueHigh</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueLow">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>For contingent consideration arrangements and indemnification assets recognized in connection with a business combination, this element represents an estimate of the low-end of the potential range (undiscounted) of the consideration which may be paid.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 805<br> -SubTopic 30<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (c)(3)<br> -URI http://asc.fasb.org/extlink&amp;oid=35744584&amp;loc=d3e6927-128479<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueLow</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationCalculationRollForward">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>A 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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationCalculationRollForward</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilitySettlements">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of settlements of financial instrument classified as a liability measured using unobservable inputs that reflect the entity's own assumption about the assumptions market participants would use in pricing.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 820<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(2)<br> -URI http://asc.fasb.org/extlink&amp;oid=99377789&amp;loc=d3e19207-110258<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilitySettlements</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Fair value of 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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 820<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)<br> -URI http://asc.fasb.org/extlink&amp;oid=99377789&amp;loc=d3e19207-110258<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_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_GoodwillAndIntangibleAssetImpairment">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Total loss recognized during the period from the impairment of goodwill plus the loss recognized in the period resulting from the impairment of the carrying amount of intangible assets, other than goodwill.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_GoodwillAndIntangibleAssetImpairment</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_LiabilitiesFairValueAdjustment">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of addition (reduction) to the amount at which a liability could be incurred (settled) in a current transaction between willing parties.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LiabilitiesFairValueAdjustment</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_GViVenturesInc.Member">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_BusinessAcquisitionAxis=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>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_BusinessAcquisitionAxis=cgnx_ManateeWorksInc.Member">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_BusinessAcquisitionAxis=cgnx_ManateeWorksInc.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_BusinessAcquisitionAxis=cgnx_ChiaroTechnologiesLLCMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_BusinessAcquisitionAxis=cgnx_ChiaroTechnologiesLLCMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><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>112
<FILENAME>R98.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.19.3.a.u2</span><table class="report" border="0" cellspacing="2" id="idp6878724336">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Taxes - Reconciliation of the United States Federal Statutory Corporate Tax Rate to Company's Effective Tax Rate or Income Tax Provision (Details) - USD ($)<br></strong></div></th>
<th class="th" colspan="3">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Dec. 31, 2019</div></th>
<th class="th"><div>Dec. 31, 2018</div></th>
<th class="th"><div>Dec. 31, 2017</div></th>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_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="top.Show.showAR( this, 'defref_us-gaap_OtherTaxExpenseBenefit', window );">Other Tax Expense (Benefit)</a></td>
<td class="nump">$ 1,932,000<span></span>
</td>
<td class="nump">$ 1,847,000<span></span>
</td>
<td class="nump">$ 2,502,000<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_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">35.00%<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_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">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="top.Show.showAR( this, 'defref_us-gaap_EffectiveIncomeTaxRateReconciliationForeignIncomeTaxRateDifferential', window );">Foreign tax rate differential</a></td>
<td class="num">(9.00%)<span></span>
</td>
<td class="num">(9.00%)<span></span>
</td>
<td class="num">(27.00%)<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_EffectiveIncomeTaxRateReconciliationTaxCredits', window );">Tax credit</a></td>
<td class="num">(1.00%)<span></span>
</td>
<td class="nump">0.00%<span></span>
</td>
<td class="num">(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="top.Show.showAR( this, 'defref_us-gaap_EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitPercent', window );">Discrete tax benefit related to employee stock options</a></td>
<td class="num">(4.00%)<span></span>
</td>
<td class="num">(4.00%)<span></span>
</td>
<td class="num">(14.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="top.Show.showAR( this, 'defref_cgnx_EffectiveIncomeTaxRateReconciliationDiscreteTaxExpenseTaxAndJobsActPercent', window );">Discrete tax expense (benefit) related to Tax Act</a></td>
<td class="nump">0.00%<span></span>
</td>
<td class="num">(3.00%)<span></span>
</td>
<td class="nump">36.00%<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_EffectiveIncomeTaxRateReconciliationChangeInDeferredTaxAssetsValuationAllowance', window );">Discrete tax expense related to write-down of deferred tax assets</a></td>
<td class="nump">0.00%<span></span>
</td>
<td class="nump">0.00%<span></span>
</td>
<td class="nump">5.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="top.Show.showAR( this, 'defref_cgnx_EffectiveIncomeTaxRateReconciliationMigrationofAcquiredIntellectualProperty', window );">Discrete tax expense related to migration of acquired IP</a></td>
<td class="nump">18.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="top.Show.showAR( this, 'defref_us-gaap_EffectiveIncomeTaxRateReconciliationChangeInEnactedTaxRate', window );">Discrete tax (benefit) related to change in tax structure</a></td>
<td class="num">(268.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 custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_cgnx_EffectiveIncomeTaxRateReconciliationTaxCutsandJobsActGlobalIntangibleLowTaxIncomePercent', window );">Discrete tax expense related to GILTI impact of change in tax structure</a></td>
<td class="nump">214.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="top.Show.showAR( this, 'defref_us-gaap_EffectiveIncomeTaxRateReconciliationOtherReconcilingItemsPercent', window );">Other discrete tax events</a></td>
<td class="num">(1.00%)<span></span>
</td>
<td class="nump">0.00%<span></span>
</td>
<td class="num">(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="top.Show.showAR( this, 'defref_us-gaap_EffectiveIncomeTaxRateReconciliationOtherAdjustments', window );">Other</a></td>
<td class="nump">3.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="top.Show.showAR( this, 'defref_us-gaap_EffectiveIncomeTaxRateContinuingOperations', window );">Income tax expense</a></td>
<td class="num">(25.00%)<span></span>
</td>
<td class="nump">7.00%<span></span>
</td>
<td class="nump">34.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_EffectiveIncomeTaxRateReconciliationDiscreteTaxExpenseTaxAndJobsActPercent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Effective Income Tax Rate Reconciliation, Discrete Tax Expense, Percent</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cgnx_EffectiveIncomeTaxRateReconciliationDiscreteTaxExpenseTaxAndJobsActPercent</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>num:percentItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_cgnx_EffectiveIncomeTaxRateReconciliationMigrationofAcquiredIntellectualProperty">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Effective Income Tax Rate Reconciliation, Migration of Acquired Intellectual Property</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cgnx_EffectiveIncomeTaxRateReconciliationMigrationofAcquiredIntellectualProperty</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>num:percentItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_cgnx_EffectiveIncomeTaxRateReconciliationTaxCutsandJobsActGlobalIntangibleLowTaxIncomePercent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Effective Income Tax Rate Reconciliation, Tax Cuts and Jobs Act, Global Intangible Low Tax Income, Percent</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cgnx_EffectiveIncomeTaxRateReconciliationTaxCutsandJobsActGlobalIntangibleLowTaxIncomePercent</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>num:percentItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_EffectiveIncomeTaxRateContinuingOperations">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Percentage of current income tax expense (benefit) and deferred income tax expense (benefit) pertaining to continuing operations.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 235<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08.(h)(2))<br> -URI http://asc.fasb.org/extlink&amp;oid=26873400&amp;loc=d3e23780-122690<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 12<br> -URI http://asc.fasb.org/extlink&amp;oid=84230637&amp;loc=d3e32687-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 13<br> -URI http://asc.fasb.org/extlink&amp;oid=84230637&amp;loc=d3e32698-109319<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_EffectiveIncomeTaxRateContinuingOperations</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>num:percentItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Percentage of domestic federal statutory tax rate applicable to pretax income (loss).</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://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)<br> -URI http://asc.fasb.org/extlink&amp;oid=34349781&amp;loc=d3e330036-122817<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 12<br> -URI http://asc.fasb.org/extlink&amp;oid=84230637&amp;loc=d3e32687-109319<br><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 13<br> -URI http://asc.fasb.org/extlink&amp;oid=84230637&amp;loc=d3e32698-109319<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>num:percentItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_EffectiveIncomeTaxRateReconciliationChangeInDeferredTaxAssetsValuationAllowance">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Percentage of 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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB TOPIC 6.I)<br> -URI http://asc.fasb.org/extlink&amp;oid=34349781&amp;loc=d3e330036-122817<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 12<br> -URI http://asc.fasb.org/extlink&amp;oid=84230637&amp;loc=d3e32687-109319<br><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 13<br> -URI http://asc.fasb.org/extlink&amp;oid=84230637&amp;loc=d3e32698-109319<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_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>num:percentItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_EffectiveIncomeTaxRateReconciliationChangeInEnactedTaxRate">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Percentage of 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 income tax rates.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://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)<br> -URI http://asc.fasb.org/extlink&amp;oid=34349781&amp;loc=d3e330036-122817<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 13<br> -URI http://asc.fasb.org/extlink&amp;oid=84230637&amp;loc=d3e32698-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 12<br> -URI http://asc.fasb.org/extlink&amp;oid=84230637&amp;loc=d3e32687-109319<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_EffectiveIncomeTaxRateReconciliationChangeInEnactedTaxRate</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>num:percentItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_EffectiveIncomeTaxRateReconciliationForeignIncomeTaxRateDifferential">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Percentage of 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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 13<br> -URI http://asc.fasb.org/extlink&amp;oid=84230637&amp;loc=d3e32698-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 S99<br> -Paragraph 1<br> -Subparagraph (SAB TOPIC 6.I)<br> -URI http://asc.fasb.org/extlink&amp;oid=34349781&amp;loc=d3e330036-122817<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 12<br> -URI http://asc.fasb.org/extlink&amp;oid=84230637&amp;loc=d3e32687-109319<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_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>num:percentItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_EffectiveIncomeTaxRateReconciliationOtherAdjustments">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Percentage of the difference between reported income tax expense (benefit) and expected income tax expense (benefit) computed by applying the domestic federal statutory income tax rates to pretax income (loss) from continuing operations attributable to other adjustments.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://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)<br> -URI http://asc.fasb.org/extlink&amp;oid=34349781&amp;loc=d3e330036-122817<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 13<br> -URI http://asc.fasb.org/extlink&amp;oid=84230637&amp;loc=d3e32698-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 12<br> -URI http://asc.fasb.org/extlink&amp;oid=84230637&amp;loc=d3e32687-109319<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_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>num:percentItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_EffectiveIncomeTaxRateReconciliationOtherReconcilingItemsPercent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Percentage of the difference, between reported income tax expense (benefit) and the expected income tax expense (benefit) computed by applying the domestic federal statutory income tax rates to pretax income (loss) from continuing operations, that is attributable to tax exempt income, equity in earnings (loss) of an unconsolidated subsidiary, minority interest income (expense), tax holiday, disposition of a business, disposition of an asset, repatriation of foreign earnings, repatriation of foreign earnings jobs creation act of 2004, change in enacted tax rate, prior year income taxes, change in deferred tax asset valuation allowance, and other adjustments.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_EffectiveIncomeTaxRateReconciliationOtherReconcilingItemsPercent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>num:percentItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitPercent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Percentage of 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 excess tax benefit for share-based compensation cost.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 12<br> -URI http://asc.fasb.org/extlink&amp;oid=84230637&amp;loc=d3e32687-109319<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_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>num:percentItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_EffectiveIncomeTaxRateReconciliationStateAndLocalIncomeTaxes">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Percentage of 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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 13<br> -URI http://asc.fasb.org/extlink&amp;oid=84230637&amp;loc=d3e32698-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 S99<br> -Paragraph 1<br> -Subparagraph (SAB TOPIC 6.I)<br> -URI http://asc.fasb.org/extlink&amp;oid=34349781&amp;loc=d3e330036-122817<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 12<br> -URI http://asc.fasb.org/extlink&amp;oid=84230637&amp;loc=d3e32687-109319<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_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>num:percentItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_EffectiveIncomeTaxRateReconciliationTaxCredits">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Percentage of 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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB TOPIC 6.I)<br> -URI http://asc.fasb.org/extlink&amp;oid=34349781&amp;loc=d3e330036-122817<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 13<br> -URI http://asc.fasb.org/extlink&amp;oid=84230637&amp;loc=d3e32698-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 12<br> -URI http://asc.fasb.org/extlink&amp;oid=84230637&amp;loc=d3e32687-109319<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_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>num:percentItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncomeTaxDisclosureAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_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_OtherTaxExpenseBenefit">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of other income tax expense (benefit).</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 9<br> -URI http://asc.fasb.org/extlink&amp;oid=84230637&amp;loc=d3e32639-109319<br><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 10<br> -URI http://asc.fasb.org/extlink&amp;oid=84230637&amp;loc=d3e32672-109319<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 235<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08.(h)(1))<br> -URI http://asc.fasb.org/extlink&amp;oid=26873400&amp;loc=d3e23780-122690<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OtherTaxExpenseBenefit</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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>113
<FILENAME>R68.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.19.3.a.u2</span><table class="report" border="0" cellspacing="2" id="idp6622305488">
<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, 2019</div></th>
<th class="th"><div>Dec. 31, 2018</div></th>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_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="top.Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentDisposals', window );">Disposals in period</a></td>
<td class="nump">$ 8,883<span></span>
</td>
<td class="nump">$ 6,367<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AccumulatedDepreciationDepletionAndAmortizationSaleOfPropertyPlantAndEquipment1', window );">Reduction of accumulated depreciation due to disposals</a></td>
<td class="nump">8,559<span></span>
</td>
<td class="nump">6,367<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_PropertySubjectToOrAvailableForOperatingLeaseGross', window );">Buildings include rental property</a></td>
<td class="nump">800<span></span>
</td>
<td class="nump">800<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_PropertySubjectToOrAvailableForOperatingLeaseAccumulatedDepreciation', window );">Accumulated depreciation</a></td>
<td class="nump">$ 255<span></span>
</td>
<td class="nump">$ 234<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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of decrease in 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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_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_PropertyPlantAndEquipmentAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of 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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_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_PropertySubjectToOrAvailableForOperatingLeaseAccumulatedDepreciation">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The amount of accumulated depreciation, by major property class, recorded on property subject to or available for lease as of the balance sheet date.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 840<br> -SubTopic 20<br> -Section 45<br> -Paragraph 3<br> -URI http://asc.fasb.org/extlink&amp;oid=77907726&amp;loc=d3e41460-112716<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 840<br> -SubTopic 20<br> -Section 50<br> -Paragraph 4<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=84164653&amp;loc=d3e41551-112718<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PropertySubjectToOrAvailableForOperatingLeaseAccumulatedDepreciation</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_PropertySubjectToOrAvailableForOperatingLeaseGross">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount before accumulated depreciation of physical assets used in the normal conduct of business to produce goods and services subject to or available for lease.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 840<br> -SubTopic 20<br> -Section 50<br> -Paragraph 4<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=84164653&amp;loc=d3e41551-112718<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 840<br> -SubTopic 20<br> -Section 45<br> -Paragraph 2<br> -URI http://asc.fasb.org/extlink&amp;oid=77907726&amp;loc=d3e41457-112716<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PropertySubjectToOrAvailableForOperatingLeaseGross</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance 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>114
<FILENAME>R6.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.19.3.a.u2</span><table class="report" border="0" cellspacing="2" id="idp6886970336">
<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, 2019</div></th>
<th class="th"><div>Dec. 31, 2018</div></th>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AssetsCurrentAbstract', window );"><strong>Current assets:</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_CashAndCashEquivalentsAtCarryingValue', window );">Cash and cash equivalents</a></td>
<td class="nump">$ 171,431,000<span></span>
</td>
<td class="nump">$ 108,212,000<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AvailableForSaleSecuritiesDebtSecuritiesCurrent', window );">Current investments</a></td>
<td class="nump">240,470,000<span></span>
</td>
<td class="nump">427,348,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="top.Show.showAR( this, 'defref_us-gaap_AccountsReceivableNetCurrent', window );">Accounts receivable, less reserves of $1,821 and $1,646 in 2019 and 2018, respectively</a></td>
<td class="nump">103,447,000<span></span>
</td>
<td class="nump">119,172,000<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_UnbilledReceivablesCurrent', window );">Unbilled revenue</a></td>
<td class="nump">4,782,000<span></span>
</td>
<td class="nump">8,312,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="top.Show.showAR( this, 'defref_us-gaap_InventoryNet', window );">Inventories</a></td>
<td class="nump">60,261,000<span></span>
</td>
<td class="nump">83,282,000<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_PrepaidExpenseAndOtherAssetsCurrent', window );">Prepaid expenses and other current assets</a></td>
<td class="nump">26,840,000<span></span>
</td>
<td class="nump">34,000,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="top.Show.showAR( this, 'defref_us-gaap_AssetsCurrent', window );">Total current assets</a></td>
<td class="nump">607,231,000<span></span>
</td>
<td class="nump">780,326,000<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_LongTermInvestments', window );">Non-current investments</a></td>
<td class="nump">433,452,000<span></span>
</td>
<td class="nump">262,039,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="top.Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentNet', window );">Property, plant, and equipment, net</a></td>
<td class="nump">89,443,000<span></span>
</td>
<td class="nump">91,396,000<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_OperatingLeaseRightOfUseAsset', window );">Operating lease assets</a></td>
<td class="nump">17,522,000<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="top.Show.showAR( this, 'defref_us-gaap_Goodwill', window );">Goodwill</a></td>
<td class="nump">243,445,000<span></span>
</td>
<td class="nump">113,208,000<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_IntangibleAssetsNetExcludingGoodwill', window );">Intangible Assets, Net (Excluding Goodwill)</a></td>
<td class="nump">39,490,000<span></span>
</td>
<td class="nump">10,113,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="top.Show.showAR( this, 'defref_us-gaap_DeferredTaxAssetsNetNoncurrent', window );">Deferred income taxes</a></td>
<td class="nump">449,519,000<span></span>
</td>
<td class="nump">28,660,000<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_OtherAssetsNoncurrent', window );">Other assets</a></td>
<td class="nump">5,833,000<span></span>
</td>
<td class="nump">3,925,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="top.Show.showAR( this, 'defref_us-gaap_Assets', window );">Total assets</a></td>
<td class="nump">1,885,935,000<span></span>
</td>
<td class="nump">1,289,667,000<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_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="top.Show.showAR( this, 'defref_us-gaap_AccountsPayableCurrent', window );">Accounts payable</a></td>
<td class="nump">17,866,000<span></span>
</td>
<td class="nump">16,230,000<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AccruedLiabilitiesCurrent', window );">Accrued expenses</a></td>
<td class="nump">52,199,000<span></span>
</td>
<td class="nump">60,220,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="top.Show.showAR( this, 'defref_us-gaap_AccruedIncomeTaxesCurrent', window );">Accrued income taxes</a></td>
<td class="nump">30,333,000<span></span>
</td>
<td class="nump">5,062,000<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ContractWithCustomerLiabilityCurrent', window );">Deferred revenue and customer deposits</a></td>
<td class="nump">14,432,000<span></span>
</td>
<td class="nump">9,845,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="top.Show.showAR( this, 'defref_us-gaap_OperatingLeaseLiabilityCurrent', window );">Operating lease liabilities</a></td>
<td class="nump">5,647,000<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="top.Show.showAR( this, 'defref_us-gaap_LiabilitiesCurrent', window );">Total current liabilities</a></td>
<td class="nump">120,477,000<span></span>
</td>
<td class="nump">91,357,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="top.Show.showAR( this, 'defref_us-gaap_OperatingLeaseLiabilityNoncurrent', window );">Non-current operating lease liabilities</a></td>
<td class="nump">12,326,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="top.Show.showAR( this, 'defref_us-gaap_DeferredIncomeTaxLiabilitiesNet', window );">Deferred income taxes</a></td>
<td class="nump">332,344,000<span></span>
</td>
<td class="nump">962,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="top.Show.showAR( this, 'defref_us-gaap_LiabilityForUncertainTaxPositionsNoncurrent', window );">Reserve for income taxes</a></td>
<td class="nump">11,563,000<span></span>
</td>
<td class="nump">7,106,000<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AccruedIncomeTaxesNoncurrent', window );">Non-current accrued income taxes</a></td>
<td class="nump">51,113,000<span></span>
</td>
<td class="nump">51,113,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="top.Show.showAR( this, 'defref_us-gaap_OtherLiabilitiesNoncurrent', window );">Other liabilities</a></td>
<td class="nump">2,402,000<span></span>
</td>
<td class="nump">3,866,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="top.Show.showAR( this, 'defref_us-gaap_Liabilities', window );">Total liabilities</a></td>
<td class="nump">530,225,000<span></span>
</td>
<td class="nump">154,404,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="top.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="top.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="top.Show.showAR( this, 'defref_us-gaap_PreferredStockValueOutstanding', window );">Preferred stock,$.01 par value - Authorized: 400 shares in 2019 and 2018, 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="top.Show.showAR( this, 'defref_us-gaap_CommonStockValueOutstanding', window );">Common stock, $.002 par value &#8211; Authorized: 300,000 shares in 2019 and 2018, respectively, issued and outstanding: 172,440 and 170,820 shares in 2019 and 2018, respectively</a></td>
<td class="nump">345,000<span></span>
</td>
<td class="nump">342,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="top.Show.showAR( this, 'defref_us-gaap_AdditionalPaidInCapitalCommonStock', window );">Additional paid-in capital</a></td>
<td class="nump">639,372,000<span></span>
</td>
<td class="nump">529,208,000<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_RetainedEarningsAccumulatedDeficit', window );">Retained earnings</a></td>
<td class="nump">753,268,000<span></span>
</td>
<td class="nump">646,214,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="top.Show.showAR( this, 'defref_us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax', window );">Accumulated other comprehensive loss, net of tax</a></td>
<td class="num">(37,275,000)<span></span>
</td>
<td class="num">(40,501,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="top.Show.showAR( this, 'defref_us-gaap_StockholdersEquity', window );">Total shareholders&#8217; equity</a></td>
<td class="nump">1,355,710,000<span></span>
</td>
<td class="nump">1,135,263,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="top.Show.showAR( this, 'defref_us-gaap_LiabilitiesAndStockholdersEquity', window );">Total liabilities and shareholders' equity</a></td>
<td class="nump">$ 1,885,935,000<span></span>
</td>
<td class="nump">$ 1,289,667,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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Carrying value as of the balance sheet date of liabilities incurred (and for which invoices have typically been received) and payable to vendors for goods and services received that are used in an entity's business. Used to reflect the current portion of the liabilities (due within one year or within the normal operating cycle if longer).</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02.19(a))<br> -URI http://asc.fasb.org/extlink&amp;oid=6877327&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AccountsPayableCurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AccountsReceivableNetCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount due from customers or clients, within one year of the balance sheet date (or the normal operating cycle, whichever is longer), for goods or services (including trade receivables) that have been delivered or sold in the normal course of business, reduced to the estimated net realizable fair value by an allowance established by the entity of the amount it deems uncertain of collection.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 606<br> -SubTopic 10<br> -Section 50<br> -Paragraph 8<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=109196051&amp;loc=SL49130549-203045<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(3))<br> -URI http://asc.fasb.org/extlink&amp;oid=6877327&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AccountsReceivableNetCurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AccruedIncomeTaxesCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Carrying amount as of the balance sheet date of the unpaid sum of the known and estimated amounts payable to satisfy all currently due domestic and foreign income tax obligations.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 944<br> -SubTopic 210<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-03(a)(15)(b)(1))<br> -URI http://asc.fasb.org/extlink&amp;oid=6879938&amp;loc=d3e572229-122910<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 942<br> -SubTopic 210<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-03(15)(1))<br> -URI http://asc.fasb.org/extlink&amp;oid=6876686&amp;loc=d3e534808-122878<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(20))<br> -URI http://asc.fasb.org/extlink&amp;oid=6877327&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AccruedIncomeTaxesCurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AccruedIncomeTaxesNoncurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Carrying amount as of the balance sheet date of the unpaid sum of the known and estimated amounts payable to satisfy all domestic and foreign income tax obligations due beyond one year or the operating cycle, whichever is longer. Alternate captions include income taxes payable, noncurrent.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 944<br> -SubTopic 210<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-03(a)(15)(b)(1))<br> -URI http://asc.fasb.org/extlink&amp;oid=6879938&amp;loc=d3e572229-122910<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 942<br> -SubTopic 210<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-03(15)(1))<br> -URI http://asc.fasb.org/extlink&amp;oid=6876686&amp;loc=d3e534808-122878<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(24))<br> -URI http://asc.fasb.org/extlink&amp;oid=6877327&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AccruedIncomeTaxesNoncurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AccruedLiabilitiesCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Carrying value as of the balance sheet date of obligations incurred and payable, pertaining to costs that are statutory in nature, are incurred on contractual obligations, or accumulate over time and for which invoices have not yet been received or will not be rendered. Examples include taxes, interest, rent and utilities. Used to reflect the current portion of the liabilities (due within one year or within the normal operating cycle if longer).</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02.20)<br> -URI http://asc.fasb.org/extlink&amp;oid=6877327&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AccruedLiabilitiesCurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Accumulated change in equity from transactions and other events and circumstances from non-owner sources, net of tax effect, at period end. Excludes Net Income (Loss), and accumulated changes in equity from transactions resulting from investments by owners and distributions to owners. Includes foreign currency translation items, certain pension adjustments, unrealized gains and losses on certain investments in debt and equity securities, other than temporary impairment (OTTI) losses related to factors other than credit losses on available-for-sale and held-to-maturity debt securities that an entity does not intend to sell and it is not more likely than not that the entity will be required to sell before recovery of the amortized cost basis, as well as changes in the fair value of derivatives related to the effective portion of a designated cash flow hedge.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section 45<br> -Paragraph 11<br> -URI http://asc.fasb.org/extlink&amp;oid=114867106&amp;loc=d3e637-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 14A<br> -URI http://asc.fasb.org/extlink&amp;oid=114867106&amp;loc=SL7669686-108580<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 14<br> -URI http://asc.fasb.org/extlink&amp;oid=114867106&amp;loc=d3e681-108580<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AdditionalPaidInCapitalCommonStock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Value received from shareholders in common stock-related transactions that are in excess of par value or stated value and amounts received from other stock-related transactions. Includes only common stock transactions (excludes preferred stock transactions). May be called contributed capital, capital in excess of par, capital surplus, or paid-in capital.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(30)(a)(1))<br> -URI http://asc.fasb.org/extlink&amp;oid=6877327&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AdditionalPaidInCapitalCommonStock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_Assets">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Sum of the carrying amounts as of the balance sheet date of all assets that are recognized. Assets are probable future economic benefits obtained or controlled by an entity as a result of past transactions or events.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 942<br> -SubTopic 210<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-03(11))<br> -URI http://asc.fasb.org/extlink&amp;oid=6876686&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 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 22<br> -URI http://asc.fasb.org/extlink&amp;oid=115929826&amp;loc=d3e8736-108599<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)(12))<br> -URI http://asc.fasb.org/extlink&amp;oid=6879938&amp;loc=d3e572229-122910<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_Assets</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AssetsCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Sum of the carrying amounts as of the balance sheet date of all assets that are expected to be realized in cash, sold, or consumed within one year (or the normal operating cycle, if longer). Assets are probable future economic benefits obtained or controlled by an entity as a result of past transactions or events.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section 45<br> -Paragraph 3<br> -URI http://asc.fasb.org/extlink&amp;oid=82887183&amp;loc=d3e6801-107765<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02.9)<br> -URI http://asc.fasb.org/extlink&amp;oid=6877327&amp;loc=d3e13212-122682<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section 45<br> -Paragraph 1<br> -URI http://asc.fasb.org/extlink&amp;oid=82887183&amp;loc=d3e6676-107765<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AssetsCurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AssetsCurrentAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AssetsCurrentAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AvailableForSaleSecuritiesDebtSecuritiesCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of 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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 320<br> -SubTopic 10<br> -Section 45<br> -Paragraph 2<br> -URI http://asc.fasb.org/extlink&amp;oid=109979856&amp;loc=d3e26626-111562<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of currency on hand as well as demand deposits with banks or financial institutions. Includes other kinds of accounts that have the general characteristics of demand deposits. Also includes short-term, highly liquid investments that are both readily convertible to known amounts of cash and so near their maturity that they present insignificant risk of changes in value because of changes in interest rates. Excludes cash and cash equivalents within disposal group and discontinued operation.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 4<br> -URI http://asc.fasb.org/extlink&amp;oid=109223946&amp;loc=d3e3044-108585<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section 45<br> -Paragraph 1<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=82887183&amp;loc=d3e6676-107765<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02.1)<br> -URI http://asc.fasb.org/extlink&amp;oid=6877327&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_CashAndCashEquivalentsAtCarryingValue</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_CommitmentsAndContingencies">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Represents the caption on the face of the balance sheet to indicate that the entity has entered into (1) purchase or supply arrangements that will require expending a portion of its resources to meet the terms thereof, and (2) is exposed to potential losses or, less frequently, gains, arising from (a) possible claims against a company's resources due to future performance under contract terms, and (b) possible losses or likely gains from uncertainties that will ultimately be resolved when one or more future events that are deemed likely to occur do occur or fail to occur.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02.25)<br> -URI http://asc.fasb.org/extlink&amp;oid=6877327&amp;loc=d3e13212-122682<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 944<br> -SubTopic 210<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-03.(a),19)<br> -URI http://asc.fasb.org/extlink&amp;oid=6879938&amp;loc=d3e572229-122910<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 942<br> -SubTopic 210<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-03.17)<br> -URI http://asc.fasb.org/extlink&amp;oid=6876686&amp;loc=d3e534808-122878<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 450<br> -SubTopic 20<br> -Section 50<br> -Paragraph 1<br> -URI http://asc.fasb.org/extlink&amp;oid=82911808&amp;loc=d3e14326-108349<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_CommitmentsAndContingencies</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_CommonStockValueOutstanding">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Value of 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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(29))<br> -URI http://asc.fasb.org/extlink&amp;oid=6877327&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of obligation to transfer good or service to customer for which consideration has been received or is receivable, classified as current.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 606<br> -SubTopic 10<br> -Section 45<br> -Paragraph 2<br> -URI http://asc.fasb.org/extlink&amp;oid=82913815&amp;loc=SL49130532-203044<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 606<br> -SubTopic 10<br> -Section 45<br> -Paragraph 1<br> -URI http://asc.fasb.org/extlink&amp;oid=82913815&amp;loc=SL49130531-203044<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 606<br> -SubTopic 10<br> -Section 50<br> -Paragraph 8<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=109196051&amp;loc=SL49130549-203045<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ContractWithCustomerLiabilityCurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DeferredIncomeTaxLiabilitiesNet">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount, after deferred tax asset, of deferred tax liability attributable to taxable differences with jurisdictional netting.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -URI http://asc.fasb.org/extlink&amp;oid=84230637&amp;loc=d3e32537-109319<br><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 45<br> -Paragraph 6<br> -URI http://asc.fasb.org/extlink&amp;oid=84176650&amp;loc=d3e31931-109318<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DeferredIncomeTaxLiabilitiesNet</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DeferredTaxAssetsNetNoncurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount after allocation of valuation allowances of deferred tax asset attributable to deductible temporary differences and carryforwards classified as noncurrent.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 45<br> -Paragraph 5<br> -URI http://asc.fasb.org/extlink&amp;oid=84176650&amp;loc=d3e31928-109318<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 45<br> -Paragraph 9<br> -URI http://asc.fasb.org/extlink&amp;oid=84176650&amp;loc=d3e31958-109318<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 45<br> -Paragraph 4<br> -URI http://asc.fasb.org/extlink&amp;oid=84176650&amp;loc=d3e31917-109318<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 45<br> -Paragraph 6<br> -URI http://asc.fasb.org/extlink&amp;oid=84176650&amp;loc=d3e31931-109318<br><br>Reference 5: 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> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=84230637&amp;loc=d3e32537-109319<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DeferredTaxAssetsNetNoncurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_Goodwill">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount after accumulated impairment loss of an asset representing future economic benefits arising from other assets acquired in a business combination that are not individually identified and separately recognized.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 350<br> -SubTopic 20<br> -Section 45<br> -Paragraph 5<br> -URI http://asc.fasb.org/extlink&amp;oid=77989000&amp;loc=SL49117168-202975<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 350<br> -SubTopic 20<br> -Section 45<br> -Paragraph 1<br> -URI http://asc.fasb.org/extlink&amp;oid=99380562&amp;loc=d3e13770-109266<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_Goodwill</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IntangibleAssetsNetExcludingGoodwill">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Sum of the carrying amounts of all intangible assets, excluding goodwill, as of the balance sheet date, net of accumulated amortization and impairment charges.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 350<br> -SubTopic 30<br> -Section 50<br> -Paragraph 2<br> -Subparagraph ((a)(1),(b))<br> -URI http://asc.fasb.org/extlink&amp;oid=66006027&amp;loc=d3e16323-109275<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 350<br> -SubTopic 30<br> -Section 45<br> -Paragraph 1<br> -URI http://asc.fasb.org/extlink&amp;oid=6388964&amp;loc=d3e16212-109274<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IntangibleAssetsNetExcludingGoodwill</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_InventoryNet">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount after valuation and LIFO reserves of inventory expected to be sold, or consumed within one year or operating cycle, if longer.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section 45<br> -Paragraph 1<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=82887183&amp;loc=d3e6676-107765<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 330<br> -SubTopic 10<br> -Section 35<br> -Paragraph 2<br> -URI http://asc.fasb.org/extlink&amp;oid=68049868&amp;loc=d3e3927-108312<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02.6(a))<br> -URI http://asc.fasb.org/extlink&amp;oid=6877327&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_InventoryNet</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_Liabilities">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Sum of the carrying amounts as of the balance sheet date of all liabilities that are recognized. Liabilities are probable future sacrifices of economic benefits arising from present obligations of an entity to transfer assets or provide services to other entities in the future.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02.19-26)<br> -URI http://asc.fasb.org/extlink&amp;oid=6877327&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_Liabilities</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LiabilitiesAndStockholdersEquity">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of liabilities and equity items, including the portion of equity attributable to noncontrolling interests, if any.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 942<br> -SubTopic 210<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-03(23))<br> -URI http://asc.fasb.org/extlink&amp;oid=6876686&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)(25))<br> -URI http://asc.fasb.org/extlink&amp;oid=6879938&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(32))<br> -URI http://asc.fasb.org/extlink&amp;oid=6877327&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LiabilitiesAndStockholdersEquity</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LiabilitiesCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Total obligations incurred as part of normal operations that are expected to be paid during the following twelve months or within one business cycle, if longer.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02.21)<br> -URI http://asc.fasb.org/extlink&amp;oid=6877327&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LiabilitiesCurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LiabilitiesCurrentAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LiabilitiesCurrentAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LiabilityForUncertainTaxPositionsNoncurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount recognized for uncertainty in income taxes classified as noncurrent.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02.24)<br> -URI http://asc.fasb.org/extlink&amp;oid=6877327&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LiabilityForUncertainTaxPositionsNoncurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LongTermInvestments">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The total amount of 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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02.12)<br> -URI http://asc.fasb.org/extlink&amp;oid=6877327&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Present value of lessee's discounted obligation for lease payments from operating lease, classified as current.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 842<br> -SubTopic 20<br> -Section 45<br> -Paragraph 1<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=77888419&amp;loc=SL77918627-209977<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OperatingLeaseLiabilityCurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_OperatingLeaseLiabilityNoncurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Present value of lessee's discounted obligation for lease payments from operating lease, classified as noncurrent.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 842<br> -SubTopic 20<br> -Section 45<br> -Paragraph 1<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=77888419&amp;loc=SL77918627-209977<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OperatingLeaseLiabilityNoncurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_OperatingLeaseRightOfUseAsset">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of lessee's right to use underlying asset under operating lease.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 842<br> -SubTopic 20<br> -Section 45<br> -Paragraph 1<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=77888419&amp;loc=SL77918627-209977<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OperatingLeaseRightOfUseAsset</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_OtherAssetsNoncurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of noncurrent assets classified as other.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02.17)<br> -URI http://asc.fasb.org/extlink&amp;oid=6877327&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OtherAssetsNoncurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_OtherLiabilitiesNoncurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of liabilities classified as other, due after one year or the normal operating cycle, if longer.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02.24)<br> -URI http://asc.fasb.org/extlink&amp;oid=6877327&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_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_PreferredStockValueOutstanding">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Value of 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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(28))<br> -URI http://asc.fasb.org/extlink&amp;oid=6877327&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of asset related to consideration paid in advance for costs that provide economic benefits in future periods, and amount of other assets that are expected to be realized or consumed within one year or the normal operating cycle, if longer.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(7))<br> -URI http://asc.fasb.org/extlink&amp;oid=6877327&amp;loc=d3e13212-122682<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section 45<br> -Paragraph 1<br> -URI http://asc.fasb.org/extlink&amp;oid=82887183&amp;loc=d3e6676-107765<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(8))<br> -URI http://asc.fasb.org/extlink&amp;oid=6877327&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PrepaidExpenseAndOtherAssetsCurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PropertyPlantAndEquipmentNet">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount after accumulated depreciation, depletion and amortization of physical assets used in the normal conduct of business to produce goods and services and not intended for resale. Examples include, but are not limited to, land, buildings, machinery and equipment, office equipment, and furniture and fixtures.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(14))<br> -URI http://asc.fasb.org/extlink&amp;oid=6877327&amp;loc=d3e13212-122682<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 360<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -URI http://asc.fasb.org/extlink&amp;oid=6391035&amp;loc=d3e2868-110229<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 944<br> -SubTopic 210<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-03(a)(8))<br> -URI http://asc.fasb.org/extlink&amp;oid=6879938&amp;loc=d3e572229-122910<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(13))<br> -URI http://asc.fasb.org/extlink&amp;oid=6877327&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PropertyPlantAndEquipmentNet</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_RetainedEarningsAccumulatedDeficit">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The cumulative amount of the reporting entity's undistributed earnings or deficit.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(30)(a)(3))<br> -URI http://asc.fasb.org/extlink&amp;oid=6877327&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)(23)(a)(4))<br> -URI http://asc.fasb.org/extlink&amp;oid=6879938&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 505<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.3-04)<br> -URI http://asc.fasb.org/extlink&amp;oid=27012166&amp;loc=d3e187085-122770<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_RetainedEarningsAccumulatedDeficit</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_StockholdersEquity">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Total of all stockholders' equity (deficit) items, net of receivables from officers, directors, owners, and affiliates of the entity which are attributable to the parent. The amount of the economic entity's stockholders' equity attributable to the parent excludes the amount of stockholders' equity which is allocable to that ownership interest in subsidiary equity which is not attributable to the parent (noncontrolling interest, minority interest). This excludes temporary equity and is sometimes called permanent equity.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 310<br> -SubTopic 10<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SAB Topic 4.E)<br> -URI http://asc.fasb.org/extlink&amp;oid=27010918&amp;loc=d3e74512-122707<br><br>Reference 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(31))<br> -URI http://asc.fasb.org/extlink&amp;oid=6877327&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(29))<br> -URI http://asc.fasb.org/extlink&amp;oid=6877327&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(30))<br> -URI http://asc.fasb.org/extlink&amp;oid=6877327&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_StockholdersEquity</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_StockholdersEquityAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_StockholdersEquityAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_UnbilledReceivablesCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount received for services rendered and products shipped, but not yet billed, for non-contractual agreements due within one year or the normal operating cycle, if longer.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_UnbilledReceivablesCurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>115
<FILENAME>R2.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.19.3.a.u2</span><table class="report" border="0" cellspacing="2" id="idp6887894896">
<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, 2019</div></th>
<th class="th"><div>Dec. 31, 2018</div></th>
<th class="th"><div>Dec. 31, 2017</div></th>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_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="top.Show.showAR( this, 'defref_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax', window );">Revenue</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="nump">$ 725,625<span></span>
</td>
<td class="nump">$ 806,338<span></span>
</td>
<td class="nump">$ 766,083<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_CostOfGoodsAndServicesSold', window );">Cost of revenue</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="nump">189,754<span></span>
</td>
<td class="nump">206,052<span></span>
</td>
<td class="nump">187,289<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_GrossProfit', window );">Gross margin</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="nump">535,871<span></span>
</td>
<td class="nump">600,286<span></span>
</td>
<td class="nump">578,794<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ResearchAndDevelopmentExpense', window );">Research, development, and engineering expenses</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="nump">119,427<span></span>
</td>
<td class="nump">116,445<span></span>
</td>
<td class="nump">99,205<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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">273,842<span></span>
</td>
<td class="nump">262,699<span></span>
</td>
<td class="nump">220,728<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_OperatingIncomeLoss', window );">Operating income</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="nump">142,602<span></span>
</td>
<td class="nump">221,142<span></span>
</td>
<td class="nump">258,861<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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">(509)<span></span>
</td>
<td class="num">(1,064)<span></span>
</td>
<td class="num">(1,601)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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">19,689<span></span>
</td>
<td class="nump">14,715<span></span>
</td>
<td class="nump">9,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="top.Show.showAR( this, 'defref_us-gaap_OtherNonoperatingIncomeExpense', window );">Other income (expense)</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="nump">1,212<span></span>
</td>
<td class="num">(219)<span></span>
</td>
<td class="num">(338)<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments', window );">Income before income tax expense</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="nump">162,994<span></span>
</td>
<td class="nump">234,574<span></span>
</td>
<td class="nump">266,464<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_IncomeTaxExpenseBenefit', window );">Income tax expense on continuing operations</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="num">(40,871)<span></span>
</td>
<td class="nump">15,307<span></span>
</td>
<td class="nump">89,752<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_NetIncomeLoss', window );">Net income</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="nump">$ 203,865<span></span>
</td>
<td class="nump">$ 219,267<span></span>
</td>
<td class="nump">$ 176,712<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_EarningsPerShareBasicAbstract', window );"><strong>Net Income 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="reu">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_EarningsPerShareBasic', window );">Net income (in dollars per share)</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="nump">$ 1.19<span></span>
</td>
<td class="nump">$ 1.27<span></span>
</td>
<td class="nump">$ 1.02<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_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="reu">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_EarningsPerShareDiluted', window );">Net income (in dollars per share)</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="nump">$ 1.16<span></span>
</td>
<td class="nump">$ 1.24<span></span>
</td>
<td class="nump">$ 0.98<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_WeightedAverageNumberOfSharesOutstandingAbstract', window );"><strong>Weighted-average common and common-equivalent shares outstanding (1):</strong></a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_WeightedAverageNumberOfSharesOutstandingBasic', window );">Basic (in shares)</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="nump">171,194<span></span>
</td>
<td class="nump">172,333<span></span>
</td>
<td class="nump">173,287<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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">175,269<span></span>
</td>
<td class="nump">177,406<span></span>
</td>
<td class="nump">179,551<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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.2050<span></span>
</td>
<td class="nump">$ 0.1850<span></span>
</td>
<td class="nump">$ 0.1675<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">Prior period results have been adjusted to reflect the two-for-one stock split effected in the form of a stock dividend which occurred in the fourth quarter of 2017.2</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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Aggregate dividends paid during the period for each share of common stock outstanding.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 505<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.3-04)<br> -URI http://asc.fasb.org/extlink&amp;oid=27012166&amp;loc=d3e187085-122770<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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>num:perShareItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_CostOfGoodsAndServicesSold">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The aggregate costs related to goods produced and sold and services rendered by an entity during the reporting period. This excludes costs incurred during the reporting period related to financial services rendered and other revenue generating activities.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03.2(a),(d))<br> -URI http://asc.fasb.org/extlink&amp;oid=115205541&amp;loc=SL114868664-224227<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_CostOfGoodsAndServicesSold</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_EarningsPerShareBasic">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The amount of net income (loss) for the period per each share of common stock or unit outstanding during the reporting period.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 944<br> -SubTopic 220<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-04(19))<br> -URI http://asc.fasb.org/extlink&amp;oid=114873790&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 260<br> -SubTopic 10<br> -Section 45<br> -Paragraph 7<br> -URI http://asc.fasb.org/extlink&amp;oid=109260490&amp;loc=d3e1337-109256<br><br>Reference 3: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 55<br> -Paragraph 52<br> -URI http://asc.fasb.org/extlink&amp;oid=109256448&amp;loc=d3e4984-109258<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03(21))<br> -URI http://asc.fasb.org/extlink&amp;oid=115205541&amp;loc=SL114868664-224227<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> -URI http://asc.fasb.org/extlink&amp;oid=109234566&amp;loc=d3e22694-107794<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=6371337&amp;loc=d3e3550-109257<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 2<br> -URI http://asc.fasb.org/extlink&amp;oid=109260490&amp;loc=d3e1252-109256<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 942<br> -SubTopic 220<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-04(23))<br> -URI http://asc.fasb.org/extlink&amp;oid=114873765&amp;loc=SL114874048-224260<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 45<br> -Paragraph 60B<br> -Subparagraph (d)<br> -URI http://asc.fasb.org/extlink&amp;oid=109260490&amp;loc=SL5780133-109256<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_EarningsPerShareBasic</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>num:perShareItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_EarningsPerShareBasicAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The amount of net income (loss) for the period available to each share of common stock or common unit outstanding during the reporting period and to each share or unit that would have been outstanding assuming the issuance of common shares or units for all dilutive potential common shares or units outstanding during the reporting period.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 55<br> -Paragraph 52<br> -URI http://asc.fasb.org/extlink&amp;oid=109256448&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 260<br> -SubTopic 10<br> -Section 45<br> -Paragraph 2<br> -URI http://asc.fasb.org/extlink&amp;oid=109260490&amp;loc=d3e1252-109256<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 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=6371337&amp;loc=d3e3550-109257<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(23))<br> -URI http://asc.fasb.org/extlink&amp;oid=114873765&amp;loc=SL114874048-224260<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 11<br> -URI http://asc.fasb.org/extlink&amp;oid=109234566&amp;loc=d3e22694-107794<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 45<br> -Paragraph 7<br> -URI http://asc.fasb.org/extlink&amp;oid=109260490&amp;loc=d3e1337-109256<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03(21))<br> -URI http://asc.fasb.org/extlink&amp;oid=115205541&amp;loc=SL114868664-224227<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 45<br> -Paragraph 60B<br> -Subparagraph (d)<br> -URI http://asc.fasb.org/extlink&amp;oid=109260490&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 944<br> -SubTopic 220<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-04(19))<br> -URI http://asc.fasb.org/extlink&amp;oid=114873790&amp;loc=SL114874131-224263<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_EarningsPerShareDiluted</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>num:perShareItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_EarningsPerShareDilutedAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount before tax of foreign currency transaction realized and unrealized gain (loss) recognized in the income statement.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 830<br> -SubTopic 20<br> -Section 50<br> -Paragraph 1<br> -URI http://asc.fasb.org/extlink&amp;oid=6450222&amp;loc=d3e30840-110895<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 830<br> -SubTopic 20<br> -Section 45<br> -Paragraph 2<br> -URI http://asc.fasb.org/extlink&amp;oid=109240200&amp;loc=d3e30700-110894<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 830<br> -SubTopic 20<br> -Section 45<br> -Paragraph 1<br> -URI http://asc.fasb.org/extlink&amp;oid=109240200&amp;loc=d3e30690-110894<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Aggregate revenue less cost of goods and services sold or operating expenses directly attributable to the revenue generation activity.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03.1,2)<br> -URI http://asc.fasb.org/extlink&amp;oid=115205541&amp;loc=SL114868664-224227<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_GrossProfit</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of income (loss) from continuing operations before deduction of income tax expense (benefit) and income (loss) attributable to noncontrolling interest, and addition of income (loss) from equity method investments.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 235<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08.(h)(1)(i))<br> -URI http://asc.fasb.org/extlink&amp;oid=26873400&amp;loc=d3e23780-122690<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncomeStatementAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of current income tax expense (benefit) and deferred income tax expense (benefit) pertaining to continuing operations.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 22<br> -Subparagraph (h)<br> -URI http://asc.fasb.org/extlink&amp;oid=115929826&amp;loc=d3e8736-108599<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))<br> -URI http://asc.fasb.org/extlink&amp;oid=26873400&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 20<br> -Section 45<br> -Paragraph 2<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=109238882&amp;loc=d3e38679-109324<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The aggregate 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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03.7)<br> -URI http://asc.fasb.org/extlink&amp;oid=115205541&amp;loc=SL114868664-224227<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_InvestmentIncomeNonoperating</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_NetIncomeLoss">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The portion of profit or loss for the period, net of income taxes, which is attributable to the parent.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section 45<br> -Paragraph 1A<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=114867106&amp;loc=SL7669619-108580<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 942<br> -SubTopic 220<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-04(22))<br> -URI http://asc.fasb.org/extlink&amp;oid=114873765&amp;loc=SL114874048-224260<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 1B<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=114867106&amp;loc=SL7669625-108580<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 http://asc.fasb.org/extlink&amp;oid=114873790&amp;loc=SL114874131-224263<br><br>Reference 5: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03(20))<br> -URI http://asc.fasb.org/extlink&amp;oid=115205541&amp;loc=SL114868664-224227<br><br>Reference 6: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 28<br> -URI http://asc.fasb.org/extlink&amp;oid=109223946&amp;loc=d3e3602-108585<br><br>Reference 7: 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 http://asc.fasb.org/extlink&amp;oid=6371337&amp;loc=d3e3550-109257<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The net result for the period of deducting operating expenses from operating revenues.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of income (expense) related to nonoperating activities, classified as other.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03.9)<br> -URI http://asc.fasb.org/extlink&amp;oid=115205541&amp;loc=SL114868664-224227<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The aggregate costs incurred (1) in a planned search or critical investigation aimed at discovery of new knowledge with the hope that such knowledge will be useful in developing a new product or service, a new process or technique, or in bringing about a significant improvement to an existing product or process; or (2) to translate research findings or other knowledge into a plan or design for a new product or process or for a significant improvement to an existing product or process whether intended for sale or the entity's use, during the reporting period charged to research and development projects, including the costs of developing computer software up to the point in time of achieving technological feasibility, and costs allocated in accounting for a business combination to in-process projects deemed to have no alternative future use.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 985<br> -SubTopic 20<br> -Section 50<br> -Paragraph 1<br> -URI http://asc.fasb.org/extlink&amp;oid=6501960&amp;loc=d3e128462-111756<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 730<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -URI http://asc.fasb.org/extlink&amp;oid=6420194&amp;loc=d3e21568-108373<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ResearchAndDevelopmentExpense</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount, 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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 606<br> -SubTopic 10<br> -Section 50<br> -Paragraph 4<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=109196051&amp;loc=SL49130543-203045<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 606<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=109196051&amp;loc=SL49130539-203045<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 606<br> -SubTopic 10<br> -Section 50<br> -Paragraph 5<br> -URI http://asc.fasb.org/extlink&amp;oid=109196051&amp;loc=SL49130545-203045<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The aggregate total 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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 330<br> -SubTopic 10<br> -Section 30<br> -Paragraph 8<br> -URI http://asc.fasb.org/extlink&amp;oid=68048583&amp;loc=d3e3636-108311<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.4)<br> -URI http://asc.fasb.org/extlink&amp;oid=115205541&amp;loc=SL114868664-224227<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The average number of shares or units issued and outstanding that are used in calculating diluted EPS or earnings per unit (EPU), determined based on the timing of issuance of shares or units in the period.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://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 (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=6371337&amp;loc=d3e3550-109257<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 45<br> -Paragraph 16<br> -URI http://asc.fasb.org/extlink&amp;oid=109260490&amp;loc=d3e1505-109256<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_WeightedAverageNumberOfSharesOutstandingAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_WeightedAverageNumberOfSharesOutstandingAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_WeightedAverageNumberOfSharesOutstandingBasic">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Number of [basic] shares or units, after adjustment for contingently issuable shares or units and other shares or units not deemed outstanding, determined by relating the portion of time within a reporting period that common shares or units have been outstanding to the total time in that period.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 45<br> -Paragraph 10<br> -URI http://asc.fasb.org/extlink&amp;oid=109260490&amp;loc=d3e1448-109256<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 1<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=6371337&amp;loc=d3e3550-109257<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_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>116
<FILENAME>R112.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.19.3.a.u2</span><table class="report" border="0" cellspacing="2" id="idp6890293296">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>Acquisitions - ViDi Systems S.A. Purchase Price Allocation (Details) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th"><div>Dec. 31, 2019</div></th>
<th class="th"><div>Dec. 31, 2018</div></th>
<th class="th"><div>Dec. 31, 2017</div></th>
<th class="th"><div>Apr. 04, 2017</div></th>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionLineItems', window );"><strong>Business Acquisition [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_Goodwill', window );">Goodwill</a></td>
<td class="nump">$ 243,445<span></span>
</td>
<td class="nump">$ 113,208<span></span>
</td>
<td class="nump">$ 113,208<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionAxis=cgnx_ViDiSystemsS.A.Member', window );">ViDi Systems S.A. [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="top.Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionLineItems', window );"><strong>Business Acquisition [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCashAndEquivalents', window );">Cash</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 146<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsReceivables', window );">Accounts receivable</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">425<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsPrepaidExpenseAndOtherAssets', window );">Prepaid expenses and other current 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="nump">129<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment', window );">Property, plant, and equipment</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">40<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxAssets', window );">Deferred income tax asset</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">620<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccountsPayable', window );">Accounts payable</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="num">(98)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_cgnx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredandLiabilitiesAssumedCurrentLiabilitiesAccruedExpenses', window );">Accrued expenses</a></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">(716)<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxLiabilities', window );">Deferred income tax liability</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="num">(1,008)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_Goodwill', window );">Goodwill</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">18,333<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet', window );">Purchase price</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">23,015<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_NoncompeteAgreementsMember', window );">Non-compete agreements | ViDi Systems S.A. [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="top.Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionLineItems', window );"><strong>Business Acquisition [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles', window );">Finite-lived intangible assets</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">370<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_TechnologyBasedIntangibleAssetsMember', window );">Technology-Based Intangible Assets [Member] | ViDi Systems S.A. [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionLineItems', window );"><strong>Business Acquisition [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles', window );">Finite-lived intangible assets</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 4,774<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_cgnx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredandLiabilitiesAssumedCurrentLiabilitiesAccruedExpenses">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Business Combination, Recognized Identifiable Assets Acquired and Liabilities Assumed, Current Liabilities, Accrued Expenses</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cgnx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredandLiabilitiesAssumedCurrentLiabilitiesAccruedExpenses</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cgnx_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_BusinessAcquisitionLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_BusinessAcquisitionLineItems</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCashAndEquivalents">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of currency on hand as well as demand deposits with banks or financial institutions, acquired at the acquisition date. Includes other kinds of accounts that have the general characteristics of demand deposits. Also includes short-term, highly liquid investments that are both readily convertible to known amounts of cash and so near their maturity that they present insignificant risk of changes in value because of changes in interest rates.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 805<br> -SubTopic 20<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (c)<br> -URI http://asc.fasb.org/extlink&amp;oid=84161108&amp;loc=d3e4845-128472<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCashAndEquivalents</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsPrepaidExpenseAndOtherAssets">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of asset related to consideration paid in advance for costs that provide economic benefits in future periods, and amount of other assets that are expected to be realized or consumed within one year or the normal operating cycle, if longer, acquired at the acquisition date.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 805<br> -SubTopic 20<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (c)<br> -URI http://asc.fasb.org/extlink&amp;oid=84161108&amp;loc=d3e4845-128472<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsPrepaidExpenseAndOtherAssets</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsReceivables">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount due from customers or clients for goods or services, including trade receivables, that have been delivered or sold in the normal course of business, and amounts due from others, including related parties expected to be converted to cash, sold or exchanged within one year or the normal operating cycle, if longer, acquired at the acquisition date.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 805<br> -SubTopic 20<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (c)<br> -URI http://asc.fasb.org/extlink&amp;oid=84161108&amp;loc=d3e4845-128472<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsReceivables</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccountsPayable">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of liabilities incurred for goods and services received that are used in an entity's business and related party payables, assumed at the acquisition date.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 805<br> -SubTopic 20<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (c)<br> -URI http://asc.fasb.org/extlink&amp;oid=84161108&amp;loc=d3e4845-128472<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccountsPayable</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxAssets">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of deferred tax asset attributable to deductible temporary differences and carryforwards acquired at the acquisition date.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 805<br> -SubTopic 20<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (c)<br> -URI http://asc.fasb.org/extlink&amp;oid=84161108&amp;loc=d3e4845-128472<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 45<br> -Paragraph 4<br> -URI http://asc.fasb.org/extlink&amp;oid=84176650&amp;loc=d3e31917-109318<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxAssets</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxLiabilities">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of deferred tax liability attributable to taxable temporary differences assumed at the acquisition date.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 45<br> -Paragraph 4<br> -URI http://asc.fasb.org/extlink&amp;oid=84176650&amp;loc=d3e31917-109318<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 805<br> -SubTopic 20<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (c)<br> -URI http://asc.fasb.org/extlink&amp;oid=84161108&amp;loc=d3e4845-128472<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxLiabilities</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The amount of identifiable intangible assets recognized as of the acquisition date.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 805<br> -SubTopic 10<br> -Section 55<br> -Paragraph 37<br> -URI http://asc.fasb.org/extlink&amp;oid=108330185&amp;loc=d3e2207-128464<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 805<br> -SubTopic 20<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (c)<br> -URI http://asc.fasb.org/extlink&amp;oid=84161108&amp;loc=d3e4845-128472<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The amount of property, plant, and equipment recognized as of the acquisition date.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 805<br> -SubTopic 10<br> -Section 55<br> -Paragraph 37<br> -URI http://asc.fasb.org/extlink&amp;oid=108330185&amp;loc=d3e2207-128464<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 805<br> -SubTopic 20<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (c)<br> -URI http://asc.fasb.org/extlink&amp;oid=84161108&amp;loc=d3e4845-128472<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount recognized for assets, including goodwill, in excess of (less than) the aggregate liabilities assumed.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 805<br> -SubTopic 20<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (c)<br> -URI http://asc.fasb.org/extlink&amp;oid=84161108&amp;loc=d3e4845-128472<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_Goodwill">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount after accumulated impairment loss of an asset representing future economic benefits arising from other assets acquired in a business combination that are not individually identified and separately recognized.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 350<br> -SubTopic 20<br> -Section 45<br> -Paragraph 5<br> -URI http://asc.fasb.org/extlink&amp;oid=77989000&amp;loc=SL49117168-202975<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 350<br> -SubTopic 20<br> -Section 45<br> -Paragraph 1<br> -URI http://asc.fasb.org/extlink&amp;oid=99380562&amp;loc=d3e13770-109266<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_Goodwill</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_BusinessAcquisitionAxis=cgnx_ViDiSystemsS.A.Member">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_BusinessAcquisitionAxis=cgnx_ViDiSystemsS.A.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_FiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_NoncompeteAgreementsMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_NoncompeteAgreementsMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_TechnologyBasedIntangibleAssetsMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_TechnologyBasedIntangibleAssetsMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><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>R26.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.19.3.a.u2</span><table class="report" border="0" cellspacing="2" id="idp6658555904">
<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, 2019</div></th></tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract', window );"><strong>Disclosure of Compensation Related Costs, Share-based Payments [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock', window );">Stock-Based Compensation</a></td>
<td class="text">Stock-Based Compensation<div style="line-height:120%;padding-top:6px;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;text-decoration:underline;">Stock Plans</span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">The Company&#8217;s stock-based awards that result in compensation expense consist of stock options and restricted stock units (RSUs).  As of December&#160;31, </span><span style="font-family:Arial;font-size:10pt;">2019</span><span style="font-family:Arial;font-size:10pt;">, the Company had </span><span style="font-family:Arial;font-size:10pt;"><span>17,300,802</span></span><span style="font-family:Arial;font-size:10pt;"> shares available for grant.  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><span style="font-family:Arial;font-size:10pt;">four</span><span style="font-family:Arial;font-size:10pt;"> or </span><span style="font-family:Arial;font-size:10pt;"><span>five years</span></span><span style="font-family:Arial;font-size:10pt;"> based upon continuous employment and expire </span><span style="font-family:Arial;font-size:10pt;"><span>ten years</span></span><span style="font-family:Arial;font-size:10pt;"> from the grant date.  RSUs generally vest upon </span><span style="font-family:Arial;font-size:10pt;"><span>three years</span></span><span style="font-family:Arial;font-size:10pt;"> of continuous employment or incrementally over such </span><span style="font-family:Arial;font-size:10pt;">three</span><span style="font-family:Arial;font-size:10pt;">-year period.  Participants are not entitled to dividends on RSUs.</span></div><div style="line-height:120%;padding-top:6px;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;text-decoration:underline;">Stock Options</span></div><div style="line-height:120%;padding-top:6px;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">The following table summarizes the Company&#8217;s stock option activity:</span></div><div style="line-height:120%;padding-bottom:6px;font-size:10pt;"><div style="padding-left:0px;text-indent:0px;line-height:normal;padding-top:10px;"><table cellpadding="0" cellspacing="0" style="font-family:Times New Roman;font-size:10pt;width:99.80506822612085%;border-collapse:collapse;text-align:left;"><tr><td colspan="13"/></tr><tr><td style="width:45%;"/><td style="width:12%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:11%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:13%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:11%;"/><td style="width:1%;"/></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;">Shares</span></div><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;">(in&#160;thousands)</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;">Weighted-</span></div><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;">Average</span></div><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;">Exercise</span></div><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;">Price</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;">Weighted-</span></div><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;">Average</span></div><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;">Remaining</span></div><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;">Contractual</span></div><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;">Term</span></div><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;">(in&#160;years)</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;">Aggregate</span></div><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;">Intrinsic Value</span></div><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;">(in&#160;thousands)</span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Outstanding as of December 31, 2018</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>13,789</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>31.73</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td></tr><tr><td style="vertical-align:top;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Granted</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>2,990</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>51.25</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Exercised</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>(3,018</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">)</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>21.40</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td></tr><tr><td style="vertical-align:top;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Forfeited or expired</span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>(862</span></span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">)</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>42.53</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Outstanding as of December 31, 2019</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>12,899</span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>37.95</span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>7.14</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>236,318</span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Exercisable as of December 31, 2019</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>4,775</span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>26.67</span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;border-top:3px double #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>5.61</span></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>141,277</span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Options vested or expected to vest as of&#160;<br/>&#160;December 31, 2019 (1)</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>11,724</span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>36.84</span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>7.00</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>227,779</span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr></table></div></div><div style="line-height:120%;padding-left:4px;padding-top:12px;text-align:left;padding-left:48px;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">(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="line-height:120%;padding-top:6px;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">The fair values of stock options granted in each period presented were estimated using the following weighted-average assumptions:</span></div><div style="line-height:120%;font-size:10pt;"><div style="padding-left:0px;text-indent:0px;line-height:normal;padding-top:10px;"><table cellpadding="0" cellspacing="0" style="font-family:Times New Roman;font-size:10pt;width:99.80506822612085%;border-collapse:collapse;text-align:left;"><tr><td colspan="9"/></tr><tr><td style="width:56%;"/><td style="width:13%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:13%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:13%;"/><td style="width:1%;"/></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;color:#ee2724;">&#160;</span></div></td><td colspan="8" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;">Year&#160;Ended&#160;December&#160;31,</span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;color:#ee2724;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;">2019</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">2018</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">2017</span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Risk-free rate</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>2.7</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">%</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>2.9</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">%</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>2.4</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">%</span></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Expected dividend yield</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>0.39</span></span></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">%</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>0.35</span></span></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">%</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>0.40</span></span></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">%</span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Expected volatility</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>37</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">%</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>39</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">%</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>41</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">%</span></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Expected term (in years)</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>5.3</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>5.4</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>5.4</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr></table></div><span style="font-family:inherit;font-size:10pt;"><br/></span></div><div style="line-height:120%;padding-top:12px;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;text-decoration:underline;">Risk-free rate</span></div><div style="line-height:120%;padding-top:6px;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">The risk-free rate was based upon a treasury instrument whose term was consistent with the contractual term of the option.</span></div><div style="line-height:120%;padding-top:12px;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;text-decoration:underline;">Expected dividend yield</span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">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="line-height:120%;padding-top:12px;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;text-decoration:underline;">Expected volatility</span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">The expected volatility was based upon 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="line-height:120%;padding-top:12px;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;text-decoration:underline;">Expected term</span></div><div style="line-height:120%;padding-top:6px;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">The expected term was derived from the binomial lattice model from the impact of events that trigger exercises over time.</span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">The weighted-average grant-date fair value of stock options granted was </span><span style="font-family:Arial;font-size:10pt;"><span>$18.62</span></span><span style="font-family:Arial;font-size:10pt;"> in </span><span style="font-family:Arial;font-size:10pt;">2019</span><span style="font-family:Arial;font-size:10pt;">, </span><span style="font-family:Arial;font-size:10pt;"><span>$20.84</span></span><span style="font-family:Arial;font-size:10pt;"> in </span><span style="font-family:Arial;font-size:10pt;">2018</span><span style="font-family:Arial;font-size:10pt;">, and </span><span style="font-family:Arial;font-size:10pt;"><span>$15.59</span></span><span style="font-family:Arial;font-size:10pt;"> in </span><span style="font-family:Arial;font-size:10pt;">2017</span><span style="font-family:Arial;font-size:10pt;">.</span></div><div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">The total intrinsic value of stock options exercised was </span><span style="font-family:Arial;font-size:10pt;"><span>$90,762,000</span></span><span style="font-family:Arial;font-size:10pt;"> in </span><span style="font-family:Arial;font-size:10pt;">2019</span><span style="font-family:Arial;font-size:10pt;">, </span><span style="font-family:Arial;font-size:10pt;"><span>$52,629,000</span></span><span style="font-family:Arial;font-size:10pt;"> in </span><span style="font-family:Arial;font-size:10pt;">2018</span><span style="font-family:Arial;font-size:10pt;">, and </span><span style="font-family:Arial;font-size:10pt;"><span>$136,672,000</span></span><span style="font-family:Arial;font-size:10pt;"> in </span><span style="font-family:Arial;font-size:10pt;">2017</span><span style="font-family:Arial;font-size:10pt;">. The total fair value of stock options vested was </span><span style="font-family:Arial;font-size:10pt;"><span>$38,974,000</span></span><span style="font-family:Arial;font-size:10pt;"> in </span><span style="font-family:Arial;font-size:10pt;">2019</span><span style="font-family:Arial;font-size:10pt;">, </span><span style="font-family:Arial;font-size:10pt;"><span>$31,106,000</span></span><span style="font-family:Arial;font-size:10pt;"> in </span><span style="font-family:Arial;font-size:10pt;">2018</span><span style="font-family:Arial;font-size:10pt;">, and </span><span style="font-family:Arial;font-size:10pt;"><span>$21,519,000</span></span><span style="font-family:Arial;font-size:10pt;"> in </span><span style="font-family:Arial;font-size:10pt;">2017</span><span style="font-family:Arial;font-size:10pt;">.</span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;text-decoration:underline;">Restricted Stock Units (RSUs)</span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">The following tables summarizes the Company's RSU activity:</span></div><div style="line-height:120%;padding-top:6px;text-align:center;font-size:10pt;"><div style="padding-left:0px;text-indent:0px;line-height:normal;padding-top:10px;"><table cellpadding="0" cellspacing="0" style="font-family:Times New Roman;font-size:10pt;margin-left:auto;margin-right:auto;width:100%;border-collapse:collapse;text-align:left;"><tr><td colspan="7"/></tr><tr><td style="width:63%;"/><td style="width:14%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:19%;"/><td style="width:1%;"/></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">Shares</span></div><div style="text-align:center;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">(in&#160;thousands)</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">Weighted-</span></div><div style="text-align:center;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">Average</span></div><div style="text-align:center;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">Grant Date Fair Value</span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Nonvested as of December 31, 2018</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>&#8212;</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>&#8212;</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Granted</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>151</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>48.61</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Vested</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>&#8212;</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>&#8212;</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Forfeited or expired</span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>(1</span></span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">)</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>45.20</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Nonvested as of December 31, 2019</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>150</span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>48.63</span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr></table></div><span style="font-family:inherit;font-size:10pt;"><br/></span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;text-decoration:underline;">Stock-Based Compensation Expense</span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">The Company stratifies its employee population into </span><span style="font-family:Arial;font-size:10pt;"><span>two</span></span><span style="font-family:Arial;font-size:10pt;"> groups: one consisting of senior management and another consisting of all other employees.  The Company currently applies an estimated forfeiture rate of </span><span style="font-family:Arial;font-size:10pt;"><span>9%</span></span><span style="font-family:Arial;font-size:10pt;"> to all unvested options for senior management and a rate of </span><span style="font-family:Arial;font-size:10pt;"><span>12%</span></span><span style="font-family:Arial;font-size:10pt;"> for all other employees.  Each year during the first quarter, the Company revises its forfeiture rate.  This resulted in a decrease to compensation expense of </span><span style="font-family:Arial;font-size:10pt;"><span>$499,000</span></span><span style="font-family:Arial;font-size:10pt;"> in 2019, an increase to compensation expense of </span><span style="font-family:Arial;font-size:10pt;"><span>$1,283,000</span></span><span style="font-family:Arial;font-size:10pt;"> in </span><span style="font-family:Arial;font-size:10pt;">2018</span><span style="font-family:Arial;font-size:10pt;">, and a decrease to compensation expense of </span><span style="font-family:Arial;font-size:10pt;"><span>$673,000</span></span><span style="font-family:Arial;font-size:10pt;"> in </span><span style="font-family:Arial;font-size:10pt;">2017</span><span style="font-family:Arial;font-size:10pt;">.</span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">As of December&#160;31, </span><span style="font-family:Arial;font-size:10pt;">2019</span><span style="font-family:Arial;font-size:10pt;">, total unrecognized compensation expense related to non-vested stock-based awards, including stock options and RSUs, was </span><span style="font-family:Arial;font-size:10pt;"><span>$53,491,000</span></span><span style="font-family:Arial;font-size:10pt;">, which is expected to be recognized over a weighted-average period of </span><span style="font-family:Arial;font-size:10pt;"><span>1.66</span></span><span style="font-family:Arial;font-size:10pt;"> years.</span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">The total stock-based compensation expense and the related income tax benefit recognized was </span><span style="font-family:Arial;font-size:10pt;"><span>$45,589,000</span></span><span style="font-family:Arial;font-size:10pt;"> and </span><span style="font-family:Arial;font-size:10pt;"><span>$7,756,000</span></span><span style="font-family:Arial;font-size:10pt;">, respectively, in </span><span style="font-family:Arial;font-size:10pt;">2019</span><span style="font-family:Arial;font-size:10pt;">, </span><span style="font-family:Arial;font-size:10pt;"><span>$41,090,000</span></span><span style="font-family:Arial;font-size:10pt;"> and </span><span style="font-family:Arial;font-size:10pt;"><span>$7,317,000</span></span><span style="font-family:Arial;font-size:10pt;">, respectively, in </span><span style="font-family:Arial;font-size:10pt;">2018</span><span style="font-family:Arial;font-size:10pt;">, and </span><span style="font-family:Arial;font-size:10pt;"><span>$31,942,000</span></span><span style="font-family:Arial;font-size:10pt;"> and </span><span style="font-family:Arial;font-size:10pt;"><span>$10,473,000</span></span><span style="font-family:Arial;font-size:10pt;">, respectively, in </span><span style="font-family:Arial;font-size:10pt;">2017</span><span style="font-family:Arial;font-size:10pt;">.  No compensation expense was capitalized in </span><span style="font-family:Arial;font-size:10pt;">2019</span><span style="font-family:Arial;font-size:10pt;">, </span><span style="font-family:Arial;font-size:10pt;">2018</span><span style="font-family:Arial;font-size:10pt;">, or </span><span style="font-family:Arial;font-size:10pt;">2017</span><span style="font-family:Arial;font-size:10pt;">.</span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">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="line-height:120%;font-size:10pt;"><div style="padding-left:0px;text-indent:0px;line-height:normal;padding-top:10px;"><table cellpadding="0" cellspacing="0" style="font-family:Times New Roman;font-size:10pt;width:99.80506822612085%;border-collapse:collapse;text-align:left;"><tr><td colspan="12"/></tr><tr><td style="width:53%;"/><td style="width:1%;"/><td style="width:13%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:13%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:13%;"/><td style="width:1%;"/></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;color:#ee2724;">&#160;</span></div></td><td colspan="11" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;">Year Ended December&#160;31,</span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;color:#ee2724;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;">2019</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">2018</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">2017</span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Cost of revenue</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>1,504</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>2,447</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>1,881</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Research, development, and engineering</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>15,748</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>14,578</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>11,022</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Selling, general, and administrative</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>28,337</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>24,065</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>19,039</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>45,589</span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>41,090</span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>31,942</span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr></table></div><span style="font-family:inherit;font-size:10pt;"><br/></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_DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The entire disclosure for compensation-related costs for equity-based compensation, which may include disclosure of policies, compensation plan details, allocation of equity compensation, incentive distributions, equity-based arrangements to obtain goods and services, deferred compensation arrangements, employee stock ownership plan details and employee stock purchase plan details.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -URI http://asc.fasb.org/topic&amp;trid=2228938<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 505<br> -SubTopic 50<br> -URI http://asc.fasb.org/subtopic&amp;trid=2208855<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>nonnum:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_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>118
<FILENAME>R22.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.19.3.a.u2</span><table class="report" border="0" cellspacing="2" id="idp6864934016">
<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, 2019</div></th></tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_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="top.Show.showAR( this, 'defref_cgnx_IndemnificationProvisionsTextBlock', window );">Indemnification Provisions</a></td>
<td class="text">Indemnification Provisions<div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">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="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">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 generally 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><div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">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.  The maximum potential amount of future payments the Company could be required to make under these provisions is generally limited and is likely recoverable under the </span></div><div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">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></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_IndemnificationProvisionsTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">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>nonnum:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_GuaranteesAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_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>119
<FILENAME>R42.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.19.3.a.u2</span><table class="report" border="0" cellspacing="2" id="idp6629011600">
<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, 2019</div></th></tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_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="top.Show.showAR( this, 'defref_us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock', window );">Amortized Intangible Assets</a></td>
<td class="text">ntangible assets consisted of the following (in thousands):<div style="line-height:120%;font-size:10pt;"><div style="padding-left:0px;text-indent:0px;line-height:normal;padding-top:10px;"><table cellpadding="0" cellspacing="0" style="font-family:Times New Roman;font-size:10pt;width:99.80506822612085%;border-collapse:collapse;text-align:left;"><tr><td colspan="12"/></tr><tr><td style="width:53%;"/><td style="width:1%;"/><td style="width:13%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:13%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:13%;"/><td style="width:1%;"/></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">Gross</span></div><div style="text-align:center;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">Carrying</span></div><div style="text-align:center;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">Value</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">Accumulated</span></div><div style="text-align:center;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">Amortization</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">Net</span></div><div style="text-align:center;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">Carrying</span></div><div style="text-align:center;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">Value</span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Distribution networks</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>38,060</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>38,060</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>&#8212;</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Completed technologies</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>31,987</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>9,160</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>22,827</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Customer relationships</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>14,407</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>6,402</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>8,005</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">In-process technologies</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>8,200</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>&#8212;</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>8,200</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Non-compete agreements</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>710</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>350</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>360</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Trademarks</span></div></td><td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>110</span></span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>12</span></span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>98</span></span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Balance as of December 31, 2019</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>93,474</span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>53,984</span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>39,490</span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:12px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:12px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:12px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:12px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:12px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:12px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">Gross</span></div><div style="text-align:center;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">Carrying</span></div><div style="text-align:center;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">Value</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">Accumulated</span></div><div style="text-align:center;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">Amortization</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">Net</span></div><div style="text-align:center;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">Carrying</span></div><div style="text-align:center;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">Value</span></div></td></tr><tr><td style="vertical-align:top;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Distribution networks</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>38,060</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>38,060</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>&#8212;</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Completed technologies</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>13,687</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>6,619</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>7,068</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Customer relationships</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>8,607</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>5,716</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>2,891</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Non-compete agreements</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>370</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>216</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>154</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Balance as of December 31, 2018</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>60,724</span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>50,611</span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>10,113</span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr></table></div><span style="font-family:inherit;font-size:10pt;"><br/></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="top.Show.showAR( this, 'defref_us-gaap_ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock', window );">Estimated Amortization Expense Succeeding Fiscal Years</a></td>
<td class="text"><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Estimated amortization expense for each of the five succeeding fiscal years and thereafter is as follows (in thousands):</span></div><div style="line-height:120%;font-size:10pt;"><div style="padding-left:0px;text-indent:0px;line-height:normal;padding-top:10px;"><table cellpadding="0" cellspacing="0" style="font-family:Times New Roman;font-size:10pt;width:100%;border-collapse:collapse;text-align:left;"><tr><td colspan="5"/></tr><tr><td style="width:82%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:15%;"/><td style="width:1%;"/></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;text-decoration:underline;">Year Ended December&#160;31,</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;">Amount</span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">2020</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>5,412</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">2021</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>5,232</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">2022</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>4,862</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">2023</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>4,160</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">2024</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>3,593</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Thereafter</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>8,031</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>31,290</span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr></table></div><span style="font-family:inherit;font-size:10pt;"><br/></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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Tabular disclosure of assets, excluding financial assets and goodwill, lacking physical substance with a finite life, by either major class or business segment.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 350<br> -SubTopic 30<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=66006027&amp;loc=d3e16323-109275<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 350<br> -SubTopic 30<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=66006027&amp;loc=d3e16265-109275<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>nonnum:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Tabular disclosure of the 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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 350<br> -SubTopic 30<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=66006027&amp;loc=d3e16323-109275<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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>nonnum:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>120
<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>121
<FILENAME>R46.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.19.3.a.u2</span><table class="report" border="0" cellspacing="2" id="idp6878146288">
<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, 2019</div></th></tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract', window );"><strong>Disclosure of Compensation Related Costs, Share-based Payments [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock', window );">Summary of Stock Option Activity</a></td>
<td class="text"><div style="line-height:120%;padding-top:6px;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">The following table summarizes the Company&#8217;s stock option activity:</span></div><div style="line-height:120%;padding-bottom:6px;font-size:10pt;"><div style="padding-left:0px;text-indent:0px;line-height:normal;padding-top:10px;"><table cellpadding="0" cellspacing="0" style="font-family:Times New Roman;font-size:10pt;width:99.80506822612085%;border-collapse:collapse;text-align:left;"><tr><td colspan="13"/></tr><tr><td style="width:45%;"/><td style="width:12%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:11%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:13%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:11%;"/><td style="width:1%;"/></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;">Shares</span></div><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;">(in&#160;thousands)</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;">Weighted-</span></div><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;">Average</span></div><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;">Exercise</span></div><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;">Price</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;">Weighted-</span></div><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;">Average</span></div><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;">Remaining</span></div><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;">Contractual</span></div><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;">Term</span></div><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;">(in&#160;years)</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;">Aggregate</span></div><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;">Intrinsic Value</span></div><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;">(in&#160;thousands)</span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Outstanding as of December 31, 2018</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>13,789</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>31.73</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td></tr><tr><td style="vertical-align:top;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Granted</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>2,990</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>51.25</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Exercised</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>(3,018</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">)</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>21.40</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td></tr><tr><td style="vertical-align:top;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Forfeited or expired</span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>(862</span></span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">)</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>42.53</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Outstanding as of December 31, 2019</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>12,899</span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>37.95</span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>7.14</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>236,318</span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Exercisable as of December 31, 2019</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>4,775</span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>26.67</span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;border-top:3px double #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>5.61</span></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>141,277</span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Options vested or expected to vest as of&#160;<br/>&#160;December 31, 2019 (1)</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>11,724</span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>36.84</span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>7.00</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>227,779</span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr></table></div></div><div style="line-height:120%;padding-left:4px;padding-top:12px;text-align:left;padding-left:48px;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">(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="top.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="line-height:120%;padding-top:6px;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">The fair values of stock options granted in each period presented were estimated using the following weighted-average assumptions:</span></div><div style="line-height:120%;font-size:10pt;"><div style="padding-left:0px;text-indent:0px;line-height:normal;padding-top:10px;"><table cellpadding="0" cellspacing="0" style="font-family:Times New Roman;font-size:10pt;width:99.80506822612085%;border-collapse:collapse;text-align:left;"><tr><td colspan="9"/></tr><tr><td style="width:56%;"/><td style="width:13%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:13%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:13%;"/><td style="width:1%;"/></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;color:#ee2724;">&#160;</span></div></td><td colspan="8" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;">Year&#160;Ended&#160;December&#160;31,</span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;color:#ee2724;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;">2019</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">2018</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">2017</span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Risk-free rate</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>2.7</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">%</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>2.9</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">%</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>2.4</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">%</span></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Expected dividend yield</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>0.39</span></span></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">%</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>0.35</span></span></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">%</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>0.40</span></span></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">%</span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Expected volatility</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>37</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">%</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>39</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">%</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>41</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">%</span></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Expected term (in years)</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>5.3</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>5.4</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>5.4</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr></table></div><span style="font-family:inherit;font-size:10pt;"><br/></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="top.Show.showAR( this, 'defref_us-gaap_NonvestedRestrictedStockSharesActivityTableTextBlock', window );">Nonvested Restricted Stock Shares Activity [Table Text Block]</a></td>
<td class="text"><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">The following tables summarizes the Company's RSU activity:</span></div><div style="line-height:120%;padding-top:6px;text-align:center;font-size:10pt;"><div style="padding-left:0px;text-indent:0px;line-height:normal;padding-top:10px;"><table cellpadding="0" cellspacing="0" style="font-family:Times New Roman;font-size:10pt;margin-left:auto;margin-right:auto;width:100%;border-collapse:collapse;text-align:left;"><tr><td colspan="7"/></tr><tr><td style="width:63%;"/><td style="width:14%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:19%;"/><td style="width:1%;"/></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">Shares</span></div><div style="text-align:center;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">(in&#160;thousands)</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">Weighted-</span></div><div style="text-align:center;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">Average</span></div><div style="text-align:center;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">Grant Date Fair Value</span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Nonvested as of December 31, 2018</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>&#8212;</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>&#8212;</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Granted</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>151</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>48.61</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Vested</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>&#8212;</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>&#8212;</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Forfeited or expired</span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>(1</span></span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">)</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>45.20</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Nonvested as of December 31, 2019</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>150</span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>48.63</span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr></table></div><span style="font-family:inherit;font-size:10pt;"><br/></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="top.Show.showAR( this, 'defref_us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock', window );">Stock-Based Compensation Expense</a></td>
<td class="text"><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">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="line-height:120%;font-size:10pt;"><div style="padding-left:0px;text-indent:0px;line-height:normal;padding-top:10px;"><table cellpadding="0" cellspacing="0" style="font-family:Times New Roman;font-size:10pt;width:99.80506822612085%;border-collapse:collapse;text-align:left;"><tr><td colspan="12"/></tr><tr><td style="width:53%;"/><td style="width:1%;"/><td style="width:13%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:13%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:13%;"/><td style="width:1%;"/></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;color:#ee2724;">&#160;</span></div></td><td colspan="11" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;">Year Ended December&#160;31,</span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;color:#ee2724;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;">2019</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">2018</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">2017</span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Cost of revenue</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>1,504</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>2,447</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>1,881</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Research, development, and engineering</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>15,748</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>14,578</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>11,022</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Selling, general, and administrative</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>28,337</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>24,065</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>19,039</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>45,589</span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>41,090</span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>31,942</span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr></table></div><span style="font-family:inherit;font-size:10pt;"><br/></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_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Tabular disclosure of the changes in outstanding nonvested restricted stock shares.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)<br> -URI http://asc.fasb.org/extlink&amp;oid=109197908&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_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>nonnum:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Tabular disclosure of the allocation of equity-based compensation costs to a given line item on the balance sheet and income statement for the period. This may include the reporting line for the costs and the amount capitalized and expensed.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (h)(1)<br> -URI http://asc.fasb.org/extlink&amp;oid=109197908&amp;loc=d3e5070-113901<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 14.F)<br> -URI http://asc.fasb.org/extlink&amp;oid=115993241&amp;loc=d3e301413-122809<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=109197908&amp;loc=d3e5047-113901<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>nonnum:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Tabular disclosure for stock option plans. Includes, but is not limited to, outstanding awards at beginning and end of year, grants, exercises, forfeitures, and weighted-average grant date fair value.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (d)<br> -URI http://asc.fasb.org/extlink&amp;oid=109197908&amp;loc=d3e5070-113901<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (e)<br> -URI http://asc.fasb.org/extlink&amp;oid=109197908&amp;loc=d3e5070-113901<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)<br> -URI http://asc.fasb.org/extlink&amp;oid=109197908&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>nonnum:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Tabular disclosure of the significant assumptions used during the year to estimate the fair value of stock options, including, but not limited to: (a) expected term of share options and similar instruments, (b) expected volatility of the entity's shares, (c) expected dividends, (d) risk-free rate(s), and (e) discount for post-vesting restrictions.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (f)(2)<br> -URI http://asc.fasb.org/extlink&amp;oid=109197908&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>nonnum:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>122
<FILENAME>R99.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.19.3.a.u2</span><table class="report" border="0" cellspacing="2" id="idp6875913024">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Taxes - Schedule of Change in Accounting Policy (Details) - USD ($)<br> $ / shares in Units, $ in Thousands</strong></div></th>
<th class="th" colspan="8">3 Months Ended</th>
<th class="th" colspan="3">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Dec. 31, 2018</div></th>
<th class="th"><div>Sep. 30, 2018</div></th>
<th class="th"><div>Jul. 01, 2018</div></th>
<th class="th"><div>Apr. 01, 2018</div></th>
<th class="th"><div>Dec. 31, 2017</div></th>
<th class="th"><div>Oct. 01, 2017</div></th>
<th class="th"><div>Jul. 02, 2017</div></th>
<th class="th"><div>Apr. 02, 2017</div></th>
<th class="th"><div>Dec. 31, 2019</div></th>
<th class="th"><div>Dec. 31, 2018</div></th>
<th class="th"><div>Dec. 31, 2017</div></th>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ChangeInAccountingEstimateLineItems', window );"><strong>Change in Accounting Estimate [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>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments', window );">Income before income tax expense</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 162,994<span></span>
</td>
<td class="nump">$ 234,574<span></span>
</td>
<td class="nump">$ 266,464<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_IncomeTaxExpenseBenefit', window );">Income tax expense (benefit)</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</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">(40,871)<span></span>
</td>
<td class="nump">15,307<span></span>
</td>
<td class="nump">89,752<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_NetIncomeLoss', window );">Net income</a></td>
<td class="nump">$ 80,327<span></span>
</td>
<td class="nump">$ 41,685<span></span>
</td>
<td class="nump">$ 48,749<span></span>
</td>
<td class="nump">$ 33,104<span></span>
</td>
<td class="nump">$ 45,418<span></span>
</td>
<td class="nump">$ 80,436<span></span>
</td>
<td class="nump">$ 56,196<span></span>
</td>
<td class="nump">$ 37,217<span></span>
</td>
<td class="nump">$ 203,865<span></span>
</td>
<td class="nump">$ 219,267<span></span>
</td>
<td class="nump">$ 176,712<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_EarningsPerShareBasic', window );">Basic net income (loss) per share (in dollars per share)</a></td>
<td class="nump">$ 0.47<span></span>
</td>
<td class="nump">$ 0.24<span></span>
</td>
<td class="nump">$ 0.28<span></span>
</td>
<td class="nump">$ 0.19<span></span>
</td>
<td class="nump">$ 0.26<span></span>
</td>
<td class="nump">$ 0.47<span></span>
</td>
<td class="nump">$ 0.33<span></span>
</td>
<td class="nump">$ 0.21<span></span>
</td>
<td class="nump">$ 1.19<span></span>
</td>
<td class="nump">$ 1.27<span></span>
</td>
<td class="nump">$ 1.02<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_EarningsPerShareDiluted', window );">Diluted net income (loss) per share (in dollars per share)</a></td>
<td class="nump">$ 0.46<span></span>
</td>
<td class="nump">$ 0.24<span></span>
</td>
<td class="nump">$ 0.28<span></span>
</td>
<td class="nump">$ 0.19<span></span>
</td>
<td class="nump">$ 0.26<span></span>
</td>
<td class="nump">$ 0.45<span></span>
</td>
<td class="nump">$ 0.32<span></span>
</td>
<td class="nump">$ 0.21<span></span>
</td>
<td class="nump">$ 1.16<span></span>
</td>
<td class="nump">$ 1.24<span></span>
</td>
<td class="nump">$ 0.98<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_DeferredTaxAssetsNetNoncurrent', window );">Deferred tax assets</a></td>
<td class="nump">$ 28,660<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 449,519<span></span>
</td>
<td class="nump">$ 28,660<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_DeferredIncomeTaxLiabilities', window );">Deferred tax liabilities</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">332,344<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_RetainedEarningsAccumulatedDeficit', window );">Retained earnings</a></td>
<td class="nump">$ 646,214<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">753,268<span></span>
</td>
<td class="nump">$ 646,214<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_srt_RestatementAxis=srt_ScenarioPreviouslyReportedMember', window );">As computed under the previous accounting policy</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ChangeInAccountingEstimateLineItems', window );"><strong>Change in Accounting Estimate [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>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments', window );">Income before income tax expense</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">162,994<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_IncomeTaxExpenseBenefit', window );">Income tax expense (benefit)</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</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">(393,317)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_NetIncomeLoss', window );">Net income</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 556,311<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_EarningsPerShareBasic', window );">Basic net income (loss) per share (in dollars per share)</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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.25<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_EarningsPerShareDiluted', window );">Diluted net income (loss) per share (in dollars per share)</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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.17<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_DeferredTaxAssetsNetNoncurrent', window );">Deferred tax assets</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 469,621<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_DeferredIncomeTaxLiabilities', window );">Deferred tax liabilities</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_RetainedEarningsAccumulatedDeficit', window );">Retained earnings</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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,105,714<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_srt_RestatementAxis=srt_RestatementAdjustmentMember', window );">Effect of change | Change in accounting policy</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ChangeInAccountingEstimateLineItems', window );"><strong>Change in Accounting Estimate [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>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments', window );">Income before income tax expense</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_IncomeTaxExpenseBenefit', window );">Income tax expense (benefit)</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">352,446<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_NetIncomeLoss', window );">Net income</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="num">$ (352,446)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_EarningsPerShareBasic', window );">Basic net income (loss) per share (in dollars per share)</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="num">$ (2.06)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_EarningsPerShareDiluted', window );">Diluted net income (loss) per share (in dollars per share)</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="num">$ (2.01)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_DeferredTaxAssetsNetNoncurrent', window );">Deferred tax assets</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="num">$ (20,102)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_DeferredIncomeTaxLiabilities', window );">Deferred tax liabilities</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">332,344<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_RetainedEarningsAccumulatedDeficit', window );">Retained earnings</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="num">$ (352,446)<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_ChangeInAccountingEstimateLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ChangeInAccountingEstimateLineItems</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DeferredIncomeTaxLiabilities">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of deferred tax liability attributable to taxable temporary differences.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(26)(b))<br> -URI http://asc.fasb.org/extlink&amp;oid=6877327&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(15)(b)(2))<br> -URI http://asc.fasb.org/extlink&amp;oid=6879938&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(15)(2))<br> -URI http://asc.fasb.org/extlink&amp;oid=6876686&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 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(26)(a))<br> -URI http://asc.fasb.org/extlink&amp;oid=6877327&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 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=84230637&amp;loc=d3e32537-109319<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DeferredIncomeTaxLiabilities</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DeferredTaxAssetsNetNoncurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount after allocation of valuation allowances of deferred tax asset attributable to deductible temporary differences and carryforwards classified as noncurrent.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 45<br> -Paragraph 5<br> -URI http://asc.fasb.org/extlink&amp;oid=84176650&amp;loc=d3e31928-109318<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 45<br> -Paragraph 9<br> -URI http://asc.fasb.org/extlink&amp;oid=84176650&amp;loc=d3e31958-109318<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 45<br> -Paragraph 4<br> -URI http://asc.fasb.org/extlink&amp;oid=84176650&amp;loc=d3e31917-109318<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 45<br> -Paragraph 6<br> -URI http://asc.fasb.org/extlink&amp;oid=84176650&amp;loc=d3e31931-109318<br><br>Reference 5: 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> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=84230637&amp;loc=d3e32537-109319<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DeferredTaxAssetsNetNoncurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_EarningsPerShareBasic">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The amount of net income (loss) for the period per each share of common stock or unit outstanding during the reporting period.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 944<br> -SubTopic 220<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-04(19))<br> -URI http://asc.fasb.org/extlink&amp;oid=114873790&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 260<br> -SubTopic 10<br> -Section 45<br> -Paragraph 7<br> -URI http://asc.fasb.org/extlink&amp;oid=109260490&amp;loc=d3e1337-109256<br><br>Reference 3: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 55<br> -Paragraph 52<br> -URI http://asc.fasb.org/extlink&amp;oid=109256448&amp;loc=d3e4984-109258<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03(21))<br> -URI http://asc.fasb.org/extlink&amp;oid=115205541&amp;loc=SL114868664-224227<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> -URI http://asc.fasb.org/extlink&amp;oid=109234566&amp;loc=d3e22694-107794<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=6371337&amp;loc=d3e3550-109257<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 2<br> -URI http://asc.fasb.org/extlink&amp;oid=109260490&amp;loc=d3e1252-109256<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 942<br> -SubTopic 220<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-04(23))<br> -URI http://asc.fasb.org/extlink&amp;oid=114873765&amp;loc=SL114874048-224260<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 45<br> -Paragraph 60B<br> -Subparagraph (d)<br> -URI http://asc.fasb.org/extlink&amp;oid=109260490&amp;loc=SL5780133-109256<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_EarningsPerShareBasic</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>num:perShareItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_EarningsPerShareDiluted">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The amount of net income (loss) for the period available to each share of common stock or common unit outstanding during the reporting period and to each share or unit that would have been outstanding assuming the issuance of common shares or units for all dilutive potential common shares or units outstanding during the reporting period.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 55<br> -Paragraph 52<br> -URI http://asc.fasb.org/extlink&amp;oid=109256448&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 260<br> -SubTopic 10<br> -Section 45<br> -Paragraph 2<br> -URI http://asc.fasb.org/extlink&amp;oid=109260490&amp;loc=d3e1252-109256<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 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=6371337&amp;loc=d3e3550-109257<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(23))<br> -URI http://asc.fasb.org/extlink&amp;oid=114873765&amp;loc=SL114874048-224260<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 11<br> -URI http://asc.fasb.org/extlink&amp;oid=109234566&amp;loc=d3e22694-107794<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 45<br> -Paragraph 7<br> -URI http://asc.fasb.org/extlink&amp;oid=109260490&amp;loc=d3e1337-109256<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03(21))<br> -URI http://asc.fasb.org/extlink&amp;oid=115205541&amp;loc=SL114868664-224227<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 45<br> -Paragraph 60B<br> -Subparagraph (d)<br> -URI http://asc.fasb.org/extlink&amp;oid=109260490&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 944<br> -SubTopic 220<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-04(19))<br> -URI http://asc.fasb.org/extlink&amp;oid=114873790&amp;loc=SL114874131-224263<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_EarningsPerShareDiluted</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>num:perShareItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of income (loss) from continuing operations before deduction of income tax expense (benefit) and income (loss) attributable to noncontrolling interest, and addition of income (loss) from equity method investments.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 235<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08.(h)(1)(i))<br> -URI http://asc.fasb.org/extlink&amp;oid=26873400&amp;loc=d3e23780-122690<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncomeTaxExpenseBenefit">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of current income tax expense (benefit) and deferred income tax expense (benefit) pertaining to continuing operations.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 22<br> -Subparagraph (h)<br> -URI http://asc.fasb.org/extlink&amp;oid=115929826&amp;loc=d3e8736-108599<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))<br> -URI http://asc.fasb.org/extlink&amp;oid=26873400&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 20<br> -Section 45<br> -Paragraph 2<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=109238882&amp;loc=d3e38679-109324<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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_NetIncomeLoss">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The portion of profit or loss for the period, net of income taxes, which is attributable to the parent.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section 45<br> -Paragraph 1A<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=114867106&amp;loc=SL7669619-108580<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 942<br> -SubTopic 220<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-04(22))<br> -URI http://asc.fasb.org/extlink&amp;oid=114873765&amp;loc=SL114874048-224260<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 1B<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=114867106&amp;loc=SL7669625-108580<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 http://asc.fasb.org/extlink&amp;oid=114873790&amp;loc=SL114874131-224263<br><br>Reference 5: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03(20))<br> -URI http://asc.fasb.org/extlink&amp;oid=115205541&amp;loc=SL114868664-224227<br><br>Reference 6: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 28<br> -URI http://asc.fasb.org/extlink&amp;oid=109223946&amp;loc=d3e3602-108585<br><br>Reference 7: 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 http://asc.fasb.org/extlink&amp;oid=6371337&amp;loc=d3e3550-109257<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_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_RetainedEarningsAccumulatedDeficit">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The cumulative amount of the reporting entity's undistributed earnings or deficit.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(30)(a)(3))<br> -URI http://asc.fasb.org/extlink&amp;oid=6877327&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)(23)(a)(4))<br> -URI http://asc.fasb.org/extlink&amp;oid=6879938&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 505<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.3-04)<br> -URI http://asc.fasb.org/extlink&amp;oid=27012166&amp;loc=d3e187085-122770<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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_srt_RestatementAxis=srt_ScenarioPreviouslyReportedMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_RestatementAxis=srt_ScenarioPreviouslyReportedMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></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_RestatementAxis=srt_RestatementAdjustmentMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_RestatementAxis=srt_RestatementAdjustmentMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></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_ChangeInAccountingEstimateByTypeAxis=cgnx_ChangeinGlobalIntangibleLowTaxedIncomeMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ChangeInAccountingEstimateByTypeAxis=cgnx_ChangeinGlobalIntangibleLowTaxedIncomeMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><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>R69.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.19.3.a.u2</span><table class="report" border="0" cellspacing="2" id="idp6888902064">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Leases (Details) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="3">12 Months Ended</th>
<th class="th" colspan="1"></th>
</tr>
<tr>
<th class="th"><div>Dec. 31, 2019</div></th>
<th class="th"><div>Dec. 31, 2018</div></th>
<th class="th"><div>Dec. 31, 2017</div></th>
<th class="th"><div>Jan. 01, 2019</div></th>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_NewAccountingPronouncementsOrChangeInAccountingPrincipleLineItems', window );"><strong>New Accounting Pronouncements or Change in Accounting Principle [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="top.Show.showAR( this, 'defref_us-gaap_OperatingLeaseRightOfUseAsset', window );">Operating lease assets</a></td>
<td class="nump">$ 17,522<span></span>
</td>
<td class="nump">$ 0<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_OperatingLeaseLiabilityCurrent', window );">Operating lease liabilities</a></td>
<td class="nump">5,647<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_OperatingLeaseLiabilityNoncurrent', window );">Non-current operating lease liabilities</a></td>
<td class="nump">12,326<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_OperatingLeaseExpense', window );">Operating lease expense</a></td>
<td class="nump">6,893<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_OperatingLeasePayments', window );">Operating lease payments</a></td>
<td class="nump">6,530<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_cgnx_OperatingLeaseExpenseNoLiabilityOrAssetRecognized', window );">Operating lease expense for which no liability or asset was recognized</a></td>
<td class="nump">275<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_LeaseAndRentalExpense', window );">Rent expense</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">8,186<span></span>
</td>
<td class="nump">$ 6,738<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_OperatingLeaseLiability', window );">Operating lease, liability</a></td>
<td class="nump">$ 17,973<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_OperatingLeaseWeightedAverageDiscountRatePercent', window );">Operating lease, weighted average discount rate (percent)</a></td>
<td class="nump">4.60%<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_OperatingLeaseWeightedAverageRemainingLeaseTerm1', window );">Operating lease, weighted average remaining lease term (years)</a></td>
<td class="text">3 years 8 months 12 days<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_OperatingLeaseLeaseIncome', window );">Operating lease income</a></td>
<td class="nump">$ 311<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_RentalIncomeNonoperating', window );">Operating lease income</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 1,116<span></span>
</td>
<td class="nump">$ 1,474<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AdjustmentsForNewAccountingPronouncementsAxis=us-gaap_AccountingStandardsUpdate201602Member', window );">Accounting Standards Update 2016-02 [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_NewAccountingPronouncementsOrChangeInAccountingPrincipleLineItems', window );"><strong>New Accounting Pronouncements or Change in Accounting Principle [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="top.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="text">&#160;<span></span>
</td>
<td class="nump">$ 17,522<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_OperatingLeaseLiabilityCurrent', window );">Operating lease liabilities</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">4,736<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_OperatingLeaseLiabilityNoncurrent', window );">Non-current operating lease liabilities</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 12,669<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Operating Lease, Expense, No Liability Or Asset Recognized</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">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_us-gaap_LeaseAndRentalExpense">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of rent expense incurred for leased assets, including but not limited to, furniture and equipment, that is not directly or indirectly associated with the manufacture, sale or creation of a product or product line.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LeaseAndRentalExpense</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_NewAccountingPronouncementsOrChangeInAccountingPrincipleLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_NewAccountingPronouncementsOrChangeInAccountingPrincipleLineItems</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of operating lease expense. Excludes sublease income.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 842<br> -SubTopic 20<br> -Section 45<br> -Paragraph 4<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=77888419&amp;loc=SL77918638-209977<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_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_OperatingLeaseLeaseIncome">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of operating lease 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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 842<br> -SubTopic 30<br> -Section 50<br> -Paragraph 5<br> -URI http://asc.fasb.org/extlink&amp;oid=77888428&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 http://asc.fasb.org/extlink&amp;oid=77888421&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 http://asc.fasb.org/extlink&amp;oid=109225645&amp;loc=SL77927221-108306<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Present value of lessee's discounted obligation for lease payments from operating lease.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 842<br> -SubTopic 20<br> -Section 45<br> -Paragraph 1<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=77888419&amp;loc=SL77918627-209977<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OperatingLeaseLiability</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_OperatingLeaseLiabilityCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Present value of lessee's discounted obligation for lease payments from operating lease, classified as current.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 842<br> -SubTopic 20<br> -Section 45<br> -Paragraph 1<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=77888419&amp;loc=SL77918627-209977<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OperatingLeaseLiabilityCurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_OperatingLeaseLiabilityNoncurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Present value of lessee's discounted obligation for lease payments from operating lease, classified as noncurrent.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 842<br> -SubTopic 20<br> -Section 45<br> -Paragraph 1<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=77888419&amp;loc=SL77918627-209977<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OperatingLeaseLiabilityNoncurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_OperatingLeasePayments">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of cash outflow from operating lease, excluding payments to bring another asset to condition and location necessary for its intended use.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 842<br> -SubTopic 20<br> -Section 45<br> -Paragraph 5<br> -Subparagraph (c)<br> -URI http://asc.fasb.org/extlink&amp;oid=77888419&amp;loc=SL77918643-209977<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 842<br> -SubTopic 20<br> -Section 50<br> -Paragraph 4<br> -Subparagraph (g)(1)<br> -URI http://asc.fasb.org/extlink&amp;oid=77888426&amp;loc=SL77918686-209980<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OperatingLeasePayments</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_OperatingLeaseRightOfUseAsset">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of lessee's right to use underlying asset under operating lease.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 842<br> -SubTopic 20<br> -Section 45<br> -Paragraph 1<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=77888419&amp;loc=SL77918627-209977<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OperatingLeaseRightOfUseAsset</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_OperatingLeaseWeightedAverageDiscountRatePercent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Weighted average discount rate for operating lease calculated at point in time.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 842<br> -SubTopic 20<br> -Section 50<br> -Paragraph 4<br> -Subparagraph (g)(4)<br> -URI http://asc.fasb.org/extlink&amp;oid=77888426&amp;loc=SL77918686-209980<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 842<br> -SubTopic 20<br> -Section 55<br> -Paragraph 53<br> -URI http://asc.fasb.org/extlink&amp;oid=77888399&amp;loc=SL77918982-209971<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OperatingLeaseWeightedAverageDiscountRatePercent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>num:percentItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_OperatingLeaseWeightedAverageRemainingLeaseTerm1">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Weighted average remaining lease term for operating lease, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents reported fact of one year, five months, and thirteen days.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 842<br> -SubTopic 20<br> -Section 55<br> -Paragraph 53<br> -URI http://asc.fasb.org/extlink&amp;oid=77888399&amp;loc=SL77918982-209971<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 842<br> -SubTopic 20<br> -Section 50<br> -Paragraph 4<br> -Subparagraph (g)(3)<br> -URI http://asc.fasb.org/extlink&amp;oid=77888426&amp;loc=SL77918686-209980<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OperatingLeaseWeightedAverageRemainingLeaseTerm1</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:durationItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_RentalIncomeNonoperating">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Income earned by providing the use of assets to an outside party in exchange for a payment or series of payments that is nonoperating in nature.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03.7)<br> -URI http://asc.fasb.org/extlink&amp;oid=115205541&amp;loc=SL114868664-224227<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_RentalIncomeNonoperating</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_AdjustmentsForNewAccountingPronouncementsAxis=us-gaap_AccountingStandardsUpdate201602Member">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AdjustmentsForNewAccountingPronouncementsAxis=us-gaap_AccountingStandardsUpdate201602Member</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>124
<FILENAME>FilingSummary.xml
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<XML>
<?xml version='1.0' encoding='utf-8'?>
<FilingSummary>
  <Version>3.19.3.a.u2</Version>
  <ProcessingTime/>
  <ReportFormat>html</ReportFormat>
  <ContextCount>306</ContextCount>
  <ElementCount>580</ElementCount>
  <EntityCount>1</EntityCount>
  <FootnotesReported>true</FootnotesReported>
  <SegmentCount>102</SegmentCount>
  <ScenarioCount>0</ScenarioCount>
  <TuplesReported>false</TuplesReported>
  <UnitCount>14</UnitCount>
  <MyReports>
    <Report instance="cgnx-20191231x10xk.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R1.htm</HtmlFileName>
      <LongName>0001000 - 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-20191231x10xk.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R2.htm</HtmlFileName>
      <LongName>1001000 - 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>2</Position>
    </Report>
    <Report instance="cgnx-20191231x10xk.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R3.htm</HtmlFileName>
      <LongName>1001501 - Statement - CONSOLIDATED STATEMENTS OF OPERATIONS (Parenthetical)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://cognex.com/role/ConsolidatedStatementsOfOperationsParenthetical</Role>
      <ShortName>CONSOLIDATED STATEMENTS OF OPERATIONS (Parenthetical)</ShortName>
      <MenuCategory>Statements</MenuCategory>
      <Position>3</Position>
    </Report>
    <Report instance="cgnx-20191231x10xk.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R4.htm</HtmlFileName>
      <LongName>1002000 - 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-20191231x10xk.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R5.htm</HtmlFileName>
      <LongName>1002501 - 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-20191231x10xk.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R6.htm</HtmlFileName>
      <LongName>1003000 - 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-20191231x10xk.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R7.htm</HtmlFileName>
      <LongName>1003501 - 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-20191231x10xk.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R8.htm</HtmlFileName>
      <LongName>1004000 - 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-20191231x10xk.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R9.htm</HtmlFileName>
      <LongName>1005000 - 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-20191231x10xk.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R10.htm</HtmlFileName>
      <LongName>1005501 - 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-20191231x10xk.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R11.htm</HtmlFileName>
      <LongName>2101100 - 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-20191231x10xk.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R12.htm</HtmlFileName>
      <LongName>2102100 - 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-20191231x10xk.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R13.htm</HtmlFileName>
      <LongName>2103100 - 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-20191231x10xk.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R14.htm</HtmlFileName>
      <LongName>2104100 - 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-20191231x10xk.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R15.htm</HtmlFileName>
      <LongName>2105100 - 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-20191231x10xk.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R16.htm</HtmlFileName>
      <LongName>2106100 - 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-20191231x10xk.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R17.htm</HtmlFileName>
      <LongName>2107100 - 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-20191231x10xk.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R18.htm</HtmlFileName>
      <LongName>2108100 - 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-20191231x10xk.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R19.htm</HtmlFileName>
      <LongName>2109100 - 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-20191231x10xk.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R20.htm</HtmlFileName>
      <LongName>2110100 - 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-20191231x10xk.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R21.htm</HtmlFileName>
      <LongName>2112100 - 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-20191231x10xk.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R22.htm</HtmlFileName>
      <LongName>2113100 - 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-20191231x10xk.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R23.htm</HtmlFileName>
      <LongName>2114100 - 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-20191231x10xk.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R24.htm</HtmlFileName>
      <LongName>2116100 - 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-20191231x10xk.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R25.htm</HtmlFileName>
      <LongName>2117100 - 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-20191231x10xk.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R26.htm</HtmlFileName>
      <LongName>2118100 - 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-20191231x10xk.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R27.htm</HtmlFileName>
      <LongName>2119100 - 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-20191231x10xk.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R28.htm</HtmlFileName>
      <LongName>2120100 - Disclosure - Taxes</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://cognex.com/role/Taxes</Role>
      <ShortName>Taxes</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>28</Position>
    </Report>
    <Report instance="cgnx-20191231x10xk.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R29.htm</HtmlFileName>
      <LongName>2121100 - 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-20191231x10xk.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R30.htm</HtmlFileName>
      <LongName>2122100 - 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-20191231x10xk.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R31.htm</HtmlFileName>
      <LongName>2124100 - Disclosure - Acquisitions</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://cognex.com/role/Acquisitions</Role>
      <ShortName>Acquisitions</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>31</Position>
    </Report>
    <Report instance="cgnx-20191231x10xk.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R32.htm</HtmlFileName>
      <LongName>2125100 - Disclosure - Subsequent Events</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://cognex.com/role/SubsequentEvents</Role>
      <ShortName>Subsequent Events</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>32</Position>
    </Report>
    <Report instance="cgnx-20191231x10xk.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R33.htm</HtmlFileName>
      <LongName>2126100 - Disclosure - Selected Quarterly Financial Data (Unaudited)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://cognex.com/role/SelectedQuarterlyFinancialDataUnaudited</Role>
      <ShortName>Selected Quarterly Financial Data (Unaudited)</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>33</Position>
    </Report>
    <Report instance="cgnx-20191231x10xk.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R34.htm</HtmlFileName>
      <LongName>2127100 - Disclosure - Schedule II - Valuation and Qualifying Accounts</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://cognex.com/role/ScheduleIiValuationAndQualifyingAccounts</Role>
      <ShortName>Schedule II - Valuation and Qualifying Accounts</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>34</Position>
    </Report>
    <Report instance="cgnx-20191231x10xk.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R35.htm</HtmlFileName>
      <LongName>2201201 - 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>35</Position>
    </Report>
    <Report instance="cgnx-20191231x10xk.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R36.htm</HtmlFileName>
      <LongName>2303301 - 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>36</Position>
    </Report>
    <Report instance="cgnx-20191231x10xk.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R37.htm</HtmlFileName>
      <LongName>2304301 - 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>37</Position>
    </Report>
    <Report instance="cgnx-20191231x10xk.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R38.htm</HtmlFileName>
      <LongName>2305301 - 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>38</Position>
    </Report>
    <Report instance="cgnx-20191231x10xk.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R39.htm</HtmlFileName>
      <LongName>2306301 - 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>39</Position>
    </Report>
    <Report instance="cgnx-20191231x10xk.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R40.htm</HtmlFileName>
      <LongName>2307301 - 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>40</Position>
    </Report>
    <Report instance="cgnx-20191231x10xk.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R41.htm</HtmlFileName>
      <LongName>2308301 - 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>41</Position>
    </Report>
    <Report instance="cgnx-20191231x10xk.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R42.htm</HtmlFileName>
      <LongName>2309301 - 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>42</Position>
    </Report>
    <Report instance="cgnx-20191231x10xk.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R43.htm</HtmlFileName>
      <LongName>2310301 - 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>43</Position>
    </Report>
    <Report instance="cgnx-20191231x10xk.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R44.htm</HtmlFileName>
      <LongName>2314301 - 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>44</Position>
    </Report>
    <Report instance="cgnx-20191231x10xk.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R45.htm</HtmlFileName>
      <LongName>2316301 - 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>45</Position>
    </Report>
    <Report instance="cgnx-20191231x10xk.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R46.htm</HtmlFileName>
      <LongName>2318301 - 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>46</Position>
    </Report>
    <Report instance="cgnx-20191231x10xk.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R47.htm</HtmlFileName>
      <LongName>2320301 - Disclosure - Taxes (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://cognex.com/role/TaxesTables</Role>
      <ShortName>Taxes (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://cognex.com/role/Taxes</ParentRole>
      <Position>47</Position>
    </Report>
    <Report instance="cgnx-20191231x10xk.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R48.htm</HtmlFileName>
      <LongName>2321301 - 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>48</Position>
    </Report>
    <Report instance="cgnx-20191231x10xk.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R49.htm</HtmlFileName>
      <LongName>2322301 - 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>49</Position>
    </Report>
    <Report instance="cgnx-20191231x10xk.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R50.htm</HtmlFileName>
      <LongName>2324301 - Disclosure - Acquisitions Acquisitions - (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://cognex.com/role/AcquisitionsAcquisitionsTables</Role>
      <ShortName>Acquisitions Acquisitions - (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <Position>50</Position>
    </Report>
    <Report instance="cgnx-20191231x10xk.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R51.htm</HtmlFileName>
      <LongName>2326301 - Disclosure - Selected Quarterly Financial Data (Unaudited) (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://cognex.com/role/SelectedQuarterlyFinancialDataUnauditedTables</Role>
      <ShortName>Selected Quarterly Financial Data (Unaudited) (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://cognex.com/role/SelectedQuarterlyFinancialDataUnaudited</ParentRole>
      <Position>51</Position>
    </Report>
    <Report instance="cgnx-20191231x10xk.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R52.htm</HtmlFileName>
      <LongName>2401402 - 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-20191231x10xk.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R53.htm</HtmlFileName>
      <LongName>2401404 - 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-20191231x10xk.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R54.htm</HtmlFileName>
      <LongName>2401405 - 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-20191231x10xk.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R55.htm</HtmlFileName>
      <LongName>2401406 - 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-20191231x10xk.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R56.htm</HtmlFileName>
      <LongName>2401407 - 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-20191231x10xk.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R57.htm</HtmlFileName>
      <LongName>2401408 - Disclosure - Summary of Significant Accounting Policies - Comprehensive Income (Loss) (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://cognex.com/role/SummaryOfSignificantAccountingPoliciesComprehensiveIncomeLossDetails</Role>
      <ShortName>Summary of Significant Accounting Policies - Comprehensive Income (Loss) (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>57</Position>
    </Report>
    <Report instance="cgnx-20191231x10xk.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R58.htm</HtmlFileName>
      <LongName>2402402 - Disclosure - New Pronouncements (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://cognex.com/role/NewPronouncementsDetails</Role>
      <ShortName>New Pronouncements (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://cognex.com/role/NewPronouncements</ParentRole>
      <Position>58</Position>
    </Report>
    <Report instance="cgnx-20191231x10xk.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R59.htm</HtmlFileName>
      <LongName>2403402 - 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/FairValueMeasurementsAssetsAndLiabilitiesMeasuredAtFairValueOnRecurringBasisDetail</Role>
      <ShortName>Fair Value Measurements - Assets and Liabilities Measured at Fair Value on a Recurring Basis (Detail)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>59</Position>
    </Report>
    <Report instance="cgnx-20191231x10xk.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R60.htm</HtmlFileName>
      <LongName>2403403 - Disclosure - Fair Value Measurements - Liabilities Measured on Recurring Basis, Unobservable Input Reconciliation (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://cognex.com/role/FairValueMeasurementsLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationDetails</Role>
      <ShortName>Fair Value Measurements - Liabilities Measured on Recurring Basis, Unobservable Input Reconciliation (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>60</Position>
    </Report>
    <Report instance="cgnx-20191231x10xk.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R61.htm</HtmlFileName>
      <LongName>2404402 - Disclosure - Cash, Cash Equivalents and Investments - Components of Cash, Cash Equivalents and Investments (Detail)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://cognex.com/role/CashCashEquivalentsAndInvestmentsComponentsOfCashCashEquivalentsAndInvestmentsDetail</Role>
      <ShortName>Cash, Cash Equivalents and Investments - Components of Cash, Cash Equivalents and Investments (Detail)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>61</Position>
    </Report>
    <Report instance="cgnx-20191231x10xk.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R62.htm</HtmlFileName>
      <LongName>2404403 - Disclosure - Cash, Cash Equivalents and Investments - Additional Information (Detail)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://cognex.com/role/CashCashEquivalentsAndInvestmentsAdditionalInformationDetail</Role>
      <ShortName>Cash, Cash Equivalents and Investments - Additional Information (Detail)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>62</Position>
    </Report>
    <Report instance="cgnx-20191231x10xk.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R63.htm</HtmlFileName>
      <LongName>2404404 - Disclosure - Cash, Cash Equivalents and Investments - Amortized Cost to Fair Value (Detail)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://cognex.com/role/CashCashEquivalentsAndInvestmentsAmortizedCostToFairValueDetail</Role>
      <ShortName>Cash, Cash Equivalents and Investments - Amortized Cost to Fair Value (Detail)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>63</Position>
    </Report>
    <Report instance="cgnx-20191231x10xk.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R64.htm</HtmlFileName>
      <LongName>2404405 - Disclosure - Cash, Cash Equivalents and Investments - Gross Unrealized Losses and Fair Value for Available-for-Sale Investments (Detail)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://cognex.com/role/CashCashEquivalentsAndInvestmentsGrossUnrealizedLossesAndFairValueForAvailableForSaleInvestmentsDetail</Role>
      <ShortName>Cash, Cash Equivalents and Investments - Gross Unrealized Losses and Fair Value for Available-for-Sale Investments (Detail)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>64</Position>
    </Report>
    <Report instance="cgnx-20191231x10xk.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R65.htm</HtmlFileName>
      <LongName>2404406 - 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>65</Position>
    </Report>
    <Report instance="cgnx-20191231x10xk.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R66.htm</HtmlFileName>
      <LongName>2405402 - Disclosure - Inventories - Inventories (Detail)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://cognex.com/role/InventoriesInventoriesDetail</Role>
      <ShortName>Inventories - Inventories (Detail)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>66</Position>
    </Report>
    <Report instance="cgnx-20191231x10xk.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R67.htm</HtmlFileName>
      <LongName>2406402 - 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>67</Position>
    </Report>
    <Report instance="cgnx-20191231x10xk.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R68.htm</HtmlFileName>
      <LongName>2406403 - 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>68</Position>
    </Report>
    <Report instance="cgnx-20191231x10xk.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R69.htm</HtmlFileName>
      <LongName>2407402 - 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>69</Position>
    </Report>
    <Report instance="cgnx-20191231x10xk.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R70.htm</HtmlFileName>
      <LongName>2407403 - 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>70</Position>
    </Report>
    <Report instance="cgnx-20191231x10xk.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R71.htm</HtmlFileName>
      <LongName>2407404 - Disclosure - Leases - Schedule of Rental Receipts (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://cognex.com/role/LeasesScheduleOfRentalReceiptsDetails</Role>
      <ShortName>Leases - Schedule of Rental Receipts (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>71</Position>
    </Report>
    <Report instance="cgnx-20191231x10xk.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R72.htm</HtmlFileName>
      <LongName>2408402 - Disclosure - Goodwill - Changes in the Carrying Value of Goodwill (Detail)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://cognex.com/role/GoodwillChangesInCarryingValueOfGoodwillDetail</Role>
      <ShortName>Goodwill - Changes in the Carrying Value of Goodwill (Detail)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>72</Position>
    </Report>
    <Report instance="cgnx-20191231x10xk.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R73.htm</HtmlFileName>
      <LongName>2409402 - Disclosure - Intangible Assets - Amortized Intangible Assets (Detail)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://cognex.com/role/IntangibleAssetsAmortizedIntangibleAssetsDetail</Role>
      <ShortName>Intangible Assets - Amortized Intangible Assets (Detail)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>73</Position>
    </Report>
    <Report instance="cgnx-20191231x10xk.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R74.htm</HtmlFileName>
      <LongName>2409403 - 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>74</Position>
    </Report>
    <Report instance="cgnx-20191231x10xk.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R75.htm</HtmlFileName>
      <LongName>2410402 - 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>75</Position>
    </Report>
    <Report instance="cgnx-20191231x10xk.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R76.htm</HtmlFileName>
      <LongName>2410403 - 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>76</Position>
    </Report>
    <Report instance="cgnx-20191231x10xk.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R77.htm</HtmlFileName>
      <LongName>2412401 - 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>77</Position>
    </Report>
    <Report instance="cgnx-20191231x10xk.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R78.htm</HtmlFileName>
      <LongName>2414402 - 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>78</Position>
    </Report>
    <Report instance="cgnx-20191231x10xk.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R79.htm</HtmlFileName>
      <LongName>2414403 - 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>79</Position>
    </Report>
    <Report instance="cgnx-20191231x10xk.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R80.htm</HtmlFileName>
      <LongName>2414404 - 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>80</Position>
    </Report>
    <Report instance="cgnx-20191231x10xk.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R81.htm</HtmlFileName>
      <LongName>2414405 - 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/DerivativeInstrumentsAssetsAndLiabilitiesPresentedOnNetBasisDueToRightOfOffsetDetails</Role>
      <ShortName>Derivative Instruments - Assets and liabilities presented on a net basis due to the right of offset (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>81</Position>
    </Report>
    <Report instance="cgnx-20191231x10xk.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R82.htm</HtmlFileName>
      <LongName>2414406 - 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>82</Position>
    </Report>
    <Report instance="cgnx-20191231x10xk.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R83.htm</HtmlFileName>
      <LongName>2414407 - Disclosure - Derivative Instruments - Changes in AOCI (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://cognex.com/role/DerivativeInstrumentsChangesInAociDetails</Role>
      <ShortName>Derivative Instruments - Changes in AOCI (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>83</Position>
    </Report>
    <Report instance="cgnx-20191231x10xk.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R84.htm</HtmlFileName>
      <LongName>2416402 - Disclosure - Revenue Recognition - Narratives (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://cognex.com/role/RevenueRecognitionNarrativesDetails</Role>
      <ShortName>Revenue Recognition - Narratives (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>84</Position>
    </Report>
    <Report instance="cgnx-20191231x10xk.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R85.htm</HtmlFileName>
      <LongName>2416403 - Disclosure - Revenue Recognition - Statement of Operations Impact (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://cognex.com/role/RevenueRecognitionStatementOfOperationsImpactDetails</Role>
      <ShortName>Revenue Recognition - Statement of Operations Impact (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>85</Position>
    </Report>
    <Report instance="cgnx-20191231x10xk.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R86.htm</HtmlFileName>
      <LongName>2416404 - Disclosure - Revenue Recognition - Balance Sheet Impact (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://cognex.com/role/RevenueRecognitionBalanceSheetImpactDetails</Role>
      <ShortName>Revenue Recognition - Balance Sheet Impact (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>86</Position>
    </Report>
    <Report instance="cgnx-20191231x10xk.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R87.htm</HtmlFileName>
      <LongName>2416405 - 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>87</Position>
    </Report>
    <Report instance="cgnx-20191231x10xk.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R88.htm</HtmlFileName>
      <LongName>2416406 - 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>88</Position>
    </Report>
    <Report instance="cgnx-20191231x10xk.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R89.htm</HtmlFileName>
      <LongName>2417401 - 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>89</Position>
    </Report>
    <Report instance="cgnx-20191231x10xk.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R90.htm</HtmlFileName>
      <LongName>2418402 - 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>90</Position>
    </Report>
    <Report instance="cgnx-20191231x10xk.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R91.htm</HtmlFileName>
      <LongName>2418403 - 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>91</Position>
    </Report>
    <Report instance="cgnx-20191231x10xk.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R92.htm</HtmlFileName>
      <LongName>2418404 - 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>92</Position>
    </Report>
    <Report instance="cgnx-20191231x10xk.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R93.htm</HtmlFileName>
      <LongName>2418405 - 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>93</Position>
    </Report>
    <Report instance="cgnx-20191231x10xk.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R94.htm</HtmlFileName>
      <LongName>2418406 - 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>94</Position>
    </Report>
    <Report instance="cgnx-20191231x10xk.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R95.htm</HtmlFileName>
      <LongName>2419401 - Disclosure - Employee Savings Plan - Additional Information (Detail)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://cognex.com/role/EmployeeSavingsPlanAdditionalInformationDetail</Role>
      <ShortName>Employee Savings Plan - Additional Information (Detail)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>95</Position>
    </Report>
    <Report instance="cgnx-20191231x10xk.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R96.htm</HtmlFileName>
      <LongName>2420402 - Disclosure - Taxes - Additional Information (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://cognex.com/role/TaxesAdditionalInformationDetails</Role>
      <ShortName>Taxes - Additional Information (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>96</Position>
    </Report>
    <Report instance="cgnx-20191231x10xk.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R97.htm</HtmlFileName>
      <LongName>2420403 - Disclosure - Taxes - Constituents of Provision for Income Taxes (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://cognex.com/role/TaxesConstituentsOfProvisionForIncomeTaxesDetails</Role>
      <ShortName>Taxes - Constituents of Provision for Income Taxes (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>97</Position>
    </Report>
    <Report instance="cgnx-20191231x10xk.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R98.htm</HtmlFileName>
      <LongName>2420404 - Disclosure - 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/TaxesReconciliationOfUnitedStatesFederalStatutoryCorporateTaxRateToCompanysEffectiveTaxRateOrIncomeTaxProvisionDetails</Role>
      <ShortName>Taxes - Reconciliation of the United States Federal Statutory Corporate Tax Rate to Company's Effective Tax Rate or Income Tax Provision (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>98</Position>
    </Report>
    <Report instance="cgnx-20191231x10xk.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R99.htm</HtmlFileName>
      <LongName>2420405 - Disclosure - Taxes - Schedule of Change in Accounting Policy (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://cognex.com/role/TaxesScheduleOfChangeInAccountingPolicyDetails</Role>
      <ShortName>Taxes - Schedule of Change in Accounting Policy (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>99</Position>
    </Report>
    <Report instance="cgnx-20191231x10xk.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R100.htm</HtmlFileName>
      <LongName>2420406 - Disclosure - Taxes - Changes in the Reserve for Income Taxes, Excluding Interest and Penalties (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://cognex.com/role/TaxesChangesInReserveForIncomeTaxesExcludingInterestAndPenaltiesDetails</Role>
      <ShortName>Taxes - Changes in the Reserve for Income Taxes, Excluding Interest and Penalties (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>100</Position>
    </Report>
    <Report instance="cgnx-20191231x10xk.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R101.htm</HtmlFileName>
      <LongName>2420407 - Disclosure - Taxes - Constituents of Deferred Tax Assets (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://cognex.com/role/TaxesConstituentsOfDeferredTaxAssetsDetails</Role>
      <ShortName>Taxes - Constituents of Deferred Tax Assets (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>101</Position>
    </Report>
    <Report instance="cgnx-20191231x10xk.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R102.htm</HtmlFileName>
      <LongName>2421402 - 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>102</Position>
    </Report>
    <Report instance="cgnx-20191231x10xk.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R103.htm</HtmlFileName>
      <LongName>2421403 - 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>103</Position>
    </Report>
    <Report instance="cgnx-20191231x10xk.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R104.htm</HtmlFileName>
      <LongName>2422402 - 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>104</Position>
    </Report>
    <Report instance="cgnx-20191231x10xk.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R105.htm</HtmlFileName>
      <LongName>2422403 - 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>105</Position>
    </Report>
    <Report instance="cgnx-20191231x10xk.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R106.htm</HtmlFileName>
      <LongName>2424402 - Disclosure - Acquisitions Acquisitions - (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://cognex.com/role/AcquisitionsAcquisitionsDetails</Role>
      <ShortName>Acquisitions Acquisitions - (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://cognex.com/role/AcquisitionsAcquisitionsTables</ParentRole>
      <Position>106</Position>
    </Report>
    <Report instance="cgnx-20191231x10xk.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R107.htm</HtmlFileName>
      <LongName>2424403 - Disclosure - Acquisitions - Sualab Co., Ltd. Narrative (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://cognex.com/role/AcquisitionsSualabCoLtdNarrativeDetails</Role>
      <ShortName>Acquisitions - Sualab Co., Ltd. Narrative (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>107</Position>
    </Report>
    <Report instance="cgnx-20191231x10xk.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R108.htm</HtmlFileName>
      <LongName>2424404 - Disclosure - Acquisitions - Sualab Co., Ltd. Purchase Price Allocation (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://cognex.com/role/AcquisitionsSualabCoLtdPurchasePriceAllocationDetails</Role>
      <ShortName>Acquisitions - Sualab Co., Ltd. Purchase Price Allocation (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>108</Position>
    </Report>
    <Report instance="cgnx-20191231x10xk.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R109.htm</HtmlFileName>
      <LongName>2424405 - Disclosure - Acquisitions - GVi Ventures, Inc. (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://cognex.com/role/AcquisitionsGviVenturesIncDetails</Role>
      <ShortName>Acquisitions - GVi Ventures, Inc. (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>109</Position>
    </Report>
    <Report instance="cgnx-20191231x10xk.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R110.htm</HtmlFileName>
      <LongName>2424406 - Disclosure - Acquisitions - GVi Ventures, Inc. Purchase Price Allocation (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://cognex.com/role/AcquisitionsGviVenturesIncPurchasePriceAllocationDetails</Role>
      <ShortName>Acquisitions - GVi Ventures, Inc. Purchase Price Allocation (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>110</Position>
    </Report>
    <Report instance="cgnx-20191231x10xk.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R111.htm</HtmlFileName>
      <LongName>2424407 - Disclosure - Acquisitions - ViDi Systems S.A. (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://cognex.com/role/AcquisitionsVidiSystemsSADetails</Role>
      <ShortName>Acquisitions - ViDi Systems S.A. (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>111</Position>
    </Report>
    <Report instance="cgnx-20191231x10xk.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R112.htm</HtmlFileName>
      <LongName>2424408 - Disclosure - Acquisitions - ViDi Systems S.A. Purchase Price Allocation (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://cognex.com/role/AcquisitionsVidiSystemsSAPurchasePriceAllocationDetails</Role>
      <ShortName>Acquisitions - ViDi Systems S.A. Purchase Price Allocation (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>112</Position>
    </Report>
    <Report instance="cgnx-20191231x10xk.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R113.htm</HtmlFileName>
      <LongName>2425401 - 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>113</Position>
    </Report>
    <Report instance="cgnx-20191231x10xk.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R114.htm</HtmlFileName>
      <LongName>2426402 - Disclosure - Selected Quarterly Financial Data (Unaudited) (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://cognex.com/role/SelectedQuarterlyFinancialDataUnauditedDetails</Role>
      <ShortName>Selected Quarterly Financial Data (Unaudited) (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://cognex.com/role/SelectedQuarterlyFinancialDataUnauditedTables</ParentRole>
      <Position>114</Position>
    </Report>
    <Report instance="cgnx-20191231x10xk.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R115.htm</HtmlFileName>
      <LongName>2427401 - 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>115</Position>
    </Report>
    <Report>
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <LongName>All Reports</LongName>
      <ReportType>Book</ReportType>
      <ShortName>All Reports</ShortName>
    </Report>
  </MyReports>
  <InputFiles>
    <File doctype="10-K" original="cgnx-20191231x10xk.htm">cgnx-20191231x10xk.htm</File>
    <File>cgnx-20191231.xsd</File>
    <File>cgnx-20191231_cal.xml</File>
    <File>cgnx-20191231_def.xml</File>
    <File>cgnx-20191231_lab.xml</File>
    <File>cgnx-20191231_pre.xml</File>
    <File>cgnx-20191231xexhibit21.htm</File>
    <File>cgnx-20191231xexhibit231.htm</File>
    <File>cgnx-20191231xexhibit311.htm</File>
    <File>cgnx-20191231xexhibit312.htm</File>
    <File>cgnx-20191231xexhibit321.htm</File>
    <File>cgnx-20191231xexhibit322.htm</File>
    <File>cgnxexhibit4bdescription.htm</File>
    <File>cgnxformofrsuagreement.htm</File>
    <File>cognexpreferabilitylette.htm</File>
  </InputFiles>
  <SupplementalFiles>
    <File>chart-1bf0ef3173995f79bb7.jpg</File>
  </SupplementalFiles>
  <BaseTaxonomies>
    <BaseTaxonomy>http://xbrl.sec.gov/currency/2017-01-31</BaseTaxonomy>
    <BaseTaxonomy>http://fasb.org/us-gaap/2018-01-31</BaseTaxonomy>
    <BaseTaxonomy>http://xbrl.sec.gov/dei/2019-01-31</BaseTaxonomy>
    <BaseTaxonomy>http://fasb.org/srt/2018-01-31</BaseTaxonomy>
    <BaseTaxonomy>http://xbrl.sec.gov/country/2017-01-31</BaseTaxonomy>
  </BaseTaxonomies>
  <HasPresentationLinkbase>true</HasPresentationLinkbase>
  <HasCalculationLinkbase>true</HasCalculationLinkbase>
</FilingSummary>
</XML>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>125
<FILENAME>R65.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.19.3.a.u2</span><table class="report" border="0" cellspacing="2" id="idp6855969312">
<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, 2019 </div>
<div>USD ($)</div>
</th>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_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="top.Show.showAR( this, 'defref_us-gaap_AvailableForSaleSecuritiesDebtMaturitiesWithinOneYearFairValue', window );">Less than 1 Year</a></td>
<td class="nump">$ 236,142<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterOneYearBeforeTwoYearsFairValue', window );">1-2 Years</a></td>
<td class="nump">312,021<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterTwoYearsBeforeThreeYearsFairValue', window );">2-3 Years</a></td>
<td class="nump">112,628<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterThreeYearsBeforeFourYearsFairValue', window );">3-4 Years</a></td>
<td class="nump">7,656<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterFourYearsBeforeFiveYearsFairValue', window );">4-5 Years</a></td>
<td class="nump">1,147<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AvailableForSaleSecuritiesDebtSecurities', window );">Fair Value, Total</a></td>
<td class="nump">669,594<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_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="top.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="top.Show.showAR( this, 'defref_us-gaap_AvailableForSaleSecuritiesDebtMaturitiesWithinOneYearFairValue', window );">Less than 1 Year</a></td>
<td class="nump">92,914<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterOneYearBeforeTwoYearsFairValue', window );">1-2 Years</a></td>
<td class="nump">187,917<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterTwoYearsBeforeThreeYearsFairValue', window );">2-3 Years</a></td>
<td class="nump">28,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="top.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="top.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="top.Show.showAR( this, 'defref_us-gaap_AvailableForSaleSecuritiesDebtSecurities', window );">Fair Value, Total</a></td>
<td class="nump">309,248<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_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="top.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="top.Show.showAR( this, 'defref_us-gaap_AvailableForSaleSecuritiesDebtMaturitiesWithinOneYearFairValue', window );">Less than 1 Year</a></td>
<td class="nump">65,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="top.Show.showAR( this, 'defref_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterOneYearBeforeTwoYearsFairValue', window );">1-2 Years</a></td>
<td class="nump">88,033<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterTwoYearsBeforeThreeYearsFairValue', window );">2-3 Years</a></td>
<td class="nump">54,208<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterThreeYearsBeforeFourYearsFairValue', window );">3-4 Years</a></td>
<td class="nump">4,233<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_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="top.Show.showAR( this, 'defref_us-gaap_AvailableForSaleSecuritiesDebtSecurities', window );">Fair Value, Total</a></td>
<td class="nump">212,098<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_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="top.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="top.Show.showAR( this, 'defref_us-gaap_AvailableForSaleSecuritiesDebtMaturitiesWithinOneYearFairValue', window );">Less than 1 Year</a></td>
<td class="nump">66,680<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterOneYearBeforeTwoYearsFairValue', window );">1-2 Years</a></td>
<td class="nump">17,744<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterTwoYearsBeforeThreeYearsFairValue', window );">2-3 Years</a></td>
<td class="nump">24,089<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterThreeYearsBeforeFourYearsFairValue', window );">3-4 Years</a></td>
<td class="nump">3,423<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterFourYearsBeforeFiveYearsFairValue', window );">4-5 Years</a></td>
<td class="nump">1,147<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AvailableForSaleSecuritiesDebtSecurities', window );">Fair Value, Total</a></td>
<td class="nump">113,083<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_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="top.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="top.Show.showAR( this, 'defref_us-gaap_AvailableForSaleSecuritiesDebtMaturitiesWithinOneYearFairValue', window );">Less than 1 Year</a></td>
<td class="nump">6,294<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterOneYearBeforeTwoYearsFairValue', window );">1-2 Years</a></td>
<td class="nump">16,005<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_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="top.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="top.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="top.Show.showAR( this, 'defref_us-gaap_AvailableForSaleSecuritiesDebtSecurities', window );">Fair Value, Total</a></td>
<td class="nump">22,299<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_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="top.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="top.Show.showAR( this, 'defref_us-gaap_AvailableForSaleSecuritiesDebtMaturitiesWithinOneYearFairValue', window );">Less than 1 Year</a></td>
<td class="nump">4,630<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterOneYearBeforeTwoYearsFairValue', window );">1-2 Years</a></td>
<td class="nump">2,322<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_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="top.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="top.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="top.Show.showAR( this, 'defref_us-gaap_AvailableForSaleSecuritiesDebtSecurities', window );">Fair Value, Total</a></td>
<td class="nump">6,952<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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="top.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="top.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="top.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="top.Show.showAR( this, 'defref_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterTwoYearsBeforeThreeYearsFairValue', window );">2-3 Years</a></td>
<td class="nump">5,914<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_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="top.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="top.Show.showAR( this, 'defref_us-gaap_AvailableForSaleSecuritiesDebtSecurities', window );">Fair Value, Total</a></td>
<td class="nump">$ 5,914<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>This 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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Fair value of investment in debt security measured at fair value with change in fair value recognized in other comprehensive income (available-for-sale), maturing in next fiscal year following latest fiscal year. Excludes interim and annual periods when interim period is reported on rolling approach, from latest statement of financial position date.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 320<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=82897076&amp;loc=d3e27198-111563<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 50<br> -Paragraph 2<br> -Subparagraph (d)<br> -URI http://asc.fasb.org/extlink&amp;oid=82897076&amp;loc=d3e27161-111563<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 320<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=75019621&amp;loc=d3e62586-112803<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of 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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 320<br> -SubTopic 10<br> -Section 45<br> -Paragraph 1<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=109979856&amp;loc=d3e26610-111562<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 50<br> -Paragraph 2<br> -Subparagraph (aa)<br> -URI http://asc.fasb.org/extlink&amp;oid=82897076&amp;loc=d3e27161-111563<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_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>126
<FILENAME>R95.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.19.3.a.u2</span><table class="report" border="0" cellspacing="2" id="idp6859889520">
<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, 2019</div></th>
<th class="th"><div>Dec. 31, 2018</div></th>
<th class="th"><div>Dec. 31, 2017</div></th>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_DefinedContributionPlanDisclosureLineItems', window );"><strong>Defined Contribution Plan Disclosure [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 custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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="top.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">10000.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="top.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="top.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="top.Show.showAR( this, 'defref_cgnx_CompanyContributionsVestAtEndOfTwoYear', window );">Company contributions vest at end of two years</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="top.Show.showAR( this, 'defref_cgnx_CompanyContributionsVestAtEndOfThreeYears', window );">Company contributions vest at end of three 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="rou">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_cgnx_CompanyContributionsVestAtEndOfFourYears', window );">Company contributions vest at end of four years</a></td>
<td class="nump">75.00%<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_cgnx_CompanyContributionsVestAtEndOfFiveYears', window );">Company contributions vest at end of five 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="top.Show.showAR( this, 'defref_us-gaap_DefinedContributionPlanCostRecognized', window );">Company contributions to employee savings plan</a></td>
<td class="nump">$ 2,729,000<span></span>
</td>
<td class="nump">$ 2,540,000<span></span>
</td>
<td class="nump">$ 2,030,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_CompanyContributionsVestAtEndOfFiveYears">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Company contributions vest at end of five years.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cgnx_CompanyContributionsVestAtEndOfFiveYears</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>num:percentItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_cgnx_CompanyContributionsVestAtEndOfFourYears">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Company contributions vest at end of four years.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">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>num:percentItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_cgnx_CompanyContributionsVestAtEndOfThreeYears">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Company contributions vest at end of three years.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">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>num:percentItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_cgnx_CompanyContributionsVestAtEndOfTwoYear">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Company contributions vest at end of two year.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">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>num:percentItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_cgnx_MinimumAgeToBeEligibleToDefinedContributionPlan">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Minimum age to be eligible to defined contribution plan.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">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_DefinedContributionPlanCostRecognized">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of cost for defined contribution plan.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 715<br> -SubTopic 70<br> -Section 50<br> -Paragraph 1<br> -URI http://asc.fasb.org/extlink&amp;oid=49170846&amp;loc=d3e28014-114942<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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_DefinedContributionPlanDisclosureLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DefinedContributionPlanDisclosureLineItems</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Percentage of employees' gross pay for which the employer contributes a matching contribution to a defined contribution plan.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">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>num:percentItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DefinedContributionPlanEmployerMatchingContributionPercentOfMatch">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Percentage employer matches of the employee's percentage contribution matched.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_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>num:percentItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DefinedContributionPlanMaximumAnnualContributionsPerEmployeePercent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Maximum percentage of employee gross pay the employee may contribute to a defined contribution plan.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">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>num:percentItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>127
<FILENAME>R91.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.19.3.a.u2</span><table class="report" border="0" cellspacing="2" id="idp6869211248">
<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, 2019 </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="top.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="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber', window );">Beginning balance outstanding | shares</a></td>
<td class="nump">13,789<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriod', window );">Granted | shares</a></td>
<td class="nump">2,990<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised', window );">Exercised | shares</a></td>
<td class="num">(3,018)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriod', window );">Forfeited or expired | shares</a></td>
<td class="num">(862)<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber', window );">Ending balance outstanding | shares</a></td>
<td class="nump">12,899<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice', window );">Beginning balance outstanding, weighted-average exercise price | $ / shares</a></td>
<td class="nump">$ 31.73<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice', window );">Granted, weighted-average exercise price | $ / shares</a></td>
<td class="nump">51.25<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice', window );">Exercised, weighted-average exercise price | $ / shares</a></td>
<td class="nump">21.40<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriodWeightedAverageExercisePrice', window );">Forfeited or expired, weighted-average exercise price | $ / shares</a></td>
<td class="nump">42.53<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice', window );">Ending balance outstanding, weighted-average exercise price | $ / shares</a></td>
<td class="nump">$ 37.95<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber', window );">Exercisable, Shares | shares</a></td>
<td class="nump">4,775<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableNumber', window );">Options vested or expected to vest | shares</a></td>
<td class="nump">11,724<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice', window );">Exercisable, weighted-average exercise price | $ / shares</a></td>
<td class="nump">$ 26.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="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice', window );">Options vested or expected to vest, weighted-average exercise price | $ / shares</a></td>
<td class="nump">$ 36.84<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2', window );">Outstanding, weighted-average remaining contractual term (in years)</a></td>
<td class="text">7 years 1 month 20 days<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1', window );">Exercisable, weighted-average remaining contractual term (in years)</a></td>
<td class="text">5 years 7 months 9 days<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1', window );">Options vested or expected to vest, weighted-average remaining contractual term (in years)</a></td>
<td class="text">7 years<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue', window );">Outstanding, aggregate intrinsic value | $</a></td>
<td class="nump">$ 236,318<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_cgnx_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableAggregateIntrinsicValue', window );">Exercisable, aggregate intrinsic value | $</a></td>
<td class="nump">141,277<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue', window );">Options vested or expected to vest, aggregate intrinsic value | $</a></td>
<td class="nump">$ 227,779<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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The number of shares into which fully or partially vested stock options outstanding as of the balance sheet date can be currently converted under the option plan.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(iii)<br> -URI http://asc.fasb.org/extlink&amp;oid=109197908&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The weighted-average price as of the balance sheet date at which grantees can acquire the shares reserved for issuance on vested portions of options outstanding and currently exercisable under the stock option plan.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(iii)<br> -URI http://asc.fasb.org/extlink&amp;oid=109197908&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>num:perShareItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriod">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>For 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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(iv)(3)-(4)<br> -URI http://asc.fasb.org/extlink&amp;oid=109197908&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Weighted average price of options that were either forfeited or expired.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(iv)(3)-(4)<br> -URI http://asc.fasb.org/extlink&amp;oid=109197908&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_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>num:perShareItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriod">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Net number of share options (or share units) granted during the period.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(iv)(1)<br> -URI http://asc.fasb.org/extlink&amp;oid=109197908&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount by which the current fair value of the underlying stock exceeds the exercise price of options outstanding.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -URI http://asc.fasb.org/extlink&amp;oid=109197908&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Number of options outstanding, including both vested and non-vested options.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -URI http://asc.fasb.org/extlink&amp;oid=109197908&amp;loc=d3e5070-113901<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(i)-(ii)<br> -URI http://asc.fasb.org/extlink&amp;oid=109197908&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>A 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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Weighted average price at which grantees can acquire the shares reserved for issuance under the stock option plan.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(i)<br> -URI http://asc.fasb.org/extlink&amp;oid=109197908&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>num:perShareItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Number of fully vested and expected to vest exercisable options that may be converted into shares under option plan. Includes, but is not limited to, unvested options for which requisite service period has not been rendered but that are expected to vest based on achievement of performance condition, if forfeitures are recognized when they occur.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (e)(2)<br> -URI http://asc.fasb.org/extlink&amp;oid=109197908&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableNumber</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount by which current fair value of underlying stock exceeds exercise price of fully vested and expected to vest options outstanding. Includes, but is not limited to, unvested options for which requisite service period has not been rendered but that are expected to vest based on achievement of performance condition, if forfeitures are recognized when they occur.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (e)<br> -URI http://asc.fasb.org/extlink&amp;oid=109197908&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Weighted-average exercise price, at which grantee can acquire shares reserved for issuance, for fully vested and expected to vest options outstanding. Includes, but is not limited to, unvested options for which requisite service period has not been rendered but that are expected to vest based on achievement of performance condition, if forfeitures are recognized when they occur.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (e)(1)<br> -URI http://asc.fasb.org/extlink&amp;oid=109197908&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>num:perShareItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Weighted average price at which option holders acquired shares when converting their stock options into shares.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>num:perShareItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Weighted average per share amount at which grantees can acquire shares of common stock by exercise of options.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>num:perShareItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Weighted average remaining contractual term for vested portions of options outstanding and currently exercisable or convertible, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents the reported fact of one year, five months, and thirteen days.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -URI http://asc.fasb.org/extlink&amp;oid=109197908&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:durationItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Weighted average remaining contractual term for option awards outstanding, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents the reported fact of one year, five months, and thirteen days.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (e)(1)<br> -URI http://asc.fasb.org/extlink&amp;oid=109197908&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:durationItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Weighted average remaining contractual term for fully vested and expected to vest options outstanding, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents reported fact of one year, five months, and thirteen days. Includes, but is not limited to, unvested options for which requisite service period has not been rendered but that are expected to vest based on achievement of performance condition, if forfeitures are recognized when they occur.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (e)(1)<br> -URI http://asc.fasb.org/extlink&amp;oid=109197908&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:durationItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Number of share options (or share units) exercised during the current period.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(iv)(2)<br> -URI http://asc.fasb.org/extlink&amp;oid=109197908&amp;loc=d3e5070-113901<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 505<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.3-04)<br> -URI http://asc.fasb.org/extlink&amp;oid=27012166&amp;loc=d3e187085-122770<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(28))<br> -URI http://asc.fasb.org/extlink&amp;oid=6877327&amp;loc=d3e13212-122682<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(29))<br> -URI http://asc.fasb.org/extlink&amp;oid=6877327&amp;loc=d3e13212-122682<br><br>Reference 5: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 505<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -URI http://asc.fasb.org/extlink&amp;oid=109259400&amp;loc=d3e21463-112644<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>128
<FILENAME>R61.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.19.3.a.u2</span><table class="report" border="0" cellspacing="2" id="idp6890088704">
<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, 2019</div></th>
<th class="th"><div>Dec. 31, 2018</div></th>
<th class="th"><div>Dec. 31, 2017</div></th>
<th class="th"><div>Dec. 31, 2016</div></th>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_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>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_Cash', window );">Cash</a></td>
<td class="nump">$ 155,498<span></span>
</td>
<td class="nump">$ 104,655<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_MoneyMarketFundsAtCarryingValue', window );">Money market instruments</a></td>
<td class="nump">15,933<span></span>
</td>
<td class="nump">3,557<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_CashAndCashEquivalentsAtCarryingValue', window );">Cash and cash equivalents</a></td>
<td class="nump">171,431<span></span>
</td>
<td class="nump">108,212<span></span>
</td>
<td class="nump">$ 106,582<span></span>
</td>
<td class="nump">$ 79,641<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AvailableForSaleSecuritiesDebtSecuritiesCurrent', window );">Current investments</a></td>
<td class="nump">240,470<span></span>
</td>
<td class="nump">427,348<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_LongTermInvestments', window );">Non-current investments</a></td>
<td class="nump">433,452<span></span>
</td>
<td class="nump">262,039<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="top.Show.showAR( this, 'defref_cgnx_CashCashEquivalentsShortTermAndLongTermInvestments', window );">Total</a></td>
<td class="nump">845,353<span></span>
</td>
<td class="nump">797,599<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_FinancialInstrumentAxis=us-gaap_USTreasuryBillSecuritiesMember', window );">Treasury Bills [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_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>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AvailableForSaleSecuritiesDebtSecuritiesCurrent', window );">Current investments</a></td>
<td class="nump">92,914<span></span>
</td>
<td class="nump">198,477<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AvailableForSaleSecuritiesDebtSecuritiesNoncurrent', window );">Long-term investments</a></td>
<td class="nump">216,334<span></span>
</td>
<td class="nump">32,760<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_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>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AvailableForSaleSecuritiesDebtSecuritiesCurrent', window );">Current investments</a></td>
<td class="nump">66,680<span></span>
</td>
<td class="nump">78,407<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AvailableForSaleSecuritiesDebtSecuritiesNoncurrent', window );">Long-term investments</a></td>
<td class="nump">46,403<span></span>
</td>
<td class="nump">53,631<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_FinancialInstrumentAxis=us-gaap_CorporateBondSecuritiesMember', window );">Corporate Bonds [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_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>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AvailableForSaleSecuritiesDebtSecuritiesCurrent', window );">Current investments</a></td>
<td class="nump">65,624<span></span>
</td>
<td class="nump">137,871<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AvailableForSaleSecuritiesDebtSecuritiesNoncurrent', window );">Long-term investments</a></td>
<td class="nump">146,474<span></span>
</td>
<td class="nump">162,566<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_FinancialInstrumentAxis=us-gaap_SovereignDebtSecuritiesMember', window );">Sovereign Bonds [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_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>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AvailableForSaleSecuritiesDebtSecuritiesCurrent', window );">Current investments</a></td>
<td class="nump">6,294<span></span>
</td>
<td class="nump">8,101<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AvailableForSaleSecuritiesDebtSecuritiesNoncurrent', window );">Long-term investments</a></td>
<td class="nump">16,005<span></span>
</td>
<td class="nump">6,316<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_FinancialInstrumentAxis=us-gaap_MunicipalBondsMember', window );">Municipal Bonds [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_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>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AvailableForSaleSecuritiesDebtSecuritiesCurrent', window );">Current investments</a></td>
<td class="nump">4,630<span></span>
</td>
<td class="nump">4,492<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AvailableForSaleSecuritiesDebtSecuritiesNoncurrent', window );">Long-term investments</a></td>
<td class="nump">2,322<span></span>
</td>
<td class="nump">845<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_FinancialInstrumentAxis=us-gaap_CertificatesOfDepositMember', window );">Certificates of Deposit [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_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>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AvailableForSaleSecuritiesDebtSecuritiesCurrent', window );">Current investments</a></td>
<td class="nump">4,328<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_FinancialInstrumentAxis=cgnx_AgencyBondsMember', window );">Agency Bonds [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="top.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>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AvailableForSaleSecuritiesDebtSecuritiesNoncurrent', window );">Long-term investments</a></td>
<td class="nump">$ 5,914<span></span>
</td>
<td class="nump">$ 5,921<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_CashCashEquivalentsShortTermAndLongTermInvestments">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Cash, cash equivalents, short term and long term investments.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of 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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 320<br> -SubTopic 10<br> -Section 45<br> -Paragraph 2<br> -URI http://asc.fasb.org/extlink&amp;oid=109979856&amp;loc=d3e26626-111562<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of investment in debt security measured at fair value with change in fair value recognized in net income (available-for-sale), classified as noncurrent.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 320<br> -SubTopic 10<br> -Section 45<br> -Paragraph 2<br> -URI http://asc.fasb.org/extlink&amp;oid=109979856&amp;loc=d3e26626-111562<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of currency on hand as well as demand deposits with banks or financial institutions. Includes other kinds of accounts that have the general characteristics of demand deposits. Excludes cash and cash equivalents within disposal group and discontinued operation.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02.1)<br> -URI http://asc.fasb.org/extlink&amp;oid=6877327&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of currency on hand as well as demand deposits with banks or financial institutions. Includes other kinds of accounts that have the general characteristics of demand deposits. Also includes short-term, highly liquid investments that are both readily convertible to known amounts of cash and so near their maturity that they present insignificant risk of changes in value because of changes in interest rates. Excludes cash and cash equivalents within disposal group and discontinued operation.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 4<br> -URI http://asc.fasb.org/extlink&amp;oid=109223946&amp;loc=d3e3044-108585<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section 45<br> -Paragraph 1<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=82887183&amp;loc=d3e6676-107765<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02.1)<br> -URI http://asc.fasb.org/extlink&amp;oid=6877327&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_CashAndCashEquivalentsAtCarryingValue</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LongTermInvestments">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The total amount of 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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02.12)<br> -URI http://asc.fasb.org/extlink&amp;oid=6877327&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_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=us-gaap_CertificatesOfDepositMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FinancialInstrumentAxis=us-gaap_CertificatesOfDepositMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_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>129
<FILENAME>R7.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.19.3.a.u2</span><table class="report" border="0" cellspacing="2" id="idp6886999136">
<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, 2019</div></th>
<th class="th"><div>Dec. 31, 2018</div></th>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_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="top.Show.showAR( this, 'defref_us-gaap_ValuationAllowancesAndReservesBalance', window );">SEC Schedule, 12-09, Valuation Allowances and Reserves, Amount</a></td>
<td class="nump">$ 1,821<span></span>
</td>
<td class="nump">$ 1,646<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_PreferredStockSharesAuthorized', window );">Preferred stock, shares authorized</a></td>
<td class="nump">400,000<span></span>
</td>
<td class="nump">400,000<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_PreferredStockSharesIssued', window );">Preferred stock, shares issued</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="top.Show.showAR( this, 'defref_us-gaap_PreferredStockSharesOutstanding', window );">Preferred stock, shares 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="top.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="top.Show.showAR( this, 'defref_us-gaap_CommonStockSharesAuthorized', window );">Common stock, shares authorized</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="top.Show.showAR( this, 'defref_us-gaap_CommonStockSharesIssued', window );">Common stock, shares issued</a></td>
<td class="nump">172,440,000<span></span>
</td>
<td class="nump">170,820,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="top.Show.showAR( this, 'defref_us-gaap_CommonStockSharesOutstanding', window );">Common stock, shares outstanding</a></td>
<td class="nump">172,440,000<span></span>
</td>
<td class="nump">170,820,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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(29))<br> -URI http://asc.fasb.org/extlink&amp;oid=6877327&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_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>num:perShareItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_CommonStockSharesAuthorized">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The maximum number of common shares permitted to be issued by an entity's charter and bylaws.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(29))<br> -URI http://asc.fasb.org/extlink&amp;oid=6877327&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Total number of common shares of an entity that have been sold or granted to shareholders (includes common shares that were issued, repurchased and remain in the treasury). These shares represent capital invested by the firm's shareholders and owners, and may be all or only a portion of the number of shares authorized. Shares issued include shares outstanding and shares held in the treasury.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(29))<br> -URI http://asc.fasb.org/extlink&amp;oid=6877327&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_CommonStockSharesIssued</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_CommonStockSharesOutstanding">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Number of shares of common stock outstanding. Common stock represent the ownership interest in a corporation.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 505<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -URI http://asc.fasb.org/extlink&amp;oid=109259400&amp;loc=d3e21463-112644<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(29))<br> -URI http://asc.fasb.org/extlink&amp;oid=6877327&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_CommonStockSharesOutstanding</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PreferredStockParOrStatedValuePerShare">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(28))<br> -URI http://asc.fasb.org/extlink&amp;oid=6877327&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_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>num:perShareItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PreferredStockSharesAuthorized">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The maximum 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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(28))<br> -URI http://asc.fasb.org/extlink&amp;oid=6877327&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_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_PreferredStockSharesIssued">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Total number of 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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(28))<br> -URI http://asc.fasb.org/extlink&amp;oid=6877327&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Aggregate 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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(28))<br> -URI http://asc.fasb.org/extlink&amp;oid=6877327&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of valuation and qualifying accounts and reserves.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 235<br> -SubTopic 10<br> -Section S99<br> -Paragraph 4<br> -Subparagraph (SX 210.12-09)<br> -URI http://asc.fasb.org/extlink&amp;oid=26873400&amp;loc=d3e24092-122690<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_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>130
<FILENAME>R3.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.19.3.a.u2</span><table class="report" border="0" cellspacing="2" id="idp6607602000">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>CONSOLIDATED STATEMENTS OF OPERATIONS (Parenthetical)<br></strong></div></th>
<th class="th" colspan="1"></th>
<th class="th" colspan="1">3 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Oct. 30, 2017</div></th>
<th class="th"><div>Dec. 31, 2017</div></th>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_IncomeStatementAbstract', window );"><strong>Income Statement [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="top.Show.showAR( this, 'defref_us-gaap_StockholdersEquityNoteStockSplitConversionRatio1', window );">Stock split</a></td>
<td class="nump">2<span></span>
</td>
<td class="nump">2<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_IncomeStatementAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_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_StockholdersEquityNoteStockSplitConversionRatio1">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Ratio applied to the conversion of stock split, for example but not limited to, one share converted to two or two shares converted to one.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 505<br> -SubTopic 10<br> -Section S99<br> -Paragraph 4<br> -Subparagraph (SAB TOPIC 4.C)<br> -URI http://asc.fasb.org/extlink&amp;oid=27012166&amp;loc=d3e187143-122770<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_StockholdersEquityNoteStockSplitConversionRatio1</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:pureItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>131
<FILENAME>R27.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.19.3.a.u2</span><table class="report" border="0" cellspacing="2" id="idp6878108816">
<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, 2019</div></th></tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_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="top.Show.showAR( this, 'defref_us-gaap_PensionAndOtherPostretirementBenefitsDisclosureTextBlock', window );">Employee Savings Plan</a></td>
<td class="text">Employee Savings Plan<div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Under the Company's Employee Savings Plan, a defined contribution plan, all U.S. employees who have attained age </span><span style="font-family:Arial;font-size:10pt;"><span>21</span></span><span style="font-family:Arial;font-size:10pt;"> may contribute up to </span><span style="font-family:Arial;font-size:10pt;"><span>100</span></span><span style="font-family:Arial;font-size:10pt;">% 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 </span><span style="font-family:Arial;font-size:10pt;"><span>50%</span></span><span style="font-family:Arial;font-size:10pt;"> of the first </span><span style="font-family:Arial;font-size:10pt;"><span>6%</span></span><span style="font-family:Arial;font-size:10pt;"> of pay an employee contributes.  Company contributions vest </span><span style="font-family:Arial;font-size:10pt;"><span>25%</span></span><span style="font-family:Arial;font-size:10pt;">, </span><span style="font-family:Arial;font-size:10pt;"><span>50%</span></span><span style="font-family:Arial;font-size:10pt;">, </span><span style="font-family:Arial;font-size:10pt;"><span>75%</span></span><span style="font-family:Arial;font-size:10pt;">, and </span><span style="font-family:Arial;font-size:10pt;"><span>100%</span></span><span style="font-family:Arial;font-size:10pt;"> after one, two, three, and four years of continuous employment with the Company, respectively.  Company contributions totaled </span><span style="font-family:Arial;font-size:10pt;"><span>$2,729,000</span></span><span style="font-family:Arial;font-size:10pt;"> in </span><span style="font-family:Arial;font-size:10pt;">2019</span><span style="font-family:Arial;font-size:10pt;">, </span><span style="font-family:Arial;font-size:10pt;"><span>$2,540,000</span></span><span style="font-family:Arial;font-size:10pt;"> in </span><span style="font-family:Arial;font-size:10pt;">2018</span><span style="font-family:Arial;font-size:10pt;">, and </span><span style="font-family:Arial;font-size:10pt;"><span>$2,030,000</span></span><span style="font-family:Arial;font-size:10pt;"> in </span><span style="font-family:Arial;font-size:10pt;">2017</span><span style="font-family:Arial;font-size:10pt;">.  Cognex stock is not an investment alternative and Company contributions are not made in the form of Cognex stock.</span></div><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_CompensationAndRetirementDisclosureAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The entire disclosure for pension and other postretirement benefits.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 715<br> -URI http://asc.fasb.org/topic&amp;trid=2235017<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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>nonnum:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>132
<FILENAME>R23.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.19.3.a.u2</span><table class="report" border="0" cellspacing="2" id="idp6864959360">
<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, 2019</div></th></tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_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="top.Show.showAR( this, 'defref_us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosureTextBlock', window );">Derivative Instruments</a></td>
<td class="text">Derivative Instruments<div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">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 may enter into two types of hedges to manage this risk.  The first are economic hedges which utilize foreign currency forward contracts with maturities of up to </span><span style="font-family:Arial;font-size:10pt;"><span>45 days</span></span><span style="font-family:Arial;font-size:10pt;"> to manage the exposure to fluctuations in foreign currency exchange rates arising primarily from foreign-denominated receivables and payables.  The gains and losses on these derivatives are intended to be offset by the changes in the fair value of the assets and liabilities being hedged.  These economic hedges are not designated as hedging instruments for hedge accounting treatment.  The second are cash flow hedges which utilize foreign currency forward contracts with maturities of up to </span><span style="font-family:Arial;font-size:10pt;"><span>18 months</span></span><span style="font-family:Arial;font-size:10pt;"> to hedge specific forecasted transactions of the Company's foreign subsidiaries with the goal of protecting our budgeted revenues and expenses against foreign currency exchange rate changes compared to our budgeted rates.  These cash flow hedges are designated as hedging instruments for hedge accounting treatment. The Company did not have any cash flow hedges as of December 31, 2019 and 2018. </span></div><div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">The Company had the following outstanding forward contracts (in thousands): </span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><div style="padding-left:0px;text-indent:0px;line-height:normal;padding-top:10px;"><table cellpadding="0" cellspacing="0" style="font-family:Times New Roman;font-size:10pt;width:100%;border-collapse:collapse;text-align:left;"><tr><td colspan="12"/></tr><tr><td style="width:49%;"/><td style="width:12%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:10%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:11%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:11%;"/><td style="width:1%;"/></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="5" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:center;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">December 31, 2019</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="5" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:center;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">December 31, 2018</span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;text-decoration:underline;">Currency</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;text-decoration:underline;">Notional Value</span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;text-decoration:underline;">USD Equivalent</span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;text-decoration:underline;">Notional Value</span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;text-decoration:underline;">USD Equivalent</span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:13px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:13px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:13px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:13px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:13px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:13px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td></tr><tr><td colspan="12" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-style:italic;">Derivatives Not Designated as Hedging Instruments:</span></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Korean Won</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>161,951,500</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>139,688</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>3,125,000</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>2,808</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Euro</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>18,000</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>20,249</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>23,000</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>26,330</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Japanese Yen</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>575,000</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>5,291</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>380,000</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>3,459</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Mexican Peso</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>80,000</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>4,223</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>&#8212;</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>&#8212;</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">British Pound</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>2,700</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>3,569</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>2,500</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>3,204</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Hungarian Forint</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>870,000</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>2,962</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>750,000</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>2,685</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Taiwanese Dollar</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>37,450</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>1,256</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>55,000</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>1,807</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Canadian Dollar</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>1,300</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>1,000</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>990</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>726</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Singapore Dollar</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>845</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>628</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>700</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>514</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr></table></div><span style="font-family:inherit;font-size:10pt;"><br/></span></div><div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Information regarding the fair value of the outstanding forward contracts was as follows (in thousands):</span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><div style="padding-left:0px;text-indent:0px;line-height:normal;padding-top:10px;"><table cellpadding="0" cellspacing="0" style="font-family:Times New Roman;font-size:10pt;width:100%;border-collapse:collapse;text-align:left;"><tr><td colspan="20"/></tr><tr><td style="width:15%;"/><td style="width:14%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:11%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:11%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:14%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:11%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:11%;"/><td style="width:1%;"/></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">&#160;</span></div></td><td colspan="9" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;font-weight:bold;">Asset Derivatives</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="9" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;font-weight:bold;">Liability Derivatives</span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td rowspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;border-top:1px solid #000000;"><div style="text-align:center;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;font-weight:bold;">Balance</span></div><div style="text-align:center;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;font-weight:bold;">Sheet</span></div><div style="text-align:center;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;font-weight:bold;">Location&#160; &#160;&#160;&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="7" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:center;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;font-weight:bold;">Fair Value</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td rowspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;border-top:1px solid #000000;"><div style="text-align:center;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;font-weight:bold;">Balance</span></div><div style="text-align:center;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;font-weight:bold;">Sheet</span></div><div style="text-align:center;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;font-weight:bold;">Location&#160; &#160;&#160;&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="7" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:center;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;font-weight:bold;">Fair Value</span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;font-weight:bold;">December 31, 2019</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;">December 31, 2018</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;font-weight:bold;">December 31, 2019</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:9pt;"><span style="font-family:Arial;font-size:9pt;">December 31, 2018</span></div></td></tr><tr><td colspan="20" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-style:italic;">Derivatives Not Designated as Hedging Instruments:</span></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Economic hedge forward contracts</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Prepaid expenses and other current assets</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>857</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>1</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Accrued expenses</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>23</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>106</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr></table></div><span style="font-family:inherit;font-size:10pt;"><br/></span></div><div style="line-height:120%;padding-top:12px;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">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 style="padding-left:0px;text-indent:0px;line-height:normal;padding-top:10px;"><table cellpadding="0" cellspacing="0" style="font-family:Times New Roman;font-size:10pt;width:99.80506822612085%;border-collapse:collapse;text-align:left;"><tr><td colspan="19"/></tr><tr><td style="width:18%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:13%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:13%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:19%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:13%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:11%;"/><td style="width:1%;"/></tr><tr><td colspan="9" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">Asset Derivatives</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="9" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">Liability Derivatives</span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">December&#160;31, 2019</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">December&#160;31, 2018</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">December&#160;31, 2019</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;border-top:1px solid #000000;"><div style="text-align:center;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">December&#160;31, 2018</span></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Gross amounts of recognized assets</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>857</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>1</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Gross amounts of recognized liabilities</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>23</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>106</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Gross amounts offset</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>&#8212;</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>&#8212;</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Gross amounts offset</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>&#8212;</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>&#8212;</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Net amount of assets presented</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>857</span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>1</span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Net amount of liabilities presented</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>23</span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>106</span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr></table></div><span style="font-family:inherit;font-size:10pt;"><br/></span></div><div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">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="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><div style="padding-left:0px;text-indent:0px;line-height:normal;padding-top:10px;"><table cellpadding="0" cellspacing="0" style="font-family:Times New Roman;font-size:10pt;width:99.80506822612085%;border-collapse:collapse;text-align:left;"><tr><td colspan="14"/></tr><tr><td style="width:22%;"/><td style="width:24%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:15%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:15%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:15%;"/><td style="width:1%;"/></tr><tr><td rowspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">&#160;</span></div></td><td rowspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;">Location in Financial Statements</span></div></td><td rowspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="11" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;">Year Ended December 31,</span></div></td></tr><tr><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;">2019</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">2018</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">2017</span></div></td></tr><tr><td colspan="14" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-style:italic;">Derivatives Designated as Hedging Instruments:</span></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Gains (losses) reclassified from accumulated other comprehensive income (loss) into current operations (effective portion)</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Revenue</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>&#8212;</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>&#8212;</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>30</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Research, development, and engineering expenses</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>&#8212;</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>&#8212;</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>3</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Selling, general, and administrative expenses</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>&#8212;</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>&#8212;</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>8</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Total gains (losses) reclassified from accumulated other comprehensive income (loss) into current operations</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>&#8212;</span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>&#8212;</span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>41</span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:13px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:13px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:13px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:13px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:13px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:13px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:13px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:13px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td></tr><tr><td colspan="14" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-style:italic;">Derivatives Not Designated as Hedging Instruments:</span></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Gains (losses) recognized in current operations</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Foreign currency gain (loss)</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>1,305</span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>(285</span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">)</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>270</span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr></table></div><span style="font-family:inherit;font-size:10pt;"><br/></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_DerivativeInstrumentsAndHedgingActivitiesDisclosureAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The entire disclosure for 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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 815<br> -URI http://asc.fasb.org/topic&amp;trid=2229140<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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>nonnum:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>133
<FILENAME>R113.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.19.3.a.u2</span><table class="report" border="0" cellspacing="2" id="idp6612915488">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>Subsequent Events - (Details) - Subsequent Event [Member]<br></strong></div></th>
<th class="th">
<div>Feb. 13, 2020 </div>
<div>$ / shares</div>
</th>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_SubsequentEventLineItems', window );"><strong>Subsequent Event [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_DividendsPayableAmountPerShare', window );">Dividends Payable, Amount Per Share</a></td>
<td class="nump">$ 0.055<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_DividendsPayableDateDeclaredDayMonthAndYear', window );">Dividends Payable, Date Declared</a></td>
<td class="text">Mar. 13,  2020<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_DividendsPayableDateOfRecordDayMonthAndYear', window );">Dividends Payable, Date of Record</a></td>
<td class="text">Feb. 28,  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_DividendsPayableAmountPerShare">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The per share amount of a dividend declared, but not paid, as of the financial reporting date.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -URI http://asc.fasb.org/extlink&amp;oid=98513485&amp;loc=d3e4304-108586<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_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>num:perShareItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DividendsPayableDateDeclaredDayMonthAndYear">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Date the dividend to be paid was declared, in CCYY-MM-DD format.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -URI http://asc.fasb.org/extlink&amp;oid=98513485&amp;loc=d3e4304-108586<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DividendsPayableDateDeclaredDayMonthAndYear</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</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_us-gaap_DividendsPayableDateOfRecordDayMonthAndYear">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Date the holder must own the stock to be entitled to the dividend, in CCYY-MM-DD format.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DividendsPayableDateOfRecordDayMonthAndYear</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</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_us-gaap_SubsequentEventLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_SubsequentEventTypeAxis=us-gaap_SubsequentEventMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>134
<FILENAME>R19.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.19.3.a.u2</span><table class="report" border="0" cellspacing="2" id="idp6626237104">
<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, 2019</div></th></tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_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="top.Show.showAR( this, 'defref_us-gaap_IntangibleAssetsDisclosureTextBlock', window );">Intangible Assets</a></td>
<td class="text">Intangible Assets<div style="line-height:120%;padding-top:6px;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Intangible assets consisted of the following (in thousands):</span></div><div style="line-height:120%;font-size:10pt;"><div style="padding-left:0px;text-indent:0px;line-height:normal;padding-top:10px;"><table cellpadding="0" cellspacing="0" style="font-family:Times New Roman;font-size:10pt;width:99.80506822612085%;border-collapse:collapse;text-align:left;"><tr><td colspan="12"/></tr><tr><td style="width:53%;"/><td style="width:1%;"/><td style="width:13%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:13%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:13%;"/><td style="width:1%;"/></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">Gross</span></div><div style="text-align:center;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">Carrying</span></div><div style="text-align:center;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">Value</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">Accumulated</span></div><div style="text-align:center;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">Amortization</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">Net</span></div><div style="text-align:center;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">Carrying</span></div><div style="text-align:center;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">Value</span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Distribution networks</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>38,060</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>38,060</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>&#8212;</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Completed technologies</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>31,987</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>9,160</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>22,827</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Customer relationships</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>14,407</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>6,402</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>8,005</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">In-process technologies</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>8,200</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>&#8212;</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>8,200</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Non-compete agreements</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>710</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>350</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>360</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Trademarks</span></div></td><td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>110</span></span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>12</span></span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>98</span></span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Balance as of December 31, 2019</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>93,474</span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>53,984</span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>39,490</span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:12px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:12px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:12px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:12px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:12px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:12px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">Gross</span></div><div style="text-align:center;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">Carrying</span></div><div style="text-align:center;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">Value</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">Accumulated</span></div><div style="text-align:center;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">Amortization</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">Net</span></div><div style="text-align:center;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">Carrying</span></div><div style="text-align:center;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">Value</span></div></td></tr><tr><td style="vertical-align:top;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Distribution networks</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>38,060</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>38,060</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>&#8212;</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Completed technologies</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>13,687</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>6,619</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>7,068</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Customer relationships</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>8,607</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>5,716</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>2,891</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Non-compete agreements</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>370</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>216</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>154</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Balance as of December 31, 2018</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>60,724</span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>50,611</span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>10,113</span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr></table></div><span style="font-family:inherit;font-size:10pt;"><br/></span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">In connection with the acquisition of Sualab Co., Ltd. in the fourth quarter of 2019, the Company acquired in-process technologies valued at </span><span style="font-family:Arial;font-size:10pt;"><span>$8,200,000</span></span><span style="font-family:Arial;font-size:10pt;">.  In-process technology is an indefinite-lived intangible asset until the technology is finalized, at which point it is amortized over its estimated useful life.</span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Estimated amortization expense for each of the five succeeding fiscal years and thereafter is as follows (in thousands):</span></div><div style="line-height:120%;font-size:10pt;"><div style="padding-left:0px;text-indent:0px;line-height:normal;padding-top:10px;"><table cellpadding="0" cellspacing="0" style="font-family:Times New Roman;font-size:10pt;width:100%;border-collapse:collapse;text-align:left;"><tr><td colspan="5"/></tr><tr><td style="width:82%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:15%;"/><td style="width:1%;"/></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;text-decoration:underline;">Year Ended December&#160;31,</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;">Amount</span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">2020</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>5,412</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">2021</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>5,232</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">2022</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>4,862</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">2023</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>4,160</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">2024</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>3,593</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Thereafter</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>8,031</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>31,290</span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr></table></div><span style="font-family:inherit;font-size:10pt;"><br/></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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The entire disclosure for all or part of the information related to intangible assets.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 350<br> -URI http://asc.fasb.org/topic&amp;trid=2144416<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IntangibleAssetsDisclosureTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>nonnum:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>135
<FILENAME>R15.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.19.3.a.u2</span><table class="report" border="0" cellspacing="2" id="idp6878152848">
<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, 2019</div></th></tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_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="top.Show.showAR( this, 'defref_us-gaap_InventoryDisclosureTextBlock', window );">Inventories</a></td>
<td class="text">Inventories<div style="line-height:120%;padding-top:6px;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Inventories consisted of the following (in thousands):</span></div><div style="line-height:120%;font-size:10pt;"><div style="padding-left:0px;text-indent:0px;line-height:normal;padding-top:10px;"><table cellpadding="0" cellspacing="0" style="font-family:Times New Roman;font-size:10pt;width:100%;border-collapse:collapse;text-align:left;"><tr><td colspan="8"/></tr><tr><td style="width:71%;"/><td style="width:1%;"/><td style="width:12%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:12%;"/><td style="width:1%;"/></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span><span style="font-family:inherit;font-size:8pt;">&#160;</span></div></td><td colspan="7" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;">December&#160;31,</span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;">2019</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;">2018</span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Raw materials</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>27,285</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>42,738</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Work-in-process</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>5,503</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>3,435</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Finished goods</span></div></td><td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>27,473</span></span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>37,109</span></span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>60,261</span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>83,282</span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr></table></div><span style="font-family:inherit;font-size:10pt;"><br/></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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The entire disclosure for inventory. Includes, but is not limited to, the basis of stating inventory, the method of determining inventory cost, the classes of inventory, and the nature of the cost elements included in inventory.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 330<br> -URI http://asc.fasb.org/topic&amp;trid=2126998<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_InventoryDisclosureTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>nonnum:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>136
<FILENAME>cgnx-20191231x10xk_htm.xml
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<XML>
<?xml version="1.0" encoding="utf-8"?>
<xbrl
  xmlns="http://www.xbrl.org/2003/instance"
  xmlns:cgnx="http://cognex.com/20191231"
  xmlns:country="http://xbrl.sec.gov/country/2017-01-31"
  xmlns:currency="http://xbrl.sec.gov/currency/2017-01-31"
  xmlns:dei="http://xbrl.sec.gov/dei/2019-01-31"
  xmlns:iso4217="http://www.xbrl.org/2003/iso4217"
  xmlns:link="http://www.xbrl.org/2003/linkbase"
  xmlns:srt="http://fasb.org/srt/2018-01-31"
  xmlns:us-gaap="http://fasb.org/us-gaap/2018-01-31"
  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-20191231.xsd" xlink:type="simple"/>
    <context id="FD2019Q4YTD">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
        </entity>
        <period>
            <startDate>2019-01-01</startDate>
            <endDate>2019-12-31</endDate>
        </period>
    </context>
    <context id="I2020Q1Jan26">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
        </entity>
        <period>
            <instant>2020-01-26</instant>
        </period>
    </context>
    <context id="FI2019Q2">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
        </entity>
        <period>
            <instant>2019-06-30</instant>
        </period>
    </context>
    <context id="FD2017Q4YTD">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
        </entity>
        <period>
            <startDate>2017-01-01</startDate>
            <endDate>2017-12-31</endDate>
        </period>
    </context>
    <context id="FD2018Q4YTD">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
        </entity>
        <period>
            <startDate>2018-01-01</startDate>
            <endDate>2018-12-31</endDate>
        </period>
    </context>
    <context id="FD2017Q4QTD">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
        </entity>
        <period>
            <startDate>2017-10-02</startDate>
            <endDate>2017-12-31</endDate>
        </period>
    </context>
    <context id="FI2018Q4">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
        </entity>
        <period>
            <instant>2018-12-31</instant>
        </period>
    </context>
    <context id="FI2019Q4">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
        </entity>
        <period>
            <instant>2019-12-31</instant>
        </period>
    </context>
    <context id="FI2017Q4">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
        </entity>
        <period>
            <instant>2017-12-31</instant>
        </period>
    </context>
    <context id="FI2016Q4">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
        </entity>
        <period>
            <instant>2016-12-31</instant>
        </period>
    </context>
    <context id="FD2019Q4YTD_us-gaap_StatementEquityComponentsAxis_us-gaap_AccumulatedOtherComprehensiveIncomeMember">
        <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>2019-01-01</startDate>
            <endDate>2019-12-31</endDate>
        </period>
    </context>
    <context id="FD2018Q4YTD_us-gaap_StatementEquityComponentsAxis_us-gaap_AdditionalPaidInCapitalMember">
        <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>2018-01-01</startDate>
            <endDate>2018-12-31</endDate>
        </period>
    </context>
    <context id="FD2017Q4YTD_us-gaap_StatementEquityComponentsAxis_us-gaap_RetainedEarningsMember">
        <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>2017-01-01</startDate>
            <endDate>2017-12-31</endDate>
        </period>
    </context>
    <context id="FD2019Q4YTD_us-gaap_StatementEquityComponentsAxis_us-gaap_CommonStockMember">
        <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>2019-01-01</startDate>
            <endDate>2019-12-31</endDate>
        </period>
    </context>
    <context id="FI2018Q4_us-gaap_StatementEquityComponentsAxis_us-gaap_AccumulatedOtherComprehensiveIncomeMember">
        <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>2018-12-31</instant>
        </period>
    </context>
    <context id="FI2017Q4_us-gaap_StatementEquityComponentsAxis_us-gaap_AdditionalPaidInCapitalMember">
        <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>2017-12-31</instant>
        </period>
    </context>
    <context id="FD2018Q4YTD_us-gaap_StatementEquityComponentsAxis_us-gaap_CommonStockMember">
        <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>2018-01-01</startDate>
            <endDate>2018-12-31</endDate>
        </period>
    </context>
    <context id="FI2016Q4_us-gaap_StatementEquityComponentsAxis_us-gaap_AccumulatedOtherComprehensiveIncomeMember">
        <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>2016-12-31</instant>
        </period>
    </context>
    <context id="FI2016Q4_us-gaap_StatementEquityComponentsAxis_us-gaap_AdditionalPaidInCapitalMember">
        <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>2016-12-31</instant>
        </period>
    </context>
    <context id="FD2018Q4YTD_us-gaap_StatementEquityComponentsAxis_us-gaap_AccumulatedOtherComprehensiveIncomeMember">
        <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>2018-01-01</startDate>
            <endDate>2018-12-31</endDate>
        </period>
    </context>
    <context id="FI2017Q4_us-gaap_StatementEquityComponentsAxis_us-gaap_AccumulatedOtherComprehensiveIncomeMember">
        <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>2017-12-31</instant>
        </period>
    </context>
    <context id="FD2017Q4YTD_us-gaap_StatementEquityComponentsAxis_us-gaap_CommonStockMember">
        <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>2017-01-01</startDate>
            <endDate>2017-12-31</endDate>
        </period>
    </context>
    <context id="FI2017Q4_us-gaap_StatementEquityComponentsAxis_us-gaap_CommonStockMember">
        <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>2017-12-31</instant>
        </period>
    </context>
    <context id="FI2018Q4_us-gaap_StatementEquityComponentsAxis_us-gaap_CommonStockMember">
        <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>2018-12-31</instant>
        </period>
    </context>
    <context id="FI2016Q4_us-gaap_StatementEquityComponentsAxis_us-gaap_RetainedEarningsMember">
        <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>2016-12-31</instant>
        </period>
    </context>
    <context id="FD2017Q4YTD_us-gaap_StatementEquityComponentsAxis_us-gaap_AccumulatedOtherComprehensiveIncomeMember">
        <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>2017-01-01</startDate>
            <endDate>2017-12-31</endDate>
        </period>
    </context>
    <context id="FD2017Q4YTD_us-gaap_StatementEquityComponentsAxis_us-gaap_AdditionalPaidInCapitalMember">
        <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>2017-01-01</startDate>
            <endDate>2017-12-31</endDate>
        </period>
    </context>
    <context id="FD2019Q4YTD_us-gaap_StatementEquityComponentsAxis_us-gaap_AdditionalPaidInCapitalMember">
        <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>2019-01-01</startDate>
            <endDate>2019-12-31</endDate>
        </period>
    </context>
    <context id="FI2016Q4_us-gaap_StatementEquityComponentsAxis_us-gaap_CommonStockMember">
        <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>2016-12-31</instant>
        </period>
    </context>
    <context id="FI2019Q4_us-gaap_StatementEquityComponentsAxis_us-gaap_CommonStockMember">
        <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="FD2019Q4YTD_us-gaap_StatementEquityComponentsAxis_us-gaap_RetainedEarningsMember">
        <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>2019-01-01</startDate>
            <endDate>2019-12-31</endDate>
        </period>
    </context>
    <context id="FI2019Q4_us-gaap_StatementEquityComponentsAxis_us-gaap_RetainedEarningsMember">
        <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="FD2018Q4YTD_us-gaap_StatementEquityComponentsAxis_us-gaap_RetainedEarningsMember">
        <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>2018-01-01</startDate>
            <endDate>2018-12-31</endDate>
        </period>
    </context>
    <context id="FI2018Q4_us-gaap_StatementEquityComponentsAxis_us-gaap_AdditionalPaidInCapitalMember">
        <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>2018-12-31</instant>
        </period>
    </context>
    <context id="FI2018Q4_us-gaap_StatementEquityComponentsAxis_us-gaap_RetainedEarningsMember">
        <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>2018-12-31</instant>
        </period>
    </context>
    <context id="FI2017Q4_us-gaap_StatementEquityComponentsAxis_us-gaap_RetainedEarningsMember">
        <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>2017-12-31</instant>
        </period>
    </context>
    <context id="FI2019Q4_us-gaap_StatementEquityComponentsAxis_us-gaap_AdditionalPaidInCapitalMember">
        <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="FI2019Q4_us-gaap_StatementEquityComponentsAxis_us-gaap_AccumulatedOtherComprehensiveIncomeMember">
        <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="FD2019Q4YTD_us-gaap_PropertyPlantAndEquipmentByTypeAxis_us-gaap_BuildingImprovementsMember">
        <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>2019-01-01</startDate>
            <endDate>2019-12-31</endDate>
        </period>
    </context>
    <context id="FD2019Q4YTD_srt_RangeAxis_srt_MaximumMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_cgnx_CompletedTechnologiesAndOtherIntangibleAssetsMember">
        <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>2019-01-01</startDate>
            <endDate>2019-12-31</endDate>
        </period>
    </context>
    <context id="FD2019Q4YTD_srt_RangeAxis_srt_MaximumMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_cgnx_CustomerContractsAndRelationshipsMember">
        <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>2019-01-01</startDate>
            <endDate>2019-12-31</endDate>
        </period>
    </context>
    <context id="FD2019Q4YTD_srt_RangeAxis_srt_MaximumMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_DistributionRightsMember">
        <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>2019-01-01</startDate>
            <endDate>2019-12-31</endDate>
        </period>
    </context>
    <context id="FD2019Q4YTD_srt_RangeAxis_srt_MaximumMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2019-01-01</startDate>
            <endDate>2019-12-31</endDate>
        </period>
    </context>
    <context id="FD2019Q4YTD_srt_RangeAxis_srt_MaximumMember_us-gaap_PropertyPlantAndEquipmentByTypeAxis_cgnx_ComputerHardwareAndSoftwareMember">
        <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>2019-01-01</startDate>
            <endDate>2019-12-31</endDate>
        </period>
    </context>
    <context id="FD2019Q4YTD_srt_RangeAxis_srt_MinimumMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MinimumMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2019-01-01</startDate>
            <endDate>2019-12-31</endDate>
        </period>
    </context>
    <context id="FD2019Q4YTD_srt_RangeAxis_srt_MaximumMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_NoncompeteAgreementsMember">
        <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>2019-01-01</startDate>
            <endDate>2019-12-31</endDate>
        </period>
    </context>
    <context id="FD2019Q4YTD_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_TrademarksMember">
        <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>2019-01-01</startDate>
            <endDate>2019-12-31</endDate>
        </period>
    </context>
    <context id="FD2019Q4YTD_us-gaap_PropertyPlantAndEquipmentByTypeAxis_us-gaap_BuildingMember">
        <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>2019-01-01</startDate>
            <endDate>2019-12-31</endDate>
        </period>
    </context>
    <context id="FD2019Q4YTD_srt_RangeAxis_srt_MinimumMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_cgnx_CompletedTechnologiesAndOtherIntangibleAssetsMember">
        <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>2019-01-01</startDate>
            <endDate>2019-12-31</endDate>
        </period>
    </context>
    <context id="FD2019Q4YTD_srt_RangeAxis_srt_MinimumMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_DistributionRightsMember">
        <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>2019-01-01</startDate>
            <endDate>2019-12-31</endDate>
        </period>
    </context>
    <context id="FD2019Q4YTD_srt_RangeAxis_srt_MinimumMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_NoncompeteAgreementsMember">
        <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>2019-01-01</startDate>
            <endDate>2019-12-31</endDate>
        </period>
    </context>
    <context id="FD2019Q4YTD_srt_RangeAxis_srt_MinimumMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_cgnx_CustomerContractsAndRelationshipsMember">
        <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>2019-01-01</startDate>
            <endDate>2019-12-31</endDate>
        </period>
    </context>
    <context id="FD2019Q4YTD_srt_RangeAxis_srt_MaximumMember_us-gaap_PropertyPlantAndEquipmentByTypeAxis_us-gaap_FurnitureAndFixturesMember">
        <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>2019-01-01</startDate>
            <endDate>2019-12-31</endDate>
        </period>
    </context>
    <context id="FD2019Q4YTD_srt_RangeAxis_srt_MinimumMember_us-gaap_PropertyPlantAndEquipmentByTypeAxis_cgnx_ComputerHardwareAndSoftwareMember">
        <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>2019-01-01</startDate>
            <endDate>2019-12-31</endDate>
        </period>
    </context>
    <context id="FD2019Q4YTD_srt_RangeAxis_srt_MinimumMember_us-gaap_PropertyPlantAndEquipmentByTypeAxis_us-gaap_FurnitureAndFixturesMember">
        <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>2019-01-01</startDate>
            <endDate>2019-12-31</endDate>
        </period>
    </context>
    <context id="FD2019Q4YTD_srt_RangeAxis_srt_MinimumMember_us-gaap_PropertyPlantAndEquipmentByTypeAxis_us-gaap_EquipmentMember">
        <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>2019-01-01</startDate>
            <endDate>2019-12-31</endDate>
        </period>
    </context>
    <context id="FD2019Q4YTD_srt_RangeAxis_srt_MaximumMember_us-gaap_PropertyPlantAndEquipmentByTypeAxis_us-gaap_EquipmentMember">
        <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>2019-01-01</startDate>
            <endDate>2019-12-31</endDate>
        </period>
    </context>
    <context id="FD2019Q4YTD_us-gaap_BusinessAcquisitionAxis_cgnx_ChiaroTechnologiesLLCMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">cgnx:ChiaroTechnologiesLLCMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2019-01-01</startDate>
            <endDate>2019-12-31</endDate>
        </period>
    </context>
    <context id="FD2018Q4YTD_us-gaap_BusinessAcquisitionAxis_cgnx_GViVenturesInc.Member">
        <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>
            <startDate>2018-01-01</startDate>
            <endDate>2018-12-31</endDate>
        </period>
    </context>
    <context id="FD2018Q4YTD_us-gaap_BusinessAcquisitionAxis_cgnx_ManateeWorksInc.Member">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">cgnx:ManateeWorksInc.Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2018-01-01</startDate>
            <endDate>2018-12-31</endDate>
        </period>
    </context>
    <context id="FD2018Q4YTD_us-gaap_BusinessAcquisitionAxis_cgnx_ChiaroTechnologiesLLCMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">cgnx:ChiaroTechnologiesLLCMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2018-01-01</startDate>
            <endDate>2018-12-31</endDate>
        </period>
    </context>
    <context id="FD2019Q4YTD_us-gaap_BusinessAcquisitionAxis_cgnx_GViVenturesInc.Member">
        <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>
            <startDate>2019-01-01</startDate>
            <endDate>2019-12-31</endDate>
        </period>
    </context>
    <context id="FI2016Q4_us-gaap_BusinessAcquisitionAxis_cgnx_ChiaroTechnologiesLLCMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">cgnx:ChiaroTechnologiesLLCMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2016-12-31</instant>
        </period>
    </context>
    <context id="FI2019Q4_us-gaap_FairValueByFairValueHierarchyLevelAxis_us-gaap_FairValueInputsLevel2Member_us-gaap_FairValueByMeasurementFrequencyAxis_us-gaap_FairValueMeasurementsRecurringMember">
        <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>2019-12-31</instant>
        </period>
    </context>
    <context id="FI2019Q4_us-gaap_FairValueByFairValueHierarchyLevelAxis_us-gaap_FairValueInputsLevel1Member_us-gaap_FairValueByMeasurementFrequencyAxis_us-gaap_FairValueMeasurementsRecurringMember">
        <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>2019-12-31</instant>
        </period>
    </context>
    <context id="FI2019Q4_us-gaap_FairValueByFairValueHierarchyLevelAxis_us-gaap_FairValueInputsLevel3Member_us-gaap_FairValueByMeasurementFrequencyAxis_us-gaap_FairValueMeasurementsRecurringMember">
        <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>2019-12-31</instant>
        </period>
    </context>
    <context id="FD2017Q4YTD_us-gaap_FairValueByMeasurementFrequencyAxis_us-gaap_FairValueMeasurementsRecurringMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByMeasurementFrequencyAxis">us-gaap:FairValueMeasurementsRecurringMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2017-01-01</startDate>
            <endDate>2017-12-31</endDate>
        </period>
    </context>
    <context id="FD2018Q4YTD_us-gaap_FairValueByMeasurementFrequencyAxis_us-gaap_FairValueMeasurementsRecurringMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByMeasurementFrequencyAxis">us-gaap:FairValueMeasurementsRecurringMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2018-01-01</startDate>
            <endDate>2018-12-31</endDate>
        </period>
    </context>
    <context id="FD2019Q4YTD_us-gaap_FairValueByMeasurementFrequencyAxis_us-gaap_FairValueMeasurementsRecurringMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByMeasurementFrequencyAxis">us-gaap:FairValueMeasurementsRecurringMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2019-01-01</startDate>
            <endDate>2019-12-31</endDate>
        </period>
    </context>
    <context id="FI2018Q4_us-gaap_FinancialInstrumentAxis_cgnx_AgencyBondsMember">
        <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>2018-12-31</instant>
        </period>
    </context>
    <context id="FI2019Q4_us-gaap_FinancialInstrumentAxis_us-gaap_USTreasuryBillSecuritiesMember">
        <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>2019-12-31</instant>
        </period>
    </context>
    <context id="FI2018Q4_us-gaap_FinancialInstrumentAxis_us-gaap_CorporateBondSecuritiesMember">
        <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>2018-12-31</instant>
        </period>
    </context>
    <context id="FI2019Q4_us-gaap_FinancialInstrumentAxis_us-gaap_MunicipalBondsMember">
        <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>2019-12-31</instant>
        </period>
    </context>
    <context id="FI2018Q4_us-gaap_FinancialInstrumentAxis_us-gaap_USTreasuryBillSecuritiesMember">
        <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>2018-12-31</instant>
        </period>
    </context>
    <context id="FI2018Q4_us-gaap_FinancialInstrumentAxis_us-gaap_CertificatesOfDepositMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">us-gaap:CertificatesOfDepositMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2018-12-31</instant>
        </period>
    </context>
    <context id="FI2019Q4_us-gaap_FinancialInstrumentAxis_us-gaap_CertificatesOfDepositMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">us-gaap:CertificatesOfDepositMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2019-12-31</instant>
        </period>
    </context>
    <context id="FI2018Q4_us-gaap_FinancialInstrumentAxis_us-gaap_SovereignDebtSecuritiesMember">
        <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>2018-12-31</instant>
        </period>
    </context>
    <context id="FI2018Q4_us-gaap_FinancialInstrumentAxis_us-gaap_AssetBackedSecuritiesMember">
        <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>2018-12-31</instant>
        </period>
    </context>
    <context id="FI2019Q4_us-gaap_FinancialInstrumentAxis_us-gaap_SovereignDebtSecuritiesMember">
        <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>2019-12-31</instant>
        </period>
    </context>
    <context id="FI2019Q4_us-gaap_FinancialInstrumentAxis_us-gaap_AssetBackedSecuritiesMember">
        <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>2019-12-31</instant>
        </period>
    </context>
    <context id="FI2019Q4_us-gaap_FinancialInstrumentAxis_us-gaap_CorporateBondSecuritiesMember">
        <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>2019-12-31</instant>
        </period>
    </context>
    <context id="FI2018Q4_us-gaap_FinancialInstrumentAxis_us-gaap_MunicipalBondsMember">
        <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>2018-12-31</instant>
        </period>
    </context>
    <context id="FI2019Q4_us-gaap_FinancialInstrumentAxis_cgnx_AgencyBondsMember">
        <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>2019-12-31</instant>
        </period>
    </context>
    <context id="FI2019Q4_us-gaap_FinancialInstrumentAxis_us-gaap_CorporateBondSecuritiesMember_us-gaap_InvestmentTypeAxis_us-gaap_ShortTermInvestmentsMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">us-gaap:CorporateBondSecuritiesMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:InvestmentTypeAxis">us-gaap:ShortTermInvestmentsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2019-12-31</instant>
        </period>
    </context>
    <context id="FI2019Q4_us-gaap_FinancialInstrumentAxis_cgnx_AgencyBondsMember_us-gaap_InvestmentTypeAxis_cgnx_LongTermInvestmentsMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">cgnx:AgencyBondsMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:InvestmentTypeAxis">cgnx:LongTermInvestmentsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2019-12-31</instant>
        </period>
    </context>
    <context id="FI2019Q4_us-gaap_FinancialInstrumentAxis_us-gaap_MunicipalBondsMember_us-gaap_InvestmentTypeAxis_us-gaap_ShortTermInvestmentsMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">us-gaap:MunicipalBondsMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:InvestmentTypeAxis">us-gaap:ShortTermInvestmentsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2019-12-31</instant>
        </period>
    </context>
    <context id="FI2019Q4_us-gaap_FinancialInstrumentAxis_us-gaap_SovereignDebtSecuritiesMember_us-gaap_InvestmentTypeAxis_us-gaap_ShortTermInvestmentsMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">us-gaap:SovereignDebtSecuritiesMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:InvestmentTypeAxis">us-gaap:ShortTermInvestmentsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2019-12-31</instant>
        </period>
    </context>
    <context id="FI2019Q4_us-gaap_FinancialInstrumentAxis_us-gaap_USTreasurySecuritiesMember_us-gaap_InvestmentTypeAxis_cgnx_LongTermInvestmentsMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">us-gaap:USTreasurySecuritiesMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:InvestmentTypeAxis">cgnx:LongTermInvestmentsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2019-12-31</instant>
        </period>
    </context>
    <context id="FI2019Q4_us-gaap_FinancialInstrumentAxis_us-gaap_AssetBackedSecuritiesMember_us-gaap_InvestmentTypeAxis_us-gaap_ShortTermInvestmentsMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">us-gaap:AssetBackedSecuritiesMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:InvestmentTypeAxis">us-gaap:ShortTermInvestmentsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2019-12-31</instant>
        </period>
    </context>
    <context id="FI2019Q4_us-gaap_FinancialInstrumentAxis_us-gaap_MunicipalBondsMember_us-gaap_InvestmentTypeAxis_cgnx_LongTermInvestmentsMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">us-gaap:MunicipalBondsMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:InvestmentTypeAxis">cgnx:LongTermInvestmentsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2019-12-31</instant>
        </period>
    </context>
    <context id="FI2019Q4_us-gaap_FinancialInstrumentAxis_us-gaap_AssetBackedSecuritiesMember_us-gaap_InvestmentTypeAxis_cgnx_LongTermInvestmentsMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">us-gaap:AssetBackedSecuritiesMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:InvestmentTypeAxis">cgnx:LongTermInvestmentsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2019-12-31</instant>
        </period>
    </context>
    <context id="FI2019Q4_us-gaap_FinancialInstrumentAxis_us-gaap_USTreasurySecuritiesMember_us-gaap_InvestmentTypeAxis_us-gaap_ShortTermInvestmentsMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">us-gaap:USTreasurySecuritiesMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:InvestmentTypeAxis">us-gaap:ShortTermInvestmentsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2019-12-31</instant>
        </period>
    </context>
    <context id="FI2019Q4_us-gaap_FinancialInstrumentAxis_us-gaap_SovereignDebtSecuritiesMember_us-gaap_InvestmentTypeAxis_cgnx_LongTermInvestmentsMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">us-gaap:SovereignDebtSecuritiesMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:InvestmentTypeAxis">cgnx:LongTermInvestmentsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2019-12-31</instant>
        </period>
    </context>
    <context id="FI2019Q4_us-gaap_FinancialInstrumentAxis_us-gaap_CorporateBondSecuritiesMember_us-gaap_InvestmentTypeAxis_cgnx_LongTermInvestmentsMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">us-gaap:CorporateBondSecuritiesMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:InvestmentTypeAxis">cgnx:LongTermInvestmentsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2019-12-31</instant>
        </period>
    </context>
    <context id="FI2019Q4_us-gaap_FinancialInstrumentAxis_us-gaap_USTreasurySecuritiesMember">
        <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>2019-12-31</instant>
        </period>
    </context>
    <context id="FI2018Q4_us-gaap_PropertyPlantAndEquipmentByTypeAxis_us-gaap_LeaseholdImprovementsMember">
        <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>2018-12-31</instant>
        </period>
    </context>
    <context id="FI2018Q4_us-gaap_PropertyPlantAndEquipmentByTypeAxis_us-gaap_LandMember">
        <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>2018-12-31</instant>
        </period>
    </context>
    <context id="FI2019Q4_us-gaap_PropertyPlantAndEquipmentByTypeAxis_cgnx_HardwareAndSoftwareMember">
        <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>2019-12-31</instant>
        </period>
    </context>
    <context id="FI2018Q4_us-gaap_PropertyPlantAndEquipmentByTypeAxis_us-gaap_FurnitureAndFixturesMember">
        <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>2018-12-31</instant>
        </period>
    </context>
    <context id="FI2019Q4_us-gaap_PropertyPlantAndEquipmentByTypeAxis_us-gaap_LeaseholdImprovementsMember">
        <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>2019-12-31</instant>
        </period>
    </context>
    <context id="FI2018Q4_us-gaap_PropertyPlantAndEquipmentByTypeAxis_us-gaap_BuildingImprovementsMember">
        <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>2018-12-31</instant>
        </period>
    </context>
    <context id="FI2019Q4_us-gaap_PropertyPlantAndEquipmentByTypeAxis_us-gaap_FurnitureAndFixturesMember">
        <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>2019-12-31</instant>
        </period>
    </context>
    <context id="FI2019Q4_us-gaap_PropertyPlantAndEquipmentByTypeAxis_us-gaap_BuildingMember">
        <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>2019-12-31</instant>
        </period>
    </context>
    <context id="FI2019Q4_us-gaap_PropertyPlantAndEquipmentByTypeAxis_us-gaap_BuildingImprovementsMember">
        <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>2019-12-31</instant>
        </period>
    </context>
    <context id="FI2018Q4_us-gaap_PropertyPlantAndEquipmentByTypeAxis_cgnx_HardwareAndSoftwareMember">
        <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>2018-12-31</instant>
        </period>
    </context>
    <context id="FI2019Q4_us-gaap_PropertyPlantAndEquipmentByTypeAxis_us-gaap_EquipmentMember">
        <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>2019-12-31</instant>
        </period>
    </context>
    <context id="FI2018Q4_us-gaap_PropertyPlantAndEquipmentByTypeAxis_us-gaap_EquipmentMember">
        <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>2018-12-31</instant>
        </period>
    </context>
    <context id="FI2018Q4_us-gaap_PropertyPlantAndEquipmentByTypeAxis_us-gaap_BuildingMember">
        <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>2018-12-31</instant>
        </period>
    </context>
    <context id="FI2019Q4_us-gaap_PropertyPlantAndEquipmentByTypeAxis_us-gaap_LandMember">
        <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>2019-12-31</instant>
        </period>
    </context>
    <context id="I2019Q1Jan01_us-gaap_AdjustmentsForNewAccountingPronouncementsAxis_us-gaap_AccountingStandardsUpdate201602Member">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AdjustmentsForNewAccountingPronouncementsAxis">us-gaap:AccountingStandardsUpdate201602Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2019-01-01</instant>
        </period>
    </context>
    <context id="FD2019Q4YTD_us-gaap_BusinessAcquisitionAxis_cgnx_SualabCo.Ltd.Member">
        <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-01-01</startDate>
            <endDate>2019-12-31</endDate>
        </period>
    </context>
    <context id="FI2019Q4_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_InProcessResearchAndDevelopmentMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:InProcessResearchAndDevelopmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2019-12-31</instant>
        </period>
    </context>
    <context id="FI2017Q4_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_cgnx_CustomerContractsAndRelationshipsMember">
        <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>2017-12-31</instant>
        </period>
    </context>
    <context id="FI2017Q4_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_DistributionRightsMember">
        <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>2017-12-31</instant>
        </period>
    </context>
    <context id="FI2017Q4_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_DevelopedTechnologyRightsMember">
        <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>2017-12-31</instant>
        </period>
    </context>
    <context id="FI2019Q4_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_DevelopedTechnologyRightsMember">
        <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>2019-12-31</instant>
        </period>
    </context>
    <context id="FI2019Q4_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_TrademarksMember">
        <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>2019-12-31</instant>
        </period>
    </context>
    <context id="FI2019Q4_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_DistributionRightsMember">
        <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>2019-12-31</instant>
        </period>
    </context>
    <context id="FI2017Q4_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_OtherIntangibleAssetsMember">
        <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>2017-12-31</instant>
        </period>
    </context>
    <context id="FI2019Q4_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_cgnx_CustomerContractsAndRelationshipsMember">
        <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>2019-12-31</instant>
        </period>
    </context>
    <context id="FI2019Q4_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_NoncompeteAgreementsMember">
        <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>2019-12-31</instant>
        </period>
    </context>
    <context id="FD2019Q4YTD_us-gaap_HedgingDesignationAxis_us-gaap_NondesignatedMember">
        <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>2019-01-01</startDate>
            <endDate>2019-12-31</endDate>
        </period>
    </context>
    <context id="FD2019Q4YTD_us-gaap_HedgingDesignationAxis_us-gaap_DesignatedAsHedgingInstrumentMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:HedgingDesignationAxis">us-gaap:DesignatedAsHedgingInstrumentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2019-01-01</startDate>
            <endDate>2019-12-31</endDate>
        </period>
    </context>
    <context id="FI2018Q4_us-gaap_BalanceSheetLocationAxis_us-gaap_PrepaidExpensesAndOtherCurrentAssetsMember_us-gaap_HedgingDesignationAxis_us-gaap_NondesignatedMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BalanceSheetLocationAxis">us-gaap:PrepaidExpensesAndOtherCurrentAssetsMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:HedgingDesignationAxis">us-gaap:NondesignatedMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2018-12-31</instant>
        </period>
    </context>
    <context id="FI2018Q4_us-gaap_BalanceSheetLocationAxis_cgnx_AccruedExpensesMember_us-gaap_HedgingDesignationAxis_us-gaap_NondesignatedMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BalanceSheetLocationAxis">cgnx:AccruedExpensesMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:HedgingDesignationAxis">us-gaap:NondesignatedMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2018-12-31</instant>
        </period>
    </context>
    <context id="FI2019Q4_us-gaap_BalanceSheetLocationAxis_cgnx_AccruedExpensesMember_us-gaap_HedgingDesignationAxis_us-gaap_NondesignatedMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BalanceSheetLocationAxis">cgnx:AccruedExpensesMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:HedgingDesignationAxis">us-gaap:NondesignatedMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2019-12-31</instant>
        </period>
    </context>
    <context id="FI2019Q4_us-gaap_BalanceSheetLocationAxis_us-gaap_PrepaidExpensesAndOtherCurrentAssetsMember_us-gaap_HedgingDesignationAxis_us-gaap_NondesignatedMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BalanceSheetLocationAxis">us-gaap:PrepaidExpensesAndOtherCurrentAssetsMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:HedgingDesignationAxis">us-gaap:NondesignatedMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2019-12-31</instant>
        </period>
    </context>
    <context id="FD2017Q4YTD_us-gaap_HedgingDesignationAxis_us-gaap_DesignatedAsHedgingInstrumentMember_us-gaap_IncomeStatementLocationAxis_us-gaap_SalesRevenueGoodsNetMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:HedgingDesignationAxis">us-gaap:DesignatedAsHedgingInstrumentMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:SalesRevenueGoodsNetMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2017-01-01</startDate>
            <endDate>2017-12-31</endDate>
        </period>
    </context>
    <context id="FD2017Q4YTD_us-gaap_HedgingDesignationAxis_us-gaap_DesignatedAsHedgingInstrumentMember_us-gaap_IncomeStatementLocationAxis_us-gaap_GeneralAndAdministrativeExpenseMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:HedgingDesignationAxis">us-gaap:DesignatedAsHedgingInstrumentMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:GeneralAndAdministrativeExpenseMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2017-01-01</startDate>
            <endDate>2017-12-31</endDate>
        </period>
    </context>
    <context id="FD2018Q4YTD_us-gaap_HedgingDesignationAxis_us-gaap_DesignatedAsHedgingInstrumentMember_us-gaap_IncomeStatementLocationAxis_us-gaap_CashFlowHedgingMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:HedgingDesignationAxis">us-gaap:DesignatedAsHedgingInstrumentMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:CashFlowHedgingMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2018-01-01</startDate>
            <endDate>2018-12-31</endDate>
        </period>
    </context>
    <context id="FD2017Q4YTD_us-gaap_HedgingDesignationAxis_us-gaap_NondesignatedMember_us-gaap_IncomeStatementLocationAxis_us-gaap_ForeignCurrencyGainLossMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:HedgingDesignationAxis">us-gaap:NondesignatedMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:ForeignCurrencyGainLossMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2017-01-01</startDate>
            <endDate>2017-12-31</endDate>
        </period>
    </context>
    <context id="FD2017Q4YTD_us-gaap_HedgingDesignationAxis_us-gaap_DesignatedAsHedgingInstrumentMember_us-gaap_IncomeStatementLocationAxis_us-gaap_CashFlowHedgingMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:HedgingDesignationAxis">us-gaap:DesignatedAsHedgingInstrumentMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:CashFlowHedgingMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2017-01-01</startDate>
            <endDate>2017-12-31</endDate>
        </period>
    </context>
    <context id="FD2019Q4YTD_us-gaap_HedgingDesignationAxis_us-gaap_NondesignatedMember_us-gaap_IncomeStatementLocationAxis_us-gaap_ForeignCurrencyGainLossMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:HedgingDesignationAxis">us-gaap:NondesignatedMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:ForeignCurrencyGainLossMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2019-01-01</startDate>
            <endDate>2019-12-31</endDate>
        </period>
    </context>
    <context id="FD2018Q4YTD_us-gaap_HedgingDesignationAxis_us-gaap_DesignatedAsHedgingInstrumentMember_us-gaap_IncomeStatementLocationAxis_us-gaap_ResearchAndDevelopmentExpenseMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:HedgingDesignationAxis">us-gaap:DesignatedAsHedgingInstrumentMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:ResearchAndDevelopmentExpenseMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2018-01-01</startDate>
            <endDate>2018-12-31</endDate>
        </period>
    </context>
    <context id="FD2018Q4YTD_us-gaap_HedgingDesignationAxis_us-gaap_DesignatedAsHedgingInstrumentMember_us-gaap_IncomeStatementLocationAxis_us-gaap_SalesRevenueGoodsNetMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:HedgingDesignationAxis">us-gaap:DesignatedAsHedgingInstrumentMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:SalesRevenueGoodsNetMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2018-01-01</startDate>
            <endDate>2018-12-31</endDate>
        </period>
    </context>
    <context id="FD2019Q4YTD_us-gaap_HedgingDesignationAxis_us-gaap_DesignatedAsHedgingInstrumentMember_us-gaap_IncomeStatementLocationAxis_us-gaap_GeneralAndAdministrativeExpenseMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:HedgingDesignationAxis">us-gaap:DesignatedAsHedgingInstrumentMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:GeneralAndAdministrativeExpenseMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2019-01-01</startDate>
            <endDate>2019-12-31</endDate>
        </period>
    </context>
    <context id="FD2019Q4YTD_us-gaap_HedgingDesignationAxis_us-gaap_DesignatedAsHedgingInstrumentMember_us-gaap_IncomeStatementLocationAxis_us-gaap_ResearchAndDevelopmentExpenseMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:HedgingDesignationAxis">us-gaap:DesignatedAsHedgingInstrumentMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:ResearchAndDevelopmentExpenseMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2019-01-01</startDate>
            <endDate>2019-12-31</endDate>
        </period>
    </context>
    <context id="FD2019Q4YTD_us-gaap_HedgingDesignationAxis_us-gaap_DesignatedAsHedgingInstrumentMember_us-gaap_IncomeStatementLocationAxis_us-gaap_CashFlowHedgingMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:HedgingDesignationAxis">us-gaap:DesignatedAsHedgingInstrumentMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:CashFlowHedgingMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2019-01-01</startDate>
            <endDate>2019-12-31</endDate>
        </period>
    </context>
    <context id="FD2018Q4YTD_us-gaap_HedgingDesignationAxis_us-gaap_NondesignatedMember_us-gaap_IncomeStatementLocationAxis_us-gaap_ForeignCurrencyGainLossMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:HedgingDesignationAxis">us-gaap:NondesignatedMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:ForeignCurrencyGainLossMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2018-01-01</startDate>
            <endDate>2018-12-31</endDate>
        </period>
    </context>
    <context id="FD2019Q4YTD_us-gaap_HedgingDesignationAxis_us-gaap_DesignatedAsHedgingInstrumentMember_us-gaap_IncomeStatementLocationAxis_us-gaap_SalesRevenueGoodsNetMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:HedgingDesignationAxis">us-gaap:DesignatedAsHedgingInstrumentMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:SalesRevenueGoodsNetMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2019-01-01</startDate>
            <endDate>2019-12-31</endDate>
        </period>
    </context>
    <context id="FD2017Q4YTD_us-gaap_HedgingDesignationAxis_us-gaap_DesignatedAsHedgingInstrumentMember_us-gaap_IncomeStatementLocationAxis_us-gaap_ResearchAndDevelopmentExpenseMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:HedgingDesignationAxis">us-gaap:DesignatedAsHedgingInstrumentMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:ResearchAndDevelopmentExpenseMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2017-01-01</startDate>
            <endDate>2017-12-31</endDate>
        </period>
    </context>
    <context id="FD2018Q4YTD_us-gaap_HedgingDesignationAxis_us-gaap_DesignatedAsHedgingInstrumentMember_us-gaap_IncomeStatementLocationAxis_us-gaap_GeneralAndAdministrativeExpenseMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:HedgingDesignationAxis">us-gaap:DesignatedAsHedgingInstrumentMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:GeneralAndAdministrativeExpenseMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2018-01-01</startDate>
            <endDate>2018-12-31</endDate>
        </period>
    </context>
    <context id="FI2018Q4_srt_CurrencyAxis_currency_SGD_us-gaap_HedgingDesignationAxis_us-gaap_NondesignatedMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:CurrencyAxis">currency:SGD</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:HedgingDesignationAxis">us-gaap:NondesignatedMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2018-12-31</instant>
        </period>
    </context>
    <context id="FI2019Q4_srt_CurrencyAxis_currency_SGD_us-gaap_HedgingDesignationAxis_us-gaap_NondesignatedMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:CurrencyAxis">currency:SGD</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:HedgingDesignationAxis">us-gaap:NondesignatedMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2019-12-31</instant>
        </period>
    </context>
    <context id="FI2018Q4_srt_CurrencyAxis_currency_TWD_us-gaap_HedgingDesignationAxis_us-gaap_NondesignatedMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:CurrencyAxis">currency:TWD</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:HedgingDesignationAxis">us-gaap:NondesignatedMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2018-12-31</instant>
        </period>
    </context>
    <context id="FI2018Q4_srt_CurrencyAxis_currency_EUR_us-gaap_HedgingDesignationAxis_us-gaap_NondesignatedMember">
        <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>2018-12-31</instant>
        </period>
    </context>
    <context id="FI2019Q4_srt_CurrencyAxis_currency_KRW_us-gaap_HedgingDesignationAxis_us-gaap_NondesignatedMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:CurrencyAxis">currency:KRW</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:HedgingDesignationAxis">us-gaap:NondesignatedMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2019-12-31</instant>
        </period>
    </context>
    <context id="FI2018Q4_srt_CurrencyAxis_currency_GBP_us-gaap_HedgingDesignationAxis_us-gaap_NondesignatedMember">
        <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>2018-12-31</instant>
        </period>
    </context>
    <context id="FI2019Q4_srt_CurrencyAxis_currency_GBP_us-gaap_HedgingDesignationAxis_us-gaap_NondesignatedMember">
        <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>2019-12-31</instant>
        </period>
    </context>
    <context id="FI2019Q4_srt_CurrencyAxis_currency_TWD_us-gaap_HedgingDesignationAxis_us-gaap_NondesignatedMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:CurrencyAxis">currency:TWD</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:HedgingDesignationAxis">us-gaap:NondesignatedMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2019-12-31</instant>
        </period>
    </context>
    <context id="FI2018Q4_srt_CurrencyAxis_currency_KRW_us-gaap_HedgingDesignationAxis_us-gaap_NondesignatedMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:CurrencyAxis">currency:KRW</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:HedgingDesignationAxis">us-gaap:NondesignatedMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2018-12-31</instant>
        </period>
    </context>
    <context id="FI2019Q4_srt_CurrencyAxis_currency_JPY_us-gaap_HedgingDesignationAxis_us-gaap_NondesignatedMember">
        <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>2019-12-31</instant>
        </period>
    </context>
    <context id="FI2019Q4_srt_CurrencyAxis_currency_MXN_us-gaap_HedgingDesignationAxis_us-gaap_NondesignatedMember">
        <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>2019-12-31</instant>
        </period>
    </context>
    <context id="FI2018Q4_srt_CurrencyAxis_currency_MXN_us-gaap_HedgingDesignationAxis_us-gaap_NondesignatedMember">
        <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>2018-12-31</instant>
        </period>
    </context>
    <context id="FI2018Q4_srt_CurrencyAxis_currency_CAD_us-gaap_HedgingDesignationAxis_us-gaap_NondesignatedMember">
        <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>2018-12-31</instant>
        </period>
    </context>
    <context id="FI2018Q4_srt_CurrencyAxis_currency_HUF_us-gaap_HedgingDesignationAxis_us-gaap_NondesignatedMember">
        <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>2018-12-31</instant>
        </period>
    </context>
    <context id="FI2019Q4_srt_CurrencyAxis_currency_CAD_us-gaap_HedgingDesignationAxis_us-gaap_NondesignatedMember">
        <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>2019-12-31</instant>
        </period>
    </context>
    <context id="FI2018Q4_srt_CurrencyAxis_currency_JPY_us-gaap_HedgingDesignationAxis_us-gaap_NondesignatedMember">
        <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>2018-12-31</instant>
        </period>
    </context>
    <context id="FI2019Q4_srt_CurrencyAxis_currency_HUF_us-gaap_HedgingDesignationAxis_us-gaap_NondesignatedMember">
        <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>2019-12-31</instant>
        </period>
    </context>
    <context id="FI2019Q4_srt_CurrencyAxis_currency_EUR_us-gaap_HedgingDesignationAxis_us-gaap_NondesignatedMember">
        <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>2019-12-31</instant>
        </period>
    </context>
    <context id="FD2017Q4YTD_srt_StatementGeographicalAxis_cgnx_OtherAsiaMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">cgnx:OtherAsiaMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2017-01-01</startDate>
            <endDate>2017-12-31</endDate>
        </period>
    </context>
    <context id="FD2018Q4YTD_srt_StatementGeographicalAxis_srt_EuropeMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">srt:EuropeMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2018-01-01</startDate>
            <endDate>2018-12-31</endDate>
        </period>
    </context>
    <context id="FD2017Q4YTD_srt_StatementGeographicalAxis_cgnx_GreaterChinaMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">cgnx:GreaterChinaMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2017-01-01</startDate>
            <endDate>2017-12-31</endDate>
        </period>
    </context>
    <context id="FD2018Q4YTD_srt_StatementGeographicalAxis_cgnx_GreaterChinaMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">cgnx:GreaterChinaMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2018-01-01</startDate>
            <endDate>2018-12-31</endDate>
        </period>
    </context>
    <context id="FD2019Q4YTD_srt_StatementGeographicalAxis_srt_EuropeMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">srt:EuropeMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2019-01-01</startDate>
            <endDate>2019-12-31</endDate>
        </period>
    </context>
    <context id="FD2018Q4YTD_srt_StatementGeographicalAxis_cgnx_OtherAsiaMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">cgnx:OtherAsiaMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2018-01-01</startDate>
            <endDate>2018-12-31</endDate>
        </period>
    </context>
    <context id="FD2017Q4YTD_srt_StatementGeographicalAxis_srt_AmericasMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">srt:AmericasMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2017-01-01</startDate>
            <endDate>2017-12-31</endDate>
        </period>
    </context>
    <context id="FD2017Q4YTD_srt_StatementGeographicalAxis_srt_EuropeMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">srt:EuropeMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2017-01-01</startDate>
            <endDate>2017-12-31</endDate>
        </period>
    </context>
    <context id="FD2019Q4YTD_srt_StatementGeographicalAxis_cgnx_GreaterChinaMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">cgnx:GreaterChinaMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2019-01-01</startDate>
            <endDate>2019-12-31</endDate>
        </period>
    </context>
    <context id="FD2019Q4YTD_srt_StatementGeographicalAxis_srt_AmericasMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">srt:AmericasMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2019-01-01</startDate>
            <endDate>2019-12-31</endDate>
        </period>
    </context>
    <context id="FD2018Q4YTD_srt_StatementGeographicalAxis_srt_AmericasMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">srt:AmericasMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2018-01-01</startDate>
            <endDate>2018-12-31</endDate>
        </period>
    </context>
    <context id="FD2019Q4YTD_srt_StatementGeographicalAxis_cgnx_OtherAsiaMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">cgnx:OtherAsiaMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2019-01-01</startDate>
            <endDate>2019-12-31</endDate>
        </period>
    </context>
    <context id="FD2019Q4YTD_srt_ProductOrServiceAxis_cgnx_ApplicationofCustomerSpecificSolutionsMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">cgnx:ApplicationofCustomerSpecificSolutionsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2019-01-01</startDate>
            <endDate>2019-12-31</endDate>
        </period>
    </context>
    <context id="FD2019Q4YTD_srt_ProductOrServiceAxis_cgnx_StandardProductandServicesMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">cgnx:StandardProductandServicesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2019-01-01</startDate>
            <endDate>2019-12-31</endDate>
        </period>
    </context>
    <context id="FD2017Q4YTD_srt_ProductOrServiceAxis_cgnx_StandardProductandServicesMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">cgnx:StandardProductandServicesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2017-01-01</startDate>
            <endDate>2017-12-31</endDate>
        </period>
    </context>
    <context id="FD2018Q4YTD_srt_ProductOrServiceAxis_cgnx_StandardProductandServicesMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">cgnx:StandardProductandServicesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2018-01-01</startDate>
            <endDate>2018-12-31</endDate>
        </period>
    </context>
    <context id="FD2018Q4YTD_srt_ProductOrServiceAxis_cgnx_ApplicationofCustomerSpecificSolutionsMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">cgnx:ApplicationofCustomerSpecificSolutionsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2018-01-01</startDate>
            <endDate>2018-12-31</endDate>
        </period>
    </context>
    <context id="FD2017Q4YTD_srt_ProductOrServiceAxis_cgnx_ApplicationofCustomerSpecificSolutionsMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">cgnx:ApplicationofCustomerSpecificSolutionsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2017-01-01</startDate>
            <endDate>2017-12-31</endDate>
        </period>
    </context>
    <context id="D2018Q1Feb.1-28_us-gaap_ShareRepurchaseProgramAxis_cgnx_RepurchaseProgramTwentyFifteenMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:ShareRepurchaseProgramAxis">cgnx:RepurchaseProgramTwentyFifteenMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2018-02-01</startDate>
            <endDate>2018-02-28</endDate>
        </period>
    </context>
    <context id="FD2019Q4YTD_us-gaap_ShareRepurchaseProgramAxis_cgnx_RepurchaseProgramOctober2018Member">
        <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>2019-01-01</startDate>
            <endDate>2019-12-31</endDate>
        </period>
    </context>
    <context id="I2018Q2Apr25">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
        </entity>
        <period>
            <instant>2018-04-25</instant>
        </period>
    </context>
    <context id="FD2019Q4YTD_us-gaap_ShareRepurchaseProgramAxis_cgnx_RepurchaseProgramTwentyFifteenMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:ShareRepurchaseProgramAxis">cgnx:RepurchaseProgramTwentyFifteenMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2019-01-01</startDate>
            <endDate>2019-12-31</endDate>
        </period>
    </context>
    <context id="FD2018Q4YTD_us-gaap_ShareRepurchaseProgramAxis_cgnx_RepurchaseProgramOctober2018Member">
        <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>2018-01-01</startDate>
            <endDate>2018-12-31</endDate>
        </period>
    </context>
    <context id="FD2018Q1QTD_us-gaap_ShareRepurchaseProgramAxis_cgnx_RepurchaseProgram2014Member">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:ShareRepurchaseProgramAxis">cgnx:RepurchaseProgram2014Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2018-01-01</startDate>
            <endDate>2018-04-01</endDate>
        </period>
    </context>
    <context id="FI2018Q3_us-gaap_ShareRepurchaseProgramAxis_cgnx_RepurchaseProgramNovember2015Member">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:ShareRepurchaseProgramAxis">cgnx:RepurchaseProgramNovember2015Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2018-09-30</instant>
        </period>
    </context>
    <context id="FD2018Q3YTD">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
        </entity>
        <period>
            <startDate>2018-01-01</startDate>
            <endDate>2018-09-30</endDate>
        </period>
    </context>
    <context id="FD2018Q1QTD_us-gaap_ShareRepurchaseProgramAxis_cgnx_RepurchaseProgram2014Member_us-gaap_StatementClassOfStockAxis_us-gaap_CommonStockMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:ShareRepurchaseProgramAxis">cgnx:RepurchaseProgram2014Member</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">us-gaap:CommonStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2018-01-01</startDate>
            <endDate>2018-04-01</endDate>
        </period>
    </context>
    <context id="D2017Q4SD">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
        </entity>
        <period>
            <startDate>2017-10-30</startDate>
            <endDate>2017-10-30</endDate>
        </period>
    </context>
    <context id="I2017Q2Apr12_us-gaap_ShareRepurchaseProgramAxis_cgnx_RepurchaseProgramTwentyFifteenMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:ShareRepurchaseProgramAxis">cgnx:RepurchaseProgramTwentyFifteenMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2017-04-12</instant>
        </period>
    </context>
    <context id="I2016Q2Apr28">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
        </entity>
        <period>
            <instant>2016-04-28</instant>
        </period>
    </context>
    <context id="I2018Q1Feb.28_us-gaap_ShareRepurchaseProgramAxis_cgnx_RepurchaseProgramNovember2015Member">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:ShareRepurchaseProgramAxis">cgnx:RepurchaseProgramNovember2015Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2018-02-01</instant>
        </period>
    </context>
    <context id="FD2019Q4QTD">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
        </entity>
        <period>
            <startDate>2019-09-30</startDate>
            <endDate>2019-12-31</endDate>
        </period>
    </context>
    <context id="I2017Q4Oct">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
        </entity>
        <period>
            <instant>2017-10-31</instant>
        </period>
    </context>
    <context id="FD2019Q3YTD">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
        </entity>
        <period>
            <startDate>2019-01-01</startDate>
            <endDate>2019-09-29</endDate>
        </period>
    </context>
    <context id="FI2019Q4_us-gaap_ShareRepurchaseProgramAxis_cgnx_RepurchaseProgramOctober2018Member">
        <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>2019-12-31</instant>
        </period>
    </context>
    <context id="I2016Q2Apr27">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
        </entity>
        <period>
            <instant>2016-04-27</instant>
        </period>
    </context>
    <context id="FD2019Q4YTD_us-gaap_AwardTypeAxis_us-gaap_RestrictedStockMember">
        <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>2019-01-01</startDate>
            <endDate>2019-12-31</endDate>
        </period>
    </context>
    <context id="FI2019Q4_us-gaap_AwardTypeAxis_us-gaap_RestrictedStockMember">
        <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>2019-12-31</instant>
        </period>
    </context>
    <context id="FI2018Q4_us-gaap_AwardTypeAxis_us-gaap_RestrictedStockMember">
        <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>2018-12-31</instant>
        </period>
    </context>
    <context id="FD2019Q4YTD_us-gaap_AwardTypeAxis_us-gaap_EmployeeStockOptionMember">
        <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>2019-01-01</startDate>
            <endDate>2019-12-31</endDate>
        </period>
    </context>
    <context id="FD2018Q4YTD_us-gaap_AwardTypeAxis_us-gaap_EmployeeStockOptionMember">
        <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>2018-01-01</startDate>
            <endDate>2018-12-31</endDate>
        </period>
    </context>
    <context id="FD2017Q4YTD_us-gaap_AwardTypeAxis_us-gaap_EmployeeStockOptionMember">
        <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>2017-01-01</startDate>
            <endDate>2017-12-31</endDate>
        </period>
    </context>
    <context id="FD2019Q4YTD_srt_RangeAxis_srt_MinimumMember_us-gaap_AwardTypeAxis_us-gaap_PerformanceSharesMember">
        <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>2019-01-01</startDate>
            <endDate>2019-12-31</endDate>
        </period>
    </context>
    <context id="FI2019Q4_us-gaap_AwardTypeAxis_us-gaap_EmployeeStockOptionMember">
        <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>2019-12-31</instant>
        </period>
    </context>
    <context id="FD2019Q4YTD_srt_RangeAxis_srt_MaximumMember_us-gaap_AwardTypeAxis_us-gaap_EmployeeStockOptionMember">
        <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>2019-01-01</startDate>
            <endDate>2019-12-31</endDate>
        </period>
    </context>
    <context id="FD2018Q4YTD_us-gaap_IncomeStatementLocationAxis_cgnx_SellingGeneralAndAdministrativeMember">
        <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>2018-01-01</startDate>
            <endDate>2018-12-31</endDate>
        </period>
    </context>
    <context id="FD2017Q4YTD_us-gaap_IncomeStatementLocationAxis_cgnx_ProductCostOfRevenueMember">
        <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>2017-01-01</startDate>
            <endDate>2017-12-31</endDate>
        </period>
    </context>
    <context id="FD2017Q4YTD_us-gaap_IncomeStatementLocationAxis_us-gaap_ResearchAndDevelopmentExpenseMember">
        <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>2017-01-01</startDate>
            <endDate>2017-12-31</endDate>
        </period>
    </context>
    <context id="FD2019Q4YTD_us-gaap_IncomeStatementLocationAxis_cgnx_SellingGeneralAndAdministrativeMember">
        <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>2019-01-01</startDate>
            <endDate>2019-12-31</endDate>
        </period>
    </context>
    <context id="FD2019Q4YTD_us-gaap_IncomeStatementLocationAxis_us-gaap_ResearchAndDevelopmentExpenseMember">
        <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>2019-01-01</startDate>
            <endDate>2019-12-31</endDate>
        </period>
    </context>
    <context id="FD2019Q4YTD_us-gaap_IncomeStatementLocationAxis_cgnx_ProductCostOfRevenueMember">
        <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>2019-01-01</startDate>
            <endDate>2019-12-31</endDate>
        </period>
    </context>
    <context id="FD2017Q4YTD_us-gaap_IncomeStatementLocationAxis_cgnx_SellingGeneralAndAdministrativeMember">
        <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>2017-01-01</startDate>
            <endDate>2017-12-31</endDate>
        </period>
    </context>
    <context id="FD2018Q4YTD_us-gaap_IncomeStatementLocationAxis_cgnx_ProductCostOfRevenueMember">
        <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>2018-01-01</startDate>
            <endDate>2018-12-31</endDate>
        </period>
    </context>
    <context id="FD2018Q4YTD_us-gaap_IncomeStatementLocationAxis_us-gaap_ResearchAndDevelopmentExpenseMember">
        <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>2018-01-01</startDate>
            <endDate>2018-12-31</endDate>
        </period>
    </context>
    <context id="FD2019Q4YTD_srt_RangeAxis_srt_MinimumMember_us-gaap_AwardTypeAxis_us-gaap_EmployeeStockOptionMember">
        <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>2019-01-01</startDate>
            <endDate>2019-12-31</endDate>
        </period>
    </context>
    <context id="FD2019Q4YTD_srt_RangeAxis_srt_MaximumMember_us-gaap_AwardTypeAxis_us-gaap_PerformanceSharesMember">
        <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>2019-01-01</startDate>
            <endDate>2019-12-31</endDate>
        </period>
    </context>
    <context id="FD2019Q4YTD_srt_RestatementAxis_srt_ScenarioPreviouslyReportedMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RestatementAxis">srt:ScenarioPreviouslyReportedMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2019-01-01</startDate>
            <endDate>2019-12-31</endDate>
        </period>
    </context>
    <context id="FD2019Q4YTD_srt_RestatementAxis_srt_RestatementAdjustmentMember_us-gaap_ChangeInAccountingEstimateByTypeAxis_cgnx_ChangeinGlobalIntangibleLowTaxedIncomeMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RestatementAxis">srt:RestatementAdjustmentMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ChangeInAccountingEstimateByTypeAxis">cgnx:ChangeinGlobalIntangibleLowTaxedIncomeMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2019-01-01</startDate>
            <endDate>2019-12-31</endDate>
        </period>
    </context>
    <context id="D2018Q1Jan1_us-gaap_AdjustmentsForNewAccountingPronouncementsAxis_us-gaap_AccountingStandardsUpdate201616Member">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AdjustmentsForNewAccountingPronouncementsAxis">us-gaap:AccountingStandardsUpdate201616Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2018-01-01</startDate>
            <endDate>2018-01-01</endDate>
        </period>
    </context>
    <context id="FI2019Q4_srt_StatementGeographicalAxis_cgnx_OtherThantheU.SMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">cgnx:OtherThantheU.SMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2019-12-31</instant>
        </period>
    </context>
    <context id="FI2018Q4_srt_StatementGeographicalAxis_cgnx_OtherThantheU.SMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">cgnx:OtherThantheU.SMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2018-12-31</instant>
        </period>
    </context>
    <context id="FI2019Q4_us-gaap_BusinessAcquisitionAxis_cgnx_SualabCo.Ltd.Member">
        <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-12-31</instant>
        </period>
    </context>
    <context id="FD2019Q4YTD_us-gaap_IncomeTaxAuthorityAxis_us-gaap_ForeignCountryMember_us-gaap_IncomeTaxAuthorityNameAxis_us-gaap_RevenueCommissionersIrelandMember">
        <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>2019-01-01</startDate>
            <endDate>2019-12-31</endDate>
        </period>
    </context>
    <context id="FI2019Q4_us-gaap_TaxCreditCarryforwardAxis_cgnx_StateResearchAndExperimentationMember">
        <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>2019-12-31</instant>
        </period>
    </context>
    <context id="FD2019Q4YTD_us-gaap_IncomeTaxAuthorityAxis_us-gaap_DomesticCountryMember">
        <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>2019-01-01</startDate>
            <endDate>2019-12-31</endDate>
        </period>
    </context>
    <context id="FD2019Q4YTD_us-gaap_IncomeTaxAuthorityAxis_us-gaap_ForeignCountryMember_us-gaap_IncomeTaxAuthorityNameAxis_us-gaap_StateAdministrationOfTaxationChinaMember">
        <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>2019-01-01</startDate>
            <endDate>2019-12-31</endDate>
        </period>
    </context>
    <context id="FI2019Q4_us-gaap_TaxCreditCarryforwardAxis_us-gaap_ResearchMember">
        <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>2019-12-31</instant>
        </period>
    </context>
    <context id="FI2019Q4_srt_RestatementAxis_srt_RestatementAdjustmentMember_us-gaap_ChangeInAccountingEstimateByTypeAxis_cgnx_ChangeinGlobalIntangibleLowTaxedIncomeMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RestatementAxis">srt:RestatementAdjustmentMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ChangeInAccountingEstimateByTypeAxis">cgnx:ChangeinGlobalIntangibleLowTaxedIncomeMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2019-12-31</instant>
        </period>
    </context>
    <context id="FI2019Q4_srt_RestatementAxis_srt_ScenarioPreviouslyReportedMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RestatementAxis">srt:ScenarioPreviouslyReportedMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2019-12-31</instant>
        </period>
    </context>
    <context id="FD2017Q4YTD_us-gaap_AdjustmentsForNewAccountingPronouncementsAxis_cgnx_AccountingStandardsUpdate201609StatutoryTaxWithholdingComponentMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AdjustmentsForNewAccountingPronouncementsAxis">cgnx:AccountingStandardsUpdate201609StatutoryTaxWithholdingComponentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2017-01-01</startDate>
            <endDate>2017-12-31</endDate>
        </period>
    </context>
    <context id="FD2018Q4YTD_us-gaap_AdjustmentsForNewAccountingPronouncementsAxis_cgnx_AccountingStandardsUpdate201609StatutoryTaxWithholdingComponentMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AdjustmentsForNewAccountingPronouncementsAxis">cgnx:AccountingStandardsUpdate201609StatutoryTaxWithholdingComponentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2018-01-01</startDate>
            <endDate>2018-12-31</endDate>
        </period>
    </context>
    <context id="FD2017Q4YTD_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis_us-gaap_EmployeeStockOptionMember">
        <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>2017-01-01</startDate>
            <endDate>2017-12-31</endDate>
        </period>
    </context>
    <context id="FD2018Q4YTD_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis_us-gaap_EmployeeStockOptionMember">
        <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>2018-01-01</startDate>
            <endDate>2018-12-31</endDate>
        </period>
    </context>
    <context id="FD2019Q4YTD_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis_us-gaap_EmployeeStockOptionMember">
        <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>2019-01-01</startDate>
            <endDate>2019-12-31</endDate>
        </period>
    </context>
    <context id="FD2019Q4YTD_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis_us-gaap_RestrictedStockMember">
        <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>2019-01-01</startDate>
            <endDate>2019-12-31</endDate>
        </period>
    </context>
    <context id="FI2017Q4_srt_StatementGeographicalAxis_cgnx_OtherGeographicAreaMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">cgnx:OtherGeographicAreaMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2017-12-31</instant>
        </period>
    </context>
    <context id="FI2018Q4_srt_StatementGeographicalAxis_srt_EuropeMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">srt:EuropeMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2018-12-31</instant>
        </period>
    </context>
    <context id="FD2019Q4YTD_srt_StatementGeographicalAxis_cgnx_OtherGeographicAreaMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">cgnx:OtherGeographicAreaMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2019-01-01</startDate>
            <endDate>2019-12-31</endDate>
        </period>
    </context>
    <context id="FI2017Q4_srt_StatementGeographicalAxis_cgnx_GreaterChinaMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">cgnx:GreaterChinaMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2017-12-31</instant>
        </period>
    </context>
    <context id="FI2017Q4_srt_StatementGeographicalAxis_country_US">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:US</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2017-12-31</instant>
        </period>
    </context>
    <context id="FD2018Q4YTD_srt_StatementGeographicalAxis_country_US">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:US</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2018-01-01</startDate>
            <endDate>2018-12-31</endDate>
        </period>
    </context>
    <context id="FI2017Q4_srt_StatementGeographicalAxis_srt_EuropeMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">srt:EuropeMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2017-12-31</instant>
        </period>
    </context>
    <context id="FI2019Q4_srt_StatementGeographicalAxis_cgnx_GreaterChinaMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">cgnx:GreaterChinaMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2019-12-31</instant>
        </period>
    </context>
    <context id="FI2019Q4_srt_StatementGeographicalAxis_srt_EuropeMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">srt:EuropeMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2019-12-31</instant>
        </period>
    </context>
    <context id="FD2017Q4YTD_srt_StatementGeographicalAxis_country_US">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:US</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2017-01-01</startDate>
            <endDate>2017-12-31</endDate>
        </period>
    </context>
    <context id="FI2018Q4_srt_StatementGeographicalAxis_country_US">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:US</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2018-12-31</instant>
        </period>
    </context>
    <context id="FI2018Q4_srt_StatementGeographicalAxis_cgnx_GreaterChinaMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">cgnx:GreaterChinaMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2018-12-31</instant>
        </period>
    </context>
    <context id="FD2019Q4YTD_srt_StatementGeographicalAxis_country_US">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:US</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2019-01-01</startDate>
            <endDate>2019-12-31</endDate>
        </period>
    </context>
    <context id="FI2019Q4_srt_StatementGeographicalAxis_cgnx_OtherGeographicAreaMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">cgnx:OtherGeographicAreaMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2019-12-31</instant>
        </period>
    </context>
    <context id="FD2017Q4YTD_srt_StatementGeographicalAxis_cgnx_OtherGeographicAreaMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">cgnx:OtherGeographicAreaMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2017-01-01</startDate>
            <endDate>2017-12-31</endDate>
        </period>
    </context>
    <context id="FI2018Q4_srt_StatementGeographicalAxis_cgnx_OtherGeographicAreaMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">cgnx:OtherGeographicAreaMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2018-12-31</instant>
        </period>
    </context>
    <context id="FI2019Q4_srt_StatementGeographicalAxis_country_US">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:US</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2019-12-31</instant>
        </period>
    </context>
    <context id="FD2018Q4YTD_srt_StatementGeographicalAxis_cgnx_OtherGeographicAreaMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">cgnx:OtherGeographicAreaMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2018-01-01</startDate>
            <endDate>2018-12-31</endDate>
        </period>
    </context>
    <context id="FD2018Q4YTD_us-gaap_ConcentrationRiskByBenchmarkAxis_us-gaap_SalesRevenueNetMember_us-gaap_ConcentrationRiskByTypeAxis_us-gaap_CustomerConcentrationRiskMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <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>2018-01-01</startDate>
            <endDate>2018-12-31</endDate>
        </period>
    </context>
    <context id="FD2017Q4YTD_us-gaap_ConcentrationRiskByBenchmarkAxis_us-gaap_AccountsReceivableMember_us-gaap_ConcentrationRiskByTypeAxis_us-gaap_CustomerConcentrationRiskMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <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>2017-01-01</startDate>
            <endDate>2017-12-31</endDate>
        </period>
    </context>
    <context id="FD2018Q4YTD_us-gaap_ConcentrationRiskByBenchmarkAxis_us-gaap_AccountsReceivableMember_us-gaap_ConcentrationRiskByTypeAxis_us-gaap_CustomerConcentrationRiskMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <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>2018-01-01</startDate>
            <endDate>2018-12-31</endDate>
        </period>
    </context>
    <context id="FD2017Q4YTD_us-gaap_ConcentrationRiskByBenchmarkAxis_us-gaap_SalesRevenueNetMember_us-gaap_ConcentrationRiskByTypeAxis_us-gaap_CustomerConcentrationRiskMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <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>2017-01-01</startDate>
            <endDate>2017-12-31</endDate>
        </period>
    </context>
    <context id="FD2019Q4YTD_us-gaap_ConcentrationRiskByBenchmarkAxis_us-gaap_AccountsReceivableMember_us-gaap_ConcentrationRiskByTypeAxis_us-gaap_CustomerConcentrationRiskMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <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>2019-01-01</startDate>
            <endDate>2019-12-31</endDate>
        </period>
    </context>
    <context id="I2019Q3_us-gaap_BusinessAcquisitionAxis_cgnx_SualabCo.Ltd.Member">
        <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="I2019Q3_us-gaap_BusinessAcquisitionAxis_cgnx_SualabCo.Ltd.Member_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_NoncompeteAgreementsMember">
        <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:NoncompeteAgreementsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2019-10-16</instant>
        </period>
    </context>
    <context id="I2019Q3_us-gaap_BusinessAcquisitionAxis_cgnx_SualabCo.Ltd.Member_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_CustomerRelationshipsMember">
        <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:CustomerRelationshipsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2019-10-16</instant>
        </period>
    </context>
    <context id="I2019Q3_us-gaap_BusinessAcquisitionAxis_cgnx_SualabCo.Ltd.Member_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_cgnx_InprocessTechnologyMember">
        <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:InprocessTechnologyMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2019-10-16</instant>
        </period>
    </context>
    <context id="I2019Q3_us-gaap_BusinessAcquisitionAxis_cgnx_SualabCo.Ltd.Member_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_cgnx_CompletedTechnologyMember">
        <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:CompletedTechnologyMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2019-10-16</instant>
        </period>
    </context>
    <context id="I2019Q3_us-gaap_BusinessAcquisitionAxis_cgnx_SualabCo.Ltd.Member_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_TrademarksMember">
        <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:TrademarksMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2019-10-16</instant>
        </period>
    </context>
    <context id="I2017Q2Apr12_us-gaap_BusinessAcquisitionAxis_cgnx_GViVenturesInc.Member">
        <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>2017-04-12</instant>
        </period>
    </context>
    <context id="I2017Q2Apr12_us-gaap_BusinessAcquisitionAxis_cgnx_GViVenturesInc.Member_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_CustomerRelationshipsMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">cgnx:GViVenturesInc.Member</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:CustomerRelationshipsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2017-04-12</instant>
        </period>
    </context>
    <context id="I2017Q2Apr12_us-gaap_BusinessAcquisitionAxis_cgnx_GViVenturesInc.Member_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_TechnologyBasedIntangibleAssetsMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">cgnx:GViVenturesInc.Member</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:TechnologyBasedIntangibleAssetsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2017-04-12</instant>
        </period>
    </context>
    <context id="D2019Q4Oct16_us-gaap_BusinessAcquisitionAxis_cgnx_SualabCo.Ltd.Member">
        <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="D2017Q2Apr04-Apr04_us-gaap_BusinessAcquisitionAxis_cgnx_ViDiSystemsS.A.Member">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">cgnx:ViDiSystemsS.A.Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2017-04-04</startDate>
            <endDate>2017-04-04</endDate>
        </period>
    </context>
    <context id="D2017Q2Apr12-Apr12_us-gaap_BusinessAcquisitionAxis_cgnx_GViVenturesInc.Member_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_CustomerRelationshipsMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">cgnx:GViVenturesInc.Member</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:CustomerRelationshipsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2017-04-12</startDate>
            <endDate>2017-04-12</endDate>
        </period>
    </context>
    <context id="D2019Q4Oct16_us-gaap_BusinessAcquisitionAxis_cgnx_SualabCo.Ltd.Member_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_TrademarksMember">
        <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:TrademarksMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2019-10-16</startDate>
            <endDate>2019-10-16</endDate>
        </period>
    </context>
    <context id="D2019Q4Oct16_us-gaap_BusinessAcquisitionAxis_cgnx_SualabCo.Ltd.Member_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_CustomerRelationshipsMember">
        <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:CustomerRelationshipsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2019-10-16</startDate>
            <endDate>2019-10-16</endDate>
        </period>
    </context>
    <context id="D2017Q2Apr04-Apr04_us-gaap_BusinessAcquisitionAxis_cgnx_ViDiSystemsS.A.Member_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_TechnologyBasedIntangibleAssetsMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">cgnx:ViDiSystemsS.A.Member</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:TechnologyBasedIntangibleAssetsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2017-04-04</startDate>
            <endDate>2017-04-04</endDate>
        </period>
    </context>
    <context id="D2017Q2Apr04-Apr04_us-gaap_BusinessAcquisitionAxis_cgnx_ViDiSystemsS.A.Member_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_NoncompeteAgreementsMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">cgnx:ViDiSystemsS.A.Member</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:NoncompeteAgreementsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2017-04-04</startDate>
            <endDate>2017-04-04</endDate>
        </period>
    </context>
    <context id="D2019Q4Oct16_srt_RangeAxis_srt_MaximumMember_us-gaap_BusinessAcquisitionAxis_cgnx_SualabCo.Ltd.Member_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_NoncompeteAgreementsMember">
        <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:BusinessAcquisitionAxis">cgnx:SualabCo.Ltd.Member</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:NoncompeteAgreementsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2019-10-16</startDate>
            <endDate>2019-10-16</endDate>
        </period>
    </context>
    <context id="D2019Q4Oct16_us-gaap_BusinessAcquisitionAxis_cgnx_SualabCo.Ltd.Member_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_cgnx_CompletedTechnologyMember">
        <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:CompletedTechnologyMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2019-10-16</startDate>
            <endDate>2019-10-16</endDate>
        </period>
    </context>
    <context id="D2017Q2Apr12-Apr12_us-gaap_BusinessAcquisitionAxis_cgnx_GViVenturesInc.Member">
        <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>
            <startDate>2017-04-12</startDate>
            <endDate>2017-04-12</endDate>
        </period>
    </context>
    <context id="FI2019Q4_us-gaap_BusinessAcquisitionAxis_cgnx_GViVenturesInc.Member">
        <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="I2017Q2Apr04_us-gaap_BusinessAcquisitionAxis_cgnx_ViDiSystemsS.A.Member">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">cgnx:ViDiSystemsS.A.Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2017-04-04</instant>
        </period>
    </context>
    <context id="D2017Q2Apr12-Apr12_us-gaap_BusinessAcquisitionAxis_cgnx_GViVenturesInc.Member_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_TechnologyBasedIntangibleAssetsMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">cgnx:GViVenturesInc.Member</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:TechnologyBasedIntangibleAssetsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2017-04-12</startDate>
            <endDate>2017-04-12</endDate>
        </period>
    </context>
    <context id="I2017Q2Apr04_us-gaap_BusinessAcquisitionAxis_cgnx_ViDiSystemsS.A.Member_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_NoncompeteAgreementsMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">cgnx:ViDiSystemsS.A.Member</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:NoncompeteAgreementsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2017-04-04</instant>
        </period>
    </context>
    <context id="I2017Q2Apr04_us-gaap_BusinessAcquisitionAxis_cgnx_ViDiSystemsS.A.Member_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_TechnologyBasedIntangibleAssetsMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">cgnx:ViDiSystemsS.A.Member</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:TechnologyBasedIntangibleAssetsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2017-04-04</instant>
        </period>
    </context>
    <context id="D2017Q2Apr12-Apr12_srt_RangeAxis_srt_MinimumMember_us-gaap_BusinessAcquisitionAxis_cgnx_SualabCo.Ltd.Member_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_NoncompeteAgreementsMember">
        <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:BusinessAcquisitionAxis">cgnx:SualabCo.Ltd.Member</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:NoncompeteAgreementsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2017-04-12</startDate>
            <endDate>2017-04-12</endDate>
        </period>
    </context>
    <context id="I2020Q1_us-gaap_SubsequentEventTypeAxis_us-gaap_SubsequentEventMember">
        <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>2020-02-13</instant>
        </period>
    </context>
    <context id="D2020Q1_us-gaap_SubsequentEventTypeAxis_us-gaap_SubsequentEventMember">
        <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>
            <startDate>2020-02-13</startDate>
            <endDate>2020-02-13</endDate>
        </period>
    </context>
    <context id="FD2018Q2QTD">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
        </entity>
        <period>
            <startDate>2018-04-02</startDate>
            <endDate>2018-07-01</endDate>
        </period>
    </context>
    <context id="FD2018Q1QTD">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
        </entity>
        <period>
            <startDate>2018-01-01</startDate>
            <endDate>2018-04-01</endDate>
        </period>
    </context>
    <context id="FD2018Q3QTD">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
        </entity>
        <period>
            <startDate>2018-07-02</startDate>
            <endDate>2018-09-30</endDate>
        </period>
    </context>
    <context id="FD2018Q4QTD">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
        </entity>
        <period>
            <startDate>2018-10-01</startDate>
            <endDate>2018-12-31</endDate>
        </period>
    </context>
    <context id="FD2017Q3QTD">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
        </entity>
        <period>
            <startDate>2017-07-03</startDate>
            <endDate>2017-10-01</endDate>
        </period>
    </context>
    <context id="FD2017Q1QTD">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
        </entity>
        <period>
            <startDate>2017-01-01</startDate>
            <endDate>2017-04-02</endDate>
        </period>
    </context>
    <context id="FD2017Q2QTD">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
        </entity>
        <period>
            <startDate>2017-04-03</startDate>
            <endDate>2017-07-02</endDate>
        </period>
    </context>
    <context id="FD2017Q4YTD_us-gaap_ValuationAllowancesAndReservesTypeAxis_us-gaap_UncollectibleReceivablesMember">
        <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>2017-01-01</startDate>
            <endDate>2017-12-31</endDate>
        </period>
    </context>
    <context id="FD2019Q4YTD_us-gaap_ValuationAllowancesAndReservesTypeAxis_us-gaap_UncollectibleReceivablesMember">
        <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>2019-01-01</startDate>
            <endDate>2019-12-31</endDate>
        </period>
    </context>
    <context id="FI2016Q4_us-gaap_ValuationAllowancesAndReservesTypeAxis_us-gaap_UncollectibleReceivablesMember">
        <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>2016-12-31</instant>
        </period>
    </context>
    <context id="FD2018Q4YTD_us-gaap_ValuationAllowancesAndReservesTypeAxis_us-gaap_UncollectibleReceivablesMember">
        <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>2018-01-01</startDate>
            <endDate>2018-12-31</endDate>
        </period>
    </context>
    <context id="FD2018Q4YTD_us-gaap_ValuationAllowancesAndReservesTypeAxis_us-gaap_ValuationAllowanceOfDeferredTaxAssetsMember">
        <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>2018-01-01</startDate>
            <endDate>2018-12-31</endDate>
        </period>
    </context>
    <context id="FI2018Q4_us-gaap_ValuationAllowancesAndReservesTypeAxis_us-gaap_ValuationAllowanceOfDeferredTaxAssetsMember">
        <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>2018-12-31</instant>
        </period>
    </context>
    <context id="FD2019Q4YTD_us-gaap_ValuationAllowancesAndReservesTypeAxis_us-gaap_ValuationAllowanceOfDeferredTaxAssetsMember">
        <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>2019-01-01</startDate>
            <endDate>2019-12-31</endDate>
        </period>
    </context>
    <context id="FI2018Q4_us-gaap_ValuationAllowancesAndReservesTypeAxis_us-gaap_UncollectibleReceivablesMember">
        <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>2018-12-31</instant>
        </period>
    </context>
    <context id="FI2017Q4_us-gaap_ValuationAllowancesAndReservesTypeAxis_us-gaap_UncollectibleReceivablesMember">
        <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>2017-12-31</instant>
        </period>
    </context>
    <context id="FI2019Q4_us-gaap_ValuationAllowancesAndReservesTypeAxis_us-gaap_UncollectibleReceivablesMember">
        <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="FI2017Q4_us-gaap_ValuationAllowancesAndReservesTypeAxis_us-gaap_ValuationAllowanceOfDeferredTaxAssetsMember">
        <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>2017-12-31</instant>
        </period>
    </context>
    <context id="FD2017Q4YTD_us-gaap_ValuationAllowancesAndReservesTypeAxis_us-gaap_ValuationAllowanceOfDeferredTaxAssetsMember">
        <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>2017-01-01</startDate>
            <endDate>2017-12-31</endDate>
        </period>
    </context>
    <context id="FI2019Q4_us-gaap_ValuationAllowancesAndReservesTypeAxis_us-gaap_ValuationAllowanceOfDeferredTaxAssetsMember">
        <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="FI2016Q4_us-gaap_ValuationAllowancesAndReservesTypeAxis_us-gaap_ValuationAllowanceOfDeferredTaxAssetsMember">
        <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>2016-12-31</instant>
        </period>
    </context>
    <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="usd">
        <measure>iso4217:USD</measure>
    </unit>
    <unit id="number">
        <measure>pure</measure>
    </unit>
    <unit id="huf">
        <measure>iso4217:HUF</measure>
    </unit>
    <unit id="gbp">
        <measure>iso4217:GBP</measure>
    </unit>
    <unit id="Segment">
        <measure>cgnx:Segment</measure>
    </unit>
    <unit id="Vote">
        <measure>cgnx:Vote</measure>
    </unit>
    <unit id="acquisition">
        <measure>cgnx:acquisition</measure>
    </unit>
    <unit id="sgd">
        <measure>iso4217:SGD</measure>
    </unit>
    <unit id="iso4217_JPY">
        <measure>iso4217:JPY</measure>
    </unit>
    <unit id="iso4217_KRW">
        <measure>iso4217:KRW</measure>
    </unit>
    <unit id="twd">
        <measure>iso4217:TWD</measure>
    </unit>
    <unit id="group">
        <measure>cgnx:group</measure>
    </unit>
    <cgnx:EmployeeServiceShareBasedCompensationRecognizedPeriodCostsCapitalizedAmount
      contextRef="FI2016Q4"
      decimals="0"
      id="Fact-DCF914C7DDEFDA9E0DA28095A1980C44-wk-Fact-DCF914C7DDEFDA9E0DA28095A1980C44"
      unitRef="usd">0</cgnx:EmployeeServiceShareBasedCompensationRecognizedPeriodCostsCapitalizedAmount>
    <cgnx:EmployeeServiceShareBasedCompensationRecognizedPeriodCostsCapitalizedAmount
      contextRef="FI2017Q4"
      decimals="0"
      id="Fact-6586C2490B5E510D63EA8095A198FE5B-wk-Fact-6586C2490B5E510D63EA8095A198FE5B"
      unitRef="usd">0</cgnx:EmployeeServiceShareBasedCompensationRecognizedPeriodCostsCapitalizedAmount>
    <cgnx:EmployeeServiceShareBasedCompensationRecognizedPeriodCostsCapitalizedAmount
      contextRef="FI2019Q4"
      decimals="0"
      id="Fact-E9FB67B870B8F6561CB78095A197214D-wk-Fact-E9FB67B870B8F6561CB78095A197214D"
      unitRef="usd">0</cgnx:EmployeeServiceShareBasedCompensationRecognizedPeriodCostsCapitalizedAmount>
    <cgnx:OpenTaxYearStateAuthorities
      contextRef="FD2019Q4YTD"
      id="Fact-40DC01ABBAE25D70AE1C8095A19821AE-wk-Fact-40DC01ABBAE25D70AE1C8095A19821AE">2013 through 2016</cgnx:OpenTaxYearStateAuthorities>
    <cgnx:OpentaxyearUnitedStatesInternalRevenueService
      contextRef="FD2019Q4YTD"
      id="Fact-83878A72AF255A707CD28095A17CDAD0-wk-Fact-83878A72AF255A707CD28095A17CDAD0">2013 through 2016</cgnx:OpentaxyearUnitedStatesInternalRevenueService>
    <cgnx:Opentaxyearvarioustaxingauthorities
      contextRef="FD2019Q4YTD"
      id="Fact-1F0114345B99F552EC008095A17CD631-wk-Fact-1F0114345B99F552EC008095A17CD631">2012 through 2016</cgnx:Opentaxyearvarioustaxingauthorities>
    <cgnx:OtherThanTemporaryImpairmentLossesInvestmentsPortionRecognizedInEarningsNetnoncurrent
      contextRef="FD2017Q4YTD_us-gaap_FairValueByMeasurementFrequencyAxis_us-gaap_FairValueMeasurementsRecurringMember"
      decimals="INF"
      id="Fact-B7A949BFA6D813B3C1598095A183DA79-wk-Fact-B7A949BFA6D813B3C1598095A183DA79"
      unitRef="usd">0</cgnx:OtherThanTemporaryImpairmentLossesInvestmentsPortionRecognizedInEarningsNetnoncurrent>
    <cgnx:OtherThanTemporaryImpairmentLossesInvestmentsPortionRecognizedInEarningsNetnoncurrent
      contextRef="FD2018Q4YTD_us-gaap_FairValueByMeasurementFrequencyAxis_us-gaap_FairValueMeasurementsRecurringMember"
      decimals="INF"
      id="Fact-68422F0B77726C84B7488095A183ADF8-wk-Fact-68422F0B77726C84B7488095A183ADF8"
      unitRef="usd">0</cgnx:OtherThanTemporaryImpairmentLossesInvestmentsPortionRecognizedInEarningsNetnoncurrent>
    <cgnx:OtherThanTemporaryImpairmentLossesInvestmentsPortionRecognizedInEarningsNetnoncurrent
      contextRef="FD2019Q4YTD_us-gaap_FairValueByMeasurementFrequencyAxis_us-gaap_FairValueMeasurementsRecurringMember"
      decimals="INF"
      id="Fact-CBA3D352AE855B5260C08095A183C489-wk-Fact-CBA3D352AE855B5260C08095A183C489"
      unitRef="usd">0</cgnx:OtherThanTemporaryImpairmentLossesInvestmentsPortionRecognizedInEarningsNetnoncurrent>
    <cgnx:ProductWarrantyPeriod
      contextRef="FD2019Q4YTD_srt_RangeAxis_srt_MinimumMember"
      id="Fact-35863965D3B8EF618D5C84AA413A92A5-wk-Fact-35863965D3B8EF618D5C84AA413A92A5">P1Y</cgnx:ProductWarrantyPeriod>
    <cgnx:Stateresearchandexperimentationtaxcarryforwards
      contextRef="FD2019Q4YTD"
      id="Fact-9A677E320136186085158095A1732F3A-wk-Fact-9A677E320136186085158095A1732F3A">2014 through 2016</cgnx:Stateresearchandexperimentationtaxcarryforwards>
    <cgnx:TaxYearsCoveredThroughAdvancedPricingAgreement
      contextRef="FD2018Q4YTD"
      id="Fact-B3747057CCD394FE95E48095A17C5CCF-wk-Fact-B3747057CCD394FE95E48095A17C5CCF">2006 through 2011</cgnx:TaxYearsCoveredThroughAdvancedPricingAgreement>
    <cgnx:TaxyearsforAPAagreement
      contextRef="FD2019Q4YTD"
      id="Fact-18E11B55A74D0581EE218095A1721184-wk-Fact-18E11B55A74D0581EE218095A1721184">Between 2014 and 2018</cgnx:TaxyearsforAPAagreement>
    <dei:AmendmentFlag
      contextRef="FD2019Q4YTD"
      id="Fact-5A83E5C16441A9CB6D7C8095A1717EE2-wk-Fact-5A83E5C16441A9CB6D7C8095A1717EE2">false</dei:AmendmentFlag>
    <dei:CurrentFiscalYearEndDate
      contextRef="FD2019Q4YTD"
      id="Fact-E53CA55F06C697B6E6CD8095A184938A-wk-Fact-E53CA55F06C697B6E6CD8095A184938A">--12-31</dei:CurrentFiscalYearEndDate>
    <dei:DocumentFiscalPeriodFocus
      contextRef="FD2019Q4YTD"
      id="Fact-3CFFCC6ED54125E9682A8095A185A5BD-wk-Fact-3CFFCC6ED54125E9682A8095A185A5BD">FY</dei:DocumentFiscalPeriodFocus>
    <dei:DocumentFiscalYearFocus
      contextRef="FD2019Q4YTD"
      id="Fact-3A734CCF3B97ADD44F8F8095A1715C9C-wk-Fact-3A734CCF3B97ADD44F8F8095A1715C9C">2019</dei:DocumentFiscalYearFocus>
    <dei:EntityCentralIndexKey
      contextRef="FD2019Q4YTD"
      id="Fact-8883400E493F149E22138095A172D8FB-wk-Fact-8883400E493F149E22138095A172D8FB">0000851205</dei:EntityCentralIndexKey>
    <us-gaap:AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife
      contextRef="D2017Q2Apr12-Apr12_srt_RangeAxis_srt_MinimumMember_us-gaap_BusinessAcquisitionAxis_cgnx_SualabCo.Ltd.Member_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_NoncompeteAgreementsMember"
      id="Fact-0A42C5D89B6AF743CA3DFD89F8C8D48E-wk-Fact-0A42C5D89B6AF743CA3DFD89F8C8D48E">P6Y</us-gaap:AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife>
    <us-gaap:AdjustmentForLongTermIntercompanyTransactionsNetOfTax
      contextRef="FD2018Q4YTD"
      decimals="0"
      id="Fact-39A042E11F9E0032028A8095A18FE4B5-wk-Fact-39A042E11F9E0032028A8095A18FE4B5"
      unitRef="usd">1271000</us-gaap:AdjustmentForLongTermIntercompanyTransactionsNetOfTax>
    <us-gaap:AdjustmentForLongTermIntercompanyTransactionsNetOfTax
      contextRef="FD2019Q4YTD"
      decimals="-3"
      id="Fact-416EC4F4EE61A644CC998095A18F9E73-wk-Fact-416EC4F4EE61A644CC998095A18F9E73"
      unitRef="usd">1271000</us-gaap:AdjustmentForLongTermIntercompanyTransactionsNetOfTax>
    <us-gaap:CommonStockParOrStatedValuePerShare
      contextRef="FI2018Q4"
      decimals="INF"
      id="Fact-42081C8CB01C58A24C518095A18FA6C0-wk-Fact-42081C8CB01C58A24C518095A18FA6C0"
      unitRef="usdPerShare">0.002</us-gaap:CommonStockParOrStatedValuePerShare>
    <us-gaap:CommonStockParOrStatedValuePerShare
      contextRef="FI2019Q4"
      decimals="INF"
      id="Fact-2470218D7813DD385FF58095A18F58C9-wk-Fact-2470218D7813DD385FF58095A18F58C9"
      unitRef="usdPerShare">0.002</us-gaap:CommonStockParOrStatedValuePerShare>
    <us-gaap:CommonStockSharesAuthorized
      contextRef="FI2018Q4"
      decimals="INF"
      id="Fact-BE264CEB26A0252A85408095A18EDB5F-wk-Fact-BE264CEB26A0252A85408095A18EDB5F"
      unitRef="shares">300000000</us-gaap:CommonStockSharesAuthorized>
    <us-gaap:CommonStockSharesAuthorized
      contextRef="FI2019Q4"
      decimals="INF"
      id="Fact-62B46566EE240CF05C318095A18FE098-wk-Fact-62B46566EE240CF05C318095A18FE098"
      unitRef="shares">300000000</us-gaap:CommonStockSharesAuthorized>
    <us-gaap:CommonStockSharesIssued
      contextRef="FI2018Q4"
      decimals="-3"
      id="Fact-730119480E29E411C4418095A18F653A-wk-Fact-730119480E29E411C4418095A18F653A"
      unitRef="shares">170820000</us-gaap:CommonStockSharesIssued>
    <us-gaap:CommonStockSharesIssued
      contextRef="FI2019Q4"
      decimals="-3"
      id="Fact-2C409909894F56E92EA98095A18F9D4C-wk-Fact-2C409909894F56E92EA98095A18F9D4C"
      unitRef="shares">172440000</us-gaap:CommonStockSharesIssued>
    <us-gaap:CommonStockSharesOutstanding
      contextRef="FI2018Q4"
      decimals="-3"
      id="Fact-80A0EA9BF4D8AAC4C0C28095A18FECEC-wk-Fact-80A0EA9BF4D8AAC4C0C28095A18FECEC"
      unitRef="shares">170820000</us-gaap:CommonStockSharesOutstanding>
    <us-gaap:CommonStockSharesOutstanding
      contextRef="FI2019Q4"
      decimals="-3"
      id="Fact-F01C726D98B2F998865E8095A18F1B7D-wk-Fact-F01C726D98B2F998865E8095A18F1B7D"
      unitRef="shares">172440000</us-gaap:CommonStockSharesOutstanding>
    <us-gaap:EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate
      contextRef="FD2019Q4YTD_us-gaap_IncomeTaxAuthorityAxis_us-gaap_DomesticCountryMember"
      decimals="INF"
      id="Fact-DEE1B0A8E19670317AF2FDC0B0A97533-wk-Fact-DEE1B0A8E19670317AF2FDC0B0A97533"
      unitRef="number">0.21</us-gaap:EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate>
    <us-gaap:EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate
      contextRef="FD2019Q4YTD_us-gaap_IncomeTaxAuthorityAxis_us-gaap_ForeignCountryMember_us-gaap_IncomeTaxAuthorityNameAxis_us-gaap_RevenueCommissionersIrelandMember"
      decimals="INF"
      id="Fact-252C2C7D8C4AE8CA8EB0FDC00D2B4DBE-wk-Fact-252C2C7D8C4AE8CA8EB0FDC00D2B4DBE"
      unitRef="number">0.125</us-gaap:EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate>
    <us-gaap:EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate
      contextRef="FD2019Q4YTD_us-gaap_IncomeTaxAuthorityAxis_us-gaap_ForeignCountryMember_us-gaap_IncomeTaxAuthorityNameAxis_us-gaap_StateAdministrationOfTaxationChinaMember"
      decimals="INF"
      id="Fact-4D126310C33AAE7FB41BFDC05959CB24-wk-Fact-4D126310C33AAE7FB41BFDC05959CB24"
      unitRef="number">0.25</us-gaap:EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate>
    <us-gaap:FiniteLivedIntangibleAssetUsefulLife
      contextRef="FD2019Q4YTD_srt_RangeAxis_srt_MinimumMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_cgnx_CompletedTechnologiesAndOtherIntangibleAssetsMember"
      id="Fact-7261AACE0F1D8B59287384A77EA1CB3F-wk-Fact-7261AACE0F1D8B59287384A77EA1CB3F">P5Y</us-gaap:FiniteLivedIntangibleAssetUsefulLife>
    <us-gaap:FiniteLivedIntangibleAssetUsefulLife
      contextRef="FD2019Q4YTD_srt_RangeAxis_srt_MinimumMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_cgnx_CustomerContractsAndRelationshipsMember"
      id="Fact-654AD3D9F1EC836BD0FE84A735867DFD-wk-Fact-654AD3D9F1EC836BD0FE84A735867DFD">P5Y</us-gaap:FiniteLivedIntangibleAssetUsefulLife>
    <us-gaap:FiniteLivedIntangibleAssetUsefulLife
      contextRef="FD2019Q4YTD_srt_RangeAxis_srt_MinimumMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_DistributionRightsMember"
      id="Fact-EEB6B734E40A5A45AE1E84A6E6BB8C7F-wk-Fact-EEB6B734E40A5A45AE1E84A6E6BB8C7F">P11Y</us-gaap:FiniteLivedIntangibleAssetUsefulLife>
    <us-gaap:FiniteLivedIntangibleAssetUsefulLife
      contextRef="FD2019Q4YTD_srt_RangeAxis_srt_MinimumMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_NoncompeteAgreementsMember"
      id="Fact-4FE2F2AEA6147EA94B6F17B8EDAA3B6E-wk-Fact-4FE2F2AEA6147EA94B6F17B8EDAA3B6E">P3Y</us-gaap:FiniteLivedIntangibleAssetUsefulLife>
    <us-gaap:NetCashProvidedByUsedInFinancingActivities
      contextRef="FD2017Q4YTD_us-gaap_AdjustmentsForNewAccountingPronouncementsAxis_cgnx_AccountingStandardsUpdate201609StatutoryTaxWithholdingComponentMember"
      decimals="0"
      id="Fact-1F3D07C70DBA4279214B8095A1972A7C-wk-Fact-1F3D07C70DBA4279214B8095A1972A7C"
      unitRef="usd">-7871000</us-gaap:NetCashProvidedByUsedInFinancingActivities>
    <us-gaap:NetCashProvidedByUsedInFinancingActivities
      contextRef="FD2018Q4YTD_us-gaap_AdjustmentsForNewAccountingPronouncementsAxis_cgnx_AccountingStandardsUpdate201609StatutoryTaxWithholdingComponentMember"
      decimals="0"
      id="Fact-C410A1E043CB8341ECFD8095A19809F4-wk-Fact-C410A1E043CB8341ECFD8095A19809F4"
      unitRef="usd">-9964000</us-gaap:NetCashProvidedByUsedInFinancingActivities>
    <us-gaap:NumberOfReportableSegments
      contextRef="FD2018Q4YTD"
      decimals="INF"
      id="Fact-7378A8CA4FAC7A0290C28095A17A1CA6-wk-Fact-7378A8CA4FAC7A0290C28095A17A1CA6"
      unitRef="Segment">1</us-gaap:NumberOfReportableSegments>
    <us-gaap:OtherComprehensiveIncomeForeignCurrencyTranslationGainLossArisingDuringPeriodTax
      contextRef="FD2017Q4YTD"
      decimals="-3"
      id="Fact-80AEA32C9C859D2185038095A190CCD9-wk-Fact-80AEA32C9C859D2185038095A190CCD9"
      unitRef="usd">0</us-gaap:OtherComprehensiveIncomeForeignCurrencyTranslationGainLossArisingDuringPeriodTax>
    <us-gaap:OtherComprehensiveIncomeForeignCurrencyTranslationGainLossArisingDuringPeriodTax
      contextRef="FD2018Q4YTD"
      decimals="-3"
      id="Fact-27D4B1EE80E106C124BB8095A190146F-wk-Fact-27D4B1EE80E106C124BB8095A190146F"
      unitRef="usd">0</us-gaap:OtherComprehensiveIncomeForeignCurrencyTranslationGainLossArisingDuringPeriodTax>
    <us-gaap:OtherComprehensiveIncomeForeignCurrencyTranslationGainLossArisingDuringPeriodTax
      contextRef="FD2019Q4YTD"
      decimals="-3"
      id="Fact-5E868AEDC60872D1A4518095A190B9AF-wk-Fact-5E868AEDC60872D1A4518095A190B9AF"
      unitRef="usd">0</us-gaap:OtherComprehensiveIncomeForeignCurrencyTranslationGainLossArisingDuringPeriodTax>
    <us-gaap:OtherComprehensiveIncomeLossDerivativesQualifyingAsHedgesTax
      contextRef="FD2017Q4YTD"
      decimals="-3"
      id="Fact-5DA59EF84CF6E75D67578095A1904760-wk-Fact-5DA59EF84CF6E75D67578095A1904760"
      unitRef="usd">-5000</us-gaap:OtherComprehensiveIncomeLossDerivativesQualifyingAsHedgesTax>
    <us-gaap:OtherComprehensiveIncomeLossDerivativesQualifyingAsHedgesTax
      contextRef="FD2018Q4YTD"
      decimals="-3"
      id="Fact-CBF0979BC5A6BE12CB048095A190E5B2-wk-Fact-CBF0979BC5A6BE12CB048095A190E5B2"
      unitRef="usd">0</us-gaap:OtherComprehensiveIncomeLossDerivativesQualifyingAsHedgesTax>
    <us-gaap:OtherComprehensiveIncomeLossDerivativesQualifyingAsHedgesTax
      contextRef="FD2019Q4YTD"
      decimals="-3"
      id="Fact-07D5FE19735EF97BAB788095A190A744-wk-Fact-07D5FE19735EF97BAB788095A190A744"
      unitRef="usd">0</us-gaap:OtherComprehensiveIncomeLossDerivativesQualifyingAsHedgesTax>
    <us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTranslationAdjustmentTax
      contextRef="FD2017Q4YTD"
      decimals="-3"
      id="Fact-F9CD8863783C4A3DF4A28095A18E56FD-wk-Fact-F9CD8863783C4A3DF4A28095A18E56FD"
      unitRef="usd">0</us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTranslationAdjustmentTax>
    <us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTranslationAdjustmentTax
      contextRef="FD2018Q4YTD"
      decimals="-3"
      id="Fact-8A98D4C88FC159F094458095A18F9C32-wk-Fact-8A98D4C88FC159F094458095A18F9C32"
      unitRef="usd">0</us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTranslationAdjustmentTax>
    <us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTranslationAdjustmentTax
      contextRef="FD2019Q4YTD"
      decimals="-3"
      id="Fact-E5D8164C15219200E7838095A18E5F56-wk-Fact-E5D8164C15219200E7838095A18E5F56"
      unitRef="usd">0</us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTranslationAdjustmentTax>
    <us-gaap:OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodTax
      contextRef="FD2017Q4YTD"
      decimals="-3"
      id="Fact-6E50CD83CD1DBF05AA0D8095A190F57C-wk-Fact-6E50CD83CD1DBF05AA0D8095A190F57C"
      unitRef="usd">2000</us-gaap:OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodTax>
    <us-gaap:OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodTax
      contextRef="FD2018Q4YTD"
      decimals="-3"
      id="Fact-32C82161E68B9300CB918095A190F12F-wk-Fact-32C82161E68B9300CB918095A190F12F"
      unitRef="usd">-188000</us-gaap:OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodTax>
    <us-gaap:OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodTax
      contextRef="FD2019Q4YTD"
      decimals="-3"
      id="Fact-47D29C8055268EBDFBF08095A190A4E1-wk-Fact-47D29C8055268EBDFBF08095A190A4E1"
      unitRef="usd">515000</us-gaap:OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodTax>
    <us-gaap:OtherThanTemporaryImpairmentLossesInvestmentsPortionRecognizedInEarningsNet
      contextRef="FD2017Q4YTD_us-gaap_FairValueByMeasurementFrequencyAxis_us-gaap_FairValueMeasurementsRecurringMember"
      decimals="INF"
      id="Fact-3D7336F765BE0007EC938095A18321CC-wk-Fact-3D7336F765BE0007EC938095A18321CC"
      unitRef="usd">0</us-gaap:OtherThanTemporaryImpairmentLossesInvestmentsPortionRecognizedInEarningsNet>
    <us-gaap:OtherThanTemporaryImpairmentLossesInvestmentsPortionRecognizedInEarningsNet
      contextRef="FD2018Q4YTD_us-gaap_FairValueByMeasurementFrequencyAxis_us-gaap_FairValueMeasurementsRecurringMember"
      decimals="INF"
      id="Fact-C719D644728FFA9750298095A183EAB6-wk-Fact-C719D644728FFA9750298095A183EAB6"
      unitRef="usd">0</us-gaap:OtherThanTemporaryImpairmentLossesInvestmentsPortionRecognizedInEarningsNet>
    <us-gaap:OtherThanTemporaryImpairmentLossesInvestmentsPortionRecognizedInEarningsNet
      contextRef="FD2019Q4YTD_us-gaap_FairValueByMeasurementFrequencyAxis_us-gaap_FairValueMeasurementsRecurringMember"
      decimals="INF"
      id="Fact-D689D31AAE9FC1F6D0F98095A18340AE-wk-Fact-D689D31AAE9FC1F6D0F98095A18340AE"
      unitRef="usd">0</us-gaap:OtherThanTemporaryImpairmentLossesInvestmentsPortionRecognizedInEarningsNet>
    <us-gaap:PreferredStockParOrStatedValuePerShare
      contextRef="FI2018Q4"
      decimals="INF"
      id="Fact-995E957D7420CF0AABD3F3CF59E1B6CC-wk-Fact-995E957D7420CF0AABD3F3CF59E1B6CC"
      unitRef="usdPerShare">0.01</us-gaap:PreferredStockParOrStatedValuePerShare>
    <us-gaap:PreferredStockSharesAuthorized
      contextRef="FI2018Q4"
      decimals="INF"
      id="Fact-F3EAFA3DA8F5E9787F61F3CFA6B3BA4D-wk-Fact-F3EAFA3DA8F5E9787F61F3CFA6B3BA4D"
      unitRef="shares">400000</us-gaap:PreferredStockSharesAuthorized>
    <us-gaap:PreferredStockSharesIssued
      contextRef="FI2018Q4"
      decimals="INF"
      id="Fact-D30A643CA7F64EC609B9F3CFDCE9B6C2-wk-Fact-D30A643CA7F64EC609B9F3CFDCE9B6C2"
      unitRef="shares">0</us-gaap:PreferredStockSharesIssued>
    <us-gaap:PreferredStockSharesIssued
      contextRef="FI2019Q4"
      decimals="INF"
      id="Fact-167BAE519056F4BBA8B4F3CFDCEE4929-wk-Fact-167BAE519056F4BBA8B4F3CFDCEE4929"
      unitRef="shares">0</us-gaap:PreferredStockSharesIssued>
    <us-gaap:PreferredStockSharesOutstanding
      contextRef="FI2018Q4"
      decimals="INF"
      id="Fact-9DC76F3D73F161516D71F3D02897A210-wk-Fact-9DC76F3D73F161516D71F3D02897A210"
      unitRef="shares">0</us-gaap:PreferredStockSharesOutstanding>
    <us-gaap:PreferredStockSharesOutstanding
      contextRef="FI2019Q4"
      decimals="INF"
      id="Fact-C8602A543BE3B03EA7FAF3D028A62353-wk-Fact-C8602A543BE3B03EA7FAF3D028A62353"
      unitRef="shares">0</us-gaap:PreferredStockSharesOutstanding>
    <us-gaap:PropertyPlantAndEquipmentUsefulLife
      contextRef="FD2019Q4YTD_srt_RangeAxis_srt_MaximumMember_us-gaap_PropertyPlantAndEquipmentByTypeAxis_us-gaap_EquipmentMember"
      id="Fact-106984A4FE0F750CE8948095A18F5DBA-wk-Fact-106984A4FE0F750CE8948095A18F5DBA">P5Y</us-gaap:PropertyPlantAndEquipmentUsefulLife>
    <us-gaap:PropertyPlantAndEquipmentUsefulLife
      contextRef="FD2019Q4YTD_srt_RangeAxis_srt_MaximumMember_us-gaap_PropertyPlantAndEquipmentByTypeAxis_us-gaap_FurnitureAndFixturesMember"
      id="Fact-713117698C1A83B918958095A18FB473-wk-Fact-713117698C1A83B918958095A18FB473">P5Y</us-gaap:PropertyPlantAndEquipmentUsefulLife>
    <us-gaap:PropertyPlantAndEquipmentUsefulLife
      contextRef="FD2019Q4YTD_srt_RangeAxis_srt_MinimumMember_us-gaap_PropertyPlantAndEquipmentByTypeAxis_cgnx_ComputerHardwareAndSoftwareMember"
      id="Fact-0F397FC767CA2392420F849DDB27876F-wk-Fact-0F397FC767CA2392420F849DDB27876F">P2Y</us-gaap:PropertyPlantAndEquipmentUsefulLife>
    <us-gaap:PropertyPlantAndEquipmentUsefulLife
      contextRef="FD2019Q4YTD_srt_RangeAxis_srt_MinimumMember_us-gaap_PropertyPlantAndEquipmentByTypeAxis_us-gaap_EquipmentMember"
      id="Fact-893D8F98A6B94F9D78338095A18F84FE-wk-Fact-893D8F98A6B94F9D78338095A18F84FE">P2Y</us-gaap:PropertyPlantAndEquipmentUsefulLife>
    <us-gaap:PropertyPlantAndEquipmentUsefulLife
      contextRef="FD2019Q4YTD_srt_RangeAxis_srt_MinimumMember_us-gaap_PropertyPlantAndEquipmentByTypeAxis_us-gaap_FurnitureAndFixturesMember"
      id="Fact-1F4D727A473A882385CD8095A18FDB0C-wk-Fact-1F4D727A473A882385CD8095A18FDB0C">P2Y</us-gaap:PropertyPlantAndEquipmentUsefulLife>
    <us-gaap:PropertySubjectToOrAvailableForOperatingLeaseGross
      contextRef="FI2018Q4"
      decimals="-3"
      id="Fact-FB808C8C32B0F0A855AE8095A1746527-wk-Fact-FB808C8C32B0F0A855AE8095A1746527"
      unitRef="usd">800000</us-gaap:PropertySubjectToOrAvailableForOperatingLeaseGross>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1
      contextRef="FD2019Q4YTD_srt_RangeAxis_srt_MaximumMember_us-gaap_AwardTypeAxis_us-gaap_PerformanceSharesMember"
      id="Fact-FF309D785B86E4129A8217C0124BE009-wk-Fact-FF309D785B86E4129A8217C0124BE009">P3Y</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1
      contextRef="FD2019Q4YTD_srt_RangeAxis_srt_MinimumMember_us-gaap_AwardTypeAxis_us-gaap_EmployeeStockOptionMember"
      id="Fact-16E91159CE35DA8950CA17217FF2DFFC-wk-Fact-16E91159CE35DA8950CA17217FF2DFFC">P4Y</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1
      contextRef="FD2019Q4YTD_us-gaap_AwardTypeAxis_us-gaap_EmployeeStockOptionMember"
      id="Fact-766EB9232B132C0CE2898095A19761F8-wk-Fact-766EB9232B132C0CE2898095A19761F8"
      xsi:nil="true"/>
    <us-gaap:StockholdersEquityNoteStockSplitConversionRatio1
      contextRef="FD2017Q4QTD"
      decimals="INF"
      id="Fact-7F87069EEB8CEEF28F658095A17B396D-wk-Fact-7F87069EEB8CEEF28F658095A17B396D"
      unitRef="number">2</us-gaap:StockholdersEquityNoteStockSplitConversionRatio1>
    <us-gaap:ValuationAllowancesAndReservesBalance
      contextRef="FI2018Q4"
      decimals="-3"
      id="Fact-DD7CEDEC0434EBBB53B58095A18FAAB9-wk-Fact-DD7CEDEC0434EBBB53B58095A18FAAB9"
      unitRef="usd">1646000</us-gaap:ValuationAllowancesAndReservesBalance>
    <us-gaap:ValuationAllowancesAndReservesBalance
      contextRef="FI2019Q4"
      decimals="-3"
      id="Fact-3AF445753D0205CD50C38095A18FC215-wk-Fact-3AF445753D0205CD50C38095A18FC215"
      unitRef="usd">1821000</us-gaap:ValuationAllowancesAndReservesBalance>
    <dei:DocumentType
      contextRef="FD2019Q4YTD"
      id="d9024396e640-wk-Fact-B936DE8D940D98F9B29680CE7C51E372">10-K</dei:DocumentType>
    <dei:DocumentQuarterlyReport
      contextRef="FD2019Q4YTD"
      id="d9024396e649-wk-Fact-65D09DE79C2DD89F55B784591F026E90">true</dei:DocumentQuarterlyReport>
    <dei:DocumentPeriodEndDate
      contextRef="FD2019Q4YTD"
      id="d9024396e654-wk-Fact-B3C9C19CE73015871C29845982E81BE6">2019-12-31</dei:DocumentPeriodEndDate>
    <dei:DocumentTransitionReport
      contextRef="FD2019Q4YTD"
      id="d9024396e659-wk-Fact-E06B661DBB3DCC628D848459CD44656D">false</dei:DocumentTransitionReport>
    <dei:EntityFileNumber
      contextRef="FD2019Q4YTD"
      id="d9024396e677-wk-Fact-4BE5AC090F6D45F31E79845A1CA31C4B">001-34218</dei:EntityFileNumber>
    <dei:EntityRegistrantName
      contextRef="FD2019Q4YTD"
      id="d9024396e683-wk-Fact-AEF8062B1C6A4963116B845BCBFACEF1">COGNEX CORP</dei:EntityRegistrantName>
    <dei:EntityIncorporationStateCountryCode
      contextRef="FD2019Q4YTD"
      id="d9024396e712-wk-Fact-FC5F1C094B8CB04B04E1845CCA15E81E">MA</dei:EntityIncorporationStateCountryCode>
    <dei:EntityTaxIdentificationNumber
      contextRef="FD2019Q4YTD"
      id="d9024396e722-wk-Fact-239C534772C81EFDD642845D02A7AFFD">04-2713778</dei:EntityTaxIdentificationNumber>
    <dei:EntityAddressAddressLine1
      contextRef="FD2019Q4YTD"
      id="d9024396e765-wk-Fact-3D16FB7213F7C7F4C846845E32BAFA34">One Vision Drive</dei:EntityAddressAddressLine1>
    <dei:EntityAddressCityOrTown
      contextRef="FD2019Q4YTD"
      id="d9024396e771-wk-Fact-644F6C27BC68440DAF5B845E4495033D">Natick</dei:EntityAddressCityOrTown>
    <dei:EntityAddressStateOrProvince
      contextRef="FD2019Q4YTD"
      id="d9024396e776-wk-Fact-FC278162609999BE823A845E5727E57D">MA</dei:EntityAddressStateOrProvince>
    <dei:EntityAddressPostalZipCode
      contextRef="FD2019Q4YTD"
      id="d9024396e781-wk-Fact-060BB5D76ECD91912FD8845E68B37D59">01760</dei:EntityAddressPostalZipCode>
    <dei:CityAreaCode
      contextRef="FD2019Q4YTD"
      id="d9024396e789-wk-Fact-5ACDAAE21F7CEB04D484845E785BD7FE">508</dei:CityAreaCode>
    <dei:LocalPhoneNumber
      contextRef="FD2019Q4YTD"
      id="d9024396e794-wk-Fact-F7DD32FAA65AE739A8C6845E8D339721">650-3000</dei:LocalPhoneNumber>
    <dei:Security12bTitle
      contextRef="FD2019Q4YTD"
      id="d9024396e875-wk-Fact-4AA88F8E29F3742539CF8462AED37F30">Common Stock, par value $.002 per share</dei:Security12bTitle>
    <dei:TradingSymbol
      contextRef="FD2019Q4YTD"
      id="d9024396e880-wk-Fact-311128C8ECBA7FC1F2368462C009D596">CGNX</dei:TradingSymbol>
    <dei:SecurityExchangeName
      contextRef="FD2019Q4YTD"
      id="d9024396e885-wk-Fact-3E16675563B12E7B49948462D249E5D6">NASDAQ</dei:SecurityExchangeName>
    <dei:EntityWellKnownSeasonedIssuer
      contextRef="FD2019Q4YTD"
      id="d9024396e928-wk-Fact-DD8BC26DC3A880B10694846420458F2B">Yes</dei:EntityWellKnownSeasonedIssuer>
    <dei:EntityVoluntaryFilers
      contextRef="FD2019Q4YTD"
      id="d9024396e1050-wk-Fact-45D63DE73246CD7739B6846856D25CC0">No</dei:EntityVoluntaryFilers>
    <dei:EntityCurrentReportingStatus
      contextRef="FD2019Q4YTD"
      id="d9024396e1111-wk-Fact-5637AA20E8C7A71A039C846911091778">Yes</dei:EntityCurrentReportingStatus>
    <dei:EntityInteractiveDataCurrent
      contextRef="FD2019Q4YTD"
      id="d9024396e1202-wk-Fact-48004E7B189DDB51FF768469AC6AB794">Yes</dei:EntityInteractiveDataCurrent>
    <dei:EntityFilerCategory
      contextRef="FD2019Q4YTD"
      id="d9024396e1280-wk-Fact-505E34AFDE4290123C878479DB453A20">Large Accelerated Filer</dei:EntityFilerCategory>
    <dei:EntitySmallBusiness
      contextRef="FD2019Q4YTD"
      id="d9024396e1316-wk-Fact-534889088805113A193C3F218EFD5A2C">false</dei:EntitySmallBusiness>
    <dei:EntityEmergingGrowthCompany
      contextRef="FD2019Q4YTD"
      id="d9024396e1344-wk-Fact-D9FE734D4A5EE726EF06847C72868FAF">false</dei:EntityEmergingGrowthCompany>
    <dei:EntityShellCompany
      contextRef="FD2019Q4YTD"
      id="d9024396e1406-wk-Fact-2642D0C9735973603F72847E5627B2F3">false</dei:EntityShellCompany>
    <dei:EntityPublicFloat
      contextRef="FI2019Q2"
      decimals="0"
      id="d9024396e1456-wk-Fact-20813A861CE0C82825508095A17A4627"
      unitRef="usd">7800874313</dei:EntityPublicFloat>
    <dei:EntityCommonStockSharesOutstanding
      contextRef="I2020Q1Jan26"
      decimals="0"
      id="d9024396e1468-wk-Fact-5BF4975AB69425BA1AF18095A185AD08"
      unitRef="shares">172611232</dei:EntityCommonStockSharesOutstanding>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="FD2019Q4YTD"
      decimals="-3"
      id="d9036001e914-wk-Fact-B06BBDF776878FE4B2BC8095A17D5E83"
      unitRef="usd">725625000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="FD2018Q4YTD"
      decimals="-3"
      id="d9036001e933-wk-Fact-D6E1BF373058FA9CCF958095A18F656B"
      unitRef="usd">806338000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="FD2017Q4YTD"
      decimals="-3"
      id="d9036001e952-wk-Fact-53B0A8CFBD2030E181408095A17CDF23"
      unitRef="usd">766083000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:CostOfGoodsAndServicesSold
      contextRef="FD2019Q4YTD"
      decimals="-3"
      id="d9036001e968-wk-Fact-78D9CBF7F5FBB884E2EF8095A18F8656"
      unitRef="usd">189754000</us-gaap:CostOfGoodsAndServicesSold>
    <us-gaap:CostOfGoodsAndServicesSold
      contextRef="FD2018Q4YTD"
      decimals="-3"
      id="d9036001e987-wk-Fact-9984E8A90AAC5E48F0B48095A17C1CB0"
      unitRef="usd">206052000</us-gaap:CostOfGoodsAndServicesSold>
    <us-gaap:CostOfGoodsAndServicesSold
      contextRef="FD2017Q4YTD"
      decimals="-3"
      id="d9036001e1006-wk-Fact-A879BBCD8FD3C10B45AE8095A17CEEC6"
      unitRef="usd">187289000</us-gaap:CostOfGoodsAndServicesSold>
    <us-gaap:GrossProfit
      contextRef="FD2019Q4YTD"
      decimals="-3"
      id="d9036001e1027-wk-Fact-CB4B6CD2C3026A12615E8095A18F8E31"
      unitRef="usd">535871000</us-gaap:GrossProfit>
    <us-gaap:GrossProfit
      contextRef="FD2018Q4YTD"
      decimals="-3"
      id="d9036001e1046-wk-Fact-7C7C2B6A0A5890E4CBA78095A17B7702"
      unitRef="usd">600286000</us-gaap:GrossProfit>
    <us-gaap:GrossProfit
      contextRef="FD2017Q4YTD"
      decimals="-3"
      id="d9036001e1065-wk-Fact-5530F51EF2DDBC4F0B628095A18FFCF0"
      unitRef="usd">578794000</us-gaap:GrossProfit>
    <us-gaap:ResearchAndDevelopmentExpense
      contextRef="FD2019Q4YTD"
      decimals="-3"
      id="d9036001e1086-wk-Fact-71666BEAFCF4D72F0F618095A17BA924"
      unitRef="usd">119427000</us-gaap:ResearchAndDevelopmentExpense>
    <us-gaap:ResearchAndDevelopmentExpense
      contextRef="FD2018Q4YTD"
      decimals="-3"
      id="d9036001e1105-wk-Fact-5F95449A6590E7CDF97C8095A17B024C"
      unitRef="usd">116445000</us-gaap:ResearchAndDevelopmentExpense>
    <us-gaap:ResearchAndDevelopmentExpense
      contextRef="FD2017Q4YTD"
      decimals="-3"
      id="d9036001e1124-wk-Fact-DEB1B91A21F8A5B2903B8095A17B3717"
      unitRef="usd">99205000</us-gaap:ResearchAndDevelopmentExpense>
    <us-gaap:SellingGeneralAndAdministrativeExpense
      contextRef="FD2019Q4YTD"
      decimals="-3"
      id="d9036001e1145-wk-Fact-1AE01E951AF9D69CB8FD8095A17BA6CC"
      unitRef="usd">273842000</us-gaap:SellingGeneralAndAdministrativeExpense>
    <us-gaap:SellingGeneralAndAdministrativeExpense
      contextRef="FD2018Q4YTD"
      decimals="-3"
      id="d9036001e1164-wk-Fact-199184EBED54F12F5A8C8095A17CCF70"
      unitRef="usd">262699000</us-gaap:SellingGeneralAndAdministrativeExpense>
    <us-gaap:SellingGeneralAndAdministrativeExpense
      contextRef="FD2017Q4YTD"
      decimals="-3"
      id="d9036001e1183-wk-Fact-EE9303A7334EC21565958095A18E9684"
      unitRef="usd">220728000</us-gaap:SellingGeneralAndAdministrativeExpense>
    <us-gaap:OperatingIncomeLoss
      contextRef="FD2019Q4YTD"
      decimals="-3"
      id="d9036001e1204-wk-Fact-B737D4567D44E36E1DCC8095A18EDF4E"
      unitRef="usd">142602000</us-gaap:OperatingIncomeLoss>
    <us-gaap:OperatingIncomeLoss
      contextRef="FD2018Q4YTD"
      decimals="-3"
      id="d9036001e1223-wk-Fact-D464B39DBBEBD1BAF2648095A17B7743"
      unitRef="usd">221142000</us-gaap:OperatingIncomeLoss>
    <us-gaap:OperatingIncomeLoss
      contextRef="FD2017Q4YTD"
      decimals="-3"
      id="d9036001e1242-wk-Fact-BE3502110251A23E64728095A18EDC1F"
      unitRef="usd">258861000</us-gaap:OperatingIncomeLoss>
    <us-gaap:ForeignCurrencyTransactionGainLossBeforeTax
      contextRef="FD2019Q4YTD"
      decimals="-3"
      id="d9036001e1263-wk-Fact-DF5B4884170F7BC9930F8095A18E250E"
      unitRef="usd">-509000</us-gaap:ForeignCurrencyTransactionGainLossBeforeTax>
    <us-gaap:ForeignCurrencyTransactionGainLossBeforeTax
      contextRef="FD2018Q4YTD"
      decimals="-3"
      id="d9036001e1283-wk-Fact-82B86D0A41A9B39871D88095A17BBB5B"
      unitRef="usd">-1064000</us-gaap:ForeignCurrencyTransactionGainLossBeforeTax>
    <us-gaap:ForeignCurrencyTransactionGainLossBeforeTax
      contextRef="FD2017Q4YTD"
      decimals="-3"
      id="d9036001e1303-wk-Fact-73D9FE538F1504EB08498095A17C0C83"
      unitRef="usd">-1601000</us-gaap:ForeignCurrencyTransactionGainLossBeforeTax>
    <us-gaap:InvestmentIncomeNonoperating
      contextRef="FD2019Q4YTD"
      decimals="-3"
      id="d9036001e1326-wk-Fact-4357D13F8FC1AE0345BE8095A18F93AF"
      unitRef="usd">19689000</us-gaap:InvestmentIncomeNonoperating>
    <us-gaap:InvestmentIncomeNonoperating
      contextRef="FD2018Q4YTD"
      decimals="-3"
      id="d9036001e1345-wk-Fact-3A7E5061A47F12C657FA8095A18F8726"
      unitRef="usd">14715000</us-gaap:InvestmentIncomeNonoperating>
    <us-gaap:InvestmentIncomeNonoperating
      contextRef="FD2017Q4YTD"
      decimals="-3"
      id="d9036001e1364-wk-Fact-A34F8327259264ABE82C8095A17BB013"
      unitRef="usd">9542000</us-gaap:InvestmentIncomeNonoperating>
    <us-gaap:OtherNonoperatingIncomeExpense
      contextRef="FD2019Q4YTD"
      decimals="-3"
      id="d9036001e1385-wk-Fact-486A2DD462459033FE358095A17C5F4B"
      unitRef="usd">1212000</us-gaap:OtherNonoperatingIncomeExpense>
    <us-gaap:OtherNonoperatingIncomeExpense
      contextRef="FD2018Q4YTD"
      decimals="-3"
      id="d9036001e1404-wk-Fact-7F375505EB662D5E912E8095A18E95F1"
      unitRef="usd">-219000</us-gaap:OtherNonoperatingIncomeExpense>
    <us-gaap:OtherNonoperatingIncomeExpense
      contextRef="FD2017Q4YTD"
      decimals="-3"
      id="d9036001e1424-wk-Fact-98F7101D0E2A99A121A68095A18F643F"
      unitRef="usd">-338000</us-gaap:OtherNonoperatingIncomeExpense>
    <us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments
      contextRef="FD2019Q4YTD"
      decimals="-3"
      id="d9036001e1446-wk-Fact-11356283C594F0D652E68095A17C4913"
      unitRef="usd">162994000</us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments>
    <us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments
      contextRef="FD2018Q4YTD"
      decimals="-3"
      id="d9036001e1465-wk-Fact-7BFF4678DA05B7DEAC038095A17C7226"
      unitRef="usd">234574000</us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments>
    <us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments
      contextRef="FD2017Q4YTD"
      decimals="-3"
      id="d9036001e1484-wk-Fact-285AAD060675169875B78095A17C86D2"
      unitRef="usd">266464000</us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments>
    <us-gaap:IncomeTaxExpenseBenefit
      contextRef="FD2019Q4YTD"
      decimals="-3"
      id="d9036001e1505-wk-Fact-F330DB1560316A224D428095A18EC1D6"
      unitRef="usd">-40871000</us-gaap:IncomeTaxExpenseBenefit>
    <us-gaap:IncomeTaxExpenseBenefit
      contextRef="FD2018Q4YTD"
      decimals="-3"
      id="d9036001e1525-wk-Fact-874D0B25503039A801968095A17B9ED6"
      unitRef="usd">15307000</us-gaap:IncomeTaxExpenseBenefit>
    <us-gaap:IncomeTaxExpenseBenefit
      contextRef="FD2017Q4YTD"
      decimals="-3"
      id="d9036001e1544-wk-Fact-3C978299D4B7227ABE098095A17CACD6"
      unitRef="usd">89752000</us-gaap:IncomeTaxExpenseBenefit>
    <us-gaap:NetIncomeLoss
      contextRef="FD2019Q4YTD"
      decimals="-3"
      id="d9036001e1570-wk-Fact-7A2F7F14108749D162188095A17CA207"
      unitRef="usd">203865000</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="FD2018Q4YTD"
      decimals="-3"
      id="d9036001e1589-wk-Fact-1AC51EC9E270CE718EBD8095A18E3121"
      unitRef="usd">219267000</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="FD2017Q4YTD"
      decimals="-3"
      id="d9036001e1608-wk-Fact-B391D3198F1CC415B9AA8095A17B728A"
      unitRef="usd">176712000</us-gaap:NetIncomeLoss>
    <us-gaap:EarningsPerShareBasic
      contextRef="FD2019Q4YTD"
      decimals="2"
      id="d9036001e1753-wk-Fact-EFE5EB1E695D8201B7288095A17CDD88"
      unitRef="usdPerShare">1.19</us-gaap:EarningsPerShareBasic>
    <us-gaap:EarningsPerShareBasic
      contextRef="FD2018Q4YTD"
      decimals="2"
      id="d9036001e1772-wk-Fact-1AB42C7C55BD2C60AD3E8095A18E18F6"
      unitRef="usdPerShare">1.27</us-gaap:EarningsPerShareBasic>
    <us-gaap:EarningsPerShareBasic
      contextRef="FD2017Q4YTD"
      decimals="2"
      id="d9036001e1791-wk-Fact-D60F4B1AF3F17360DF718095A18FC454"
      unitRef="usdPerShare">1.02</us-gaap:EarningsPerShareBasic>
    <us-gaap:EarningsPerShareDiluted
      contextRef="FD2019Q4YTD"
      decimals="2"
      id="d9036001e1812-wk-Fact-3ED4FD47A316C81069598095A18E3CB0"
      unitRef="usdPerShare">1.16</us-gaap:EarningsPerShareDiluted>
    <us-gaap:EarningsPerShareDiluted
      contextRef="FD2018Q4YTD"
      decimals="2"
      id="d9036001e1831-wk-Fact-9463F86170C2FBD637FF8095A18E94A7"
      unitRef="usdPerShare">1.24</us-gaap:EarningsPerShareDiluted>
    <us-gaap:EarningsPerShareDiluted
      contextRef="FD2017Q4YTD"
      decimals="2"
      id="d9036001e1850-wk-Fact-81BF010C8161F7A66CD18095A18E4F0F"
      unitRef="usdPerShare">0.98</us-gaap:EarningsPerShareDiluted>
    <us-gaap:WeightedAverageNumberOfSharesOutstandingBasic
      contextRef="FD2019Q4YTD"
      decimals="-3"
      id="d9036001e1991-wk-Fact-7088F56A600431DA334F8095A18F2AB4"
      unitRef="shares">171194000</us-gaap:WeightedAverageNumberOfSharesOutstandingBasic>
    <us-gaap:WeightedAverageNumberOfSharesOutstandingBasic
      contextRef="FD2018Q4YTD"
      decimals="-3"
      id="d9036001e2010-wk-Fact-D3C52957E5467B5121488095A18E5877"
      unitRef="shares">172333000</us-gaap:WeightedAverageNumberOfSharesOutstandingBasic>
    <us-gaap:WeightedAverageNumberOfSharesOutstandingBasic
      contextRef="FD2017Q4YTD"
      decimals="-3"
      id="d9036001e2029-wk-Fact-F100B30FB31E7AE1BF208095A17B8FE2"
      unitRef="shares">173287000</us-gaap:WeightedAverageNumberOfSharesOutstandingBasic>
    <us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding
      contextRef="FD2019Q4YTD"
      decimals="-3"
      id="d9036001e2050-wk-Fact-D5734F0FAB5E10C2BF8F8095A18E8C75"
      unitRef="shares">175269000</us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding>
    <us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding
      contextRef="FD2018Q4YTD"
      decimals="-3"
      id="d9036001e2069-wk-Fact-8C961D180BA7FE998E388095A17C4AED"
      unitRef="shares">177406000</us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding>
    <us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding
      contextRef="FD2017Q4YTD"
      decimals="-3"
      id="d9036001e2088-wk-Fact-F0CCA5ACB6DDF0BB1FA98095A18E3C36"
      unitRef="shares">179551000</us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding>
    <us-gaap:CommonStockDividendsPerShareCashPaid
      contextRef="FD2019Q4YTD"
      decimals="4"
      id="d9036001e2176-wk-Fact-D15F9102957FCCB7DBF48095A17BDF77"
      unitRef="usdPerShare">0.2050</us-gaap:CommonStockDividendsPerShareCashPaid>
    <us-gaap:CommonStockDividendsPerShareCashPaid
      contextRef="FD2018Q4YTD"
      decimals="4"
      id="d9036001e2195-wk-Fact-97BE5E31F5F06BC065418095A17CCEAE"
      unitRef="usdPerShare">0.1850</us-gaap:CommonStockDividendsPerShareCashPaid>
    <us-gaap:CommonStockDividendsPerShareCashPaid
      contextRef="FD2017Q4YTD"
      decimals="4"
      id="d9036001e2214-wk-Fact-024F97ED08CD171B6D408095A17B6DC2"
      unitRef="usdPerShare">0.1675</us-gaap:CommonStockDividendsPerShareCashPaid>
    <us-gaap:NetIncomeLoss
      contextRef="FD2019Q4YTD"
      decimals="-3"
      id="d9042542e852-wk-Fact-7A2F7F14108749D162188095A17CA207"
      unitRef="usd">203865000</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="FD2018Q4YTD"
      decimals="-3"
      id="d9042542e871-wk-Fact-1AC51EC9E270CE718EBD8095A18E3121"
      unitRef="usd">219267000</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="FD2017Q4YTD"
      decimals="-3"
      id="d9042542e890-wk-Fact-B391D3198F1CC415B9AA8095A17B728A"
      unitRef="usd">176712000</us-gaap:NetIncomeLoss>
    <us-gaap:OtherComprehensiveIncomeUnrealizedGainLossOnDerivativesArisingDuringPeriodNetOfTax
      contextRef="FD2019Q4YTD"
      decimals="-3"
      id="d9042542e1030-wk-Fact-BB6BB7DF765C521927758095A18669CA"
      unitRef="usd">0</us-gaap:OtherComprehensiveIncomeUnrealizedGainLossOnDerivativesArisingDuringPeriodNetOfTax>
    <us-gaap:OtherComprehensiveIncomeUnrealizedGainLossOnDerivativesArisingDuringPeriodNetOfTax
      contextRef="FD2018Q4YTD"
      decimals="-3"
      id="d9042542e1049-wk-Fact-33F2D1AB128BAA66657D8095A1983EC3"
      unitRef="usd">0</us-gaap:OtherComprehensiveIncomeUnrealizedGainLossOnDerivativesArisingDuringPeriodNetOfTax>
    <us-gaap:OtherComprehensiveIncomeUnrealizedGainLossOnDerivativesArisingDuringPeriodNetOfTax
      contextRef="FD2017Q4YTD"
      decimals="-3"
      id="d9042542e1068-wk-Fact-9D3EEBB7BBBF4F7B14EC8095A186B36F"
      unitRef="usd">4000</us-gaap:OtherComprehensiveIncomeUnrealizedGainLossOnDerivativesArisingDuringPeriodNetOfTax>
    <us-gaap:OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIOnDerivativesNetOfTax
      contextRef="FD2019Q4YTD"
      decimals="-3"
      id="d9042542e1089-wk-Fact-0F3F016BCDD39E85BD148095A198FA01"
      unitRef="usd">0</us-gaap:OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIOnDerivativesNetOfTax>
    <us-gaap:OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIOnDerivativesNetOfTax
      contextRef="FD2018Q4YTD"
      decimals="-3"
      id="d9042542e1108-wk-Fact-B2A1FA798D75EEA235B78095A186BE0A"
      unitRef="usd">0</us-gaap:OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIOnDerivativesNetOfTax>
    <us-gaap:OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIOnDerivativesNetOfTax
      contextRef="FD2017Q4YTD"
      decimals="-3"
      id="d9042542e1127-wk-Fact-6950DADA9B2258A903F38095A199F7D8"
      unitRef="usd">41000</us-gaap:OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIOnDerivativesNetOfTax>
    <us-gaap:OtherComprehensiveIncomeLossDerivativesQualifyingAsHedgesNetOfTax
      contextRef="FD2019Q4YTD"
      decimals="-3"
      id="d9042542e1149-wk-Fact-5DC0993CB052E0C61D6C8095A198E350"
      unitRef="usd">0</us-gaap:OtherComprehensiveIncomeLossDerivativesQualifyingAsHedgesNetOfTax>
    <us-gaap:OtherComprehensiveIncomeLossDerivativesQualifyingAsHedgesNetOfTax
      contextRef="FD2018Q4YTD"
      decimals="-3"
      id="d9042542e1168-wk-Fact-500A77C0EAF51EF3D7FF8095A186C5D0"
      unitRef="usd">0</us-gaap:OtherComprehensiveIncomeLossDerivativesQualifyingAsHedgesNetOfTax>
    <us-gaap:OtherComprehensiveIncomeLossDerivativesQualifyingAsHedgesNetOfTax
      contextRef="FD2017Q4YTD"
      decimals="-3"
      id="d9042542e1187-wk-Fact-89FC3E1E80FACF7761F68095A19851CE"
      unitRef="usd">-37000</us-gaap:OtherComprehensiveIncomeLossDerivativesQualifyingAsHedgesNetOfTax>
    <us-gaap:OtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax
      contextRef="FD2019Q4YTD"
      decimals="-3"
      id="d9042542e1334-wk-Fact-C853D237AA029C0D23CB8095A198A145"
      unitRef="usd">5219000</us-gaap:OtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax>
    <us-gaap:OtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax
      contextRef="FD2018Q4YTD"
      decimals="-3"
      id="d9042542e1353-wk-Fact-1EB19325C22C5963C4518095A198EE2F"
      unitRef="usd">-1185000</us-gaap:OtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax>
    <us-gaap:OtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax
      contextRef="FD2017Q4YTD"
      decimals="-3"
      id="d9042542e1373-wk-Fact-2649AF33EDB459FBDB228095A186AC77"
      unitRef="usd">703000</us-gaap:OtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax>
    <us-gaap:OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax
      contextRef="FD2019Q4YTD"
      decimals="-3"
      id="d9042542e1394-wk-Fact-1567E4B2250861FD85178095A199E5ED"
      unitRef="usd">1452000</us-gaap:OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax>
    <us-gaap:OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax
      contextRef="FD2018Q4YTD"
      decimals="-3"
      id="d9042542e1414-wk-Fact-D5FB4181AACCF5EC38828095A1853D44"
      unitRef="usd">501000</us-gaap:OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax>
    <us-gaap:OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax
      contextRef="FD2017Q4YTD"
      decimals="-3"
      id="d9042542e1434-wk-Fact-365F7222BF418912580A8095A198B1DD"
      unitRef="usd">829000</us-gaap:OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax>
    <us-gaap:OtherComprehensiveIncomeAvailableforsaleSecuritiesAdjustmentNetOfTaxPortionAttributableToParent
      contextRef="FD2019Q4YTD"
      decimals="-3"
      id="d9042542e1456-wk-Fact-4B8E6662D18C0F367A328095A185FA4A"
      unitRef="usd">3767000</us-gaap:OtherComprehensiveIncomeAvailableforsaleSecuritiesAdjustmentNetOfTaxPortionAttributableToParent>
    <us-gaap:OtherComprehensiveIncomeAvailableforsaleSecuritiesAdjustmentNetOfTaxPortionAttributableToParent
      contextRef="FD2018Q4YTD"
      decimals="-3"
      id="d9042542e1475-wk-Fact-4B6DCA4B258059F0C9838095A1981ED7"
      unitRef="usd">-1686000</us-gaap:OtherComprehensiveIncomeAvailableforsaleSecuritiesAdjustmentNetOfTaxPortionAttributableToParent>
    <us-gaap:OtherComprehensiveIncomeAvailableforsaleSecuritiesAdjustmentNetOfTaxPortionAttributableToParent
      contextRef="FD2017Q4YTD"
      decimals="-3"
      id="d9042542e1495-wk-Fact-FA1C1AFC6E6FE48251718095A1989A15"
      unitRef="usd">-126000</us-gaap:OtherComprehensiveIncomeAvailableforsaleSecuritiesAdjustmentNetOfTaxPortionAttributableToParent>
    <us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax
      contextRef="FD2019Q4YTD"
      decimals="-3"
      id="d9042542e1641-wk-Fact-C43E1D54DB9ED91AE9648095A16B2041"
      unitRef="usd">-541000</us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax>
    <us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax
      contextRef="FD2018Q4YTD"
      decimals="-3"
      id="d9042542e1661-wk-Fact-926E0D61C87F4EC5C4DE8095A171F3CA"
      unitRef="usd">-4216000</us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax>
    <us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax
      contextRef="FD2017Q4YTD"
      decimals="-3"
      id="d9042542e1681-wk-Fact-CBF8BB82F455EF0A025A8095A1983172"
      unitRef="usd">21992000</us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax>
    <us-gaap:OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent
      contextRef="FD2019Q4YTD"
      decimals="-3"
      id="d9042542e1702-wk-Fact-DDE79517041AA1B612118095A199E2DD"
      unitRef="usd">-541000</us-gaap:OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent>
    <us-gaap:OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent
      contextRef="FD2018Q4YTD"
      decimals="-3"
      id="d9042542e1722-wk-Fact-7A3C112C9ACA452CB46B8095A199505D"
      unitRef="usd">-4216000</us-gaap:OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent>
    <us-gaap:OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent
      contextRef="FD2017Q4YTD"
      decimals="-3"
      id="d9042542e1742-wk-Fact-274F920878F8541C39658095A198DE49"
      unitRef="usd">21992000</us-gaap:OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent>
    <us-gaap:OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent
      contextRef="FD2019Q4YTD"
      decimals="-3"
      id="d9042542e1825-wk-Fact-975646D53AB2829CD3A98095A1869741"
      unitRef="usd">3226000</us-gaap:OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent>
    <us-gaap:OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent
      contextRef="FD2018Q4YTD"
      decimals="-3"
      id="d9042542e1844-wk-Fact-26FDB14E33A69E401B118095A1700EA5"
      unitRef="usd">-5902000</us-gaap:OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent>
    <us-gaap:OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent
      contextRef="FD2017Q4YTD"
      decimals="-3"
      id="d9042542e1864-wk-Fact-21013AE4D974869D2C1A8095A198B81B"
      unitRef="usd">21829000</us-gaap:OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent>
    <us-gaap:ComprehensiveIncomeNetOfTax
      contextRef="FD2019Q4YTD"
      decimals="-3"
      id="d9042542e1890-wk-Fact-6AA66EEEB8A51EA1021A8095A1860354"
      unitRef="usd">207091000</us-gaap:ComprehensiveIncomeNetOfTax>
    <us-gaap:ComprehensiveIncomeNetOfTax
      contextRef="FD2018Q4YTD"
      decimals="-3"
      id="d9042542e1909-wk-Fact-B57BB779ECE4C5375A7D8095A199F8B6"
      unitRef="usd">213365000</us-gaap:ComprehensiveIncomeNetOfTax>
    <us-gaap:ComprehensiveIncomeNetOfTax
      contextRef="FD2017Q4YTD"
      decimals="-3"
      id="d9042542e1928-wk-Fact-DC2AC57B0A4D997155698095A1716FBA"
      unitRef="usd">198541000</us-gaap:ComprehensiveIncomeNetOfTax>
    <us-gaap:CashAndCashEquivalentsAtCarryingValue
      contextRef="FI2019Q4"
      decimals="-3"
      id="d9040405e866-wk-Fact-D8633F16D33E937CA4698095A1867C44"
      unitRef="usd">171431000</us-gaap:CashAndCashEquivalentsAtCarryingValue>
    <us-gaap:CashAndCashEquivalentsAtCarryingValue
      contextRef="FI2018Q4"
      decimals="-3"
      id="d9040405e885-wk-Fact-0113DCF56F3641DF075C8095A187DA3D"
      unitRef="usd">108212000</us-gaap:CashAndCashEquivalentsAtCarryingValue>
    <us-gaap:AvailableForSaleSecuritiesDebtSecuritiesCurrent
      contextRef="FI2019Q4"
      decimals="-3"
      id="d9040405e900-wk-Fact-A2C8F9A16077219CCA148095A1878B63"
      unitRef="usd">240470000</us-gaap:AvailableForSaleSecuritiesDebtSecuritiesCurrent>
    <us-gaap:AvailableForSaleSecuritiesDebtSecuritiesCurrent
      contextRef="FI2018Q4"
      decimals="-3"
      id="d9040405e919-wk-Fact-8D57C642684FB1404A548095A171A66F"
      unitRef="usd">427348000</us-gaap:AvailableForSaleSecuritiesDebtSecuritiesCurrent>
    <us-gaap:AccountsReceivableNetCurrent
      contextRef="FI2019Q4"
      decimals="-3"
      id="d9040405e939-wk-Fact-FA795AF59BFFEA95042A8095A186B9AB"
      unitRef="usd">103447000</us-gaap:AccountsReceivableNetCurrent>
    <us-gaap:AccountsReceivableNetCurrent
      contextRef="FI2018Q4"
      decimals="-3"
      id="d9040405e958-wk-Fact-041828E1544D114CFEE38095A1868ADF"
      unitRef="usd">119172000</us-gaap:AccountsReceivableNetCurrent>
    <us-gaap:UnbilledReceivablesCurrent
      contextRef="FI2019Q4"
      decimals="-3"
      id="d9040405e978-wk-Fact-E51F52370F21B26DAFE28095A18DC706"
      unitRef="usd">4782000</us-gaap:UnbilledReceivablesCurrent>
    <us-gaap:UnbilledReceivablesCurrent
      contextRef="FI2018Q4"
      decimals="-3"
      id="d9040405e997-wk-Fact-23A96ED4F43F7628AC208095A1876C4D"
      unitRef="usd">8312000</us-gaap:UnbilledReceivablesCurrent>
    <us-gaap:InventoryNet
      contextRef="FI2019Q4"
      decimals="-3"
      id="d9040405e1017-wk-Fact-F82BFB3E5789124E33788095A18C509C"
      unitRef="usd">60261000</us-gaap:InventoryNet>
    <us-gaap:InventoryNet
      contextRef="FI2018Q4"
      decimals="-3"
      id="d9040405e1036-wk-Fact-8C11A83E6F7307E19AA68095A18DF44A"
      unitRef="usd">83282000</us-gaap:InventoryNet>
    <us-gaap:PrepaidExpenseAndOtherAssetsCurrent
      contextRef="FI2019Q4"
      decimals="-3"
      id="d9040405e1056-wk-Fact-B19FA8561C7646F75F4B8095A18D5190"
      unitRef="usd">26840000</us-gaap:PrepaidExpenseAndOtherAssetsCurrent>
    <us-gaap:PrepaidExpenseAndOtherAssetsCurrent
      contextRef="FI2018Q4"
      decimals="-3"
      id="d9040405e1075-wk-Fact-BC9AF9410612559CD1408095A18CABBB"
      unitRef="usd">34000000</us-gaap:PrepaidExpenseAndOtherAssetsCurrent>
    <us-gaap:AssetsCurrent
      contextRef="FI2019Q4"
      decimals="-3"
      id="d9040405e1096-wk-Fact-5AB6EE4813CA36C6D6968095A1870EC7"
      unitRef="usd">607231000</us-gaap:AssetsCurrent>
    <us-gaap:AssetsCurrent
      contextRef="FI2018Q4"
      decimals="-3"
      id="d9040405e1115-wk-Fact-297D5F967A8929974E498095A18739A7"
      unitRef="usd">780326000</us-gaap:AssetsCurrent>
    <us-gaap:LongTermInvestments
      contextRef="FI2019Q4"
      decimals="-3"
      id="d9040405e1135-wk-Fact-DF042BAB946939B448EB8095A187F505"
      unitRef="usd">433452000</us-gaap:LongTermInvestments>
    <us-gaap:LongTermInvestments
      contextRef="FI2018Q4"
      decimals="-3"
      id="d9040405e1154-wk-Fact-D0E7E30446713E43A7318095A187F414"
      unitRef="usd">262039000</us-gaap:LongTermInvestments>
    <us-gaap:PropertyPlantAndEquipmentNet
      contextRef="FI2019Q4"
      decimals="-3"
      id="d9040405e1174-wk-Fact-F511143035B105728FC78095A199C654"
      unitRef="usd">89443000</us-gaap:PropertyPlantAndEquipmentNet>
    <us-gaap:PropertyPlantAndEquipmentNet
      contextRef="FI2018Q4"
      decimals="-3"
      id="d9040405e1193-wk-Fact-BA9205C02800F53EC4D88095A186B6D1"
      unitRef="usd">91396000</us-gaap:PropertyPlantAndEquipmentNet>
    <us-gaap:OperatingLeaseRightOfUseAsset
      contextRef="FI2019Q4"
      decimals="-3"
      id="d9040405e1213-wk-Fact-FA2BFEFBEA7088F69CC7F3C8D744A446"
      unitRef="usd">17522000</us-gaap:OperatingLeaseRightOfUseAsset>
    <us-gaap:OperatingLeaseRightOfUseAsset
      contextRef="FI2018Q4"
      decimals="-3"
      id="d9040405e1232-wk-Fact-AAF78FD080140BEB73F115E89D6B5193"
      unitRef="usd">0</us-gaap:OperatingLeaseRightOfUseAsset>
    <us-gaap:Goodwill
      contextRef="FI2019Q4"
      decimals="-3"
      id="d9040405e1252-wk-Fact-81F94E54D4E5D51829658095A18DD1F9"
      unitRef="usd">243445000</us-gaap:Goodwill>
    <us-gaap:Goodwill
      contextRef="FI2018Q4"
      decimals="-3"
      id="d9040405e1271-wk-Fact-0E49DD13D0281181743F8095A1866117"
      unitRef="usd">113208000</us-gaap:Goodwill>
    <us-gaap:IntangibleAssetsNetExcludingGoodwill
      contextRef="FI2019Q4"
      decimals="-3"
      id="d9040405e1291-wk-Fact-2EC1FDBB90E3477C8D588095A186CF61"
      unitRef="usd">39490000</us-gaap:IntangibleAssetsNetExcludingGoodwill>
    <us-gaap:IntangibleAssetsNetExcludingGoodwill
      contextRef="FI2018Q4"
      decimals="-3"
      id="d9040405e1310-wk-Fact-56BD9BB0167E5592E4378095A1875821"
      unitRef="usd">10113000</us-gaap:IntangibleAssetsNetExcludingGoodwill>
    <us-gaap:DeferredTaxAssetsNetNoncurrent
      contextRef="FI2019Q4"
      decimals="-3"
      id="d9040405e1330-wk-Fact-2D8FC969E128A40EF74E8095A1876609"
      unitRef="usd">449519000</us-gaap:DeferredTaxAssetsNetNoncurrent>
    <us-gaap:DeferredTaxAssetsNetNoncurrent
      contextRef="FI2018Q4"
      decimals="-3"
      id="d9040405e1349-wk-Fact-6C905471FCC5433BC9038095A18DDEA0"
      unitRef="usd">28660000</us-gaap:DeferredTaxAssetsNetNoncurrent>
    <us-gaap:OtherAssetsNoncurrent
      contextRef="FI2019Q4"
      decimals="-3"
      id="d9040405e1369-wk-Fact-018CB81B94DD3185D0418095A18620DB"
      unitRef="usd">5833000</us-gaap:OtherAssetsNoncurrent>
    <us-gaap:OtherAssetsNoncurrent
      contextRef="FI2018Q4"
      decimals="-3"
      id="d9040405e1388-wk-Fact-CCF7105BA27E3C7174EE8095A18D66E0"
      unitRef="usd">3925000</us-gaap:OtherAssetsNoncurrent>
    <us-gaap:Assets
      contextRef="FI2019Q4"
      decimals="-3"
      id="d9040405e1413-wk-Fact-7B98B62531FB45E491FF8095A18D4216"
      unitRef="usd">1885935000</us-gaap:Assets>
    <us-gaap:Assets
      contextRef="FI2018Q4"
      decimals="-3"
      id="d9040405e1432-wk-Fact-D71507BC79C71C351F368095A18DBC3D"
      unitRef="usd">1289667000</us-gaap:Assets>
    <us-gaap:AccountsPayableCurrent
      contextRef="FI2019Q4"
      decimals="-3"
      id="d9040405e1576-wk-Fact-0E5E9304C3523D94E89A8095A186FC2E"
      unitRef="usd">17866000</us-gaap:AccountsPayableCurrent>
    <us-gaap:AccountsPayableCurrent
      contextRef="FI2018Q4"
      decimals="-3"
      id="d9040405e1595-wk-Fact-846D113C77E0DEAC221E8095A18DA0E9"
      unitRef="usd">16230000</us-gaap:AccountsPayableCurrent>
    <us-gaap:AccruedLiabilitiesCurrent
      contextRef="FI2019Q4"
      decimals="-3"
      id="d9040405e1610-wk-Fact-7D43CCBB2F2D2C0F66F78095A18D6138"
      unitRef="usd">52199000</us-gaap:AccruedLiabilitiesCurrent>
    <us-gaap:AccruedLiabilitiesCurrent
      contextRef="FI2018Q4"
      decimals="-3"
      id="d9040405e1629-wk-Fact-08CBA18F4B05B33341B48095A18D7935"
      unitRef="usd">60220000</us-gaap:AccruedLiabilitiesCurrent>
    <us-gaap:AccruedIncomeTaxesCurrent
      contextRef="FI2019Q4"
      decimals="-3"
      id="d9040405e1649-wk-Fact-222C5DD6E4A5991D0EB98095A187E160"
      unitRef="usd">30333000</us-gaap:AccruedIncomeTaxesCurrent>
    <us-gaap:AccruedIncomeTaxesCurrent
      contextRef="FI2018Q4"
      decimals="-3"
      id="d9040405e1668-wk-Fact-5198E6505346F36B079A8095A187BB9A"
      unitRef="usd">5062000</us-gaap:AccruedIncomeTaxesCurrent>
    <us-gaap:ContractWithCustomerLiabilityCurrent
      contextRef="FI2019Q4"
      decimals="-3"
      id="d9040405e1688-wk-Fact-B00B536426D8C662A8C08095A18D619F"
      unitRef="usd">14432000</us-gaap:ContractWithCustomerLiabilityCurrent>
    <us-gaap:ContractWithCustomerLiabilityCurrent
      contextRef="FI2018Q4"
      decimals="-3"
      id="d9040405e1707-wk-Fact-2F24B1342D743CBA5DE98095A1878266"
      unitRef="usd">9845000</us-gaap:ContractWithCustomerLiabilityCurrent>
    <us-gaap:OperatingLeaseLiabilityCurrent
      contextRef="FI2019Q4"
      decimals="-3"
      id="d9040405e1727-wk-Fact-EA0CE907035CE12BC8AAF3CA5DF78AD7"
      unitRef="usd">5647000</us-gaap:OperatingLeaseLiabilityCurrent>
    <us-gaap:OperatingLeaseLiabilityCurrent
      contextRef="FI2018Q4"
      decimals="-3"
      id="d9040405e1746-wk-Fact-9A27E71960B107BD695115E9BABA035D"
      unitRef="usd">0</us-gaap:OperatingLeaseLiabilityCurrent>
    <us-gaap:LiabilitiesCurrent
      contextRef="FI2019Q4"
      decimals="-3"
      id="d9040405e1766-wk-Fact-A0CC62E526B6414CFF128095A187C835"
      unitRef="usd">120477000</us-gaap:LiabilitiesCurrent>
    <us-gaap:LiabilitiesCurrent
      contextRef="FI2018Q4"
      decimals="-3"
      id="d9040405e1785-wk-Fact-BAE57259347B02D0A0338095A18D2900"
      unitRef="usd">91357000</us-gaap:LiabilitiesCurrent>
    <us-gaap:OperatingLeaseLiabilityNoncurrent
      contextRef="FI2019Q4"
      decimals="-3"
      id="d9040405e1805-wk-Fact-DE584AA2D460B2B6BFE0F3CB2F36DF72"
      unitRef="usd">12326000</us-gaap:OperatingLeaseLiabilityNoncurrent>
    <us-gaap:OperatingLeaseLiabilityNoncurrent
      contextRef="FI2018Q4"
      decimals="-3"
      id="d9040405e1824-wk-Fact-87B819E8544F90CA4B9E15E9EA4A9293"
      unitRef="usd">0</us-gaap:OperatingLeaseLiabilityNoncurrent>
    <us-gaap:DeferredIncomeTaxLiabilitiesNet
      contextRef="FI2019Q4"
      decimals="-3"
      id="d9040405e1844-wk-Fact-62F4DB6E3A9EC3A5C4758095A18DB24B"
      unitRef="usd">332344000</us-gaap:DeferredIncomeTaxLiabilitiesNet>
    <us-gaap:DeferredIncomeTaxLiabilitiesNet
      contextRef="FI2018Q4"
      decimals="-3"
      id="d9040405e1863-wk-Fact-54DB1BB69A2CAEC7A4EF8095A18D8196"
      unitRef="usd">962000</us-gaap:DeferredIncomeTaxLiabilitiesNet>
    <us-gaap:LiabilityForUncertainTaxPositionsNoncurrent
      contextRef="FI2019Q4"
      decimals="-3"
      id="d9040405e1883-wk-Fact-DA663987ECFB01A58A7F8095A186C97C"
      unitRef="usd">11563000</us-gaap:LiabilityForUncertainTaxPositionsNoncurrent>
    <us-gaap:LiabilityForUncertainTaxPositionsNoncurrent
      contextRef="FI2018Q4"
      decimals="-3"
      id="d9040405e1902-wk-Fact-B143EE273FA7989FF8518095A186EBCE"
      unitRef="usd">7106000</us-gaap:LiabilityForUncertainTaxPositionsNoncurrent>
    <us-gaap:AccruedIncomeTaxesNoncurrent
      contextRef="FI2019Q4"
      decimals="-3"
      id="d9040405e1922-wk-Fact-DA2CC88FD6B7535886B18095A1860297"
      unitRef="usd">51113000</us-gaap:AccruedIncomeTaxesNoncurrent>
    <us-gaap:AccruedIncomeTaxesNoncurrent
      contextRef="FI2018Q4"
      decimals="-3"
      id="d9040405e1941-wk-Fact-C7EAD3C3D5DD48B844CD8095A18DAE56"
      unitRef="usd">51113000</us-gaap:AccruedIncomeTaxesNoncurrent>
    <us-gaap:OtherLiabilitiesNoncurrent
      contextRef="FI2019Q4"
      decimals="-3"
      id="d9040405e1962-wk-Fact-2D02FB07A95DAB0B1FCB8095A1867D1D"
      unitRef="usd">2402000</us-gaap:OtherLiabilitiesNoncurrent>
    <us-gaap:OtherLiabilitiesNoncurrent
      contextRef="FI2018Q4"
      decimals="-3"
      id="d9040405e1981-wk-Fact-831FC86250D4F5BF1FC98095A18DC3A7"
      unitRef="usd">3866000</us-gaap:OtherLiabilitiesNoncurrent>
    <us-gaap:Liabilities
      contextRef="FI2019Q4"
      decimals="-3"
      id="d9040405e2001-wk-Fact-C9F419259C3EB1FDF9238095A16B58E9"
      unitRef="usd">530225000</us-gaap:Liabilities>
    <us-gaap:Liabilities
      contextRef="FI2018Q4"
      decimals="-3"
      id="d9040405e2020-wk-Fact-204FB052023E23AAF7978095A18DECF3"
      unitRef="usd">154404000</us-gaap:Liabilities>
    <us-gaap:CommitmentsAndContingencies
      contextRef="FI2019Q4"
      id="d9040405e2081-wk-Fact-7A7FC418CE102E8DDB878095A18DA645"
      unitRef="usd"
      xsi:nil="true"/>
    <us-gaap:CommitmentsAndContingencies
      contextRef="FI2018Q4"
      id="d9040405e2099-wk-Fact-0878CC5CDDDC1657F7AD8095A186E032"
      unitRef="usd"
      xsi:nil="true"/>
    <us-gaap:PreferredStockValueOutstanding
      contextRef="FI2019Q4"
      decimals="-3"
      id="d9040405e2159-wk-Fact-C6C7CF2B4CFC44D4B3D8F3CBF50D7230"
      unitRef="usd">0</us-gaap:PreferredStockValueOutstanding>
    <us-gaap:PreferredStockValueOutstanding
      contextRef="FI2018Q4"
      decimals="-3"
      id="d9040405e2178-wk-Fact-7727FA4C6D25AF5DB744F3CBF5124D92"
      unitRef="usd">0</us-gaap:PreferredStockValueOutstanding>
    <us-gaap:CommonStockValueOutstanding
      contextRef="FI2019Q4"
      decimals="-3"
      id="d9040405e2198-wk-Fact-970D0363E95C80B572A18095A171517A"
      unitRef="usd">345000</us-gaap:CommonStockValueOutstanding>
    <us-gaap:CommonStockValueOutstanding
      contextRef="FI2018Q4"
      decimals="-3"
      id="d9040405e2217-wk-Fact-B9E0BA7E171FD1966E9B8095A1711B4D"
      unitRef="usd">342000</us-gaap:CommonStockValueOutstanding>
    <us-gaap:AdditionalPaidInCapitalCommonStock
      contextRef="FI2019Q4"
      decimals="-3"
      id="d9040405e2237-wk-Fact-C4676F8C5ED79176AE7A8095A18778D5"
      unitRef="usd">639372000</us-gaap:AdditionalPaidInCapitalCommonStock>
    <us-gaap:AdditionalPaidInCapitalCommonStock
      contextRef="FI2018Q4"
      decimals="-3"
      id="d9040405e2256-wk-Fact-EFB92590A628974DEAC08095A186EC71"
      unitRef="usd">529208000</us-gaap:AdditionalPaidInCapitalCommonStock>
    <us-gaap:RetainedEarningsAccumulatedDeficit
      contextRef="FI2019Q4"
      decimals="-3"
      id="d9040405e2276-wk-Fact-B4B3C6B41A482608B4F88095A1872DF0"
      unitRef="usd">753268000</us-gaap:RetainedEarningsAccumulatedDeficit>
    <us-gaap:RetainedEarningsAccumulatedDeficit
      contextRef="FI2018Q4"
      decimals="-3"
      id="d9040405e2295-wk-Fact-71E5C10282AFE1A65F108095A1866662"
      unitRef="usd">646214000</us-gaap:RetainedEarningsAccumulatedDeficit>
    <us-gaap:AccumulatedOtherComprehensiveIncomeLossNetOfTax
      contextRef="FI2019Q4"
      decimals="-3"
      id="d9040405e2315-wk-Fact-3E92D646063F869A10FD8095A1869862"
      unitRef="usd">-37275000</us-gaap:AccumulatedOtherComprehensiveIncomeLossNetOfTax>
    <us-gaap:AccumulatedOtherComprehensiveIncomeLossNetOfTax
      contextRef="FI2018Q4"
      decimals="-3"
      id="d9040405e2335-wk-Fact-1BC0B78B2841249D93428095A187B894"
      unitRef="usd">-40501000</us-gaap:AccumulatedOtherComprehensiveIncomeLossNetOfTax>
    <us-gaap:StockholdersEquity
      contextRef="FI2019Q4"
      decimals="-3"
      id="d9040405e2356-wk-Fact-751ED66657CA2A1D86818095A1860236"
      unitRef="usd">1355710000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="FI2018Q4"
      decimals="-3"
      id="d9040405e2375-wk-Fact-F33407DFC1DCE288A4348095A18C5D27"
      unitRef="usd">1135263000</us-gaap:StockholdersEquity>
    <us-gaap:LiabilitiesAndStockholdersEquity
      contextRef="FI2019Q4"
      decimals="-3"
      id="d9040405e2401-wk-Fact-831D894B7CC2043495708095A18D51FC"
      unitRef="usd">1885935000</us-gaap:LiabilitiesAndStockholdersEquity>
    <us-gaap:LiabilitiesAndStockholdersEquity
      contextRef="FI2018Q4"
      decimals="-3"
      id="d9040405e2420-wk-Fact-331D1A2194186AFD60AC8095A18D3606"
      unitRef="usd">1289667000</us-gaap:LiabilitiesAndStockholdersEquity>
    <us-gaap:NetIncomeLoss
      contextRef="FD2019Q4YTD"
      decimals="-3"
      id="d9042541e913-wk-Fact-7A2F7F14108749D162188095A17CA207"
      unitRef="usd">203865000</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="FD2018Q4YTD"
      decimals="-3"
      id="d9042541e932-wk-Fact-1AC51EC9E270CE718EBD8095A18E3121"
      unitRef="usd">219267000</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="FD2017Q4YTD"
      decimals="-3"
      id="d9042541e951-wk-Fact-B391D3198F1CC415B9AA8095A17B728A"
      unitRef="usd">176712000</us-gaap:NetIncomeLoss>
    <us-gaap:StockOptionPlanExpense
      contextRef="FD2019Q4YTD"
      decimals="-3"
      id="d9042541e1029-wk-Fact-1691321010D2F46AB2568095A18DA5E5"
      unitRef="usd">45589000</us-gaap:StockOptionPlanExpense>
    <us-gaap:StockOptionPlanExpense
      contextRef="FD2018Q4YTD"
      decimals="-3"
      id="d9042541e1048-wk-Fact-3F856B8DE79BB5B824F58095A1870C4B"
      unitRef="usd">41090000</us-gaap:StockOptionPlanExpense>
    <us-gaap:StockOptionPlanExpense
      contextRef="FD2017Q4YTD"
      decimals="-3"
      id="d9042541e1067-wk-Fact-6A745DB789E3710A4D5E8095A18D6935"
      unitRef="usd">31942000</us-gaap:StockOptionPlanExpense>
    <us-gaap:Depreciation
      contextRef="FD2019Q4YTD"
      decimals="-3"
      id="d9042541e1088-wk-Fact-345861B76488689975458095A18C4859"
      unitRef="usd">21527000</us-gaap:Depreciation>
    <us-gaap:Depreciation
      contextRef="FD2018Q4YTD"
      decimals="-3"
      id="d9042541e1107-wk-Fact-66AD2CC9C84580DD61668095A18F14B8"
      unitRef="usd">18473000</us-gaap:Depreciation>
    <us-gaap:Depreciation
      contextRef="FD2017Q4YTD"
      decimals="-3"
      id="d9042541e1126-wk-Fact-21EF43A2C318CBE533768095A18D6E2C"
      unitRef="usd">13683000</us-gaap:Depreciation>
    <us-gaap:AmortizationOfIntangibleAssets
      contextRef="FD2019Q4YTD"
      decimals="-3"
      id="d9042541e1147-wk-Fact-4F8845D1F0DB310DF5448095A186517E"
      unitRef="usd">3373000</us-gaap:AmortizationOfIntangibleAssets>
    <us-gaap:AmortizationOfIntangibleAssets
      contextRef="FD2018Q4YTD"
      decimals="-3"
      id="d9042541e1166-wk-Fact-6C8967467C838170B9F48095A18F8319"
      unitRef="usd">3076000</us-gaap:AmortizationOfIntangibleAssets>
    <us-gaap:AmortizationOfIntangibleAssets
      contextRef="FD2017Q4YTD"
      decimals="-3"
      id="d9042541e1185-wk-Fact-55ABD08327ED3E4A9E148095A1864F2B"
      unitRef="usd">3308000</us-gaap:AmortizationOfIntangibleAssets>
    <us-gaap:AssetImpairmentCharges
      contextRef="FD2019Q4YTD"
      decimals="-3"
      id="d9042541e1206-wk-Fact-180DE89378DDF8852AFD8095A18E5360"
      unitRef="usd">0</us-gaap:AssetImpairmentCharges>
    <us-gaap:AssetImpairmentCharges
      contextRef="FD2018Q4YTD"
      decimals="-3"
      id="d9042541e1225-wk-Fact-BEF0D6DDF1E7368D84348095A187C926"
      unitRef="usd">0</us-gaap:AssetImpairmentCharges>
    <us-gaap:AssetImpairmentCharges
      contextRef="FD2017Q4YTD"
      decimals="-3"
      id="d9042541e1244-wk-Fact-49D878D14530ED04822D8095A18F4E31"
      unitRef="usd">469000</us-gaap:AssetImpairmentCharges>
    <us-gaap:AccretionAmortizationOfDiscountsAndPremiumsInvestments
      contextRef="FD2019Q4YTD"
      decimals="-3"
      id="d9042541e1265-wk-Fact-3825E8F4E180AE0819648095A18E899E"
      unitRef="usd">618000</us-gaap:AccretionAmortizationOfDiscountsAndPremiumsInvestments>
    <us-gaap:AccretionAmortizationOfDiscountsAndPremiumsInvestments
      contextRef="FD2018Q4YTD"
      decimals="-3"
      id="d9042541e1285-wk-Fact-7A28FBBD115E23BD1A958095A1870CB4"
      unitRef="usd">-108000</us-gaap:AccretionAmortizationOfDiscountsAndPremiumsInvestments>
    <us-gaap:AccretionAmortizationOfDiscountsAndPremiumsInvestments
      contextRef="FD2017Q4YTD"
      decimals="-3"
      id="d9042541e1304-wk-Fact-E2CEE9BB10DD71D0E1768095A187730E"
      unitRef="usd">-205000</us-gaap:AccretionAmortizationOfDiscountsAndPremiumsInvestments>
    <us-gaap:GainLossOnSaleOfInvestments
      contextRef="FD2019Q4YTD"
      decimals="-3"
      id="d9042541e1326-wk-Fact-A8AAA01F323BB6B0D1298095A187EA1F"
      unitRef="usd">1452000</us-gaap:GainLossOnSaleOfInvestments>
    <us-gaap:GainLossOnSaleOfInvestments
      contextRef="FD2018Q4YTD"
      decimals="-3"
      id="d9042541e1346-wk-Fact-90D20272B1C722073BBA8095A18D999B"
      unitRef="usd">501000</us-gaap:GainLossOnSaleOfInvestments>
    <us-gaap:GainLossOnSaleOfInvestments
      contextRef="FD2017Q4YTD"
      decimals="-3"
      id="d9042541e1366-wk-Fact-8CFD214B8968474BD65E8095A18E945F"
      unitRef="usd">829000</us-gaap:GainLossOnSaleOfInvestments>
    <us-gaap:BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1
      contextRef="FD2019Q4YTD"
      decimals="-3"
      id="d9042541e1388-wk-Fact-A6EAD1957EF4155F22CA8095A18E4CAB"
      unitRef="usd">-1401000</us-gaap:BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1>
    <us-gaap:BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1
      contextRef="FD2018Q4YTD"
      decimals="-3"
      id="d9042541e1408-wk-Fact-77431FB16A3FD9ABDA808095A18DCD61"
      unitRef="usd">-3000</us-gaap:BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1>
    <us-gaap:BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1
      contextRef="FD2017Q4YTD"
      decimals="-3"
      id="d9042541e1428-wk-Fact-35581D2FE81CBF1C3CBD8095A18E2303"
      unitRef="usd">-28000</us-gaap:BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1>
    <us-gaap:IncreaseDecreaseInDeferredIncomeTaxes
      contextRef="FD2019Q4YTD"
      decimals="-3"
      id="d9042541e1450-wk-Fact-A8597E2D1E31BE68C2438095A18C0811"
      unitRef="usd">94866000</us-gaap:IncreaseDecreaseInDeferredIncomeTaxes>
    <us-gaap:IncreaseDecreaseInDeferredIncomeTaxes
      contextRef="FD2018Q4YTD"
      decimals="-3"
      id="d9042541e1470-wk-Fact-CB35E4CDBA46DECF717C8095A1872851"
      unitRef="usd">413000</us-gaap:IncreaseDecreaseInDeferredIncomeTaxes>
    <us-gaap:IncreaseDecreaseInDeferredIncomeTaxes
      contextRef="FD2017Q4YTD"
      decimals="-3"
      id="d9042541e1490-wk-Fact-E1F993412CCC080ADCC38095A18E35C0"
      unitRef="usd">-1787000</us-gaap:IncreaseDecreaseInDeferredIncomeTaxes>
    <us-gaap:IncreaseDecreaseInAccountsReceivable
      contextRef="FD2019Q4YTD"
      decimals="-3"
      id="d9042541e1573-wk-Fact-1A6A5D489F8C2D2FA7288095A1875D7B"
      unitRef="usd">-16807000</us-gaap:IncreaseDecreaseInAccountsReceivable>
    <us-gaap:IncreaseDecreaseInAccountsReceivable
      contextRef="FD2018Q4YTD"
      decimals="-3"
      id="d9042541e1592-wk-Fact-89163CC043B2BB9926B68095A18D0401"
      unitRef="usd">1867000</us-gaap:IncreaseDecreaseInAccountsReceivable>
    <us-gaap:IncreaseDecreaseInAccountsReceivable
      contextRef="FD2017Q4YTD"
      decimals="-3"
      id="d9042541e1612-wk-Fact-F231EF8C31712FB1CB878095A18EFF6F"
      unitRef="usd">55185000</us-gaap:IncreaseDecreaseInAccountsReceivable>
    <us-gaap:IncreaseDecreaseInUnbilledReceivables
      contextRef="FD2019Q4YTD"
      decimals="-3"
      id="d9042541e1634-wk-Fact-FB183E78F8BB2AC6E7D08095A18D60F7"
      unitRef="usd">-3530000</us-gaap:IncreaseDecreaseInUnbilledReceivables>
    <us-gaap:IncreaseDecreaseInUnbilledReceivables
      contextRef="FD2018Q4YTD"
      decimals="-3"
      id="d9042541e1653-wk-Fact-C9FC87E4BC9858CF676F8095A18FCAB2"
      unitRef="usd">906000</us-gaap:IncreaseDecreaseInUnbilledReceivables>
    <us-gaap:IncreaseDecreaseInUnbilledReceivables
      contextRef="FD2017Q4YTD"
      decimals="-3"
      id="d9042541e1673-wk-Fact-CA258F8A78767E8E84748095A18F9B5E"
      unitRef="usd">4604000</us-gaap:IncreaseDecreaseInUnbilledReceivables>
    <us-gaap:IncreaseDecreaseInInventories
      contextRef="FD2019Q4YTD"
      decimals="-3"
      id="d9042541e1695-wk-Fact-4401F8BBD8A7D781AE028095A18D5662"
      unitRef="usd">-23137000</us-gaap:IncreaseDecreaseInInventories>
    <us-gaap:IncreaseDecreaseInInventories
      contextRef="FD2018Q4YTD"
      decimals="-3"
      id="d9042541e1714-wk-Fact-A9E30C21A384173FDE268095A18E98C9"
      unitRef="usd">16946000</us-gaap:IncreaseDecreaseInInventories>
    <us-gaap:IncreaseDecreaseInInventories
      contextRef="FD2017Q4YTD"
      decimals="-3"
      id="d9042541e1734-wk-Fact-B5369CCFF455272F982A8095A18D7605"
      unitRef="usd">37088000</us-gaap:IncreaseDecreaseInInventories>
    <us-gaap:IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets
      contextRef="FD2019Q4YTD"
      decimals="-3"
      id="d9042541e1756-wk-Fact-D18F7AB0C969575A16878095A1866754"
      unitRef="usd">-7405000</us-gaap:IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets>
    <us-gaap:IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets
      contextRef="FD2018Q4YTD"
      decimals="-3"
      id="d9042541e1775-wk-Fact-43D0A77234F1C46D03F68095A18C32C8"
      unitRef="usd">9750000</us-gaap:IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets>
    <us-gaap:IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets
      contextRef="FD2017Q4YTD"
      decimals="-3"
      id="d9042541e1795-wk-Fact-320DBABD8E6C07478CF88095A1875687"
      unitRef="usd">7016000</us-gaap:IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets>
    <us-gaap:IncreaseDecreaseInAccountsPayable
      contextRef="FD2019Q4YTD"
      decimals="-3"
      id="d9042541e1817-wk-Fact-05B8A9D75242860349E98095A18D85CC"
      unitRef="usd">1633000</us-gaap:IncreaseDecreaseInAccountsPayable>
    <us-gaap:IncreaseDecreaseInAccountsPayable
      contextRef="FD2018Q4YTD"
      decimals="-3"
      id="d9042541e1836-wk-Fact-377AF7EA6024B126C7088095A1871834"
      unitRef="usd">-7247000</us-gaap:IncreaseDecreaseInAccountsPayable>
    <us-gaap:IncreaseDecreaseInAccountsPayable
      contextRef="FD2017Q4YTD"
      decimals="-3"
      id="d9042541e1856-wk-Fact-550421A08EF03EF8C3508095A18E8CF0"
      unitRef="usd">12322000</us-gaap:IncreaseDecreaseInAccountsPayable>
    <us-gaap:IncreaseDecreaseInAccruedLiabilities
      contextRef="FD2019Q4YTD"
      decimals="-3"
      id="d9042541e1877-wk-Fact-B276CA4F94FC40385EAE8095A18D1628"
      unitRef="usd">-8938000</us-gaap:IncreaseDecreaseInAccruedLiabilities>
    <us-gaap:IncreaseDecreaseInAccruedLiabilities
      contextRef="FD2018Q4YTD"
      decimals="-3"
      id="d9042541e1897-wk-Fact-CC2B8DEC983379E454F88095A1864266"
      unitRef="usd">380000</us-gaap:IncreaseDecreaseInAccruedLiabilities>
    <us-gaap:IncreaseDecreaseInAccruedLiabilities
      contextRef="FD2017Q4YTD"
      decimals="-3"
      id="d9042541e1916-wk-Fact-A5E756E5087CB33164F88095A18ECB81"
      unitRef="usd">14476000</us-gaap:IncreaseDecreaseInAccruedLiabilities>
    <us-gaap:IncreaseDecreaseInAccruedIncomeTaxesPayable
      contextRef="FD2019Q4YTD"
      decimals="-3"
      id="d9042541e1937-wk-Fact-FA9C5CC435562AB5E2F98095A18EEA56"
      unitRef="usd">25266000</us-gaap:IncreaseDecreaseInAccruedIncomeTaxesPayable>
    <us-gaap:IncreaseDecreaseInAccruedIncomeTaxesPayable
      contextRef="FD2018Q4YTD"
      decimals="-3"
      id="d9042541e1956-wk-Fact-53912837B9805BE423978095A186C448"
      unitRef="usd">-21903000</us-gaap:IncreaseDecreaseInAccruedIncomeTaxesPayable>
    <us-gaap:IncreaseDecreaseInAccruedIncomeTaxesPayable
      contextRef="FD2017Q4YTD"
      decimals="-3"
      id="d9042541e1976-wk-Fact-D7170209F3658948671B8095A18E5D81"
      unitRef="usd">71335000</us-gaap:IncreaseDecreaseInAccruedIncomeTaxesPayable>
    <us-gaap:IncreaseDecreaseInDeferredRevenueAndCustomerAdvancesAndDeposits
      contextRef="FD2019Q4YTD"
      decimals="-3"
      id="d9042541e1998-wk-Fact-973973F8C67C3FDD294F8095A18E2D2E"
      unitRef="usd">3875000</us-gaap:IncreaseDecreaseInDeferredRevenueAndCustomerAdvancesAndDeposits>
    <us-gaap:IncreaseDecreaseInDeferredRevenueAndCustomerAdvancesAndDeposits
      contextRef="FD2018Q4YTD"
      decimals="-3"
      id="d9042541e2017-wk-Fact-24F5F9B6C007C05929FD8095A187A0E7"
      unitRef="usd">1434000</us-gaap:IncreaseDecreaseInDeferredRevenueAndCustomerAdvancesAndDeposits>
    <us-gaap:IncreaseDecreaseInDeferredRevenueAndCustomerAdvancesAndDeposits
      contextRef="FD2017Q4YTD"
      decimals="-3"
      id="d9042541e2036-wk-Fact-A524AF76B4C12DE8D5898095A18675A8"
      unitRef="usd">1619000</us-gaap:IncreaseDecreaseInDeferredRevenueAndCustomerAdvancesAndDeposits>
    <us-gaap:IncreaseDecreaseInOtherOperatingCapitalNet
      contextRef="FD2019Q4YTD"
      decimals="-3"
      id="d9042541e2057-wk-Fact-81C059EB9756C5185EDB8095A18E6B58"
      unitRef="usd">-4493000</us-gaap:IncreaseDecreaseInOtherOperatingCapitalNet>
    <us-gaap:IncreaseDecreaseInOtherOperatingCapitalNet
      contextRef="FD2018Q4YTD"
      decimals="-3"
      id="d9042541e2076-wk-Fact-B548C4E59D02AB0435EB8095A18E5D23"
      unitRef="usd">838000</us-gaap:IncreaseDecreaseInOtherOperatingCapitalNet>
    <us-gaap:IncreaseDecreaseInOtherOperatingCapitalNet
      contextRef="FD2017Q4YTD"
      decimals="-3"
      id="d9042541e2096-wk-Fact-D94BC322A292B1D5805C8095A1873AFA"
      unitRef="usd">-1215000</us-gaap:IncreaseDecreaseInOtherOperatingCapitalNet>
    <us-gaap:NetCashProvidedByUsedInOperatingActivities
      contextRef="FD2019Q4YTD"
      decimals="-3"
      id="d9042541e2117-wk-Fact-7FE297FD6D775290F9C18095A186C355"
      unitRef="usd">253225000</us-gaap:NetCashProvidedByUsedInOperatingActivities>
    <us-gaap:NetCashProvidedByUsedInOperatingActivities
      contextRef="FD2018Q4YTD"
      decimals="-3"
      id="d9042541e2136-wk-Fact-C76038DCAC388244A8E38095A18FF6CD"
      unitRef="usd">223454000</us-gaap:NetCashProvidedByUsedInOperatingActivities>
    <us-gaap:NetCashProvidedByUsedInOperatingActivities
      contextRef="FD2017Q4YTD"
      decimals="-3"
      id="d9042541e2155-wk-Fact-FD3145F03E4E5B7BA64C8095A18F86C9"
      unitRef="usd">224323000</us-gaap:NetCashProvidedByUsedInOperatingActivities>
    <us-gaap:PaymentsToAcquireInvestments
      contextRef="FD2019Q4YTD"
      decimals="-3"
      id="d9042541e2238-wk-Fact-13EF8BD254E1AB0030A08095A18E5449"
      unitRef="usd">1031642000</us-gaap:PaymentsToAcquireInvestments>
    <us-gaap:PaymentsToAcquireInvestments
      contextRef="FD2018Q4YTD"
      decimals="-3"
      id="d9042541e2258-wk-Fact-D1A6FB9839727DC9F1588095A18EE7EF"
      unitRef="usd">782032000</us-gaap:PaymentsToAcquireInvestments>
    <us-gaap:PaymentsToAcquireInvestments
      contextRef="FD2017Q4YTD"
      decimals="-3"
      id="d9042541e2278-wk-Fact-3EA0D9DC34D01A27A1A38095A18D67C6"
      unitRef="usd">636856000</us-gaap:PaymentsToAcquireInvestments>
    <us-gaap:ProceedsFromSaleMaturityAndCollectionsOfInvestments
      contextRef="FD2019Q4YTD"
      decimals="-3"
      id="d9042541e2300-wk-Fact-7F11A866C3B7F51E98EB8095A18D4CBB"
      unitRef="usd">1062962000</us-gaap:ProceedsFromSaleMaturityAndCollectionsOfInvestments>
    <us-gaap:ProceedsFromSaleMaturityAndCollectionsOfInvestments
      contextRef="FD2018Q4YTD"
      decimals="-3"
      id="d9042541e2319-wk-Fact-601D4DCC048A4F4791C88095A18F1BF4"
      unitRef="usd">812565000</us-gaap:ProceedsFromSaleMaturityAndCollectionsOfInvestments>
    <us-gaap:ProceedsFromSaleMaturityAndCollectionsOfInvestments
      contextRef="FD2017Q4YTD"
      decimals="-3"
      id="d9042541e2338-wk-Fact-9ED28666533004BB15B88095A18E7DEC"
      unitRef="usd">584464000</us-gaap:ProceedsFromSaleMaturityAndCollectionsOfInvestments>
    <us-gaap:PaymentsToAcquirePropertyPlantAndEquipment
      contextRef="FD2019Q4YTD"
      decimals="-3"
      id="d9042541e2359-wk-Fact-F4F850E1A25E419F99808095A18FC61D"
      unitRef="usd">21745000</us-gaap:PaymentsToAcquirePropertyPlantAndEquipment>
    <us-gaap:PaymentsToAcquirePropertyPlantAndEquipment
      contextRef="FD2018Q4YTD"
      decimals="-3"
      id="d9042541e2379-wk-Fact-35774225F7A7FF1928C18095A18E6B36"
      unitRef="usd">37095000</us-gaap:PaymentsToAcquirePropertyPlantAndEquipment>
    <us-gaap:PaymentsToAcquirePropertyPlantAndEquipment
      contextRef="FD2017Q4YTD"
      decimals="-3"
      id="d9042541e2399-wk-Fact-CD4553461E2DA76B440D8095A18EFEA2"
      unitRef="usd">28754000</us-gaap:PaymentsToAcquirePropertyPlantAndEquipment>
    <us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired
      contextRef="FD2019Q4YTD"
      decimals="-3"
      id="d9042541e2421-wk-Fact-6E2CE1284676E4CBA02A8095A18ED3DE"
      unitRef="usd">166911000</us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired>
    <us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired
      contextRef="FD2018Q4YTD"
      decimals="-3"
      id="d9042541e2441-wk-Fact-025ED5DDB189F832A3B08095A18E53D1"
      unitRef="usd">4265000</us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired>
    <us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired
      contextRef="FD2017Q4YTD"
      decimals="-3"
      id="d9042541e2461-wk-Fact-B202BF61D13DA385EB928095A187EDED"
      unitRef="usd">24118000</us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired>
    <us-gaap:PaymentsForProceedsFromBusinessesAndInterestInAffiliates
      contextRef="FD2019Q4YTD"
      decimals="-3"
      id="d9042541e2483-wk-Fact-47D10A61CB60AEBA83CD8095A18F7A29"
      unitRef="usd">0</us-gaap:PaymentsForProceedsFromBusinessesAndInterestInAffiliates>
    <us-gaap:PaymentsForProceedsFromBusinessesAndInterestInAffiliates
      contextRef="FD2018Q4YTD"
      decimals="-3"
      id="d9042541e2502-wk-Fact-A335ABD1DE22F296AFBC8095A18D0C98"
      unitRef="usd">0</us-gaap:PaymentsForProceedsFromBusinessesAndInterestInAffiliates>
    <us-gaap:PaymentsForProceedsFromBusinessesAndInterestInAffiliates
      contextRef="FD2017Q4YTD"
      decimals="-3"
      id="d9042541e2521-wk-Fact-B485D2374B317721490C8095A18E4868"
      unitRef="usd">291000</us-gaap:PaymentsForProceedsFromBusinessesAndInterestInAffiliates>
    <us-gaap:NetCashProvidedByUsedInInvestingActivities
      contextRef="FD2019Q4YTD"
      decimals="-3"
      id="d9042541e2543-wk-Fact-BCA92FCD3039774625378095A18E0AE7"
      unitRef="usd">-157336000</us-gaap:NetCashProvidedByUsedInInvestingActivities>
    <us-gaap:NetCashProvidedByUsedInInvestingActivities
      contextRef="FD2018Q4YTD"
      decimals="-3"
      id="d9042541e2563-wk-Fact-EE682B7E2317505419998095A18D4E36"
      unitRef="usd">-10827000</us-gaap:NetCashProvidedByUsedInInvestingActivities>
    <us-gaap:NetCashProvidedByUsedInInvestingActivities
      contextRef="FD2017Q4YTD"
      decimals="-3"
      id="d9042541e2583-wk-Fact-E7EE526DD96264A730B28095A18FC76E"
      unitRef="usd">-105555000</us-gaap:NetCashProvidedByUsedInInvestingActivities>
    <us-gaap:ProceedsFromIssuanceOfSharesUnderIncentiveAndShareBasedCompensationPlansIncludingStockOptions
      contextRef="FD2019Q4YTD"
      decimals="-3"
      id="d9042541e2668-wk-Fact-19439D83A6046F4D1D138095A18E4D58"
      unitRef="usd">64581000</us-gaap:ProceedsFromIssuanceOfSharesUnderIncentiveAndShareBasedCompensationPlansIncludingStockOptions>
    <us-gaap:ProceedsFromIssuanceOfSharesUnderIncentiveAndShareBasedCompensationPlansIncludingStockOptions
      contextRef="FD2018Q4YTD"
      decimals="-3"
      id="d9042541e2687-wk-Fact-7284B53E11A93934DAD38095A18717EB"
      unitRef="usd">26783000</us-gaap:ProceedsFromIssuanceOfSharesUnderIncentiveAndShareBasedCompensationPlansIncludingStockOptions>
    <us-gaap:ProceedsFromIssuanceOfSharesUnderIncentiveAndShareBasedCompensationPlansIncludingStockOptions
      contextRef="FD2017Q4YTD"
      decimals="-3"
      id="d9042541e2706-wk-Fact-4D81C557150FA29C9B658095A18E56E8"
      unitRef="usd">54557000</us-gaap:ProceedsFromIssuanceOfSharesUnderIncentiveAndShareBasedCompensationPlansIncludingStockOptions>
    <us-gaap:PaymentsForRepurchaseOfCommonStock
      contextRef="FD2019Q4YTD"
      decimals="-3"
      id="d9042541e2727-wk-Fact-10756628F64C4FA11C9C8095A18EA244"
      unitRef="usd">61690000</us-gaap:PaymentsForRepurchaseOfCommonStock>
    <us-gaap:PaymentsForRepurchaseOfCommonStock
      contextRef="FD2018Q4YTD"
      decimals="-3"
      id="d9042541e2747-wk-Fact-94B306C525197F538E3E8095A18EF580"
      unitRef="usd">203822000</us-gaap:PaymentsForRepurchaseOfCommonStock>
    <us-gaap:PaymentsForRepurchaseOfCommonStock
      contextRef="FD2017Q4YTD"
      decimals="-3"
      id="d9042541e2767-wk-Fact-68170DB7E544BEA7A3208095A1871C7C"
      unitRef="usd">123715000</us-gaap:PaymentsForRepurchaseOfCommonStock>
    <us-gaap:PaymentsOfDividendsCommonStock
      contextRef="FD2019Q4YTD"
      decimals="-3"
      id="d9042541e2789-wk-Fact-1BC97380958928D576DA8095A18F42AE"
      unitRef="usd">35124000</us-gaap:PaymentsOfDividendsCommonStock>
    <us-gaap:PaymentsOfDividendsCommonStock
      contextRef="FD2018Q4YTD"
      decimals="-3"
      id="d9042541e2809-wk-Fact-3C49F3058A7CCFEC6C2C8095A18F417B"
      unitRef="usd">31865000</us-gaap:PaymentsOfDividendsCommonStock>
    <us-gaap:PaymentsOfDividendsCommonStock
      contextRef="FD2017Q4YTD"
      decimals="-3"
      id="d9042541e2829-wk-Fact-2E65D1AE622D0F60C0868095A18ED05B"
      unitRef="usd">29037000</us-gaap:PaymentsOfDividendsCommonStock>
    <us-gaap:PaymentsForPreviousAcquisition
      contextRef="FD2019Q4YTD"
      decimals="-3"
      id="d9042541e2851-wk-Fact-4C7885E33F421B166F218095A187C976"
      unitRef="usd">0</us-gaap:PaymentsForPreviousAcquisition>
    <us-gaap:PaymentsForPreviousAcquisition
      contextRef="FD2018Q4YTD"
      decimals="-3"
      id="d9042541e2870-wk-Fact-6EE15592DD4D873B2FD68095A18F1B00"
      unitRef="usd">1000000</us-gaap:PaymentsForPreviousAcquisition>
    <us-gaap:PaymentsForPreviousAcquisition
      contextRef="FD2017Q4YTD"
      decimals="-3"
      id="d9042541e2890-wk-Fact-4D7153991AB187B207A48095A187A231"
      unitRef="usd">1926000</us-gaap:PaymentsForPreviousAcquisition>
    <us-gaap:NetCashProvidedByUsedInFinancingActivities
      contextRef="FD2019Q4YTD"
      decimals="-3"
      id="d9042541e2912-wk-Fact-18500A769A9EF6A5EB8C8095A18D4D4B"
      unitRef="usd">-32233000</us-gaap:NetCashProvidedByUsedInFinancingActivities>
    <us-gaap:NetCashProvidedByUsedInFinancingActivities
      contextRef="FD2018Q4YTD"
      decimals="-3"
      id="d9042541e2932-wk-Fact-831CE39F13562E5E4E888095A1869B7A"
      unitRef="usd">-209904000</us-gaap:NetCashProvidedByUsedInFinancingActivities>
    <us-gaap:NetCashProvidedByUsedInFinancingActivities
      contextRef="FD2017Q4YTD"
      decimals="-3"
      id="d9042541e2952-wk-Fact-E1BB5FFE2A03D66AB2198095A18D2973"
      unitRef="usd">-100121000</us-gaap:NetCashProvidedByUsedInFinancingActivities>
    <us-gaap:EffectOfExchangeRateOnCashAndCashEquivalents
      contextRef="FD2019Q4YTD"
      decimals="-3"
      id="d9042541e2974-wk-Fact-CA6502F026705B24D05D8095A18E1FF1"
      unitRef="usd">-437000</us-gaap:EffectOfExchangeRateOnCashAndCashEquivalents>
    <us-gaap:EffectOfExchangeRateOnCashAndCashEquivalents
      contextRef="FD2018Q4YTD"
      decimals="-3"
      id="d9042541e2994-wk-Fact-B19F1CAD02C8BF36EE828095A18E1277"
      unitRef="usd">-1093000</us-gaap:EffectOfExchangeRateOnCashAndCashEquivalents>
    <us-gaap:EffectOfExchangeRateOnCashAndCashEquivalents
      contextRef="FD2017Q4YTD"
      decimals="-3"
      id="d9042541e3014-wk-Fact-E008F3814E9BCE5B8FF98095A18C8316"
      unitRef="usd">8294000</us-gaap:EffectOfExchangeRateOnCashAndCashEquivalents>
    <us-gaap:CashAndCashEquivalentsPeriodIncreaseDecrease
      contextRef="FD2019Q4YTD"
      decimals="-3"
      id="d9042541e3035-wk-Fact-373FAA7144536BD56D1A8095A1869B3F"
      unitRef="usd">63219000</us-gaap:CashAndCashEquivalentsPeriodIncreaseDecrease>
    <us-gaap:CashAndCashEquivalentsPeriodIncreaseDecrease
      contextRef="FD2018Q4YTD"
      decimals="-3"
      id="d9042541e3054-wk-Fact-68CD7DAC8E9497249A208095A18DF32F"
      unitRef="usd">1630000</us-gaap:CashAndCashEquivalentsPeriodIncreaseDecrease>
    <us-gaap:CashAndCashEquivalentsPeriodIncreaseDecrease
      contextRef="FD2017Q4YTD"
      decimals="-3"
      id="d9042541e3073-wk-Fact-F92A413536ECA8E94B678095A18774AC"
      unitRef="usd">26941000</us-gaap:CashAndCashEquivalentsPeriodIncreaseDecrease>
    <us-gaap:CashAndCashEquivalentsAtCarryingValue
      contextRef="FI2018Q4"
      decimals="-3"
      id="d9042541e3094-wk-Fact-0113DCF56F3641DF075C8095A187DA3D"
      unitRef="usd">108212000</us-gaap:CashAndCashEquivalentsAtCarryingValue>
    <us-gaap:CashAndCashEquivalentsAtCarryingValue
      contextRef="FI2017Q4"
      decimals="-3"
      id="d9042541e3113-wk-Fact-344EAA3B9234FD47CCF28095A18F7AD1"
      unitRef="usd">106582000</us-gaap:CashAndCashEquivalentsAtCarryingValue>
    <us-gaap:CashAndCashEquivalentsAtCarryingValue
      contextRef="FI2016Q4"
      decimals="-3"
      id="d9042541e3132-wk-Fact-8529C14A9B0169ED4E378095A18EE8F4"
      unitRef="usd">79641000</us-gaap:CashAndCashEquivalentsAtCarryingValue>
    <us-gaap:CashAndCashEquivalentsAtCarryingValue
      contextRef="FI2019Q4"
      decimals="-3"
      id="d9042541e3158-wk-Fact-D8633F16D33E937CA4698095A1867C44"
      unitRef="usd">171431000</us-gaap:CashAndCashEquivalentsAtCarryingValue>
    <us-gaap:CashAndCashEquivalentsAtCarryingValue
      contextRef="FI2018Q4"
      decimals="-3"
      id="d9042541e3177-wk-Fact-0113DCF56F3641DF075C8095A187DA3D"
      unitRef="usd">108212000</us-gaap:CashAndCashEquivalentsAtCarryingValue>
    <us-gaap:CashAndCashEquivalentsAtCarryingValue
      contextRef="FI2017Q4"
      decimals="-3"
      id="d9042541e3196-wk-Fact-344EAA3B9234FD47CCF28095A18F7AD1"
      unitRef="usd">106582000</us-gaap:CashAndCashEquivalentsAtCarryingValue>
    <us-gaap:CommonStockSharesIssued
      contextRef="FI2016Q4_us-gaap_StatementEquityComponentsAxis_us-gaap_CommonStockMember"
      decimals="-3"
      id="d9047537e950-wk-Fact-C7F6B3F4AEF84644AB198095A198B9A6"
      unitRef="shares">171878000</us-gaap:CommonStockSharesIssued>
    <us-gaap:StockholdersEquity
      contextRef="FI2016Q4_us-gaap_StatementEquityComponentsAxis_us-gaap_CommonStockMember"
      decimals="-3"
      id="d9047537e969-wk-Fact-2EF0F520EF139C91289E8095A187EC0C"
      unitRef="usd">344000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="FI2016Q4_us-gaap_StatementEquityComponentsAxis_us-gaap_AdditionalPaidInCapitalMember"
      decimals="-3"
      id="d9047537e988-wk-Fact-D4B78298C01F8897A8368095A18E0170"
      unitRef="usd">374847000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="FI2016Q4_us-gaap_StatementEquityComponentsAxis_us-gaap_RetainedEarningsMember"
      decimals="-3"
      id="d9047537e1008-wk-Fact-0DFA7D0A63644E22B8DA8095A198BC5D"
      unitRef="usd">644622000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="FI2016Q4_us-gaap_StatementEquityComponentsAxis_us-gaap_AccumulatedOtherComprehensiveIncomeMember"
      decimals="-3"
      id="d9047537e1027-wk-Fact-4258255F21EBC032B7148095A1982532"
      unitRef="usd">-56428000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="FI2016Q4"
      decimals="-3"
      id="d9047537e1048-wk-Fact-818FD2712B30D2B8AB0E8095A1863233"
      unitRef="usd">963385000</us-gaap:StockholdersEquity>
    <us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised
      contextRef="FD2017Q4YTD_us-gaap_StatementEquityComponentsAxis_us-gaap_CommonStockMember"
      decimals="-3"
      id="d9047537e1068-wk-Fact-466C7EDC72CEF90651EB8095A18785F4"
      unitRef="shares">4162000</us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised>
    <us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised
      contextRef="FD2017Q4YTD_us-gaap_StatementEquityComponentsAxis_us-gaap_CommonStockMember"
      decimals="-3"
      id="d9047537e1082-wk-Fact-311BA7AD37578AB85D398095A199FF51"
      unitRef="usd">8000</us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised>
    <us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised
      contextRef="FD2017Q4YTD_us-gaap_StatementEquityComponentsAxis_us-gaap_AdditionalPaidInCapitalMember"
      decimals="-3"
      id="d9047537e1101-wk-Fact-A7D16130C4381E01DCF48095A1980393"
      unitRef="usd">54549000</us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised>
    <us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised
      contextRef="FD2017Q4YTD"
      decimals="-3"
      id="d9047537e1159-wk-Fact-13C2163703DD0A90FC348095A1872937"
      unitRef="usd">54557000</us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised>
    <us-gaap:StockRepurchasedDuringPeriodShares
      contextRef="FD2017Q4YTD_us-gaap_StatementEquityComponentsAxis_us-gaap_CommonStockMember"
      decimals="-3"
      id="d9047537e1185-wk-Fact-C8D55FB98AF7C910ACB38095A1874810"
      unitRef="shares">2533000</us-gaap:StockRepurchasedDuringPeriodShares>
    <us-gaap:StockRepurchasedDuringPeriodValue
      contextRef="FD2017Q4YTD_us-gaap_StatementEquityComponentsAxis_us-gaap_CommonStockMember"
      decimals="-3"
      id="d9047537e1200-wk-Fact-33A5CB8CFD9B87D3900B8095A18D5F11"
      unitRef="usd">5000</us-gaap:StockRepurchasedDuringPeriodValue>
    <us-gaap:StockRepurchasedDuringPeriodValue
      contextRef="FD2017Q4YTD_us-gaap_StatementEquityComponentsAxis_us-gaap_RetainedEarningsMember"
      decimals="-3"
      id="d9047537e1240-wk-Fact-F4A2613963AF0B8656F38095A18E3286"
      unitRef="usd">123710000</us-gaap:StockRepurchasedDuringPeriodValue>
    <us-gaap:StockRepurchasedDuringPeriodValue
      contextRef="FD2017Q4YTD"
      decimals="-3"
      id="d9047537e1279-wk-Fact-AEEAC713547B48F4540E8095A19849AE"
      unitRef="usd">123715000</us-gaap:StockRepurchasedDuringPeriodValue>
    <us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue
      contextRef="FD2017Q4YTD_us-gaap_StatementEquityComponentsAxis_us-gaap_AdditionalPaidInCapitalMember"
      decimals="-3"
      id="d9047537e1339-wk-Fact-1E597A80A08359D5E82F8095A18DA81A"
      unitRef="usd">31942000</us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue>
    <us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue
      contextRef="FD2017Q4YTD"
      decimals="-3"
      id="d9047537e1397-wk-Fact-7D1413DF2E6DCA94BCC88095A186D1E3"
      unitRef="usd">31942000</us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue>
    <us-gaap:DividendsCommonStockCash
      contextRef="FD2017Q4YTD_us-gaap_StatementEquityComponentsAxis_us-gaap_RetainedEarningsMember"
      decimals="-3"
      id="d9047537e1476-wk-Fact-0FA03F37FD8B58E284018095A198260E"
      unitRef="usd">29037000</us-gaap:DividendsCommonStockCash>
    <us-gaap:DividendsCommonStockCash
      contextRef="FD2017Q4YTD"
      decimals="-3"
      id="d9047537e1515-wk-Fact-63C6AEB17E887CF030958095A18EBDC6"
      unitRef="usd">29037000</us-gaap:DividendsCommonStockCash>
    <us-gaap:NetIncomeLoss
      contextRef="FD2017Q4YTD_us-gaap_StatementEquityComponentsAxis_us-gaap_RetainedEarningsMember"
      decimals="-3"
      id="d9047537e1595-wk-Fact-A3239781C22A644465758095A17064B7"
      unitRef="usd">176712000</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="FD2017Q4YTD"
      decimals="-3"
      id="d9047537e1633-wk-Fact-B391D3198F1CC415B9AA8095A17B728A"
      unitRef="usd">176712000</us-gaap:NetIncomeLoss>
    <us-gaap:OtherComprehensiveIncomeUnrealizedGainLossOnDerivativesArisingDuringPeriodNetOfTax
      contextRef="FD2017Q4YTD_us-gaap_StatementEquityComponentsAxis_us-gaap_AccumulatedOtherComprehensiveIncomeMember"
      decimals="-3"
      id="d9047537e1731-wk-Fact-3315BC306B0ABE9DF29B8095A1877D3A"
      unitRef="usd">4000</us-gaap:OtherComprehensiveIncomeUnrealizedGainLossOnDerivativesArisingDuringPeriodNetOfTax>
    <us-gaap:OtherComprehensiveIncomeUnrealizedGainLossOnDerivativesArisingDuringPeriodNetOfTax
      contextRef="FD2017Q4YTD"
      decimals="-3"
      id="d9047537e1750-wk-Fact-9D3EEBB7BBBF4F7B14EC8095A186B36F"
      unitRef="usd">4000</us-gaap:OtherComprehensiveIncomeUnrealizedGainLossOnDerivativesArisingDuringPeriodNetOfTax>
    <us-gaap:OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIOnDerivativesNetOfTax
      contextRef="FD2017Q4YTD_us-gaap_StatementEquityComponentsAxis_us-gaap_AccumulatedOtherComprehensiveIncomeMember"
      decimals="-3"
      id="d9047537e1848-wk-Fact-64AD72FE7233E281A5368095A1989CF0"
      unitRef="usd">41000</us-gaap:OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIOnDerivativesNetOfTax>
    <us-gaap:OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIOnDerivativesNetOfTax
      contextRef="FD2017Q4YTD"
      decimals="-3"
      id="d9047537e1868-wk-Fact-6950DADA9B2258A903F38095A199F7D8"
      unitRef="usd">41000</us-gaap:OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIOnDerivativesNetOfTax>
    <us-gaap:OtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax
      contextRef="FD2017Q4YTD_us-gaap_StatementEquityComponentsAxis_us-gaap_AccumulatedOtherComprehensiveIncomeMember"
      decimals="-3"
      id="d9047537e1967-wk-Fact-2A6E4746722818F53E078095A1865D8B"
      unitRef="usd">703000</us-gaap:OtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax>
    <us-gaap:OtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax
      contextRef="FD2017Q4YTD"
      decimals="-3"
      id="d9047537e1986-wk-Fact-2649AF33EDB459FBDB228095A186AC77"
      unitRef="usd">703000</us-gaap:OtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax>
    <us-gaap:OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax
      contextRef="FD2017Q4YTD_us-gaap_StatementEquityComponentsAxis_us-gaap_AccumulatedOtherComprehensiveIncomeMember"
      decimals="-3"
      id="d9047537e2085-wk-Fact-A0BC0330C2316101D8238095A18F60AF"
      unitRef="usd">829000</us-gaap:OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax>
    <us-gaap:OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax
      contextRef="FD2017Q4YTD"
      decimals="-3"
      id="d9047537e2105-wk-Fact-365F7222BF418912580A8095A198B1DD"
      unitRef="usd">829000</us-gaap:OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax>
    <us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax
      contextRef="FD2017Q4YTD_us-gaap_StatementEquityComponentsAxis_us-gaap_AccumulatedOtherComprehensiveIncomeMember"
      decimals="-3"
      id="d9047537e2204-wk-Fact-488786CA93DBE495C0798095A18DABFF"
      unitRef="usd">21992000</us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax>
    <us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax
      contextRef="FD2017Q4YTD"
      decimals="-3"
      id="d9047537e2223-wk-Fact-CBF8BB82F455EF0A025A8095A1983172"
      unitRef="usd">21992000</us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax>
    <us-gaap:CommonStockSharesIssued
      contextRef="FI2017Q4_us-gaap_StatementEquityComponentsAxis_us-gaap_CommonStockMember"
      decimals="-3"
      id="d9047537e2249-wk-Fact-8196B1AF697B90749CC68095A1878769"
      unitRef="shares">173507000</us-gaap:CommonStockSharesIssued>
    <us-gaap:StockholdersEquity
      contextRef="FI2017Q4_us-gaap_StatementEquityComponentsAxis_us-gaap_CommonStockMember"
      decimals="-3"
      id="d9047537e2268-wk-Fact-4A5017B5BCB9D9B35EEC8095A170D8B2"
      unitRef="usd">347000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="FI2017Q4_us-gaap_StatementEquityComponentsAxis_us-gaap_AdditionalPaidInCapitalMember"
      decimals="-3"
      id="d9047537e2287-wk-Fact-C1B23D0783F74535B02B8095A187BA66"
      unitRef="usd">461338000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="FI2017Q4_us-gaap_StatementEquityComponentsAxis_us-gaap_RetainedEarningsMember"
      decimals="-3"
      id="d9047537e2307-wk-Fact-87268108E9834933E8DA8095A199AF37"
      unitRef="usd">668587000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="FI2017Q4_us-gaap_StatementEquityComponentsAxis_us-gaap_AccumulatedOtherComprehensiveIncomeMember"
      decimals="-3"
      id="d9047537e2326-wk-Fact-1E91F36300CFF1EF05778095A18D8B91"
      unitRef="usd">-34599000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="FI2017Q4"
      decimals="-3"
      id="d9047537e2347-wk-Fact-208AF2DD65D7FC5DA7518095A18D579D"
      unitRef="usd">1095673000</us-gaap:StockholdersEquity>
    <us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised
      contextRef="FD2018Q4YTD_us-gaap_StatementEquityComponentsAxis_us-gaap_CommonStockMember"
      decimals="-3"
      id="d9047537e2367-wk-Fact-632A4D8EBB7BDB0786E68095A18D1DB4"
      unitRef="shares">1493000</us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised>
    <us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised
      contextRef="FD2018Q4YTD_us-gaap_StatementEquityComponentsAxis_us-gaap_CommonStockMember"
      decimals="-3"
      id="d9047537e2381-wk-Fact-C0E209DF7E08550BB2978095A18E54F4"
      unitRef="usd">3000</us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised>
    <us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised
      contextRef="FD2018Q4YTD_us-gaap_StatementEquityComponentsAxis_us-gaap_AdditionalPaidInCapitalMember"
      decimals="-3"
      id="d9047537e2400-wk-Fact-6B3E373CC2BF2EA408BA8095A18F4592"
      unitRef="usd">26780000</us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised>
    <us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised
      contextRef="FD2018Q4YTD"
      decimals="-3"
      id="d9047537e2458-wk-Fact-85857C0FE8134F1CF63E8095A18670AC"
      unitRef="usd">26783000</us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised>
    <us-gaap:StockRepurchasedDuringPeriodShares
      contextRef="FD2018Q4YTD_us-gaap_StatementEquityComponentsAxis_us-gaap_CommonStockMember"
      decimals="-3"
      id="d9047537e2484-wk-Fact-78CA1F247A094B9A973B8095A18F7B2B"
      unitRef="shares">4180000</us-gaap:StockRepurchasedDuringPeriodShares>
    <us-gaap:StockRepurchasedDuringPeriodValue
      contextRef="FD2018Q4YTD_us-gaap_StatementEquityComponentsAxis_us-gaap_CommonStockMember"
      decimals="-3"
      id="d9047537e2499-wk-Fact-43A9A2EF2FE1D286A7538095A18D2CD1"
      unitRef="usd">8000</us-gaap:StockRepurchasedDuringPeriodValue>
    <us-gaap:StockRepurchasedDuringPeriodValue
      contextRef="FD2018Q4YTD_us-gaap_StatementEquityComponentsAxis_us-gaap_RetainedEarningsMember"
      decimals="-3"
      id="d9047537e2539-wk-Fact-DD4A482523388BB758218095A18E8A82"
      unitRef="usd">203814000</us-gaap:StockRepurchasedDuringPeriodValue>
    <us-gaap:StockRepurchasedDuringPeriodValue
      contextRef="FD2018Q4YTD"
      decimals="-3"
      id="d9047537e2578-wk-Fact-513FAFBB2B011831C1E68095A18ECF36"
      unitRef="usd">203822000</us-gaap:StockRepurchasedDuringPeriodValue>
    <us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue
      contextRef="FD2018Q4YTD_us-gaap_StatementEquityComponentsAxis_us-gaap_AdditionalPaidInCapitalMember"
      decimals="-3"
      id="d9047537e2638-wk-Fact-550E5840D42187E40AB18095A186401E"
      unitRef="usd">41090000</us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue>
    <us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue
      contextRef="FD2018Q4YTD"
      decimals="-3"
      id="d9047537e2696-wk-Fact-671DAE40504148E9B1A38095A199B09D"
      unitRef="usd">41090000</us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue>
    <us-gaap:DividendsCommonStockCash
      contextRef="FD2018Q4YTD_us-gaap_StatementEquityComponentsAxis_us-gaap_RetainedEarningsMember"
      decimals="-3"
      id="d9047537e2775-wk-Fact-256ED19A8200F2A12B668095A18DD32A"
      unitRef="usd">31865000</us-gaap:DividendsCommonStockCash>
    <us-gaap:DividendsCommonStockCash
      contextRef="FD2018Q4YTD"
      decimals="-3"
      id="d9047537e2814-wk-Fact-A1C910D938D2E744650C8095A198441C"
      unitRef="usd">31865000</us-gaap:DividendsCommonStockCash>
    <us-gaap:CumulativeEffectOfNewAccountingPrincipleInPeriodOfAdoption
      contextRef="FI2017Q4_us-gaap_StatementEquityComponentsAxis_us-gaap_RetainedEarningsMember"
      decimals="-3"
      id="d9047537e2894-wk-Fact-9FA6580A99EAF4A3A01815F853384C3B"
      unitRef="usd">-5961000</us-gaap:CumulativeEffectOfNewAccountingPrincipleInPeriodOfAdoption>
    <us-gaap:CumulativeEffectOfNewAccountingPrincipleInPeriodOfAdoption
      contextRef="FI2017Q4"
      decimals="-3"
      id="d9047537e2933-wk-Fact-297F5B9376F53ED3600A15F90FB4CBE0"
      unitRef="usd">-5961000</us-gaap:CumulativeEffectOfNewAccountingPrincipleInPeriodOfAdoption>
    <us-gaap:NetIncomeLoss
      contextRef="FD2018Q4YTD_us-gaap_StatementEquityComponentsAxis_us-gaap_RetainedEarningsMember"
      decimals="-3"
      id="d9047537e3013-wk-Fact-5DDF74EC3124404949448095A198D9B6"
      unitRef="usd">219267000</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="FD2018Q4YTD"
      decimals="-3"
      id="d9047537e3051-wk-Fact-1AC51EC9E270CE718EBD8095A18E3121"
      unitRef="usd">219267000</us-gaap:NetIncomeLoss>
    <us-gaap:OtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax
      contextRef="FD2018Q4YTD_us-gaap_StatementEquityComponentsAxis_us-gaap_AccumulatedOtherComprehensiveIncomeMember"
      decimals="-3"
      id="d9047537e3149-wk-Fact-6E6076120702385C5CC48095A18DE614"
      unitRef="usd">-1185000</us-gaap:OtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax>
    <us-gaap:OtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax
      contextRef="FD2018Q4YTD"
      decimals="-3"
      id="d9047537e3169-wk-Fact-1EB19325C22C5963C4518095A198EE2F"
      unitRef="usd">-1185000</us-gaap:OtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax>
    <us-gaap:OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax
      contextRef="FD2018Q4YTD_us-gaap_StatementEquityComponentsAxis_us-gaap_AccumulatedOtherComprehensiveIncomeMember"
      decimals="-3"
      id="d9047537e3268-wk-Fact-0F26117749BD6AFDD12E8095A18E35DA"
      unitRef="usd">501000</us-gaap:OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax>
    <us-gaap:OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax
      contextRef="FD2018Q4YTD"
      decimals="-3"
      id="d9047537e3288-wk-Fact-D5FB4181AACCF5EC38828095A1853D44"
      unitRef="usd">501000</us-gaap:OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax>
    <us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax
      contextRef="FD2018Q4YTD_us-gaap_StatementEquityComponentsAxis_us-gaap_AccumulatedOtherComprehensiveIncomeMember"
      decimals="-3"
      id="d9047537e3388-wk-Fact-4DA6BF279BCFF15A7D128095A1863625"
      unitRef="usd">-4216000</us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax>
    <us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax
      contextRef="FD2018Q4YTD"
      decimals="-3"
      id="d9047537e3408-wk-Fact-926E0D61C87F4EC5C4DE8095A171F3CA"
      unitRef="usd">-4216000</us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax>
    <us-gaap:CommonStockSharesIssued
      contextRef="FI2018Q4_us-gaap_StatementEquityComponentsAxis_us-gaap_CommonStockMember"
      decimals="-3"
      id="d9047537e3435-wk-Fact-14BD9D0FA11EC718E9C48095A18C0BCD"
      unitRef="shares">170820000</us-gaap:CommonStockSharesIssued>
    <us-gaap:StockholdersEquity
      contextRef="FI2018Q4_us-gaap_StatementEquityComponentsAxis_us-gaap_CommonStockMember"
      decimals="-3"
      id="d9047537e3454-wk-Fact-895B97023DE93F1B398E8095A18712B2"
      unitRef="usd">342000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="FI2018Q4_us-gaap_StatementEquityComponentsAxis_us-gaap_AdditionalPaidInCapitalMember"
      decimals="-3"
      id="d9047537e3473-wk-Fact-A948B583008DE67591E98095A18DF5FE"
      unitRef="usd">529208000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="FI2018Q4_us-gaap_StatementEquityComponentsAxis_us-gaap_RetainedEarningsMember"
      decimals="-3"
      id="d9047537e3493-wk-Fact-696435B72DCA66F6B2C58095A1870320"
      unitRef="usd">646214000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="FI2018Q4_us-gaap_StatementEquityComponentsAxis_us-gaap_AccumulatedOtherComprehensiveIncomeMember"
      decimals="-3"
      id="d9047537e3512-wk-Fact-94AE3EFFD8CDE05C2B9D8095A18EA568"
      unitRef="usd">-40501000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="FI2018Q4"
      decimals="-3"
      id="d9047537e3533-wk-Fact-F33407DFC1DCE288A4348095A18C5D27"
      unitRef="usd">1135263000</us-gaap:StockholdersEquity>
    <us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised
      contextRef="FD2019Q4YTD_us-gaap_StatementEquityComponentsAxis_us-gaap_CommonStockMember"
      decimals="-3"
      id="d9047537e3553-wk-Fact-986704192B08E2CD48178095A18E4EAF"
      unitRef="shares">3018000</us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised>
    <us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised
      contextRef="FD2019Q4YTD_us-gaap_StatementEquityComponentsAxis_us-gaap_CommonStockMember"
      decimals="-3"
      id="d9047537e3567-wk-Fact-5F02AAD6848DEB58B6878095A18DD83F"
      unitRef="usd">6000</us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised>
    <us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised
      contextRef="FD2019Q4YTD_us-gaap_StatementEquityComponentsAxis_us-gaap_AdditionalPaidInCapitalMember"
      decimals="-3"
      id="d9047537e3586-wk-Fact-54ACEEE7AC1CF0AF0EC18095A18D8654"
      unitRef="usd">64575000</us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised>
    <us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised
      contextRef="FD2019Q4YTD"
      decimals="-3"
      id="d9047537e3644-wk-Fact-112D3EBB8630F4D3C5BD8095A18E5D4F"
      unitRef="usd">64581000</us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised>
    <us-gaap:StockRepurchasedDuringPeriodShares
      contextRef="FD2019Q4YTD_us-gaap_StatementEquityComponentsAxis_us-gaap_CommonStockMember"
      decimals="-3"
      id="d9047537e3670-wk-Fact-8C5B3621FD304754CCC88095A18E09CD"
      unitRef="shares">1398000</us-gaap:StockRepurchasedDuringPeriodShares>
    <us-gaap:StockRepurchasedDuringPeriodValue
      contextRef="FD2019Q4YTD_us-gaap_StatementEquityComponentsAxis_us-gaap_CommonStockMember"
      decimals="-3"
      id="d9047537e3685-wk-Fact-AD52A0BD083F216E98D18095A170069F"
      unitRef="usd">3000</us-gaap:StockRepurchasedDuringPeriodValue>
    <us-gaap:StockRepurchasedDuringPeriodValue
      contextRef="FD2019Q4YTD_us-gaap_StatementEquityComponentsAxis_us-gaap_RetainedEarningsMember"
      decimals="-3"
      id="d9047537e3725-wk-Fact-A821DDA6ECECA13BEF9B8095A18E66CE"
      unitRef="usd">61687000</us-gaap:StockRepurchasedDuringPeriodValue>
    <us-gaap:StockRepurchasedDuringPeriodValue
      contextRef="FD2019Q4YTD"
      decimals="-3"
      id="d9047537e3764-wk-Fact-5D2D9093680F05E0CC878095A18ED23A"
      unitRef="usd">61690000</us-gaap:StockRepurchasedDuringPeriodValue>
    <us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue
      contextRef="FD2019Q4YTD_us-gaap_StatementEquityComponentsAxis_us-gaap_AdditionalPaidInCapitalMember"
      decimals="-3"
      id="d9047537e3824-wk-Fact-4D85564413F6BE09D8918095A18DCB2D"
      unitRef="usd">45589000</us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue>
    <us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue
      contextRef="FD2019Q4YTD"
      decimals="-3"
      id="d9047537e3882-wk-Fact-FCFAF142A9B795EF70E08095A18765D1"
      unitRef="usd">45589000</us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue>
    <us-gaap:DividendsCommonStockCash
      contextRef="FD2019Q4YTD_us-gaap_StatementEquityComponentsAxis_us-gaap_RetainedEarningsMember"
      decimals="-3"
      id="d9047537e3961-wk-Fact-880A0D55DE9642B1D56B8095A18E82A2"
      unitRef="usd">35124000</us-gaap:DividendsCommonStockCash>
    <us-gaap:DividendsCommonStockCash
      contextRef="FD2019Q4YTD"
      decimals="-3"
      id="d9047537e4000-wk-Fact-2AB12BBD4BAB5BB3E8328095A19932A6"
      unitRef="usd">35124000</us-gaap:DividendsCommonStockCash>
    <us-gaap:NetIncomeLoss
      contextRef="FD2019Q4YTD_us-gaap_StatementEquityComponentsAxis_us-gaap_RetainedEarningsMember"
      decimals="-3"
      id="d9047537e4080-wk-Fact-AD63A240E975EA8D87988095A18E12CB"
      unitRef="usd">203865000</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="FD2019Q4YTD"
      decimals="-3"
      id="d9047537e4118-wk-Fact-7A2F7F14108749D162188095A17CA207"
      unitRef="usd">203865000</us-gaap:NetIncomeLoss>
    <us-gaap:OtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax
      contextRef="FD2019Q4YTD_us-gaap_StatementEquityComponentsAxis_us-gaap_AccumulatedOtherComprehensiveIncomeMember"
      decimals="-3"
      id="d9047537e4216-wk-Fact-A62E62FE8F7A290826278095A18721C6"
      unitRef="usd">5219000</us-gaap:OtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax>
    <us-gaap:OtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax
      contextRef="FD2019Q4YTD"
      decimals="-3"
      id="d9047537e4235-wk-Fact-C853D237AA029C0D23CB8095A198A145"
      unitRef="usd">5219000</us-gaap:OtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax>
    <us-gaap:OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax
      contextRef="FD2019Q4YTD_us-gaap_StatementEquityComponentsAxis_us-gaap_AccumulatedOtherComprehensiveIncomeMember"
      decimals="-3"
      id="d9047537e4333-wk-Fact-B19F70CC5D3A31D449118095A1868FE5"
      unitRef="usd">1452000</us-gaap:OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax>
    <us-gaap:OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax
      contextRef="FD2019Q4YTD"
      decimals="-3"
      id="d9047537e4353-wk-Fact-1567E4B2250861FD85178095A199E5ED"
      unitRef="usd">1452000</us-gaap:OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax>
    <us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax
      contextRef="FD2019Q4YTD_us-gaap_StatementEquityComponentsAxis_us-gaap_AccumulatedOtherComprehensiveIncomeMember"
      decimals="-3"
      id="d9047537e4452-wk-Fact-74299650C75602D626A58095A17094D1"
      unitRef="usd">-541000</us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax>
    <us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax
      contextRef="FD2019Q4YTD"
      decimals="-3"
      id="d9047537e4472-wk-Fact-C43E1D54DB9ED91AE9648095A16B2041"
      unitRef="usd">-541000</us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax>
    <us-gaap:CommonStockSharesIssued
      contextRef="FI2019Q4_us-gaap_StatementEquityComponentsAxis_us-gaap_CommonStockMember"
      decimals="-3"
      id="d9047537e4499-wk-Fact-214CF4D911CA612E8EF28095A18DBA24"
      unitRef="shares">172440000</us-gaap:CommonStockSharesIssued>
    <us-gaap:StockholdersEquity
      contextRef="FI2019Q4_us-gaap_StatementEquityComponentsAxis_us-gaap_CommonStockMember"
      decimals="-3"
      id="d9047537e4518-wk-Fact-359B3D32A906FF2F38BD8095A18DAB26"
      unitRef="usd">345000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="FI2019Q4_us-gaap_StatementEquityComponentsAxis_us-gaap_AdditionalPaidInCapitalMember"
      decimals="-3"
      id="d9047537e4537-wk-Fact-BE35B333560C4EBA7CFA8095A1871D2E"
      unitRef="usd">639372000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="FI2019Q4_us-gaap_StatementEquityComponentsAxis_us-gaap_RetainedEarningsMember"
      decimals="-3"
      id="d9047537e4557-wk-Fact-9734CC62E5F44F81C8B48095A1988F00"
      unitRef="usd">753268000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="FI2019Q4_us-gaap_StatementEquityComponentsAxis_us-gaap_AccumulatedOtherComprehensiveIncomeMember"
      decimals="-3"
      id="d9047537e4576-wk-Fact-8696A7066648E88A5F4E8095A18DEC85"
      unitRef="usd">-37275000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="FI2019Q4"
      decimals="-3"
      id="d9047537e4597-wk-Fact-751ED66657CA2A1D86818095A1860236"
      unitRef="usd">1355710000</us-gaap:StockholdersEquity>
    <us-gaap:SignificantAccountingPoliciesTextBlock
      contextRef="FD2019Q4YTD"
      id="TextSelection-5F447AE7E4EF7F4830048095A1A77FB3-0-wk-Fact-103D7370D7BFFC95C1B18095A17236CC">Summary of Significant Accounting Policies&lt;div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&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="line-height:120%;padding-bottom:6px;padding-top:12px;text-align:justify;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;text-decoration:underline;"&gt;Nature of Operations&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-bottom:6px;padding-top:6px;text-align:justify;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Cognex Corporation is a leading provider of machine vision products that capture and analyze visual information in order to automate manufacturing and distribution tasks where vision is required.&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-bottom:6px;padding-top:12px;text-align:justify;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;text-decoration:underline;"&gt;Use of Estimates in the Preparation of Financial Statements&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-bottom:6px;padding-top:6px;text-align:justify;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&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, accounts receivable, inventories, leases, long-lived assets, internal-use software, goodwill, warranty obligations, contingencies, derivative instruments, stock-based compensation, income taxes, and business combinations.&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-bottom:6px;padding-top:12px;text-align:justify;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;text-decoration:underline;"&gt;Basis of Consolidation&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-bottom:6px;padding-top:6px;text-align:justify;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&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="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;text-decoration:underline;"&gt;Foreign Currency Translation&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&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 recorded in shareholders&#x2019; equity as other comprehensive income (loss).&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;text-decoration:underline;"&gt;Fair Value Measurements&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&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 upon 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 upon 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="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;text-decoration:underline;"&gt;Cash, Cash Equivalents, and Investments&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Money market instruments, as well as certificates of deposits and debt securities with original maturities of three months or less, are classified as cash equivalents and are stated at amortized cost.  Certificates of deposit and debt securities with original maturities greater than three months and remaining maturities of one year or less are classified as short-term investments.  Debt securities with remaining maturities greater than one year are classified as long-term investments.  It is the Company&#x2019;s policy to invest in debt securities with effective maturities that do not exceed &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;ten years&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;.&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&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, recorded in shareholders&#x2019; equity as other comprehensive income (loss).  Realized gains and losses are included in current operations, along with the amortization of the discount or premium on debt securities arising at acquisition, and are calculated using the specific identification method.  The Company&#x2019;s limited partnership interest is accounted for using the cost method because the Company&#x2019;s investment is less than &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;5%&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt; of the partnership and the Company has no influence over the partnership&#x2019;s operating and financial policies.  The carrying value of this investment has been reduced to zero, and therefore, distributions are recorded as investment income as they occur.  &lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Management monitors the carrying value of its investments in debt securities compared to their fair value to determine whether an other-than-temporary impairment has occurred.  If the fair value of a debt security is less than its amortized cost, the Company assesses whether the impairment is other-than-temporary.  In considering whether a decline in fair value is other-than-temporary, we consider many factors.  In its evaluation of its debt securities, management considers the type of security, the credit rating of the security, the length of time the security has been in a loss position, the size of the loss position, our intent and ability to hold the security to expected recovery of value, and other meaningful information.  An impairment is considered other-than-temporary if (i)&#160;the Company has the intent to sell the security, (ii)&#160;it is more likely than not that the Company will be required to sell the security before recovery of the entire amortized cost basis, or (iii)&#160;the Company does not expect to recover the entire amortized cost basis of the security.  If impairment is considered other-than-temporary based upon condition (i)&#160;or (ii)&#160;described above, the entire difference between the amortized cost and the fair value of the security is recognized in current operations.  If an impairment is considered other-than-temporary based upon condition (iii), the amount representing credit losses (defined as the difference between the present value of the cash flows expected to be collected and the amortized cost basis of the security) is recognized in current operations and the amount relating to all other factors is recognized in shareholders' equity as other comprehensive income (loss). &lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;text-decoration:underline;"&gt;Accounts Receivable&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;The Company extends credit with various payment terms to customers based upon an evaluation of their financial condition.  Accounts that are outstanding longer than the payment terms are considered to be past due.  The Company establishes reserves against accounts receivable for potential credit losses and records bad debt expense in current operations when it determines receivables are at risk for collection based upon the length of time the receivable has been outstanding, the customer&#x2019;s current ability to pay its obligations to the Company, general economic and industry conditions, as well as various other factors.  Receivables are written off against these reserves in the period they are determined to be uncollectible and payments subsequently received on previously written-off receivables are recorded as a reversal of the bad debt expense.&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;text-decoration:underline;"&gt;Inventories&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&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 prices in the ordinary course of business, less reasonably predictable costs of completion, disposal, and transportation.&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&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 upon assumptions about future demand, product transitions, and market conditions, 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="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&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 would recognize a higher than normal gross margin if the reserved inventory were subsequently sold.&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;text-decoration:underline;"&gt;Property, Plant, and Equipment&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&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 &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;39 years&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;, building improvements&#x2019; useful lives are &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;ten years&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;, and the useful lives of computer hardware and software, manufacturing test equipment, and furniture and fixtures range from &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;two&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt; to &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;ten years&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;.  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="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;text-decoration:underline;"&gt;Leases&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;The Company accounts for leases in accordance with Accounting Standard Codification (ASC) 842, "Leases."  The core principle of ASC 842 is that a lessee should recognize on the balance sheet the assets and liabilities that arise from leases.  &lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;At inception of a contract, the Company determines whether that contract is or contains a lease. The Company determines whether a contract 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="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&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="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Lease contracts may include 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="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;The Company classifies a lease as a finance lease when it meets any of the following criteria at the lease commencement date: a) the lease transfers ownership of the underlying asset to the Company by the end of the lease term; b) the lease grants the Company an option to purchase the underlying asset that the Company is reasonably certain to exercise; c) 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); d) 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 e) 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="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&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 is the three-month London Interbank Offered Rate (LIBOR) plus a 2.5% credit risk spread.&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&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="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;text-decoration:underline;"&gt;Internal-use Software&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Internal-use software is software acquired, internally developed, or modified solely to meet the entity'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 upon 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="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&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="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;text-decoration:underline;"&gt;Goodwill&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Goodwill is stated at cost.  The Company evaluates the possible 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 macroeconomic conditions, industry and market considerations, overall financial performance (both current and projected), changes in management or 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 amount, the entity 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 amount 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 upon a discounted cash flow model.  In addition, the Company uses the market approach, which compares the reporting unit to publicly-traded companies and transactions involving similar businesses, to support the conclusions based upon the income approach. &lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;text-decoration:underline;"&gt;Intangible Assets&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&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 upon facts and circumstances.  The useful lives of distribution networks range from &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;eleven&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt; to &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;twelve years&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;, of completed technologies from &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;five&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt; to &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;eight years&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;, of customer relationships from &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;five&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt; to &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;eight years&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;, of non-compete agreements from &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;three&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt; to &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;seven years&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;, and trademarks &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;two years&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;.  In-process technology is  an indefinite-lived intangible asset until the technology is finalized, at which point it is amortized over its estimated useful life.  The Company evaluates the possible impairment of long-lived assets, including intangible assets, whenever events or circumstances indicate the carrying value of the assets may not be recoverable. At the occurrence of a certain event or change in circumstances, the Company evaluates the potential impairment of an asset by estimating the future undiscounted cash flows expected to result from the use and eventual disposition of the asset.  If the sum of the estimated future cash flows is less than the carrying value, the Company determines the amount of such impairment by comparing the fair value of the asset to its carrying value.  The fair value is based upon the present value of the estimated future cash flows using a discount rate commensurate with the risks involved.&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;text-decoration:underline;"&gt;Warranty Obligations&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;The Company warrants its products to be free from defects in material and workmanship for periods primarily ranging from &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;one&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt; to &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;three years&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt; from the time of sale based upon 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 upon 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="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;text-decoration:underline;"&gt;Contingencies&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&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, such as patent infringement matters, are expensed as incurred.&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;text-decoration:underline;"&gt;Revenue Recognition&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&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="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-style:italic;"&gt;Identifying the Contract with the Customer&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:4px;text-align:justify;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&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.  &lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:8px;text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-style:italic;"&gt;Identifying the Performance Obligations in the Contract&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:4px;text-align:justify;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&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 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, logistics, and automotive industries.   &lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&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="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&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="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-style:italic;"&gt;Determining the Transaction Price&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:4px;text-align:justify;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&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="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&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 upon 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="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-style:italic;"&gt;Allocating the Transaction Price to the Performance Obligations&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:4px;text-align:justify;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&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="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-style:italic;"&gt;Recognizing Revenue When (or As) the Performance Obligations are Satisfied&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:4px;text-align:justify;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&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="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&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 will 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 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="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&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 specifications.  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 specifications 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="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&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 &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;30&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt; to &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;90 days&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt; 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 &lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;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="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&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="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;text-decoration:underline;"&gt;Research and Development&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Research and development costs for internally-developed or acquired products 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="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;text-decoration:underline;"&gt;Advertising Costs&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Advertising costs are expensed as incurred and totaled &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;$1,385,000&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt; in &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;2019&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;, &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;$1,662,000&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt; in &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;2018&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;, and &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;$1,679,000&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt; in &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;2017&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;.&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;text-decoration:underline;"&gt;Stock-Based Compensation&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;The Company&#x2019;s stock-based awards that result in compensation expense consist of stock options and restricted stock units (RSUs).  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 restricted stock units.  When a stock option is exercised or a restricted stock unit is settled, the Company issues new shares from this pool.  The fair values of stock options are estimated on the grant date using a binomial lattice model.  Management is responsible for determining the appropriate valuation model and estimating these fair values, and in doing so, considers a number of factors, including information provided by an outside valuation advisor.  The fair value of RSUs are determined based upon the market value of the Company's common stock on the grant date. &lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;The Company recognizes compensation expense related to stock options and RSUs 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 upon 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 upon 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="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;text-decoration:underline;"&gt;Taxes&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&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="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&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="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Deferred tax assets and liabilities are determined based upon 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 upon 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="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;In December 2017, the Tax Cuts and Jobs Act (&#x201c;Tax Act&#x201d;) was signed into law. The Tax Act imposed a minimum tax on foreign earnings related to intangible assets, known as the Global Intangible Low-Taxed Income (GILTI) tax  In the fourth quarter of 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 the third quarter of 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="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&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="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;text-decoration:underline;"&gt;Net Income Per Share&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&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="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;text-decoration:underline;"&gt;Comprehensive Income&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&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 &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;$38,027,000&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt; and &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;$37,486,000&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;, as of December 31, &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;2019&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt; and December 31, &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;2018&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;, respectively; net unrealized gains on available-for-sale investments of &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;$2,023,000&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt; as of December 31, 2019 and net unrealized losses on available-for-sale investments of &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;$1,744,000&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt; as of December 31, 2018; and losses on currency swaps, net of gains on long-term intercompany loans of &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;$1,271,000&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt; at each year end.&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Amounts reclassified from accumulated other comprehensive income (loss) to investment income on the Consolidated Statements of Operations were net realized gains of &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;$1,452,000&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;, &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;$501,000&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;, and &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;$829,000&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt; for &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;2019&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;, &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;2018&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;, and &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;2017&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;, respectively.&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;text-decoration:underline;"&gt;Concentrations of Risk&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Financial instruments that potentially subject the Company to concentrations of credit risk consist primarily of cash, cash equivalents, investments, and trade receivables.  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 not experienced any significant realized losses on its debt securities.&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;The Company performs ongoing credit evaluations of its customers and maintains allowances for potential credit losses. The Company has not experienced any significant losses related to the collection of its accounts receivable.&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;A significant portion of the Company's product is manufactured by a third-party contractor located in Indonesia.  This contractor has agreed to provide Cognex with termination notification periods and last-time-buy rights, if and when that may be applicable.  We rely upon this contractor to provide quality product and meet delivery schedules.  We engage in extensive product quality programs and processes, including actively monitoring the performance of our third-party manufacturers; however, we may not detect all product quality issues through these programs and processes.&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Certain components are presently sourced from a single vendor that is selected based on price and performance considerations.  In the event of a supply disruption from a single-source vendor, these components may be purchased from alternative vendors, which may result in manufacturing delays based on the lead time of the new vendor.  Certain &lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;key electronic and mechanical components that are purchased from strategic suppliers, such as processors or imagers, are fundamental to the design of Cognex products.  A disruption in the supply of these key components, such as a last-time-buy announcement, natural disaster, financial bankruptcy, or other event, may require us to purchase a significant amount of inventory at unfavorable prices resulting in lower gross margins and higher risk of carrying excess inventory.  If we are unable to secure adequate supply from alternative sources, we may have to redesign our products, which may lead to a delay in manufacturing and a possible loss of sales.&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;text-decoration:underline;"&gt;Derivative Instruments&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Derivative instruments are recorded on the Consolidated Balance Sheets at fair value.  Changes in the fair value of derivatives are recorded each period in current operations or in shareholders' equity as other comprehensive income (loss), depending upon whether the derivative is designated as a hedge transaction and, if it is, the effectiveness of the hedge.  At the inception of the contract, the Company designates foreign currency forward exchange contracts as either a cash flow hedge of certain forecasted foreign currency denominated sales and purchase transactions or as an economic hedge.  Changes in the fair value of a derivative that is highly effective and that is designated and qualifies as a cash flow hedge are recorded in shareholders' equity as other comprehensive income (loss), and reclassified into current operations in the same period during which the hedged transaction affects current operations and in the same financial statement line item as that of the forecasted transaction.  Cash flow hedges are evaluated for effectiveness quarterly.  Any hedge ineffectiveness (which represents the amount by which the changes in the fair value of the derivative exceed the variability in the cash flows of the forecasted transaction) is recorded in current operations in the period in which ineffectiveness is determined.  Changes in the fair value of the Company&#x2019;s economic hedges (not designated as a cash flow hedge) are reported in current operations.  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="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;The Company formally documents all relationships between hedging instruments and hedged items, as well as its risk-management objective and strategy for undertaking various hedge transactions.  This process includes linking all derivatives that are designated as cash flow hedges to specific forecasted transactions.  The Company also formally assesses (both at the hedge&#x2019;s inception and on an ongoing basis) whether the derivatives that are used in hedging transactions have been highly effective in offsetting changes in the fair value or cash flows of hedged items and whether those derivatives may be expected to remain highly effective in future periods.  When it is determined that a derivative is not (or has ceased to be) highly effective as a hedge, the Company discontinues hedge accounting prospectively, as discussed below.&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;The Company discontinues hedge accounting prospectively when (1) it determines that the derivative is no longer effective in offsetting changes in the cash flows of a hedged item; (2) the derivative expires or is sold, terminated, or exercised; (3) it is no longer probable that the forecasted transaction will occur; or (4) management determines that designating the derivative as a hedging instrument is no longer appropriate or desired.  When the Company discontinues hedge accounting because it is no longer probable that the forecasted transaction will occur in the originally expected period, the gain or loss on the derivative remains in accumulated other comprehensive income (loss) and is reclassified into current operations when the forecasted transaction affects current operations.  However, if it is probable that a forecasted transaction will not occur by the end of the originally specified time period or within an additional two-month period of time thereafter, the gain or loss that was accumulated in other comprehensive income (loss) is recognized immediately in current operations.  In all situations in which hedge accounting is discontinued and the derivative remains outstanding, the Company carries the derivative at fair value on the Consolidated Balance Sheets, recognizing changes in the fair value in current operations, unless it is designated in a new hedging relationship.&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;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.  Accordingly, cash flow hedges are presented net on the Consolidated Balance Sheets.  &lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;text-decoration:underline;"&gt;Business Acquisitions&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&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 contriubte 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 &lt;/span&gt;&lt;/div&gt;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 upon 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 upon 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 each reporting period with changes in fair value recorded 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:SignificantAccountingPoliciesTextBlock>
    <cgnx:NatureOfOperationsPolicyTextBlock
      contextRef="FD2019Q4YTD"
      id="TextSelection-E927F48CD072188847BC8095A1A76873-0-wk-Fact-4C30E9D884938878B4538095A1744D42">&lt;div style="line-height:120%;padding-bottom:6px;padding-top:12px;text-align:justify;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;text-decoration:underline;"&gt;Nature of Operations&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-bottom:6px;padding-top:6px;text-align:justify;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Cognex Corporation is a leading provider of machine vision products that capture and analyze visual information in order to automate manufacturing and distribution tasks where vision is required.&lt;/span&gt;&lt;/div&gt;</cgnx:NatureOfOperationsPolicyTextBlock>
    <us-gaap:UseOfEstimates
      contextRef="FD2019Q4YTD"
      id="TextSelection-06E5F9740E6EF0B255828095A1A754BB-0-wk-Fact-436EC985EE5D2E10DDC88095A171F145">&lt;div style="line-height:120%;padding-bottom:6px;padding-top:12px;text-align:justify;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;text-decoration:underline;"&gt;Use of Estimates in the Preparation of Financial Statements&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-bottom:6px;padding-top:6px;text-align:justify;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&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, accounts receivable, inventories, leases, long-lived assets, internal-use software, goodwill, warranty obligations, contingencies, derivative instruments, stock-based compensation, income taxes, and business combinations.&lt;/span&gt;&lt;/div&gt;</us-gaap:UseOfEstimates>
    <us-gaap:ConsolidationPolicyTextBlock
      contextRef="FD2019Q4YTD"
      id="TextSelection-3BFE7166368262FF31A48095A1A705B4-0-wk-Fact-51C9377C06C0DC9C80148095A172067E">&lt;div style="line-height:120%;padding-bottom:6px;padding-top:12px;text-align:justify;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;text-decoration:underline;"&gt;Basis of Consolidation&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-bottom:6px;padding-top:6px;text-align:justify;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&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="FD2019Q4YTD"
      id="TextSelection-D60399509A6EEB9731528095A1A78B0E-0-wk-Fact-7DC9DF3D946D53719E258095A1729051">&lt;div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;text-decoration:underline;"&gt;Foreign Currency Translation&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&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 recorded in shareholders&#x2019; equity as other comprehensive income (loss).&lt;/span&gt;&lt;/div&gt;</us-gaap:ForeignCurrencyTransactionsAndTranslationsPolicyTextBlock>
    <us-gaap:FairValueOfFinancialInstrumentsPolicy
      contextRef="FD2019Q4YTD"
      id="TextSelection-5BE74C4E36233ABCAB628095A1A77DCC-0-wk-Fact-0F7B0F873DFB39CD3A8F8095A172927D">&lt;div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;text-decoration:underline;"&gt;Fair Value Measurements&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&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 upon 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 upon 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="FD2019Q4YTD"
      id="TextSelection-625624401A87568A1C328095A1A72F71-0-wk-Fact-9CDB27AF1650E97F55B48095A1726C1D">&lt;div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;text-decoration:underline;"&gt;Cash, Cash Equivalents, and Investments&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Money market instruments, as well as certificates of deposits and debt securities with original maturities of three months or less, are classified as cash equivalents and are stated at amortized cost.  Certificates of deposit and debt securities with original maturities greater than three months and remaining maturities of one year or less are classified as short-term investments.  Debt securities with remaining maturities greater than one year are classified as long-term investments.  It is the Company&#x2019;s policy to invest in debt securities with effective maturities that do not exceed &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;ten years&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;.&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&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, recorded in shareholders&#x2019; equity as other comprehensive income (loss).  Realized gains and losses are included in current operations, along with the amortization of the discount or premium on debt securities arising at acquisition, and are calculated using the specific identification method.  The Company&#x2019;s limited partnership interest is accounted for using the cost method because the Company&#x2019;s investment is less than &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;5%&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt; of the partnership and the Company has no influence over the partnership&#x2019;s operating and financial policies.  The carrying value of this investment has been reduced to zero, and therefore, distributions are recorded as investment income as they occur.  &lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Management monitors the carrying value of its investments in debt securities compared to their fair value to determine whether an other-than-temporary impairment has occurred.  If the fair value of a debt security is less than its amortized cost, the Company assesses whether the impairment is other-than-temporary.  In considering whether a decline in fair value is other-than-temporary, we consider many factors.  In its evaluation of its debt securities, management considers the type of security, the credit rating of the security, the length of time the security has been in a loss position, the size of the loss position, our intent and ability to hold the security to expected recovery of value, and other meaningful information.  An impairment is considered other-than-temporary if (i)&#160;the Company has the intent to sell the security, (ii)&#160;it is more likely than not that the Company will be required to sell the security before recovery of the entire amortized cost basis, or (iii)&#160;the Company does not expect to recover the entire amortized cost basis of the security.  If impairment is considered other-than-temporary based upon condition (i)&#160;or (ii)&#160;described above, the entire difference between the amortized cost and the fair value of the security is recognized in current operations.  If an impairment is considered other-than-temporary based upon condition (iii), the amount representing credit losses (defined as the difference between the present value of the cash flows expected to be collected and the amortized cost basis of the security) is recognized in current operations and the amount relating to all other factors is recognized in shareholders' equity as other comprehensive income (loss). &lt;/span&gt;&lt;/div&gt;</us-gaap:CashAndCashEquivalentsPolicyTextBlock>
    <cgnx:AvailableforsaleSecuritiesDebtMaturitiesEffectiveTermMaximum
      contextRef="FD2019Q4YTD"
      id="d9048161e769-wk-Fact-4E0DD2C02485939B23B88496EF3077AB">P10Y</cgnx:AvailableforsaleSecuritiesDebtMaturitiesEffectiveTermMaximum>
    <cgnx:MaximumInvestmentOfCompanyInPartnership
      contextRef="FD2019Q4YTD"
      decimals="INF"
      id="d9048161e776-wk-Fact-77F8B1A1F11B7EBE75CB8095A174ED58"
      unitRef="number">0.05</cgnx:MaximumInvestmentOfCompanyInPartnership>
    <us-gaap:ReceivablesPolicyTextBlock
      contextRef="FD2019Q4YTD"
      id="TextSelection-17A51A29F97B15806A3F8095A1A719F7-0-wk-Fact-1C64EB51CCFFAB9EDA4F8095A1722FC7">&lt;div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;text-decoration:underline;"&gt;Accounts Receivable&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;The Company extends credit with various payment terms to customers based upon an evaluation of their financial condition.  Accounts that are outstanding longer than the payment terms are considered to be past due.  The Company establishes reserves against accounts receivable for potential credit losses and records bad debt expense in current operations when it determines receivables are at risk for collection based upon the length of time the receivable has been outstanding, the customer&#x2019;s current ability to pay its obligations to the Company, general economic and industry conditions, as well as various other factors.  Receivables are written off against these reserves in the period they are determined to be uncollectible and payments subsequently received on previously written-off receivables are recorded as a reversal of the bad debt expense.&lt;/span&gt;&lt;/div&gt;</us-gaap:ReceivablesPolicyTextBlock>
    <us-gaap:InventoryPolicyTextBlock
      contextRef="FD2019Q4YTD"
      id="TextSelection-24AA15BF352ACDB5FAD18095A1A7B182-0-wk-Fact-45E0D9D1784567937EB88095A17167E1">&lt;div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;text-decoration:underline;"&gt;Inventories&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&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 prices in the ordinary course of business, less reasonably predictable costs of completion, disposal, and transportation.&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&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 upon assumptions about future demand, product transitions, and market conditions, 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="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&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 would 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="FD2019Q4YTD"
      id="TextSelection-2C4ADAEFF1CEC196161A8095A1A72A26-0-wk-Fact-A31765549B007087570C8095A1724A8D">&lt;div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;text-decoration:underline;"&gt;Property, Plant, and Equipment&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&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 &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;39 years&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;, building improvements&#x2019; useful lives are &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;ten years&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;, and the useful lives of computer hardware and software, manufacturing test equipment, and furniture and fixtures range from &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;two&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt; to &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;ten years&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;.  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="FD2019Q4YTD_us-gaap_PropertyPlantAndEquipmentByTypeAxis_us-gaap_BuildingMember"
      id="d9048161e856-wk-Fact-FD1AF8B32F6A81ED8D4C84983DDF66FE">P39Y</us-gaap:PropertyPlantAndEquipmentUsefulLife>
    <us-gaap:PropertyPlantAndEquipmentUsefulLife
      contextRef="FD2019Q4YTD_us-gaap_PropertyPlantAndEquipmentByTypeAxis_us-gaap_BuildingImprovementsMember"
      id="d9048161e860-wk-Fact-A9A3EE6FC337DB34CC9684993C607109">P10Y</us-gaap:PropertyPlantAndEquipmentUsefulLife>
    <us-gaap:PropertyPlantAndEquipmentUsefulLife
      contextRef="FD2019Q4YTD_srt_RangeAxis_srt_MaximumMember_us-gaap_PropertyPlantAndEquipmentByTypeAxis_cgnx_ComputerHardwareAndSoftwareMember"
      id="d9048161e868-wk-Fact-B8B32C4A3AAA1125E495849A2E40AD48">P10Y</us-gaap:PropertyPlantAndEquipmentUsefulLife>
    <us-gaap:GoodwillAndIntangibleAssetsGoodwillPolicy
      contextRef="FD2019Q4YTD"
      id="TextSelection-3C65F29AB24511D9D2E58095A1A75C57-0-wk-Fact-A9F7118F7EBAD37215BD8095A1737A89">&lt;div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;text-decoration:underline;"&gt;Goodwill&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Goodwill is stated at cost.  The Company evaluates the possible 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 macroeconomic conditions, industry and market considerations, overall financial performance (both current and projected), changes in management or 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 amount, the entity 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 amount 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 upon a discounted cash flow model.  In addition, the Company uses the market approach, which compares the reporting unit to publicly-traded companies and transactions involving similar businesses, to support the conclusions based upon the income approach. &lt;/span&gt;&lt;/div&gt;</us-gaap:GoodwillAndIntangibleAssetsGoodwillPolicy>
    <us-gaap:IntangibleAssetsFiniteLivedPolicy
      contextRef="FD2019Q4YTD"
      id="TextSelection-F7E893AAE30B395A54A98095A1A7A02F-0-wk-Fact-00BE403EEDEE92D5C7C18095A1724A13">&lt;div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;text-decoration:underline;"&gt;Intangible Assets&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&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 upon facts and circumstances.  The useful lives of distribution networks range from &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;eleven&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt; to &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;twelve years&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;, of completed technologies from &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;five&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt; to &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;eight years&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;, of customer relationships from &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;five&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt; to &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;eight years&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;, of non-compete agreements from &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;three&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt; to &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;seven years&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;, and trademarks &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;two years&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;.  In-process technology is  an indefinite-lived intangible asset until the technology is finalized, at which point it is amortized over its estimated useful life.  The Company evaluates the possible impairment of long-lived assets, including intangible assets, whenever events or circumstances indicate the carrying value of the assets may not be recoverable. At the occurrence of a certain event or change in circumstances, the Company evaluates the potential impairment of an asset by estimating the future undiscounted cash flows expected to result from the use and eventual disposition of the asset.  If the sum of the estimated future cash flows is less than the carrying value, the Company determines the amount of such impairment by comparing the fair value of the asset to its carrying value.  The fair value is based upon the present value of the estimated future cash flows using a discount rate commensurate with the risks involved.&lt;/span&gt;&lt;/div&gt;</us-gaap:IntangibleAssetsFiniteLivedPolicy>
    <us-gaap:FiniteLivedIntangibleAssetUsefulLife
      contextRef="FD2019Q4YTD_srt_RangeAxis_srt_MaximumMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_DistributionRightsMember"
      id="d9048161e955-wk-Fact-DFDD58287F29FD2CDD5584A1BFDA6ECD">P12Y</us-gaap:FiniteLivedIntangibleAssetUsefulLife>
    <us-gaap:FiniteLivedIntangibleAssetUsefulLife
      contextRef="FD2019Q4YTD_srt_RangeAxis_srt_MaximumMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_cgnx_CompletedTechnologiesAndOtherIntangibleAssetsMember"
      id="d9048161e963-wk-Fact-95E4A50A4622CB52EFF584A331B6BBEF">P8Y</us-gaap:FiniteLivedIntangibleAssetUsefulLife>
    <us-gaap:FiniteLivedIntangibleAssetUsefulLife
      contextRef="FD2019Q4YTD_srt_RangeAxis_srt_MaximumMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_cgnx_CustomerContractsAndRelationshipsMember"
      id="d9048161e972-wk-Fact-FF90B40A29D6E8F7341D84A28D570ABB">P8Y</us-gaap:FiniteLivedIntangibleAssetUsefulLife>
    <us-gaap:FiniteLivedIntangibleAssetUsefulLife
      contextRef="FD2019Q4YTD_srt_RangeAxis_srt_MaximumMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_NoncompeteAgreementsMember"
      id="d9048161e980-wk-Fact-C86A251DA064F34B07FF166A0E9493FF">P7Y</us-gaap:FiniteLivedIntangibleAssetUsefulLife>
    <us-gaap:FiniteLivedIntangibleAssetUsefulLife
      contextRef="FD2019Q4YTD_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_TrademarksMember"
      id="d9048161e984-wk-Fact-CD33DC9EE00E4A97151E17BBD5AA6CF8">P2Y</us-gaap:FiniteLivedIntangibleAssetUsefulLife>
    <us-gaap:StandardProductWarrantyPolicy
      contextRef="FD2019Q4YTD"
      id="TextSelection-EB6F517A0A3A8450A51C8095A1A7C81B-0-wk-Fact-0A6CFCCF9B757A945A878095A173C6FF">&lt;div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;text-decoration:underline;"&gt;Warranty Obligations&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;The Company warrants its products to be free from defects in material and workmanship for periods primarily ranging from &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;one&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt; to &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;three years&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt; from the time of sale based upon 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 upon 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="FD2019Q4YTD_srt_RangeAxis_srt_MaximumMember"
      id="d9048161e1022-wk-Fact-BB51E65A25B9DC5596E684A9849BF7CB">P3Y</cgnx:ProductWarrantyPeriod>
    <us-gaap:CommitmentsAndContingenciesPolicyTextBlock
      contextRef="FD2019Q4YTD"
      id="TextSelection-3A4CE66C552C835C6C568095A1A788A2-0-wk-Fact-7EE89D1861D05EFEE9A48095A17307A2">&lt;div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;text-decoration:underline;"&gt;Contingencies&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&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, such as patent infringement matters, are expensed as incurred.&lt;/span&gt;&lt;/div&gt;</us-gaap:CommitmentsAndContingenciesPolicyTextBlock>
    <us-gaap:RevenueRecognitionPolicyTextBlock
      contextRef="FD2019Q4YTD"
      id="TextSelection-50D04527AC96CD36763A8095A1A77984-0-wk-Fact-37DFDB9EC4740E6FCBF58095A1732899">&lt;div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;text-decoration:underline;"&gt;Revenue Recognition&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&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="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-style:italic;"&gt;Identifying the Contract with the Customer&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:4px;text-align:justify;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&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.  &lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:8px;text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-style:italic;"&gt;Identifying the Performance Obligations in the Contract&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:4px;text-align:justify;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&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 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, logistics, and automotive industries.   &lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&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="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&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="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-style:italic;"&gt;Determining the Transaction Price&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:4px;text-align:justify;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&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="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&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 upon 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="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-style:italic;"&gt;Allocating the Transaction Price to the Performance Obligations&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:4px;text-align:justify;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&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="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-style:italic;"&gt;Recognizing Revenue When (or As) the Performance Obligations are Satisfied&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:4px;text-align:justify;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&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="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&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 will 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 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="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&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 specifications.  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 specifications 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="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&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 &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;30&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt; to &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;90 days&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt; 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 &lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;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="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&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="FD2019Q4YTD_srt_RangeAxis_srt_MinimumMember"
      id="d9048161e1126-wk-Fact-C99B0E67FF564BDD13B9166CD89104F3">P30D</cgnx:RevenuePaymentTerms>
    <cgnx:RevenuePaymentTerms
      contextRef="FD2019Q4YTD_srt_RangeAxis_srt_MaximumMember"
      id="d9048161e1130-wk-Fact-3AB561AFA4DA4BF79DC284AC29D4543C">P90D</cgnx:RevenuePaymentTerms>
    <us-gaap:ResearchDevelopmentAndComputerSoftwarePolicyTextBlock
      contextRef="FD2019Q4YTD"
      id="TextSelection-F9DB3B4200E09EA0FCAB8095A1A75D25-0-wk-Fact-A71C3C468CD36E9A013E8095A17130B5">&lt;div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;text-decoration:underline;"&gt;Research and Development&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Research and development costs for internally-developed or acquired products 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;</us-gaap:ResearchDevelopmentAndComputerSoftwarePolicyTextBlock>
    <us-gaap:AdvertisingCostsPolicyTextBlock
      contextRef="FD2019Q4YTD"
      id="TextSelection-D07CFD876B966ABA5B928095A1A76F27-0-wk-Fact-7A6F739C46031EBFA6C38095A1727B0D">&lt;div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;text-decoration:underline;"&gt;Advertising Costs&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Advertising costs are expensed as incurred and totaled &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;$1,385,000&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt; in &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;2019&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;, &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;$1,662,000&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt; in &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;2018&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;, and &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;$1,679,000&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt; in &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;2017&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;.&lt;/span&gt;&lt;/div&gt;</us-gaap:AdvertisingCostsPolicyTextBlock>
    <us-gaap:AdvertisingExpense
      contextRef="FD2019Q4YTD"
      decimals="0"
      id="d9048161e1179-wk-Fact-59F511D17B740660BB178095A172B329"
      unitRef="usd">1385000</us-gaap:AdvertisingExpense>
    <us-gaap:AdvertisingExpense
      contextRef="FD2018Q4YTD"
      decimals="0"
      id="d9048161e1187-wk-Fact-063E5FA12E68C9561DE48095A1723F85"
      unitRef="usd">1662000</us-gaap:AdvertisingExpense>
    <us-gaap:AdvertisingExpense
      contextRef="FD2017Q4YTD"
      decimals="0"
      id="d9048161e1195-wk-Fact-46712EF71DEA06189C0C8095A172DB75"
      unitRef="usd">1679000</us-gaap:AdvertisingExpense>
    <us-gaap:ShareBasedCompensationOptionAndIncentivePlansPolicy
      contextRef="FD2019Q4YTD"
      id="TextSelection-81426F43D981050B32668095A1A76EA7-0-wk-Fact-406A14248BAB9310E7808095A172C46A">&lt;div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;text-decoration:underline;"&gt;Stock-Based Compensation&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;The Company&#x2019;s stock-based awards that result in compensation expense consist of stock options and restricted stock units (RSUs).  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 restricted stock units.  When a stock option is exercised or a restricted stock unit is settled, the Company issues new shares from this pool.  The fair values of stock options are estimated on the grant date using a binomial lattice model.  Management is responsible for determining the appropriate valuation model and estimating these fair values, and in doing so, considers a number of factors, including information provided by an outside valuation advisor.  The fair value of RSUs are determined based upon the market value of the Company's common stock on the grant date. &lt;/span&gt;&lt;/div&gt;The Company recognizes compensation expense related to stock options and RSUs 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 upon 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 upon the employee&#x2019;s service, and an increase or decrease to compensation expense is recorded </us-gaap:ShareBasedCompensationOptionAndIncentivePlansPolicy>
    <us-gaap:IncomeTaxPolicyTextBlock
      contextRef="FD2019Q4YTD"
      id="TextSelection-E98911F286AF7AE29A9D8095A1A7D694-0-wk-Fact-58DA73D46B068E7B8F888095A1737D08">&lt;div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;text-decoration:underline;"&gt;Taxes&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&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="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&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="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Deferred tax assets and liabilities are determined based upon 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 upon 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="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;In December 2017, the Tax Cuts and Jobs Act (&#x201c;Tax Act&#x201d;) was signed into law. The Tax Act imposed a minimum tax on foreign earnings related to intangible assets, known as the Global Intangible Low-Taxed Income (GILTI) tax  In the fourth quarter of 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 the third quarter of 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="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&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="FD2019Q4YTD"
      id="TextSelection-F8A77325D5A8F0A148F98095A1A73BE2-0-wk-Fact-9F4405D67977B563C5A18095A17272DD">&lt;div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;text-decoration:underline;"&gt;Net Income Per Share&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&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="FD2019Q4YTD"
      id="TextSelection-03EF1EF938B4FE3C0DB98095A1A77743-0-wk-Fact-B15B063D62F0FFAFF1698095A173C45F">&lt;div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;text-decoration:underline;"&gt;Comprehensive Income&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&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 &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;$38,027,000&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt; and &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;$37,486,000&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;, as of December 31, &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;2019&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt; and December 31, &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;2018&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;, respectively; net unrealized gains on available-for-sale investments of &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;$2,023,000&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt; as of December 31, 2019 and net unrealized losses on available-for-sale investments of &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;$1,744,000&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt; as of December 31, 2018; and losses on currency swaps, net of gains on long-term intercompany loans of &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;$1,271,000&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt; at each year end.&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Amounts reclassified from accumulated other comprehensive income (loss) to investment income on the Consolidated Statements of Operations were net realized gains of &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;$1,452,000&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;, &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;$501,000&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;, and &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;$829,000&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt; for &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;2019&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;, &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;2018&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;, and &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;2017&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;, respectively.&lt;/span&gt;&lt;/div&gt;</us-gaap:ComprehensiveIncomePolicyPolicyTextBlock>
    <us-gaap:AccumulatedOtherComprehensiveIncomeLossForeignCurrencyTranslationAdjustmentNetOfTax
      contextRef="FI2019Q4"
      decimals="0"
      id="d9048161e1309-wk-Fact-C75286CF4CCA602492E18095A172726A"
      unitRef="usd">38027000</us-gaap:AccumulatedOtherComprehensiveIncomeLossForeignCurrencyTranslationAdjustmentNetOfTax>
    <us-gaap:AccumulatedOtherComprehensiveIncomeLossForeignCurrencyTranslationAdjustmentNetOfTax
      contextRef="FI2018Q4"
      decimals="0"
      id="d9048161e1313-wk-Fact-A81B61C66B8A268051C38095A172B7D7"
      unitRef="usd">37486000</us-gaap:AccumulatedOtherComprehensiveIncomeLossForeignCurrencyTranslationAdjustmentNetOfTax>
    <us-gaap:AccumulatedOtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax
      contextRef="FI2019Q4"
      decimals="0"
      id="d9048161e1325-wk-Fact-926836B2AB8E6639A5228095A1737F96"
      unitRef="usd">2023000</us-gaap:AccumulatedOtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax>
    <us-gaap:AccumulatedOtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax
      contextRef="FI2018Q4"
      decimals="0"
      id="d9048161e1330-wk-Fact-03F10BB1CC0BE4FB51D98095A172D26A"
      unitRef="usd">1744000</us-gaap:AccumulatedOtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax>
    <us-gaap:AdjustmentForLongTermIntercompanyTransactionsNetOfTax
      contextRef="FD2019Q4YTD"
      decimals="0"
      id="d9048161e1334-wk-Fact-DE1E6A659BBE7554AA708095A173B140"
      unitRef="usd">1271000</us-gaap:AdjustmentForLongTermIntercompanyTransactionsNetOfTax>
    <us-gaap:OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax
      contextRef="FD2019Q4YTD_us-gaap_StatementEquityComponentsAxis_us-gaap_AccumulatedOtherComprehensiveIncomeMember"
      decimals="0"
      id="d9048161e1347-wk-Fact-2228B7B68FD5B30AA9188095A174473D"
      unitRef="usd">1452000</us-gaap:OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax>
    <us-gaap:OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax
      contextRef="FD2018Q4YTD_us-gaap_StatementEquityComponentsAxis_us-gaap_AccumulatedOtherComprehensiveIncomeMember"
      decimals="0"
      id="d9048161e1351-wk-Fact-BC33E1FE46D39FE120358095A173453F"
      unitRef="usd">501000</us-gaap:OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax>
    <us-gaap:OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax
      contextRef="FD2017Q4YTD_us-gaap_StatementEquityComponentsAxis_us-gaap_AccumulatedOtherComprehensiveIncomeMember"
      decimals="0"
      id="d9048161e1355-wk-Fact-A180BBA40FED5AB07FC48095A1733D93"
      unitRef="usd">829000</us-gaap:OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax>
    <cgnx:ConcentrationsOfRiskPolicyPolicyTextBlock
      contextRef="FD2019Q4YTD"
      id="TextSelection-FF6FECC82F1BEF4C3CCA8095A1A70E08-0-wk-Fact-980E51F904F4C78DAD448095A1739D5C">&lt;div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;text-decoration:underline;"&gt;Concentrations of Risk&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Financial instruments that potentially subject the Company to concentrations of credit risk consist primarily of cash, cash equivalents, investments, and trade receivables.  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 not experienced any significant realized losses on its debt securities.&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;The Company performs ongoing credit evaluations of its customers and maintains allowances for potential credit losses. The Company has not experienced any significant losses related to the collection of its accounts receivable.&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;A significant portion of the Company's product is manufactured by a third-party contractor located in Indonesia.  This contractor has agreed to provide Cognex with termination notification periods and last-time-buy rights, if and when that may be applicable.  We rely upon this contractor to provide quality product and meet delivery schedules.  We engage in extensive product quality programs and processes, including actively monitoring the performance of our third-party manufacturers; however, we may not detect all product quality issues through these programs and processes.&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Certain components are presently sourced from a single vendor that is selected based on price and performance considerations.  In the event of a supply disruption from a single-source vendor, these components may be purchased from alternative vendors, which may result in manufacturing delays based on the lead time of the new vendor.  Certain &lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;key electronic and mechanical components that are purchased from strategic suppliers, such as processors or imagers, are fundamental to the design of Cognex products.  A disruption in the supply of these key components, such as a last-time-buy announcement, natural disaster, financial bankruptcy, or other event, may require us to purchase a significant amount of inventory at unfavorable prices resulting in lower gross margins and higher risk of carrying excess inventory.  If we are unable to secure adequate supply from alternative sources, we may have to redesign our products, which may lead to a delay in manufacturing and a possible loss of sales.&lt;/span&gt;&lt;/div&gt;</cgnx:ConcentrationsOfRiskPolicyPolicyTextBlock>
    <us-gaap:DerivativesPolicyTextBlock
      contextRef="FD2019Q4YTD"
      id="TextSelection-9FB8408E9EAAD2289E078095A1A7F820-0-wk-Fact-7F98C3918E612C8325E38095A173854E">&lt;div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;text-decoration:underline;"&gt;Derivative Instruments&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Derivative instruments are recorded on the Consolidated Balance Sheets at fair value.  Changes in the fair value of derivatives are recorded each period in current operations or in shareholders' equity as other comprehensive income (loss), depending upon whether the derivative is designated as a hedge transaction and, if it is, the effectiveness of the hedge.  At the inception of the contract, the Company designates foreign currency forward exchange contracts as either a cash flow hedge of certain forecasted foreign currency denominated sales and purchase transactions or as an economic hedge.  Changes in the fair value of a derivative that is highly effective and that is designated and qualifies as a cash flow hedge are recorded in shareholders' equity as other comprehensive income (loss), and reclassified into current operations in the same period during which the hedged transaction affects current operations and in the same financial statement line item as that of the forecasted transaction.  Cash flow hedges are evaluated for effectiveness quarterly.  Any hedge ineffectiveness (which represents the amount by which the changes in the fair value of the derivative exceed the variability in the cash flows of the forecasted transaction) is recorded in current operations in the period in which ineffectiveness is determined.  Changes in the fair value of the Company&#x2019;s economic hedges (not designated as a cash flow hedge) are reported in current operations.  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="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;The Company formally documents all relationships between hedging instruments and hedged items, as well as its risk-management objective and strategy for undertaking various hedge transactions.  This process includes linking all derivatives that are designated as cash flow hedges to specific forecasted transactions.  The Company also formally assesses (both at the hedge&#x2019;s inception and on an ongoing basis) whether the derivatives that are used in hedging transactions have been highly effective in offsetting changes in the fair value or cash flows of hedged items and whether those derivatives may be expected to remain highly effective in future periods.  When it is determined that a derivative is not (or has ceased to be) highly effective as a hedge, the Company discontinues hedge accounting prospectively, as discussed below.&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;The Company discontinues hedge accounting prospectively when (1) it determines that the derivative is no longer effective in offsetting changes in the cash flows of a hedged item; (2) the derivative expires or is sold, terminated, or exercised; (3) it is no longer probable that the forecasted transaction will occur; or (4) management determines that designating the derivative as a hedging instrument is no longer appropriate or desired.  When the Company discontinues hedge accounting because it is no longer probable that the forecasted transaction will occur in the originally expected period, the gain or loss on the derivative remains in accumulated other comprehensive income (loss) and is reclassified into current operations when the forecasted transaction affects current operations.  However, if it is probable that a forecasted transaction will not occur by the end of the originally specified time period or within an additional two-month period of time thereafter, the gain or loss that was accumulated in other comprehensive income (loss) is recognized immediately in current operations.  In all situations in which hedge accounting is discontinued and the derivative remains outstanding, the Company carries the derivative at fair value on the Consolidated Balance Sheets, recognizing changes in the fair value in current operations, unless it is designated in a new hedging relationship.&lt;/span&gt;&lt;/div&gt;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.  Accordingly, cash flow hedges are presented net on the Consolidated Balance Sheets.</us-gaap:DerivativesPolicyTextBlock>
    <us-gaap:BusinessCombinationsPolicy
      contextRef="FD2019Q4YTD"
      id="TextSelection-4D0ABEAB4F902A319BEE8095A1A7E7CD-0-wk-Fact-BEF3EFFA23BB2A0215D78095A1738DBB">&lt;div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;text-decoration:underline;"&gt;Business Acquisitions&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&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 contriubte 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 &lt;/span&gt;&lt;/div&gt;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 upon 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 upon 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 each reporting period with changes in fair value recorded 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:NewAccountingPronouncementsAndChangesInAccountingPrinciplesTextBlock
      contextRef="FD2019Q4YTD"
      id="TextSelection-961D4CB619002D60F03E8095A1A7C3D3-0-wk-Fact-0F8902A60E561E9375568095A18F2EC1"> New Pronouncements&lt;div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;text-decoration:underline;"&gt;Accounting Standards Update (ASU) 2016-13, "Financial Instruments - Measurement of Credit Losses"&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;ASU 2016-13 applies to all reporting entities holding financial assets that are not accounted for at fair value through net income.&#160; The amendments in this ASU eliminate the probable initial recognition threshold to recognize a credit loss under current GAAP and, instead, reflect an entity&#x2019;s current estimate of all expected credit losses.  In addition, this ASU broadens the information an entity must consider in developing the credit loss estimate, including the use of reasonable and supportable forecasted information.&#160; The amendments in this ASU require that credit losses be presented as an allowance rather than as a write-down, and an entity will be able to record reversals of credit losses in current period net income.  The guidance in this ASU is effective for annual periods, and interim periods within those annual periods, beginning after December 15, 2019.&#160; This ASU should be applied through a cumulative-effect adjustment to retained earnings as of the beginning of the first reporting period in which the guidance is effective. Available-for-sale debt securities and  accounts receivable are the account balances primarily impacted by the guidance in this ASU.  Management adopted this ASU on January 1, 2020, and we do not expect this ASU to have a material impact on the Company's consolidated financial statements and disclosures. &lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;text-decoration:underline;"&gt;Accounting Standards Update (ASU) 2018-15, "Intangibles - Goodwill and Other - Internal-Use Software"&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;ASU 2018-15 applies to entities that are a customer in a hosting arrangement that is a service contract.  The amendments  in this ASU align the requirements for capitalizing implementation costs incurred in a hosting arrangement that is a service contract with the requirements for capitalizing implementation costs incurred to develop or obtain internal-use software.  Accordingly, the amendments in this ASU require an entity in a hosting arrangement that is a service contract to follow the guidance in Subtopic 350-40 to determine which implementation costs to capitalize as an asset related to the service contract and which costs to expense. Further, it requires the entity to expense the capitalized implementation costs over the term of the hosting arrangement.  In addition, it requires the presentation of the expenses related to the capitalized implementation costs in the same line item in the statement of income as the fees associated with the hosting element of the arrangement and the classification of the payments for the capitalized implementation costs in the statement of cash flows in the same manner as the payments made for the fees associated with the hosting element.  The amendments in this ASU are effective for public entities for annual periods, and for interim periods within those annual periods, beginning after December 15, 2019.  Management adopted this ASU on January 1, 2020, and we do not expect this ASU to have a material impact on the Company's consolidated financial statements and disclosures.&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;text-decoration:underline;"&gt;Accounting Standards Update (ASU) 2019-12, "Simplifying the Accounting for Income Taxes"&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;ASU 2019-12 applies to all entities within the scope of Topic 740, Income Taxes.  The amendments in this ASU simplify the accounting for income taxes by removing the following exceptions: 1) exception to the incremental approach for intraperiod tax allocation when there is a loss from continuing operations and income or a gain from other items; 2) exception to the requirement to recognize a deferred tax liability for equity method investments when a foreign subsidiary becomes an equity method investment; 3) exception to the ability not to recognize a deferred tax liability for a foreign subsidiary when a foreign equity method investment becomes a subsidiary; and 4) exception to the general methodology for calculating income taxes in an interim period when a year-to-date loss exceeds the anticipated loss for the year.  The amendments in this ASU also simplify the accounting for income taxes by doing the following: 1) requiring that an entity recognize a franchise tax that is partially based on income as an income-based tax and account for any incremental amount incurred as a non-income-based tax; 2) requiring that an entity evaluate when a step up in the tax basis of goodwill should be considered part of the business combination in which the book goodwill was originally recognized and when it should be considered a separate transaction; 3) specifying that an entity is not required to allocate the consolidated amount of current and deferred tax expense to a legal entity that is not subject to tax in its separate financial statements; and 4) requiring that an entity reflect the effect of an enacted change in tax laws or rates in the annual effective tax rate computation in the interim period that included the enacted date.  The amendments in this ASU are effective for public companies for annual periods, and interim periods within those annual periods, beginning after December 15, 2020.  Early adoption is permitted; however, an entity that elects to early adopt the amendments must adopt all the amendments in the same period. The amendments in this ASU related to separate financial statements of legal entities that are not subject to tax should be applied on a retrospective basis for all periods presented. The amendments related to changes in ownership of foreign equity method investments or foreign subsidiaries should be applied on a modified retrospective basis through a cumulative-effect adjustment to retained earnings as of the beginning of the fiscal year of adoption. The amendments related to franchise taxes that are partially based on income should be applied on either a retrospective basis for all periods presented or a modified retrospective basis through a cumulative-effect adjustment to retained earnings as of the beginning of the fiscal year of adoption. All other amendments should be applied on a prospective basis.   Management does not expect ASU 2019-12 to have a material impact on the Company's consolidated financial statements and disclosures.&lt;/span&gt;&lt;/div&gt;</us-gaap:NewAccountingPronouncementsAndChangesInAccountingPrinciplesTextBlock>
    <us-gaap:FairValueDisclosuresTextBlock
      contextRef="FD2019Q4YTD"
      id="TextSelection-090EC2082490AB2BE1E18095A1A76373-0-wk-Fact-054713FBD610A85E23738095A173CCB2">Fair Value Measurements&lt;div style="line-height:120%;padding-top:6px;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;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="line-height:120%;padding-top:6px;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;The following table summarizes the financial assets and liabilities measured at fair value on a recurring basis as of December&#160;31, &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;color:#000000;text-decoration:none;"&gt;2019&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt; (in thousands):&lt;/span&gt;&lt;div style="padding-left:0px;text-indent:0px;line-height:normal;padding-top:10px;"&gt;&lt;table cellpadding="0" cellspacing="0" style="font-family:Times New Roman;font-size:10pt;width:93.56725146198829%;border-collapse:collapse;text-align:left;"&gt;&lt;tr&gt;&lt;td colspan="12"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="width:50%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:14%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:14%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:14%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;span style="font-family:Arial;font-size:8pt;font-weight:bold;"&gt;Quoted&#160;Prices&#160;in&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;span style="font-family:Arial;font-size:8pt;font-weight:bold;"&gt;Active Markets&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;span style="font-family:Arial;font-size:8pt;font-weight:bold;"&gt;for Identical&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;span style="font-family:Arial;font-size:8pt;font-weight:bold;"&gt;Assets (Level&#160;1)&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;span style="font-family:Arial;font-size:8pt;font-weight:bold;"&gt;Significant&#160;Other&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;span style="font-family:Arial;font-size:8pt;font-weight:bold;"&gt;Observable&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;span style="font-family:Arial;font-size:8pt;font-weight:bold;"&gt;Inputs (Level&#160;2)&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;span style="font-family:Arial;font-size:8pt;font-weight:bold;"&gt;Unobservable Inputs                       (Level 3)&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Assets:&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Money market instruments&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;15,933&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;&#x2014;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&#x2014;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Treasury bills&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;&#x2014;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;309,248&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Corporate bonds&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;&#x2014;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;212,098&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&#x2014;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Asset-backed securities&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;&#x2014;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;113,083&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&#x2014;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Sovereign bonds&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;&#x2014;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;22,299&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&#x2014;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Municipal bonds&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;&#x2014;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;6,952&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Agency bonds&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;&#x2014;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;5,914&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&#x2014;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Certificate of deposit&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;span&gt;&#x2014;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;4,328&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&#x2014;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Economic hedge forward contracts&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;span&gt;&lt;/span&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;857&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&#x2014;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Liabilities:&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Economic hedge forward contracts&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;&#x2014;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;23&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&#x2014;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Contingent consideration liabilities&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;&#x2014;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;&#x2014;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;1,153&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:120%;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:120%;text-align:justify;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;The Company&#x2019;s money market instruments are reported at fair value based upon 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="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;The Company&#x2019;s debt securities and forward contracts are reported at fair value based upon 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.  The Company's certificate of deposit is valued at cost, which approximates fair value given its short term to maturity.&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;The Company did not record an other-than-temporary impairment of these financial assets in &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;2019&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;, &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;2018&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;, or &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;2017&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;.&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;The Company's contingent consideration liabilities are reported at fair value based upon 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.  Key assumptions used in these estimates include probability assessments with respect to the likelihood of achieving certain revenue milestones.  The fair values of these contingent consideration liabilities were calculated using discount rates consistent with the level of risk of achievement, and are remeasured each reporting period with changes in fair value recorded in "Other income (expense)" on the Consolidated Statements of Operations. &lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;The following table summarizes the activity for the Company's liabilities measured at fair value using Level 3 inputs (in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"&gt;&lt;div style="padding-left:0px;text-indent:0px;line-height:normal;padding-top:10px;"&gt;&lt;table cellpadding="0" cellspacing="0" style="font-family:Times New Roman;font-size:10pt;width:100%;border-collapse:collapse;text-align:left;"&gt;&lt;tr&gt;&lt;td colspan="4"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="width:86%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:12%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Balance as of December 31, 2017&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;3,557&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Payment of GVi contingent consideration&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;(1,000&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;)&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Fair value adjustment to GVi contingent consideration&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;1,065&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Fair value adjustment to Manatee contingent consideration&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;(1,350&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;)&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Fair value adjustment to Chiaro contingent consideration&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;282&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Balance as of December 31, 2018&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;2,554&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Fair value adjustment to GVi contingent consideration&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;(1,646&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;)&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Fair value adjustment to Chiaro contingent consideration&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;245&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Balance as of December 31, 2019&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;1,153&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;border-top:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;The contingent consideration liability as of December 31, 2019 in the amount of &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;$1,153,000&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt; relates to the Company's acquisition of Chiaro Techologies, LLC in 2016.  The undiscounted potential outcomes related to the contingent consideration range from &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;$0&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt; to &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;$1,250,000&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt; based upon certain milestone revenue levels to be paid in 2020 if earned. &lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;text-decoration:underline;"&gt;Non-financial Assets that are Measured at Fair Value on a Non-recurring Basis&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Non-financial assets such as property, plant, and equipment, goodwill, and intangible assets are required to be measured at fair value only when an impairment loss is recognized. In 2017, the Company determined that the carrying value of the customer relationships arising from the acquisition of AQSense, S.L. was impaired and reduced this value to zero, resulting in an impairment charge of &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;$469,000&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;.  The Company did not record an impairment charge related to non-financial assets in &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;2019&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt; or 2018. &lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Refer to Note 21 to the Consolidated Financial Statements for further information regarding acquisitions.&lt;/span&gt;&lt;/div&gt;</us-gaap:FairValueDisclosuresTextBlock>
    <us-gaap:ScheduleOfFairValueAssetsAndLiabilitiesMeasuredOnRecurringBasisTableTextBlock
      contextRef="FD2019Q4YTD"
      id="TextSelection-313F86F5E8A26A38FF828095A1A7CAC6-0-wk-Fact-4A289548F609A711F6AB8095A173F87E">&lt;div style="line-height:120%;padding-top:6px;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;The following table summarizes the financial assets and liabilities measured at fair value on a recurring basis as of December&#160;31, &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;color:#000000;text-decoration:none;"&gt;2019&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt; (in thousands):&lt;/span&gt;&lt;div style="padding-left:0px;text-indent:0px;line-height:normal;padding-top:10px;"&gt;&lt;table cellpadding="0" cellspacing="0" style="font-family:Times New Roman;font-size:10pt;width:93.56725146198829%;border-collapse:collapse;text-align:left;"&gt;&lt;tr&gt;&lt;td colspan="12"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="width:50%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:14%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:14%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:14%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;span style="font-family:Arial;font-size:8pt;font-weight:bold;"&gt;Quoted&#160;Prices&#160;in&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;span style="font-family:Arial;font-size:8pt;font-weight:bold;"&gt;Active Markets&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;span style="font-family:Arial;font-size:8pt;font-weight:bold;"&gt;for Identical&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;span style="font-family:Arial;font-size:8pt;font-weight:bold;"&gt;Assets (Level&#160;1)&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;span style="font-family:Arial;font-size:8pt;font-weight:bold;"&gt;Significant&#160;Other&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;span style="font-family:Arial;font-size:8pt;font-weight:bold;"&gt;Observable&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;span style="font-family:Arial;font-size:8pt;font-weight:bold;"&gt;Inputs (Level&#160;2)&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;span style="font-family:Arial;font-size:8pt;font-weight:bold;"&gt;Unobservable Inputs                       (Level 3)&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Assets:&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Money market instruments&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;15,933&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;&#x2014;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&#x2014;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Treasury bills&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;&#x2014;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;309,248&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Corporate bonds&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;&#x2014;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;212,098&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&#x2014;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Asset-backed securities&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;&#x2014;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;113,083&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&#x2014;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Sovereign bonds&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;&#x2014;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;22,299&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&#x2014;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Municipal bonds&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;&#x2014;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;6,952&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Agency bonds&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;&#x2014;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;5,914&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&#x2014;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Certificate of deposit&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;span&gt;&#x2014;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;4,328&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&#x2014;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Economic hedge forward contracts&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;span&gt;&lt;/span&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;857&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&#x2014;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Liabilities:&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Economic hedge forward contracts&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;&#x2014;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;23&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&#x2014;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Contingent consideration liabilities&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;&#x2014;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;&#x2014;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;1,153&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;</us-gaap:ScheduleOfFairValueAssetsAndLiabilitiesMeasuredOnRecurringBasisTableTextBlock>
    <cgnx:MoneyMarketInstrumentsFairValueDisclosure
      contextRef="FI2019Q4_us-gaap_FairValueByFairValueHierarchyLevelAxis_us-gaap_FairValueInputsLevel1Member_us-gaap_FairValueByMeasurementFrequencyAxis_us-gaap_FairValueMeasurementsRecurringMember"
      decimals="-3"
      id="d9049532e830-wk-Fact-9043A597EC894121FF838095A17B9B37"
      unitRef="usd">15933000</cgnx:MoneyMarketInstrumentsFairValueDisclosure>
    <cgnx:MoneyMarketInstrumentsFairValueDisclosure
      contextRef="FI2019Q4_us-gaap_FairValueByFairValueHierarchyLevelAxis_us-gaap_FairValueInputsLevel2Member_us-gaap_FairValueByMeasurementFrequencyAxis_us-gaap_FairValueMeasurementsRecurringMember"
      decimals="-3"
      id="d9049532e849-wk-Fact-E350826669D0058E1F978095A17B460D"
      unitRef="usd">0</cgnx:MoneyMarketInstrumentsFairValueDisclosure>
    <cgnx:TreasuryBillsFairValueDisclosure
      contextRef="FI2019Q4_us-gaap_FairValueByFairValueHierarchyLevelAxis_us-gaap_FairValueInputsLevel1Member_us-gaap_FairValueByMeasurementFrequencyAxis_us-gaap_FairValueMeasurementsRecurringMember"
      decimals="-3"
      id="d9049532e884-wk-Fact-C499F35F3E0EC0D3610F910720C35DFF"
      unitRef="usd">0</cgnx:TreasuryBillsFairValueDisclosure>
    <cgnx:TreasuryBillsFairValueDisclosure
      contextRef="FI2019Q4_us-gaap_FairValueByFairValueHierarchyLevelAxis_us-gaap_FairValueInputsLevel2Member_us-gaap_FairValueByMeasurementFrequencyAxis_us-gaap_FairValueMeasurementsRecurringMember"
      decimals="-3"
      id="d9049532e903-wk-Fact-C8D92CB3D0D4AEE5170B9106E26756FD"
      unitRef="usd">309248000</cgnx:TreasuryBillsFairValueDisclosure>
    <cgnx:CorporateBondsFairValueDisclosure
      contextRef="FI2019Q4_us-gaap_FairValueByFairValueHierarchyLevelAxis_us-gaap_FairValueInputsLevel1Member_us-gaap_FairValueByMeasurementFrequencyAxis_us-gaap_FairValueMeasurementsRecurringMember"
      decimals="-3"
      id="d9049532e944-wk-Fact-7552B1143D57DAE05F6D8095A171C4EB"
      unitRef="usd">0</cgnx:CorporateBondsFairValueDisclosure>
    <cgnx:CorporateBondsFairValueDisclosure
      contextRef="FI2019Q4_us-gaap_FairValueByFairValueHierarchyLevelAxis_us-gaap_FairValueInputsLevel2Member_us-gaap_FairValueByMeasurementFrequencyAxis_us-gaap_FairValueMeasurementsRecurringMember"
      decimals="-3"
      id="d9049532e963-wk-Fact-E484481256651AEC0CA68095A17BD858"
      unitRef="usd">212098000</cgnx:CorporateBondsFairValueDisclosure>
    <cgnx:AssetBackedSecuritiesFairValueDisclosure
      contextRef="FI2019Q4_us-gaap_FairValueByFairValueHierarchyLevelAxis_us-gaap_FairValueInputsLevel1Member_us-gaap_FairValueByMeasurementFrequencyAxis_us-gaap_FairValueMeasurementsRecurringMember"
      decimals="-3"
      id="d9049532e1003-wk-Fact-0E610EF523D36E2B89268095A17079CC"
      unitRef="usd">0</cgnx:AssetBackedSecuritiesFairValueDisclosure>
    <cgnx:AssetBackedSecuritiesFairValueDisclosure
      contextRef="FI2019Q4_us-gaap_FairValueByFairValueHierarchyLevelAxis_us-gaap_FairValueInputsLevel2Member_us-gaap_FairValueByMeasurementFrequencyAxis_us-gaap_FairValueMeasurementsRecurringMember"
      decimals="-3"
      id="d9049532e1022-wk-Fact-030A6D047319144A714E8095A17B14A7"
      unitRef="usd">113083000</cgnx:AssetBackedSecuritiesFairValueDisclosure>
    <cgnx:SovereignBondsFairValueDisclosure
      contextRef="FI2019Q4_us-gaap_FairValueByFairValueHierarchyLevelAxis_us-gaap_FairValueInputsLevel1Member_us-gaap_FairValueByMeasurementFrequencyAxis_us-gaap_FairValueMeasurementsRecurringMember"
      decimals="-3"
      id="d9049532e1062-wk-Fact-7AEB2C3B2AEE13077A6F8095A17AB2F4"
      unitRef="usd">0</cgnx:SovereignBondsFairValueDisclosure>
    <cgnx:SovereignBondsFairValueDisclosure
      contextRef="FI2019Q4_us-gaap_FairValueByFairValueHierarchyLevelAxis_us-gaap_FairValueInputsLevel2Member_us-gaap_FairValueByMeasurementFrequencyAxis_us-gaap_FairValueMeasurementsRecurringMember"
      decimals="-3"
      id="d9049532e1081-wk-Fact-5DB20320732E1C8C1CA38095A171DC92"
      unitRef="usd">22299000</cgnx:SovereignBondsFairValueDisclosure>
    <cgnx:MunicipalBondsFairValueDisclosure
      contextRef="FI2019Q4_us-gaap_FairValueByFairValueHierarchyLevelAxis_us-gaap_FairValueInputsLevel1Member_us-gaap_FairValueByMeasurementFrequencyAxis_us-gaap_FairValueMeasurementsRecurringMember"
      decimals="-3"
      id="d9049532e1121-wk-Fact-C57581B7879EAD2433819107A880F4B6"
      unitRef="usd">0</cgnx:MunicipalBondsFairValueDisclosure>
    <cgnx:MunicipalBondsFairValueDisclosure
      contextRef="FI2019Q4_us-gaap_FairValueByFairValueHierarchyLevelAxis_us-gaap_FairValueInputsLevel2Member_us-gaap_FairValueByMeasurementFrequencyAxis_us-gaap_FairValueMeasurementsRecurringMember"
      decimals="-3"
      id="d9049532e1140-wk-Fact-D323AE1417668AF44B5C9107AC6AE4A2"
      unitRef="usd">6952000</cgnx:MunicipalBondsFairValueDisclosure>
    <cgnx:AgencyBondsFairValueDisclosure
      contextRef="FI2019Q4_us-gaap_FairValueByFairValueHierarchyLevelAxis_us-gaap_FairValueInputsLevel1Member_us-gaap_FairValueByMeasurementFrequencyAxis_us-gaap_FairValueMeasurementsRecurringMember"
      decimals="-3"
      id="d9049532e1181-wk-Fact-9753CF14B729E206E9488095A1719797"
      unitRef="usd">0</cgnx:AgencyBondsFairValueDisclosure>
    <cgnx:AgencyBondsFairValueDisclosure
      contextRef="FI2019Q4_us-gaap_FairValueByFairValueHierarchyLevelAxis_us-gaap_FairValueInputsLevel2Member_us-gaap_FairValueByMeasurementFrequencyAxis_us-gaap_FairValueMeasurementsRecurringMember"
      decimals="-3"
      id="d9049532e1200-wk-Fact-E135C979C2402A0712188095A171AE1A"
      unitRef="usd">5914000</cgnx:AgencyBondsFairValueDisclosure>
    <cgnx:CertificateOfDepositFairValueDisclosure
      contextRef="FI2019Q4_us-gaap_FairValueByFairValueHierarchyLevelAxis_us-gaap_FairValueInputsLevel1Member_us-gaap_FairValueByMeasurementFrequencyAxis_us-gaap_FairValueMeasurementsRecurringMember"
      decimals="-3"
      id="d9049532e1240-wk-Fact-248D10A168F97775AD2EF3D363199F33"
      unitRef="usd">0</cgnx:CertificateOfDepositFairValueDisclosure>
    <cgnx:CertificateOfDepositFairValueDisclosure
      contextRef="FI2019Q4_us-gaap_FairValueByFairValueHierarchyLevelAxis_us-gaap_FairValueInputsLevel2Member_us-gaap_FairValueByMeasurementFrequencyAxis_us-gaap_FairValueMeasurementsRecurringMember"
      decimals="-3"
      id="d9049532e1259-wk-Fact-A1DA6A1433807ED447F2F3D3654BB3E0"
      unitRef="usd">4328000</cgnx:CertificateOfDepositFairValueDisclosure>
    <us-gaap:ForeignCurrencyContractAssetFairValueDisclosure
      contextRef="FI2019Q4_us-gaap_FairValueByFairValueHierarchyLevelAxis_us-gaap_FairValueInputsLevel1Member_us-gaap_FairValueByMeasurementFrequencyAxis_us-gaap_FairValueMeasurementsRecurringMember"
      id="d9049532e1299-wk-Fact-7C2A1EB22861B747FBD58095A171D290"
      unitRef="usd"
      xsi:nil="true"/>
    <us-gaap:ForeignCurrencyContractAssetFairValueDisclosure
      contextRef="FI2019Q4_us-gaap_FairValueByFairValueHierarchyLevelAxis_us-gaap_FairValueInputsLevel2Member_us-gaap_FairValueByMeasurementFrequencyAxis_us-gaap_FairValueMeasurementsRecurringMember"
      decimals="-3"
      id="d9049532e1318-wk-Fact-173198BF16DAB13768438095A170668E"
      unitRef="usd">857000</us-gaap:ForeignCurrencyContractAssetFairValueDisclosure>
    <us-gaap:ForeignCurrencyContractsLiabilityFairValueDisclosure
      contextRef="FI2019Q4_us-gaap_FairValueByFairValueHierarchyLevelAxis_us-gaap_FairValueInputsLevel1Member_us-gaap_FairValueByMeasurementFrequencyAxis_us-gaap_FairValueMeasurementsRecurringMember"
      decimals="-3"
      id="d9049532e1421-wk-Fact-7ED329B688920FCF8D988095A17124FA"
      unitRef="usd">0</us-gaap:ForeignCurrencyContractsLiabilityFairValueDisclosure>
    <us-gaap:ForeignCurrencyContractsLiabilityFairValueDisclosure
      contextRef="FI2019Q4_us-gaap_FairValueByFairValueHierarchyLevelAxis_us-gaap_FairValueInputsLevel2Member_us-gaap_FairValueByMeasurementFrequencyAxis_us-gaap_FairValueMeasurementsRecurringMember"
      decimals="-3"
      id="d9049532e1440-wk-Fact-36DA13874530C08F99368095A170B373"
      unitRef="usd">23000</us-gaap:ForeignCurrencyContractsLiabilityFairValueDisclosure>
    <us-gaap:BusinessCombinationContingentConsiderationLiability
      contextRef="FI2019Q4_us-gaap_FairValueByFairValueHierarchyLevelAxis_us-gaap_FairValueInputsLevel1Member_us-gaap_FairValueByMeasurementFrequencyAxis_us-gaap_FairValueMeasurementsRecurringMember"
      decimals="-3"
      id="d9049532e1480-wk-Fact-46193CB9DE3A33F8EDFE8095A17102EC"
      unitRef="usd">0</us-gaap:BusinessCombinationContingentConsiderationLiability>
    <us-gaap:BusinessCombinationContingentConsiderationLiability
      contextRef="FI2019Q4_us-gaap_FairValueByFairValueHierarchyLevelAxis_us-gaap_FairValueInputsLevel2Member_us-gaap_FairValueByMeasurementFrequencyAxis_us-gaap_FairValueMeasurementsRecurringMember"
      decimals="-3"
      id="d9049532e1499-wk-Fact-4A5B6AE0EBC71AB6F9608095A171B365"
      unitRef="usd">0</us-gaap:BusinessCombinationContingentConsiderationLiability>
    <us-gaap:BusinessCombinationContingentConsiderationLiability
      contextRef="FI2019Q4_us-gaap_FairValueByFairValueHierarchyLevelAxis_us-gaap_FairValueInputsLevel3Member_us-gaap_FairValueByMeasurementFrequencyAxis_us-gaap_FairValueMeasurementsRecurringMember"
      decimals="-3"
      id="d9049532e1518-wk-Fact-105201868BF34F14BC738095A17A83C3"
      unitRef="usd">1153000</us-gaap:BusinessCombinationContingentConsiderationLiability>
    <us-gaap:FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationTextBlock
      contextRef="FD2019Q4YTD"
      id="TextSelection-66557414AFE0AEEE85268095A1A72974-0-wk-Fact-55E6A56723DAA46B5FA78095A1736706">&lt;div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;The following table summarizes the activity for the Company's liabilities measured at fair value using Level 3 inputs (in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"&gt;&lt;div style="padding-left:0px;text-indent:0px;line-height:normal;padding-top:10px;"&gt;&lt;table cellpadding="0" cellspacing="0" style="font-family:Times New Roman;font-size:10pt;width:100%;border-collapse:collapse;text-align:left;"&gt;&lt;tr&gt;&lt;td colspan="4"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="width:86%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:12%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Balance as of December 31, 2017&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;3,557&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Payment of GVi contingent consideration&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;(1,000&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;)&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Fair value adjustment to GVi contingent consideration&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;1,065&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Fair value adjustment to Manatee contingent consideration&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;(1,350&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;)&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Fair value adjustment to Chiaro contingent consideration&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;282&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Balance as of December 31, 2018&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;2,554&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Fair value adjustment to GVi contingent consideration&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;(1,646&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;)&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Fair value adjustment to Chiaro contingent consideration&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;245&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Balance as of December 31, 2019&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;1,153&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;border-top:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;</us-gaap:FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationTextBlock>
    <us-gaap:FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue
      contextRef="FI2017Q4"
      decimals="-3"
      id="d9049532e1600-wk-Fact-42212DCEC2E5E66E86328095A18EC7DA"
      unitRef="usd">3557000</us-gaap:FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue>
    <us-gaap:FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilitySettlements
      contextRef="FD2018Q4YTD_us-gaap_BusinessAcquisitionAxis_cgnx_GViVenturesInc.Member"
      decimals="-3"
      id="d9049532e1615-wk-Fact-2475AAD2FD2F45B45C678095A1909CCE"
      unitRef="usd">1000000</us-gaap:FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilitySettlements>
    <us-gaap:LiabilitiesFairValueAdjustment
      contextRef="FD2018Q4YTD_us-gaap_BusinessAcquisitionAxis_cgnx_GViVenturesInc.Member"
      decimals="-3"
      id="d9049532e1636-wk-Fact-5B1ECDF8B279050A0A0CC51068531A16"
      unitRef="usd">1065000</us-gaap:LiabilitiesFairValueAdjustment>
    <us-gaap:LiabilitiesFairValueAdjustment
      contextRef="FD2018Q4YTD_us-gaap_BusinessAcquisitionAxis_cgnx_ManateeWorksInc.Member"
      decimals="-3"
      id="d9049532e1656-wk-Fact-10118E7E594FE4EA42628095A18E857F"
      unitRef="usd">-1350000</us-gaap:LiabilitiesFairValueAdjustment>
    <us-gaap:LiabilitiesFairValueAdjustment
      contextRef="FD2018Q4YTD_us-gaap_BusinessAcquisitionAxis_cgnx_ChiaroTechnologiesLLCMember"
      decimals="-3"
      id="d9049532e1677-wk-Fact-D91437EF3C781A338A1D8095A190E4E1"
      unitRef="usd">282000</us-gaap:LiabilitiesFairValueAdjustment>
    <us-gaap:FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue
      contextRef="FI2018Q4"
      decimals="-3"
      id="d9049532e1697-wk-Fact-D05E12AFFCA12F66205D8095A18FC613"
      unitRef="usd">2554000</us-gaap:FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue>
    <us-gaap:LiabilitiesFairValueAdjustment
      contextRef="FD2019Q4YTD_us-gaap_BusinessAcquisitionAxis_cgnx_GViVenturesInc.Member"
      decimals="-3"
      id="d9049532e1717-wk-Fact-C94D4417A6307F3FB89FC510EC72A95C"
      unitRef="usd">-1646000</us-gaap:LiabilitiesFairValueAdjustment>
    <us-gaap:LiabilitiesFairValueAdjustment
      contextRef="FD2019Q4YTD_us-gaap_BusinessAcquisitionAxis_cgnx_ChiaroTechnologiesLLCMember"
      decimals="-3"
      id="d9049532e1738-wk-Fact-61450EF95060C33DB53D8095A18FBEBC"
      unitRef="usd">245000</us-gaap:LiabilitiesFairValueAdjustment>
    <us-gaap:FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue
      contextRef="FI2019Q4"
      decimals="-3"
      id="d9049532e1763-wk-Fact-0E35A196C4BDAB1E986D8095A18F9E02"
      unitRef="usd">1153000</us-gaap:FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue>
    <us-gaap:FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue
      contextRef="FI2019Q4"
      decimals="-3"
      id="d9049532e1779-wk-Fact-0E35A196C4BDAB1E986D8095A18F9E02"
      unitRef="usd">1153000</us-gaap:FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue>
    <us-gaap:BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueLow
      contextRef="FI2016Q4_us-gaap_BusinessAcquisitionAxis_cgnx_ChiaroTechnologiesLLCMember"
      decimals="-3"
      id="d9049532e1783-wk-Fact-B1702162308B1807B914C53753F1F7F4"
      unitRef="usd">0</us-gaap:BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueLow>
    <us-gaap:BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueHigh
      contextRef="FI2016Q4_us-gaap_BusinessAcquisitionAxis_cgnx_ChiaroTechnologiesLLCMember"
      decimals="-3"
      id="d9049532e1787-wk-Fact-B6D05BA502D17F4FA0EEC5376A43208D"
      unitRef="usd">1250000</us-gaap:BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueHigh>
    <us-gaap:GoodwillAndIntangibleAssetImpairment
      contextRef="FD2017Q4YTD"
      decimals="-3"
      id="d9049532e1798-wk-Fact-7C0ACBFC490B32C957E88095A17377E2"
      unitRef="usd">469000</us-gaap:GoodwillAndIntangibleAssetImpairment>
    <us-gaap:InvestmentsInDebtAndEquityInstrumentsCashAndCashEquivalentsUnrealizedAndRealizedGainsLossesTextBlock
      contextRef="FD2019Q4YTD"
      id="TextSelection-86FAFD81AF38F97E66188095A1A8D20C-0-wk-Fact-06389795AEBD8E70C5D18095A190E6EB">Cash, Cash Equivalents, and Investments&lt;div style="line-height:120%;padding-top:6px;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Cash, cash equivalents, and investments consisted of the following (in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:120%;font-size:10pt;"&gt;&lt;div style="padding-left:0px;text-indent:0px;line-height:normal;padding-top:10px;"&gt;&lt;table cellpadding="0" cellspacing="0" style="font-family:Times New Roman;font-size:10pt;width:99.80506822612085%;border-collapse:collapse;text-align:left;"&gt;&lt;tr&gt;&lt;td colspan="8"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="width:66%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:14%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:15%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:8pt;"&gt;&lt;span style="font-family:inherit;font-size:8pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="7" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;span style="font-family:Arial;font-size:8pt;font-weight:bold;"&gt;December&#160;31,&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:8pt;"&gt;&lt;span style="font-family:inherit;font-size:8pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;span style="font-family:Arial;font-size:8pt;font-weight:bold;"&gt;2019&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;span style="font-family:Arial;font-size:8pt;"&gt;2018&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Cash&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;155,498&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;border-top:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;104,655&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;border-top:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Money market instruments&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;15,933&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;3,557&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Cash and cash equivalents&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;171,431&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;border-top:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;108,212&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;border-top:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Treasury bills&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;92,914&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;border-top:3px double #000000;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;198,477&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-top:3px double #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Asset-backed securities&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;66,680&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;78,407&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Corporate bonds&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;65,624&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;137,871&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Sovereign bonds&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;6,294&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;8,101&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Municipal bonds&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;4,630&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;4,492&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Certificate of deposit&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;4,328&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;&#x2014;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Current investments&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;240,470&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;border-top:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;427,348&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;border-top:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Treasury bills&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;216,334&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;32,760&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Corporate bonds&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;146,474&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;162,566&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Asset-backed securities&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;46,403&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;53,631&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Sovereign bonds&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;16,005&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;6,316&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Agency bonds&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;5,914&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;5,921&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Municipal bonds&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;2,322&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;845&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Non-current investments&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;433,452&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;border-top:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;262,039&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;border-top:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;845,353&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;border-top:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;797,599&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;border-top:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;The Company&#x2019;s cash balance included foreign bank balances totaling &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;$123,499,000&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt; and &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;$67,502,000&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt; as of December&#160;31, &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;2019&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt; and &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;2018&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;, respectively.&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Treasury bills consist of debt securities issued by the U.S. government; asset-backed securities consist of debt securities collateralized by pools of receivables or loans with credit enhancement; corporate bonds consist of debt securities issued by both domestic and foreign companies; sovereign bonds consist of direct debt issued by foreign governments; municipal bonds consist of debt securities issued by state and local government entities; agency bonds consist of domestic or foreign obligations of government agencies and government-sponsored enterprises that have government backing; and certificates of deposit are time deposits held by financial institutions with a fixed interest rate.&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;The following table summarizes the Company&#x2019;s available-for-sale investments as of December&#160;31, &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;color:#000000;text-decoration:none;"&gt;2019&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt; (in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:120%;font-size:10pt;"&gt;&lt;div style="padding-left:0px;text-indent:0px;line-height:normal;padding-top:10px;"&gt;&lt;table cellpadding="0" cellspacing="0" style="font-family:Times New Roman;font-size:10pt;width:99.80506822612085%;border-collapse:collapse;text-align:left;"&gt;&lt;tr&gt;&lt;td colspan="16"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="width:37%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:13%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:13%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:13%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:13%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:center;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;Amortized&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:center;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;Cost&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:center;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;Gross&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:center;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;Unrealized&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:center;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;Gains&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:center;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;Gross&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:center;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;Unrealized&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:center;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;Losses&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:center;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;Fair Value&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Current:&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Treasury bills&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;92,782&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;137&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;(5&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;)&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;92,914&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Asset-backed securities&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;66,474&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;207&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;(1&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;)&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;66,680&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Corporate bonds&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;65,440&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;188&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;(4&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;)&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;65,624&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Sovereign bonds&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;6,286&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;8&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;&#x2014;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;6,294&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Municipal bonds&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;4,628&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;3&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;(1&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;)&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;4,630&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Non-current:&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Treasury bills&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;215,339&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;1,005&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;(10&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;)&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;216,334&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Corporate bonds&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;145,806&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;674&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;(6&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;)&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;146,474&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Asset-backed securities&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;46,269&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;150&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;(16&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;)&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;46,403&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Sovereign bonds&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;15,971&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;40&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;(6&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;)&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;16,005&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Agency bonds&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;5,930&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;&#x2014;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;(16&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;)&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;5,914&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Municipal bonds&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;2,318&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;4&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;&#x2014;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;2,322&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;667,243&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;border-top:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;2,416&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;border-top:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;(65&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-right:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;)&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;669,594&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;border-top:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&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, &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;color:#000000;text-decoration:none;"&gt;2019&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt; (in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:120%;font-size:10pt;"&gt;&lt;div style="padding-left:0px;text-indent:0px;line-height:normal;padding-top:10px;"&gt;&lt;table cellpadding="0" cellspacing="0" style="font-family:Times New Roman;font-size:10pt;width:100%;border-collapse:collapse;text-align:left;"&gt;&lt;tr&gt;&lt;td colspan="24"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="width:35%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:8%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:8%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:8%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:8%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:8%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:8%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:8pt;"&gt;&lt;span style="font-family:inherit;font-size:8pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="7" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;span style="font-family:Arial;font-size:8pt;font-weight:bold;"&gt;Unrealized Loss&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;span style="font-family:Arial;font-size:8pt;font-weight:bold;"&gt;Position For Less than&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;span style="font-family:Arial;font-size:8pt;font-weight:bold;"&gt;12 Months&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="7" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;span style="font-family:Arial;font-size:8pt;font-weight:bold;"&gt;Unrealized Loss&lt;br/&gt;Position For Greater than&lt;br/&gt;12 Months&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="7" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;span style="font-family:Arial;font-size:8pt;font-weight:bold;"&gt;Total&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:8pt;"&gt;&lt;span style="font-family:inherit;font-size:8pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;span style="font-family:Arial;font-size:8pt;font-weight:bold;"&gt;Fair Value&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;span style="font-family:Arial;font-size:8pt;font-weight:bold;"&gt;Unrealized&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;span style="font-family:Arial;font-size:8pt;font-weight:bold;"&gt;Losses&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;span style="font-family:Arial;font-size:8pt;font-weight:bold;"&gt;Fair Value&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;span style="font-family:Arial;font-size:8pt;font-weight:bold;"&gt;Unrealized&lt;br/&gt;Losses&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;span style="font-family:Arial;font-size:8pt;font-weight:bold;"&gt;Fair Value&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;span style="font-family:Arial;font-size:8pt;font-weight:bold;"&gt;Unrealized&lt;br/&gt;Losses&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Treasury bills&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;27,121&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;(13&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;)&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;7,488&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;(2&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;)&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;34,609&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;(15&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;)&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Asset-backed securities&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;11,621&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;(16&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;)&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;2,469&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;(1&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;)&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;14,090&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;(17&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;)&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Sovereign bonds&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;11,566&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;(6&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;)&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;&#x2014;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;&#x2014;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;11,566&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;(6&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;)&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Corporate bonds&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;8,128&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;(4&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;)&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;2,804&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;(6&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;)&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;10,932&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;(10&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;)&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Agency Bonds&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;&#x2014;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;&#x2014;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;5,914&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;(16&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;)&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;5,914&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;(16&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;)&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Municipal bonds&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;2,111&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;&#x2014;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;344&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;(1&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;)&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;2,455&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;(1&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;)&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;60,547&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;border-top:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;(39&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;)&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;19,019&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;border-top:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;(26&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;)&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;79,566&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;border-top:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;(65&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;)&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;As of December&#160;31, &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;color:#000000;text-decoration:none;"&gt;2019&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;, the Company did not recognize any other-than-temporary impairment of these investments. In its evaluation, management considered the type of security, the credit rating of the security, the length of time the security has been in a loss position, the size of the loss position, our intent and ability to hold the security to expected recovery of value, and other meaningful information.  The Company does not intend to sell, and is unlikely to be required to sell, any of these available-for-sale investments before its effective maturity or market price recovery.&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;The Company recorded gross realized gains on the sale of debt securities totaling &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;$1,581,000&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt; in &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;2019&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;, &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;$669,000&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt; in &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;2018&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;, and &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;$929,000&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt; in 2017, and gross realized losses on the sale of debt securities totaling &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;$129,000&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt; in &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;2019&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;, &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;$168,000&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt; in &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;2018&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;, and &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;$100,000&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt; in 2017.  These gains and losses are included in "Investment income" on the Consolidated Statement of Operations.  Prior to the sale of these securities, unrealized gains and losses for these debt securities, net of tax, are recorded in shareholders&#x2019; equity as other comprehensive income (loss). &lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;The following table summarizes the effective maturity dates of the Company&#x2019;s available-for-sale investments as of December&#160;31, &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;color:#000000;text-decoration:none;"&gt;2019&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt; (in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:120%;font-size:10pt;"&gt;&lt;div style="padding-left:0px;text-indent:0px;line-height:normal;padding-top:10px;"&gt;&lt;table cellpadding="0" cellspacing="0" style="font-family:Times New Roman;font-size:10pt;width:100%;border-collapse:collapse;text-align:left;"&gt;&lt;tr&gt;&lt;td colspan="24"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="width:35%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:9%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:9%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:7%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:7%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:7%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:9%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;span style="font-family:Arial;font-size:8pt;font-weight:bold;"&gt;&amp;lt;1&#160;Year&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;span style="font-family:Arial;font-size:8pt;font-weight:bold;"&gt;1-2&#160;Years&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;span style="font-family:Arial;font-size:8pt;font-weight:bold;"&gt;2-3&#160;Years&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;span style="font-family:Arial;font-size:8pt;font-weight:bold;"&gt;3-4&#160;Years&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;span style="font-family:Arial;font-size:8pt;font-weight:bold;"&gt;4-5&#160;Years&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;span style="font-family:Arial;font-size:8pt;font-weight:bold;"&gt;Total&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Treasury bills&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;92,914&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;187,917&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;28,417&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;&#x2014;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;&#x2014;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;309,248&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Corporate bonds&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;65,624&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;88,033&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;54,208&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;4,233&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;&#x2014;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;212,098&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Asset-backed securities&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;66,680&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;17,744&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;24,089&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;3,423&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;1,147&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;113,083&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Sovereign bonds&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;6,294&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;16,005&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;&#x2014;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;&#x2014;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;&#x2014;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;22,299&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Municipal bonds&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;4,630&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;2,322&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;&#x2014;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;&#x2014;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;&#x2014;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;6,952&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Agency bonds&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;&#x2014;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;&#x2014;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;5,914&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;&#x2014;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;&#x2014;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;5,914&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;236,142&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;border-top:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;312,021&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;border-top:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;112,628&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;border-top:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;7,656&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;border-top:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;1,147&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;border-top:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;669,594&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;border-top:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;</us-gaap:InvestmentsInDebtAndEquityInstrumentsCashAndCashEquivalentsUnrealizedAndRealizedGainsLossesTextBlock>
    <cgnx:ComponentsOfCashCashEquivalentsAndInvestmentsTableTableTextBlock
      contextRef="FD2019Q4YTD"
      id="TextSelection-C9E9C866A2BC847767CF8095A1A89D11-0-wk-Fact-CDDFEB31FCE9C45EDAAD8095A18FBE5E">&lt;div style="line-height:120%;padding-top:6px;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Cash, cash equivalents, and investments consisted of the following (in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:120%;font-size:10pt;"&gt;&lt;div style="padding-left:0px;text-indent:0px;line-height:normal;padding-top:10px;"&gt;&lt;table cellpadding="0" cellspacing="0" style="font-family:Times New Roman;font-size:10pt;width:99.80506822612085%;border-collapse:collapse;text-align:left;"&gt;&lt;tr&gt;&lt;td colspan="8"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="width:66%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:14%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:15%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:8pt;"&gt;&lt;span style="font-family:inherit;font-size:8pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="7" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;span style="font-family:Arial;font-size:8pt;font-weight:bold;"&gt;December&#160;31,&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:8pt;"&gt;&lt;span style="font-family:inherit;font-size:8pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;span style="font-family:Arial;font-size:8pt;font-weight:bold;"&gt;2019&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;span style="font-family:Arial;font-size:8pt;"&gt;2018&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Cash&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;155,498&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;border-top:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;104,655&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;border-top:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Money market instruments&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;15,933&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;3,557&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Cash and cash equivalents&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;171,431&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;border-top:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;108,212&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;border-top:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Treasury bills&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;92,914&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;border-top:3px double #000000;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;198,477&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-top:3px double #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Asset-backed securities&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;66,680&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;78,407&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Corporate bonds&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;65,624&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;137,871&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Sovereign bonds&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;6,294&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;8,101&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Municipal bonds&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;4,630&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;4,492&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Certificate of deposit&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;4,328&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;&#x2014;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Current investments&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;240,470&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;border-top:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;427,348&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;border-top:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Treasury bills&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;216,334&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;32,760&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Corporate bonds&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;146,474&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;162,566&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Asset-backed securities&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;46,403&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;53,631&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Sovereign bonds&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;16,005&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;6,316&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Agency bonds&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;5,914&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;5,921&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Municipal bonds&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;2,322&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;845&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Non-current investments&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;433,452&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;border-top:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;262,039&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;border-top:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;845,353&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;border-top:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;797,599&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;border-top:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;</cgnx:ComponentsOfCashCashEquivalentsAndInvestmentsTableTableTextBlock>
    <us-gaap:Cash
      contextRef="FI2019Q4"
      decimals="-3"
      id="d9055830e761-wk-Fact-8127F9D2C7D3DE83988F8095A17D35F0"
      unitRef="usd">155498000</us-gaap:Cash>
    <us-gaap:Cash
      contextRef="FI2018Q4"
      decimals="-3"
      id="d9055830e780-wk-Fact-7C3414A74B36CC0577138095A1838B03"
      unitRef="usd">104655000</us-gaap:Cash>
    <us-gaap:MoneyMarketFundsAtCarryingValue
      contextRef="FI2019Q4"
      decimals="-3"
      id="d9055830e795-wk-Fact-752065E624053C6BCD508095A1821C56"
      unitRef="usd">15933000</us-gaap:MoneyMarketFundsAtCarryingValue>
    <us-gaap:MoneyMarketFundsAtCarryingValue
      contextRef="FI2018Q4"
      decimals="-3"
      id="d9055830e814-wk-Fact-F6F18117D9273E40A1148095A17DAEE6"
      unitRef="usd">3557000</us-gaap:MoneyMarketFundsAtCarryingValue>
    <us-gaap:CashAndCashEquivalentsAtCarryingValue
      contextRef="FI2019Q4"
      decimals="-3"
      id="d9055830e834-wk-Fact-D8633F16D33E937CA4698095A1867C44"
      unitRef="usd">171431000</us-gaap:CashAndCashEquivalentsAtCarryingValue>
    <us-gaap:CashAndCashEquivalentsAtCarryingValue
      contextRef="FI2018Q4"
      decimals="-3"
      id="d9055830e853-wk-Fact-0113DCF56F3641DF075C8095A187DA3D"
      unitRef="usd">108212000</us-gaap:CashAndCashEquivalentsAtCarryingValue>
    <us-gaap:AvailableForSaleSecuritiesDebtSecuritiesCurrent
      contextRef="FI2019Q4_us-gaap_FinancialInstrumentAxis_us-gaap_USTreasuryBillSecuritiesMember"
      decimals="-3"
      id="d9055830e873-wk-Fact-F3C3AC61CF3A7E8EEE928095A1838813"
      unitRef="usd">92914000</us-gaap:AvailableForSaleSecuritiesDebtSecuritiesCurrent>
    <us-gaap:AvailableForSaleSecuritiesDebtSecuritiesCurrent
      contextRef="FI2018Q4_us-gaap_FinancialInstrumentAxis_us-gaap_USTreasuryBillSecuritiesMember"
      decimals="-3"
      id="d9055830e892-wk-Fact-2D6E5E69923FD58609208095A17CAC97"
      unitRef="usd">198477000</us-gaap:AvailableForSaleSecuritiesDebtSecuritiesCurrent>
    <us-gaap:AvailableForSaleSecuritiesDebtSecuritiesCurrent
      contextRef="FI2019Q4_us-gaap_FinancialInstrumentAxis_us-gaap_AssetBackedSecuritiesMember"
      decimals="-3"
      id="d9055830e912-wk-Fact-CA07A5EA775D08AC8F1091098245F408"
      unitRef="usd">66680000</us-gaap:AvailableForSaleSecuritiesDebtSecuritiesCurrent>
    <us-gaap:AvailableForSaleSecuritiesDebtSecuritiesCurrent
      contextRef="FI2018Q4_us-gaap_FinancialInstrumentAxis_us-gaap_AssetBackedSecuritiesMember"
      decimals="-3"
      id="d9055830e931-wk-Fact-6A0AEDC539D940B24B36910985CC9F20"
      unitRef="usd">78407000</us-gaap:AvailableForSaleSecuritiesDebtSecuritiesCurrent>
    <us-gaap:AvailableForSaleSecuritiesDebtSecuritiesCurrent
      contextRef="FI2019Q4_us-gaap_FinancialInstrumentAxis_us-gaap_CorporateBondSecuritiesMember"
      decimals="-3"
      id="d9055830e951-wk-Fact-BEBCAAA869419B97DEF58095A183C866"
      unitRef="usd">65624000</us-gaap:AvailableForSaleSecuritiesDebtSecuritiesCurrent>
    <us-gaap:AvailableForSaleSecuritiesDebtSecuritiesCurrent
      contextRef="FI2018Q4_us-gaap_FinancialInstrumentAxis_us-gaap_CorporateBondSecuritiesMember"
      decimals="-3"
      id="d9055830e970-wk-Fact-24A0AD1FF5961EC4D6D38095A1837FA0"
      unitRef="usd">137871000</us-gaap:AvailableForSaleSecuritiesDebtSecuritiesCurrent>
    <us-gaap:AvailableForSaleSecuritiesDebtSecuritiesCurrent
      contextRef="FI2019Q4_us-gaap_FinancialInstrumentAxis_us-gaap_SovereignDebtSecuritiesMember"
      decimals="-3"
      id="d9055830e990-wk-Fact-27E0A5087167C05F7DFE8095A17CBD5C"
      unitRef="usd">6294000</us-gaap:AvailableForSaleSecuritiesDebtSecuritiesCurrent>
    <us-gaap:AvailableForSaleSecuritiesDebtSecuritiesCurrent
      contextRef="FI2018Q4_us-gaap_FinancialInstrumentAxis_us-gaap_SovereignDebtSecuritiesMember"
      decimals="-3"
      id="d9055830e1009-wk-Fact-A735CC2B9B67C08D5F378095A17CFAC5"
      unitRef="usd">8101000</us-gaap:AvailableForSaleSecuritiesDebtSecuritiesCurrent>
    <us-gaap:AvailableForSaleSecuritiesDebtSecuritiesCurrent
      contextRef="FI2019Q4_us-gaap_FinancialInstrumentAxis_us-gaap_MunicipalBondsMember"
      decimals="-3"
      id="d9055830e1029-wk-Fact-98D82EAB90750ACAD2078095A17D2438"
      unitRef="usd">4630000</us-gaap:AvailableForSaleSecuritiesDebtSecuritiesCurrent>
    <us-gaap:AvailableForSaleSecuritiesDebtSecuritiesCurrent
      contextRef="FI2018Q4_us-gaap_FinancialInstrumentAxis_us-gaap_MunicipalBondsMember"
      decimals="-3"
      id="d9055830e1048-wk-Fact-2D29F0105FD086C82A178095A17C2A4B"
      unitRef="usd">4492000</us-gaap:AvailableForSaleSecuritiesDebtSecuritiesCurrent>
    <us-gaap:AvailableForSaleSecuritiesDebtSecuritiesCurrent
      contextRef="FI2019Q4_us-gaap_FinancialInstrumentAxis_us-gaap_CertificatesOfDepositMember"
      decimals="-3"
      id="d9055830e1068-wk-Fact-D0AD200E4A86D7F68EC6F3E2DE134B00"
      unitRef="usd">4328000</us-gaap:AvailableForSaleSecuritiesDebtSecuritiesCurrent>
    <us-gaap:AvailableForSaleSecuritiesDebtSecuritiesCurrent
      contextRef="FI2018Q4_us-gaap_FinancialInstrumentAxis_us-gaap_CertificatesOfDepositMember"
      decimals="-3"
      id="d9055830e1087-wk-Fact-B96C4D852920CAB9E8A5F3E2E0618247"
      unitRef="usd">0</us-gaap:AvailableForSaleSecuritiesDebtSecuritiesCurrent>
    <us-gaap:AvailableForSaleSecuritiesDebtSecuritiesCurrent
      contextRef="FI2019Q4"
      decimals="-3"
      id="d9055830e1108-wk-Fact-A2C8F9A16077219CCA148095A1878B63"
      unitRef="usd">240470000</us-gaap:AvailableForSaleSecuritiesDebtSecuritiesCurrent>
    <us-gaap:AvailableForSaleSecuritiesDebtSecuritiesCurrent
      contextRef="FI2018Q4"
      decimals="-3"
      id="d9055830e1127-wk-Fact-8D57C642684FB1404A548095A171A66F"
      unitRef="usd">427348000</us-gaap:AvailableForSaleSecuritiesDebtSecuritiesCurrent>
    <us-gaap:AvailableForSaleSecuritiesDebtSecuritiesNoncurrent
      contextRef="FI2019Q4_us-gaap_FinancialInstrumentAxis_us-gaap_USTreasuryBillSecuritiesMember"
      decimals="-3"
      id="d9055830e1147-wk-Fact-AC34A3E11DD39164B7FD910A0A1FFCFC"
      unitRef="usd">216334000</us-gaap:AvailableForSaleSecuritiesDebtSecuritiesNoncurrent>
    <us-gaap:AvailableForSaleSecuritiesDebtSecuritiesNoncurrent
      contextRef="FI2018Q4_us-gaap_FinancialInstrumentAxis_us-gaap_USTreasuryBillSecuritiesMember"
      decimals="-3"
      id="d9055830e1166-wk-Fact-4B765D6AC82BA5D75266910A0D3E1E53"
      unitRef="usd">32760000</us-gaap:AvailableForSaleSecuritiesDebtSecuritiesNoncurrent>
    <us-gaap:AvailableForSaleSecuritiesDebtSecuritiesNoncurrent
      contextRef="FI2019Q4_us-gaap_FinancialInstrumentAxis_us-gaap_CorporateBondSecuritiesMember"
      decimals="-3"
      id="d9055830e1186-wk-Fact-1857AD5E719ED8A56FA98095A1839890"
      unitRef="usd">146474000</us-gaap:AvailableForSaleSecuritiesDebtSecuritiesNoncurrent>
    <us-gaap:AvailableForSaleSecuritiesDebtSecuritiesNoncurrent
      contextRef="FI2018Q4_us-gaap_FinancialInstrumentAxis_us-gaap_CorporateBondSecuritiesMember"
      decimals="-3"
      id="d9055830e1205-wk-Fact-9ABDDFE4B17C7C5312438095A18325EE"
      unitRef="usd">162566000</us-gaap:AvailableForSaleSecuritiesDebtSecuritiesNoncurrent>
    <us-gaap:AvailableForSaleSecuritiesDebtSecuritiesNoncurrent
      contextRef="FI2019Q4_us-gaap_FinancialInstrumentAxis_us-gaap_AssetBackedSecuritiesMember"
      decimals="-3"
      id="d9055830e1225-wk-Fact-EA8CBAA6088BF1EF4D198095A1833481"
      unitRef="usd">46403000</us-gaap:AvailableForSaleSecuritiesDebtSecuritiesNoncurrent>
    <us-gaap:AvailableForSaleSecuritiesDebtSecuritiesNoncurrent
      contextRef="FI2018Q4_us-gaap_FinancialInstrumentAxis_us-gaap_AssetBackedSecuritiesMember"
      decimals="-3"
      id="d9055830e1244-wk-Fact-D956A1F4A40D2F402CF78095A17D0689"
      unitRef="usd">53631000</us-gaap:AvailableForSaleSecuritiesDebtSecuritiesNoncurrent>
    <us-gaap:AvailableForSaleSecuritiesDebtSecuritiesNoncurrent
      contextRef="FI2019Q4_us-gaap_FinancialInstrumentAxis_us-gaap_SovereignDebtSecuritiesMember"
      decimals="-3"
      id="d9055830e1264-wk-Fact-C2CD097529212AD698358095A17D5380"
      unitRef="usd">16005000</us-gaap:AvailableForSaleSecuritiesDebtSecuritiesNoncurrent>
    <us-gaap:AvailableForSaleSecuritiesDebtSecuritiesNoncurrent
      contextRef="FI2018Q4_us-gaap_FinancialInstrumentAxis_us-gaap_SovereignDebtSecuritiesMember"
      decimals="-3"
      id="d9055830e1283-wk-Fact-7EA46809B5E7E0A75F8D8095A17C2768"
      unitRef="usd">6316000</us-gaap:AvailableForSaleSecuritiesDebtSecuritiesNoncurrent>
    <us-gaap:AvailableForSaleSecuritiesDebtSecuritiesNoncurrent
      contextRef="FI2019Q4_us-gaap_FinancialInstrumentAxis_cgnx_AgencyBondsMember"
      decimals="-3"
      id="d9055830e1303-wk-Fact-3F97EEBAB108FDF5B0518095A1833A49"
      unitRef="usd">5914000</us-gaap:AvailableForSaleSecuritiesDebtSecuritiesNoncurrent>
    <us-gaap:AvailableForSaleSecuritiesDebtSecuritiesNoncurrent
      contextRef="FI2018Q4_us-gaap_FinancialInstrumentAxis_cgnx_AgencyBondsMember"
      decimals="-3"
      id="d9055830e1322-wk-Fact-6E586826AEE4051E42D78095A17DFCD9"
      unitRef="usd">5921000</us-gaap:AvailableForSaleSecuritiesDebtSecuritiesNoncurrent>
    <us-gaap:AvailableForSaleSecuritiesDebtSecuritiesNoncurrent
      contextRef="FI2019Q4_us-gaap_FinancialInstrumentAxis_us-gaap_MunicipalBondsMember"
      decimals="-3"
      id="d9055830e1342-wk-Fact-EA19150D8496A92FF1A08095A17CDD71"
      unitRef="usd">2322000</us-gaap:AvailableForSaleSecuritiesDebtSecuritiesNoncurrent>
    <us-gaap:AvailableForSaleSecuritiesDebtSecuritiesNoncurrent
      contextRef="FI2018Q4_us-gaap_FinancialInstrumentAxis_us-gaap_MunicipalBondsMember"
      decimals="-3"
      id="d9055830e1361-wk-Fact-1A24C52F823A1E4722118095A17D385A"
      unitRef="usd">845000</us-gaap:AvailableForSaleSecuritiesDebtSecuritiesNoncurrent>
    <us-gaap:LongTermInvestments
      contextRef="FI2019Q4"
      decimals="-3"
      id="d9055830e1381-wk-Fact-DF042BAB946939B448EB8095A187F505"
      unitRef="usd">433452000</us-gaap:LongTermInvestments>
    <us-gaap:LongTermInvestments
      contextRef="FI2018Q4"
      decimals="-3"
      id="d9055830e1400-wk-Fact-D0E7E30446713E43A7318095A187F414"
      unitRef="usd">262039000</us-gaap:LongTermInvestments>
    <cgnx:CashCashEquivalentsShortTermAndLongTermInvestments
      contextRef="FI2019Q4"
      decimals="-3"
      id="d9055830e1425-wk-Fact-CE81F22E58AC71ED46768095A17C17DD"
      unitRef="usd">845353000</cgnx:CashCashEquivalentsShortTermAndLongTermInvestments>
    <cgnx:CashCashEquivalentsShortTermAndLongTermInvestments
      contextRef="FI2018Q4"
      decimals="-3"
      id="d9055830e1444-wk-Fact-4141674BB98564E829648095A182B786"
      unitRef="usd">797599000</cgnx:CashCashEquivalentsShortTermAndLongTermInvestments>
    <cgnx:DueFromForeignBanks
      contextRef="FI2019Q4"
      decimals="-3"
      id="d9055830e1462-wk-Fact-266D26EF251C0393AE208095A18F8704"
      unitRef="usd">123499000</cgnx:DueFromForeignBanks>
    <cgnx:DueFromForeignBanks
      contextRef="FI2018Q4"
      decimals="-3"
      id="d9055830e1466-wk-Fact-DDE06AD4A1586715BB038095A18FD8B5"
      unitRef="usd">67502000</cgnx:DueFromForeignBanks>
    <us-gaap:ScheduleOfAvailableForSaleSecuritiesReconciliationTableTextBlock
      contextRef="FD2019Q4YTD"
      id="TextSelection-0050E97E85E70C972F198095A1A84314-0-wk-Fact-B0D489257672B0CDFA2A8095A18FC332">&lt;div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;The following table summarizes the Company&#x2019;s available-for-sale investments as of December&#160;31, &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;color:#000000;text-decoration:none;"&gt;2019&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt; (in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:120%;font-size:10pt;"&gt;&lt;div style="padding-left:0px;text-indent:0px;line-height:normal;padding-top:10px;"&gt;&lt;table cellpadding="0" cellspacing="0" style="font-family:Times New Roman;font-size:10pt;width:99.80506822612085%;border-collapse:collapse;text-align:left;"&gt;&lt;tr&gt;&lt;td colspan="16"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="width:37%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:13%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:13%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:13%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:13%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:center;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;Amortized&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:center;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;Cost&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:center;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;Gross&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:center;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;Unrealized&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:center;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;Gains&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:center;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;Gross&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:center;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;Unrealized&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:center;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;Losses&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:center;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;Fair Value&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Current:&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Treasury bills&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;92,782&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;137&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;(5&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;)&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;92,914&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Asset-backed securities&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;66,474&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;207&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;(1&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;)&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;66,680&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Corporate bonds&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;65,440&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;188&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;(4&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;)&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;65,624&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Sovereign bonds&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;6,286&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;8&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;&#x2014;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;6,294&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Municipal bonds&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;4,628&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;3&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;(1&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;)&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;4,630&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Non-current:&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Treasury bills&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;215,339&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;1,005&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;(10&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;)&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;216,334&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Corporate bonds&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;145,806&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;674&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;(6&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;)&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;146,474&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Asset-backed securities&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;46,269&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;150&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;(16&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;)&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;46,403&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Sovereign bonds&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;15,971&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;40&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;(6&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;)&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;16,005&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Agency bonds&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;5,930&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;&#x2014;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;(16&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;)&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;5,914&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Municipal bonds&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;2,318&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;4&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;&#x2014;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;2,322&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;667,243&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;border-top:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;2,416&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;border-top:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;(65&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-right:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;)&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;669,594&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;border-top:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;</us-gaap:ScheduleOfAvailableForSaleSecuritiesReconciliationTableTextBlock>
    <us-gaap:AvailableForSaleDebtSecuritiesAmortizedCostBasis
      contextRef="FI2019Q4_us-gaap_FinancialInstrumentAxis_us-gaap_USTreasurySecuritiesMember_us-gaap_InvestmentTypeAxis_us-gaap_ShortTermInvestmentsMember"
      decimals="-3"
      id="d9055830e1717-wk-Fact-9591F14754E738B40EEE8095A1843B8D"
      unitRef="usd">92782000</us-gaap:AvailableForSaleDebtSecuritiesAmortizedCostBasis>
    <us-gaap:AvailableForSaleSecuritiesAccumulatedGrossUnrealizedGainBeforeTax
      contextRef="FI2019Q4_us-gaap_FinancialInstrumentAxis_us-gaap_USTreasurySecuritiesMember_us-gaap_InvestmentTypeAxis_us-gaap_ShortTermInvestmentsMember"
      decimals="-3"
      id="d9055830e1736-wk-Fact-6CC53D618C1A7FAF03DA8095A17DC117"
      unitRef="usd">137000</us-gaap:AvailableForSaleSecuritiesAccumulatedGrossUnrealizedGainBeforeTax>
    <us-gaap:AvailableForSaleSecuritiesAccumulatedGrossUnrealizedLossBeforeTax
      contextRef="FI2019Q4_us-gaap_FinancialInstrumentAxis_us-gaap_USTreasurySecuritiesMember_us-gaap_InvestmentTypeAxis_us-gaap_ShortTermInvestmentsMember"
      decimals="-3"
      id="d9055830e1755-wk-Fact-03542337AEBF979C1ABA8095A17C64B6"
      unitRef="usd">5000</us-gaap:AvailableForSaleSecuritiesAccumulatedGrossUnrealizedLossBeforeTax>
    <us-gaap:AvailableForSaleSecuritiesDebtSecurities
      contextRef="FI2019Q4_us-gaap_FinancialInstrumentAxis_us-gaap_USTreasurySecuritiesMember_us-gaap_InvestmentTypeAxis_us-gaap_ShortTermInvestmentsMember"
      decimals="-3"
      id="d9055830e1776-wk-Fact-992AE972AAD683647ABC8095A1841DE9"
      unitRef="usd">92914000</us-gaap:AvailableForSaleSecuritiesDebtSecurities>
    <us-gaap:AvailableForSaleDebtSecuritiesAmortizedCostBasis
      contextRef="FI2019Q4_us-gaap_FinancialInstrumentAxis_us-gaap_AssetBackedSecuritiesMember_us-gaap_InvestmentTypeAxis_us-gaap_ShortTermInvestmentsMember"
      decimals="-3"
      id="d9055830e1791-wk-Fact-752E464F90AB00A5381991315240FAE8"
      unitRef="usd">66474000</us-gaap:AvailableForSaleDebtSecuritiesAmortizedCostBasis>
    <us-gaap:AvailableForSaleSecuritiesAccumulatedGrossUnrealizedGainBeforeTax
      contextRef="FI2019Q4_us-gaap_FinancialInstrumentAxis_us-gaap_AssetBackedSecuritiesMember_us-gaap_InvestmentTypeAxis_us-gaap_ShortTermInvestmentsMember"
      decimals="-3"
      id="d9055830e1810-wk-Fact-7093A2DC34F92450F4059131573F9E08"
      unitRef="usd">207000</us-gaap:AvailableForSaleSecuritiesAccumulatedGrossUnrealizedGainBeforeTax>
    <us-gaap:AvailableForSaleSecuritiesAccumulatedGrossUnrealizedLossBeforeTax
      contextRef="FI2019Q4_us-gaap_FinancialInstrumentAxis_us-gaap_AssetBackedSecuritiesMember_us-gaap_InvestmentTypeAxis_us-gaap_ShortTermInvestmentsMember"
      decimals="-3"
      id="d9055830e1829-wk-Fact-8CBC97FE1B01EB69F26791315AF709B2"
      unitRef="usd">1000</us-gaap:AvailableForSaleSecuritiesAccumulatedGrossUnrealizedLossBeforeTax>
    <us-gaap:AvailableForSaleSecuritiesDebtSecurities
      contextRef="FI2019Q4_us-gaap_FinancialInstrumentAxis_us-gaap_AssetBackedSecuritiesMember_us-gaap_InvestmentTypeAxis_us-gaap_ShortTermInvestmentsMember"
      decimals="-3"
      id="d9055830e1850-wk-Fact-34098CBB3D73F32183E991315E866872"
      unitRef="usd">66680000</us-gaap:AvailableForSaleSecuritiesDebtSecurities>
    <us-gaap:AvailableForSaleDebtSecuritiesAmortizedCostBasis
      contextRef="FI2019Q4_us-gaap_FinancialInstrumentAxis_us-gaap_CorporateBondSecuritiesMember_us-gaap_InvestmentTypeAxis_us-gaap_ShortTermInvestmentsMember"
      decimals="-3"
      id="d9055830e1870-wk-Fact-457AD0DB070218EA1F388095A184D390"
      unitRef="usd">65440000</us-gaap:AvailableForSaleDebtSecuritiesAmortizedCostBasis>
    <us-gaap:AvailableForSaleSecuritiesAccumulatedGrossUnrealizedGainBeforeTax
      contextRef="FI2019Q4_us-gaap_FinancialInstrumentAxis_us-gaap_CorporateBondSecuritiesMember_us-gaap_InvestmentTypeAxis_us-gaap_ShortTermInvestmentsMember"
      decimals="-3"
      id="d9055830e1889-wk-Fact-0AFC928B4C8FF1B7482E8095A183A36C"
      unitRef="usd">188000</us-gaap:AvailableForSaleSecuritiesAccumulatedGrossUnrealizedGainBeforeTax>
    <us-gaap:AvailableForSaleSecuritiesAccumulatedGrossUnrealizedLossBeforeTax
      contextRef="FI2019Q4_us-gaap_FinancialInstrumentAxis_us-gaap_CorporateBondSecuritiesMember_us-gaap_InvestmentTypeAxis_us-gaap_ShortTermInvestmentsMember"
      decimals="-3"
      id="d9055830e1908-wk-Fact-B9A3C8D1F258CC246DF58095A17CA0D4"
      unitRef="usd">4000</us-gaap:AvailableForSaleSecuritiesAccumulatedGrossUnrealizedLossBeforeTax>
    <us-gaap:AvailableForSaleSecuritiesDebtSecurities
      contextRef="FI2019Q4_us-gaap_FinancialInstrumentAxis_us-gaap_CorporateBondSecuritiesMember_us-gaap_InvestmentTypeAxis_us-gaap_ShortTermInvestmentsMember"
      decimals="-3"
      id="d9055830e1929-wk-Fact-7FF0372A8606A6F52C7E8095A17C2F76"
      unitRef="usd">65624000</us-gaap:AvailableForSaleSecuritiesDebtSecurities>
    <us-gaap:AvailableForSaleDebtSecuritiesAmortizedCostBasis
      contextRef="FI2019Q4_us-gaap_FinancialInstrumentAxis_us-gaap_SovereignDebtSecuritiesMember_us-gaap_InvestmentTypeAxis_us-gaap_ShortTermInvestmentsMember"
      decimals="-3"
      id="d9055830e1949-wk-Fact-323F3DFF62376A9E49878095A184C0EA"
      unitRef="usd">6286000</us-gaap:AvailableForSaleDebtSecuritiesAmortizedCostBasis>
    <us-gaap:AvailableForSaleSecuritiesAccumulatedGrossUnrealizedGainBeforeTax
      contextRef="FI2019Q4_us-gaap_FinancialInstrumentAxis_us-gaap_SovereignDebtSecuritiesMember_us-gaap_InvestmentTypeAxis_us-gaap_ShortTermInvestmentsMember"
      decimals="-3"
      id="d9055830e1968-wk-Fact-32D9F525F9DA907F4B168095A184190E"
      unitRef="usd">8000</us-gaap:AvailableForSaleSecuritiesAccumulatedGrossUnrealizedGainBeforeTax>
    <us-gaap:AvailableForSaleSecuritiesAccumulatedGrossUnrealizedLossBeforeTax
      contextRef="FI2019Q4_us-gaap_FinancialInstrumentAxis_us-gaap_SovereignDebtSecuritiesMember_us-gaap_InvestmentTypeAxis_us-gaap_ShortTermInvestmentsMember"
      decimals="-3"
      id="d9055830e1987-wk-Fact-B09F72082201F03ADFA08095A17CB9AC"
      unitRef="usd">0</us-gaap:AvailableForSaleSecuritiesAccumulatedGrossUnrealizedLossBeforeTax>
    <us-gaap:AvailableForSaleSecuritiesDebtSecurities
      contextRef="FI2019Q4_us-gaap_FinancialInstrumentAxis_us-gaap_SovereignDebtSecuritiesMember_us-gaap_InvestmentTypeAxis_us-gaap_ShortTermInvestmentsMember"
      decimals="-3"
      id="d9055830e2007-wk-Fact-D6DFFB5BC252D6FA674C8095A184E80C"
      unitRef="usd">6294000</us-gaap:AvailableForSaleSecuritiesDebtSecurities>
    <us-gaap:AvailableForSaleDebtSecuritiesAmortizedCostBasis
      contextRef="FI2019Q4_us-gaap_FinancialInstrumentAxis_us-gaap_MunicipalBondsMember_us-gaap_InvestmentTypeAxis_us-gaap_ShortTermInvestmentsMember"
      decimals="-3"
      id="d9055830e2027-wk-Fact-53D301A7B7E4C6392D548095A17DDDA5"
      unitRef="usd">4628000</us-gaap:AvailableForSaleDebtSecuritiesAmortizedCostBasis>
    <us-gaap:AvailableForSaleSecuritiesAccumulatedGrossUnrealizedGainBeforeTax
      contextRef="FI2019Q4_us-gaap_FinancialInstrumentAxis_us-gaap_MunicipalBondsMember_us-gaap_InvestmentTypeAxis_us-gaap_ShortTermInvestmentsMember"
      decimals="-3"
      id="d9055830e2046-wk-Fact-0912C135AE8A04093EAA8095A184681E"
      unitRef="usd">3000</us-gaap:AvailableForSaleSecuritiesAccumulatedGrossUnrealizedGainBeforeTax>
    <us-gaap:AvailableForSaleSecuritiesAccumulatedGrossUnrealizedLossBeforeTax
      contextRef="FI2019Q4_us-gaap_FinancialInstrumentAxis_us-gaap_MunicipalBondsMember_us-gaap_InvestmentTypeAxis_us-gaap_ShortTermInvestmentsMember"
      decimals="-3"
      id="d9055830e2065-wk-Fact-FCE0AF50AF5E286765CD8095A17C5E28"
      unitRef="usd">1000</us-gaap:AvailableForSaleSecuritiesAccumulatedGrossUnrealizedLossBeforeTax>
    <us-gaap:AvailableForSaleSecuritiesDebtSecurities
      contextRef="FI2019Q4_us-gaap_FinancialInstrumentAxis_us-gaap_MunicipalBondsMember_us-gaap_InvestmentTypeAxis_us-gaap_ShortTermInvestmentsMember"
      decimals="-3"
      id="d9055830e2086-wk-Fact-B2AE7E5B173DB36A610C8095A17D25CE"
      unitRef="usd">4630000</us-gaap:AvailableForSaleSecuritiesDebtSecurities>
    <us-gaap:AvailableForSaleDebtSecuritiesAmortizedCostBasis
      contextRef="FI2019Q4_us-gaap_FinancialInstrumentAxis_us-gaap_USTreasurySecuritiesMember_us-gaap_InvestmentTypeAxis_cgnx_LongTermInvestmentsMember"
      decimals="-3"
      id="d9055830e2186-wk-Fact-7D7F702956C3A8D604339111266E68B4"
      unitRef="usd">215339000</us-gaap:AvailableForSaleDebtSecuritiesAmortizedCostBasis>
    <us-gaap:AvailableForSaleSecuritiesAccumulatedGrossUnrealizedGainBeforeTax
      contextRef="FI2019Q4_us-gaap_FinancialInstrumentAxis_us-gaap_USTreasurySecuritiesMember_us-gaap_InvestmentTypeAxis_cgnx_LongTermInvestmentsMember"
      decimals="-3"
      id="d9055830e2205-wk-Fact-83AD1A6B73B285598B4B911129CA9F34"
      unitRef="usd">1005000</us-gaap:AvailableForSaleSecuritiesAccumulatedGrossUnrealizedGainBeforeTax>
    <us-gaap:AvailableForSaleSecuritiesAccumulatedGrossUnrealizedLossBeforeTax
      contextRef="FI2019Q4_us-gaap_FinancialInstrumentAxis_us-gaap_USTreasurySecuritiesMember_us-gaap_InvestmentTypeAxis_cgnx_LongTermInvestmentsMember"
      decimals="-3"
      id="d9055830e2224-wk-Fact-363711CAB807027F053091112DEBF1ED"
      unitRef="usd">10000</us-gaap:AvailableForSaleSecuritiesAccumulatedGrossUnrealizedLossBeforeTax>
    <us-gaap:AvailableForSaleSecuritiesDebtSecurities
      contextRef="FI2019Q4_us-gaap_FinancialInstrumentAxis_us-gaap_USTreasurySecuritiesMember_us-gaap_InvestmentTypeAxis_cgnx_LongTermInvestmentsMember"
      decimals="-3"
      id="d9055830e2245-wk-Fact-7FFD014647A3845F3E32911132C63B17"
      unitRef="usd">216334000</us-gaap:AvailableForSaleSecuritiesDebtSecurities>
    <us-gaap:AvailableForSaleDebtSecuritiesAmortizedCostBasis
      contextRef="FI2019Q4_us-gaap_FinancialInstrumentAxis_us-gaap_CorporateBondSecuritiesMember_us-gaap_InvestmentTypeAxis_cgnx_LongTermInvestmentsMember"
      decimals="-3"
      id="d9055830e2265-wk-Fact-8304B2C5522D9708AED28095A17C6DFB"
      unitRef="usd">145806000</us-gaap:AvailableForSaleDebtSecuritiesAmortizedCostBasis>
    <us-gaap:AvailableForSaleSecuritiesAccumulatedGrossUnrealizedGainBeforeTax
      contextRef="FI2019Q4_us-gaap_FinancialInstrumentAxis_us-gaap_CorporateBondSecuritiesMember_us-gaap_InvestmentTypeAxis_cgnx_LongTermInvestmentsMember"
      decimals="-3"
      id="d9055830e2284-wk-Fact-9EE4817500543E38DE8F8095A17D9109"
      unitRef="usd">674000</us-gaap:AvailableForSaleSecuritiesAccumulatedGrossUnrealizedGainBeforeTax>
    <us-gaap:AvailableForSaleSecuritiesAccumulatedGrossUnrealizedLossBeforeTax
      contextRef="FI2019Q4_us-gaap_FinancialInstrumentAxis_us-gaap_CorporateBondSecuritiesMember_us-gaap_InvestmentTypeAxis_cgnx_LongTermInvestmentsMember"
      decimals="-3"
      id="d9055830e2303-wk-Fact-B04E172D129B905FAF0B8095A17C3652"
      unitRef="usd">6000</us-gaap:AvailableForSaleSecuritiesAccumulatedGrossUnrealizedLossBeforeTax>
    <us-gaap:AvailableForSaleSecuritiesDebtSecurities
      contextRef="FI2019Q4_us-gaap_FinancialInstrumentAxis_us-gaap_CorporateBondSecuritiesMember_us-gaap_InvestmentTypeAxis_cgnx_LongTermInvestmentsMember"
      decimals="-3"
      id="d9055830e2324-wk-Fact-255EA2ED3A90DFBD351C8095A1845C36"
      unitRef="usd">146474000</us-gaap:AvailableForSaleSecuritiesDebtSecurities>
    <us-gaap:AvailableForSaleDebtSecuritiesAmortizedCostBasis
      contextRef="FI2019Q4_us-gaap_FinancialInstrumentAxis_us-gaap_AssetBackedSecuritiesMember_us-gaap_InvestmentTypeAxis_cgnx_LongTermInvestmentsMember"
      decimals="-3"
      id="d9055830e2344-wk-Fact-857D7ECAE46E5601BF9F8095A1839ECA"
      unitRef="usd">46269000</us-gaap:AvailableForSaleDebtSecuritiesAmortizedCostBasis>
    <us-gaap:AvailableForSaleSecuritiesAccumulatedGrossUnrealizedGainBeforeTax
      contextRef="FI2019Q4_us-gaap_FinancialInstrumentAxis_us-gaap_AssetBackedSecuritiesMember_us-gaap_InvestmentTypeAxis_cgnx_LongTermInvestmentsMember"
      decimals="-3"
      id="d9055830e2363-wk-Fact-06ED50CBAC41034552CF8095A17C7E1F"
      unitRef="usd">150000</us-gaap:AvailableForSaleSecuritiesAccumulatedGrossUnrealizedGainBeforeTax>
    <us-gaap:AvailableForSaleSecuritiesAccumulatedGrossUnrealizedLossBeforeTax
      contextRef="FI2019Q4_us-gaap_FinancialInstrumentAxis_us-gaap_AssetBackedSecuritiesMember_us-gaap_InvestmentTypeAxis_cgnx_LongTermInvestmentsMember"
      decimals="-3"
      id="d9055830e2382-wk-Fact-66E1858DEB7C2946E96B8095A1824D88"
      unitRef="usd">16000</us-gaap:AvailableForSaleSecuritiesAccumulatedGrossUnrealizedLossBeforeTax>
    <us-gaap:AvailableForSaleSecuritiesDebtSecurities
      contextRef="FI2019Q4_us-gaap_FinancialInstrumentAxis_us-gaap_AssetBackedSecuritiesMember_us-gaap_InvestmentTypeAxis_cgnx_LongTermInvestmentsMember"
      decimals="-3"
      id="d9055830e2403-wk-Fact-1ABA3031D608EB3666E78095A17C4C87"
      unitRef="usd">46403000</us-gaap:AvailableForSaleSecuritiesDebtSecurities>
    <us-gaap:AvailableForSaleDebtSecuritiesAmortizedCostBasis
      contextRef="FI2019Q4_us-gaap_FinancialInstrumentAxis_us-gaap_SovereignDebtSecuritiesMember_us-gaap_InvestmentTypeAxis_cgnx_LongTermInvestmentsMember"
      decimals="-3"
      id="d9055830e2424-wk-Fact-71F54AF44E313894D3B48095A1835F44"
      unitRef="usd">15971000</us-gaap:AvailableForSaleDebtSecuritiesAmortizedCostBasis>
    <us-gaap:AvailableForSaleSecuritiesAccumulatedGrossUnrealizedGainBeforeTax
      contextRef="FI2019Q4_us-gaap_FinancialInstrumentAxis_us-gaap_SovereignDebtSecuritiesMember_us-gaap_InvestmentTypeAxis_cgnx_LongTermInvestmentsMember"
      decimals="-3"
      id="d9055830e2443-wk-Fact-E52DE0205EE112B262F98095A17D7E22"
      unitRef="usd">40000</us-gaap:AvailableForSaleSecuritiesAccumulatedGrossUnrealizedGainBeforeTax>
    <us-gaap:AvailableForSaleSecuritiesAccumulatedGrossUnrealizedLossBeforeTax
      contextRef="FI2019Q4_us-gaap_FinancialInstrumentAxis_us-gaap_SovereignDebtSecuritiesMember_us-gaap_InvestmentTypeAxis_cgnx_LongTermInvestmentsMember"
      decimals="-3"
      id="d9055830e2462-wk-Fact-A50E9DE053452502B9FD8095A17CF149"
      unitRef="usd">6000</us-gaap:AvailableForSaleSecuritiesAccumulatedGrossUnrealizedLossBeforeTax>
    <us-gaap:AvailableForSaleSecuritiesDebtSecurities
      contextRef="FI2019Q4_us-gaap_FinancialInstrumentAxis_us-gaap_SovereignDebtSecuritiesMember_us-gaap_InvestmentTypeAxis_cgnx_LongTermInvestmentsMember"
      decimals="-3"
      id="d9055830e2483-wk-Fact-66E6B843AAA99648CFBC8095A1846356"
      unitRef="usd">16005000</us-gaap:AvailableForSaleSecuritiesDebtSecurities>
    <us-gaap:AvailableForSaleDebtSecuritiesAmortizedCostBasis
      contextRef="FI2019Q4_us-gaap_FinancialInstrumentAxis_cgnx_AgencyBondsMember_us-gaap_InvestmentTypeAxis_cgnx_LongTermInvestmentsMember"
      decimals="-3"
      id="d9055830e2503-wk-Fact-D1B63A85CB5163D696D38095A17D78BE"
      unitRef="usd">5930000</us-gaap:AvailableForSaleDebtSecuritiesAmortizedCostBasis>
    <us-gaap:AvailableForSaleSecuritiesAccumulatedGrossUnrealizedGainBeforeTax
      contextRef="FI2019Q4_us-gaap_FinancialInstrumentAxis_cgnx_AgencyBondsMember_us-gaap_InvestmentTypeAxis_cgnx_LongTermInvestmentsMember"
      decimals="-3"
      id="d9055830e2522-wk-Fact-016B02587693910B42C88095A182204B"
      unitRef="usd">0</us-gaap:AvailableForSaleSecuritiesAccumulatedGrossUnrealizedGainBeforeTax>
    <us-gaap:AvailableForSaleSecuritiesAccumulatedGrossUnrealizedLossBeforeTax
      contextRef="FI2019Q4_us-gaap_FinancialInstrumentAxis_cgnx_AgencyBondsMember_us-gaap_InvestmentTypeAxis_cgnx_LongTermInvestmentsMember"
      decimals="-3"
      id="d9055830e2541-wk-Fact-792AD065D159A5439CA68095A17D0FEA"
      unitRef="usd">16000</us-gaap:AvailableForSaleSecuritiesAccumulatedGrossUnrealizedLossBeforeTax>
    <us-gaap:AvailableForSaleSecuritiesDebtSecurities
      contextRef="FI2019Q4_us-gaap_FinancialInstrumentAxis_cgnx_AgencyBondsMember_us-gaap_InvestmentTypeAxis_cgnx_LongTermInvestmentsMember"
      decimals="-3"
      id="d9055830e2562-wk-Fact-9B375E9FD1F1CA6DAFE68095A182AD44"
      unitRef="usd">5914000</us-gaap:AvailableForSaleSecuritiesDebtSecurities>
    <us-gaap:AvailableForSaleDebtSecuritiesAmortizedCostBasis
      contextRef="FI2019Q4_us-gaap_FinancialInstrumentAxis_us-gaap_MunicipalBondsMember_us-gaap_InvestmentTypeAxis_cgnx_LongTermInvestmentsMember"
      decimals="-3"
      id="d9055830e2582-wk-Fact-29DDC59391331C3DA7298095A183599E"
      unitRef="usd">2318000</us-gaap:AvailableForSaleDebtSecuritiesAmortizedCostBasis>
    <us-gaap:AvailableForSaleSecuritiesAccumulatedGrossUnrealizedGainBeforeTax
      contextRef="FI2019Q4_us-gaap_FinancialInstrumentAxis_us-gaap_MunicipalBondsMember_us-gaap_InvestmentTypeAxis_cgnx_LongTermInvestmentsMember"
      decimals="-3"
      id="d9055830e2601-wk-Fact-C826E46B6F5A2CA62CDB8095A18325B8"
      unitRef="usd">4000</us-gaap:AvailableForSaleSecuritiesAccumulatedGrossUnrealizedGainBeforeTax>
    <us-gaap:AvailableForSaleSecuritiesAccumulatedGrossUnrealizedLossBeforeTax
      contextRef="FI2019Q4_us-gaap_FinancialInstrumentAxis_us-gaap_MunicipalBondsMember_us-gaap_InvestmentTypeAxis_cgnx_LongTermInvestmentsMember"
      decimals="-3"
      id="d9055830e2620-wk-Fact-95BC178ED5255A697BE38095A1832752"
      unitRef="usd">0</us-gaap:AvailableForSaleSecuritiesAccumulatedGrossUnrealizedLossBeforeTax>
    <us-gaap:AvailableForSaleSecuritiesDebtSecurities
      contextRef="FI2019Q4_us-gaap_FinancialInstrumentAxis_us-gaap_MunicipalBondsMember_us-gaap_InvestmentTypeAxis_cgnx_LongTermInvestmentsMember"
      decimals="-3"
      id="d9055830e2640-wk-Fact-402DF44D3AB20509FCD48095A17DA940"
      unitRef="usd">2322000</us-gaap:AvailableForSaleSecuritiesDebtSecurities>
    <us-gaap:AvailableForSaleDebtSecuritiesAmortizedCostBasis
      contextRef="FI2019Q4"
      decimals="-3"
      id="d9055830e2665-wk-Fact-FEF1B9407593A816EDC58095A1841AEB"
      unitRef="usd">667243000</us-gaap:AvailableForSaleDebtSecuritiesAmortizedCostBasis>
    <us-gaap:AvailableForSaleSecuritiesAccumulatedGrossUnrealizedGainBeforeTax
      contextRef="FI2019Q4"
      decimals="-3"
      id="d9055830e2684-wk-Fact-E9B4911199B347568BBF8095A1844965"
      unitRef="usd">2416000</us-gaap:AvailableForSaleSecuritiesAccumulatedGrossUnrealizedGainBeforeTax>
    <us-gaap:AvailableForSaleSecuritiesAccumulatedGrossUnrealizedLossBeforeTax
      contextRef="FI2019Q4"
      decimals="-3"
      id="d9055830e2703-wk-Fact-A48BDD771B9DBD44A0088095A17CFDBA"
      unitRef="usd">65000</us-gaap:AvailableForSaleSecuritiesAccumulatedGrossUnrealizedLossBeforeTax>
    <us-gaap:AvailableForSaleSecuritiesDebtSecurities
      contextRef="FI2019Q4"
      decimals="-3"
      id="d9055830e2724-wk-Fact-407782CEF3C3CA9A50488095A17C8917"
      unitRef="usd">669594000</us-gaap:AvailableForSaleSecuritiesDebtSecurities>
    <us-gaap:ScheduleOfUnrealizedLossOnInvestmentsTableTextBlock
      contextRef="FD2019Q4YTD"
      id="TextSelection-A404DBC00B6275BFFD5C8095A1A8AA98-0-wk-Fact-CCAA511FC80D183457F28095A18FED93">&lt;div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&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, &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;color:#000000;text-decoration:none;"&gt;2019&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt; (in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:120%;font-size:10pt;"&gt;&lt;div style="padding-left:0px;text-indent:0px;line-height:normal;padding-top:10px;"&gt;&lt;table cellpadding="0" cellspacing="0" style="font-family:Times New Roman;font-size:10pt;width:100%;border-collapse:collapse;text-align:left;"&gt;&lt;tr&gt;&lt;td colspan="24"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="width:35%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:8%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:8%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:8%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:8%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:8%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:8%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:8pt;"&gt;&lt;span style="font-family:inherit;font-size:8pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="7" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;span style="font-family:Arial;font-size:8pt;font-weight:bold;"&gt;Unrealized Loss&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;span style="font-family:Arial;font-size:8pt;font-weight:bold;"&gt;Position For Less than&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;span style="font-family:Arial;font-size:8pt;font-weight:bold;"&gt;12 Months&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="7" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;span style="font-family:Arial;font-size:8pt;font-weight:bold;"&gt;Unrealized Loss&lt;br/&gt;Position For Greater than&lt;br/&gt;12 Months&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="7" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;span style="font-family:Arial;font-size:8pt;font-weight:bold;"&gt;Total&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:8pt;"&gt;&lt;span style="font-family:inherit;font-size:8pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;span style="font-family:Arial;font-size:8pt;font-weight:bold;"&gt;Fair Value&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;span style="font-family:Arial;font-size:8pt;font-weight:bold;"&gt;Unrealized&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;span style="font-family:Arial;font-size:8pt;font-weight:bold;"&gt;Losses&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;span style="font-family:Arial;font-size:8pt;font-weight:bold;"&gt;Fair Value&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;span style="font-family:Arial;font-size:8pt;font-weight:bold;"&gt;Unrealized&lt;br/&gt;Losses&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;span style="font-family:Arial;font-size:8pt;font-weight:bold;"&gt;Fair Value&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;span style="font-family:Arial;font-size:8pt;font-weight:bold;"&gt;Unrealized&lt;br/&gt;Losses&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Treasury bills&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;27,121&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;(13&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;)&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;7,488&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;(2&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;)&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;34,609&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;(15&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;)&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Asset-backed securities&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;11,621&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;(16&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;)&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;2,469&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;(1&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;)&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;14,090&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;(17&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;)&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Sovereign bonds&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;11,566&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;(6&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;)&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;&#x2014;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;&#x2014;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;11,566&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;(6&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;)&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Corporate bonds&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;8,128&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;(4&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;)&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;2,804&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;(6&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;)&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;10,932&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;(10&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;)&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Agency Bonds&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;&#x2014;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;&#x2014;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;5,914&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;(16&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;)&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;5,914&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;(16&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;)&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Municipal bonds&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;2,111&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;&#x2014;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;344&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;(1&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;)&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;2,455&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;(1&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;)&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;60,547&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;border-top:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;(39&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;)&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;19,019&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;border-top:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;(26&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;)&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;79,566&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;border-top:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;(65&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;)&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;</us-gaap:ScheduleOfUnrealizedLossOnInvestmentsTableTextBlock>
    <us-gaap:AvailableForSaleSecuritiesContinuousUnrealizedLossPositionLessThanTwelveMonthsFairValue
      contextRef="FI2019Q4_us-gaap_FinancialInstrumentAxis_us-gaap_USTreasurySecuritiesMember"
      decimals="-3"
      id="d9055830e3054-wk-Fact-96804600C09ACFF568CF9111D6F27898"
      unitRef="usd">27121000</us-gaap:AvailableForSaleSecuritiesContinuousUnrealizedLossPositionLessThanTwelveMonthsFairValue>
    <us-gaap:AvailableForSaleSecuritiesContinuousUnrealizedLossPositionLessThan12MonthsAccumulatedLoss
      contextRef="FI2019Q4_us-gaap_FinancialInstrumentAxis_us-gaap_USTreasurySecuritiesMember"
      decimals="-3"
      id="d9055830e3073-wk-Fact-CE2AFA8C5114B579A54C9111D9FB28AF"
      unitRef="usd">13000</us-gaap:AvailableForSaleSecuritiesContinuousUnrealizedLossPositionLessThan12MonthsAccumulatedLoss>
    <us-gaap:AvailableForSaleSecuritiesContinuousUnrealizedLossPositionTwelveMonthsOrLongerFairValue
      contextRef="FI2019Q4_us-gaap_FinancialInstrumentAxis_us-gaap_USTreasurySecuritiesMember"
      decimals="-3"
      id="d9055830e3093-wk-Fact-E48078D3D235436224379111DC843255"
      unitRef="usd">7488000</us-gaap:AvailableForSaleSecuritiesContinuousUnrealizedLossPositionTwelveMonthsOrLongerFairValue>
    <us-gaap:AvailableForSaleSecuritiesContinuousUnrealizedLossPosition12MonthsOrLongerAccumulatedLoss
      contextRef="FI2019Q4_us-gaap_FinancialInstrumentAxis_us-gaap_USTreasurySecuritiesMember"
      decimals="-3"
      id="d9055830e3113-wk-Fact-9FE8FA16553580B60A8C9111E01855DD"
      unitRef="usd">2000</us-gaap:AvailableForSaleSecuritiesContinuousUnrealizedLossPosition12MonthsOrLongerAccumulatedLoss>
    <us-gaap:AvailableForSaleSecuritiesContinuousUnrealizedLossPositionFairValue
      contextRef="FI2019Q4_us-gaap_FinancialInstrumentAxis_us-gaap_USTreasurySecuritiesMember"
      decimals="-3"
      id="d9055830e3133-wk-Fact-4A6B5D77751ABC4AFE639111E4577684"
      unitRef="usd">34609000</us-gaap:AvailableForSaleSecuritiesContinuousUnrealizedLossPositionFairValue>
    <us-gaap:AvailableForSaleSecuritiesContinuousUnrealizedLossPositionAccumulatedLoss
      contextRef="FI2019Q4_us-gaap_FinancialInstrumentAxis_us-gaap_USTreasurySecuritiesMember"
      decimals="-3"
      id="d9055830e3153-wk-Fact-70640A9C65CF1492F8409111E7C18DBF"
      unitRef="usd">15000</us-gaap:AvailableForSaleSecuritiesContinuousUnrealizedLossPositionAccumulatedLoss>
    <us-gaap:AvailableForSaleSecuritiesContinuousUnrealizedLossPositionLessThanTwelveMonthsFairValue
      contextRef="FI2019Q4_us-gaap_FinancialInstrumentAxis_us-gaap_AssetBackedSecuritiesMember"
      decimals="-3"
      id="d9055830e3169-wk-Fact-C24F31E43D9383A50AFB91129E66E685"
      unitRef="usd">11621000</us-gaap:AvailableForSaleSecuritiesContinuousUnrealizedLossPositionLessThanTwelveMonthsFairValue>
    <us-gaap:AvailableForSaleSecuritiesContinuousUnrealizedLossPositionLessThan12MonthsAccumulatedLoss
      contextRef="FI2019Q4_us-gaap_FinancialInstrumentAxis_us-gaap_AssetBackedSecuritiesMember"
      decimals="-3"
      id="d9055830e3188-wk-Fact-A016119768735CC740529112A0CE6BC7"
      unitRef="usd">16000</us-gaap:AvailableForSaleSecuritiesContinuousUnrealizedLossPositionLessThan12MonthsAccumulatedLoss>
    <us-gaap:AvailableForSaleSecuritiesContinuousUnrealizedLossPositionTwelveMonthsOrLongerFairValue
      contextRef="FI2019Q4_us-gaap_FinancialInstrumentAxis_us-gaap_AssetBackedSecuritiesMember"
      decimals="-3"
      id="d9055830e3208-wk-Fact-ACA803356C72AEA857469112A36E9BDE"
      unitRef="usd">2469000</us-gaap:AvailableForSaleSecuritiesContinuousUnrealizedLossPositionTwelveMonthsOrLongerFairValue>
    <us-gaap:AvailableForSaleSecuritiesContinuousUnrealizedLossPosition12MonthsOrLongerAccumulatedLoss
      contextRef="FI2019Q4_us-gaap_FinancialInstrumentAxis_us-gaap_AssetBackedSecuritiesMember"
      decimals="-3"
      id="d9055830e3228-wk-Fact-FBAC5E162793516656599112A68F67B8"
      unitRef="usd">1000</us-gaap:AvailableForSaleSecuritiesContinuousUnrealizedLossPosition12MonthsOrLongerAccumulatedLoss>
    <us-gaap:AvailableForSaleSecuritiesContinuousUnrealizedLossPositionFairValue
      contextRef="FI2019Q4_us-gaap_FinancialInstrumentAxis_us-gaap_AssetBackedSecuritiesMember"
      decimals="-3"
      id="d9055830e3248-wk-Fact-5CD5FC5393D1476F234A9112AB191FD1"
      unitRef="usd">14090000</us-gaap:AvailableForSaleSecuritiesContinuousUnrealizedLossPositionFairValue>
    <us-gaap:AvailableForSaleSecuritiesContinuousUnrealizedLossPositionAccumulatedLoss
      contextRef="FI2019Q4_us-gaap_FinancialInstrumentAxis_us-gaap_AssetBackedSecuritiesMember"
      decimals="-3"
      id="d9055830e3267-wk-Fact-EC1DB7220454E886EE9E9112ADB3DF94"
      unitRef="usd">17000</us-gaap:AvailableForSaleSecuritiesContinuousUnrealizedLossPositionAccumulatedLoss>
    <us-gaap:AvailableForSaleSecuritiesContinuousUnrealizedLossPositionLessThanTwelveMonthsFairValue
      contextRef="FI2019Q4_us-gaap_FinancialInstrumentAxis_us-gaap_SovereignDebtSecuritiesMember"
      decimals="-3"
      id="d9055830e3289-wk-Fact-587CCC53FDD3D05C8F169112F6F9427F"
      unitRef="usd">11566000</us-gaap:AvailableForSaleSecuritiesContinuousUnrealizedLossPositionLessThanTwelveMonthsFairValue>
    <us-gaap:AvailableForSaleSecuritiesContinuousUnrealizedLossPositionLessThan12MonthsAccumulatedLoss
      contextRef="FI2019Q4_us-gaap_FinancialInstrumentAxis_us-gaap_SovereignDebtSecuritiesMember"
      decimals="-3"
      id="d9055830e3308-wk-Fact-5F6EB794CF7CBEDF1BEC9112FA031070"
      unitRef="usd">6000</us-gaap:AvailableForSaleSecuritiesContinuousUnrealizedLossPositionLessThan12MonthsAccumulatedLoss>
    <us-gaap:AvailableForSaleSecuritiesContinuousUnrealizedLossPositionTwelveMonthsOrLongerFairValue
      contextRef="FI2019Q4_us-gaap_FinancialInstrumentAxis_us-gaap_SovereignDebtSecuritiesMember"
      decimals="-3"
      id="d9055830e3328-wk-Fact-F00A006F39CAAA1927459112FC77E44B"
      unitRef="usd">0</us-gaap:AvailableForSaleSecuritiesContinuousUnrealizedLossPositionTwelveMonthsOrLongerFairValue>
    <us-gaap:AvailableForSaleSecuritiesContinuousUnrealizedLossPosition12MonthsOrLongerAccumulatedLoss
      contextRef="FI2019Q4_us-gaap_FinancialInstrumentAxis_us-gaap_SovereignDebtSecuritiesMember"
      decimals="-3"
      id="d9055830e3348-wk-Fact-E1C2220294F8D4C7FCC29112FEF5C967"
      unitRef="usd">0</us-gaap:AvailableForSaleSecuritiesContinuousUnrealizedLossPosition12MonthsOrLongerAccumulatedLoss>
    <us-gaap:AvailableForSaleSecuritiesContinuousUnrealizedLossPositionFairValue
      contextRef="FI2019Q4_us-gaap_FinancialInstrumentAxis_us-gaap_SovereignDebtSecuritiesMember"
      decimals="-3"
      id="d9055830e3367-wk-Fact-4C56E8BB47BA3FB7B6A0911302A72198"
      unitRef="usd">11566000</us-gaap:AvailableForSaleSecuritiesContinuousUnrealizedLossPositionFairValue>
    <us-gaap:AvailableForSaleSecuritiesContinuousUnrealizedLossPositionAccumulatedLoss
      contextRef="FI2019Q4_us-gaap_FinancialInstrumentAxis_us-gaap_SovereignDebtSecuritiesMember"
      decimals="-3"
      id="d9055830e3386-wk-Fact-AE9286EA4E7CE07CF3669113054127C5"
      unitRef="usd">6000</us-gaap:AvailableForSaleSecuritiesContinuousUnrealizedLossPositionAccumulatedLoss>
    <us-gaap:AvailableForSaleSecuritiesContinuousUnrealizedLossPositionLessThanTwelveMonthsFairValue
      contextRef="FI2019Q4_us-gaap_FinancialInstrumentAxis_us-gaap_CorporateBondSecuritiesMember"
      decimals="-3"
      id="d9055830e3408-wk-Fact-08E9A3B924B1A03691CA8095A1983642"
      unitRef="usd">8128000</us-gaap:AvailableForSaleSecuritiesContinuousUnrealizedLossPositionLessThanTwelveMonthsFairValue>
    <us-gaap:AvailableForSaleSecuritiesContinuousUnrealizedLossPositionLessThan12MonthsAccumulatedLoss
      contextRef="FI2019Q4_us-gaap_FinancialInstrumentAxis_us-gaap_CorporateBondSecuritiesMember"
      decimals="-3"
      id="d9055830e3427-wk-Fact-60456E4008378CD6D5448095A1980B04"
      unitRef="usd">4000</us-gaap:AvailableForSaleSecuritiesContinuousUnrealizedLossPositionLessThan12MonthsAccumulatedLoss>
    <us-gaap:AvailableForSaleSecuritiesContinuousUnrealizedLossPositionTwelveMonthsOrLongerFairValue
      contextRef="FI2019Q4_us-gaap_FinancialInstrumentAxis_us-gaap_CorporateBondSecuritiesMember"
      decimals="-3"
      id="d9055830e3447-wk-Fact-AD8212A3FCB7C93E63F18095A198554A"
      unitRef="usd">2804000</us-gaap:AvailableForSaleSecuritiesContinuousUnrealizedLossPositionTwelveMonthsOrLongerFairValue>
    <us-gaap:AvailableForSaleSecuritiesContinuousUnrealizedLossPosition12MonthsOrLongerAccumulatedLoss
      contextRef="FI2019Q4_us-gaap_FinancialInstrumentAxis_us-gaap_CorporateBondSecuritiesMember"
      decimals="-3"
      id="d9055830e3467-wk-Fact-5D4EF6B12DDE6D83666B8095A198A43A"
      unitRef="usd">6000</us-gaap:AvailableForSaleSecuritiesContinuousUnrealizedLossPosition12MonthsOrLongerAccumulatedLoss>
    <us-gaap:AvailableForSaleSecuritiesContinuousUnrealizedLossPositionFairValue
      contextRef="FI2019Q4_us-gaap_FinancialInstrumentAxis_us-gaap_CorporateBondSecuritiesMember"
      decimals="-3"
      id="d9055830e3487-wk-Fact-3797768C05EAAD478BFF8095A198C248"
      unitRef="usd">10932000</us-gaap:AvailableForSaleSecuritiesContinuousUnrealizedLossPositionFairValue>
    <us-gaap:AvailableForSaleSecuritiesContinuousUnrealizedLossPositionAccumulatedLoss
      contextRef="FI2019Q4_us-gaap_FinancialInstrumentAxis_us-gaap_CorporateBondSecuritiesMember"
      decimals="-3"
      id="d9055830e3506-wk-Fact-4F8DBA4C01B41FEE26288095A1714CC4"
      unitRef="usd">10000</us-gaap:AvailableForSaleSecuritiesContinuousUnrealizedLossPositionAccumulatedLoss>
    <us-gaap:AvailableForSaleSecuritiesContinuousUnrealizedLossPositionLessThanTwelveMonthsFairValue
      contextRef="FI2019Q4_us-gaap_FinancialInstrumentAxis_cgnx_AgencyBondsMember"
      decimals="-3"
      id="d9055830e3528-wk-Fact-5BCF4393B544E6DFA8128095A1705FD3"
      unitRef="usd">0</us-gaap:AvailableForSaleSecuritiesContinuousUnrealizedLossPositionLessThanTwelveMonthsFairValue>
    <us-gaap:AvailableForSaleSecuritiesContinuousUnrealizedLossPositionLessThan12MonthsAccumulatedLoss
      contextRef="FI2019Q4_us-gaap_FinancialInstrumentAxis_cgnx_AgencyBondsMember"
      decimals="-3"
      id="d9055830e3547-wk-Fact-C88CA5E7DD2D697F28958095A171B78A"
      unitRef="usd">0</us-gaap:AvailableForSaleSecuritiesContinuousUnrealizedLossPositionLessThan12MonthsAccumulatedLoss>
    <us-gaap:AvailableForSaleSecuritiesContinuousUnrealizedLossPositionTwelveMonthsOrLongerFairValue
      contextRef="FI2019Q4_us-gaap_FinancialInstrumentAxis_cgnx_AgencyBondsMember"
      decimals="-3"
      id="d9055830e3566-wk-Fact-B52FA20BA6284B201EA88095A1705367"
      unitRef="usd">5914000</us-gaap:AvailableForSaleSecuritiesContinuousUnrealizedLossPositionTwelveMonthsOrLongerFairValue>
    <us-gaap:AvailableForSaleSecuritiesContinuousUnrealizedLossPosition12MonthsOrLongerAccumulatedLoss
      contextRef="FI2019Q4_us-gaap_FinancialInstrumentAxis_cgnx_AgencyBondsMember"
      decimals="-3"
      id="d9055830e3586-wk-Fact-4E644C0186EF4D5E9AD78095A1715F9E"
      unitRef="usd">16000</us-gaap:AvailableForSaleSecuritiesContinuousUnrealizedLossPosition12MonthsOrLongerAccumulatedLoss>
    <us-gaap:AvailableForSaleSecuritiesContinuousUnrealizedLossPositionFairValue
      contextRef="FI2019Q4_us-gaap_FinancialInstrumentAxis_cgnx_AgencyBondsMember"
      decimals="-3"
      id="d9055830e3606-wk-Fact-3FE5EBDA0DAD225CD4598095A170702B"
      unitRef="usd">5914000</us-gaap:AvailableForSaleSecuritiesContinuousUnrealizedLossPositionFairValue>
    <us-gaap:AvailableForSaleSecuritiesContinuousUnrealizedLossPositionAccumulatedLoss
      contextRef="FI2019Q4_us-gaap_FinancialInstrumentAxis_cgnx_AgencyBondsMember"
      decimals="-3"
      id="d9055830e3625-wk-Fact-B855AAEB6FCE2843BA2B8095A170B5C4"
      unitRef="usd">16000</us-gaap:AvailableForSaleSecuritiesContinuousUnrealizedLossPositionAccumulatedLoss>
    <us-gaap:AvailableForSaleSecuritiesContinuousUnrealizedLossPositionLessThanTwelveMonthsFairValue
      contextRef="FI2019Q4_us-gaap_FinancialInstrumentAxis_us-gaap_MunicipalBondsMember"
      decimals="-3"
      id="d9055830e3647-wk-Fact-A1262FC8393EFBEBDDA58095A1982ED0"
      unitRef="usd">2111000</us-gaap:AvailableForSaleSecuritiesContinuousUnrealizedLossPositionLessThanTwelveMonthsFairValue>
    <us-gaap:AvailableForSaleSecuritiesContinuousUnrealizedLossPositionLessThan12MonthsAccumulatedLoss
      contextRef="FI2019Q4_us-gaap_FinancialInstrumentAxis_us-gaap_MunicipalBondsMember"
      decimals="-3"
      id="d9055830e3666-wk-Fact-9BD077DE9B87396617FD8095A1999BB0"
      unitRef="usd">0</us-gaap:AvailableForSaleSecuritiesContinuousUnrealizedLossPositionLessThan12MonthsAccumulatedLoss>
    <us-gaap:AvailableForSaleSecuritiesContinuousUnrealizedLossPositionTwelveMonthsOrLongerFairValue
      contextRef="FI2019Q4_us-gaap_FinancialInstrumentAxis_us-gaap_MunicipalBondsMember"
      decimals="-3"
      id="d9055830e3685-wk-Fact-96D1509367CB869137168095A1982885"
      unitRef="usd">344000</us-gaap:AvailableForSaleSecuritiesContinuousUnrealizedLossPositionTwelveMonthsOrLongerFairValue>
    <us-gaap:AvailableForSaleSecuritiesContinuousUnrealizedLossPosition12MonthsOrLongerAccumulatedLoss
      contextRef="FI2019Q4_us-gaap_FinancialInstrumentAxis_us-gaap_MunicipalBondsMember"
      decimals="-3"
      id="d9055830e3705-wk-Fact-0C8CD1F530838E03C33D8095A1978CD5"
      unitRef="usd">1000</us-gaap:AvailableForSaleSecuritiesContinuousUnrealizedLossPosition12MonthsOrLongerAccumulatedLoss>
    <us-gaap:AvailableForSaleSecuritiesContinuousUnrealizedLossPositionFairValue
      contextRef="FI2019Q4_us-gaap_FinancialInstrumentAxis_us-gaap_MunicipalBondsMember"
      decimals="-3"
      id="d9055830e3725-wk-Fact-D20061AE493362E7763D8095A171BBAC"
      unitRef="usd">2455000</us-gaap:AvailableForSaleSecuritiesContinuousUnrealizedLossPositionFairValue>
    <us-gaap:AvailableForSaleSecuritiesContinuousUnrealizedLossPositionAccumulatedLoss
      contextRef="FI2019Q4_us-gaap_FinancialInstrumentAxis_us-gaap_MunicipalBondsMember"
      decimals="-3"
      id="d9055830e3744-wk-Fact-8CA5A3CA44443AC2FCAF8095A1999AFD"
      unitRef="usd">1000</us-gaap:AvailableForSaleSecuritiesContinuousUnrealizedLossPositionAccumulatedLoss>
    <us-gaap:AvailableForSaleSecuritiesContinuousUnrealizedLossPositionLessThanTwelveMonthsFairValue
      contextRef="FI2019Q4"
      decimals="-3"
      id="d9055830e3771-wk-Fact-EA2EE00268B9C8E3CA5F8095A1984DB8"
      unitRef="usd">60547000</us-gaap:AvailableForSaleSecuritiesContinuousUnrealizedLossPositionLessThanTwelveMonthsFairValue>
    <us-gaap:AvailableForSaleSecuritiesContinuousUnrealizedLossPositionLessThan12MonthsAccumulatedLoss
      contextRef="FI2019Q4"
      decimals="-3"
      id="d9055830e3790-wk-Fact-DFCAEF497C00F1D9F3AC8095A1989A55"
      unitRef="usd">39000</us-gaap:AvailableForSaleSecuritiesContinuousUnrealizedLossPositionLessThan12MonthsAccumulatedLoss>
    <us-gaap:AvailableForSaleSecuritiesContinuousUnrealizedLossPositionTwelveMonthsOrLongerFairValue
      contextRef="FI2019Q4"
      decimals="-3"
      id="d9055830e3810-wk-Fact-75534A7D592CC637608B8095A171B1EE"
      unitRef="usd">19019000</us-gaap:AvailableForSaleSecuritiesContinuousUnrealizedLossPositionTwelveMonthsOrLongerFairValue>
    <us-gaap:AvailableForSaleSecuritiesContinuousUnrealizedLossPosition12MonthsOrLongerAccumulatedLoss
      contextRef="FI2019Q4"
      decimals="-3"
      id="d9055830e3830-wk-Fact-E77A03C9D740E65417DD8095A198F7D5"
      unitRef="usd">26000</us-gaap:AvailableForSaleSecuritiesContinuousUnrealizedLossPosition12MonthsOrLongerAccumulatedLoss>
    <us-gaap:AvailableForSaleSecuritiesContinuousUnrealizedLossPositionFairValue
      contextRef="FI2019Q4"
      decimals="-3"
      id="d9055830e3850-wk-Fact-5A6E8FC77E91C97DE2248095A198ED17"
      unitRef="usd">79566000</us-gaap:AvailableForSaleSecuritiesContinuousUnrealizedLossPositionFairValue>
    <us-gaap:AvailableForSaleSecuritiesContinuousUnrealizedLossPositionAccumulatedLoss
      contextRef="FI2019Q4"
      decimals="-3"
      id="d9055830e3870-wk-Fact-922FAACCC3B213E90BF68095A198FCC1"
      unitRef="usd">65000</us-gaap:AvailableForSaleSecuritiesContinuousUnrealizedLossPositionAccumulatedLoss>
    <us-gaap:AvailableForSaleSecuritiesGrossRealizedGains
      contextRef="FD2019Q4YTD"
      decimals="-3"
      id="d9055830e3897-wk-Fact-1558A005A0C864A3B2898095A195A75B"
      unitRef="usd">1581000</us-gaap:AvailableForSaleSecuritiesGrossRealizedGains>
    <us-gaap:AvailableForSaleSecuritiesGrossRealizedGains
      contextRef="FD2018Q4YTD"
      decimals="-3"
      id="d9055830e3905-wk-Fact-AAFEA8F702A0C18640348095A190348C"
      unitRef="usd">669000</us-gaap:AvailableForSaleSecuritiesGrossRealizedGains>
    <us-gaap:AvailableForSaleSecuritiesGrossRealizedGains
      contextRef="FD2017Q4YTD"
      decimals="-3"
      id="d9055830e3913-wk-Fact-22AF0AAD31649B85FE018095A18FFF25"
      unitRef="usd">929000</us-gaap:AvailableForSaleSecuritiesGrossRealizedGains>
    <us-gaap:AvailableForSaleSecuritiesGrossRealizedLosses
      contextRef="FD2019Q4YTD"
      decimals="-3"
      id="d9055830e3918-wk-Fact-80D206587E9BFA35AD408095A190ADE9"
      unitRef="usd">129000</us-gaap:AvailableForSaleSecuritiesGrossRealizedLosses>
    <us-gaap:AvailableForSaleSecuritiesGrossRealizedLosses
      contextRef="FD2018Q4YTD"
      decimals="-3"
      id="d9055830e3926-wk-Fact-BD2A5C14C0B6FF377CF18095A18DBFB6"
      unitRef="usd">168000</us-gaap:AvailableForSaleSecuritiesGrossRealizedLosses>
    <us-gaap:AvailableForSaleSecuritiesGrossRealizedLosses
      contextRef="FD2017Q4YTD"
      decimals="-3"
      id="d9055830e3934-wk-Fact-A4261BBB7876B3C83E298095A190981E"
      unitRef="usd">100000</us-gaap:AvailableForSaleSecuritiesGrossRealizedLosses>
    <us-gaap:InvestmentsClassifiedByContractualMaturityDateTableTextBlock
      contextRef="FD2019Q4YTD"
      id="TextSelection-9910F8B9219EB5AE4F688095A1A84A13-0-wk-Fact-82E32E9E3DB8567FBD948095A18FFCFD">&lt;div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;The following table summarizes the effective maturity dates of the Company&#x2019;s available-for-sale investments as of December&#160;31, &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;color:#000000;text-decoration:none;"&gt;2019&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt; (in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:120%;font-size:10pt;"&gt;&lt;div style="padding-left:0px;text-indent:0px;line-height:normal;padding-top:10px;"&gt;&lt;table cellpadding="0" cellspacing="0" style="font-family:Times New Roman;font-size:10pt;width:100%;border-collapse:collapse;text-align:left;"&gt;&lt;tr&gt;&lt;td colspan="24"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="width:35%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:9%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:9%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:7%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:7%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:7%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:9%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;span style="font-family:Arial;font-size:8pt;font-weight:bold;"&gt;&amp;lt;1&#160;Year&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;span style="font-family:Arial;font-size:8pt;font-weight:bold;"&gt;1-2&#160;Years&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;span style="font-family:Arial;font-size:8pt;font-weight:bold;"&gt;2-3&#160;Years&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;span style="font-family:Arial;font-size:8pt;font-weight:bold;"&gt;3-4&#160;Years&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;span style="font-family:Arial;font-size:8pt;font-weight:bold;"&gt;4-5&#160;Years&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;span style="font-family:Arial;font-size:8pt;font-weight:bold;"&gt;Total&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Treasury bills&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;92,914&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;187,917&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;28,417&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;&#x2014;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;&#x2014;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;309,248&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Corporate bonds&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;65,624&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;88,033&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;54,208&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;4,233&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;&#x2014;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;212,098&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Asset-backed securities&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;66,680&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;17,744&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;24,089&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;3,423&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;1,147&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;113,083&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Sovereign bonds&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;6,294&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;16,005&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;&#x2014;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;&#x2014;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;&#x2014;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;22,299&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Municipal bonds&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;4,630&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;2,322&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;&#x2014;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;&#x2014;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;&#x2014;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;6,952&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Agency bonds&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;&#x2014;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;&#x2014;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;5,914&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;&#x2014;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;&#x2014;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;5,914&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;236,142&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;border-top:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;312,021&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;border-top:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;112,628&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;border-top:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;7,656&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;border-top:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;1,147&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;border-top:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;669,594&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;border-top:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;</us-gaap:InvestmentsClassifiedByContractualMaturityDateTableTextBlock>
    <us-gaap:AvailableForSaleSecuritiesDebtMaturitiesWithinOneYearFairValue
      contextRef="FI2019Q4_us-gaap_FinancialInstrumentAxis_us-gaap_USTreasurySecuritiesMember"
      decimals="-3"
      id="d9055830e4123-wk-Fact-BBB31AC25E694E0A71B99113D1C13E5E"
      unitRef="usd">92914000</us-gaap:AvailableForSaleSecuritiesDebtMaturitiesWithinOneYearFairValue>
    <cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterOneYearBeforeTwoYearsFairValue
      contextRef="FI2019Q4_us-gaap_FinancialInstrumentAxis_us-gaap_USTreasurySecuritiesMember"
      decimals="-3"
      id="d9055830e4142-wk-Fact-9BE28FAFA637B10CAFCC9113D51BAEE0"
      unitRef="usd">187917000</cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterOneYearBeforeTwoYearsFairValue>
    <cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterTwoYearsBeforeThreeYearsFairValue
      contextRef="FI2019Q4_us-gaap_FinancialInstrumentAxis_us-gaap_USTreasurySecuritiesMember"
      decimals="-3"
      id="d9055830e4161-wk-Fact-4A2C85122FF679420F5E9113D88D121E"
      unitRef="usd">28417000</cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterTwoYearsBeforeThreeYearsFairValue>
    <cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterThreeYearsBeforeFourYearsFairValue
      contextRef="FI2019Q4_us-gaap_FinancialInstrumentAxis_us-gaap_USTreasurySecuritiesMember"
      decimals="-3"
      id="d9055830e4181-wk-Fact-53B0DD984076B8652CDA9113DB202008"
      unitRef="usd">0</cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterThreeYearsBeforeFourYearsFairValue>
    <cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterFourYearsBeforeFiveYearsFairValue
      contextRef="FI2019Q4_us-gaap_FinancialInstrumentAxis_us-gaap_USTreasurySecuritiesMember"
      decimals="-3"
      id="d9055830e4200-wk-Fact-7D5C4407B5FDEC8931899113DE692165"
      unitRef="usd">0</cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterFourYearsBeforeFiveYearsFairValue>
    <us-gaap:AvailableForSaleSecuritiesDebtSecurities
      contextRef="FI2019Q4_us-gaap_FinancialInstrumentAxis_us-gaap_USTreasurySecuritiesMember"
      decimals="-3"
      id="d9055830e4220-wk-Fact-234E6551190CB3DB15829113E343E0DC"
      unitRef="usd">309248000</us-gaap:AvailableForSaleSecuritiesDebtSecurities>
    <us-gaap:AvailableForSaleSecuritiesDebtMaturitiesWithinOneYearFairValue
      contextRef="FI2019Q4_us-gaap_FinancialInstrumentAxis_us-gaap_CorporateBondSecuritiesMember"
      decimals="-3"
      id="d9055830e4235-wk-Fact-E066CEA99BFA5F345AC08095A1719FCA"
      unitRef="usd">65624000</us-gaap:AvailableForSaleSecuritiesDebtMaturitiesWithinOneYearFairValue>
    <cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterOneYearBeforeTwoYearsFairValue
      contextRef="FI2019Q4_us-gaap_FinancialInstrumentAxis_us-gaap_CorporateBondSecuritiesMember"
      decimals="-3"
      id="d9055830e4254-wk-Fact-880AF2CAC4B2E2C7FC6C8095A172F29F"
      unitRef="usd">88033000</cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterOneYearBeforeTwoYearsFairValue>
    <cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterTwoYearsBeforeThreeYearsFairValue
      contextRef="FI2019Q4_us-gaap_FinancialInstrumentAxis_us-gaap_CorporateBondSecuritiesMember"
      decimals="-3"
      id="d9055830e4273-wk-Fact-40622CAC869B6989779C8095A1714A0F"
      unitRef="usd">54208000</cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterTwoYearsBeforeThreeYearsFairValue>
    <cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterThreeYearsBeforeFourYearsFairValue
      contextRef="FI2019Q4_us-gaap_FinancialInstrumentAxis_us-gaap_CorporateBondSecuritiesMember"
      decimals="-3"
      id="d9055830e4293-wk-Fact-0B825DA7A839E2FB2EAA8095A17059EA"
      unitRef="usd">4233000</cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterThreeYearsBeforeFourYearsFairValue>
    <cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterFourYearsBeforeFiveYearsFairValue
      contextRef="FI2019Q4_us-gaap_FinancialInstrumentAxis_us-gaap_CorporateBondSecuritiesMember"
      decimals="-3"
      id="d9055830e4312-wk-Fact-85260E3B82CB712A52068095A198DF54"
      unitRef="usd">0</cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterFourYearsBeforeFiveYearsFairValue>
    <us-gaap:AvailableForSaleSecuritiesDebtSecurities
      contextRef="FI2019Q4_us-gaap_FinancialInstrumentAxis_us-gaap_CorporateBondSecuritiesMember"
      decimals="-3"
      id="d9055830e4331-wk-Fact-781B4F8AC072B5DBEA268095A1725EAF"
      unitRef="usd">212098000</us-gaap:AvailableForSaleSecuritiesDebtSecurities>
    <us-gaap:AvailableForSaleSecuritiesDebtMaturitiesWithinOneYearFairValue
      contextRef="FI2019Q4_us-gaap_FinancialInstrumentAxis_us-gaap_AssetBackedSecuritiesMember"
      decimals="-3"
      id="d9055830e4352-wk-Fact-EB2564FB359500E4934A8095A172F4A8"
      unitRef="usd">66680000</us-gaap:AvailableForSaleSecuritiesDebtMaturitiesWithinOneYearFairValue>
    <cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterOneYearBeforeTwoYearsFairValue
      contextRef="FI2019Q4_us-gaap_FinancialInstrumentAxis_us-gaap_AssetBackedSecuritiesMember"
      decimals="-3"
      id="d9055830e4371-wk-Fact-611358E723F7D8E463198095A172512D"
      unitRef="usd">17744000</cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterOneYearBeforeTwoYearsFairValue>
    <cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterTwoYearsBeforeThreeYearsFairValue
      contextRef="FI2019Q4_us-gaap_FinancialInstrumentAxis_us-gaap_AssetBackedSecuritiesMember"
      decimals="-3"
      id="d9055830e4390-wk-Fact-06F739167F96AE6329A68095A1991153"
      unitRef="usd">24089000</cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterTwoYearsBeforeThreeYearsFairValue>
    <cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterThreeYearsBeforeFourYearsFairValue
      contextRef="FI2019Q4_us-gaap_FinancialInstrumentAxis_us-gaap_AssetBackedSecuritiesMember"
      decimals="-3"
      id="d9055830e4410-wk-Fact-1EB107BE524C706D3C068095A17120C7"
      unitRef="usd">3423000</cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterThreeYearsBeforeFourYearsFairValue>
    <cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterFourYearsBeforeFiveYearsFairValue
      contextRef="FI2019Q4_us-gaap_FinancialInstrumentAxis_us-gaap_AssetBackedSecuritiesMember"
      decimals="-3"
      id="d9055830e4429-wk-Fact-242382469AC6C8CD80878095A1715988"
      unitRef="usd">1147000</cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterFourYearsBeforeFiveYearsFairValue>
    <us-gaap:AvailableForSaleSecuritiesDebtSecurities
      contextRef="FI2019Q4_us-gaap_FinancialInstrumentAxis_us-gaap_AssetBackedSecuritiesMember"
      decimals="-3"
      id="d9055830e4448-wk-Fact-FF4FE11157EDA281A4AA8095A171AD2B"
      unitRef="usd">113083000</us-gaap:AvailableForSaleSecuritiesDebtSecurities>
    <us-gaap:AvailableForSaleSecuritiesDebtMaturitiesWithinOneYearFairValue
      contextRef="FI2019Q4_us-gaap_FinancialInstrumentAxis_us-gaap_SovereignDebtSecuritiesMember"
      decimals="-3"
      id="d9055830e4469-wk-Fact-05A1D7BD2BC380FE5C538095A17245AE"
      unitRef="usd">6294000</us-gaap:AvailableForSaleSecuritiesDebtMaturitiesWithinOneYearFairValue>
    <cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterOneYearBeforeTwoYearsFairValue
      contextRef="FI2019Q4_us-gaap_FinancialInstrumentAxis_us-gaap_SovereignDebtSecuritiesMember"
      decimals="-3"
      id="d9055830e4488-wk-Fact-0C4266DD430FF3B1FFD48095A170C9C1"
      unitRef="usd">16005000</cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterOneYearBeforeTwoYearsFairValue>
    <cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterTwoYearsBeforeThreeYearsFairValue
      contextRef="FI2019Q4_us-gaap_FinancialInstrumentAxis_us-gaap_SovereignDebtSecuritiesMember"
      decimals="-3"
      id="d9055830e4507-wk-Fact-CCB952D7B3D31E2D73908095A171A673"
      unitRef="usd">0</cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterTwoYearsBeforeThreeYearsFairValue>
    <cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterThreeYearsBeforeFourYearsFairValue
      contextRef="FI2019Q4_us-gaap_FinancialInstrumentAxis_us-gaap_SovereignDebtSecuritiesMember"
      decimals="-3"
      id="d9055830e4527-wk-Fact-A3F398D3908899ACED388095A172ECBE"
      unitRef="usd">0</cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterThreeYearsBeforeFourYearsFairValue>
    <cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterFourYearsBeforeFiveYearsFairValue
      contextRef="FI2019Q4_us-gaap_FinancialInstrumentAxis_us-gaap_SovereignDebtSecuritiesMember"
      decimals="-3"
      id="d9055830e4546-wk-Fact-B36AB5D8852C104BA38A8095A1980222"
      unitRef="usd">0</cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterFourYearsBeforeFiveYearsFairValue>
    <us-gaap:AvailableForSaleSecuritiesDebtSecurities
      contextRef="FI2019Q4_us-gaap_FinancialInstrumentAxis_us-gaap_SovereignDebtSecuritiesMember"
      decimals="-3"
      id="d9055830e4565-wk-Fact-466877E091AD9E5036D78095A1719A78"
      unitRef="usd">22299000</us-gaap:AvailableForSaleSecuritiesDebtSecurities>
    <us-gaap:AvailableForSaleSecuritiesDebtMaturitiesWithinOneYearFairValue
      contextRef="FI2019Q4_us-gaap_FinancialInstrumentAxis_us-gaap_MunicipalBondsMember"
      decimals="-3"
      id="d9055830e4586-wk-Fact-898D2F9D2369DB7D6B2CC4D5898F8740"
      unitRef="usd">4630000</us-gaap:AvailableForSaleSecuritiesDebtMaturitiesWithinOneYearFairValue>
    <cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterOneYearBeforeTwoYearsFairValue
      contextRef="FI2019Q4_us-gaap_FinancialInstrumentAxis_us-gaap_MunicipalBondsMember"
      decimals="-3"
      id="d9055830e4605-wk-Fact-9C7A8F1844549BCAA0A3C4D58C7C142A"
      unitRef="usd">2322000</cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterOneYearBeforeTwoYearsFairValue>
    <cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterTwoYearsBeforeThreeYearsFairValue
      contextRef="FI2019Q4_us-gaap_FinancialInstrumentAxis_us-gaap_MunicipalBondsMember"
      decimals="-3"
      id="d9055830e4624-wk-Fact-6D15ADC5F970FECBF7A5C4D58EEB80E8"
      unitRef="usd">0</cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterTwoYearsBeforeThreeYearsFairValue>
    <cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterThreeYearsBeforeFourYearsFairValue
      contextRef="FI2019Q4_us-gaap_FinancialInstrumentAxis_us-gaap_MunicipalBondsMember"
      decimals="-3"
      id="d9055830e4644-wk-Fact-0FD6A801B57998EF581CC4D592B5415F"
      unitRef="usd">0</cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterThreeYearsBeforeFourYearsFairValue>
    <cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterFourYearsBeforeFiveYearsFairValue
      contextRef="FI2019Q4_us-gaap_FinancialInstrumentAxis_us-gaap_MunicipalBondsMember"
      decimals="-3"
      id="d9055830e4663-wk-Fact-7D5E2796B364CDEFB0D1C4D59691C771"
      unitRef="usd">0</cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterFourYearsBeforeFiveYearsFairValue>
    <us-gaap:AvailableForSaleSecuritiesDebtSecurities
      contextRef="FI2019Q4_us-gaap_FinancialInstrumentAxis_us-gaap_MunicipalBondsMember"
      decimals="-3"
      id="d9055830e4682-wk-Fact-A69199C9B6C10495F80BC4D59C619829"
      unitRef="usd">6952000</us-gaap:AvailableForSaleSecuritiesDebtSecurities>
    <us-gaap:AvailableForSaleSecuritiesDebtMaturitiesWithinOneYearFairValue
      contextRef="FI2019Q4_us-gaap_FinancialInstrumentAxis_cgnx_AgencyBondsMember"
      decimals="-3"
      id="d9055830e4703-wk-Fact-675084540ED24CDF71B58095A1718843"
      unitRef="usd">0</us-gaap:AvailableForSaleSecuritiesDebtMaturitiesWithinOneYearFairValue>
    <cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterOneYearBeforeTwoYearsFairValue
      contextRef="FI2019Q4_us-gaap_FinancialInstrumentAxis_cgnx_AgencyBondsMember"
      decimals="-3"
      id="d9055830e4722-wk-Fact-DB9ED47BC4D658365AC58095A19999C8"
      unitRef="usd">0</cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterOneYearBeforeTwoYearsFairValue>
    <cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterTwoYearsBeforeThreeYearsFairValue
      contextRef="FI2019Q4_us-gaap_FinancialInstrumentAxis_cgnx_AgencyBondsMember"
      decimals="-3"
      id="d9055830e4741-wk-Fact-889938BF580CAB3371D58095A17175FC"
      unitRef="usd">5914000</cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterTwoYearsBeforeThreeYearsFairValue>
    <cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterThreeYearsBeforeFourYearsFairValue
      contextRef="FI2019Q4_us-gaap_FinancialInstrumentAxis_cgnx_AgencyBondsMember"
      decimals="-3"
      id="d9055830e4761-wk-Fact-23A076F425FA2C5494C28095A1997FB6"
      unitRef="usd">0</cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterThreeYearsBeforeFourYearsFairValue>
    <cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterFourYearsBeforeFiveYearsFairValue
      contextRef="FI2019Q4_us-gaap_FinancialInstrumentAxis_cgnx_AgencyBondsMember"
      decimals="-3"
      id="d9055830e4780-wk-Fact-FF148AF9A5EE771D01E48095A199956E"
      unitRef="usd">0</cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterFourYearsBeforeFiveYearsFairValue>
    <us-gaap:AvailableForSaleSecuritiesDebtSecurities
      contextRef="FI2019Q4_us-gaap_FinancialInstrumentAxis_cgnx_AgencyBondsMember"
      decimals="-3"
      id="d9055830e4799-wk-Fact-599D191162A4E82C4C8B8095A1728607"
      unitRef="usd">5914000</us-gaap:AvailableForSaleSecuritiesDebtSecurities>
    <us-gaap:AvailableForSaleSecuritiesDebtMaturitiesWithinOneYearFairValue
      contextRef="FI2019Q4"
      decimals="-3"
      id="d9055830e4825-wk-Fact-1786A8654A2770F171AC8095A199D451"
      unitRef="usd">236142000</us-gaap:AvailableForSaleSecuritiesDebtMaturitiesWithinOneYearFairValue>
    <cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterOneYearBeforeTwoYearsFairValue
      contextRef="FI2019Q4"
      decimals="-3"
      id="d9055830e4844-wk-Fact-8CA59A4827A98EDB34DB8095A1712AB8"
      unitRef="usd">312021000</cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterOneYearBeforeTwoYearsFairValue>
    <cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterTwoYearsBeforeThreeYearsFairValue
      contextRef="FI2019Q4"
      decimals="-3"
      id="d9055830e4863-wk-Fact-06C2C38F906DF874E4E08095A171A31C"
      unitRef="usd">112628000</cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterTwoYearsBeforeThreeYearsFairValue>
    <cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterThreeYearsBeforeFourYearsFairValue
      contextRef="FI2019Q4"
      decimals="-3"
      id="d9055830e4883-wk-Fact-2D942BB7ED9AA995CB998095A1714C4E"
      unitRef="usd">7656000</cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterThreeYearsBeforeFourYearsFairValue>
    <cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterFourYearsBeforeFiveYearsFairValue
      contextRef="FI2019Q4"
      decimals="-3"
      id="d9055830e4902-wk-Fact-49451CD252E0A90751FF8095A1722E8C"
      unitRef="usd">1147000</cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterFourYearsBeforeFiveYearsFairValue>
    <us-gaap:AvailableForSaleSecuritiesDebtSecurities
      contextRef="FI2019Q4"
      decimals="-3"
      id="d9055830e4922-wk-Fact-407782CEF3C3CA9A50488095A17C8917"
      unitRef="usd">669594000</us-gaap:AvailableForSaleSecuritiesDebtSecurities>
    <us-gaap:InventoryDisclosureTextBlock
      contextRef="FD2019Q4YTD"
      id="TextSelection-F5D2EC8275EA7371285A8095A1A8E223-0-wk-Fact-198631D812C806D397948095A18422EB">Inventories&lt;div style="line-height:120%;padding-top:6px;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Inventories consisted of the following (in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:120%;font-size:10pt;"&gt;&lt;div style="padding-left:0px;text-indent:0px;line-height:normal;padding-top:10px;"&gt;&lt;table cellpadding="0" cellspacing="0" style="font-family:Times New Roman;font-size:10pt;width:100%;border-collapse:collapse;text-align:left;"&gt;&lt;tr&gt;&lt;td colspan="8"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="width:71%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:12%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:12%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;span style="font-family:inherit;font-size:8pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="7" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;span style="font-family:Arial;font-size:8pt;font-weight:bold;"&gt;December&#160;31,&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:8pt;"&gt;&lt;span style="font-family:inherit;font-size:8pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;span style="font-family:Arial;font-size:8pt;font-weight:bold;"&gt;2019&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;span style="font-family:Arial;font-size:8pt;"&gt;2018&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Raw materials&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;27,285&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;42,738&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;border-top:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Work-in-process&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;5,503&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;3,435&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Finished goods&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;27,473&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;37,109&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;60,261&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;83,282&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;</us-gaap:InventoryDisclosureTextBlock>
    <us-gaap:ScheduleOfInventoryCurrentTableTextBlock
      contextRef="FD2019Q4YTD"
      id="TextSelection-BE5FE71DD8207FDA133F8095A1A8D1D9-0-wk-Fact-A5E78745A35113F57B6E8095A18469C3">&lt;div style="line-height:120%;padding-top:6px;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Inventories consisted of the following (in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:120%;font-size:10pt;"&gt;&lt;div style="padding-left:0px;text-indent:0px;line-height:normal;padding-top:10px;"&gt;&lt;table cellpadding="0" cellspacing="0" style="font-family:Times New Roman;font-size:10pt;width:100%;border-collapse:collapse;text-align:left;"&gt;&lt;tr&gt;&lt;td colspan="8"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="width:71%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:12%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:12%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;span style="font-family:inherit;font-size:8pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="7" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;span style="font-family:Arial;font-size:8pt;font-weight:bold;"&gt;December&#160;31,&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:8pt;"&gt;&lt;span style="font-family:inherit;font-size:8pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;span style="font-family:Arial;font-size:8pt;font-weight:bold;"&gt;2019&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;span style="font-family:Arial;font-size:8pt;"&gt;2018&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Raw materials&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;27,285&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;42,738&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;border-top:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Work-in-process&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;5,503&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;3,435&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Finished goods&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;27,473&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;37,109&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;60,261&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;83,282&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;</us-gaap:ScheduleOfInventoryCurrentTableTextBlock>
    <us-gaap:InventoryRawMaterialsNetOfReserves
      contextRef="FI2019Q4"
      decimals="-3"
      id="d9049948e763-wk-Fact-612682226646DCF05F7B8095A1856498"
      unitRef="usd">27285000</us-gaap:InventoryRawMaterialsNetOfReserves>
    <us-gaap:InventoryRawMaterialsNetOfReserves
      contextRef="FI2018Q4"
      decimals="-3"
      id="d9049948e782-wk-Fact-9D721913AF37E04ECCAE8095A185FF70"
      unitRef="usd">42738000</us-gaap:InventoryRawMaterialsNetOfReserves>
    <us-gaap:InventoryWorkInProcessNetOfReserves
      contextRef="FI2019Q4"
      decimals="-3"
      id="d9049948e797-wk-Fact-AFD62498C9B079FC5E088095A18572BD"
      unitRef="usd">5503000</us-gaap:InventoryWorkInProcessNetOfReserves>
    <us-gaap:InventoryWorkInProcessNetOfReserves
      contextRef="FI2018Q4"
      decimals="-3"
      id="d9049948e816-wk-Fact-EE715E5F6DE5E1AB01D68095A185544C"
      unitRef="usd">3435000</us-gaap:InventoryWorkInProcessNetOfReserves>
    <us-gaap:InventoryFinishedGoodsNetOfReserves
      contextRef="FI2019Q4"
      decimals="-3"
      id="d9049948e836-wk-Fact-C9B1D08F041A686A5C998095A1852A7D"
      unitRef="usd">27473000</us-gaap:InventoryFinishedGoodsNetOfReserves>
    <us-gaap:InventoryFinishedGoodsNetOfReserves
      contextRef="FI2018Q4"
      decimals="-3"
      id="d9049948e855-wk-Fact-BAAD54F83F11E2DDFCBC8095A1856296"
      unitRef="usd">37109000</us-gaap:InventoryFinishedGoodsNetOfReserves>
    <us-gaap:InventoryNet
      contextRef="FI2019Q4"
      decimals="-3"
      id="d9049948e880-wk-Fact-F82BFB3E5789124E33788095A18C509C"
      unitRef="usd">60261000</us-gaap:InventoryNet>
    <us-gaap:InventoryNet
      contextRef="FI2018Q4"
      decimals="-3"
      id="d9049948e899-wk-Fact-8C11A83E6F7307E19AA68095A18DF44A"
      unitRef="usd">83282000</us-gaap:InventoryNet>
    <us-gaap:PropertyPlantAndEquipmentDisclosureTextBlock
      contextRef="FD2019Q4YTD"
      id="TextSelection-4E3C43513DAA19BD5D8C8095A1A82F58-0-wk-Fact-3010EDCED83AF77C5E148095A18D6A75">Property, Plant, and Equipment&lt;div style="line-height:120%;padding-top:6px;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Property, plant, and equipment consisted of the following (in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:120%;font-size:10pt;"&gt;&lt;div style="padding-left:0px;text-indent:0px;line-height:normal;padding-top:10px;"&gt;&lt;table cellpadding="0" cellspacing="0" style="font-family:Times New Roman;font-size:10pt;width:100%;border-collapse:collapse;text-align:left;"&gt;&lt;tr&gt;&lt;td colspan="8"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="width:71%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:12%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:12%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:8pt;"&gt;&lt;span style="font-family:inherit;font-size:8pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="7" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;span style="font-family:Arial;font-size:8pt;font-weight:bold;"&gt;December&#160;31,&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:8pt;"&gt;&lt;span style="font-family:inherit;font-size:8pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;span style="font-family:Arial;font-size:8pt;font-weight:bold;"&gt;2019&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;span style="font-family:Arial;font-size:8pt;"&gt;2018&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Land&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;3,951&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;3,951&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;border-top:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Buildings&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;24,533&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;24,533&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Building improvements&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;49,289&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;45,067&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Leasehold improvements&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;10,790&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;9,095&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Computer hardware and software&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;67,474&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;66,542&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Manufacturing test equipment&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;31,278&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;27,378&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Furniture and fixtures&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;6,800&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;6,904&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;194,115&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;183,470&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Less: accumulated depreciation&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;(104,672&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;)&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;(92,074&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;)&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;89,443&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;91,396&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;The cost of disposed property, plant, and equipment totaling &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;$8,883,000&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt; and &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;color:#000000;text-decoration:none;"&gt;&lt;span&gt;$6,367,000&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt; was removed from the asset balance in &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;color:#000000;text-decoration:none;"&gt;2019&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt; and &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;color:#000000;text-decoration:none;"&gt;2018&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;, respectively.  The cost of disposed property, plant, and equipment totaling &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;$8,559,000&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt; and &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;$6,367,000&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt; was removed from the accumulated depreciation balance in &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;2019&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt; and &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;2018&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;, respectively.  Gains and losses on these disposals were immaterial in both years.&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Buildings include rental property with a cost basis of &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;$800,000&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt; as of December&#160;31, &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;2019&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt; and &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;2018&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;, and accumulated depreciation of &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;$255,000&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt; and &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;$234,000&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt; as of December&#160;31, &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;2019&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt; and &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;2018&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;, respectively.&lt;/span&gt;&lt;/div&gt;</us-gaap:PropertyPlantAndEquipmentDisclosureTextBlock>
    <us-gaap:PropertyPlantAndEquipmentTextBlock
      contextRef="FD2019Q4YTD"
      id="TextSelection-08C909EA75E1B6AE8B998095A1A87EE9-0-wk-Fact-6EA4392DB3A4F415D1318095A18DDD29">&lt;div style="line-height:120%;padding-top:6px;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Property, plant, and equipment consisted of the following (in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:120%;font-size:10pt;"&gt;&lt;div style="padding-left:0px;text-indent:0px;line-height:normal;padding-top:10px;"&gt;&lt;table cellpadding="0" cellspacing="0" style="font-family:Times New Roman;font-size:10pt;width:100%;border-collapse:collapse;text-align:left;"&gt;&lt;tr&gt;&lt;td colspan="8"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="width:71%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:12%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:12%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:8pt;"&gt;&lt;span style="font-family:inherit;font-size:8pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="7" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;span style="font-family:Arial;font-size:8pt;font-weight:bold;"&gt;December&#160;31,&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:8pt;"&gt;&lt;span style="font-family:inherit;font-size:8pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;span style="font-family:Arial;font-size:8pt;font-weight:bold;"&gt;2019&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;span style="font-family:Arial;font-size:8pt;"&gt;2018&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Land&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;3,951&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;3,951&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;border-top:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Buildings&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;24,533&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;24,533&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Building improvements&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;49,289&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;45,067&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Leasehold improvements&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;10,790&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;9,095&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Computer hardware and software&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;67,474&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;66,542&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Manufacturing test equipment&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;31,278&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;27,378&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Furniture and fixtures&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;6,800&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;6,904&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;194,115&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;183,470&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Less: accumulated depreciation&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;(104,672&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;)&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;(92,074&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;)&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;89,443&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;91,396&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;</us-gaap:PropertyPlantAndEquipmentTextBlock>
    <us-gaap:PropertyPlantAndEquipmentGross
      contextRef="FI2019Q4_us-gaap_PropertyPlantAndEquipmentByTypeAxis_us-gaap_LandMember"
      decimals="-3"
      id="d9050577e761-wk-Fact-93AB2CCC49E434C14BC98095A17D7F97"
      unitRef="usd">3951000</us-gaap:PropertyPlantAndEquipmentGross>
    <us-gaap:PropertyPlantAndEquipmentGross
      contextRef="FI2018Q4_us-gaap_PropertyPlantAndEquipmentByTypeAxis_us-gaap_LandMember"
      decimals="-3"
      id="d9050577e780-wk-Fact-628CBB0B03D3834A48AE8095A1838475"
      unitRef="usd">3951000</us-gaap:PropertyPlantAndEquipmentGross>
    <us-gaap:PropertyPlantAndEquipmentGross
      contextRef="FI2019Q4_us-gaap_PropertyPlantAndEquipmentByTypeAxis_us-gaap_BuildingMember"
      decimals="-3"
      id="d9050577e795-wk-Fact-D3D76491CCBDC281131F8095A17D5FC7"
      unitRef="usd">24533000</us-gaap:PropertyPlantAndEquipmentGross>
    <us-gaap:PropertyPlantAndEquipmentGross
      contextRef="FI2018Q4_us-gaap_PropertyPlantAndEquipmentByTypeAxis_us-gaap_BuildingMember"
      decimals="-3"
      id="d9050577e814-wk-Fact-55E53873113F9CEAE1378095A18200B6"
      unitRef="usd">24533000</us-gaap:PropertyPlantAndEquipmentGross>
    <us-gaap:PropertyPlantAndEquipmentGross
      contextRef="FI2019Q4_us-gaap_PropertyPlantAndEquipmentByTypeAxis_us-gaap_BuildingImprovementsMember"
      decimals="-3"
      id="d9050577e834-wk-Fact-52C306A2F9071500BF638095A183AFEE"
      unitRef="usd">49289000</us-gaap:PropertyPlantAndEquipmentGross>
    <us-gaap:PropertyPlantAndEquipmentGross
      contextRef="FI2018Q4_us-gaap_PropertyPlantAndEquipmentByTypeAxis_us-gaap_BuildingImprovementsMember"
      decimals="-3"
      id="d9050577e853-wk-Fact-D8F697E47D46FA02BBB88095A183CAA7"
      unitRef="usd">45067000</us-gaap:PropertyPlantAndEquipmentGross>
    <us-gaap:PropertyPlantAndEquipmentGross
      contextRef="FI2019Q4_us-gaap_PropertyPlantAndEquipmentByTypeAxis_us-gaap_LeaseholdImprovementsMember"
      decimals="-3"
      id="d9050577e873-wk-Fact-DBFD7E94189561513E4B8095A18250C6"
      unitRef="usd">10790000</us-gaap:PropertyPlantAndEquipmentGross>
    <us-gaap:PropertyPlantAndEquipmentGross
      contextRef="FI2018Q4_us-gaap_PropertyPlantAndEquipmentByTypeAxis_us-gaap_LeaseholdImprovementsMember"
      decimals="-3"
      id="d9050577e892-wk-Fact-0EE8B5506283B14F58878095A17D5F61"
      unitRef="usd">9095000</us-gaap:PropertyPlantAndEquipmentGross>
    <us-gaap:PropertyPlantAndEquipmentGross
      contextRef="FI2019Q4_us-gaap_PropertyPlantAndEquipmentByTypeAxis_cgnx_HardwareAndSoftwareMember"
      decimals="-3"
      id="d9050577e912-wk-Fact-15C1831A002D7127320A8095A183A6B8"
      unitRef="usd">67474000</us-gaap:PropertyPlantAndEquipmentGross>
    <us-gaap:PropertyPlantAndEquipmentGross
      contextRef="FI2018Q4_us-gaap_PropertyPlantAndEquipmentByTypeAxis_cgnx_HardwareAndSoftwareMember"
      decimals="-3"
      id="d9050577e931-wk-Fact-28304FB527491A7DF1988095A1837A91"
      unitRef="usd">66542000</us-gaap:PropertyPlantAndEquipmentGross>
    <us-gaap:PropertyPlantAndEquipmentGross
      contextRef="FI2019Q4_us-gaap_PropertyPlantAndEquipmentByTypeAxis_us-gaap_EquipmentMember"
      decimals="-3"
      id="d9050577e951-wk-Fact-BEED5A617EE9DC9A2F108095A1826FB0"
      unitRef="usd">31278000</us-gaap:PropertyPlantAndEquipmentGross>
    <us-gaap:PropertyPlantAndEquipmentGross
      contextRef="FI2018Q4_us-gaap_PropertyPlantAndEquipmentByTypeAxis_us-gaap_EquipmentMember"
      decimals="-3"
      id="d9050577e970-wk-Fact-60AE0289B613B8C780C38095A1833B24"
      unitRef="usd">27378000</us-gaap:PropertyPlantAndEquipmentGross>
    <us-gaap:PropertyPlantAndEquipmentGross
      contextRef="FI2019Q4_us-gaap_PropertyPlantAndEquipmentByTypeAxis_us-gaap_FurnitureAndFixturesMember"
      decimals="-3"
      id="d9050577e990-wk-Fact-5E19A3036C12E8EE0AD98095A18368F4"
      unitRef="usd">6800000</us-gaap:PropertyPlantAndEquipmentGross>
    <us-gaap:PropertyPlantAndEquipmentGross
      contextRef="FI2018Q4_us-gaap_PropertyPlantAndEquipmentByTypeAxis_us-gaap_FurnitureAndFixturesMember"
      decimals="-3"
      id="d9050577e1009-wk-Fact-1C8D7E95F7BA5D3D66538095A183631D"
      unitRef="usd">6904000</us-gaap:PropertyPlantAndEquipmentGross>
    <us-gaap:PropertyPlantAndEquipmentGross
      contextRef="FI2019Q4"
      decimals="-3"
      id="d9050577e1029-wk-Fact-C3CC2C97D590BC5FFE4E8095A1831B04"
      unitRef="usd">194115000</us-gaap:PropertyPlantAndEquipmentGross>
    <us-gaap:PropertyPlantAndEquipmentGross
      contextRef="FI2018Q4"
      decimals="-3"
      id="d9050577e1048-wk-Fact-9D94DA76869CCF4C447B8095A1839B95"
      unitRef="usd">183470000</us-gaap:PropertyPlantAndEquipmentGross>
    <us-gaap:AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment
      contextRef="FI2019Q4"
      decimals="-3"
      id="d9050577e1068-wk-Fact-4C9D1C692C57BDA4DC698095A1831963"
      unitRef="usd">104672000</us-gaap:AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment>
    <us-gaap:AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment
      contextRef="FI2018Q4"
      decimals="-3"
      id="d9050577e1088-wk-Fact-4A859B28B588B795A6558095A17D00D7"
      unitRef="usd">92074000</us-gaap:AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment>
    <us-gaap:PropertyPlantAndEquipmentNet
      contextRef="FI2019Q4"
      decimals="-3"
      id="d9050577e1115-wk-Fact-F511143035B105728FC78095A199C654"
      unitRef="usd">89443000</us-gaap:PropertyPlantAndEquipmentNet>
    <us-gaap:PropertyPlantAndEquipmentNet
      contextRef="FI2018Q4"
      decimals="-3"
      id="d9050577e1134-wk-Fact-BA9205C02800F53EC4D88095A186B6D1"
      unitRef="usd">91396000</us-gaap:PropertyPlantAndEquipmentNet>
    <us-gaap:PropertyPlantAndEquipmentDisposals
      contextRef="FD2019Q4YTD"
      decimals="-3"
      id="d9050577e1152-wk-Fact-F99D04EF37F117518C548095A18D20A2"
      unitRef="usd">8883000</us-gaap:PropertyPlantAndEquipmentDisposals>
    <us-gaap:PropertyPlantAndEquipmentDisposals
      contextRef="FD2018Q4YTD"
      decimals="-3"
      id="d9050577e1156-wk-Fact-970D24255619DA8F91D18095A18D3E1D"
      unitRef="usd">6367000</us-gaap:PropertyPlantAndEquipmentDisposals>
    <us-gaap:AccumulatedDepreciationDepletionAndAmortizationSaleOfPropertyPlantAndEquipment1
      contextRef="FD2019Q4YTD"
      decimals="-3"
      id="d9050577e1168-wk-Fact-05D51A9B9B0BE2E0A5F0F3EF40A08E46"
      unitRef="usd">8559000</us-gaap:AccumulatedDepreciationDepletionAndAmortizationSaleOfPropertyPlantAndEquipment1>
    <us-gaap:AccumulatedDepreciationDepletionAndAmortizationSaleOfPropertyPlantAndEquipment1
      contextRef="FD2018Q4YTD"
      decimals="-3"
      id="d9050577e1173-wk-Fact-44AB3960479D826A41C3F3EF735526F0"
      unitRef="usd">6367000</us-gaap:AccumulatedDepreciationDepletionAndAmortizationSaleOfPropertyPlantAndEquipment1>
    <us-gaap:PropertySubjectToOrAvailableForOperatingLeaseGross
      contextRef="FI2019Q4"
      decimals="-3"
      id="d9050577e1188-wk-Fact-13A61ECE60A520C9159F8095A18D71B9"
      unitRef="usd">800000</us-gaap:PropertySubjectToOrAvailableForOperatingLeaseGross>
    <us-gaap:PropertySubjectToOrAvailableForOperatingLeaseAccumulatedDepreciation
      contextRef="FI2019Q4"
      decimals="-3"
      id="d9050577e1200-wk-Fact-4E327C5E404651A3D3DB8095A18D5487"
      unitRef="usd">255000</us-gaap:PropertySubjectToOrAvailableForOperatingLeaseAccumulatedDepreciation>
    <us-gaap:PropertySubjectToOrAvailableForOperatingLeaseAccumulatedDepreciation
      contextRef="FI2018Q4"
      decimals="-3"
      id="d9050577e1204-wk-Fact-344E4C80FA088C40AD4E8095A18DEE80"
      unitRef="usd">234000</us-gaap:PropertySubjectToOrAvailableForOperatingLeaseAccumulatedDepreciation>
    <us-gaap:LesseeOperatingLeasesTextBlock
      contextRef="FD2019Q4YTD"
      id="TextSelection-C67ED3F256DB24929E82F3F55346F422-0-wk-Fact-D62B94CAD74EDC81EA23F3F5D2E4F577">Leases&lt;div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;On January 1, 2019, the Company adopted Accounting Standards Codification (ASC) 842,  &#x201c;Leases,&#x201d; using the transition method of adoption, which allowed the Company to apply the standard on a prospective basis with a cumulative-effect adjustment to the opening balance sheet as of the adoption date.  Accordingly, the Company recorded lease assets of $&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;17,522,000&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;, current lease liabilities of $&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;4,736,000&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;, and non-current lease liabilities of $&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;12,669,000&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt; on its Consolidated Balance Sheet as of January 1, 2019.&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;As part of the adoption, the Company elected a practical expedient package to be applied to all of its leases upon transition, and as a result, the Company did not reassess: 1) whether any expired or existing contracts contain leases; &lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;2) the lease classification for any expired or existing leases; and 3) the accounting for initial direct costs for any existing leases. &lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&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.  There were no options to extend or terminate that were included in the determination of the lease term for the leases outstanding as of &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;December&#160;31, 2019&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;.  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 leases outstanding as of &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;December&#160;31, 2019&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;.&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;The total operating lease expense and operating lease cash payments in 2019 were &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;$6,893,000&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt; and &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;$6,530,000&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;, respectively.  The total lease expense for leases with a term of twelve months or less for which the Company elected &lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;not to recognize a lease asset or lease liability was &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;$275,000&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt; in 2019. Annual rental expense prior to the adoption of ASC 842 was &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;$8,186,000&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt; in &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;2018&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt; and &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;$6,738,000&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt; in &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;2017&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;. &lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:12px;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Future operating lease cash payments are as follows (in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:12px;text-align:center;font-size:10pt;"&gt;&lt;div style="padding-left:0px;text-indent:0px;line-height:normal;padding-top:10px;"&gt;&lt;table cellpadding="0" cellspacing="0" style="font-family:Times New Roman;font-size:10pt;margin-left:auto;margin-right:auto;width:99.80506822612085%;border-collapse:collapse;text-align:left;"&gt;&lt;tr&gt;&lt;td colspan="5"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="width:84%;"/&gt;&lt;td style="width:3%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:11%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:9pt;"&gt;&lt;span style="font-family:Arial;font-size:9pt;font-weight:bold;text-decoration:underline;"&gt;Year Ended December&#160;31,&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:center;font-size:9pt;"&gt;&lt;span style="font-family:Arial;font-size:9pt;font-weight:bold;"&gt;Amount &lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;2020&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;6,565&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;2021&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;5,558&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;2022&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;3,822&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;2023&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;3,000&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;2024&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;927&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Thereafter&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;310&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;20,182&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;border-top:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;The discounted present value of the future lease cash payments resulted in a lease liability of $&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;17,973,000&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt; as of &lt;/span&gt;&lt;span style="font-family:Arial;"&gt;December 31, 2019&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;.&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;The weighted-average discount rate was &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;4.6%&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt; for the leases outstanding as of &lt;/span&gt;&lt;span style="font-family:Arial;"&gt;December 31, 2019&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;.  The weighted-average remaining lease term was &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;3.7&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt; years for the leases outstanding as of &lt;/span&gt;&lt;span style="font-family:Arial;"&gt;December 31, 2019&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;.  The Company did not have any leases that have not yet commenced but that create significant rights and obligations as of &lt;/span&gt;&lt;span style="font-family:Arial;"&gt;December 31, 2019&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;. &lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;The Company owns a building adjacent to its corporate headquarters that is partially occupied with a tenant who has a lease agreement that will expire in 2022.  Annual rental income totaled &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;$311,000&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt; in &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;2019&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;, &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;$1,116,000&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt; in &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;2018&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;, and &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;$1,474,000&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt; in &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;2017&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;.  Rental income and related expenses are included in "Other income (expense)" on the Consolidated Statements of Operations. &lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Future minimum rental receipts under non-cancelable lease agreements are as follows (in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:12px;text-align:center;font-size:10pt;"&gt;&lt;div style="padding-left:0px;text-indent:0px;line-height:normal;padding-top:10px;"&gt;&lt;table cellpadding="0" cellspacing="0" style="font-family:Times New Roman;font-size:10pt;margin-left:auto;margin-right:auto;width:99.41520467836257%;border-collapse:collapse;text-align:left;"&gt;&lt;tr&gt;&lt;td colspan="5"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="width:84%;"/&gt;&lt;td style="width:3%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:11%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:9pt;"&gt;&lt;span style="font-family:Arial;font-size:9pt;font-weight:bold;text-decoration:underline;"&gt;Year Ended December&#160;31,&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:center;font-size:9pt;"&gt;&lt;span style="font-family:Arial;font-size:9pt;font-weight:bold;"&gt;Amount&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;2020&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;307&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;2021&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;307&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;2022&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;307&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;921&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;border-top:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;</us-gaap:LesseeOperatingLeasesTextBlock>
    <us-gaap:OperatingLeasesOfLessorDisclosureTextBlock
      contextRef="FD2019Q4YTD"
      id="TextSelection-F65E5943607F5D4682FCF3F792EA73A3-0-wk-Fact-0173C4FA561C586553F7F3F7D616BB5B">Leases&lt;div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;On January 1, 2019, the Company adopted Accounting Standards Codification (ASC) 842,  &#x201c;Leases,&#x201d; using the transition method of adoption, which allowed the Company to apply the standard on a prospective basis with a cumulative-effect adjustment to the opening balance sheet as of the adoption date.  Accordingly, the Company recorded lease assets of $&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;17,522,000&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;, current lease liabilities of $&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;4,736,000&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;, and non-current lease liabilities of $&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;12,669,000&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt; on its Consolidated Balance Sheet as of January 1, 2019.&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;As part of the adoption, the Company elected a practical expedient package to be applied to all of its leases upon transition, and as a result, the Company did not reassess: 1) whether any expired or existing contracts contain leases; &lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;2) the lease classification for any expired or existing leases; and 3) the accounting for initial direct costs for any existing leases. &lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&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.  There were no options to extend or terminate that were included in the determination of the lease term for the leases outstanding as of &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;December&#160;31, 2019&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;.  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 leases outstanding as of &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;December&#160;31, 2019&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;.&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;The total operating lease expense and operating lease cash payments in 2019 were &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;$6,893,000&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt; and &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;$6,530,000&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;, respectively.  The total lease expense for leases with a term of twelve months or less for which the Company elected &lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;not to recognize a lease asset or lease liability was &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;$275,000&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt; in 2019. Annual rental expense prior to the adoption of ASC 842 was &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;$8,186,000&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt; in &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;2018&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt; and &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;$6,738,000&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt; in &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;2017&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;. &lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:12px;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Future operating lease cash payments are as follows (in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:12px;text-align:center;font-size:10pt;"&gt;&lt;div style="padding-left:0px;text-indent:0px;line-height:normal;padding-top:10px;"&gt;&lt;table cellpadding="0" cellspacing="0" style="font-family:Times New Roman;font-size:10pt;margin-left:auto;margin-right:auto;width:99.80506822612085%;border-collapse:collapse;text-align:left;"&gt;&lt;tr&gt;&lt;td colspan="5"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="width:84%;"/&gt;&lt;td style="width:3%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:11%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:9pt;"&gt;&lt;span style="font-family:Arial;font-size:9pt;font-weight:bold;text-decoration:underline;"&gt;Year Ended December&#160;31,&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:center;font-size:9pt;"&gt;&lt;span style="font-family:Arial;font-size:9pt;font-weight:bold;"&gt;Amount &lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;2020&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;6,565&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;2021&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;5,558&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;2022&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;3,822&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;2023&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;3,000&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;2024&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;927&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Thereafter&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;310&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;20,182&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;border-top:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;The discounted present value of the future lease cash payments resulted in a lease liability of $&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;17,973,000&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt; as of &lt;/span&gt;&lt;span style="font-family:Arial;"&gt;December 31, 2019&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;.&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;The weighted-average discount rate was &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;4.6%&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt; for the leases outstanding as of &lt;/span&gt;&lt;span style="font-family:Arial;"&gt;December 31, 2019&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;.  The weighted-average remaining lease term was &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;3.7&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt; years for the leases outstanding as of &lt;/span&gt;&lt;span style="font-family:Arial;"&gt;December 31, 2019&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;.  The Company did not have any leases that have not yet commenced but that create significant rights and obligations as of &lt;/span&gt;&lt;span style="font-family:Arial;"&gt;December 31, 2019&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;. &lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;The Company owns a building adjacent to its corporate headquarters that is partially occupied with a tenant who has a lease agreement that will expire in 2022.  Annual rental income totaled &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;$311,000&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt; in &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;2019&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;, &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;$1,116,000&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt; in &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;2018&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;, and &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;$1,474,000&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt; in &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;2017&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;.  Rental income and related expenses are included in "Other income (expense)" on the Consolidated Statements of Operations. &lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Future minimum rental receipts under non-cancelable lease agreements are as follows (in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:12px;text-align:center;font-size:10pt;"&gt;&lt;div style="padding-left:0px;text-indent:0px;line-height:normal;padding-top:10px;"&gt;&lt;table cellpadding="0" cellspacing="0" style="font-family:Times New Roman;font-size:10pt;margin-left:auto;margin-right:auto;width:99.41520467836257%;border-collapse:collapse;text-align:left;"&gt;&lt;tr&gt;&lt;td colspan="5"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="width:84%;"/&gt;&lt;td style="width:3%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:11%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:9pt;"&gt;&lt;span style="font-family:Arial;font-size:9pt;font-weight:bold;text-decoration:underline;"&gt;Year Ended December&#160;31,&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:center;font-size:9pt;"&gt;&lt;span style="font-family:Arial;font-size:9pt;font-weight:bold;"&gt;Amount&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;2020&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;307&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;2021&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;307&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;2022&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;307&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;921&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;border-top:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;</us-gaap:OperatingLeasesOfLessorDisclosureTextBlock>
    <us-gaap:OperatingLeaseRightOfUseAsset
      contextRef="I2019Q1Jan01_us-gaap_AdjustmentsForNewAccountingPronouncementsAxis_us-gaap_AccountingStandardsUpdate201602Member"
      decimals="-3"
      id="d9051125e637-wk-Fact-01AC14980AF79A50DA25F3F97C75E680"
      unitRef="usd">17522000</us-gaap:OperatingLeaseRightOfUseAsset>
    <us-gaap:OperatingLeaseLiabilityCurrent
      contextRef="I2019Q1Jan01_us-gaap_AdjustmentsForNewAccountingPronouncementsAxis_us-gaap_AccountingStandardsUpdate201602Member"
      decimals="-3"
      id="d9051125e641-wk-Fact-F86761D7B00F0FE626DAF3FB0D6573B8"
      unitRef="usd">4736000</us-gaap:OperatingLeaseLiabilityCurrent>
    <us-gaap:OperatingLeaseLiabilityNoncurrent
      contextRef="I2019Q1Jan01_us-gaap_AdjustmentsForNewAccountingPronouncementsAxis_us-gaap_AccountingStandardsUpdate201602Member"
      decimals="-3"
      id="d9051125e645-wk-Fact-BC0BB2C50D0453507696F3F90CFE1AA8"
      unitRef="usd">12669000</us-gaap:OperatingLeaseLiabilityNoncurrent>
    <us-gaap:OperatingLeaseExpense
      contextRef="FD2019Q4YTD"
      decimals="-3"
      id="d9051125e669-wk-Fact-E3A3181EAB67B064AA9EF3FD0F035BD9"
      unitRef="usd">6893000</us-gaap:OperatingLeaseExpense>
    <us-gaap:OperatingLeasePayments
      contextRef="FD2019Q4YTD"
      decimals="-3"
      id="d9051125e673-wk-Fact-42C3E106AC1AF9E24E64F3FDAA269269"
      unitRef="usd">6530000</us-gaap:OperatingLeasePayments>
    <cgnx:OperatingLeaseExpenseNoLiabilityOrAssetRecognized
      contextRef="FD2019Q4YTD"
      decimals="-3"
      id="d9051125e682-wk-Fact-DEDFD704E606812A7887F3FFA8B30734"
      unitRef="usd">275000</cgnx:OperatingLeaseExpenseNoLiabilityOrAssetRecognized>
    <us-gaap:LeaseAndRentalExpense
      contextRef="FD2018Q4YTD"
      decimals="-3"
      id="d9051125e686-wk-Fact-B7FD86B6040C8E1101BEF3FE808D0DD4"
      unitRef="usd">8186000</us-gaap:LeaseAndRentalExpense>
    <us-gaap:LeaseAndRentalExpense
      contextRef="FD2017Q4YTD"
      decimals="-3"
      id="d9051125e694-wk-Fact-05EF2C3BA13DE07C0C7AF3FE808A5168"
      unitRef="usd">6738000</us-gaap:LeaseAndRentalExpense>
    <us-gaap:LesseeOperatingLeaseLiabilityMaturityTableTextBlock
      contextRef="FD2019Q4YTD"
      id="TextSelection-2DCE27FA1036A8E0F021F3F6642DCD50-0-wk-Fact-75D89B0ADF8A0AD3C316F3F6B517EB91">&lt;div style="line-height:120%;padding-top:12px;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Future operating lease cash payments are as follows (in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:12px;text-align:center;font-size:10pt;"&gt;&lt;div style="padding-left:0px;text-indent:0px;line-height:normal;padding-top:10px;"&gt;&lt;table cellpadding="0" cellspacing="0" style="font-family:Times New Roman;font-size:10pt;margin-left:auto;margin-right:auto;width:99.80506822612085%;border-collapse:collapse;text-align:left;"&gt;&lt;tr&gt;&lt;td colspan="5"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="width:84%;"/&gt;&lt;td style="width:3%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:11%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:9pt;"&gt;&lt;span style="font-family:Arial;font-size:9pt;font-weight:bold;text-decoration:underline;"&gt;Year Ended December&#160;31,&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:center;font-size:9pt;"&gt;&lt;span style="font-family:Arial;font-size:9pt;font-weight:bold;"&gt;Amount &lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;2020&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;6,565&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;2021&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;5,558&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;2022&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;3,822&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;2023&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;3,000&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;2024&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;927&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Thereafter&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;310&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;20,182&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;border-top:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;</us-gaap:LesseeOperatingLeaseLiabilityMaturityTableTextBlock>
    <us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths
      contextRef="FI2019Q4"
      decimals="-3"
      id="d9051125e758-wk-Fact-E189E36FB34053BFE3DAF4010F4D5236"
      unitRef="usd">6565000</us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths>
    <us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearTwo
      contextRef="FI2019Q4"
      decimals="-3"
      id="d9051125e783-wk-Fact-73E6BEEC080594B06EA7F4013944E2B0"
      unitRef="usd">5558000</us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearTwo>
    <us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearThree
      contextRef="FI2019Q4"
      decimals="-3"
      id="d9051125e808-wk-Fact-48F681819E88FD853E7BF4014A3F986D"
      unitRef="usd">3822000</us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearThree>
    <us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearFour
      contextRef="FI2019Q4"
      decimals="-3"
      id="d9051125e833-wk-Fact-0CEE30E29F134D6937C6F40159E7417A"
      unitRef="usd">3000000</us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearFour>
    <us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearFive
      contextRef="FI2019Q4"
      decimals="-3"
      id="d9051125e858-wk-Fact-FE7ED961839B27FF16B6F4016B893CC5"
      unitRef="usd">927000</us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearFive>
    <us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive
      contextRef="FI2019Q4"
      decimals="-3"
      id="d9051125e883-wk-Fact-041DEE609784498E7ECAF4017C4C120F"
      unitRef="usd">310000</us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive>
    <us-gaap:LesseeOperatingLeaseLiabilityPaymentsDue
      contextRef="FI2019Q4"
      decimals="-3"
      id="d9051125e913-wk-Fact-D53142CE10DFC3315279F4018D9A8361"
      unitRef="usd">20182000</us-gaap:LesseeOperatingLeaseLiabilityPaymentsDue>
    <us-gaap:OperatingLeaseLiability
      contextRef="FI2019Q4"
      decimals="-3"
      id="d9051125e924-wk-Fact-4D819F232EEE3E7C1819F402F3E7BA1A"
      unitRef="usd">17973000</us-gaap:OperatingLeaseLiability>
    <us-gaap:OperatingLeaseWeightedAverageDiscountRatePercent
      contextRef="FI2019Q4"
      decimals="3"
      id="d9051125e937-wk-Fact-F95A66D8E76F8B068D59F4044E094AE0"
      unitRef="number">0.046</us-gaap:OperatingLeaseWeightedAverageDiscountRatePercent>
    <us-gaap:OperatingLeaseWeightedAverageRemainingLeaseTerm1
      contextRef="FI2019Q4"
      id="d9051125e946-wk-Fact-E73D9120401FB7E8796EF405606BF5A5">P3Y8M12D</us-gaap:OperatingLeaseWeightedAverageRemainingLeaseTerm1>
    <us-gaap:OperatingLeaseLeaseIncome
      contextRef="FD2019Q4YTD"
      decimals="-3"
      id="d9051125e963-wk-Fact-43F0B6D594E9D80B413CF406DDBD9DA8"
      unitRef="usd">311000</us-gaap:OperatingLeaseLeaseIncome>
    <us-gaap:RentalIncomeNonoperating
      contextRef="FD2018Q4YTD"
      decimals="-3"
      id="d9051125e971-wk-Fact-81B451F98CFEB02A48D3F408ECD8E5CE"
      unitRef="usd">1116000</us-gaap:RentalIncomeNonoperating>
    <us-gaap:RentalIncomeNonoperating
      contextRef="FD2017Q4YTD"
      decimals="-3"
      id="d9051125e979-wk-Fact-8D8FB07A12463958ADDAF408ECCBCED9"
      unitRef="usd">1474000</us-gaap:RentalIncomeNonoperating>
    <us-gaap:LessorOperatingLeasePaymentsToBeReceivedMaturityTableTextBlock
      contextRef="FD2019Q4YTD"
      id="TextSelection-B2212775BBF850424662F3F81FF980B4-0-wk-Fact-F11F463883A0982241D4F3F87295A720">&lt;div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Future minimum rental receipts under non-cancelable lease agreements are as follows (in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:12px;text-align:center;font-size:10pt;"&gt;&lt;div style="padding-left:0px;text-indent:0px;line-height:normal;padding-top:10px;"&gt;&lt;table cellpadding="0" cellspacing="0" style="font-family:Times New Roman;font-size:10pt;margin-left:auto;margin-right:auto;width:99.41520467836257%;border-collapse:collapse;text-align:left;"&gt;&lt;tr&gt;&lt;td colspan="5"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="width:84%;"/&gt;&lt;td style="width:3%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:11%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:9pt;"&gt;&lt;span style="font-family:Arial;font-size:9pt;font-weight:bold;text-decoration:underline;"&gt;Year Ended December&#160;31,&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:center;font-size:9pt;"&gt;&lt;span style="font-family:Arial;font-size:9pt;font-weight:bold;"&gt;Amount&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;2020&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;307&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;2021&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;307&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;2022&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;307&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;921&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;border-top:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;</us-gaap:LessorOperatingLeasePaymentsToBeReceivedMaturityTableTextBlock>
    <us-gaap:LessorOperatingLeasePaymentsToBeReceivedNextTwelveMonths
      contextRef="FI2019Q4"
      decimals="-3"
      id="d9051125e1044-wk-Fact-A244FCE4890CF8DAC9F4F40A9F07582C"
      unitRef="usd">307000</us-gaap:LessorOperatingLeasePaymentsToBeReceivedNextTwelveMonths>
    <us-gaap:LessorOperatingLeasePaymentsToBeReceivedTwoYears
      contextRef="FI2019Q4"
      decimals="-3"
      id="d9051125e1069-wk-Fact-F6BB13D5A82A526DA19DF40AB35230D0"
      unitRef="usd">307000</us-gaap:LessorOperatingLeasePaymentsToBeReceivedTwoYears>
    <us-gaap:LessorOperatingLeasePaymentsToBeReceivedThreeYears
      contextRef="FI2019Q4"
      decimals="-3"
      id="d9051125e1094-wk-Fact-8B6885CA27D9B47DB9D6F40AC210F117"
      unitRef="usd">307000</us-gaap:LessorOperatingLeasePaymentsToBeReceivedThreeYears>
    <us-gaap:LessorOperatingLeasePaymentsToBeReceived
      contextRef="FI2019Q4"
      decimals="-3"
      id="d9051125e1124-wk-Fact-75D0C8932E50928D7265F40AD9D6B3E2"
      unitRef="usd">921000</us-gaap:LessorOperatingLeasePaymentsToBeReceived>
    <us-gaap:GoodwillDisclosureTextBlock
      contextRef="FD2019Q4YTD"
      id="TextSelection-1BD438A1C178077D27FE8095A1A8D69A-0-wk-Fact-7750E5F4BC7E4AAF2D168095A17A1971">Goodwill&lt;div style="line-height:120%;padding-top:6px;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;The changes in the carrying value of goodwill were as follows (in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:120%;font-size:10pt;"&gt;&lt;div style="padding-left:0px;text-indent:0px;line-height:normal;padding-top:10px;"&gt;&lt;table cellpadding="0" cellspacing="0" style="font-family:Times New Roman;font-size:10pt;width:100%;border-collapse:collapse;text-align:left;"&gt;&lt;tr&gt;&lt;td colspan="5"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="width:84%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:13%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;span style="font-family:Arial;font-size:8pt;font-weight:bold;"&gt;Amount&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Balance as of December 31, 2017&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;113,208&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Balance as of December 31, 2018&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;113,208&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Acquisition of Sualab Co., Ltd.&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;130,142&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&#160;&#160;Foreign exchange rate changes&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;95&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Balance as of December 31, 2019&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;243,445&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Refer to Note 21 to the Consolidated Financial Statements for further information regarding acquisitions.  &lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;For its &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;2019&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt; analysis of goodwill, management elected to perform a qualitative assessment.  Based upon this assessment, management believes that it is more likely than not that the fair value of the reporting unit exceeds its carrying amount.  Factors that management considered in the qualitative assessment include macroeconomic conditions, industry and market considerations, overall financial performance (both current and projected), changes in management or strategy, changes in the composition or carrying amount of net assets, and market capitalization.&lt;/span&gt;&lt;/div&gt;</us-gaap:GoodwillDisclosureTextBlock>
    <us-gaap:ScheduleOfGoodwillTextBlock
      contextRef="FD2019Q4YTD"
      id="TextSelection-E7D82CE02B41986F9C958095A1A80E93-0-wk-Fact-7BD78BA154AF1D937C408095A17AE0AF">&lt;div style="line-height:120%;padding-top:6px;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;The changes in the carrying value of goodwill were as follows (in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:120%;font-size:10pt;"&gt;&lt;div style="padding-left:0px;text-indent:0px;line-height:normal;padding-top:10px;"&gt;&lt;table cellpadding="0" cellspacing="0" style="font-family:Times New Roman;font-size:10pt;width:100%;border-collapse:collapse;text-align:left;"&gt;&lt;tr&gt;&lt;td colspan="5"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="width:84%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:13%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;span style="font-family:Arial;font-size:8pt;font-weight:bold;"&gt;Amount&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Balance as of December 31, 2017&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;113,208&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Balance as of December 31, 2018&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;113,208&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Acquisition of Sualab Co., Ltd.&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;130,142&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&#160;&#160;Foreign exchange rate changes&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;95&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Balance as of December 31, 2019&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;243,445&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;</us-gaap:ScheduleOfGoodwillTextBlock>
    <us-gaap:Goodwill
      contextRef="FI2017Q4"
      decimals="-3"
      id="d9056095e709-wk-Fact-19987B64D69EF21D42358095A190D309"
      unitRef="usd">113208000</us-gaap:Goodwill>
    <us-gaap:Goodwill
      contextRef="FI2018Q4"
      decimals="-3"
      id="d9056095e729-wk-Fact-0E49DD13D0281181743F8095A1866117"
      unitRef="usd">113208000</us-gaap:Goodwill>
    <us-gaap:GoodwillAcquiredDuringPeriod
      contextRef="FD2019Q4YTD_us-gaap_BusinessAcquisitionAxis_cgnx_SualabCo.Ltd.Member"
      decimals="-3"
      id="d9056095e754-wk-Fact-2339774AC72155A0358DF40E8CE6FD98"
      unitRef="usd">130142000</us-gaap:GoodwillAcquiredDuringPeriod>
    <us-gaap:GoodwillForeignCurrencyTranslationGainLoss
      contextRef="FD2019Q4YTD"
      decimals="-3"
      id="d9056095e779-wk-Fact-7011986211E683C5246BF41256127DB8"
      unitRef="usd">95000</us-gaap:GoodwillForeignCurrencyTranslationGainLoss>
    <us-gaap:Goodwill
      contextRef="FI2019Q4"
      decimals="-3"
      id="d9056095e809-wk-Fact-81F94E54D4E5D51829658095A18DD1F9"
      unitRef="usd">243445000</us-gaap:Goodwill>
    <us-gaap:IntangibleAssetsDisclosureTextBlock
      contextRef="FD2019Q4YTD"
      id="TextSelection-60A48FAD8C2B1A9FA2EF8095A1A8F1BA-0-wk-Fact-F7CC756F044A9A900D758095A17B09E6">Intangible Assets&lt;div style="line-height:120%;padding-top:6px;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Intangible assets consisted of the following (in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:120%;font-size:10pt;"&gt;&lt;div style="padding-left:0px;text-indent:0px;line-height:normal;padding-top:10px;"&gt;&lt;table cellpadding="0" cellspacing="0" style="font-family:Times New Roman;font-size:10pt;width:99.80506822612085%;border-collapse:collapse;text-align:left;"&gt;&lt;tr&gt;&lt;td colspan="12"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="width:53%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:13%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:13%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:13%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:center;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;Gross&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:center;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;Carrying&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:center;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;Value&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:center;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;Accumulated&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:center;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;Amortization&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:center;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;Net&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:center;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;Carrying&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:center;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;Value&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Distribution networks&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;38,060&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;38,060&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;&#x2014;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Completed technologies&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;31,987&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;9,160&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;22,827&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Customer relationships&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;14,407&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;6,402&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;8,005&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;In-process technologies&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;8,200&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;&#x2014;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;8,200&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Non-compete agreements&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;710&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;350&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;360&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Trademarks&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;110&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;12&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;98&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Balance as of December 31, 2019&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;93,474&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;53,984&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;39,490&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;height:12px;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;height:12px;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;height:12px;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;height:12px;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;height:12px;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;height:12px;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:8pt;"&gt;&lt;span style="font-family:inherit;font-size:8pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:center;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;Gross&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:center;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;Carrying&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:center;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;Value&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:center;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;Accumulated&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:center;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;Amortization&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:center;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;Net&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:center;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;Carrying&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:center;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;Value&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Distribution networks&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;38,060&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;38,060&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;&#x2014;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Completed technologies&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;13,687&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;6,619&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;7,068&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Customer relationships&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;8,607&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;5,716&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;2,891&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Non-compete agreements&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;370&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;216&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;154&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Balance as of December 31, 2018&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;60,724&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;border-top:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;50,611&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;border-top:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;10,113&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;border-top:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;In connection with the acquisition of Sualab Co., Ltd. in the fourth quarter of 2019, the Company acquired in-process technologies valued at &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;$8,200,000&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;.  In-process technology is an indefinite-lived intangible asset until the technology is finalized, at which point it is amortized over its estimated useful life.&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&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="line-height:120%;font-size:10pt;"&gt;&lt;div style="padding-left:0px;text-indent:0px;line-height:normal;padding-top:10px;"&gt;&lt;table cellpadding="0" cellspacing="0" style="font-family:Times New Roman;font-size:10pt;width:100%;border-collapse:collapse;text-align:left;"&gt;&lt;tr&gt;&lt;td colspan="5"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="width:82%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:15%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:8pt;"&gt;&lt;span style="font-family:Arial;font-size:8pt;font-weight:bold;text-decoration:underline;"&gt;Year Ended December&#160;31,&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;span style="font-family:Arial;font-size:8pt;font-weight:bold;"&gt;Amount&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;2020&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;5,412&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;2021&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;5,232&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;2022&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;4,862&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;2023&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;4,160&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;2024&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;3,593&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Thereafter&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;8,031&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;31,290&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;border-top:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;</us-gaap:IntangibleAssetsDisclosureTextBlock>
    <us-gaap:ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock
      contextRef="FD2019Q4YTD"
      id="TextSelection-D6C30299278CCC37BBA88095A1A86813-0-wk-Fact-C11F20E14558C918A24D8095A17BF5BB">ntangible assets consisted of the following (in thousands):&lt;div style="line-height:120%;font-size:10pt;"&gt;&lt;div style="padding-left:0px;text-indent:0px;line-height:normal;padding-top:10px;"&gt;&lt;table cellpadding="0" cellspacing="0" style="font-family:Times New Roman;font-size:10pt;width:99.80506822612085%;border-collapse:collapse;text-align:left;"&gt;&lt;tr&gt;&lt;td colspan="12"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="width:53%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:13%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:13%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:13%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:center;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;Gross&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:center;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;Carrying&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:center;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;Value&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:center;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;Accumulated&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:center;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;Amortization&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:center;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;Net&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:center;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;Carrying&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:center;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;Value&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Distribution networks&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;38,060&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;38,060&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;&#x2014;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Completed technologies&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;31,987&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;9,160&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;22,827&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Customer relationships&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;14,407&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;6,402&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;8,005&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;In-process technologies&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;8,200&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;&#x2014;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;8,200&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Non-compete agreements&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;710&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;350&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;360&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Trademarks&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;110&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;12&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;98&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Balance as of December 31, 2019&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;93,474&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;53,984&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;39,490&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;height:12px;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;height:12px;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;height:12px;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;height:12px;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;height:12px;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;height:12px;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:8pt;"&gt;&lt;span style="font-family:inherit;font-size:8pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:center;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;Gross&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:center;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;Carrying&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:center;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;Value&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:center;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;Accumulated&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:center;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;Amortization&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:center;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;Net&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:center;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;Carrying&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:center;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;Value&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Distribution networks&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;38,060&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;38,060&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;&#x2014;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Completed technologies&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;13,687&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;6,619&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;7,068&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Customer relationships&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;8,607&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;5,716&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;2,891&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Non-compete agreements&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;370&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;216&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;154&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Balance as of December 31, 2018&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;60,724&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;border-top:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;50,611&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;border-top:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;10,113&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;border-top:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;</us-gaap:ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock>
    <us-gaap:FiniteLivedIntangibleAssetsGross
      contextRef="FI2019Q4_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_DistributionRightsMember"
      decimals="-3"
      id="d9057519e763-wk-Fact-C1C797B6FB8311C5FDA68095A1734B42"
      unitRef="usd">38060000</us-gaap:FiniteLivedIntangibleAssetsGross>
    <us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization
      contextRef="FI2019Q4_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_DistributionRightsMember"
      decimals="-3"
      id="d9057519e782-wk-Fact-A62EF0EA0A81C845C39E8095A173168E"
      unitRef="usd">38060000</us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization>
    <us-gaap:FiniteLivedIntangibleAssetsNet
      contextRef="FI2019Q4_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_DistributionRightsMember"
      decimals="-3"
      id="d9057519e801-wk-Fact-CC43215B09C61C1FF6A28095A1723E05"
      unitRef="usd">0</us-gaap:FiniteLivedIntangibleAssetsNet>
    <us-gaap:FiniteLivedIntangibleAssetsGross
      contextRef="FI2019Q4_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_DevelopedTechnologyRightsMember"
      decimals="-3"
      id="d9057519e817-wk-Fact-C2CE340F4018E81294AE8095A172A5C6"
      unitRef="usd">31987000</us-gaap:FiniteLivedIntangibleAssetsGross>
    <us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization
      contextRef="FI2019Q4_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_DevelopedTechnologyRightsMember"
      decimals="-3"
      id="d9057519e836-wk-Fact-FFD04EE83482831E12168095A173D9DB"
      unitRef="usd">9160000</us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization>
    <us-gaap:FiniteLivedIntangibleAssetsNet
      contextRef="FI2019Q4_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_DevelopedTechnologyRightsMember"
      decimals="-3"
      id="d9057519e855-wk-Fact-31674EF878C1C535A7958095A173391F"
      unitRef="usd">22827000</us-gaap:FiniteLivedIntangibleAssetsNet>
    <us-gaap:FiniteLivedIntangibleAssetsGross
      contextRef="FI2019Q4_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_cgnx_CustomerContractsAndRelationshipsMember"
      decimals="-3"
      id="d9057519e876-wk-Fact-36DCCD01B8EC43C61DC28095A173765A"
      unitRef="usd">14407000</us-gaap:FiniteLivedIntangibleAssetsGross>
    <us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization
      contextRef="FI2019Q4_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_cgnx_CustomerContractsAndRelationshipsMember"
      decimals="-3"
      id="d9057519e895-wk-Fact-B54D523204A16E75CDB58095A173F921"
      unitRef="usd">6402000</us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization>
    <us-gaap:FiniteLivedIntangibleAssetsNet
      contextRef="FI2019Q4_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_cgnx_CustomerContractsAndRelationshipsMember"
      decimals="-3"
      id="d9057519e914-wk-Fact-DBA5FD867D71BB4C89C38095A173B539"
      unitRef="usd">8005000</us-gaap:FiniteLivedIntangibleAssetsNet>
    <us-gaap:FiniteLivedIntangibleAssetsGross
      contextRef="FI2019Q4_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_InProcessResearchAndDevelopmentMember"
      decimals="-3"
      id="d9057519e935-wk-Fact-A1F15DC5102BCC61140A167A3D3E3C62"
      unitRef="usd">8200000</us-gaap:FiniteLivedIntangibleAssetsGross>
    <us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization
      contextRef="FI2019Q4_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_InProcessResearchAndDevelopmentMember"
      decimals="-3"
      id="d9057519e954-wk-Fact-57C5B72978493A4934C41678A5F30358"
      unitRef="usd">0</us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization>
    <us-gaap:FiniteLivedIntangibleAssetsNet
      contextRef="FI2019Q4_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_InProcessResearchAndDevelopmentMember"
      decimals="-3"
      id="d9057519e973-wk-Fact-0193F9568E166F71D5801678E5CF8BEE"
      unitRef="usd">8200000</us-gaap:FiniteLivedIntangibleAssetsNet>
    <us-gaap:FiniteLivedIntangibleAssetsGross
      contextRef="FI2019Q4_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_NoncompeteAgreementsMember"
      decimals="-3"
      id="d9057519e994-wk-Fact-AF1888E6432CE0908BB98095A1724D89"
      unitRef="usd">710000</us-gaap:FiniteLivedIntangibleAssetsGross>
    <us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization
      contextRef="FI2019Q4_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_NoncompeteAgreementsMember"
      decimals="-3"
      id="d9057519e1013-wk-Fact-5FAEC84664E7D61756588095A172F8D5"
      unitRef="usd">350000</us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization>
    <us-gaap:FiniteLivedIntangibleAssetsNet
      contextRef="FI2019Q4_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_NoncompeteAgreementsMember"
      decimals="-3"
      id="d9057519e1032-wk-Fact-D80B651A1D0CDA8AF3FE8095A1725BAE"
      unitRef="usd">360000</us-gaap:FiniteLivedIntangibleAssetsNet>
    <us-gaap:FiniteLivedIntangibleAssetsGross
      contextRef="FI2019Q4_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_TrademarksMember"
      decimals="-3"
      id="d9057519e1053-wk-Fact-FD1000C05020A3224A211676F4F6B5BA"
      unitRef="usd">110000</us-gaap:FiniteLivedIntangibleAssetsGross>
    <us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization
      contextRef="FI2019Q4_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_TrademarksMember"
      decimals="-3"
      id="d9057519e1072-wk-Fact-D1BB786D073C4E6576AA1677600D52B5"
      unitRef="usd">12000</us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization>
    <us-gaap:FiniteLivedIntangibleAssetsNet
      contextRef="FI2019Q4_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_TrademarksMember"
      decimals="-3"
      id="d9057519e1091-wk-Fact-87376E39E9011DD458DF1677F3084A5F"
      unitRef="usd">98000</us-gaap:FiniteLivedIntangibleAssetsNet>
    <us-gaap:FiniteLivedIntangibleAssetsGross
      contextRef="FI2019Q4"
      decimals="-3"
      id="d9057519e1117-wk-Fact-DE069372D2995E673D1A8095A17375A9"
      unitRef="usd">93474000</us-gaap:FiniteLivedIntangibleAssetsGross>
    <us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization
      contextRef="FI2019Q4"
      decimals="-3"
      id="d9057519e1136-wk-Fact-6A44CE686A50E5DF75B18095A1729C9F"
      unitRef="usd">53984000</us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization>
    <us-gaap:IntangibleAssetsNetIncludingGoodwill
      contextRef="FI2019Q4"
      decimals="-3"
      id="d9057519e1155-wk-Fact-7A830800501D25D7E6308095A172DBD7"
      unitRef="usd">39490000</us-gaap:IntangibleAssetsNetIncludingGoodwill>
    <us-gaap:FiniteLivedIntangibleAssetsGross
      contextRef="FI2017Q4_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_DistributionRightsMember"
      decimals="-3"
      id="d9057519e1315-wk-Fact-160CE5AFF9ED398E38ED8095A1734F0E"
      unitRef="usd">38060000</us-gaap:FiniteLivedIntangibleAssetsGross>
    <us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization
      contextRef="FI2017Q4_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_DistributionRightsMember"
      decimals="-3"
      id="d9057519e1334-wk-Fact-56B0E8B952CF2A5B55198095A172E5AE"
      unitRef="usd">38060000</us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization>
    <us-gaap:FiniteLivedIntangibleAssetsNet
      contextRef="FI2017Q4_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_DistributionRightsMember"
      decimals="-3"
      id="d9057519e1353-wk-Fact-62445D6E15BC9F7549E88095A17394FF"
      unitRef="usd">0</us-gaap:FiniteLivedIntangibleAssetsNet>
    <us-gaap:FiniteLivedIntangibleAssetsGross
      contextRef="FI2017Q4_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_DevelopedTechnologyRightsMember"
      decimals="-3"
      id="d9057519e1370-wk-Fact-259F04A3702F1F8E81438095A1729507"
      unitRef="usd">13687000</us-gaap:FiniteLivedIntangibleAssetsGross>
    <us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization
      contextRef="FI2017Q4_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_DevelopedTechnologyRightsMember"
      decimals="-3"
      id="d9057519e1389-wk-Fact-582B099EEE1AC825469F8095A1730E70"
      unitRef="usd">6619000</us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization>
    <us-gaap:FiniteLivedIntangibleAssetsNet
      contextRef="FI2017Q4_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_DevelopedTechnologyRightsMember"
      decimals="-3"
      id="d9057519e1408-wk-Fact-D67269166C0D6A2B202B8095A17242C0"
      unitRef="usd">7068000</us-gaap:FiniteLivedIntangibleAssetsNet>
    <us-gaap:FiniteLivedIntangibleAssetsGross
      contextRef="FI2017Q4_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_cgnx_CustomerContractsAndRelationshipsMember"
      decimals="-3"
      id="d9057519e1429-wk-Fact-E856789D873649644E888095A173CC30"
      unitRef="usd">8607000</us-gaap:FiniteLivedIntangibleAssetsGross>
    <us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization
      contextRef="FI2017Q4_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_cgnx_CustomerContractsAndRelationshipsMember"
      decimals="-3"
      id="d9057519e1448-wk-Fact-35F09D05673FE4A5F6758095A1728528"
      unitRef="usd">5716000</us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization>
    <us-gaap:FiniteLivedIntangibleAssetsNet
      contextRef="FI2017Q4_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_cgnx_CustomerContractsAndRelationshipsMember"
      decimals="-3"
      id="d9057519e1467-wk-Fact-EFB554B5E1988736FD088095A171CA18"
      unitRef="usd">2891000</us-gaap:FiniteLivedIntangibleAssetsNet>
    <us-gaap:FiniteLivedIntangibleAssetsGross
      contextRef="FI2017Q4_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_OtherIntangibleAssetsMember"
      decimals="-3"
      id="d9057519e1488-wk-Fact-F7E81B56B1F6BB0E900F8095A1735067"
      unitRef="usd">370000</us-gaap:FiniteLivedIntangibleAssetsGross>
    <us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization
      contextRef="FI2017Q4_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_OtherIntangibleAssetsMember"
      decimals="-3"
      id="d9057519e1507-wk-Fact-DF71D18F0A3AC01354C58095A1725A0A"
      unitRef="usd">216000</us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization>
    <us-gaap:FiniteLivedIntangibleAssetsNet
      contextRef="FI2017Q4_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_OtherIntangibleAssetsMember"
      decimals="-3"
      id="d9057519e1526-wk-Fact-561F600947763AF050E08095A173E572"
      unitRef="usd">154000</us-gaap:FiniteLivedIntangibleAssetsNet>
    <us-gaap:FiniteLivedIntangibleAssetsGross
      contextRef="FI2017Q4"
      decimals="-3"
      id="d9057519e1552-wk-Fact-6AF51F2F5978088A8C538095A1736F8B"
      unitRef="usd">60724000</us-gaap:FiniteLivedIntangibleAssetsGross>
    <us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization
      contextRef="FI2017Q4"
      decimals="-3"
      id="d9057519e1571-wk-Fact-D4BC8A22D62611FA138F8095A172A4CA"
      unitRef="usd">50611000</us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization>
    <us-gaap:FiniteLivedIntangibleAssetsNet
      contextRef="FI2017Q4"
      decimals="-3"
      id="d9057519e1590-wk-Fact-1AF6959CE3A116831F518095A172D708"
      unitRef="usd">10113000</us-gaap:FiniteLivedIntangibleAssetsNet>
    <us-gaap:FiniteLivedIntangibleAssetsGross
      contextRef="FI2019Q4_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_InProcessResearchAndDevelopmentMember"
      decimals="-3"
      id="d9057519e1609-wk-Fact-A1F15DC5102BCC61140A167A3D3E3C62"
      unitRef="usd">8200000</us-gaap:FiniteLivedIntangibleAssetsGross>
    <us-gaap:ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock
      contextRef="FD2019Q4YTD"
      id="TextSelection-0C7D9E68AF55F3D97A538095A1A8FB70-0-wk-Fact-50F6FA1732116668EA128095A17B2980">&lt;div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&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="line-height:120%;font-size:10pt;"&gt;&lt;div style="padding-left:0px;text-indent:0px;line-height:normal;padding-top:10px;"&gt;&lt;table cellpadding="0" cellspacing="0" style="font-family:Times New Roman;font-size:10pt;width:100%;border-collapse:collapse;text-align:left;"&gt;&lt;tr&gt;&lt;td colspan="5"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="width:82%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:15%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:8pt;"&gt;&lt;span style="font-family:Arial;font-size:8pt;font-weight:bold;text-decoration:underline;"&gt;Year Ended December&#160;31,&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;span style="font-family:Arial;font-size:8pt;font-weight:bold;"&gt;Amount&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;2020&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;5,412&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;2021&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;5,232&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;2022&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;4,862&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;2023&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;4,160&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;2024&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;3,593&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Thereafter&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;8,031&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;31,290&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;border-top:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;</us-gaap:ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock>
    <us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths
      contextRef="FI2019Q4"
      decimals="-3"
      id="d9057519e1681-wk-Fact-E8F8745CD94B0F13D18B8095A1830717"
      unitRef="usd">5412000</us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths>
    <us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo
      contextRef="FI2019Q4"
      decimals="-3"
      id="d9057519e1701-wk-Fact-249005F6FEA00DC3E4798095A1837DBF"
      unitRef="usd">5232000</us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo>
    <us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseYearThree
      contextRef="FI2019Q4"
      decimals="-3"
      id="d9057519e1726-wk-Fact-FEB8C02BDDE5DF0014CB8095A183DFAE"
      unitRef="usd">4862000</us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseYearThree>
    <us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseYearFour
      contextRef="FI2019Q4"
      decimals="-3"
      id="d9057519e1751-wk-Fact-4B031FD4069E4A1AF6CB8095A182871F"
      unitRef="usd">4160000</us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseYearFour>
    <us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseYearFive
      contextRef="FI2019Q4"
      decimals="-3"
      id="d9057519e1776-wk-Fact-8C27EAA156F950378D858095A183B0AB"
      unitRef="usd">3593000</us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseYearFive>
    <us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive
      contextRef="FI2019Q4"
      decimals="-3"
      id="d9057519e1801-wk-Fact-1317AEC84C91C4D32DF08095A1832046"
      unitRef="usd">8031000</us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive>
    <us-gaap:FiniteLivedIntangibleAssetsNet
      contextRef="FI2019Q4"
      decimals="-3"
      id="d9057519e1831-wk-Fact-7C3C8AC02782D01DACC78095A1831F6F"
      unitRef="usd">31290000</us-gaap:FiniteLivedIntangibleAssetsNet>
    <us-gaap:AccountsPayableAndAccruedLiabilitiesDisclosureTextBlock
      contextRef="FD2019Q4YTD"
      id="TextSelection-FE3798F3555DC69F0C8F8095A1A8F754-0-wk-Fact-9D5DEBAE4BB00FB58F568095A1707A9A">Accrued Expenses&lt;div style="line-height:120%;padding-top:6px;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Accrued expenses consisted of the following (in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:120%;font-size:10pt;"&gt;&lt;div style="padding-left:0px;text-indent:0px;line-height:normal;padding-top:10px;"&gt;&lt;table cellpadding="0" cellspacing="0" style="font-family:Times New Roman;font-size:10pt;width:99.80506822612085%;border-collapse:collapse;text-align:left;"&gt;&lt;tr&gt;&lt;td colspan="8"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="width:65%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:15%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:15%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:8pt;"&gt;&lt;span style="font-family:inherit;font-size:8pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="7" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;span style="font-family:Arial;font-size:8pt;font-weight:bold;"&gt;December&#160;31,&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;span style="font-family:Arial;font-size:8pt;font-weight:bold;"&gt;2019&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;span style="font-family:Arial;font-size:8pt;font-weight:bold;"&gt;2018&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Salaries, commissions, and payroll taxes&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;11,500&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;11,039&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;border-top:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Foreign retirement obligations&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;6,146&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;4,816&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Warranty obligations&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;4,713&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;4,743&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Vacation&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;4,708&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;6,507&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Acquisition deferred and contingent liabilities&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;2,103&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;1,706&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Company bonuses&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;&#x2014;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;9,134&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Other&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;23,029&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;22,275&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;52,199&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;60,220&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:12px;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;The changes in the warranty obligation were as follows (in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:120%;font-size:10pt;"&gt;&lt;div style="padding-left:0px;text-indent:0px;line-height:normal;padding-top:10px;"&gt;&lt;table cellpadding="0" cellspacing="0" style="font-family:Times New Roman;font-size:10pt;width:100%;border-collapse:collapse;text-align:left;"&gt;&lt;tr&gt;&lt;td colspan="4"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="width:82%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:16%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Balance as of December 31, 2017&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;4,701&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Provisions for warranties issued during the period&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;4,184&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Fulfillment of warranty obligations&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;(4,024&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;)&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Foreign exchange rate changes&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;(118&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;)&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Balance as of December 31, 2018&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;4,743&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Provisions for warranties issued during the period&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;3,841&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Fulfillment of warranty obligations&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;(3,871&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;)&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Balance as of December 31, 2019&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;4,713&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;border-top:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;</us-gaap:AccountsPayableAndAccruedLiabilitiesDisclosureTextBlock>
    <us-gaap:ScheduleOfAccruedLiabilitiesTableTextBlock
      contextRef="FD2019Q4YTD"
      id="TextSelection-19308F885603102280698095A1A80053-0-wk-Fact-3E4086F9E77C371D7D028095A1711EE1">&lt;div style="line-height:120%;padding-top:6px;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Accrued expenses consisted of the following (in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:120%;font-size:10pt;"&gt;&lt;div style="padding-left:0px;text-indent:0px;line-height:normal;padding-top:10px;"&gt;&lt;table cellpadding="0" cellspacing="0" style="font-family:Times New Roman;font-size:10pt;width:99.80506822612085%;border-collapse:collapse;text-align:left;"&gt;&lt;tr&gt;&lt;td colspan="8"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="width:65%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:15%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:15%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:8pt;"&gt;&lt;span style="font-family:inherit;font-size:8pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="7" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;span style="font-family:Arial;font-size:8pt;font-weight:bold;"&gt;December&#160;31,&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;span style="font-family:Arial;font-size:8pt;font-weight:bold;"&gt;2019&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;span style="font-family:Arial;font-size:8pt;font-weight:bold;"&gt;2018&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Salaries, commissions, and payroll taxes&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;11,500&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;11,039&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;border-top:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Foreign retirement obligations&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;6,146&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;4,816&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Warranty obligations&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;4,713&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;4,743&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Vacation&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;4,708&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;6,507&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Acquisition deferred and contingent liabilities&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;2,103&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;1,706&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Company bonuses&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;&#x2014;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;9,134&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Other&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;23,029&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;22,275&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;52,199&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;60,220&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;</us-gaap:ScheduleOfAccruedLiabilitiesTableTextBlock>
    <us-gaap:AccruedSalariesCurrent
      contextRef="FI2019Q4"
      decimals="-3"
      id="d9058253e761-wk-Fact-D1F6BE442C2CA9FD97F58095A196F687"
      unitRef="usd">11500000</us-gaap:AccruedSalariesCurrent>
    <us-gaap:AccruedSalariesCurrent
      contextRef="FI2018Q4"
      decimals="-3"
      id="d9058253e780-wk-Fact-824F0EB2B229C00734C78095A19036BD"
      unitRef="usd">11039000</us-gaap:AccruedSalariesCurrent>
    <cgnx:RetirementAllowance
      contextRef="FI2019Q4"
      decimals="-3"
      id="d9058253e795-wk-Fact-A8314783D0C9B4119BE0AB97994DF22A"
      unitRef="usd">6146000</cgnx:RetirementAllowance>
    <cgnx:RetirementAllowance
      contextRef="FI2018Q4"
      decimals="-3"
      id="d9058253e814-wk-Fact-3906FB5307383B83FC37AB97B20D7CD6"
      unitRef="usd">4816000</cgnx:RetirementAllowance>
    <us-gaap:ProductWarrantyAccrualClassifiedCurrent
      contextRef="FI2019Q4"
      decimals="-3"
      id="d9058253e834-wk-Fact-F13CCBCD6C1DDE0274B8AB9709A9A61A"
      unitRef="usd">4713000</us-gaap:ProductWarrantyAccrualClassifiedCurrent>
    <us-gaap:ProductWarrantyAccrualClassifiedCurrent
      contextRef="FI2018Q4"
      decimals="-3"
      id="d9058253e853-wk-Fact-970169A556C101EA66C5AB9721108CFC"
      unitRef="usd">4743000</us-gaap:ProductWarrantyAccrualClassifiedCurrent>
    <us-gaap:AccruedVacationCurrent
      contextRef="FI2019Q4"
      decimals="-3"
      id="d9058253e873-wk-Fact-6CD812F60E6A0BED3CC58095A195F692"
      unitRef="usd">4708000</us-gaap:AccruedVacationCurrent>
    <us-gaap:AccruedVacationCurrent
      contextRef="FI2018Q4"
      decimals="-3"
      id="d9058253e892-wk-Fact-68126BC9985B5D5BD2AF8095A190F5BB"
      unitRef="usd">6507000</us-gaap:AccruedVacationCurrent>
    <us-gaap:BusinessCombinationSeparatelyRecognizedTransactionsLiabilitiesRecognized
      contextRef="FI2019Q4"
      decimals="-3"
      id="d9058253e912-wk-Fact-4C5E928F387DDBBD9B098095A1907A45"
      unitRef="usd">2103000</us-gaap:BusinessCombinationSeparatelyRecognizedTransactionsLiabilitiesRecognized>
    <us-gaap:BusinessCombinationSeparatelyRecognizedTransactionsLiabilitiesRecognized
      contextRef="FI2018Q4"
      decimals="-3"
      id="d9058253e931-wk-Fact-C1F81CAC3E888BC775948095A1954A2F"
      unitRef="usd">1706000</us-gaap:BusinessCombinationSeparatelyRecognizedTransactionsLiabilitiesRecognized>
    <us-gaap:AccruedBonusesCurrent
      contextRef="FI2019Q4"
      decimals="-3"
      id="d9058253e951-wk-Fact-63A2FB27FFAF7447ABFDAB969B25D26F"
      unitRef="usd">0</us-gaap:AccruedBonusesCurrent>
    <us-gaap:AccruedBonusesCurrent
      contextRef="FI2018Q4"
      decimals="-3"
      id="d9058253e970-wk-Fact-C140FEEE37806B66DD85AB969D17BDD6"
      unitRef="usd">9134000</us-gaap:AccruedBonusesCurrent>
    <us-gaap:OtherAccruedLiabilitiesCurrent
      contextRef="FI2019Q4"
      decimals="-3"
      id="d9058253e990-wk-Fact-CEFE12089032F8980AA78095A196DBA4"
      unitRef="usd">23029000</us-gaap:OtherAccruedLiabilitiesCurrent>
    <us-gaap:OtherAccruedLiabilitiesCurrent
      contextRef="FI2018Q4"
      decimals="-3"
      id="d9058253e1009-wk-Fact-14E2E7D5D5ABCE7842AE8095A1968734"
      unitRef="usd">22275000</us-gaap:OtherAccruedLiabilitiesCurrent>
    <us-gaap:AccruedLiabilitiesCurrent
      contextRef="FI2019Q4"
      decimals="-3"
      id="d9058253e1034-wk-Fact-7D43CCBB2F2D2C0F66F78095A18D6138"
      unitRef="usd">52199000</us-gaap:AccruedLiabilitiesCurrent>
    <us-gaap:AccruedLiabilitiesCurrent
      contextRef="FI2018Q4"
      decimals="-3"
      id="d9058253e1053-wk-Fact-08CBA18F4B05B33341B48095A18D7935"
      unitRef="usd">60220000</us-gaap:AccruedLiabilitiesCurrent>
    <us-gaap:ScheduleOfProductWarrantyLiabilityTableTextBlock
      contextRef="FD2019Q4YTD"
      id="TextSelection-0F47E614BC9DFA99A0338095A1A8579A-0-wk-Fact-B8C3D0B98DFE47CB2A4D8095A171F50D">&lt;div style="line-height:120%;padding-top:12px;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;The changes in the warranty obligation were as follows (in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:120%;font-size:10pt;"&gt;&lt;div style="padding-left:0px;text-indent:0px;line-height:normal;padding-top:10px;"&gt;&lt;table cellpadding="0" cellspacing="0" style="font-family:Times New Roman;font-size:10pt;width:100%;border-collapse:collapse;text-align:left;"&gt;&lt;tr&gt;&lt;td colspan="4"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="width:82%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:16%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Balance as of December 31, 2017&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;4,701&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Provisions for warranties issued during the period&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;4,184&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Fulfillment of warranty obligations&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;(4,024&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;)&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Foreign exchange rate changes&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;(118&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;)&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Balance as of December 31, 2018&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;4,743&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Provisions for warranties issued during the period&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;3,841&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Fulfillment of warranty obligations&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;(3,871&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;)&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Balance as of December 31, 2019&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;4,713&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;border-top:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;</us-gaap:ScheduleOfProductWarrantyLiabilityTableTextBlock>
    <us-gaap:ProductWarrantyAccrual
      contextRef="FI2017Q4"
      decimals="-3"
      id="d9058253e1104-wk-Fact-D35925738CCCB8D6A8958095A174FDD1"
      unitRef="usd">4701000</us-gaap:ProductWarrantyAccrual>
    <us-gaap:ProductWarrantyAccrualWarrantiesIssued
      contextRef="FD2018Q4YTD"
      decimals="-3"
      id="d9058253e1119-wk-Fact-044B383E3B90FFFEFAC68095A1744082"
      unitRef="usd">4184000</us-gaap:ProductWarrantyAccrualWarrantiesIssued>
    <us-gaap:ProductWarrantyAccrualPayments
      contextRef="FD2018Q4YTD"
      decimals="-3"
      id="d9058253e1139-wk-Fact-A7566A58081197E8D5B58095A1724841"
      unitRef="usd">4024000</us-gaap:ProductWarrantyAccrualPayments>
    <us-gaap:StandardAndExtendedProductWarrantyAccrualForeignCurrencyTranslationGainLoss
      contextRef="FD2018Q4YTD"
      decimals="-3"
      id="d9058253e1160-wk-Fact-FC3793B402BFBC1B726D8095A17146A9"
      unitRef="usd">-118000</us-gaap:StandardAndExtendedProductWarrantyAccrualForeignCurrencyTranslationGainLoss>
    <us-gaap:ProductWarrantyAccrual
      contextRef="FI2018Q4"
      decimals="-3"
      id="d9058253e1181-wk-Fact-834E76962585736255E88095A174F25A"
      unitRef="usd">4743000</us-gaap:ProductWarrantyAccrual>
    <us-gaap:ProductWarrantyAccrualWarrantiesIssued
      contextRef="FD2019Q4YTD"
      decimals="-3"
      id="d9058253e1201-wk-Fact-9A18967CA0633F08F9E88095A171B1C1"
      unitRef="usd">3841000</us-gaap:ProductWarrantyAccrualWarrantiesIssued>
    <us-gaap:ProductWarrantyAccrualPayments
      contextRef="FD2019Q4YTD"
      decimals="-3"
      id="d9058253e1221-wk-Fact-2B9AD3048C8E800A5B458095A1723A55"
      unitRef="usd">3871000</us-gaap:ProductWarrantyAccrualPayments>
    <us-gaap:ProductWarrantyAccrual
      contextRef="FI2019Q4"
      decimals="-3"
      id="d9058253e1247-wk-Fact-81ABAB5E278EAF3A7CDE8095A1741CB8"
      unitRef="usd">4713000</us-gaap:ProductWarrantyAccrual>
    <us-gaap:CommitmentsAndContingenciesDisclosureTextBlock
      contextRef="FD2019Q4YTD"
      id="TextSelection-489283F9C1CD6AD01F458095A1A8591A-0-wk-Fact-78F00D5A8365545D98288095A17D3E49">Commitments and Contingencies&lt;div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;As of &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;December&#160;31, 2019&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;, the Company had outstanding purchase orders totaling &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;$7,707,000&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt; to purchase inventory from various vendors.  Certain of these purchase orders may be canceled by the Company, subject to cancellation penalties.  These purchase commitments relate to expected sales in 2020.&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&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="FI2019Q4"
      decimals="0"
      id="d9058311e647-wk-Fact-3AACDD4E1567A8B271D98095A183C4C8"
      unitRef="usd">7707000</us-gaap:PurchaseCommitmentRemainingMinimumAmountCommitted>
    <cgnx:IndemnificationProvisionsTextBlock
      contextRef="FD2019Q4YTD"
      id="TextSelection-755432FBD4A61DCB1AFA8095A1A8BCC0-0-wk-Fact-653E178D7F9D9896E5C98095A1733820">Indemnification Provisions&lt;div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&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="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&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 generally 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;&lt;div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&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.  The maximum potential amount of future payments the Company could be required to make under these provisions is generally limited and is likely recoverable under the &lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;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.&lt;/span&gt;&lt;/div&gt;</cgnx:IndemnificationProvisionsTextBlock>
    <us-gaap:DerivativeInstrumentsAndHedgingActivitiesDisclosureTextBlock
      contextRef="FD2019Q4YTD"
      id="TextSelection-4E0B86019E3091872BE48095A1A82A08-0-wk-Fact-391920C33B1BEF9BA0E08095A1900152">Derivative Instruments&lt;div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;The 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 may enter into two types of hedges to manage this risk.  The first are economic hedges which utilize foreign currency forward contracts with maturities of up to &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;45 days&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt; to manage the exposure to fluctuations in foreign currency exchange rates arising primarily from foreign-denominated receivables and payables.  The gains and losses on these derivatives are intended to be offset by the changes in the fair value of the assets and liabilities being hedged.  These economic hedges are not designated as hedging instruments for hedge accounting treatment.  The second are cash flow hedges which utilize foreign currency forward contracts with maturities of up to &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;18 months&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt; to hedge specific forecasted transactions of the Company's foreign subsidiaries with the goal of protecting our budgeted revenues and expenses against foreign currency exchange rate changes compared to our budgeted rates.  These cash flow hedges are designated as hedging instruments for hedge accounting treatment. The Company did not have any cash flow hedges as of December 31, 2019 and 2018. &lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;The Company had the following outstanding forward contracts (in thousands): &lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"&gt;&lt;div style="padding-left:0px;text-indent:0px;line-height:normal;padding-top:10px;"&gt;&lt;table cellpadding="0" cellspacing="0" style="font-family:Times New Roman;font-size:10pt;width:100%;border-collapse:collapse;text-align:left;"&gt;&lt;tr&gt;&lt;td colspan="12"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="width:49%;"/&gt;&lt;td style="width:12%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:10%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:11%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:11%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="5" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:center;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;December 31, 2019&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="5" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:center;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;December 31, 2018&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;text-decoration:underline;"&gt;Currency&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;text-decoration:underline;"&gt;Notional Value&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;text-decoration:underline;"&gt;USD Equivalent&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;text-decoration:underline;"&gt;Notional Value&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;text-decoration:underline;"&gt;USD Equivalent&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;height:13px;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;height:13px;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;height:13px;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;height:13px;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;height:13px;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;height:13px;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="12" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-style:italic;"&gt;Derivatives Not Designated as Hedging Instruments:&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Korean Won&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;161,951,500&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;139,688&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;3,125,000&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;2,808&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Euro&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;18,000&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;20,249&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;23,000&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;26,330&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Japanese Yen&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;575,000&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;5,291&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;380,000&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;3,459&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Mexican Peso&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;80,000&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;4,223&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;&#x2014;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;&#x2014;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;British Pound&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;2,700&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;3,569&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;2,500&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;3,204&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Hungarian Forint&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;870,000&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;2,962&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;750,000&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;2,685&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Taiwanese Dollar&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;37,450&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;1,256&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;55,000&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;1,807&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Canadian Dollar&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;1,300&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;1,000&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;990&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;726&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Singapore Dollar&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;845&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;628&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;700&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;514&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&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="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"&gt;&lt;div style="padding-left:0px;text-indent:0px;line-height:normal;padding-top:10px;"&gt;&lt;table cellpadding="0" cellspacing="0" style="font-family:Times New Roman;font-size:10pt;width:100%;border-collapse:collapse;text-align:left;"&gt;&lt;tr&gt;&lt;td colspan="20"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="width:15%;"/&gt;&lt;td style="width:14%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:11%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:11%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:14%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:11%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:11%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:8pt;"&gt;&lt;span style="font-family:Arial;font-size:8pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="9" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:center;font-size:9pt;"&gt;&lt;span style="font-family:Arial;font-size:9pt;font-weight:bold;"&gt;Asset Derivatives&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="9" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:center;font-size:9pt;"&gt;&lt;span style="font-family:Arial;font-size:9pt;font-weight:bold;"&gt;Liability Derivatives&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td rowspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;border-top:1px solid #000000;"&gt;&lt;div style="text-align:center;font-size:9pt;"&gt;&lt;span style="font-family:Arial;font-size:9pt;font-weight:bold;"&gt;Balance&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:center;font-size:9pt;"&gt;&lt;span style="font-family:Arial;font-size:9pt;font-weight:bold;"&gt;Sheet&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:center;font-size:9pt;"&gt;&lt;span style="font-family:Arial;font-size:9pt;font-weight:bold;"&gt;Location&#160; &#160;&#160;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="7" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:center;font-size:9pt;"&gt;&lt;span style="font-family:Arial;font-size:9pt;font-weight:bold;"&gt;Fair Value&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td rowspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;border-top:1px solid #000000;"&gt;&lt;div style="text-align:center;font-size:9pt;"&gt;&lt;span style="font-family:Arial;font-size:9pt;font-weight:bold;"&gt;Balance&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:center;font-size:9pt;"&gt;&lt;span style="font-family:Arial;font-size:9pt;font-weight:bold;"&gt;Sheet&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:center;font-size:9pt;"&gt;&lt;span style="font-family:Arial;font-size:9pt;font-weight:bold;"&gt;Location&#160; &#160;&#160;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="7" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:center;font-size:9pt;"&gt;&lt;span style="font-family:Arial;font-size:9pt;font-weight:bold;"&gt;Fair Value&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:center;font-size:9pt;"&gt;&lt;span style="font-family:Arial;font-size:9pt;font-weight:bold;"&gt;December 31, 2019&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:center;font-size:9pt;"&gt;&lt;span style="font-family:Arial;font-size:9pt;"&gt;December 31, 2018&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:center;font-size:9pt;"&gt;&lt;span style="font-family:Arial;font-size:9pt;font-weight:bold;"&gt;December 31, 2019&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:center;font-size:9pt;"&gt;&lt;span style="font-family:Arial;font-size:9pt;"&gt;December 31, 2018&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="20" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-style:italic;"&gt;Derivatives Not Designated as Hedging Instruments:&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Economic hedge forward contracts&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Prepaid expenses and other current assets&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;857&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;1&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Accrued expenses&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;23&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;106&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:12px;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&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 style="padding-left:0px;text-indent:0px;line-height:normal;padding-top:10px;"&gt;&lt;table cellpadding="0" cellspacing="0" style="font-family:Times New Roman;font-size:10pt;width:99.80506822612085%;border-collapse:collapse;text-align:left;"&gt;&lt;tr&gt;&lt;td colspan="19"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="width:18%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:13%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:13%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:19%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:13%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:11%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="9" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:center;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;Asset Derivatives&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="9" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:center;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;Liability Derivatives&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:center;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;December&#160;31, 2019&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:center;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;December&#160;31, 2018&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:center;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;December&#160;31, 2019&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;border-top:1px solid #000000;"&gt;&lt;div style="text-align:center;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;December&#160;31, 2018&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Gross amounts of recognized assets&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;857&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;1&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Gross amounts of recognized liabilities&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;23&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;106&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Gross amounts offset&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;&#x2014;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;&#x2014;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Gross amounts offset&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;&#x2014;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;&#x2014;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Net amount of assets presented&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;857&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;border-top:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;1&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;border-top:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Net amount of liabilities presented&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;23&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;border-top:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;106&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;border-top:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&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="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"&gt;&lt;div style="padding-left:0px;text-indent:0px;line-height:normal;padding-top:10px;"&gt;&lt;table cellpadding="0" cellspacing="0" style="font-family:Times New Roman;font-size:10pt;width:99.80506822612085%;border-collapse:collapse;text-align:left;"&gt;&lt;tr&gt;&lt;td colspan="14"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="width:22%;"/&gt;&lt;td style="width:24%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:15%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:15%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:15%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td rowspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:8pt;"&gt;&lt;span style="font-family:Arial;font-size:8pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td rowspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:8pt;"&gt;&lt;span style="font-family:Arial;font-size:8pt;font-weight:bold;"&gt;Location in Financial Statements&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td rowspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="11" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;span style="font-family:Arial;font-size:8pt;font-weight:bold;"&gt;Year Ended December 31,&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;span style="font-family:Arial;font-size:8pt;font-weight:bold;"&gt;2019&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;span style="font-family:Arial;font-size:8pt;"&gt;2018&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;span style="font-family:Arial;font-size:8pt;"&gt;2017&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="14" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-style:italic;"&gt;Derivatives Designated as Hedging Instruments:&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Gains (losses) reclassified from accumulated other comprehensive income (loss) into current operations (effective portion)&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Revenue&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;&#x2014;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;&#x2014;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;30&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Research, development, and engineering expenses&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;&#x2014;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;&#x2014;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;3&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Selling, general, and administrative expenses&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;&#x2014;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;&#x2014;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;8&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Total gains (losses) reclassified from accumulated other comprehensive income (loss) into current operations&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;&#x2014;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;border-top:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;&#x2014;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;border-top:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;41&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;border-top:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;height:13px;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;height:13px;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;height:13px;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;height:13px;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;height:13px;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;height:13px;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;height:13px;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;height:13px;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="14" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-style:italic;"&gt;Derivatives Not Designated as Hedging Instruments:&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Gains (losses) recognized in current operations&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Foreign currency gain (loss)&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;1,305&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;(285&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;)&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;270&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;</us-gaap:DerivativeInstrumentsAndHedgingActivitiesDisclosureTextBlock>
    <us-gaap:MaximumRemainingMaturityOfForeignCurrencyDerivatives1
      contextRef="FD2019Q4YTD_us-gaap_HedgingDesignationAxis_us-gaap_NondesignatedMember"
      id="d9062756e642-wk-Fact-878A08C70ECAAB1CC6868095A18D8ED2">P45D</us-gaap:MaximumRemainingMaturityOfForeignCurrencyDerivatives1>
    <us-gaap:MaximumLengthOfTimeHedgedInCashFlowHedge1
      contextRef="FD2019Q4YTD_us-gaap_HedgingDesignationAxis_us-gaap_DesignatedAsHedgingInstrumentMember"
      id="d9062756e646-wk-Fact-9F0B7E733FB0F06F4CF08095A18EB83D">P18M</us-gaap:MaximumLengthOfTimeHedgedInCashFlowHedge1>
    <us-gaap:ScheduleOfNotionalAmountsOfOutstandingDerivativePositionsTableTextBlock
      contextRef="FD2019Q4YTD"
      id="TextSelection-B9D183BC3760A19924A98095A1A87F5C-0-wk-Fact-257F12CD210C19E00C9C8095A196ACE2">&lt;div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;The Company had the following outstanding forward contracts (in thousands): &lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"&gt;&lt;div style="padding-left:0px;text-indent:0px;line-height:normal;padding-top:10px;"&gt;&lt;table cellpadding="0" cellspacing="0" style="font-family:Times New Roman;font-size:10pt;width:100%;border-collapse:collapse;text-align:left;"&gt;&lt;tr&gt;&lt;td colspan="12"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="width:49%;"/&gt;&lt;td style="width:12%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:10%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:11%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:11%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="5" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:center;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;December 31, 2019&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="5" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:center;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;December 31, 2018&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;text-decoration:underline;"&gt;Currency&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;text-decoration:underline;"&gt;Notional Value&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;text-decoration:underline;"&gt;USD Equivalent&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;text-decoration:underline;"&gt;Notional Value&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;text-decoration:underline;"&gt;USD Equivalent&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;height:13px;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;height:13px;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;height:13px;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;height:13px;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;height:13px;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;height:13px;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="12" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-style:italic;"&gt;Derivatives Not Designated as Hedging Instruments:&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Korean Won&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;161,951,500&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;139,688&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;3,125,000&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;2,808&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Euro&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;18,000&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;20,249&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;23,000&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;26,330&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Japanese Yen&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;575,000&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;5,291&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;380,000&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;3,459&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Mexican Peso&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;80,000&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;4,223&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;&#x2014;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;&#x2014;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;British Pound&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;2,700&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;3,569&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;2,500&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;3,204&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Hungarian Forint&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;870,000&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;2,962&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;750,000&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;2,685&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Taiwanese Dollar&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;37,450&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;1,256&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;55,000&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;1,807&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Canadian Dollar&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;1,300&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;1,000&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;990&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;726&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Singapore Dollar&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;845&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;628&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;700&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;514&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;</us-gaap:ScheduleOfNotionalAmountsOfOutstandingDerivativePositionsTableTextBlock>
    <us-gaap:DerivativeAssetNotionalAmount
      contextRef="FI2019Q4_srt_CurrencyAxis_currency_KRW_us-gaap_HedgingDesignationAxis_us-gaap_NondesignatedMember"
      decimals="-3"
      id="d9062756e931-wk-Fact-DB3FC914BB18F9B9C5CE911585E2F14A"
      unitRef="iso4217_KRW">161951500000</us-gaap:DerivativeAssetNotionalAmount>
    <us-gaap:DerivativeAssetNotionalAmount
      contextRef="FI2019Q4_srt_CurrencyAxis_currency_KRW_us-gaap_HedgingDesignationAxis_us-gaap_NondesignatedMember"
      decimals="-3"
      id="d9062756e945-wk-Fact-A46D5DC22C5F7CDE44569115887D679E"
      unitRef="usd">139688000</us-gaap:DerivativeAssetNotionalAmount>
    <us-gaap:DerivativeAssetNotionalAmount
      contextRef="FI2018Q4_srt_CurrencyAxis_currency_KRW_us-gaap_HedgingDesignationAxis_us-gaap_NondesignatedMember"
      decimals="-3"
      id="d9062756e959-wk-Fact-1EA7620CC2E808DBFBC491158BBCE137"
      unitRef="iso4217_KRW">3125000000</us-gaap:DerivativeAssetNotionalAmount>
    <us-gaap:DerivativeAssetNotionalAmount
      contextRef="FI2018Q4_srt_CurrencyAxis_currency_KRW_us-gaap_HedgingDesignationAxis_us-gaap_NondesignatedMember"
      decimals="-3"
      id="d9062756e973-wk-Fact-113FA21D69C75A36710391158EF4AF37"
      unitRef="usd">2808000</us-gaap:DerivativeAssetNotionalAmount>
    <us-gaap:DerivativeAssetNotionalAmount
      contextRef="FI2019Q4_srt_CurrencyAxis_currency_EUR_us-gaap_HedgingDesignationAxis_us-gaap_NondesignatedMember"
      decimals="-3"
      id="d9062756e989-wk-Fact-F1631206B58FBBE7E3B38095A174CFC7"
      unitRef="iso4217_JPY">18000000</us-gaap:DerivativeAssetNotionalAmount>
    <us-gaap:DerivativeAssetNotionalAmount
      contextRef="FI2019Q4_srt_CurrencyAxis_currency_EUR_us-gaap_HedgingDesignationAxis_us-gaap_NondesignatedMember"
      decimals="-3"
      id="d9062756e998-wk-Fact-8A85D5C1B6109BE6CB458095A17A3DAE"
      unitRef="usd">20249000</us-gaap:DerivativeAssetNotionalAmount>
    <us-gaap:DerivativeAssetNotionalAmount
      contextRef="FI2018Q4_srt_CurrencyAxis_currency_EUR_us-gaap_HedgingDesignationAxis_us-gaap_NondesignatedMember"
      decimals="-3"
      id="d9062756e1017-wk-Fact-C7E2D90F55B70F51B12E8095A17AFC45"
      unitRef="iso4217_JPY">23000000</us-gaap:DerivativeAssetNotionalAmount>
    <us-gaap:DerivativeAssetNotionalAmount
      contextRef="FI2018Q4_srt_CurrencyAxis_currency_EUR_us-gaap_HedgingDesignationAxis_us-gaap_NondesignatedMember"
      decimals="-3"
      id="d9062756e1026-wk-Fact-9A344ACEFF907481534F8095A17AA296"
      unitRef="usd">26330000</us-gaap:DerivativeAssetNotionalAmount>
    <us-gaap:DerivativeAssetNotionalAmount
      contextRef="FI2019Q4_srt_CurrencyAxis_currency_JPY_us-gaap_HedgingDesignationAxis_us-gaap_NondesignatedMember"
      decimals="-3"
      id="d9062756e1047-wk-Fact-0AD09FCD8F030715F82D8095A17ADC9A"
      unitRef="iso4217_JPY">575000000</us-gaap:DerivativeAssetNotionalAmount>
    <us-gaap:DerivativeAssetNotionalAmount
      contextRef="FI2019Q4_srt_CurrencyAxis_currency_JPY_us-gaap_HedgingDesignationAxis_us-gaap_NondesignatedMember"
      decimals="-3"
      id="d9062756e1056-wk-Fact-F3300AE6216113C271558095A17A8F55"
      unitRef="usd">5291000</us-gaap:DerivativeAssetNotionalAmount>
    <us-gaap:DerivativeAssetNotionalAmount
      contextRef="FI2018Q4_srt_CurrencyAxis_currency_JPY_us-gaap_HedgingDesignationAxis_us-gaap_NondesignatedMember"
      decimals="-3"
      id="d9062756e1075-wk-Fact-9E97ECC6ADF36346F1CD8095A173B980"
      unitRef="iso4217_JPY">380000000</us-gaap:DerivativeAssetNotionalAmount>
    <us-gaap:DerivativeAssetNotionalAmount
      contextRef="FI2018Q4_srt_CurrencyAxis_currency_JPY_us-gaap_HedgingDesignationAxis_us-gaap_NondesignatedMember"
      decimals="-3"
      id="d9062756e1084-wk-Fact-1746DCAF4FA020378D4F8095A17AAD10"
      unitRef="usd">3459000</us-gaap:DerivativeAssetNotionalAmount>
    <us-gaap:DerivativeAssetNotionalAmount
      contextRef="FI2019Q4_srt_CurrencyAxis_currency_MXN_us-gaap_HedgingDesignationAxis_us-gaap_NondesignatedMember"
      decimals="-3"
      id="d9062756e1105-wk-Fact-E0C7835FE6CBE4614FDDFD17F46279F3"
      unitRef="iso4217_JPY">80000000</us-gaap:DerivativeAssetNotionalAmount>
    <us-gaap:DerivativeAssetNotionalAmount
      contextRef="FI2019Q4_srt_CurrencyAxis_currency_MXN_us-gaap_HedgingDesignationAxis_us-gaap_NondesignatedMember"
      decimals="-3"
      id="d9062756e1114-wk-Fact-DD6AF3D9128D05B2FC9BFD17F6892AE3"
      unitRef="usd">4223000</us-gaap:DerivativeAssetNotionalAmount>
    <us-gaap:DerivativeAssetNotionalAmount
      contextRef="FI2018Q4_srt_CurrencyAxis_currency_MXN_us-gaap_HedgingDesignationAxis_us-gaap_NondesignatedMember"
      decimals="-3"
      id="d9062756e1133-wk-Fact-04C55D805DCAE68DA980FD17F89412EC"
      unitRef="iso4217_JPY">0</us-gaap:DerivativeAssetNotionalAmount>
    <us-gaap:DerivativeAssetNotionalAmount
      contextRef="FI2018Q4_srt_CurrencyAxis_currency_MXN_us-gaap_HedgingDesignationAxis_us-gaap_NondesignatedMember"
      decimals="-3"
      id="d9062756e1142-wk-Fact-FB9921B4242E57DC29DAFD17FA34E36A"
      unitRef="usd">0</us-gaap:DerivativeAssetNotionalAmount>
    <us-gaap:DerivativeAssetNotionalAmount
      contextRef="FI2019Q4_srt_CurrencyAxis_currency_GBP_us-gaap_HedgingDesignationAxis_us-gaap_NondesignatedMember"
      decimals="-3"
      id="d9062756e1163-wk-Fact-8347E7420847BBB11A9D8095A17471DD"
      unitRef="gbp">2700000</us-gaap:DerivativeAssetNotionalAmount>
    <us-gaap:DerivativeAssetNotionalAmount
      contextRef="FI2019Q4_srt_CurrencyAxis_currency_GBP_us-gaap_HedgingDesignationAxis_us-gaap_NondesignatedMember"
      decimals="-3"
      id="d9062756e1172-wk-Fact-5470CBD6532610654C928095A174F54A"
      unitRef="usd">3569000</us-gaap:DerivativeAssetNotionalAmount>
    <us-gaap:DerivativeAssetNotionalAmount
      contextRef="FI2018Q4_srt_CurrencyAxis_currency_GBP_us-gaap_HedgingDesignationAxis_us-gaap_NondesignatedMember"
      decimals="-3"
      id="d9062756e1191-wk-Fact-181362343EED8CB88BCF8095A1746DDD"
      unitRef="gbp">2500000</us-gaap:DerivativeAssetNotionalAmount>
    <us-gaap:DerivativeAssetNotionalAmount
      contextRef="FI2018Q4_srt_CurrencyAxis_currency_GBP_us-gaap_HedgingDesignationAxis_us-gaap_NondesignatedMember"
      decimals="-3"
      id="d9062756e1200-wk-Fact-E97E4A3364B5175B2F1F8095A17A8138"
      unitRef="usd">3204000</us-gaap:DerivativeAssetNotionalAmount>
    <us-gaap:DerivativeAssetNotionalAmount
      contextRef="FI2019Q4_srt_CurrencyAxis_currency_HUF_us-gaap_HedgingDesignationAxis_us-gaap_NondesignatedMember"
      decimals="-3"
      id="d9062756e1221-wk-Fact-3B09B5845451F83A78B48095A17AC8B7"
      unitRef="huf">870000000</us-gaap:DerivativeAssetNotionalAmount>
    <us-gaap:DerivativeAssetNotionalAmount
      contextRef="FI2019Q4_srt_CurrencyAxis_currency_HUF_us-gaap_HedgingDesignationAxis_us-gaap_NondesignatedMember"
      decimals="-3"
      id="d9062756e1230-wk-Fact-E8A00AD733E35B948C168095A174F592"
      unitRef="usd">2962000</us-gaap:DerivativeAssetNotionalAmount>
    <us-gaap:DerivativeAssetNotionalAmount
      contextRef="FI2018Q4_srt_CurrencyAxis_currency_HUF_us-gaap_HedgingDesignationAxis_us-gaap_NondesignatedMember"
      decimals="-3"
      id="d9062756e1249-wk-Fact-A25A231E5EC5DE32E1668095A17432C0"
      unitRef="huf">750000000</us-gaap:DerivativeAssetNotionalAmount>
    <us-gaap:DerivativeAssetNotionalAmount
      contextRef="FI2018Q4_srt_CurrencyAxis_currency_HUF_us-gaap_HedgingDesignationAxis_us-gaap_NondesignatedMember"
      decimals="-3"
      id="d9062756e1258-wk-Fact-46BB6E58A2C12FA4548C8095A17AFC6B"
      unitRef="usd">2685000</us-gaap:DerivativeAssetNotionalAmount>
    <us-gaap:DerivativeAssetNotionalAmount
      contextRef="FI2019Q4_srt_CurrencyAxis_currency_TWD_us-gaap_HedgingDesignationAxis_us-gaap_NondesignatedMember"
      decimals="-3"
      id="d9062756e1279-wk-Fact-054CE3A3E59B79B142F68095A173C888"
      unitRef="twd">37450000</us-gaap:DerivativeAssetNotionalAmount>
    <us-gaap:DerivativeAssetNotionalAmount
      contextRef="FI2019Q4_srt_CurrencyAxis_currency_TWD_us-gaap_HedgingDesignationAxis_us-gaap_NondesignatedMember"
      decimals="-3"
      id="d9062756e1288-wk-Fact-F415D6FC83B2A608D7A18095A17A957D"
      unitRef="usd">1256000</us-gaap:DerivativeAssetNotionalAmount>
    <us-gaap:DerivativeAssetNotionalAmount
      contextRef="FI2018Q4_srt_CurrencyAxis_currency_TWD_us-gaap_HedgingDesignationAxis_us-gaap_NondesignatedMember"
      decimals="-3"
      id="d9062756e1307-wk-Fact-7997B8B6305750E84FD08095A17AA5AF"
      unitRef="twd">55000000</us-gaap:DerivativeAssetNotionalAmount>
    <us-gaap:DerivativeAssetNotionalAmount
      contextRef="FI2018Q4_srt_CurrencyAxis_currency_TWD_us-gaap_HedgingDesignationAxis_us-gaap_NondesignatedMember"
      decimals="-3"
      id="d9062756e1316-wk-Fact-036BACE46B0B89F729418095A173D521"
      unitRef="usd">1807000</us-gaap:DerivativeAssetNotionalAmount>
    <us-gaap:DerivativeAssetNotionalAmount
      contextRef="FI2019Q4_srt_CurrencyAxis_currency_CAD_us-gaap_HedgingDesignationAxis_us-gaap_NondesignatedMember"
      decimals="-3"
      id="d9062756e1338-wk-Fact-C430AC03E705BE73064C8095A173265F"
      unitRef="twd">1300000</us-gaap:DerivativeAssetNotionalAmount>
    <us-gaap:DerivativeAssetNotionalAmount
      contextRef="FI2019Q4_srt_CurrencyAxis_currency_CAD_us-gaap_HedgingDesignationAxis_us-gaap_NondesignatedMember"
      decimals="-3"
      id="d9062756e1347-wk-Fact-E6415B6FE16A2458CD2B8095A17424EF"
      unitRef="usd">1000000</us-gaap:DerivativeAssetNotionalAmount>
    <us-gaap:DerivativeAssetNotionalAmount
      contextRef="FI2018Q4_srt_CurrencyAxis_currency_CAD_us-gaap_HedgingDesignationAxis_us-gaap_NondesignatedMember"
      decimals="-3"
      id="d9062756e1366-wk-Fact-376F0DE1EF0B811B23A18095A17A4268"
      unitRef="twd">990000</us-gaap:DerivativeAssetNotionalAmount>
    <us-gaap:DerivativeAssetNotionalAmount
      contextRef="FI2018Q4_srt_CurrencyAxis_currency_CAD_us-gaap_HedgingDesignationAxis_us-gaap_NondesignatedMember"
      decimals="-3"
      id="d9062756e1375-wk-Fact-E64CD1F51D409DE429F98095A17314CE"
      unitRef="usd">726000</us-gaap:DerivativeAssetNotionalAmount>
    <us-gaap:DerivativeAssetNotionalAmount
      contextRef="FI2019Q4_srt_CurrencyAxis_currency_SGD_us-gaap_HedgingDesignationAxis_us-gaap_NondesignatedMember"
      decimals="-3"
      id="d9062756e1396-wk-Fact-269B6387334FA7AEFB2A8095A173C07E"
      unitRef="sgd">845000</us-gaap:DerivativeAssetNotionalAmount>
    <us-gaap:DerivativeAssetNotionalAmount
      contextRef="FI2019Q4_srt_CurrencyAxis_currency_SGD_us-gaap_HedgingDesignationAxis_us-gaap_NondesignatedMember"
      decimals="-3"
      id="d9062756e1405-wk-Fact-B35577C40B60C4417F278095A1733866"
      unitRef="usd">628000</us-gaap:DerivativeAssetNotionalAmount>
    <us-gaap:DerivativeAssetNotionalAmount
      contextRef="FI2018Q4_srt_CurrencyAxis_currency_SGD_us-gaap_HedgingDesignationAxis_us-gaap_NondesignatedMember"
      decimals="-3"
      id="d9062756e1424-wk-Fact-50E263B2CD43930FF8B08095A17A391A"
      unitRef="sgd">700000</us-gaap:DerivativeAssetNotionalAmount>
    <us-gaap:DerivativeAssetNotionalAmount
      contextRef="FI2018Q4_srt_CurrencyAxis_currency_SGD_us-gaap_HedgingDesignationAxis_us-gaap_NondesignatedMember"
      decimals="-3"
      id="d9062756e1433-wk-Fact-DA0B972F4E92D35608E68095A179A84C"
      unitRef="usd">514000</us-gaap:DerivativeAssetNotionalAmount>
    <us-gaap:ScheduleOfDerivativeInstrumentsInStatementOfFinancialPositionFairValueTextBlock
      contextRef="FD2019Q4YTD"
      id="TextSelection-B75F98AEE5E1F289C38B8095A1A847F7-0-wk-Fact-FC3723EEAF16A06428F48095A190B7D9">&lt;div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&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="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"&gt;&lt;div style="padding-left:0px;text-indent:0px;line-height:normal;padding-top:10px;"&gt;&lt;table cellpadding="0" cellspacing="0" style="font-family:Times New Roman;font-size:10pt;width:100%;border-collapse:collapse;text-align:left;"&gt;&lt;tr&gt;&lt;td colspan="20"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="width:15%;"/&gt;&lt;td style="width:14%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:11%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:11%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:14%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:11%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:11%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:8pt;"&gt;&lt;span style="font-family:Arial;font-size:8pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="9" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:center;font-size:9pt;"&gt;&lt;span style="font-family:Arial;font-size:9pt;font-weight:bold;"&gt;Asset Derivatives&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="9" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:center;font-size:9pt;"&gt;&lt;span style="font-family:Arial;font-size:9pt;font-weight:bold;"&gt;Liability Derivatives&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td rowspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;border-top:1px solid #000000;"&gt;&lt;div style="text-align:center;font-size:9pt;"&gt;&lt;span style="font-family:Arial;font-size:9pt;font-weight:bold;"&gt;Balance&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:center;font-size:9pt;"&gt;&lt;span style="font-family:Arial;font-size:9pt;font-weight:bold;"&gt;Sheet&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:center;font-size:9pt;"&gt;&lt;span style="font-family:Arial;font-size:9pt;font-weight:bold;"&gt;Location&#160; &#160;&#160;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="7" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:center;font-size:9pt;"&gt;&lt;span style="font-family:Arial;font-size:9pt;font-weight:bold;"&gt;Fair Value&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td rowspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;border-top:1px solid #000000;"&gt;&lt;div style="text-align:center;font-size:9pt;"&gt;&lt;span style="font-family:Arial;font-size:9pt;font-weight:bold;"&gt;Balance&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:center;font-size:9pt;"&gt;&lt;span style="font-family:Arial;font-size:9pt;font-weight:bold;"&gt;Sheet&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:center;font-size:9pt;"&gt;&lt;span style="font-family:Arial;font-size:9pt;font-weight:bold;"&gt;Location&#160; &#160;&#160;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="7" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:center;font-size:9pt;"&gt;&lt;span style="font-family:Arial;font-size:9pt;font-weight:bold;"&gt;Fair Value&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:center;font-size:9pt;"&gt;&lt;span style="font-family:Arial;font-size:9pt;font-weight:bold;"&gt;December 31, 2019&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:center;font-size:9pt;"&gt;&lt;span style="font-family:Arial;font-size:9pt;"&gt;December 31, 2018&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:center;font-size:9pt;"&gt;&lt;span style="font-family:Arial;font-size:9pt;font-weight:bold;"&gt;December 31, 2019&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:center;font-size:9pt;"&gt;&lt;span style="font-family:Arial;font-size:9pt;"&gt;December 31, 2018&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="20" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-style:italic;"&gt;Derivatives Not Designated as Hedging Instruments:&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Economic hedge forward contracts&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Prepaid expenses and other current assets&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;857&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;1&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Accrued expenses&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;23&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;106&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;</us-gaap:ScheduleOfDerivativeInstrumentsInStatementOfFinancialPositionFairValueTextBlock>
    <us-gaap:DerivativeAssets
      contextRef="FI2019Q4_us-gaap_BalanceSheetLocationAxis_us-gaap_PrepaidExpensesAndOtherCurrentAssetsMember_us-gaap_HedgingDesignationAxis_us-gaap_NondesignatedMember"
      decimals="-3"
      id="d9062756e1933-wk-Fact-25E3D9EEA1B6C77F12938095A172A44C"
      unitRef="usd">857000</us-gaap:DerivativeAssets>
    <us-gaap:DerivativeAssets
      contextRef="FI2018Q4_us-gaap_BalanceSheetLocationAxis_us-gaap_PrepaidExpensesAndOtherCurrentAssetsMember_us-gaap_HedgingDesignationAxis_us-gaap_NondesignatedMember"
      decimals="-3"
      id="d9062756e1952-wk-Fact-A4F0D314D57A3D0E30FB8095A1715A7D"
      unitRef="usd">1000</us-gaap:DerivativeAssets>
    <us-gaap:DerivativeLiabilities
      contextRef="FI2019Q4_us-gaap_BalanceSheetLocationAxis_cgnx_AccruedExpensesMember_us-gaap_HedgingDesignationAxis_us-gaap_NondesignatedMember"
      decimals="-3"
      id="d9062756e1982-wk-Fact-03171D838C76FD40B5468095A171AE82"
      unitRef="usd">23000</us-gaap:DerivativeLiabilities>
    <us-gaap:DerivativeLiabilities
      contextRef="FI2018Q4_us-gaap_BalanceSheetLocationAxis_cgnx_AccruedExpensesMember_us-gaap_HedgingDesignationAxis_us-gaap_NondesignatedMember"
      decimals="-3"
      id="d9062756e2001-wk-Fact-D93926EF5582581EB3368095A1710002"
      unitRef="usd">106000</us-gaap:DerivativeLiabilities>
    <us-gaap:OffsettingAssetsTableTextBlock
      contextRef="FD2019Q4YTD"
      id="TextSelection-D4AE74F15B45AB072BEA8095A1A8D606-0-wk-Fact-9A6CD844C079C1861E858095A196BB2F">&lt;div style="line-height:120%;padding-top:12px;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&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 style="padding-left:0px;text-indent:0px;line-height:normal;padding-top:10px;"&gt;&lt;table cellpadding="0" cellspacing="0" style="font-family:Times New Roman;font-size:10pt;width:99.80506822612085%;border-collapse:collapse;text-align:left;"&gt;&lt;tr&gt;&lt;td colspan="19"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="width:18%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:13%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:13%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:19%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:13%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:11%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="9" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:center;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;Asset Derivatives&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="9" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:center;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;Liability Derivatives&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:center;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;December&#160;31, 2019&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:center;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;December&#160;31, 2018&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:center;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;December&#160;31, 2019&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;border-top:1px solid #000000;"&gt;&lt;div style="text-align:center;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;December&#160;31, 2018&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Gross amounts of recognized assets&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;857&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;1&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Gross amounts of recognized liabilities&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;23&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;106&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Gross amounts offset&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;&#x2014;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;&#x2014;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Gross amounts offset&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;&#x2014;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;&#x2014;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Net amount of assets presented&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;857&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;border-top:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;1&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;border-top:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Net amount of liabilities presented&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;23&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;border-top:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;106&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;border-top:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;</us-gaap:OffsettingAssetsTableTextBlock>
    <us-gaap:DerivativeFairValueOfDerivativeAsset
      contextRef="FI2019Q4"
      decimals="-3"
      id="d9062756e2263-wk-Fact-65C7EBF3835A7AAD8AC78095A184D76B"
      unitRef="usd">857000</us-gaap:DerivativeFairValueOfDerivativeAsset>
    <us-gaap:DerivativeFairValueOfDerivativeAsset
      contextRef="FI2018Q4"
      decimals="-3"
      id="d9062756e2282-wk-Fact-2E9448F224F4C8FC0CF88095A184C75C"
      unitRef="usd">1000</us-gaap:DerivativeFairValueOfDerivativeAsset>
    <us-gaap:DerivativeFairValueOfDerivativeLiability
      contextRef="FI2019Q4"
      decimals="-3"
      id="d9062756e2312-wk-Fact-ACD1E7517200CD9DED4D8095A1855102"
      unitRef="usd">23000</us-gaap:DerivativeFairValueOfDerivativeLiability>
    <us-gaap:DerivativeFairValueOfDerivativeLiability
      contextRef="FI2018Q4"
      decimals="-3"
      id="d9062756e2331-wk-Fact-9D6D99721815584F5DE48095A17CEDC9"
      unitRef="usd">106000</us-gaap:DerivativeFairValueOfDerivativeLiability>
    <us-gaap:DerivativeAssetCollateralObligationToReturnCashOffset
      contextRef="FI2019Q4"
      decimals="-3"
      id="d9062756e2351-wk-Fact-BF8CC178EEFCD25B03788095A1847945"
      unitRef="usd">0</us-gaap:DerivativeAssetCollateralObligationToReturnCashOffset>
    <us-gaap:DerivativeAssetCollateralObligationToReturnCashOffset
      contextRef="FI2018Q4"
      decimals="-3"
      id="d9062756e2370-wk-Fact-AD283AA66E593495CC8C8095A1844562"
      unitRef="usd">0</us-gaap:DerivativeAssetCollateralObligationToReturnCashOffset>
    <us-gaap:DerivativeLiabilityCollateralRightToReclaimCashOffset
      contextRef="FI2019Q4"
      decimals="-3"
      id="d9062756e2400-wk-Fact-84D07FD9EFADFD4B1DA18095A17C7EC5"
      unitRef="usd">0</us-gaap:DerivativeLiabilityCollateralRightToReclaimCashOffset>
    <us-gaap:DerivativeLiabilityCollateralRightToReclaimCashOffset
      contextRef="FI2018Q4"
      decimals="-3"
      id="d9062756e2419-wk-Fact-C14ABDD632A193154F588095A17D8289"
      unitRef="usd">0</us-gaap:DerivativeLiabilityCollateralRightToReclaimCashOffset>
    <us-gaap:DerivativeAssets
      contextRef="FI2019Q4"
      decimals="-3"
      id="d9062756e2449-wk-Fact-765A305A2CE38375E3748095A17CE156"
      unitRef="usd">857000</us-gaap:DerivativeAssets>
    <us-gaap:DerivativeAssets
      contextRef="FI2018Q4"
      decimals="-3"
      id="d9062756e2468-wk-Fact-CFB225053FA2B51B9BCA8095A17DAAA7"
      unitRef="usd">1000</us-gaap:DerivativeAssets>
    <us-gaap:DerivativeLiabilities
      contextRef="FI2019Q4"
      decimals="-3"
      id="d9062756e2498-wk-Fact-E030F7B8F30D63BBBB228095A1845071"
      unitRef="usd">23000</us-gaap:DerivativeLiabilities>
    <us-gaap:DerivativeLiabilities
      contextRef="FI2018Q4"
      decimals="-3"
      id="d9062756e2517-wk-Fact-5A23CC8F9B5A52D72CE38095A184CD4B"
      unitRef="usd">106000</us-gaap:DerivativeLiabilities>
    <us-gaap:ScheduleOfDerivativeInstrumentsGainLossInStatementOfFinancialPerformanceTextBlock
      contextRef="FD2019Q4YTD"
      id="TextSelection-B6E57FCDC456CC61160D8095A1A8F4D1-0-wk-Fact-EAB8B32FD99738D0BB908095A196D59E">&lt;div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&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="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"&gt;&lt;div style="padding-left:0px;text-indent:0px;line-height:normal;padding-top:10px;"&gt;&lt;table cellpadding="0" cellspacing="0" style="font-family:Times New Roman;font-size:10pt;width:99.80506822612085%;border-collapse:collapse;text-align:left;"&gt;&lt;tr&gt;&lt;td colspan="14"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="width:22%;"/&gt;&lt;td style="width:24%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:15%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:15%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:15%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td rowspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:8pt;"&gt;&lt;span style="font-family:Arial;font-size:8pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td rowspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:8pt;"&gt;&lt;span style="font-family:Arial;font-size:8pt;font-weight:bold;"&gt;Location in Financial Statements&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td rowspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="11" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;span style="font-family:Arial;font-size:8pt;font-weight:bold;"&gt;Year Ended December 31,&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;span style="font-family:Arial;font-size:8pt;font-weight:bold;"&gt;2019&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;span style="font-family:Arial;font-size:8pt;"&gt;2018&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;span style="font-family:Arial;font-size:8pt;"&gt;2017&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="14" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-style:italic;"&gt;Derivatives Designated as Hedging Instruments:&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Gains (losses) reclassified from accumulated other comprehensive income (loss) into current operations (effective portion)&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Revenue&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;&#x2014;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;&#x2014;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;30&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Research, development, and engineering expenses&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;&#x2014;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;&#x2014;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;3&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Selling, general, and administrative expenses&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;&#x2014;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;&#x2014;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;8&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Total gains (losses) reclassified from accumulated other comprehensive income (loss) into current operations&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;&#x2014;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;border-top:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;&#x2014;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;border-top:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;41&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;border-top:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;height:13px;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;height:13px;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;height:13px;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;height:13px;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;height:13px;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;height:13px;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;height:13px;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;height:13px;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="14" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-style:italic;"&gt;Derivatives Not Designated as Hedging Instruments:&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Gains (losses) recognized in current operations&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Foreign currency gain (loss)&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;1,305&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;(285&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;)&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;270&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;</us-gaap:ScheduleOfDerivativeInstrumentsGainLossInStatementOfFinancialPerformanceTextBlock>
    <us-gaap:ScheduleOfDerivativeInstrumentsEffectOnOtherComprehensiveIncomeLossTableTextBlock
      contextRef="FD2019Q4YTD"
      id="TextSelection-91C99287049A8E0BB26C8095A1A87322-0-wk-Fact-134AFD0DEE9BC61A7C008095A196B42D">&lt;div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"&gt;&lt;div style="padding-left:0px;text-indent:0px;line-height:normal;padding-top:10px;"&gt;&lt;table cellpadding="0" cellspacing="0" style="font-family:Times New Roman;font-size:10pt;width:99.80506822612085%;border-collapse:collapse;text-align:left;"&gt;&lt;tr&gt;&lt;td colspan="14"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="width:22%;"/&gt;&lt;td style="width:24%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:15%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:15%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:15%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td rowspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:8pt;"&gt;&lt;span style="font-family:Arial;font-size:8pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td rowspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:8pt;"&gt;&lt;span style="font-family:Arial;font-size:8pt;font-weight:bold;"&gt;Location in Financial Statements&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td rowspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="11" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;span style="font-family:Arial;font-size:8pt;font-weight:bold;"&gt;Year Ended December 31,&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;span style="font-family:Arial;font-size:8pt;font-weight:bold;"&gt;2019&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;span style="font-family:Arial;font-size:8pt;"&gt;2018&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;span style="font-family:Arial;font-size:8pt;"&gt;2017&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="14" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-style:italic;"&gt;Derivatives Designated as Hedging Instruments:&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Gains (losses) reclassified from accumulated other comprehensive income (loss) into current operations (effective portion)&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Revenue&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;&#x2014;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;&#x2014;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;30&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Research, development, and engineering expenses&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;&#x2014;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;&#x2014;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;3&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Selling, general, and administrative expenses&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;&#x2014;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;&#x2014;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;8&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Total gains (losses) reclassified from accumulated other comprehensive income (loss) into current operations&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;&#x2014;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;border-top:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;&#x2014;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;border-top:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;41&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;border-top:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;height:13px;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;height:13px;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;height:13px;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;height:13px;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;height:13px;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;height:13px;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;height:13px;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;height:13px;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="14" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-style:italic;"&gt;Derivatives Not Designated as Hedging Instruments:&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Gains (losses) recognized in current operations&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Foreign currency gain (loss)&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;1,305&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;(285&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;)&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;270&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;</us-gaap:ScheduleOfDerivativeInstrumentsEffectOnOtherComprehensiveIncomeLossTableTextBlock>
    <us-gaap:DerivativeInstrumentsGainLossReclassifiedFromAccumulatedOCIIntoIncomeEffectivePortionNet
      contextRef="FD2019Q4YTD_us-gaap_HedgingDesignationAxis_us-gaap_DesignatedAsHedgingInstrumentMember_us-gaap_IncomeStatementLocationAxis_us-gaap_SalesRevenueGoodsNetMember"
      decimals="-3"
      id="d9062756e2808-wk-Fact-E7DDFDB4060F0502F7448095A196DA3B"
      unitRef="usd">0</us-gaap:DerivativeInstrumentsGainLossReclassifiedFromAccumulatedOCIIntoIncomeEffectivePortionNet>
    <us-gaap:DerivativeInstrumentsGainLossReclassifiedFromAccumulatedOCIIntoIncomeEffectivePortionNet
      contextRef="FD2018Q4YTD_us-gaap_HedgingDesignationAxis_us-gaap_DesignatedAsHedgingInstrumentMember_us-gaap_IncomeStatementLocationAxis_us-gaap_SalesRevenueGoodsNetMember"
      decimals="-3"
      id="d9062756e2827-wk-Fact-072780C402F73024DB5F8095A19001E8"
      unitRef="usd">0</us-gaap:DerivativeInstrumentsGainLossReclassifiedFromAccumulatedOCIIntoIncomeEffectivePortionNet>
    <us-gaap:DerivativeInstrumentsGainLossReclassifiedFromAccumulatedOCIIntoIncomeEffectivePortionNet
      contextRef="FD2017Q4YTD_us-gaap_HedgingDesignationAxis_us-gaap_DesignatedAsHedgingInstrumentMember_us-gaap_IncomeStatementLocationAxis_us-gaap_SalesRevenueGoodsNetMember"
      decimals="-3"
      id="d9062756e2847-wk-Fact-04BCB39AE6CF52267DA58095A190FD77"
      unitRef="usd">30000</us-gaap:DerivativeInstrumentsGainLossReclassifiedFromAccumulatedOCIIntoIncomeEffectivePortionNet>
    <us-gaap:DerivativeInstrumentsGainLossReclassifiedFromAccumulatedOCIIntoIncomeEffectivePortionNet
      contextRef="FD2019Q4YTD_us-gaap_HedgingDesignationAxis_us-gaap_DesignatedAsHedgingInstrumentMember_us-gaap_IncomeStatementLocationAxis_us-gaap_ResearchAndDevelopmentExpenseMember"
      decimals="-3"
      id="d9062756e2872-wk-Fact-855EDD003C82802058D98095A196D71F"
      unitRef="usd">0</us-gaap:DerivativeInstrumentsGainLossReclassifiedFromAccumulatedOCIIntoIncomeEffectivePortionNet>
    <us-gaap:DerivativeInstrumentsGainLossReclassifiedFromAccumulatedOCIIntoIncomeEffectivePortionNet
      contextRef="FD2018Q4YTD_us-gaap_HedgingDesignationAxis_us-gaap_DesignatedAsHedgingInstrumentMember_us-gaap_IncomeStatementLocationAxis_us-gaap_ResearchAndDevelopmentExpenseMember"
      decimals="-3"
      id="d9062756e2891-wk-Fact-E42E735442ED4B384BCD8095A196083A"
      unitRef="usd">0</us-gaap:DerivativeInstrumentsGainLossReclassifiedFromAccumulatedOCIIntoIncomeEffectivePortionNet>
    <us-gaap:DerivativeInstrumentsGainLossReclassifiedFromAccumulatedOCIIntoIncomeEffectivePortionNet
      contextRef="FD2017Q4YTD_us-gaap_HedgingDesignationAxis_us-gaap_DesignatedAsHedgingInstrumentMember_us-gaap_IncomeStatementLocationAxis_us-gaap_ResearchAndDevelopmentExpenseMember"
      decimals="-3"
      id="d9062756e2911-wk-Fact-1C16A8C793F910B512EA8095A19601F8"
      unitRef="usd">3000</us-gaap:DerivativeInstrumentsGainLossReclassifiedFromAccumulatedOCIIntoIncomeEffectivePortionNet>
    <us-gaap:DerivativeInstrumentsGainLossReclassifiedFromAccumulatedOCIIntoIncomeEffectivePortionNet
      contextRef="FD2019Q4YTD_us-gaap_HedgingDesignationAxis_us-gaap_DesignatedAsHedgingInstrumentMember_us-gaap_IncomeStatementLocationAxis_us-gaap_GeneralAndAdministrativeExpenseMember"
      decimals="-3"
      id="d9062756e2941-wk-Fact-0675B881A6F6970AF9688095A1905468"
      unitRef="usd">0</us-gaap:DerivativeInstrumentsGainLossReclassifiedFromAccumulatedOCIIntoIncomeEffectivePortionNet>
    <us-gaap:DerivativeInstrumentsGainLossReclassifiedFromAccumulatedOCIIntoIncomeEffectivePortionNet
      contextRef="FD2018Q4YTD_us-gaap_HedgingDesignationAxis_us-gaap_DesignatedAsHedgingInstrumentMember_us-gaap_IncomeStatementLocationAxis_us-gaap_GeneralAndAdministrativeExpenseMember"
      decimals="-3"
      id="d9062756e2960-wk-Fact-3AFCA5E0949E2B02827D8095A1966883"
      unitRef="usd">0</us-gaap:DerivativeInstrumentsGainLossReclassifiedFromAccumulatedOCIIntoIncomeEffectivePortionNet>
    <us-gaap:DerivativeInstrumentsGainLossReclassifiedFromAccumulatedOCIIntoIncomeEffectivePortionNet
      contextRef="FD2017Q4YTD_us-gaap_HedgingDesignationAxis_us-gaap_DesignatedAsHedgingInstrumentMember_us-gaap_IncomeStatementLocationAxis_us-gaap_GeneralAndAdministrativeExpenseMember"
      decimals="-3"
      id="d9062756e2980-wk-Fact-3195AC4AE43498467B478095A1964912"
      unitRef="usd">8000</us-gaap:DerivativeInstrumentsGainLossReclassifiedFromAccumulatedOCIIntoIncomeEffectivePortionNet>
    <us-gaap:OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIOnDerivativesNetOfTax
      contextRef="FD2019Q4YTD_us-gaap_HedgingDesignationAxis_us-gaap_DesignatedAsHedgingInstrumentMember_us-gaap_IncomeStatementLocationAxis_us-gaap_CashFlowHedgingMember"
      decimals="-3"
      id="d9062756e3015-wk-Fact-413E2E0FE174B50DCED58095A19627CD"
      unitRef="usd">0</us-gaap:OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIOnDerivativesNetOfTax>
    <us-gaap:OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIOnDerivativesNetOfTax
      contextRef="FD2018Q4YTD_us-gaap_HedgingDesignationAxis_us-gaap_DesignatedAsHedgingInstrumentMember_us-gaap_IncomeStatementLocationAxis_us-gaap_CashFlowHedgingMember"
      decimals="-3"
      id="d9062756e3034-wk-Fact-4CE424E649F704C5BB668095A190EBA7"
      unitRef="usd">0</us-gaap:OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIOnDerivativesNetOfTax>
    <us-gaap:OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIOnDerivativesNetOfTax
      contextRef="FD2017Q4YTD_us-gaap_HedgingDesignationAxis_us-gaap_DesignatedAsHedgingInstrumentMember_us-gaap_IncomeStatementLocationAxis_us-gaap_CashFlowHedgingMember"
      decimals="-3"
      id="d9062756e3054-wk-Fact-E41657BC1A65F3C212578095A1950850"
      unitRef="usd">41000</us-gaap:OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIOnDerivativesNetOfTax>
    <us-gaap:DerivativeGainLossOnDerivativeNet
      contextRef="FD2019Q4YTD_us-gaap_HedgingDesignationAxis_us-gaap_NondesignatedMember_us-gaap_IncomeStatementLocationAxis_us-gaap_ForeignCurrencyGainLossMember"
      decimals="-3"
      id="d9062756e3227-wk-Fact-6048481774032BE1C9548095A1967E87"
      unitRef="usd">1305000</us-gaap:DerivativeGainLossOnDerivativeNet>
    <us-gaap:DerivativeGainLossOnDerivativeNet
      contextRef="FD2018Q4YTD_us-gaap_HedgingDesignationAxis_us-gaap_NondesignatedMember_us-gaap_IncomeStatementLocationAxis_us-gaap_ForeignCurrencyGainLossMember"
      decimals="-3"
      id="d9062756e3246-wk-Fact-1FF59CC25E7A15B4B23E8095A196C1A8"
      unitRef="usd">-285000</us-gaap:DerivativeGainLossOnDerivativeNet>
    <us-gaap:DerivativeGainLossOnDerivativeNet
      contextRef="FD2017Q4YTD_us-gaap_HedgingDesignationAxis_us-gaap_NondesignatedMember_us-gaap_IncomeStatementLocationAxis_us-gaap_ForeignCurrencyGainLossMember"
      decimals="-3"
      id="d9062756e3267-wk-Fact-B563B94C74F0E8F1ACAA8095A19684AC"
      unitRef="usd">270000</us-gaap:DerivativeGainLossOnDerivativeNet>
    <us-gaap:RevenueFromContractWithCustomerTextBlock
      contextRef="FD2019Q4YTD"
      id="TextSelection-93424D43624CA1B7BE0B8095A1A8ED71-0-wk-Fact-1E7EDC353B147F9B5C4A8095A196D37E">Revenue Recognition&lt;div style="line-height:120%;padding-top:8px;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;The following table summarizes disaggregated revenue information by geographic area based upon the customer's country of domicile (in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:8px;text-align:center;font-size:10pt;"&gt;&lt;div style="padding-left:0px;text-indent:0px;line-height:normal;padding-top:10px;"&gt;&lt;table cellpadding="0" cellspacing="0" style="font-family:Times New Roman;font-size:10pt;margin-left:auto;margin-right:auto;width:100%;border-collapse:collapse;text-align:left;"&gt;&lt;tr&gt;&lt;td colspan="13"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="width:61%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:10%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:10%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:10%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="11" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:center;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;Year Ended December 31,&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:center;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;2019&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:center;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;2018&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:center;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;2017&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Americas&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;277,155&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;265,175&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;214,338&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Europe&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;227,738&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;311,914&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;328,826&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Greater China&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;115,061&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;123,708&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;108,738&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Other Asia&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;105,671&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;105,541&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;114,181&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;725,625&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;border-top:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;806,338&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;border-top:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;766,083&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;border-top:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:8px;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;The following table summarizes disaggregated revenue information by revenue type (in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:8px;text-align:center;font-size:10pt;"&gt;&lt;div style="padding-left:0px;text-indent:0px;line-height:normal;padding-top:10px;"&gt;&lt;table cellpadding="0" cellspacing="0" style="font-family:Times New Roman;font-size:10pt;margin-left:auto;margin-right:auto;width:100%;border-collapse:collapse;text-align:left;"&gt;&lt;tr&gt;&lt;td colspan="13"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="width:61%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:10%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:10%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:10%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="11" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:center;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;Year Ended December 31,&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:center;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;2019&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:center;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;2018&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:center;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;2017&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Standard products and services&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;629,220&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;654,509&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;603,196&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Application-specific customer solutions&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;96,405&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;151,829&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;162,887&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;725,625&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;border-top:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;806,338&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;border-top:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;766,083&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;border-top:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:120%;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:120%;text-align:justify;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;text-decoration:underline;"&gt;Costs to Fulfill a Contract&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:4px;text-align:justify;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Costs to fulfill a contract are included in "Prepaid expenses and other current assets" on the Consolidated Balance Sheet and amounted to $&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;3,963,000&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt; and $&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;3,514,000&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt; as of December 31, 2019 and 2018, respectively. &lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:120%;text-align:justify;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:120%;text-align:justify;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;text-decoration:underline;"&gt;Accounts Receivable, Contract Assets, and Contract Liabilities&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:4px;text-align:justify;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Accounts receivable represent amounts billed and currently due from customers which are reported at their net estimated realizable value.  The Company maintains reserves against its accounts receivable for potential credit losses.  Credit losses recognized on accounts receivable were immaterial for the year ended December 31, 2019 and 2018.  Contract assets consist of unbilled revenue which arises when revenue is recognized in advance of billing for certain application-specific customer solutions contracts.  Contract liabilities consist of deferred revenue and customer deposits which arise when amounts are billed to or collected from customers in advance of revenue recognition.&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:4px;text-align:justify;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:4px;text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;The following table summarizes the deferred revenue and customer deposits activity (in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:4px;text-align:center;font-size:10pt;"&gt;&lt;div style="padding-left:0px;text-indent:0px;line-height:normal;padding-top:10px;"&gt;&lt;table cellpadding="0" cellspacing="0" style="font-family:Times New Roman;font-size:10pt;margin-left:auto;margin-right:auto;width:100%;border-collapse:collapse;text-align:left;"&gt;&lt;tr&gt;&lt;td colspan="4"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="width:80%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:18%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:center;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Amount&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Balance as of December 31, 2017&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;9,420&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Increases to deferred revenue and customer deposits&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;63,231&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Recognition of revenue&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;(61,819&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;)&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Foreign exchange rate changes&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;(987&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:1px solid #000000;padding-right:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;)&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Balance as of December 31, 2018&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;9,845&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Increases to deferred revenue and customer deposits&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;53,422&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Recognition of revenue&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;(48,730&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;)&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Foreign exchange rate changes&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;(105&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;)&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Balance as of December 31, 2019&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;14,432&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;border-top:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:120%;text-align:justify;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:120%;text-align:justify;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&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="FD2019Q4YTD"
      id="TextSelection-0F3D50274211A742BEB18095A1A8341E-0-wk-Fact-7BD2AC752E02781495328095A1977052">&lt;div style="line-height:120%;padding-top:8px;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;The following table summarizes disaggregated revenue information by geographic area based upon the customer's country of domicile (in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:8px;text-align:center;font-size:10pt;"&gt;&lt;div style="padding-left:0px;text-indent:0px;line-height:normal;padding-top:10px;"&gt;&lt;table cellpadding="0" cellspacing="0" style="font-family:Times New Roman;font-size:10pt;margin-left:auto;margin-right:auto;width:100%;border-collapse:collapse;text-align:left;"&gt;&lt;tr&gt;&lt;td colspan="13"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="width:61%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:10%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:10%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:10%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="11" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:center;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;Year Ended December 31,&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:center;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;2019&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:center;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;2018&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:center;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;2017&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Americas&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;277,155&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;265,175&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;214,338&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Europe&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;227,738&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;311,914&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;328,826&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Greater China&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;115,061&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;123,708&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;108,738&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Other Asia&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;105,671&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;105,541&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;114,181&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;725,625&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;border-top:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;806,338&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;border-top:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;766,083&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;border-top:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:8px;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;The following table summarizes disaggregated revenue information by revenue type (in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:8px;text-align:center;font-size:10pt;"&gt;&lt;div style="padding-left:0px;text-indent:0px;line-height:normal;padding-top:10px;"&gt;&lt;table cellpadding="0" cellspacing="0" style="font-family:Times New Roman;font-size:10pt;margin-left:auto;margin-right:auto;width:100%;border-collapse:collapse;text-align:left;"&gt;&lt;tr&gt;&lt;td colspan="13"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="width:61%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:10%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:10%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:10%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="11" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:center;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;Year Ended December 31,&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:center;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;2019&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:center;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;2018&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:center;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;2017&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Standard products and services&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;629,220&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;654,509&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;603,196&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Application-specific customer solutions&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;96,405&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;151,829&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;162,887&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;725,625&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;border-top:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;806,338&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;border-top:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;766,083&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;border-top:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;</us-gaap:DisaggregationOfRevenueTableTextBlock>
    <us-gaap:ScheduleOfNewAccountingPronouncementsAndChangesInAccountingPrinciplesTextBlock
      contextRef="FD2019Q4YTD"
      id="TextSelection-26CB341D4613333EE4BA8095A1A825D7-0-wk-Fact-9B9EB6B7D2C20670AC928095A197AB32"/>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="FD2019Q4YTD_srt_StatementGeographicalAxis_srt_AmericasMember"
      decimals="-3"
      id="d9059886e820-wk-Fact-213074FAB065ACB9A0898095A196D5CD"
      unitRef="usd">277155000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="FD2018Q4YTD_srt_StatementGeographicalAxis_srt_AmericasMember"
      decimals="-3"
      id="d9059886e839-wk-Fact-3A750AA6DD7B83023D2F8095A197E42F"
      unitRef="usd">265175000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="FD2017Q4YTD_srt_StatementGeographicalAxis_srt_AmericasMember"
      decimals="-3"
      id="d9059886e853-wk-Fact-8D26CE03CA9EABE6CF4A8095A197EF78"
      unitRef="usd">214338000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="FD2019Q4YTD_srt_StatementGeographicalAxis_srt_EuropeMember"
      decimals="-3"
      id="d9059886e879-wk-Fact-4A22F78C245DA60EE1438095A1973821"
      unitRef="usd">227738000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="FD2018Q4YTD_srt_StatementGeographicalAxis_srt_EuropeMember"
      decimals="-3"
      id="d9059886e898-wk-Fact-A3C61C1D09BD291DC6B88095A197A9C4"
      unitRef="usd">311914000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="FD2017Q4YTD_srt_StatementGeographicalAxis_srt_EuropeMember"
      decimals="-3"
      id="d9059886e917-wk-Fact-8FAC4E07DE74039DB1D38095A1970DBC"
      unitRef="usd">328826000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="FD2019Q4YTD_srt_StatementGeographicalAxis_cgnx_GreaterChinaMember"
      decimals="-3"
      id="d9059886e943-wk-Fact-30EB577D07973FA5B10F8095A19737BE"
      unitRef="usd">115061000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="FD2018Q4YTD_srt_StatementGeographicalAxis_cgnx_GreaterChinaMember"
      decimals="-3"
      id="d9059886e962-wk-Fact-E4401311B4DC979D24148095A1969303"
      unitRef="usd">123708000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="FD2017Q4YTD_srt_StatementGeographicalAxis_cgnx_GreaterChinaMember"
      decimals="-3"
      id="d9059886e981-wk-Fact-0060F6986FB9683616C98095A1960597"
      unitRef="usd">108738000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="FD2019Q4YTD_srt_StatementGeographicalAxis_cgnx_OtherAsiaMember"
      decimals="-3"
      id="d9059886e1007-wk-Fact-4FE69912D7B1475EA0638095A19700E5"
      unitRef="usd">105671000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="FD2018Q4YTD_srt_StatementGeographicalAxis_cgnx_OtherAsiaMember"
      decimals="-3"
      id="d9059886e1026-wk-Fact-91A36C39E3EB6FF95E718095A196B4D9"
      unitRef="usd">105541000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="FD2017Q4YTD_srt_StatementGeographicalAxis_cgnx_OtherAsiaMember"
      decimals="-3"
      id="d9059886e1045-wk-Fact-941FE048B8D453266C7C8095A196301A"
      unitRef="usd">114181000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="FD2019Q4YTD"
      decimals="-3"
      id="d9059886e1076-wk-Fact-B06BBDF776878FE4B2BC8095A17D5E83"
      unitRef="usd">725625000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="FD2018Q4YTD"
      decimals="-3"
      id="d9059886e1095-wk-Fact-D6E1BF373058FA9CCF958095A18F656B"
      unitRef="usd">806338000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="FD2017Q4YTD"
      decimals="-3"
      id="d9059886e1115-wk-Fact-53B0A8CFBD2030E181408095A17CDF23"
      unitRef="usd">766083000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="FD2019Q4YTD_srt_ProductOrServiceAxis_cgnx_StandardProductandServicesMember"
      decimals="-3"
      id="d9059886e1297-wk-Fact-DBDB57CB139D5A7320F68095A1979DA5"
      unitRef="usd">629220000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="FD2018Q4YTD_srt_ProductOrServiceAxis_cgnx_StandardProductandServicesMember"
      decimals="-3"
      id="d9059886e1316-wk-Fact-793112A97EA86E0EEDFE8095A1960C31"
      unitRef="usd">654509000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="FD2017Q4YTD_srt_ProductOrServiceAxis_cgnx_StandardProductandServicesMember"
      decimals="-3"
      id="d9059886e1336-wk-Fact-21F7621435CFBE603CDA8095A1979EA8"
      unitRef="usd">603196000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="FD2019Q4YTD_srt_ProductOrServiceAxis_cgnx_ApplicationofCustomerSpecificSolutionsMember"
      decimals="-3"
      id="d9059886e1356-wk-Fact-751DC980189C3729843C8095A196F73C"
      unitRef="usd">96405000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="FD2018Q4YTD_srt_ProductOrServiceAxis_cgnx_ApplicationofCustomerSpecificSolutionsMember"
      decimals="-3"
      id="d9059886e1375-wk-Fact-4BC7F3587AD58EBE63678095A196CDB5"
      unitRef="usd">151829000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="FD2017Q4YTD_srt_ProductOrServiceAxis_cgnx_ApplicationofCustomerSpecificSolutionsMember"
      decimals="-3"
      id="d9059886e1394-wk-Fact-6E71E891A5850A3306828095A196184A"
      unitRef="usd">162887000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="FD2019Q4YTD"
      decimals="-3"
      id="d9059886e1425-wk-Fact-B06BBDF776878FE4B2BC8095A17D5E83"
      unitRef="usd">725625000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="FD2018Q4YTD"
      decimals="-3"
      id="d9059886e1444-wk-Fact-D6E1BF373058FA9CCF958095A18F656B"
      unitRef="usd">806338000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="FD2017Q4YTD"
      decimals="-3"
      id="d9059886e1464-wk-Fact-53B0A8CFBD2030E181408095A17CDF23"
      unitRef="usd">766083000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:CapitalizedContractCostGross
      contextRef="FI2019Q4"
      decimals="0"
      id="d9059886e1481-wk-Fact-33234CF73C73DB57ECEE8095A196BB58"
      unitRef="usd">3963000</us-gaap:CapitalizedContractCostGross>
    <us-gaap:CapitalizedContractCostGross
      contextRef="FI2018Q4"
      decimals="0"
      id="d9059886e1485-wk-Fact-16941EBBC119C150F99D8095A197155B"
      unitRef="usd">3514000</us-gaap:CapitalizedContractCostGross>
    <us-gaap:ContractWithCustomerAssetAndLiabilityTableTextBlock
      contextRef="FD2019Q4YTD"
      id="TextSelection-3D68C9415EACC07DB64C8095A1A8A779-0-wk-Fact-08F7DD589B230F96C48B8095A1967B3F">&lt;div style="line-height:120%;padding-top:4px;text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;The following table summarizes the deferred revenue and customer deposits activity (in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:4px;text-align:center;font-size:10pt;"&gt;&lt;div style="padding-left:0px;text-indent:0px;line-height:normal;padding-top:10px;"&gt;&lt;table cellpadding="0" cellspacing="0" style="font-family:Times New Roman;font-size:10pt;margin-left:auto;margin-right:auto;width:100%;border-collapse:collapse;text-align:left;"&gt;&lt;tr&gt;&lt;td colspan="4"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="width:80%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:18%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:center;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Amount&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Balance as of December 31, 2017&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;9,420&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Increases to deferred revenue and customer deposits&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;63,231&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Recognition of revenue&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;(61,819&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;)&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Foreign exchange rate changes&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;(987&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:1px solid #000000;padding-right:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;)&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Balance as of December 31, 2018&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;9,845&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Increases to deferred revenue and customer deposits&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;53,422&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Recognition of revenue&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;(48,730&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;)&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Foreign exchange rate changes&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;(105&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;)&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Balance as of December 31, 2019&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;14,432&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;border-top:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;</us-gaap:ContractWithCustomerAssetAndLiabilityTableTextBlock>
    <us-gaap:ContractWithCustomerLiabilityCurrent
      contextRef="FI2017Q4"
      decimals="-3"
      id="d9059886e1551-wk-Fact-2E8B3FDED0E0068A88A88095A18555C1"
      unitRef="usd">9420000</us-gaap:ContractWithCustomerLiabilityCurrent>
    <us-gaap:IncreaseDecreaseInContractWithCustomerLiability
      contextRef="FD2018Q4YTD"
      decimals="-3"
      id="d9059886e1566-wk-Fact-B4E8053142BD465C1FD28095A185CCDE"
      unitRef="usd">63231000</us-gaap:IncreaseDecreaseInContractWithCustomerLiability>
    <us-gaap:ContractWithCustomerLiabilityRevenueRecognized
      contextRef="FD2018Q4YTD"
      decimals="-3"
      id="d9059886e1586-wk-Fact-1F8FD05353831D594FD48095A18470C2"
      unitRef="usd">61819000</us-gaap:ContractWithCustomerLiabilityRevenueRecognized>
    <cgnx:ContractLiabilityForeignExchangeRateChanges
      contextRef="FD2018Q4YTD"
      decimals="-3"
      id="d9059886e1607-wk-Fact-0ED7131D36F1F539D59F8095A18493DD"
      unitRef="usd">-987000</cgnx:ContractLiabilityForeignExchangeRateChanges>
    <us-gaap:ContractWithCustomerLiabilityCurrent
      contextRef="FI2018Q4"
      decimals="-3"
      id="d9059886e1628-wk-Fact-2F24B1342D743CBA5DE98095A1878266"
      unitRef="usd">9845000</us-gaap:ContractWithCustomerLiabilityCurrent>
    <us-gaap:IncreaseDecreaseInContractWithCustomerLiability
      contextRef="FD2019Q4YTD"
      decimals="-3"
      id="d9059886e1648-wk-Fact-5B58CBFB810AB390D34C8095A184C311"
      unitRef="usd">53422000</us-gaap:IncreaseDecreaseInContractWithCustomerLiability>
    <us-gaap:ContractWithCustomerLiabilityRevenueRecognized
      contextRef="FD2019Q4YTD"
      decimals="-3"
      id="d9059886e1668-wk-Fact-3D54B02470B2763C48368095A184CB52"
      unitRef="usd">48730000</us-gaap:ContractWithCustomerLiabilityRevenueRecognized>
    <cgnx:ContractLiabilityForeignExchangeRateChanges
      contextRef="FD2019Q4YTD"
      decimals="-3"
      id="d9059886e1689-wk-Fact-DA7DF815FE3C0F4EC3F88095A1851978"
      unitRef="usd">-105000</cgnx:ContractLiabilityForeignExchangeRateChanges>
    <us-gaap:ContractWithCustomerLiabilityCurrent
      contextRef="FI2019Q4"
      decimals="-3"
      id="d9059886e1715-wk-Fact-B00B536426D8C662A8C08095A18D619F"
      unitRef="usd">14432000</us-gaap:ContractWithCustomerLiabilityCurrent>
    <us-gaap:StockholdersEquityNoteDisclosureTextBlock
      contextRef="FD2019Q4YTD"
      id="TextSelection-0B819C386B62EE5D909F8095A1A811D4-0-wk-Fact-7FB98D7CF87A9E5612E88095A190B945">Shareholders&#x2019; Equity&lt;div style="line-height:120%;padding-top:6px;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;text-decoration:underline;"&gt;Preferred Stock&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:6px;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;The Company has &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;400,000&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt; shares of authorized but unissued &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;$.01&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt; par value preferred stock.&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:12px;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;text-decoration:underline;"&gt;Common Stock&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&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 common stock from &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;200,000,000&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt; to &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;300,000,000&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;. 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 &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;10,000,000&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;.&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:120%;text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:120%;text-align:justify;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;In October 2017, the Company&#x2019;s Board of Directors declared a &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;two&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;-for-one stock split, effected in the form of a stock dividend, on the shares of the Company&#x2019;s common stock.  Each shareholder of record on November&#160;17, 2017 received an additional share of common stock for each share of common stock then held.  The stock was distributed on December&#160;1, 2017.  The Company retained the current par value of &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;$.002&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt; per share for all shares of common stock.  All references in the financial statements to the number of shares outstanding, number of shares repurchased, per-share amounts, and stock option data related to the Company&#x2019;s common stock have been adjusted to reflect the effect of the stock split for all periods presented.  Shareholders&#x2019; equity reflects the stock split by reclassifying from &#x201c;Additional paid in capital&#x201d; and "Retained earnings" to &#x201c;Common stock&#x201d; an amount equal to the par value of the additional shares arising from the split.&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:120%;text-align:justify;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:120%;text-align:justify;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Each outstanding share of common stock entitles the record holder to &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;one&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt; 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="line-height:120%;padding-top:8px;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;text-decoration:underline;"&gt;Shareholder Rights Agreement&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;On December 5, 2018, the Company&#x2019;s Board of Directors allowed the Company&#x2019;s Shareholder Rights Agreement and associated rights to expire in accordance with their terms without renewal. In connection with the adoption of the Shareholder Rights Agreement, the Company had filed Articles of Amendment to its Restated Articles of Organization establishing Series E Junior Participating Cumulative Preferred Stock with the Secretary of State of The Commonwealth of Massachusetts, setting forth the rights, powers, and preferences of the Series E Junior Participating Cumulative Preferred Stock issuable upon exercise of the rights (the &#x201c;Preferred Shares&#x201d;). Effective on April 26, 2019, the Company filed Articles of Amendment to the Company&#x2019;s Restated Articles of Organization with the Secretary of State of The Commonwealth of Massachusetts eliminating the Preferred Shares and returning them to authorized but undesignated shares of the Company&#x2019;s preferred stock.&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;text-decoration:underline;"&gt;Stock Repurchases&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;In April 2017, the Company's Board of Directors authorized the repurchase of &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;$100,000,000&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt; of the Company's common stock.  The Company repurchased &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;1,744,000&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt; shares at a cost of &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;$100,000,000&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt; under this April 2017 program, including &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;803,000&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt; shares at a cost of &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;$45,200,000&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt; in 2018.  In February 2018, the Company's Board of Directors authorized the repurchase of &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;$150,000,000&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt; of the Company's common stock.  The Company repurchased &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;3,174,000&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt; shares at a cost of &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;$150,000,000&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt; in 2018 under this February 2018 program.  In October 2018, the Company's Board of Directors authorized the repurchase of &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;$200,000,000&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt; of the Company's common stock.  The Company repurchased &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;203,000&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt; shares at a cost of &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;$8,622,000&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt; in 2018 under this October 2018 program.  Total stock repurchases amounted to &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;$203,822,000&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt; in 2018.  The Company repurchased &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;1,398,000&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt; shares at a cost of &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;$61,690,000&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt; in 2019 under this October 2018 program. As of December 31, 2019, the Company repurchased &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;1,601,000&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt; shares at a cost of &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;$70,312,000&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt; under this October 2018 program, leaving a remaining balance of &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;$129,688,000&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;.  The Company may repurchase shares under this program in future periods depending on a variety of factors, including, among other things, the impact of dilution from employee stock awards, stock price, share availability, and cash requirements.&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:12px;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;text-decoration:underline;"&gt;Dividends&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;The Company&#x2019;s Board of Directors declared and paid cash dividends of &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;$0.045&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt; per share in the first, second, and third quarters of 2018, and &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;$0.050&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt; in the fourth quarter of 2018, as well as in the first, second, and third quarters of 2019. The dividend was increased to &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;$0.055&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt; per share in the fourth quarter of 2019.  Total dividends amounted to &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;$35,124,000&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt; and &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;$31,865,000&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt; in 2019 and 2018, respectively.  Future dividends will be declared at the discretion of the Company's Board of Directors and will depend upon 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="FI2019Q4"
      decimals="INF"
      id="d9063996e646-wk-Fact-13FCF98A50558CE5F0A1F3CFA6AF6F0A"
      unitRef="shares">400000</us-gaap:PreferredStockSharesAuthorized>
    <us-gaap:PreferredStockParOrStatedValuePerShare
      contextRef="FI2019Q4"
      decimals="INF"
      id="d9063996e650-wk-Fact-396187459BD05201E354F3CF59DBAE21"
      unitRef="usdPerShare">0.01</us-gaap:PreferredStockParOrStatedValuePerShare>
    <us-gaap:CommonStockSharesAuthorized
      contextRef="I2016Q2Apr27"
      decimals="INF"
      id="d9063996e660-wk-Fact-CE00FD8CF297DDEE40E18095A17BD59B"
      unitRef="shares">200000000</us-gaap:CommonStockSharesAuthorized>
    <us-gaap:CommonStockSharesAuthorized
      contextRef="I2018Q2Apr25"
      decimals="INF"
      id="d9063996e664-wk-Fact-B2BCE3ABDEEB64ABCE948095A196FCE5"
      unitRef="shares">300000000</us-gaap:CommonStockSharesAuthorized>
    <us-gaap:CommonStockSharesAuthorized
      contextRef="I2016Q2Apr28"
      decimals="INF"
      id="d9063996e668-wk-Fact-7A3D2F8B39099EE901608095A18F3C56"
      unitRef="shares">10000000</us-gaap:CommonStockSharesAuthorized>
    <us-gaap:StockholdersEquityNoteStockSplitConversionRatio1
      contextRef="D2017Q4SD"
      decimals="INF"
      id="d9063996e677-wk-Fact-EC62EB017CF9BAF4FFF88095A19655C2"
      unitRef="number">2</us-gaap:StockholdersEquityNoteStockSplitConversionRatio1>
    <us-gaap:CommonStockParOrStatedValuePerShare
      contextRef="I2017Q4Oct"
      decimals="INF"
      id="d9063996e681-wk-Fact-378D72E0C415922DB1358095A1967402"
      unitRef="usdPerShare">0.002</us-gaap:CommonStockParOrStatedValuePerShare>
    <cgnx:VoteEntitledForEachCommonShareOutstanding
      contextRef="FI2019Q4"
      decimals="INF"
      id="d9063996e690-wk-Fact-E72FE0C73EA6AD838CDF8095A1962EE0"
      unitRef="Vote">1</cgnx:VoteEntitledForEachCommonShareOutstanding>
    <us-gaap:StockRepurchaseProgramAuthorizedAmount1
      contextRef="I2017Q2Apr12_us-gaap_ShareRepurchaseProgramAxis_cgnx_RepurchaseProgramTwentyFifteenMember"
      decimals="INF"
      id="d9063996e707-wk-Fact-9318604D3FAC8823EF228095A1971714"
      unitRef="usd">100000000</us-gaap:StockRepurchaseProgramAuthorizedAmount1>
    <cgnx:Totalsharesrepurchased
      contextRef="FD2018Q1QTD_us-gaap_ShareRepurchaseProgramAxis_cgnx_RepurchaseProgram2014Member"
      decimals="0"
      id="d9063996e711-wk-Fact-B804FC9763455F8D05198095A195843A"
      unitRef="shares">1744000</cgnx:Totalsharesrepurchased>
    <cgnx:Repurchasedsharestotalcost
      contextRef="FD2018Q1QTD_us-gaap_ShareRepurchaseProgramAxis_cgnx_RepurchaseProgram2014Member_us-gaap_StatementClassOfStockAxis_us-gaap_CommonStockMember"
      decimals="0"
      id="d9063996e715-wk-Fact-C1EA680E3AB57F5B063C8095A196AB98"
      unitRef="usd">100000000</cgnx:Repurchasedsharestotalcost>
    <us-gaap:StockRepurchasedDuringPeriodShares
      contextRef="FD2018Q1QTD_us-gaap_ShareRepurchaseProgramAxis_cgnx_RepurchaseProgram2014Member"
      decimals="INF"
      id="d9063996e719-wk-Fact-63A8DE95D191EE2E95D48095A196CC0A"
      unitRef="shares">803000</us-gaap:StockRepurchasedDuringPeriodShares>
    <us-gaap:StockRepurchasedDuringPeriodValue
      contextRef="FD2018Q1QTD_us-gaap_ShareRepurchaseProgramAxis_cgnx_RepurchaseProgram2014Member"
      decimals="0"
      id="d9063996e723-wk-Fact-C59C9996D4F8A7C5F8E98095A196BE57"
      unitRef="usd">45200000</us-gaap:StockRepurchasedDuringPeriodValue>
    <us-gaap:StockRepurchaseProgramAuthorizedAmount1
      contextRef="I2018Q1Feb.28_us-gaap_ShareRepurchaseProgramAxis_cgnx_RepurchaseProgramNovember2015Member"
      decimals="INF"
      id="d9063996e728-wk-Fact-BF9CE8630FCC00405C8B8095A18F9994"
      unitRef="usd">150000000</us-gaap:StockRepurchaseProgramAuthorizedAmount1>
    <us-gaap:StockRepurchasedDuringPeriodShares
      contextRef="D2018Q1Feb.1-28_us-gaap_ShareRepurchaseProgramAxis_cgnx_RepurchaseProgramTwentyFifteenMember"
      decimals="INF"
      id="d9063996e732-wk-Fact-843028F7EDF9A04043DE8095A190ACE6"
      unitRef="shares">3174000</us-gaap:StockRepurchasedDuringPeriodShares>
    <us-gaap:StockRepurchasedDuringPeriodValue
      contextRef="D2018Q1Feb.1-28_us-gaap_ShareRepurchaseProgramAxis_cgnx_RepurchaseProgramTwentyFifteenMember"
      decimals="0"
      id="d9063996e736-wk-Fact-29F71F6AC4552CAB9A798095A1906978"
      unitRef="usd">150000000</us-gaap:StockRepurchasedDuringPeriodValue>
    <us-gaap:StockRepurchaseProgramAuthorizedAmount1
      contextRef="FI2018Q3_us-gaap_ShareRepurchaseProgramAxis_cgnx_RepurchaseProgramNovember2015Member"
      decimals="INF"
      id="d9063996e740-wk-Fact-E6902076864C61586A768095A17B3BF3"
      unitRef="usd">200000000</us-gaap:StockRepurchaseProgramAuthorizedAmount1>
    <us-gaap:StockRepurchasedDuringPeriodShares
      contextRef="FD2018Q4YTD_us-gaap_ShareRepurchaseProgramAxis_cgnx_RepurchaseProgramOctober2018Member"
      decimals="INF"
      id="d9063996e744-wk-Fact-696F9C3556836D789984168367BE8CE4"
      unitRef="shares">203000</us-gaap:StockRepurchasedDuringPeriodShares>
    <us-gaap:StockRepurchasedDuringPeriodValue
      contextRef="FD2018Q4YTD_us-gaap_ShareRepurchaseProgramAxis_cgnx_RepurchaseProgramOctober2018Member"
      decimals="0"
      id="d9063996e748-wk-Fact-E56F6489602FC67452DB168492FA0147"
      unitRef="usd">8622000</us-gaap:StockRepurchasedDuringPeriodValue>
    <us-gaap:StockRepurchasedDuringPeriodValue
      contextRef="FD2018Q4YTD"
      decimals="0"
      id="d9063996e753-wk-Fact-11FD1439B907C786688C168536A52EED"
      unitRef="usd">203822000</us-gaap:StockRepurchasedDuringPeriodValue>
    <us-gaap:StockRepurchasedDuringPeriodShares
      contextRef="FD2019Q4YTD_us-gaap_ShareRepurchaseProgramAxis_cgnx_RepurchaseProgramOctober2018Member"
      decimals="INF"
      id="d9063996e757-wk-Fact-1ED6671C4C0BC70B6EA616866E761C95"
      unitRef="shares">1398000</us-gaap:StockRepurchasedDuringPeriodShares>
    <us-gaap:StockRepurchasedDuringPeriodValue
      contextRef="FD2019Q4YTD_us-gaap_ShareRepurchaseProgramAxis_cgnx_RepurchaseProgramOctober2018Member"
      decimals="0"
      id="d9063996e761-wk-Fact-2F9FC3DCDA671D023B62168731E226AD"
      unitRef="usd">61690000</us-gaap:StockRepurchasedDuringPeriodValue>
    <us-gaap:StockRepurchasedDuringPeriodShares
      contextRef="FD2019Q4YTD_us-gaap_ShareRepurchaseProgramAxis_cgnx_RepurchaseProgramTwentyFifteenMember"
      decimals="INF"
      id="d9063996e765-wk-Fact-EFC20982A5632D8405018095A18F2F71"
      unitRef="shares">1601000</us-gaap:StockRepurchasedDuringPeriodShares>
    <us-gaap:StockRepurchasedDuringPeriodValue
      contextRef="FD2019Q4YTD_us-gaap_ShareRepurchaseProgramAxis_cgnx_RepurchaseProgramTwentyFifteenMember"
      decimals="0"
      id="d9063996e769-wk-Fact-C207D729DE7C19507F648095A17B462D"
      unitRef="usd">70312000</us-gaap:StockRepurchasedDuringPeriodValue>
    <us-gaap:StockRepurchaseProgramAuthorizedAmount1
      contextRef="FI2019Q4_us-gaap_ShareRepurchaseProgramAxis_cgnx_RepurchaseProgramOctober2018Member"
      decimals="0"
      id="d9063996e774-wk-Fact-2DCA1AC493246BCB87268095A17B70BD"
      unitRef="usd">129688000</us-gaap:StockRepurchaseProgramAuthorizedAmount1>
    <us-gaap:CommonStockDividendsPerShareDeclared
      contextRef="FD2018Q3YTD"
      decimals="3"
      id="d9063996e784-wk-Fact-0E85B296BF36F5FA0ED58095A190651C"
      unitRef="usdPerShare">0.045</us-gaap:CommonStockDividendsPerShareDeclared>
    <us-gaap:CommonStockDividendsPerShareDeclared
      contextRef="FD2019Q3YTD"
      decimals="4"
      id="d9063996e788-wk-Fact-781B30E0639EE4F094828095A1973FEA"
      unitRef="usdPerShare">0.050</us-gaap:CommonStockDividendsPerShareDeclared>
    <us-gaap:CommonStockDividendsPerShareDeclared
      contextRef="FD2019Q4QTD"
      decimals="4"
      id="d9063996e792-wk-Fact-32D4F319771EF486A2AC8095A190C9F6"
      unitRef="usdPerShare">0.055</us-gaap:CommonStockDividendsPerShareDeclared>
    <us-gaap:PaymentsOfDividends
      contextRef="FD2019Q4YTD"
      decimals="0"
      id="d9063996e796-wk-Fact-91D8B3DBBB2B71804D578095A19028B7"
      unitRef="usd">35124000</us-gaap:PaymentsOfDividends>
    <us-gaap:PaymentsOfDividends
      contextRef="FD2018Q4YTD"
      decimals="0"
      id="d9063996e800-wk-Fact-98A70D118C453FBAFB1F8095A1976BC7"
      unitRef="usd">31865000</us-gaap:PaymentsOfDividends>
    <us-gaap:DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock
      contextRef="FD2019Q4YTD"
      id="TextSelection-AA44B4D0A9D50AC75D448095A1A887F1-0-wk-Fact-B3F1860182D79EC2DD8B8095A197ADA8">Stock-Based Compensation&lt;div style="line-height:120%;padding-top:6px;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;text-decoration:underline;"&gt;Stock Plans&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;The Company&#x2019;s stock-based awards that result in compensation expense consist of stock options and restricted stock units (RSUs).  As of December&#160;31, &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;2019&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;, the Company had &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;17,300,802&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt; shares available for grant.  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&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;four&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt; or &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;five years&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt; based upon continuous employment and expire &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;ten years&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt; from the grant date.  RSUs generally vest upon &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;three years&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt; of continuous employment or incrementally over such &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;three&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;-year period.  Participants are not entitled to dividends on RSUs.&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:6px;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;text-decoration:underline;"&gt;Stock Options&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:6px;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;The following table summarizes the Company&#x2019;s stock option activity:&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-bottom:6px;font-size:10pt;"&gt;&lt;div style="padding-left:0px;text-indent:0px;line-height:normal;padding-top:10px;"&gt;&lt;table cellpadding="0" cellspacing="0" style="font-family:Times New Roman;font-size:10pt;width:99.80506822612085%;border-collapse:collapse;text-align:left;"&gt;&lt;tr&gt;&lt;td colspan="13"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="width:45%;"/&gt;&lt;td style="width:12%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:11%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:13%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:11%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;span style="font-family:Arial;font-size:8pt;font-weight:bold;"&gt;Shares&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;span style="font-family:Arial;font-size:8pt;font-weight:bold;"&gt;(in&#160;thousands)&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;span style="font-family:Arial;font-size:8pt;font-weight:bold;"&gt;Weighted-&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;span style="font-family:Arial;font-size:8pt;font-weight:bold;"&gt;Average&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;span style="font-family:Arial;font-size:8pt;font-weight:bold;"&gt;Exercise&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;span style="font-family:Arial;font-size:8pt;font-weight:bold;"&gt;Price&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;span style="font-family:Arial;font-size:8pt;font-weight:bold;"&gt;Weighted-&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;span style="font-family:Arial;font-size:8pt;font-weight:bold;"&gt;Average&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;span style="font-family:Arial;font-size:8pt;font-weight:bold;"&gt;Remaining&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;span style="font-family:Arial;font-size:8pt;font-weight:bold;"&gt;Contractual&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;span style="font-family:Arial;font-size:8pt;font-weight:bold;"&gt;Term&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;span style="font-family:Arial;font-size:8pt;font-weight:bold;"&gt;(in&#160;years)&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;span style="font-family:Arial;font-size:8pt;font-weight:bold;"&gt;Aggregate&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;span style="font-family:Arial;font-size:8pt;font-weight:bold;"&gt;Intrinsic Value&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;span style="font-family:Arial;font-size:8pt;font-weight:bold;"&gt;(in&#160;thousands)&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Outstanding as of December 31, 2018&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;13,789&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;31.73&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Granted&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;2,990&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;51.25&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Exercised&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;(3,018&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;)&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;21.40&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Forfeited or expired&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;(862&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:1px solid #000000;padding-right:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;)&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;42.53&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Outstanding as of December 31, 2019&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;12,899&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;37.95&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;7.14&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;236,318&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Exercisable as of December 31, 2019&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;4,775&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;26.67&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;border-top:3px double #000000;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;5.61&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;141,277&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Options vested or expected to vest as of&#160;&lt;br/&gt;&#160;December 31, 2019 (1)&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;11,724&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;36.84&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;7.00&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;227,779&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-left:4px;padding-top:12px;text-align:left;padding-left:48px;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&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="line-height:120%;padding-top:6px;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&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="line-height:120%;font-size:10pt;"&gt;&lt;div style="padding-left:0px;text-indent:0px;line-height:normal;padding-top:10px;"&gt;&lt;table cellpadding="0" cellspacing="0" style="font-family:Times New Roman;font-size:10pt;width:99.80506822612085%;border-collapse:collapse;text-align:left;"&gt;&lt;tr&gt;&lt;td colspan="9"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="width:56%;"/&gt;&lt;td style="width:13%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:13%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:13%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:8pt;"&gt;&lt;span style="font-family:inherit;font-size:8pt;color:#ee2724;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="8" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;span style="font-family:Arial;font-size:8pt;font-weight:bold;"&gt;Year&#160;Ended&#160;December&#160;31,&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:8pt;"&gt;&lt;span style="font-family:inherit;font-size:8pt;color:#ee2724;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;span style="font-family:Arial;font-size:8pt;font-weight:bold;"&gt;2019&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;span style="font-family:Arial;font-size:8pt;"&gt;2018&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;span style="font-family:Arial;font-size:8pt;"&gt;2017&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Risk-free rate&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;2.7&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;%&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;2.9&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;%&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;2.4&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;%&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Expected dividend yield&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;0.39&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;%&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;0.35&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;%&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;0.40&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;%&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Expected volatility&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;37&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;%&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;39&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;%&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;41&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;%&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Expected term (in years)&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;5.3&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;5.4&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;5.4&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:12px;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;text-decoration:underline;"&gt;Risk-free rate&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:6px;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;The risk-free rate was based upon a treasury instrument whose term was consistent with the contractual term of the option.&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:12px;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;text-decoration:underline;"&gt;Expected dividend yield&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&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="line-height:120%;padding-top:12px;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;text-decoration:underline;"&gt;Expected volatility&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;The expected volatility was based upon 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="line-height:120%;padding-top:12px;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;text-decoration:underline;"&gt;Expected term&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:6px;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&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="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;The weighted-average grant-date fair value of stock options granted was &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;$18.62&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt; in &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;2019&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;, &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;$20.84&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt; in &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;2018&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;, and &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;$15.59&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt; in &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;2017&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;.&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;The total intrinsic value of stock options exercised was &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;$90,762,000&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt; in &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;2019&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;, &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;$52,629,000&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt; in &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;2018&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;, and &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;$136,672,000&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt; in &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;2017&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;. The total fair value of stock options vested was &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;$38,974,000&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt; in &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;2019&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;, &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;$31,106,000&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt; in &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;2018&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;, and &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;$21,519,000&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt; in &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;2017&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;.&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;text-decoration:underline;"&gt;Restricted Stock Units (RSUs)&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;The following tables summarizes the Company's RSU activity:&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:6px;text-align:center;font-size:10pt;"&gt;&lt;div style="padding-left:0px;text-indent:0px;line-height:normal;padding-top:10px;"&gt;&lt;table cellpadding="0" cellspacing="0" style="font-family:Times New Roman;font-size:10pt;margin-left:auto;margin-right:auto;width:100%;border-collapse:collapse;text-align:left;"&gt;&lt;tr&gt;&lt;td colspan="7"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="width:63%;"/&gt;&lt;td style="width:14%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:19%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:center;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;Shares&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:center;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;(in&#160;thousands)&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:center;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;Weighted-&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:center;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;Average&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:center;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;Grant Date Fair Value&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Nonvested as of December 31, 2018&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;&#x2014;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;&#x2014;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Granted&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;151&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;48.61&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Vested&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;&#x2014;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;&#x2014;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Forfeited or expired&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;(1&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:1px solid #000000;padding-right:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;)&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;45.20&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Nonvested as of December 31, 2019&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;150&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;48.63&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;text-decoration:underline;"&gt;Stock-Based Compensation Expense&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;The Company stratifies its employee population into &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;two&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt; groups: one consisting of senior management and another consisting of all other employees.  The Company currently applies an estimated forfeiture rate of &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;9%&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt; to all unvested options for senior management and a rate of &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;12%&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt; for all other employees.  Each year during the first quarter, the Company revises its forfeiture rate.  This resulted in a decrease to compensation expense of &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;$499,000&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt; in 2019, an increase to compensation expense of &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;$1,283,000&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt; in &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;2018&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;, and a decrease to compensation expense of &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;$673,000&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt; in &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;2017&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;.&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;As of December&#160;31, &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;2019&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;, total unrecognized compensation expense related to non-vested stock-based awards, including stock options and RSUs, was &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;$53,491,000&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;, which is expected to be recognized over a weighted-average period of &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;1.66&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt; years.&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;The total stock-based compensation expense and the related income tax benefit recognized was &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;$45,589,000&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt; and &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;$7,756,000&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;, respectively, in &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;2019&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;, &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;$41,090,000&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt; and &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;$7,317,000&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;, respectively, in &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;2018&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;, and &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;$31,942,000&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt; and &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;$10,473,000&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;, respectively, in &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;2017&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;.  No compensation expense was capitalized in &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;2019&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;, &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;2018&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;, or &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;2017&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;.&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&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="line-height:120%;font-size:10pt;"&gt;&lt;div style="padding-left:0px;text-indent:0px;line-height:normal;padding-top:10px;"&gt;&lt;table cellpadding="0" cellspacing="0" style="font-family:Times New Roman;font-size:10pt;width:99.80506822612085%;border-collapse:collapse;text-align:left;"&gt;&lt;tr&gt;&lt;td colspan="12"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="width:53%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:13%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:13%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:13%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:8pt;"&gt;&lt;span style="font-family:inherit;font-size:8pt;color:#ee2724;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="11" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;span style="font-family:Arial;font-size:8pt;font-weight:bold;"&gt;Year Ended December&#160;31,&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:8pt;"&gt;&lt;span style="font-family:inherit;font-size:8pt;color:#ee2724;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;span style="font-family:Arial;font-size:8pt;font-weight:bold;"&gt;2019&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;span style="font-family:Arial;font-size:8pt;"&gt;2018&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;span style="font-family:Arial;font-size:8pt;"&gt;2017&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Cost of revenue&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;1,504&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;border-top:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;2,447&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;border-top:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;1,881&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;border-top:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Research, development, and engineering&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;15,748&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;14,578&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;11,022&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Selling, general, and administrative&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;28,337&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;24,065&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;19,039&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;45,589&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;border-top:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;41,090&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;border-top:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;31,942&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;border-top:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;</us-gaap:DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant
      contextRef="FI2019Q4_us-gaap_AwardTypeAxis_us-gaap_EmployeeStockOptionMember"
      decimals="0"
      id="d9067284e650-wk-Fact-0D4573E0C663496D8B9A8095A197212A"
      unitRef="shares">17300802</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1
      contextRef="FD2019Q4YTD_srt_RangeAxis_srt_MaximumMember_us-gaap_AwardTypeAxis_us-gaap_EmployeeStockOptionMember"
      id="d9067284e658-wk-Fact-E3CC7E131F5D2C48C11517BDF702D6E8">P5Y</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1>
    <cgnx:ExpirationPeriodOfStockOptionPlan
      contextRef="FD2019Q4YTD_us-gaap_AwardTypeAxis_us-gaap_EmployeeStockOptionMember"
      id="d9067284e662-wk-Fact-09268AB2B7B8FF060CA017AE4418E828">P10Y</cgnx:ExpirationPeriodOfStockOptionPlan>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1
      contextRef="FD2019Q4YTD_srt_RangeAxis_srt_MinimumMember_us-gaap_AwardTypeAxis_us-gaap_PerformanceSharesMember"
      id="d9067284e667-wk-Fact-2B2DAC187665D77778D117BEFB73010D">P3Y</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1>
    <us-gaap:ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock
      contextRef="FD2019Q4YTD"
      id="TextSelection-4AEA1A0B44AE73DB512A8095A1A843B3-0-wk-Fact-379071BD14013535CACE8095A197EBE5">&lt;div style="line-height:120%;padding-top:6px;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;The following table summarizes the Company&#x2019;s stock option activity:&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-bottom:6px;font-size:10pt;"&gt;&lt;div style="padding-left:0px;text-indent:0px;line-height:normal;padding-top:10px;"&gt;&lt;table cellpadding="0" cellspacing="0" style="font-family:Times New Roman;font-size:10pt;width:99.80506822612085%;border-collapse:collapse;text-align:left;"&gt;&lt;tr&gt;&lt;td colspan="13"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="width:45%;"/&gt;&lt;td style="width:12%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:11%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:13%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:11%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;span style="font-family:Arial;font-size:8pt;font-weight:bold;"&gt;Shares&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;span style="font-family:Arial;font-size:8pt;font-weight:bold;"&gt;(in&#160;thousands)&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;span style="font-family:Arial;font-size:8pt;font-weight:bold;"&gt;Weighted-&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;span style="font-family:Arial;font-size:8pt;font-weight:bold;"&gt;Average&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;span style="font-family:Arial;font-size:8pt;font-weight:bold;"&gt;Exercise&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;span style="font-family:Arial;font-size:8pt;font-weight:bold;"&gt;Price&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;span style="font-family:Arial;font-size:8pt;font-weight:bold;"&gt;Weighted-&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;span style="font-family:Arial;font-size:8pt;font-weight:bold;"&gt;Average&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;span style="font-family:Arial;font-size:8pt;font-weight:bold;"&gt;Remaining&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;span style="font-family:Arial;font-size:8pt;font-weight:bold;"&gt;Contractual&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;span style="font-family:Arial;font-size:8pt;font-weight:bold;"&gt;Term&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;span style="font-family:Arial;font-size:8pt;font-weight:bold;"&gt;(in&#160;years)&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;span style="font-family:Arial;font-size:8pt;font-weight:bold;"&gt;Aggregate&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;span style="font-family:Arial;font-size:8pt;font-weight:bold;"&gt;Intrinsic Value&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;span style="font-family:Arial;font-size:8pt;font-weight:bold;"&gt;(in&#160;thousands)&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Outstanding as of December 31, 2018&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;13,789&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;31.73&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Granted&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;2,990&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;51.25&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Exercised&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;(3,018&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;)&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;21.40&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Forfeited or expired&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;(862&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:1px solid #000000;padding-right:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;)&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;42.53&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Outstanding as of December 31, 2019&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;12,899&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;37.95&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;7.14&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;236,318&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Exercisable as of December 31, 2019&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;4,775&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;26.67&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;border-top:3px double #000000;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;5.61&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;141,277&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Options vested or expected to vest as of&#160;&lt;br/&gt;&#160;December 31, 2019 (1)&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;11,724&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;36.84&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;7.00&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;227,779&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-left:4px;padding-top:12px;text-align:left;padding-left:48px;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&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="FI2018Q4"
      decimals="-3"
      id="d9067284e819-wk-Fact-97572658C8D3154CA5058095A17A5144"
      unitRef="shares">13789000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice
      contextRef="FI2018Q4"
      decimals="2"
      id="d9067284e838-wk-Fact-1B9568B256756DC118A68095A17AAC16"
      unitRef="usdPerShare">31.73</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriod
      contextRef="FD2019Q4YTD"
      decimals="-3"
      id="d9067284e884-wk-Fact-4D7E94755C990C390A408095A173EA9F"
      unitRef="shares">2990000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriod>
    <us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice
      contextRef="FD2019Q4YTD"
      decimals="2"
      id="d9067284e898-wk-Fact-8BD6C22077187A5A8FC88095A17B8343"
      unitRef="usdPerShare">51.25</us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice>
    <us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised
      contextRef="FD2019Q4YTD"
      decimals="-3"
      id="d9067284e949-wk-Fact-9C5970694FF991A7378D8095A17B2672"
      unitRef="shares">3018000</us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised>
    <us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice
      contextRef="FD2019Q4YTD"
      decimals="2"
      id="d9067284e964-wk-Fact-A565EAAA387AD7E337BC8095A1733708"
      unitRef="usdPerShare">21.40</us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriod
      contextRef="FD2019Q4YTD"
      decimals="-3"
      id="d9067284e1015-wk-Fact-361ABC215FE51461025E8095A1739BB3"
      unitRef="shares">862000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriod>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriodWeightedAverageExercisePrice
      contextRef="FD2019Q4YTD"
      decimals="2"
      id="d9067284e1030-wk-Fact-01ADABDA2C10F8E4D8DD8095A17422CF"
      unitRef="usdPerShare">42.53</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriodWeightedAverageExercisePrice>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber
      contextRef="FI2019Q4"
      decimals="-3"
      id="d9067284e1081-wk-Fact-00E745319299B85BFCFA8095A17ABE47"
      unitRef="shares">12899000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice
      contextRef="FI2019Q4"
      decimals="2"
      id="d9067284e1100-wk-Fact-60DC33EEB4FFC18063A28095A1727D9E"
      unitRef="usdPerShare">37.95</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2
      contextRef="FD2019Q4YTD"
      id="d9067284e1114-wk-Fact-EC62ADE42EC135C99DEE8095A174E23A">P7Y1M20D</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue
      contextRef="FI2019Q4"
      decimals="-3"
      id="d9067284e1130-wk-Fact-6BB9C1CAA61DFDE967A38095A173E952"
      unitRef="usd">236318000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber
      contextRef="FI2019Q4"
      decimals="-3"
      id="d9067284e1145-wk-Fact-CF20D9917A14B58B26198095A17BDE56"
      unitRef="shares">4775000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice
      contextRef="FI2019Q4"
      decimals="2"
      id="d9067284e1164-wk-Fact-EA2B753FB7A9CE727B938095A17BCB48"
      unitRef="usdPerShare">26.67</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1
      contextRef="FD2019Q4YTD"
      id="d9067284e1178-wk-Fact-F91CBE4B59B9BC6C19848095A17BA3B9">P5Y7M9D</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1>
    <cgnx:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableAggregateIntrinsicValue
      contextRef="FI2019Q4"
      decimals="-3"
      id="d9067284e1194-wk-Fact-4CFE5DB009DD82994C538095A17ABCFC"
      unitRef="usd">141277000</cgnx:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableAggregateIntrinsicValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableNumber
      contextRef="FI2019Q4"
      decimals="-3"
      id="d9067284e1209-wk-Fact-0C396A2385B5F620C17D8095A17B5DFC"
      unitRef="shares">11724000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableNumber>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice
      contextRef="FI2019Q4"
      decimals="2"
      id="d9067284e1228-wk-Fact-1A1921D0C01C7C0B63BF8095A173BD61"
      unitRef="usdPerShare">36.84</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1
      contextRef="FD2019Q4YTD"
      id="d9067284e1242-wk-Fact-D2DB7DD75B5D4146C68E8095A17A065B">P7Y</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue
      contextRef="FI2019Q4"
      decimals="-3"
      id="d9067284e1258-wk-Fact-94D8976DF7B0D6B042EB8095A17BDC47"
      unitRef="usd">227779000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue>
    <us-gaap:ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock
      contextRef="FD2019Q4YTD"
      id="TextSelection-104D78C2DA4854E289F28095A1A84656-0-wk-Fact-7B9416A49B1CA6CA303D8095A19781B9">&lt;div style="line-height:120%;padding-top:6px;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&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="line-height:120%;font-size:10pt;"&gt;&lt;div style="padding-left:0px;text-indent:0px;line-height:normal;padding-top:10px;"&gt;&lt;table cellpadding="0" cellspacing="0" style="font-family:Times New Roman;font-size:10pt;width:99.80506822612085%;border-collapse:collapse;text-align:left;"&gt;&lt;tr&gt;&lt;td colspan="9"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="width:56%;"/&gt;&lt;td style="width:13%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:13%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:13%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:8pt;"&gt;&lt;span style="font-family:inherit;font-size:8pt;color:#ee2724;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="8" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;span style="font-family:Arial;font-size:8pt;font-weight:bold;"&gt;Year&#160;Ended&#160;December&#160;31,&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:8pt;"&gt;&lt;span style="font-family:inherit;font-size:8pt;color:#ee2724;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;span style="font-family:Arial;font-size:8pt;font-weight:bold;"&gt;2019&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;span style="font-family:Arial;font-size:8pt;"&gt;2018&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;span style="font-family:Arial;font-size:8pt;"&gt;2017&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Risk-free rate&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;2.7&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;%&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;2.9&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;%&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;2.4&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;%&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Expected dividend yield&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;0.39&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;%&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;0.35&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;%&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;0.40&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;%&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Expected volatility&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;37&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;%&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;39&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;%&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;41&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;%&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Expected term (in years)&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;5.3&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;5.4&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;5.4&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;</us-gaap:ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate
      contextRef="FD2019Q4YTD_us-gaap_AwardTypeAxis_us-gaap_EmployeeStockOptionMember"
      decimals="3"
      id="d9067284e1408-wk-Fact-92667450E2EAC79122768095A17259E0"
      unitRef="number">0.027</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate
      contextRef="FD2018Q4YTD_us-gaap_AwardTypeAxis_us-gaap_EmployeeStockOptionMember"
      decimals="3"
      id="d9067284e1423-wk-Fact-1190217AAFAB5FD88B628095A173DF21"
      unitRef="number">0.029</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate
      contextRef="FD2017Q4YTD_us-gaap_AwardTypeAxis_us-gaap_EmployeeStockOptionMember"
      decimals="3"
      id="d9067284e1438-wk-Fact-A3486C076DC971DA8ECA8095A1720A8E"
      unitRef="number">0.024</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate
      contextRef="FD2019Q4YTD_us-gaap_AwardTypeAxis_us-gaap_EmployeeStockOptionMember"
      decimals="4"
      id="d9067284e1454-wk-Fact-F0836FE90A4C4EF6E4DD8095A17200F9"
      unitRef="number">0.0039</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate
      contextRef="FD2018Q4YTD_us-gaap_AwardTypeAxis_us-gaap_EmployeeStockOptionMember"
      decimals="4"
      id="d9067284e1469-wk-Fact-402A7511416E81FC23208095A174E2A8"
      unitRef="number">0.0035</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate
      contextRef="FD2017Q4YTD_us-gaap_AwardTypeAxis_us-gaap_EmployeeStockOptionMember"
      decimals="4"
      id="d9067284e1484-wk-Fact-EDD8A4950308BD8888C38095A1722533"
      unitRef="number">0.0040</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate
      contextRef="FD2019Q4YTD_us-gaap_AwardTypeAxis_us-gaap_EmployeeStockOptionMember"
      decimals="2"
      id="d9067284e1500-wk-Fact-8A028D399687A78606F88095A173F04C"
      unitRef="number">0.37</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate
      contextRef="FD2018Q4YTD_us-gaap_AwardTypeAxis_us-gaap_EmployeeStockOptionMember"
      decimals="2"
      id="d9067284e1515-wk-Fact-6CDC72D2CB86A6E21D098095A1732436"
      unitRef="number">0.39</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate
      contextRef="FD2017Q4YTD_us-gaap_AwardTypeAxis_us-gaap_EmployeeStockOptionMember"
      decimals="2"
      id="d9067284e1530-wk-Fact-FCAF94BA08017D24C8C88095A1713246"
      unitRef="number">0.41</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1
      contextRef="FD2019Q4YTD_us-gaap_AwardTypeAxis_us-gaap_EmployeeStockOptionMember"
      id="d9067284e1546-wk-Fact-4DE48D1C89EEEDDB0AC68095A17372E9">P5Y3M18D</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1
      contextRef="FD2018Q4YTD_us-gaap_AwardTypeAxis_us-gaap_EmployeeStockOptionMember"
      id="d9067284e1560-wk-Fact-8190BACB5C69A046BCC88095A171498B">P5Y4M24D</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1
      contextRef="FD2017Q4YTD_us-gaap_AwardTypeAxis_us-gaap_EmployeeStockOptionMember"
      id="d9067284e1574-wk-Fact-46EF17F9B9EEEC9781488095A172500F">P5Y4M24D</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue
      contextRef="FD2019Q4YTD"
      decimals="2"
      id="d9067284e1617-wk-Fact-D86D01648E796ED893AD8095A197D9E4"
      unitRef="usdPerShare">18.62</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue
      contextRef="FD2018Q4YTD"
      decimals="2"
      id="d9067284e1625-wk-Fact-CC49D39E3E53550923878095A197FA95"
      unitRef="usdPerShare">20.84</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue
      contextRef="FD2017Q4YTD"
      decimals="2"
      id="d9067284e1633-wk-Fact-42CD94CB9343F961203D8095A1974968"
      unitRef="usdPerShare">15.59</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue>
    <cgnx:SharesBasedCompensationArrangementBySharesBasedPaymentAwardOptionsExercisableIntrinsicValue
      contextRef="FD2019Q4YTD"
      decimals="0"
      id="d9067284e1645-wk-Fact-8FA227D668347EB6C63D8095A1989A76"
      unitRef="usd">90762000</cgnx:SharesBasedCompensationArrangementBySharesBasedPaymentAwardOptionsExercisableIntrinsicValue>
    <cgnx:SharesBasedCompensationArrangementBySharesBasedPaymentAwardOptionsExercisableIntrinsicValue
      contextRef="FD2018Q4YTD"
      decimals="0"
      id="d9067284e1653-wk-Fact-56425578A80ACDFD37FD8095A197C6A6"
      unitRef="usd">52629000</cgnx:SharesBasedCompensationArrangementBySharesBasedPaymentAwardOptionsExercisableIntrinsicValue>
    <cgnx:SharesBasedCompensationArrangementBySharesBasedPaymentAwardOptionsExercisableIntrinsicValue
      contextRef="FD2017Q4YTD"
      decimals="0"
      id="d9067284e1661-wk-Fact-FCA2AFFBE29802C8B5A88095A197454E"
      unitRef="usd">136672000</cgnx:SharesBasedCompensationArrangementBySharesBasedPaymentAwardOptionsExercisableIntrinsicValue>
    <cgnx:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedFairValue
      contextRef="FD2019Q4YTD"
      decimals="0"
      id="d9067284e1670-wk-Fact-C39FEC3C7A0C4ADDD9898095A197524B"
      unitRef="usd">38974000</cgnx:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedFairValue>
    <cgnx:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedFairValue
      contextRef="FD2018Q4YTD"
      decimals="0"
      id="d9067284e1678-wk-Fact-BC6B4C677BB8AD60AF838095A1976338"
      unitRef="usd">31106000</cgnx:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedFairValue>
    <cgnx:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedFairValue
      contextRef="FD2017Q4YTD"
      decimals="0"
      id="d9067284e1686-wk-Fact-6A886485ED695120CF4C8095A1972FFF"
      unitRef="usd">21519000</cgnx:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedFairValue>
    <us-gaap:NonvestedRestrictedStockSharesActivityTableTextBlock
      contextRef="FD2019Q4YTD"
      id="TextSelection-961086AD06E8D8A0F6C08095A1A86425-0-wk-Fact-0191BF1E1761C71634738095A1970ECF">&lt;div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;The following tables summarizes the Company's RSU activity:&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:6px;text-align:center;font-size:10pt;"&gt;&lt;div style="padding-left:0px;text-indent:0px;line-height:normal;padding-top:10px;"&gt;&lt;table cellpadding="0" cellspacing="0" style="font-family:Times New Roman;font-size:10pt;margin-left:auto;margin-right:auto;width:100%;border-collapse:collapse;text-align:left;"&gt;&lt;tr&gt;&lt;td colspan="7"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="width:63%;"/&gt;&lt;td style="width:14%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:19%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:center;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;Shares&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:center;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;(in&#160;thousands)&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:center;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;Weighted-&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:center;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;Average&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:center;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;Grant Date Fair Value&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Nonvested as of December 31, 2018&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;&#x2014;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;&#x2014;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Granted&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;151&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;48.61&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Vested&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;&#x2014;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;&#x2014;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Forfeited or expired&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;(1&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:1px solid #000000;padding-right:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;)&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;45.20&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Nonvested as of December 31, 2019&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;150&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;48.63&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;</us-gaap:NonvestedRestrictedStockSharesActivityTableTextBlock>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber
      contextRef="FI2018Q4_us-gaap_AwardTypeAxis_us-gaap_RestrictedStockMember"
      decimals="-3"
      id="d9067284e1770-wk-Fact-BEA0EDF5FF3590B503F8FD22E01929FA"
      unitRef="shares">0</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue
      contextRef="FI2018Q4_us-gaap_AwardTypeAxis_us-gaap_RestrictedStockMember"
      decimals="2"
      id="d9067284e1789-wk-Fact-5D307307D1F8E2B174F7FD23447D3E15"
      unitRef="usdPerShare">0</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod
      contextRef="FD2019Q4YTD_us-gaap_AwardTypeAxis_us-gaap_RestrictedStockMember"
      decimals="-3"
      id="d9067284e1804-wk-Fact-AE933AECDCAD9414595DFD22EE1B2CA8"
      unitRef="shares">151000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue
      contextRef="FD2019Q4YTD_us-gaap_AwardTypeAxis_us-gaap_RestrictedStockMember"
      decimals="2"
      id="d9067284e1818-wk-Fact-53DA923B855F91895840FD235418463E"
      unitRef="usdPerShare">48.61</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod
      contextRef="FD2019Q4YTD_us-gaap_AwardTypeAxis_us-gaap_RestrictedStockMember"
      decimals="-3"
      id="d9067284e1838-wk-Fact-B03CC6E74E0B2E33D292FD22FD317B29"
      unitRef="shares">0</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue
      contextRef="FD2019Q4YTD_us-gaap_AwardTypeAxis_us-gaap_RestrictedStockMember"
      decimals="2"
      id="d9067284e1852-wk-Fact-E991E3E246A81C7D74EBFD236100E023"
      unitRef="usdPerShare">0</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod
      contextRef="FD2019Q4YTD_us-gaap_AwardTypeAxis_us-gaap_RestrictedStockMember"
      decimals="-3"
      id="d9067284e1872-wk-Fact-93E27F27CEAB6A9DAC87FD230D0113CB"
      unitRef="shares">1000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue
      contextRef="FD2019Q4YTD_us-gaap_AwardTypeAxis_us-gaap_RestrictedStockMember"
      decimals="2"
      id="d9067284e1887-wk-Fact-75EC0ED8F294144669A5FD237249F842"
      unitRef="usdPerShare">45.20</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber
      contextRef="FI2019Q4_us-gaap_AwardTypeAxis_us-gaap_RestrictedStockMember"
      decimals="-3"
      id="d9067284e1907-wk-Fact-08BA43C4A0B657BC0D3CFD23253A7065"
      unitRef="shares">150000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue
      contextRef="FI2019Q4_us-gaap_AwardTypeAxis_us-gaap_RestrictedStockMember"
      decimals="2"
      id="d9067284e1926-wk-Fact-A4A3BCE1DB29B8148474FD23834D334D"
      unitRef="usdPerShare">48.63</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue>
    <cgnx:NumberOfGroupsWithinEmployeePopulation
      contextRef="FI2019Q4"
      decimals="INF"
      id="d9067284e1941-wk-Fact-A8AB730623218252923AFD2169F5BEEB"
      unitRef="group">2</cgnx:NumberOfGroupsWithinEmployeePopulation>
    <cgnx:EstimatedForfeitureRateForUnvestedOptionsForSeniorManagement
      contextRef="FI2019Q4"
      decimals="2"
      id="d9067284e1945-wk-Fact-FEF019A34A06C7115F01FD21C95AB5B5"
      unitRef="number">0.09</cgnx:EstimatedForfeitureRateForUnvestedOptionsForSeniorManagement>
    <cgnx:EstimatedForfeitureRateForUnvestedOptionsForAllNonSeniorManagement
      contextRef="FI2019Q4"
      decimals="2"
      id="d9067284e1949-wk-Fact-9DEF209C251FB6815B59FD21FA2EF15C"
      unitRef="number">0.12</cgnx:EstimatedForfeitureRateForUnvestedOptionsForAllNonSeniorManagement>
    <cgnx:IncreaseInCompensationExpenseDueToRevisedEstimatedForfeitureRates
      contextRef="FD2019Q4YTD"
      decimals="0"
      id="d9067284e1953-wk-Fact-7E43E88181341FCE2F618095A197E2C8"
      unitRef="usd">499000</cgnx:IncreaseInCompensationExpenseDueToRevisedEstimatedForfeitureRates>
    <cgnx:IncreaseInCompensationExpenseDueToRevisedEstimatedForfeitureRates
      contextRef="FD2018Q4YTD"
      decimals="0"
      id="d9067284e1957-wk-Fact-D078DDF2A5979EDB1A198095A1971E07"
      unitRef="usd">1283000</cgnx:IncreaseInCompensationExpenseDueToRevisedEstimatedForfeitureRates>
    <cgnx:IncreaseInCompensationExpenseDueToRevisedEstimatedForfeitureRates
      contextRef="FD2017Q4YTD"
      decimals="0"
      id="d9067284e1966-wk-Fact-BD44F17D680ADB2B18AD8095A19635DC"
      unitRef="usd">673000</cgnx:IncreaseInCompensationExpenseDueToRevisedEstimatedForfeitureRates>
    <us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedStockOptions
      contextRef="FI2019Q4"
      decimals="0"
      id="d9067284e1981-wk-Fact-71E27C44357AAA3CBBE68095A1972139"
      unitRef="usd">53491000</us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedStockOptions>
    <us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1
      contextRef="FD2019Q4YTD"
      id="d9067284e1985-wk-Fact-71ABB08189E23114DE3B8095A1977029">P1Y7M28D</us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1>
    <us-gaap:AllocatedShareBasedCompensationExpense
      contextRef="FD2019Q4YTD"
      decimals="-3"
      id="d9067284e2002-wk-Fact-7D99C0F12E7E5F14EE028095A197CE7D"
      unitRef="usd">45589000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense
      contextRef="FD2019Q4YTD"
      decimals="0"
      id="d9067284e2006-wk-Fact-5FB5D6B63E8870678F8E8095A197D794"
      unitRef="usd">7756000</us-gaap:EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense>
    <us-gaap:AllocatedShareBasedCompensationExpense
      contextRef="FD2018Q4YTD"
      decimals="-3"
      id="d9067284e2014-wk-Fact-AA9652E3E83350868B708095A197D9CE"
      unitRef="usd">41090000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense
      contextRef="FD2018Q4YTD"
      decimals="0"
      id="d9067284e2018-wk-Fact-E7D0BAEF0B3F1C333BA58095A197782E"
      unitRef="usd">7317000</us-gaap:EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense>
    <us-gaap:AllocatedShareBasedCompensationExpense
      contextRef="FD2017Q4YTD"
      decimals="-3"
      id="d9067284e2027-wk-Fact-391C044C35430DF423838095A197E5DD"
      unitRef="usd">31942000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense
      contextRef="FD2017Q4YTD"
      decimals="0"
      id="d9067284e2031-wk-Fact-7CD6E7A0EAA1387E60AE8095A197A8A7"
      unitRef="usd">10473000</us-gaap:EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense>
    <us-gaap:ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock
      contextRef="FD2019Q4YTD"
      id="TextSelection-3CF3EDBE00EBE8AD46788095A1A8EEF9-0-wk-Fact-676BD7558C05DA46B8CF8095A1978D86">&lt;div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&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="line-height:120%;font-size:10pt;"&gt;&lt;div style="padding-left:0px;text-indent:0px;line-height:normal;padding-top:10px;"&gt;&lt;table cellpadding="0" cellspacing="0" style="font-family:Times New Roman;font-size:10pt;width:99.80506822612085%;border-collapse:collapse;text-align:left;"&gt;&lt;tr&gt;&lt;td colspan="12"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="width:53%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:13%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:13%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:13%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:8pt;"&gt;&lt;span style="font-family:inherit;font-size:8pt;color:#ee2724;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="11" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;span style="font-family:Arial;font-size:8pt;font-weight:bold;"&gt;Year Ended December&#160;31,&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:8pt;"&gt;&lt;span style="font-family:inherit;font-size:8pt;color:#ee2724;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;span style="font-family:Arial;font-size:8pt;font-weight:bold;"&gt;2019&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;span style="font-family:Arial;font-size:8pt;"&gt;2018&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;span style="font-family:Arial;font-size:8pt;"&gt;2017&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Cost of revenue&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;1,504&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;border-top:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;2,447&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;border-top:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;1,881&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;border-top:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Research, development, and engineering&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;15,748&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;14,578&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;11,022&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Selling, general, and administrative&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;28,337&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;24,065&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;19,039&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;45,589&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;border-top:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;41,090&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;border-top:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;31,942&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;border-top:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;</us-gaap:ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock>
    <us-gaap:AllocatedShareBasedCompensationExpense
      contextRef="FD2019Q4YTD_us-gaap_IncomeStatementLocationAxis_cgnx_ProductCostOfRevenueMember"
      decimals="-3"
      id="d9067284e2220-wk-Fact-2C5FD2744EF7A128EBC58095A17A1499"
      unitRef="usd">1504000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:AllocatedShareBasedCompensationExpense
      contextRef="FD2018Q4YTD_us-gaap_IncomeStatementLocationAxis_cgnx_ProductCostOfRevenueMember"
      decimals="-3"
      id="d9067284e2239-wk-Fact-5700421CDB824C9C95CE8095A1745A86"
      unitRef="usd">2447000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:AllocatedShareBasedCompensationExpense
      contextRef="FD2017Q4YTD_us-gaap_IncomeStatementLocationAxis_cgnx_ProductCostOfRevenueMember"
      decimals="-3"
      id="d9067284e2258-wk-Fact-0CFCA43F2C5BD38AC8AE8095A17A163D"
      unitRef="usd">1881000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:AllocatedShareBasedCompensationExpense
      contextRef="FD2019Q4YTD_us-gaap_IncomeStatementLocationAxis_us-gaap_ResearchAndDevelopmentExpenseMember"
      decimals="-3"
      id="d9067284e2274-wk-Fact-8693E69AC0CF829C897F8095A17A88E9"
      unitRef="usd">15748000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:AllocatedShareBasedCompensationExpense
      contextRef="FD2018Q4YTD_us-gaap_IncomeStatementLocationAxis_us-gaap_ResearchAndDevelopmentExpenseMember"
      decimals="-3"
      id="d9067284e2293-wk-Fact-7C6B511DFBAA48628E8F8095A174AEC5"
      unitRef="usd">14578000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:AllocatedShareBasedCompensationExpense
      contextRef="FD2017Q4YTD_us-gaap_IncomeStatementLocationAxis_us-gaap_ResearchAndDevelopmentExpenseMember"
      decimals="-3"
      id="d9067284e2312-wk-Fact-89B34C8C1B44944E558C8095A17AC09E"
      unitRef="usd">11022000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:AllocatedShareBasedCompensationExpense
      contextRef="FD2019Q4YTD_us-gaap_IncomeStatementLocationAxis_cgnx_SellingGeneralAndAdministrativeMember"
      decimals="-3"
      id="d9067284e2333-wk-Fact-FEBB5549ECD3CB7786388095A17A13FE"
      unitRef="usd">28337000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:AllocatedShareBasedCompensationExpense
      contextRef="FD2018Q4YTD_us-gaap_IncomeStatementLocationAxis_cgnx_SellingGeneralAndAdministrativeMember"
      decimals="-3"
      id="d9067284e2352-wk-Fact-FA7EBA8A5593B6CC15AD8095A17A7CB1"
      unitRef="usd">24065000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:AllocatedShareBasedCompensationExpense
      contextRef="FD2017Q4YTD_us-gaap_IncomeStatementLocationAxis_cgnx_SellingGeneralAndAdministrativeMember"
      decimals="-3"
      id="d9067284e2371-wk-Fact-93B7ACDA2EFB21B40F968095A17AC111"
      unitRef="usd">19039000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:AllocatedShareBasedCompensationExpense
      contextRef="FD2019Q4YTD"
      decimals="0"
      id="d9067284e2397-wk-Fact-D5387FCF42564B0B71648095A17AB68F"
      unitRef="usd">45589000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:AllocatedShareBasedCompensationExpense
      contextRef="FD2018Q4YTD"
      decimals="0"
      id="d9067284e2416-wk-Fact-8B8E119BFFEA71FFA0DA8095A17BD502"
      unitRef="usd">41090000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:AllocatedShareBasedCompensationExpense
      contextRef="FD2017Q4YTD"
      decimals="0"
      id="d9067284e2435-wk-Fact-F885D22963B3261EE62B8095A17AE193"
      unitRef="usd">31942000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:PensionAndOtherPostretirementBenefitsDisclosureTextBlock
      contextRef="FD2019Q4YTD"
      id="TextSelection-FBE06C2E7C9299853E488095A1A8E028-0-wk-Fact-DFB27DD20563F3C63F488095A185B5FA">Employee Savings Plan&lt;div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Under the Company's Employee Savings Plan, a defined contribution plan, all U.S. employees who have attained age &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;21&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt; may contribute up to &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;100&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;% 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 &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;50%&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt; of the first &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;6%&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt; of pay an employee contributes.  Company contributions vest &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;25%&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;, &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;50%&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;, &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;75%&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;, and &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;100%&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt; after one, two, three, and four years of continuous employment with the Company, respectively.  Company contributions totaled &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;$2,729,000&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt; in &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;2019&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;, &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;$2,540,000&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt; in &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;2018&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;, and &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;$2,030,000&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt; in &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;2017&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;.  Cognex stock is not an investment alternative and Company contributions are not made in the form of Cognex stock.&lt;/span&gt;&lt;/div&gt;</us-gaap:PensionAndOtherPostretirementBenefitsDisclosureTextBlock>
    <cgnx:MinimumAgeToBeEligibleToDefinedContributionPlan
      contextRef="FD2019Q4YTD"
      id="d9064081e643-wk-Fact-C56E4688D04660B135248095A185DBB7">P21Y</cgnx:MinimumAgeToBeEligibleToDefinedContributionPlan>
    <us-gaap:DefinedContributionPlanMaximumAnnualContributionsPerEmployeePercent
      contextRef="FD2019Q4YTD"
      decimals="INF"
      id="d9064081e647-wk-Fact-9EC42B5E30A4BD86CAE48095A185F2C7"
      unitRef="number">100</us-gaap:DefinedContributionPlanMaximumAnnualContributionsPerEmployeePercent>
    <us-gaap:DefinedContributionPlanEmployerMatchingContributionPercentOfMatch
      contextRef="FD2019Q4YTD"
      decimals="INF"
      id="d9064081e651-wk-Fact-46F59A8E5945429B1CCD8095A17B414B"
      unitRef="number">0.50</us-gaap:DefinedContributionPlanEmployerMatchingContributionPercentOfMatch>
    <us-gaap:DefinedContributionPlanEmployerMatchingContributionPercent
      contextRef="FD2019Q4YTD"
      decimals="INF"
      id="d9064081e655-wk-Fact-01869A37C4F2AB3D45B48095A185521B"
      unitRef="number">0.06</us-gaap:DefinedContributionPlanEmployerMatchingContributionPercent>
    <cgnx:CompanyContributionsVestAtEndOfTwoYear
      contextRef="FD2019Q4YTD"
      decimals="INF"
      id="d9064081e659-wk-Fact-611D2403AAD493A07A048095A185F23D"
      unitRef="number">0.25</cgnx:CompanyContributionsVestAtEndOfTwoYear>
    <cgnx:CompanyContributionsVestAtEndOfThreeYears
      contextRef="FD2019Q4YTD"
      decimals="INF"
      id="d9064081e664-wk-Fact-37359DBD2E72C67DCE378095A18568D0"
      unitRef="number">0.50</cgnx:CompanyContributionsVestAtEndOfThreeYears>
    <cgnx:CompanyContributionsVestAtEndOfFourYears
      contextRef="FD2019Q4YTD"
      decimals="INF"
      id="d9064081e668-wk-Fact-35AB17278801C811D2E78095A185C9CB"
      unitRef="number">0.75</cgnx:CompanyContributionsVestAtEndOfFourYears>
    <cgnx:CompanyContributionsVestAtEndOfFiveYears
      contextRef="FD2019Q4YTD"
      decimals="INF"
      id="d9064081e672-wk-Fact-2E7FE0A5B3C3C0EB612D8095A1859562"
      unitRef="number">1</cgnx:CompanyContributionsVestAtEndOfFiveYears>
    <us-gaap:DefinedContributionPlanCostRecognized
      contextRef="FD2019Q4YTD"
      decimals="0"
      id="d9064081e676-wk-Fact-A5A31EF0EB2971FA64618095A18508EB"
      unitRef="usd">2729000</us-gaap:DefinedContributionPlanCostRecognized>
    <us-gaap:DefinedContributionPlanCostRecognized
      contextRef="FD2018Q4YTD"
      decimals="0"
      id="d9064081e684-wk-Fact-0EDC2402ED2D9A10BDCA8095A17B44B6"
      unitRef="usd">2540000</us-gaap:DefinedContributionPlanCostRecognized>
    <us-gaap:DefinedContributionPlanCostRecognized
      contextRef="FD2017Q4YTD"
      decimals="0"
      id="d9064081e693-wk-Fact-D2C4B686FB47A2E8FAA88095A185E7AE"
      unitRef="usd">2030000</us-gaap:DefinedContributionPlanCostRecognized>
    <us-gaap:IncomeTaxDisclosureTextBlock
      contextRef="FD2019Q4YTD"
      id="TextSelection-7E6CC6606031625716F88095A1A8BA40-0-wk-Fact-2388A58AFBEDD063F1E98095A185141A">Taxes&lt;div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Domestic income before taxes was &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;$31,396,000&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt; in &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;2019&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;, &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;$39,042,000&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt; in &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;2018&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;, and &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;$30,345,000&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt; in &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;2017&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;.  Foreign income before taxes was &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;$131,598,000&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt; in &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;2019&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;, &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;$195,532,000&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt; in &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;2018&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;, and &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;$236,119,000&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt; in &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;2017&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;.  &lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:6px;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Income tax expense consisted of the following (in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:120%;font-size:10pt;"&gt;&lt;div style="padding-left:0px;text-indent:0px;line-height:normal;padding-top:10px;"&gt;&lt;table cellpadding="0" cellspacing="0" style="font-family:Times New Roman;font-size:10pt;width:99.80506822612085%;border-collapse:collapse;text-align:left;"&gt;&lt;tr&gt;&lt;td colspan="12"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="width:50%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:14%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:14%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:14%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:8pt;"&gt;&lt;span style="font-family:inherit;font-size:8pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="11" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;span style="font-family:Arial;font-size:8pt;font-weight:bold;"&gt;Year Ended December&#160;31,&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:8pt;"&gt;&lt;span style="font-family:inherit;font-size:8pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;span style="font-family:Arial;font-size:8pt;font-weight:bold;"&gt;2019&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;span style="font-family:Arial;font-size:8pt;"&gt;2018&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;span style="font-family:Arial;font-size:8pt;"&gt;2017&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Current:&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="11" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Federal&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;15,854&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;10,624&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;78,152&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;State&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;2,108&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;(879&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;)&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;2,687&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Foreign&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;30,670&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;6,307&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;7,624&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;48,632&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;16,052&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;border-top:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;88,463&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Deferred:&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Federal&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;352,808&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;(1,271&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;)&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;1,569&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;State&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;183&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;554&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;(639&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;)&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Foreign&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;(442,494&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;)&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;(28&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;)&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;359&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;(89,503&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;)&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;(745&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:1px solid #000000;padding-right:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;)&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;1,289&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:top;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:top;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;(40,871&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:top;border-bottom:3px double #000000;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;)&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:top;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:top;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;15,307&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;border-top:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:top;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:top;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;89,752&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;border-top:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:120%;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:120%;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&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 style="padding-left:0px;text-indent:0px;line-height:normal;padding-top:10px;"&gt;&lt;table cellpadding="0" cellspacing="0" style="font-family:Times New Roman;font-size:10pt;width:100%;border-collapse:collapse;text-align:left;"&gt;&lt;tr&gt;&lt;td colspan="9"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="width:62%;"/&gt;&lt;td style="width:11%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:11%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:11%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:8pt;"&gt;&lt;span style="font-family:inherit;font-size:8pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="8" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;span style="font-family:Arial;font-size:8pt;font-weight:bold;"&gt;Year&#160;Ended&#160;December&#160;31,&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:8pt;"&gt;&lt;span style="font-family:inherit;font-size:8pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;span style="font-family:Arial;font-size:8pt;font-weight:bold;"&gt;2019&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;span style="font-family:Arial;font-size:8pt;"&gt;2018&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;span style="font-family:Arial;font-size:8pt;"&gt;2017&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Income tax expense at U.S. federal statutory corporate tax rate&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;21&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&#160;%&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;21&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&#160;%&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;35&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&#160;%&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;State income taxes, net of federal benefit&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;2&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;1&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;&#x2014;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Foreign tax rate differential&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;(9&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;)&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;(9&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;)&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;(27&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;)&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Tax credit&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;(1&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;)&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;&#x2014;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;(1&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;)&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Discrete tax benefit related to employee stock options&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;(4&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;)&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;(4&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;)&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;(14&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;)&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Discrete tax expense (benefit) related to Tax Act&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;&#x2014;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;(3&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;)&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;36&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Discrete tax expense related to write-down of deferred tax assets &lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;&#x2014;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;&#x2014;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;5&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Discrete tax expense related to migration of acquired IP&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;18&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;&#x2014;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;&#x2014;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Discrete tax (benefit) related to change in tax structure&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;(268&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;)&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;&#x2014;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;&#x2014;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Discrete tax expense related to GILTI impact of change in tax structure&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;214&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;&#x2014;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;&#x2014;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Other discrete tax events&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;(1&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;)&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;&#x2014;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;(1&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;)&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Other&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;3&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;1&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;1&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Income tax expense&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;(25&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;)%&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;7&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&#160;%&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;34&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&#160;%&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:120%;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-bottom:10px;text-align:justify;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-style:italic;text-decoration:underline;"&gt;Change in Accounting Policy&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-bottom:10px;text-align:justify;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;In 2019, the Company elected to change its method of accounting for the United States Global Intangible Low-Taxed Income (GILTI) tax from recording the tax impact in the period it is incurred to recognizing deferred taxes for temporary tax basis differences expected to reverse as GILTI tax in future years.  The change is considered preferable, as it appropriately matches the Company's current and deferred income tax implications related to the change in tax structure noted under the heading "Discrete Tax Events 2019" below.&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-bottom:10px;text-align:justify;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;The change in this accounting policy impacted the Company's 2019 reported results as follows (in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-bottom:10px;text-align:center;font-size:10pt;"&gt;&lt;div style="padding-left:0px;text-indent:0px;line-height:normal;padding-top:10px;"&gt;&lt;table cellpadding="0" cellspacing="0" style="font-family:Times New Roman;font-size:10pt;margin-left:auto;margin-right:auto;width:100%;border-collapse:collapse;text-align:left;"&gt;&lt;tr&gt;&lt;td colspan="12"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="width:54%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:14%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:14%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:10%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;text-decoration:underline;"&gt;Statement of Operations&lt;/span&gt;&lt;/div&gt;&lt;div style="font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="11" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:center;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&#160;Year Ended December 31, 2019&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:center;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;As reported under the new accounting policy&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:center;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;As computed under the previous accounting policy&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:center;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Effect of change&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Income before income tax expense&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;162,994&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;162,994&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;&#x2014;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Income tax expense (benefit)&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;(40,871&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;)&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;(393,317&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;)&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;352,446&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Net income&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;203,865&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;border-top:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;556,311&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;border-top:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;(352,446&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;)&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;height:12px;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;height:12px;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;height:12px;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;height:12px;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;height:12px;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;height:12px;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="4" style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Net income per weighted-average common and common-equivalent share:&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Basic&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;1.19&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;3.25&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;(2.06&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-right:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;)&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Diluted&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;1.16&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;3.17&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;(2.01&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;)&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-bottom:10px;text-align:center;font-size:10pt;"&gt;&lt;div style="padding-left:0px;text-indent:0px;line-height:normal;padding-top:10px;"&gt;&lt;table cellpadding="0" cellspacing="0" style="font-family:Times New Roman;font-size:10pt;margin-left:auto;margin-right:auto;width:100%;border-collapse:collapse;text-align:left;"&gt;&lt;tr&gt;&lt;td colspan="12"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="width:54%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:14%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:14%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:10%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;text-decoration:underline;"&gt;Balance Sheet&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="11" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:center;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&#160;December 31, 2019&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:center;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;As reported under the new accounting policy&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:center;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;As computed under the previous accounting policy&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:center;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:center;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Effect of change&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Deferred tax assets&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;449,519&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;469,621&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;(20,102&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;)&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Deferred tax liabilities&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;332,344&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;&#x2014;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;332,344&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-bottom:10px;text-align:center;font-size:10pt;"&gt;&lt;div style="padding-left:0px;text-indent:0px;line-height:normal;padding-top:10px;"&gt;&lt;table cellpadding="0" cellspacing="0" style="font-family:Times New Roman;font-size:10pt;margin-left:auto;margin-right:auto;width:100%;border-collapse:collapse;text-align:left;"&gt;&lt;tr&gt;&lt;td colspan="12"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="width:54%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:14%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:14%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:10%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;text-decoration:underline;"&gt;Statement of Shareholders' Equity&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="11" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:center;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&#160;Year Ended December 31, 2019&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:center;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;As reported under the new accounting policy&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:center;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;As computed under the previous accounting policy&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:center;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:center;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Effect of change&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Retained earnings&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;753,268&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;1,105,714&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;(352,446&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;)&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-bottom:10px;text-align:justify;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;There were no material differences to the Company's reported results in prior years.&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:6px;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-style:italic;text-decoration:underline;"&gt;Discrete Tax Events 2019&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;The European Union has enacted a series of tax reform legislation over the past few years regarding low tax structures.  The Company made changes to its international tax structure in the fourth quarter of 2019 as a result of this legislation that resulted in an intercompany sale of intellectual property.  The Company recorded an associated deferred tax asset and income tax benefit of &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;$437,500,000&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt; in Ireland based upon the fair value of the intellectual property, that will be realized over 15 years as future tax deductions.  From a United States perspective, the sale is disregarded, and any future deductions claimed in Ireland will be added back to taxable income as part of GILTI minimum tax.  The Company recorded an associated deferred tax liability and income tax expense of &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;$350,000,000&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;, representing the GILTI minimum tax related to the fair value of the intellectual property.  The result of these transactions was a net discrete tax benefit of &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;$87,500,000&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;.  Management expects its current effective tax rate excluding discrete items to increase slightly in future years as a result of this change.&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;In connection with the acquisition of Sualab, Co. Ltd., the Company migrated acquired intellectual property to certain subsidiaries in the fourth quarter of 2019 in order to align with its corporate tax structure.  As a result of this transaction, the Company recorded a discrete tax expense of &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;$28,528,000&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;, which included a reserve of &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;$3,700,000&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt; for certain related tax uncertainties. &lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:12px;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-style:italic;text-decoration:underline;"&gt;The Tax Act&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-bottom:10px;padding-top:6px;text-align:justify;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;In December 2017, the Tax Cuts and Jobs Act of 2017 (Tax Act) was signed into law.  The Tax Act resulted in a decrease in the U.S. federal statutory corporate tax rate from 35% to 21%.  As a result of the reduction in anticipated tax rate, the Company remeasured its deferred tax positions as of December 31, 2017 at the new enacted tax rate, and accordingly, recorded tax expense of &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;$12,523,000&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt; in 2017 from the associated write-down of its deferred tax assets.  In 2018, the Company recorded an increase in tax expense of &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;$3,240,000&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt; from the write-down of its deferred tax assets primarily relating to guidance under the Tax Act regarding stock-based compensation.&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-bottom:10px;padding-top:6px;text-align:justify;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;The Tax Act subjects unrepatriated foreign earnings to a one-time transition tax, regardless of the Company's financial statement assertion related to indefinite reinvestment or whether the Company ultimately repatriates any of the foreign earnings, for which the Company recorded estimated tax expense of &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;$101,379,000&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt; in 2017.  In 2018, the Company revised its estimate of the one-time transition tax and recorded a decrease in tax expense of &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;$11,028,000&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;, which resulted in a revised estimate for the one-time transition tax of &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;$90,351,000&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;.&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:120%;text-align:justify;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;The Tax Act replaces the current system of taxing U.S. corporations on repatriated foreign earnings with a partial territorial system that provides a 100% dividends-received deduction to domestic corporations for foreign-source dividends received from 10% or more owned foreign corporations. The Company recorded a decrease in tax expense of $3,843,000 in 2017 from the reversal of the tax effect of a 2016 dividend paid in 2017 from a wholly-owned foreign subsidiary to its domestic entity.&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-bottom:10px;padding-top:6px;text-align:justify;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-style:italic;text-decoration:underline;"&gt;Other Discrete Tax Events&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-bottom:10px;padding-top:6px;text-align:justify;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;The effective tax rate also included a decrease in tax expense of &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;$6,472,000&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt; in 2019, &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;$8,488,000&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt; in 2018, and &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;$38,569,000&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt; in 2017 related to stock options, primarily from the excess tax benefit arising from the difference between the deduction for tax purposes and the compensation cost recognized for financial reporting purposes from stock option exercises.  The Company cannot predict the level of stock option exercises by employees in future periods.&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-bottom:10px;padding-top:6px;text-align:justify;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Other discrete tax events included a net decrease in tax expense of $&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;1,932,000&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt; in 2019, $&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;1,847,000&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt; in 2018, and &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;$2,502,000&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt; in 2017, consisting primarily of the expiration of the statutes of limitations for certain reserves for income tax uncertainties and the final true-up of the prior year's tax accrual upon filing the related tax returns.&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-bottom:10px;padding-top:6px;text-align:justify;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;The Company is tax resident in numerous jurisdictions around the world and has identified its major tax jurisdictions as the United States, Ireland, and China.  Management has determined that earnings from its legal entity in China will remain indefinitely reinvested to provide local funding for growth, and that earnings from all other jurisdictions will not be indefinitely reinvested.  As of December 31, 2019 and 2018, &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;$370,953,000&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt; and &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;$446,346,000&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;, respectively, of the Company&#x2019;s cash, cash equivalents, and investments were held by foreign subsidiaries and were primarily denominated in U.S. Dollars.&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Interest and penalties included in income tax expense were &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;$116,000&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;, &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;$91,000&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;, and &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;$71,000&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt; in 2019, 2018, and 2017, respectively.&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;On January 1, 2018, the Company adopted Accounting Standard Update (ASU) 2016-16, "Income Taxes - Intra-Entity Transfers of Assets Other than Inventory."  This ASU requires the recognition of deferred income taxes for an intra-entity transfer of an asset other than inventory.  As a result of this ASU, the Company recorded &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;$5,961,000&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt; through a cumulative-effect adjustment directly to retained earnings at the beginning of fiscal year 2018.&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-style:italic;text-decoration:underline;"&gt;Tax Reserves&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&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="line-height:120%;font-size:10pt;"&gt;&lt;div style="padding-left:0px;text-indent:0px;line-height:normal;padding-top:10px;"&gt;&lt;table cellpadding="0" cellspacing="0" style="font-family:Times New Roman;font-size:10pt;width:99.80506822612085%;border-collapse:collapse;text-align:left;"&gt;&lt;tr&gt;&lt;td colspan="4"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="width:82%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:16%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Balance of reserve for income taxes as of December 31, 2017&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;6,749&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Gross amounts of increases in unrecognized tax benefits as a result of tax positions taken in prior periods&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;69&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Gross amounts of increases in unrecognized tax benefits as a result of tax positions taken in the current period&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;1,499&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&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;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;(1,023&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;)&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Balance of reserve for income taxes as of December 31, 2018&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;7,294&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Gross amounts of increases in unrecognized tax benefits as a result of tax positions taken in prior periods&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;199&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Gross amounts of increases in unrecognized tax benefits as a result of tax positions taken in the current period&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;5,259&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&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;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;(1,161&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;)&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Balance of reserve for income taxes as of December 31, 2019&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;11,591&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;border-top:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;The Company&#x2019;s reserve for income taxes, including gross interest and penalties, was &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;$12,591,000&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt; as of December 31, 2019, which included &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;$11,563,000&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt; classified as a non-current liability and &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;$1,028,000&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt; recorded as a reduction to non-current deferred tax assets.  The Company's reserve for income taxes, including gross interest and penalties, was &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;$8,134,000&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt; as of December 31, 2018, which included &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;$7,106,000&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt; classified as a non-current liability and &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;$1,028,000&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt; recorded as a reduction to non-current deferred tax assets.  The amount of gross interest and penalties included in these balances was &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;$1,000,000&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt; and &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;$840,000&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt; as of December&#160;31, 2019 and December&#160;31, 2018, 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 &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;$1,300,000&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt; to &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;$1,400,000&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt; over the next twelve months.&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;The Company has defined its major tax jurisdictions as the United States, Ireland, and China, and within the United States, Massachusetts.  Within the United States, the tax years 2016 through 2019 remain open to examination by the Internal Revenue Service and various state taxing authorities.  The tax years 2015 through 2019 remain open to examination by various taxing authorities in other jurisdictions in which the Company operates. &lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:6px;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-style:italic;text-decoration:underline;"&gt;Deferred Tax Assets and Liabilities&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:6px;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Deferred tax assets and liabilities, presented on a gross basis by jurisdiction, consisted of the following (in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:120%;font-size:10pt;"&gt;&lt;div style="padding-left:0px;text-indent:0px;line-height:normal;padding-top:10px;"&gt;&lt;table cellpadding="0" cellspacing="0" style="font-family:Times New Roman;font-size:10pt;width:99.80506822612085%;border-collapse:collapse;text-align:left;"&gt;&lt;tr&gt;&lt;td colspan="8"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="width:67%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:14%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:14%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="7" style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;span style="font-family:Arial;font-size:8pt;font-weight:bold;"&gt;December&#160;31,&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:8pt;"&gt;&lt;span style="font-family:inherit;font-size:8pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;span style="font-family:Arial;font-size:8pt;font-weight:bold;"&gt;2019&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;span style="font-family:Arial;font-size:8pt;"&gt;2018&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Non-current gross deferred tax assets:&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Intangible asset in connection with change in tax structure&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;437,500&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;&#x2014;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Stock-based compensation expense&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;15,042&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;13,818&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Federal and state tax credit carryforwards&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;8,491&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;7,395&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Foreign net operating losses&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;4,286&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;&#x2014;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Depreciation&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;3,522&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;2,475&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Inventory and revenue related&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;2,934&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;3,233&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Bonuses, commissions, and other compensation&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;1,609&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;5,470&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Other&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;3,550&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;2,425&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Gross non-current deferred tax assets&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;476,934&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-top:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;34,816&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-top:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Valuation allowance&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;(7,312&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;)&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;(6,112&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;)&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;469,622&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;28,704&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;height:18px;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;height:18px;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;height:18px;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;height:18px;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Non-current gross deferred tax liabilities:&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;GILTI tax basis differences in connection with change in tax structure&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;(350,000&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;)&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;&#x2014;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Other GILTI tax basis differences&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;(2,446&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;)&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;&#x2014;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Nondeductible intangible assets&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;&#x2014;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;(44&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;)&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Other&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;&#x2014;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;(962&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:1px solid #000000;padding-right:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;)&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;(352,446&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;)&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;(1,006&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;)&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;In 2019, the Company recorded a valuation allowance of &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;$1,200,000&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt; for state research and development tax credits that were 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.  In addition, the Company had &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;$9,519,000&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt; of state research and development tax credit carryforwards, net of federal tax, as of December&#160;31, &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;2019&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;, which will begin to expire in 2020.&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&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;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Cash paid for income taxes totaled &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;$13,443,000&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt; in &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;2019&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;, &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;$41,430,000&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt; in &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;2018&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;, and &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;$11,802,000&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt; in &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;2017&lt;/span&gt;.</us-gaap:IncomeTaxDisclosureTextBlock>
    <us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesDomestic
      contextRef="FD2019Q4YTD"
      decimals="0"
      id="d9073545e643-wk-Fact-11DD5C0779C868A0D5938095A1859BA0"
      unitRef="usd">31396000</us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesDomestic>
    <us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesDomestic
      contextRef="FD2018Q4YTD"
      decimals="0"
      id="d9073545e651-wk-Fact-F68BFF50F9FEA8AF53C08095A18F6777"
      unitRef="usd">39042000</us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesDomestic>
    <us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesDomestic
      contextRef="FD2017Q4YTD"
      decimals="0"
      id="d9073545e659-wk-Fact-C204A0B1498A7668312E8095A18520A9"
      unitRef="usd">30345000</us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesDomestic>
    <us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign
      contextRef="FD2019Q4YTD"
      decimals="0"
      id="d9073545e668-wk-Fact-1949DC9E0F05BA17692C8095A1854F08"
      unitRef="usd">131598000</us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign>
    <us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign
      contextRef="FD2018Q4YTD"
      decimals="0"
      id="d9073545e676-wk-Fact-21DFC52329AA8B5C647F8095A17393C9"
      unitRef="usd">195532000</us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign>
    <us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign
      contextRef="FD2017Q4YTD"
      decimals="0"
      id="d9073545e684-wk-Fact-CEEFA3D39B515E6307548095A1859195"
      unitRef="usd">236119000</us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign>
    <us-gaap:ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock
      contextRef="FD2019Q4YTD"
      id="TextSelection-106657A67F7B8E1D8CF88095A1A8F336-0-wk-Fact-BEB818B80AB83A11FE188095A1852A36">&lt;div style="line-height:120%;padding-top:6px;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Income tax expense consisted of the following (in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:120%;font-size:10pt;"&gt;&lt;div style="padding-left:0px;text-indent:0px;line-height:normal;padding-top:10px;"&gt;&lt;table cellpadding="0" cellspacing="0" style="font-family:Times New Roman;font-size:10pt;width:99.80506822612085%;border-collapse:collapse;text-align:left;"&gt;&lt;tr&gt;&lt;td colspan="12"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="width:50%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:14%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:14%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:14%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:8pt;"&gt;&lt;span style="font-family:inherit;font-size:8pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="11" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;span style="font-family:Arial;font-size:8pt;font-weight:bold;"&gt;Year Ended December&#160;31,&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:8pt;"&gt;&lt;span style="font-family:inherit;font-size:8pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;span style="font-family:Arial;font-size:8pt;font-weight:bold;"&gt;2019&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;span style="font-family:Arial;font-size:8pt;"&gt;2018&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;span style="font-family:Arial;font-size:8pt;"&gt;2017&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Current:&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="11" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Federal&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;15,854&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;10,624&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;78,152&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;State&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;2,108&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;(879&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;)&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;2,687&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Foreign&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;30,670&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;6,307&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;7,624&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;48,632&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;16,052&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;border-top:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;88,463&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Deferred:&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Federal&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;352,808&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;(1,271&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;)&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;1,569&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;State&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;183&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;554&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;(639&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;)&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Foreign&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;(442,494&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;)&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;(28&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;)&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;359&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;(89,503&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;)&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;(745&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:1px solid #000000;padding-right:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;)&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;1,289&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:top;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:top;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;(40,871&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:top;border-bottom:3px double #000000;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;)&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:top;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:top;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;15,307&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;border-top:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:top;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:top;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;89,752&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;border-top:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;</us-gaap:ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock>
    <us-gaap:CurrentFederalTaxExpenseBenefit
      contextRef="FD2019Q4YTD"
      decimals="-3"
      id="d9073545e923-wk-Fact-2C58955572760AB24D688095A17BF177"
      unitRef="usd">15854000</us-gaap:CurrentFederalTaxExpenseBenefit>
    <us-gaap:CurrentFederalTaxExpenseBenefit
      contextRef="FD2018Q4YTD"
      decimals="-3"
      id="d9073545e942-wk-Fact-30DE3FBB5CB0FA99DF688095A1794CF9"
      unitRef="usd">10624000</us-gaap:CurrentFederalTaxExpenseBenefit>
    <us-gaap:CurrentFederalTaxExpenseBenefit
      contextRef="FD2017Q4YTD"
      decimals="-3"
      id="d9073545e961-wk-Fact-B682E26ACF9CA81514178095A174F85E"
      unitRef="usd">78152000</us-gaap:CurrentFederalTaxExpenseBenefit>
    <us-gaap:CurrentStateAndLocalTaxExpenseBenefit
      contextRef="FD2019Q4YTD"
      decimals="-3"
      id="d9073545e977-wk-Fact-84CB07AE8CAEAF83DEE98095A17AA4DA"
      unitRef="usd">2108000</us-gaap:CurrentStateAndLocalTaxExpenseBenefit>
    <us-gaap:CurrentStateAndLocalTaxExpenseBenefit
      contextRef="FD2018Q4YTD"
      decimals="-3"
      id="d9073545e996-wk-Fact-8D6B66B61D7A9F8BAF768095A17A24DA"
      unitRef="usd">-879000</us-gaap:CurrentStateAndLocalTaxExpenseBenefit>
    <us-gaap:CurrentStateAndLocalTaxExpenseBenefit
      contextRef="FD2017Q4YTD"
      decimals="-3"
      id="d9073545e1016-wk-Fact-0692CD556AFE7100EB438095A17AFF45"
      unitRef="usd">2687000</us-gaap:CurrentStateAndLocalTaxExpenseBenefit>
    <us-gaap:CurrentForeignTaxExpenseBenefit
      contextRef="FD2019Q4YTD"
      decimals="-3"
      id="d9073545e1037-wk-Fact-76404505AD4DA70009878095A17AFE47"
      unitRef="usd">30670000</us-gaap:CurrentForeignTaxExpenseBenefit>
    <us-gaap:CurrentForeignTaxExpenseBenefit
      contextRef="FD2018Q4YTD"
      decimals="-3"
      id="d9073545e1056-wk-Fact-F702B8C5D26656BFF1548095A1791409"
      unitRef="usd">6307000</us-gaap:CurrentForeignTaxExpenseBenefit>
    <us-gaap:CurrentForeignTaxExpenseBenefit
      contextRef="FD2017Q4YTD"
      decimals="-3"
      id="d9073545e1075-wk-Fact-A812B94065C0329E07258095A17A9A9F"
      unitRef="usd">7624000</us-gaap:CurrentForeignTaxExpenseBenefit>
    <us-gaap:CurrentIncomeTaxExpenseBenefit
      contextRef="FD2019Q4YTD"
      decimals="-3"
      id="d9073545e1096-wk-Fact-1F9B0097D76FC7C8CBD18095A17B177C"
      unitRef="usd">48632000</us-gaap:CurrentIncomeTaxExpenseBenefit>
    <us-gaap:CurrentIncomeTaxExpenseBenefit
      contextRef="FD2018Q4YTD"
      decimals="-3"
      id="d9073545e1115-wk-Fact-376265B31630F1387ACE8095A17412C2"
      unitRef="usd">16052000</us-gaap:CurrentIncomeTaxExpenseBenefit>
    <us-gaap:CurrentIncomeTaxExpenseBenefit
      contextRef="FD2017Q4YTD"
      decimals="-3"
      id="d9073545e1134-wk-Fact-A331279F6643CF750B208095A17AE99B"
      unitRef="usd">88463000</us-gaap:CurrentIncomeTaxExpenseBenefit>
    <us-gaap:DeferredFederalIncomeTaxExpenseBenefit
      contextRef="FD2019Q4YTD"
      decimals="-3"
      id="d9073545e1217-wk-Fact-C6B73FFA0A9096F6E8958095A17A7E12"
      unitRef="usd">352808000</us-gaap:DeferredFederalIncomeTaxExpenseBenefit>
    <us-gaap:DeferredFederalIncomeTaxExpenseBenefit
      contextRef="FD2018Q4YTD"
      decimals="-3"
      id="d9073545e1236-wk-Fact-7FA3E094C1473AD33A708095A17B906B"
      unitRef="usd">-1271000</us-gaap:DeferredFederalIncomeTaxExpenseBenefit>
    <us-gaap:DeferredFederalIncomeTaxExpenseBenefit
      contextRef="FD2017Q4YTD"
      decimals="-3"
      id="d9073545e1256-wk-Fact-23B732051A425DF0AE238095A1748751"
      unitRef="usd">1569000</us-gaap:DeferredFederalIncomeTaxExpenseBenefit>
    <us-gaap:DeferredStateAndLocalIncomeTaxExpenseBenefit
      contextRef="FD2019Q4YTD"
      decimals="-3"
      id="d9073545e1277-wk-Fact-61B63B3B7A4DBDDA7B968095A17AAD10"
      unitRef="usd">183000</us-gaap:DeferredStateAndLocalIncomeTaxExpenseBenefit>
    <us-gaap:DeferredStateAndLocalIncomeTaxExpenseBenefit
      contextRef="FD2018Q4YTD"
      decimals="-3"
      id="d9073545e1296-wk-Fact-0C7554F084F4240C8A9D8095A17A9D4B"
      unitRef="usd">554000</us-gaap:DeferredStateAndLocalIncomeTaxExpenseBenefit>
    <us-gaap:DeferredStateAndLocalIncomeTaxExpenseBenefit
      contextRef="FD2017Q4YTD"
      decimals="-3"
      id="d9073545e1315-wk-Fact-943462D51022261B44E38095A17BF980"
      unitRef="usd">-639000</us-gaap:DeferredStateAndLocalIncomeTaxExpenseBenefit>
    <us-gaap:DeferredForeignIncomeTaxExpenseBenefit
      contextRef="FD2019Q4YTD"
      decimals="-3"
      id="d9073545e1337-wk-Fact-6628A1FA50416C95A8058095A17995D8"
      unitRef="usd">-442494000</us-gaap:DeferredForeignIncomeTaxExpenseBenefit>
    <us-gaap:DeferredForeignIncomeTaxExpenseBenefit
      contextRef="FD2018Q4YTD"
      decimals="-3"
      id="d9073545e1357-wk-Fact-736F5CF285AA3AEC7D5B8095A1746F5E"
      unitRef="usd">-28000</us-gaap:DeferredForeignIncomeTaxExpenseBenefit>
    <us-gaap:DeferredForeignIncomeTaxExpenseBenefit
      contextRef="FD2017Q4YTD"
      decimals="-3"
      id="d9073545e1377-wk-Fact-F34779176D363D3CD5168095A17AD292"
      unitRef="usd">359000</us-gaap:DeferredForeignIncomeTaxExpenseBenefit>
    <us-gaap:DeferredIncomeTaxExpenseBenefit
      contextRef="FD2019Q4YTD"
      decimals="-3"
      id="d9073545e1399-wk-Fact-2BA06045614C194217898095A17AEE60"
      unitRef="usd">-89503000</us-gaap:DeferredIncomeTaxExpenseBenefit>
    <us-gaap:DeferredIncomeTaxExpenseBenefit
      contextRef="FD2018Q4YTD"
      decimals="-3"
      id="d9073545e1419-wk-Fact-EE9176FFA522F539552B8095A17AD035"
      unitRef="usd">-745000</us-gaap:DeferredIncomeTaxExpenseBenefit>
    <us-gaap:DeferredIncomeTaxExpenseBenefit
      contextRef="FD2017Q4YTD"
      decimals="-3"
      id="d9073545e1439-wk-Fact-715581F883DA252AA40B8095A174347F"
      unitRef="usd">1289000</us-gaap:DeferredIncomeTaxExpenseBenefit>
    <us-gaap:IncomeTaxExpenseBenefit
      contextRef="FD2019Q4YTD"
      decimals="-3"
      id="d9073545e1465-wk-Fact-F330DB1560316A224D428095A18EC1D6"
      unitRef="usd">-40871000</us-gaap:IncomeTaxExpenseBenefit>
    <us-gaap:IncomeTaxExpenseBenefit
      contextRef="FD2018Q4YTD"
      decimals="-3"
      id="d9073545e1485-wk-Fact-874D0B25503039A801968095A17B9ED6"
      unitRef="usd">15307000</us-gaap:IncomeTaxExpenseBenefit>
    <us-gaap:IncomeTaxExpenseBenefit
      contextRef="FD2017Q4YTD"
      decimals="-3"
      id="d9073545e1504-wk-Fact-3C978299D4B7227ABE098095A17CACD6"
      unitRef="usd">89752000</us-gaap:IncomeTaxExpenseBenefit>
    <us-gaap:ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock
      contextRef="FD2019Q4YTD"
      id="TextSelection-FD07273DB0790165AAE88095A1A8730A-0-wk-Fact-A54F0227E4F6D7F967F28095A190BEA5">&lt;div style="line-height:120%;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&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 style="padding-left:0px;text-indent:0px;line-height:normal;padding-top:10px;"&gt;&lt;table cellpadding="0" cellspacing="0" style="font-family:Times New Roman;font-size:10pt;width:100%;border-collapse:collapse;text-align:left;"&gt;&lt;tr&gt;&lt;td colspan="9"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="width:62%;"/&gt;&lt;td style="width:11%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:11%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:11%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:8pt;"&gt;&lt;span style="font-family:inherit;font-size:8pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="8" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;span style="font-family:Arial;font-size:8pt;font-weight:bold;"&gt;Year&#160;Ended&#160;December&#160;31,&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:8pt;"&gt;&lt;span style="font-family:inherit;font-size:8pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;span style="font-family:Arial;font-size:8pt;font-weight:bold;"&gt;2019&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;span style="font-family:Arial;font-size:8pt;"&gt;2018&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;span style="font-family:Arial;font-size:8pt;"&gt;2017&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Income tax expense at U.S. federal statutory corporate tax rate&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;21&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&#160;%&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;21&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&#160;%&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;35&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&#160;%&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;State income taxes, net of federal benefit&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;2&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;1&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;&#x2014;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Foreign tax rate differential&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;(9&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;)&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;(9&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;)&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;(27&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;)&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Tax credit&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;(1&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;)&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;&#x2014;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;(1&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;)&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Discrete tax benefit related to employee stock options&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;(4&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;)&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;(4&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;)&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;(14&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;)&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Discrete tax expense (benefit) related to Tax Act&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;&#x2014;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;(3&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;)&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;36&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Discrete tax expense related to write-down of deferred tax assets &lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;&#x2014;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;&#x2014;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;5&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Discrete tax expense related to migration of acquired IP&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;18&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;&#x2014;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;&#x2014;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Discrete tax (benefit) related to change in tax structure&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;(268&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;)&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;&#x2014;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;&#x2014;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Discrete tax expense related to GILTI impact of change in tax structure&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;214&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;&#x2014;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;&#x2014;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Other discrete tax events&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;(1&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;)&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;&#x2014;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;(1&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;)&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Other&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;3&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;1&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;1&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Income tax expense&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;(25&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;)%&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;7&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&#160;%&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;34&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&#160;%&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;</us-gaap:ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock>
    <us-gaap:EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate
      contextRef="FD2019Q4YTD"
      decimals="INF"
      id="d9073545e1648-wk-Fact-77F0821580B1B52B71258095A17B988A"
      unitRef="number">0.21</us-gaap:EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate>
    <us-gaap:EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate
      contextRef="FD2018Q4YTD"
      decimals="INF"
      id="d9073545e1663-wk-Fact-F1A01BBCEF1BCE4D7F708095A1725185"
      unitRef="number">0.21</us-gaap:EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate>
    <us-gaap:EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate
      contextRef="FD2017Q4YTD"
      decimals="INF"
      id="d9073545e1678-wk-Fact-FE304AC229A2613E17F38095A17B212C"
      unitRef="number">0.35</us-gaap:EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate>
    <us-gaap:EffectiveIncomeTaxRateReconciliationStateAndLocalIncomeTaxes
      contextRef="FD2019Q4YTD"
      decimals="2"
      id="d9073545e1694-wk-Fact-B977B826ADF1DF3E68E68095A171E08E"
      unitRef="number">0.02</us-gaap:EffectiveIncomeTaxRateReconciliationStateAndLocalIncomeTaxes>
    <us-gaap:EffectiveIncomeTaxRateReconciliationStateAndLocalIncomeTaxes
      contextRef="FD2018Q4YTD"
      decimals="2"
      id="d9073545e1708-wk-Fact-A2EB397CF52B506A02498095A17B63D3"
      unitRef="number">0.01</us-gaap:EffectiveIncomeTaxRateReconciliationStateAndLocalIncomeTaxes>
    <us-gaap:EffectiveIncomeTaxRateReconciliationStateAndLocalIncomeTaxes
      contextRef="FD2017Q4YTD"
      decimals="2"
      id="d9073545e1722-wk-Fact-646E5F943CBBFD0189088095A17B006C"
      unitRef="number">0</us-gaap:EffectiveIncomeTaxRateReconciliationStateAndLocalIncomeTaxes>
    <us-gaap:EffectiveIncomeTaxRateReconciliationForeignIncomeTaxRateDifferential
      contextRef="FD2019Q4YTD"
      decimals="2"
      id="d9073545e1737-wk-Fact-4AABDB51EDCA1FA3195C8095A1855A5E"
      unitRef="number">-0.09</us-gaap:EffectiveIncomeTaxRateReconciliationForeignIncomeTaxRateDifferential>
    <us-gaap:EffectiveIncomeTaxRateReconciliationForeignIncomeTaxRateDifferential
      contextRef="FD2018Q4YTD"
      decimals="2"
      id="d9073545e1752-wk-Fact-7C99A936AD03FA59FC558095A184031F"
      unitRef="number">-0.09</us-gaap:EffectiveIncomeTaxRateReconciliationForeignIncomeTaxRateDifferential>
    <us-gaap:EffectiveIncomeTaxRateReconciliationForeignIncomeTaxRateDifferential
      contextRef="FD2017Q4YTD"
      decimals="2"
      id="d9073545e1767-wk-Fact-EE75BF7C76206ADB7ED48095A17B8186"
      unitRef="number">-0.27</us-gaap:EffectiveIncomeTaxRateReconciliationForeignIncomeTaxRateDifferential>
    <us-gaap:EffectiveIncomeTaxRateReconciliationTaxCredits
      contextRef="FD2019Q4YTD"
      decimals="2"
      id="d9073545e1783-wk-Fact-2E197303CFFBF4D13E368095A17BC2CA"
      unitRef="number">0.01</us-gaap:EffectiveIncomeTaxRateReconciliationTaxCredits>
    <us-gaap:EffectiveIncomeTaxRateReconciliationTaxCredits
      contextRef="FD2018Q4YTD"
      decimals="2"
      id="d9073545e1798-wk-Fact-B3796F2F7B8CB56AB7D68095A17B6820"
      unitRef="number">0</us-gaap:EffectiveIncomeTaxRateReconciliationTaxCredits>
    <us-gaap:EffectiveIncomeTaxRateReconciliationTaxCredits
      contextRef="FD2017Q4YTD"
      decimals="2"
      id="d9073545e1812-wk-Fact-7507620F5E1C9F8DCA718095A1853047"
      unitRef="number">0.01</us-gaap:EffectiveIncomeTaxRateReconciliationTaxCredits>
    <us-gaap:EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitPercent
      contextRef="FD2019Q4YTD"
      decimals="2"
      id="d9073545e1828-wk-Fact-AC7CE8E9C042E94B901F8095A185C62B"
      unitRef="number">0.04</us-gaap:EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitPercent>
    <us-gaap:EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitPercent
      contextRef="FD2018Q4YTD"
      decimals="2"
      id="d9073545e1843-wk-Fact-881B2D9A242CF47E94138095A1851803"
      unitRef="number">0.04</us-gaap:EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitPercent>
    <us-gaap:EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitPercent
      contextRef="FD2017Q4YTD"
      decimals="2"
      id="d9073545e1858-wk-Fact-BA45C7599FF58336D7D18095A185C980"
      unitRef="number">0.14</us-gaap:EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitPercent>
    <cgnx:EffectiveIncomeTaxRateReconciliationDiscreteTaxExpenseTaxAndJobsActPercent
      contextRef="FD2019Q4YTD"
      decimals="2"
      id="d9073545e1874-wk-Fact-F5ACC7DDDEEF65FA54518095A17B7B12"
      unitRef="number">0</cgnx:EffectiveIncomeTaxRateReconciliationDiscreteTaxExpenseTaxAndJobsActPercent>
    <cgnx:EffectiveIncomeTaxRateReconciliationDiscreteTaxExpenseTaxAndJobsActPercent
      contextRef="FD2018Q4YTD"
      decimals="2"
      id="d9073545e1888-wk-Fact-BB195F59E26455E9D3AF8095A1965121"
      unitRef="number">-0.03</cgnx:EffectiveIncomeTaxRateReconciliationDiscreteTaxExpenseTaxAndJobsActPercent>
    <cgnx:EffectiveIncomeTaxRateReconciliationDiscreteTaxExpenseTaxAndJobsActPercent
      contextRef="FD2017Q4YTD"
      decimals="2"
      id="d9073545e1903-wk-Fact-4A3C88911DE026B871A08095A17A2E01"
      unitRef="number">0.36</cgnx:EffectiveIncomeTaxRateReconciliationDiscreteTaxExpenseTaxAndJobsActPercent>
    <us-gaap:EffectiveIncomeTaxRateReconciliationChangeInDeferredTaxAssetsValuationAllowance
      contextRef="FD2019Q4YTD"
      decimals="2"
      id="d9073545e1918-wk-Fact-EA98E032FBF80268C8548095A184B4CC"
      unitRef="number">0</us-gaap:EffectiveIncomeTaxRateReconciliationChangeInDeferredTaxAssetsValuationAllowance>
    <us-gaap:EffectiveIncomeTaxRateReconciliationChangeInDeferredTaxAssetsValuationAllowance
      contextRef="FD2018Q4YTD"
      decimals="2"
      id="d9073545e1932-wk-Fact-DE7385FD00E9B5193A028095A17B1DF9"
      unitRef="number">0</us-gaap:EffectiveIncomeTaxRateReconciliationChangeInDeferredTaxAssetsValuationAllowance>
    <us-gaap:EffectiveIncomeTaxRateReconciliationChangeInDeferredTaxAssetsValuationAllowance
      contextRef="FD2017Q4YTD"
      decimals="2"
      id="d9073545e1946-wk-Fact-87003E3189F55D508C308095A197CE86"
      unitRef="number">0.05</us-gaap:EffectiveIncomeTaxRateReconciliationChangeInDeferredTaxAssetsValuationAllowance>
    <cgnx:EffectiveIncomeTaxRateReconciliationMigrationofAcquiredIntellectualProperty
      contextRef="FD2019Q4YTD"
      decimals="2"
      id="d9073545e1961-wk-Fact-D64E29C4E9E46E99C874FDAC80B8CFA7"
      unitRef="number">0.18</cgnx:EffectiveIncomeTaxRateReconciliationMigrationofAcquiredIntellectualProperty>
    <cgnx:EffectiveIncomeTaxRateReconciliationMigrationofAcquiredIntellectualProperty
      contextRef="FD2018Q4YTD"
      decimals="2"
      id="d9073545e1975-wk-Fact-A0C3CA971AB32BD14379FDAC80B02839"
      unitRef="number">0</cgnx:EffectiveIncomeTaxRateReconciliationMigrationofAcquiredIntellectualProperty>
    <cgnx:EffectiveIncomeTaxRateReconciliationMigrationofAcquiredIntellectualProperty
      contextRef="FD2017Q4YTD"
      decimals="2"
      id="d9073545e1989-wk-Fact-9F3B718842702E14A560FDAC80A9C43E"
      unitRef="number">0</cgnx:EffectiveIncomeTaxRateReconciliationMigrationofAcquiredIntellectualProperty>
    <us-gaap:EffectiveIncomeTaxRateReconciliationChangeInEnactedTaxRate
      contextRef="FD2019Q4YTD"
      decimals="2"
      id="d9073545e2004-wk-Fact-107E79CB2613CF49C27DFD2D4B8B0C75"
      unitRef="number">-2.68</us-gaap:EffectiveIncomeTaxRateReconciliationChangeInEnactedTaxRate>
    <us-gaap:EffectiveIncomeTaxRateReconciliationChangeInEnactedTaxRate
      contextRef="FD2018Q4YTD"
      decimals="2"
      id="d9073545e2019-wk-Fact-76899726FEE3239D6A2AFD2D4BB6F32C"
      unitRef="number">0</us-gaap:EffectiveIncomeTaxRateReconciliationChangeInEnactedTaxRate>
    <us-gaap:EffectiveIncomeTaxRateReconciliationChangeInEnactedTaxRate
      contextRef="FD2017Q4YTD"
      decimals="2"
      id="d9073545e2033-wk-Fact-1F1FB3C1B21C40863272FD2D4BF277A6"
      unitRef="number">0</us-gaap:EffectiveIncomeTaxRateReconciliationChangeInEnactedTaxRate>
    <cgnx:EffectiveIncomeTaxRateReconciliationTaxCutsandJobsActGlobalIntangibleLowTaxIncomePercent
      contextRef="FD2019Q4YTD"
      decimals="2"
      id="d9073545e2049-wk-Fact-5481D7A58EA5BCB7E6D2FDB2B56853A3"
      unitRef="number">2.14</cgnx:EffectiveIncomeTaxRateReconciliationTaxCutsandJobsActGlobalIntangibleLowTaxIncomePercent>
    <cgnx:EffectiveIncomeTaxRateReconciliationTaxCutsandJobsActGlobalIntangibleLowTaxIncomePercent
      contextRef="FD2018Q4YTD"
      decimals="2"
      id="d9073545e2063-wk-Fact-6CF744430F1C1906C048FDB2B56DAD32"
      unitRef="number">0</cgnx:EffectiveIncomeTaxRateReconciliationTaxCutsandJobsActGlobalIntangibleLowTaxIncomePercent>
    <cgnx:EffectiveIncomeTaxRateReconciliationTaxCutsandJobsActGlobalIntangibleLowTaxIncomePercent
      contextRef="FD2017Q4YTD"
      decimals="2"
      id="d9073545e2077-wk-Fact-A31DEA616846BA10422AFDB2B642D519"
      unitRef="number">0</cgnx:EffectiveIncomeTaxRateReconciliationTaxCutsandJobsActGlobalIntangibleLowTaxIncomePercent>
    <us-gaap:EffectiveIncomeTaxRateReconciliationOtherReconcilingItemsPercent
      contextRef="FD2019Q4YTD"
      decimals="2"
      id="d9073545e2092-wk-Fact-0781F5BBEDB39D11B5098095A18515B4"
      unitRef="number">-0.01</us-gaap:EffectiveIncomeTaxRateReconciliationOtherReconcilingItemsPercent>
    <us-gaap:EffectiveIncomeTaxRateReconciliationOtherReconcilingItemsPercent
      contextRef="FD2018Q4YTD"
      decimals="2"
      id="d9073545e2107-wk-Fact-A94143176F36876444ED8095A17BBC3F"
      unitRef="number">0</us-gaap:EffectiveIncomeTaxRateReconciliationOtherReconcilingItemsPercent>
    <us-gaap:EffectiveIncomeTaxRateReconciliationOtherReconcilingItemsPercent
      contextRef="FD2017Q4YTD"
      decimals="2"
      id="d9073545e2121-wk-Fact-7F94C2A265862B9A755D8095A185C25A"
      unitRef="number">-0.01</us-gaap:EffectiveIncomeTaxRateReconciliationOtherReconcilingItemsPercent>
    <us-gaap:EffectiveIncomeTaxRateReconciliationOtherAdjustments
      contextRef="FD2019Q4YTD"
      decimals="2"
      id="d9073545e2137-wk-Fact-10DDF70F270DF5BE52658095A185FAA3"
      unitRef="number">0.03</us-gaap:EffectiveIncomeTaxRateReconciliationOtherAdjustments>
    <us-gaap:EffectiveIncomeTaxRateReconciliationOtherAdjustments
      contextRef="FD2018Q4YTD"
      decimals="2"
      id="d9073545e2151-wk-Fact-DBA8961A4747B69513168095A17B7131"
      unitRef="number">0.01</us-gaap:EffectiveIncomeTaxRateReconciliationOtherAdjustments>
    <us-gaap:EffectiveIncomeTaxRateReconciliationOtherAdjustments
      contextRef="FD2017Q4YTD"
      decimals="2"
      id="d9073545e2165-wk-Fact-4290923F2961CEEFF6048095A17C143D"
      unitRef="number">0.01</us-gaap:EffectiveIncomeTaxRateReconciliationOtherAdjustments>
    <us-gaap:EffectiveIncomeTaxRateContinuingOperations
      contextRef="FD2019Q4YTD"
      decimals="2"
      id="d9073545e2180-wk-Fact-E9FB4CB0188848E003B08095A17BECC1"
      unitRef="number">-0.25</us-gaap:EffectiveIncomeTaxRateContinuingOperations>
    <us-gaap:EffectiveIncomeTaxRateContinuingOperations
      contextRef="FD2018Q4YTD"
      decimals="2"
      id="d9073545e2195-wk-Fact-DB147CA3A878464DC7D48095A1858C0B"
      unitRef="number">0.07</us-gaap:EffectiveIncomeTaxRateContinuingOperations>
    <us-gaap:EffectiveIncomeTaxRateContinuingOperations
      contextRef="FD2017Q4YTD"
      decimals="2"
      id="d9073545e2210-wk-Fact-BE5C90D9478B72F3F5588095A19585A6"
      unitRef="number">0.34</us-gaap:EffectiveIncomeTaxRateContinuingOperations>
    <us-gaap:ScheduleOfChangeInAccountingEstimateTextBlock
      contextRef="FD2019Q4YTD"
      id="TextSelection-9C49AD079D265B7C6BB2FDD766DB6A1D-0-wk-Fact-65F83A82AA04DAFEABB8FDD8A1081465">&lt;div style="line-height:120%;padding-bottom:10px;text-align:justify;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;The change in this accounting policy impacted the Company's 2019 reported results as follows (in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-bottom:10px;text-align:center;font-size:10pt;"&gt;&lt;div style="padding-left:0px;text-indent:0px;line-height:normal;padding-top:10px;"&gt;&lt;table cellpadding="0" cellspacing="0" style="font-family:Times New Roman;font-size:10pt;margin-left:auto;margin-right:auto;width:100%;border-collapse:collapse;text-align:left;"&gt;&lt;tr&gt;&lt;td colspan="12"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="width:54%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:14%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:14%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:10%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;text-decoration:underline;"&gt;Statement of Operations&lt;/span&gt;&lt;/div&gt;&lt;div style="font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="11" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:center;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&#160;Year Ended December 31, 2019&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:center;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;As reported under the new accounting policy&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:center;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;As computed under the previous accounting policy&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:center;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Effect of change&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Income before income tax expense&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;162,994&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;162,994&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;&#x2014;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Income tax expense (benefit)&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;(40,871&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;)&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;(393,317&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;)&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;352,446&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Net income&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;203,865&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;border-top:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;556,311&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;border-top:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;(352,446&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;)&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;height:12px;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;height:12px;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;height:12px;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;height:12px;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;height:12px;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;height:12px;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="4" style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Net income per weighted-average common and common-equivalent share:&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Basic&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;1.19&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;3.25&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;(2.06&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-right:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;)&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Diluted&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;1.16&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;3.17&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;(2.01&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;)&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-bottom:10px;text-align:center;font-size:10pt;"&gt;&lt;div style="padding-left:0px;text-indent:0px;line-height:normal;padding-top:10px;"&gt;&lt;table cellpadding="0" cellspacing="0" style="font-family:Times New Roman;font-size:10pt;margin-left:auto;margin-right:auto;width:100%;border-collapse:collapse;text-align:left;"&gt;&lt;tr&gt;&lt;td colspan="12"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="width:54%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:14%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:14%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:10%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;text-decoration:underline;"&gt;Balance Sheet&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="11" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:center;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&#160;December 31, 2019&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:center;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;As reported under the new accounting policy&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:center;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;As computed under the previous accounting policy&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:center;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:center;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Effect of change&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Deferred tax assets&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;449,519&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;469,621&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;(20,102&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;)&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Deferred tax liabilities&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;332,344&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;&#x2014;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;332,344&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-bottom:10px;text-align:center;font-size:10pt;"&gt;&lt;div style="padding-left:0px;text-indent:0px;line-height:normal;padding-top:10px;"&gt;&lt;table cellpadding="0" cellspacing="0" style="font-family:Times New Roman;font-size:10pt;margin-left:auto;margin-right:auto;width:100%;border-collapse:collapse;text-align:left;"&gt;&lt;tr&gt;&lt;td colspan="12"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="width:54%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:14%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:14%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:10%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;text-decoration:underline;"&gt;Statement of Shareholders' Equity&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="11" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:center;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&#160;Year Ended December 31, 2019&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:center;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;As reported under the new accounting policy&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:center;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;As computed under the previous accounting policy&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:center;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:center;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Effect of change&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Retained earnings&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;753,268&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;1,105,714&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;(352,446&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;)&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;</us-gaap:ScheduleOfChangeInAccountingEstimateTextBlock>
    <us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments
      contextRef="FD2019Q4YTD"
      decimals="-3"
      id="d9073545e2459-wk-Fact-11356283C594F0D652E68095A17C4913"
      unitRef="usd">162994000</us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments>
    <us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments
      contextRef="FD2019Q4YTD_srt_RestatementAxis_srt_ScenarioPreviouslyReportedMember"
      decimals="-3"
      id="d9073545e2478-wk-Fact-F7AA8E47616A0BBB2D93FDE95BC2ED8C"
      unitRef="usd">162994000</us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments>
    <us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments
      contextRef="FD2019Q4YTD_srt_RestatementAxis_srt_RestatementAdjustmentMember_us-gaap_ChangeInAccountingEstimateByTypeAxis_cgnx_ChangeinGlobalIntangibleLowTaxedIncomeMember"
      decimals="-3"
      id="d9073545e2497-wk-Fact-177B46A614C9358F7862FDE95BBD2567"
      unitRef="usd">0</us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments>
    <us-gaap:IncomeTaxExpenseBenefit
      contextRef="FD2019Q4YTD"
      decimals="-3"
      id="d9073545e2513-wk-Fact-F330DB1560316A224D428095A18EC1D6"
      unitRef="usd">-40871000</us-gaap:IncomeTaxExpenseBenefit>
    <us-gaap:IncomeTaxExpenseBenefit
      contextRef="FD2019Q4YTD_srt_RestatementAxis_srt_ScenarioPreviouslyReportedMember"
      decimals="-3"
      id="d9073545e2533-wk-Fact-A63CFB3124F702ED980BFDEA2F8389B0"
      unitRef="usd">-393317000</us-gaap:IncomeTaxExpenseBenefit>
    <us-gaap:IncomeTaxExpenseBenefit
      contextRef="FD2019Q4YTD_srt_RestatementAxis_srt_RestatementAdjustmentMember_us-gaap_ChangeInAccountingEstimateByTypeAxis_cgnx_ChangeinGlobalIntangibleLowTaxedIncomeMember"
      decimals="-3"
      id="d9073545e2553-wk-Fact-4CD0ABEB548BC56FB252FDEA2F9904BF"
      unitRef="usd">352446000</us-gaap:IncomeTaxExpenseBenefit>
    <us-gaap:NetIncomeLoss
      contextRef="FD2019Q4YTD"
      decimals="-3"
      id="d9073545e2579-wk-Fact-7A2F7F14108749D162188095A17CA207"
      unitRef="usd">203865000</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="FD2019Q4YTD_srt_RestatementAxis_srt_ScenarioPreviouslyReportedMember"
      decimals="-3"
      id="d9073545e2598-wk-Fact-3EB7EB5BB5FB6A20A80DFDEA556F1E05"
      unitRef="usd">556311000</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="FD2019Q4YTD_srt_RestatementAxis_srt_RestatementAdjustmentMember_us-gaap_ChangeInAccountingEstimateByTypeAxis_cgnx_ChangeinGlobalIntangibleLowTaxedIncomeMember"
      decimals="-3"
      id="d9073545e2617-wk-Fact-56E5AB522E61DE134B2CFDEA55748D50"
      unitRef="usd">-352446000</us-gaap:NetIncomeLoss>
    <us-gaap:EarningsPerShareBasic
      contextRef="FD2019Q4YTD"
      decimals="2"
      id="d9073545e2763-wk-Fact-EFE5EB1E695D8201B7288095A17CDD88"
      unitRef="usdPerShare">1.19</us-gaap:EarningsPerShareBasic>
    <us-gaap:EarningsPerShareBasic
      contextRef="FD2019Q4YTD_srt_RestatementAxis_srt_ScenarioPreviouslyReportedMember"
      decimals="2"
      id="d9073545e2782-wk-Fact-DAD9805E07F430384CCEFDEA714A4120"
      unitRef="usdPerShare">3.25</us-gaap:EarningsPerShareBasic>
    <us-gaap:EarningsPerShareBasic
      contextRef="FD2019Q4YTD_srt_RestatementAxis_srt_RestatementAdjustmentMember_us-gaap_ChangeInAccountingEstimateByTypeAxis_cgnx_ChangeinGlobalIntangibleLowTaxedIncomeMember"
      decimals="2"
      id="d9073545e2801-wk-Fact-D300B5D6C04C2180D2EEFDEA71512B07"
      unitRef="usdPerShare">-2.06</us-gaap:EarningsPerShareBasic>
    <us-gaap:EarningsPerShareDiluted
      contextRef="FD2019Q4YTD"
      decimals="2"
      id="d9073545e2823-wk-Fact-3ED4FD47A316C81069598095A18E3CB0"
      unitRef="usdPerShare">1.16</us-gaap:EarningsPerShareDiluted>
    <us-gaap:EarningsPerShareDiluted
      contextRef="FD2019Q4YTD_srt_RestatementAxis_srt_ScenarioPreviouslyReportedMember"
      decimals="2"
      id="d9073545e2842-wk-Fact-7277F667D712D7B4BE61FDEA88D66D7F"
      unitRef="usdPerShare">3.17</us-gaap:EarningsPerShareDiluted>
    <us-gaap:EarningsPerShareDiluted
      contextRef="FD2019Q4YTD_srt_RestatementAxis_srt_RestatementAdjustmentMember_us-gaap_ChangeInAccountingEstimateByTypeAxis_cgnx_ChangeinGlobalIntangibleLowTaxedIncomeMember"
      decimals="2"
      id="d9073545e2861-wk-Fact-1124931BED76CAD5F3A6FDEA88DA5ED5"
      unitRef="usdPerShare">-2.01</us-gaap:EarningsPerShareDiluted>
    <us-gaap:DeferredTaxAssetsNetNoncurrent
      contextRef="FI2019Q4"
      decimals="-3"
      id="d9073545e3091-wk-Fact-2D8FC969E128A40EF74E8095A1876609"
      unitRef="usd">449519000</us-gaap:DeferredTaxAssetsNetNoncurrent>
    <us-gaap:DeferredTaxAssetsNetNoncurrent
      contextRef="FI2019Q4_srt_RestatementAxis_srt_ScenarioPreviouslyReportedMember"
      decimals="-3"
      id="d9073545e3110-wk-Fact-C2C47120552CDEFF36EBFDEF01D8C4DE"
      unitRef="usd">469621000</us-gaap:DeferredTaxAssetsNetNoncurrent>
    <us-gaap:DeferredTaxAssetsNetNoncurrent
      contextRef="FI2019Q4_srt_RestatementAxis_srt_RestatementAdjustmentMember_us-gaap_ChangeInAccountingEstimateByTypeAxis_cgnx_ChangeinGlobalIntangibleLowTaxedIncomeMember"
      decimals="-3"
      id="d9073545e3129-wk-Fact-0F1A26933F5FEBD7CA0CFDEF031D40E5"
      unitRef="usd">-20102000</us-gaap:DeferredTaxAssetsNetNoncurrent>
    <us-gaap:DeferredIncomeTaxLiabilities
      contextRef="FI2019Q4"
      decimals="-3"
      id="d9073545e3151-wk-Fact-AC39BDE4FE52653694C6FDF1D97031AD"
      unitRef="usd">332344000</us-gaap:DeferredIncomeTaxLiabilities>
    <us-gaap:DeferredIncomeTaxLiabilities
      contextRef="FI2019Q4_srt_RestatementAxis_srt_ScenarioPreviouslyReportedMember"
      decimals="-3"
      id="d9073545e3170-wk-Fact-28E6BD09AF473C35DA02FDF1D9638986"
      unitRef="usd">0</us-gaap:DeferredIncomeTaxLiabilities>
    <us-gaap:DeferredIncomeTaxLiabilities
      contextRef="FI2019Q4_srt_RestatementAxis_srt_RestatementAdjustmentMember_us-gaap_ChangeInAccountingEstimateByTypeAxis_cgnx_ChangeinGlobalIntangibleLowTaxedIncomeMember"
      decimals="-3"
      id="d9073545e3189-wk-Fact-4139568592E3B60281C1FDF1D9685C15"
      unitRef="usd">332344000</us-gaap:DeferredIncomeTaxLiabilities>
    <us-gaap:RetainedEarningsAccumulatedDeficit
      contextRef="FI2019Q4"
      decimals="-3"
      id="d9073545e3417-wk-Fact-B4B3C6B41A482608B4F88095A1872DF0"
      unitRef="usd">753268000</us-gaap:RetainedEarningsAccumulatedDeficit>
    <us-gaap:RetainedEarningsAccumulatedDeficit
      contextRef="FI2019Q4_srt_RestatementAxis_srt_ScenarioPreviouslyReportedMember"
      decimals="-3"
      id="d9073545e3436-wk-Fact-35A57C5FADD9ABC0CB43FDF5E279D37E"
      unitRef="usd">1105714000</us-gaap:RetainedEarningsAccumulatedDeficit>
    <us-gaap:RetainedEarningsAccumulatedDeficit
      contextRef="FI2019Q4_srt_RestatementAxis_srt_RestatementAdjustmentMember_us-gaap_ChangeInAccountingEstimateByTypeAxis_cgnx_ChangeinGlobalIntangibleLowTaxedIncomeMember"
      decimals="-3"
      id="d9073545e3455-wk-Fact-6059BA4F2DEF77D72204FDF5E272A60C"
      unitRef="usd">-352446000</us-gaap:RetainedEarningsAccumulatedDeficit>
    <cgnx:DeferredTaxAssetsForeignTaxStructureChange
      contextRef="FI2019Q4"
      decimals="-5"
      id="d9073545e3474-wk-Fact-9AA2B9D7255CD603154FFE0C2E4D7910"
      unitRef="usd">437500000</cgnx:DeferredTaxAssetsForeignTaxStructureChange>
    <cgnx:DeferredTaxLiabilitiesTaxCutsAndJobsActGlobalIntangibleLowTaxIncome
      contextRef="FI2019Q4"
      decimals="-3"
      id="d9073545e3478-wk-Fact-BD4A018C444DA254204C172F04A8473E"
      unitRef="usd">350000000</cgnx:DeferredTaxLiabilitiesTaxCutsAndJobsActGlobalIntangibleLowTaxIncome>
    <us-gaap:IncomeTaxReconciliationForeignIncomeTaxRateDifferential
      contextRef="FD2019Q4QTD"
      decimals="-5"
      id="d9073545e3482-wk-Fact-AAE0B354A1B2B84B43140BD1E56BABB0"
      unitRef="usd">87500000</us-gaap:IncomeTaxReconciliationForeignIncomeTaxRateDifferential>
    <cgnx:EffectiveIncomeTaxRateReconciliationMigrationofAcquiredIntellectualProperty
      contextRef="FD2019Q4YTD_us-gaap_BusinessAcquisitionAxis_cgnx_SualabCo.Ltd.Member"
      decimals="-3"
      id="d9073545e3489-wk-Fact-873DE0EC3FE155C84962FDFE70E05DA0"
      unitRef="number">28528000</cgnx:EffectiveIncomeTaxRateReconciliationMigrationofAcquiredIntellectualProperty>
    <us-gaap:UnrecognizedTaxBenefits
      contextRef="FI2019Q4_us-gaap_BusinessAcquisitionAxis_cgnx_SualabCo.Ltd.Member"
      decimals="-5"
      id="d9073545e3493-wk-Fact-0B4214C4601988A24091FE02D5ED2705"
      unitRef="usd">3700000</us-gaap:UnrecognizedTaxBenefits>
    <cgnx:TaxCutsAndJobsActOf2017IncompleteAccountingChangeInTaxRateDeferredTaxAssetProvisionalIncomeTaxExpense
      contextRef="FD2018Q4YTD"
      decimals="-3"
      id="d9073545e3503-wk-Fact-6801FFC68BB40A7A3851D7F567665A0F"
      unitRef="usd">12523000</cgnx:TaxCutsAndJobsActOf2017IncompleteAccountingChangeInTaxRateDeferredTaxAssetProvisionalIncomeTaxExpense>
    <cgnx:TaxCutsAndJobsActOf2017IncompleteAccountingChangeInTaxRateDeferredTaxAssetProvisionalIncomeTaxExpense
      contextRef="FD2019Q4YTD"
      decimals="-3"
      id="d9073545e3507-wk-Fact-58338B05E02EF2303844D7F5B277E711"
      unitRef="usd">3240000</cgnx:TaxCutsAndJobsActOf2017IncompleteAccountingChangeInTaxRateDeferredTaxAssetProvisionalIncomeTaxExpense>
    <cgnx:TaxCutsAndJobsActOf2017IncompleteAccountingTransitionTaxForAccumulatedForeignEarningsProvisionalIncomeTaxExpense
      contextRef="FD2017Q4YTD"
      decimals="-3"
      id="d9073545e3514-wk-Fact-73F0FCADFD53D55D2A29D7F62537614E"
      unitRef="usd">101379000</cgnx:TaxCutsAndJobsActOf2017IncompleteAccountingTransitionTaxForAccumulatedForeignEarningsProvisionalIncomeTaxExpense>
    <cgnx:TaxCutsAndJobsActOf2017IncompleteAccountingTransitionTaxForAccumulatedForeignEarningsProvisionalIncomeTaxExpense
      contextRef="FD2018Q4YTD"
      decimals="-3"
      id="d9073545e3518-wk-Fact-57AEE3FBB5AC33FA5572D7F6C9F1FC6A"
      unitRef="usd">11028000</cgnx:TaxCutsAndJobsActOf2017IncompleteAccountingTransitionTaxForAccumulatedForeignEarningsProvisionalIncomeTaxExpense>
    <cgnx:TaxCutsAndJobsActOf2017TransitionTaxForAccumulatedForeignEarningsLiability
      contextRef="FI2018Q4"
      decimals="-3"
      id="d9073545e3522-wk-Fact-B522615B9122CDC2EB72D7F65A56B6D7"
      unitRef="usd">90351000</cgnx:TaxCutsAndJobsActOf2017TransitionTaxForAccumulatedForeignEarningsLiability>
    <us-gaap:EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitAmount
      contextRef="FD2019Q4YTD"
      decimals="0"
      id="d9073545e3536-wk-Fact-33A3E32ABCA72616442E8095A197957E"
      unitRef="usd">6472000</us-gaap:EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitAmount>
    <us-gaap:EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitAmount
      contextRef="FD2018Q4YTD"
      decimals="0"
      id="d9073545e3540-wk-Fact-795F97695DB4982447BF8095A18573D3"
      unitRef="usd">8488000</us-gaap:EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitAmount>
    <us-gaap:EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitAmount
      contextRef="FD2017Q4YTD"
      decimals="0"
      id="d9073545e3544-wk-Fact-001859B3D96B45A348178095A185BDCD"
      unitRef="usd">38569000</us-gaap:EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitAmount>
    <us-gaap:OtherTaxExpenseBenefit
      contextRef="FD2019Q4YTD"
      decimals="0"
      id="d9073545e3551-wk-Fact-3799D44965C747B98583169FE8A04ECD"
      unitRef="usd">1932000</us-gaap:OtherTaxExpenseBenefit>
    <us-gaap:OtherTaxExpenseBenefit
      contextRef="FD2018Q4YTD"
      decimals="0"
      id="d9073545e3555-wk-Fact-A956AB2982E866C80C6116B05109F788"
      unitRef="usd">1847000</us-gaap:OtherTaxExpenseBenefit>
    <us-gaap:OtherTaxExpenseBenefit
      contextRef="FD2017Q4YTD"
      decimals="0"
      id="d9073545e3559-wk-Fact-6E6FE2D4239207788BFE16B06B6E37AA"
      unitRef="usd">2502000</us-gaap:OtherTaxExpenseBenefit>
    <us-gaap:Cash
      contextRef="FI2019Q4_srt_StatementGeographicalAxis_cgnx_OtherThantheU.SMember"
      decimals="0"
      id="d9073545e3566-wk-Fact-654932FD0771832436E28095A1855FBD"
      unitRef="usd">370953000</us-gaap:Cash>
    <us-gaap:Cash
      contextRef="FI2018Q4_srt_StatementGeographicalAxis_cgnx_OtherThantheU.SMember"
      decimals="0"
      id="d9073545e3570-wk-Fact-D11269B5B91629AAA9348095A197B227"
      unitRef="usd">446346000</us-gaap:Cash>
    <us-gaap:UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestExpense
      contextRef="FD2019Q4YTD"
      decimals="0"
      id="d9073545e3577-wk-Fact-14A2361F989D0DD5C6408095A1852F21"
      unitRef="usd">116000</us-gaap:UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestExpense>
    <us-gaap:UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestExpense
      contextRef="FD2018Q4YTD"
      decimals="0"
      id="d9073545e3581-wk-Fact-313A85DEC7A19A9D25B98095A19891A5"
      unitRef="usd">91000</us-gaap:UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestExpense>
    <us-gaap:UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestExpense
      contextRef="FD2017Q4YTD"
      decimals="0"
      id="d9073545e3585-wk-Fact-66A07998616B277591AF8095A198E92E"
      unitRef="usd">71000</us-gaap:UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestExpense>
    <us-gaap:CumulativeEffectOnRetainedEarningsNetOfTax1
      contextRef="D2018Q1Jan1_us-gaap_AdjustmentsForNewAccountingPronouncementsAxis_us-gaap_AccountingStandardsUpdate201616Member"
      decimals="0"
      id="d9073545e3592-wk-Fact-0B6413D57D00CC03805D8095A17290A3"
      unitRef="usd">5961000</us-gaap:CumulativeEffectOnRetainedEarningsNetOfTax1>
    <us-gaap:SummaryOfIncomeTaxContingenciesTextBlock
      contextRef="FD2019Q4YTD"
      id="TextSelection-EC20DC1B9B0F9D3B9D7B8095A1A8A27E-0-wk-Fact-73FDB7DD40B12AF3C0DD8095A1986BB1">&lt;div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&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="line-height:120%;font-size:10pt;"&gt;&lt;div style="padding-left:0px;text-indent:0px;line-height:normal;padding-top:10px;"&gt;&lt;table cellpadding="0" cellspacing="0" style="font-family:Times New Roman;font-size:10pt;width:99.80506822612085%;border-collapse:collapse;text-align:left;"&gt;&lt;tr&gt;&lt;td colspan="4"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="width:82%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:16%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Balance of reserve for income taxes as of December 31, 2017&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;6,749&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Gross amounts of increases in unrecognized tax benefits as a result of tax positions taken in prior periods&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;69&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Gross amounts of increases in unrecognized tax benefits as a result of tax positions taken in the current period&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;1,499&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&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;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;(1,023&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;)&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Balance of reserve for income taxes as of December 31, 2018&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;7,294&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Gross amounts of increases in unrecognized tax benefits as a result of tax positions taken in prior periods&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;199&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Gross amounts of increases in unrecognized tax benefits as a result of tax positions taken in the current period&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;5,259&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&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;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;(1,161&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;)&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Balance of reserve for income taxes as of December 31, 2019&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;11,591&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;border-top:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;</us-gaap:SummaryOfIncomeTaxContingenciesTextBlock>
    <us-gaap:UnrecognizedTaxBenefits
      contextRef="FI2017Q4"
      decimals="-3"
      id="d9073545e3635-wk-Fact-4E3913CED0CBDEE1609B8095A17B8426"
      unitRef="usd">6749000</us-gaap:UnrecognizedTaxBenefits>
    <us-gaap:UnrecognizedTaxBenefitsIncreasesResultingFromPriorPeriodTaxPositions
      contextRef="FD2018Q4YTD"
      decimals="-3"
      id="d9073545e3650-wk-Fact-FB6089B6A962AEF54E618095A17A710F"
      unitRef="usd">69000</us-gaap:UnrecognizedTaxBenefitsIncreasesResultingFromPriorPeriodTaxPositions>
    <us-gaap:UnrecognizedTaxBenefitsIncreasesResultingFromCurrentPeriodTaxPositions
      contextRef="FD2018Q4YTD"
      decimals="-3"
      id="d9073545e3670-wk-Fact-F92DC062C1BA6B89EE318095A17B634E"
      unitRef="usd">1499000</us-gaap:UnrecognizedTaxBenefitsIncreasesResultingFromCurrentPeriodTaxPositions>
    <us-gaap:UnrecognizedTaxBenefitsReductionsResultingFromLapseOfApplicableStatuteOfLimitations
      contextRef="FD2018Q4YTD"
      decimals="-3"
      id="d9073545e3690-wk-Fact-619611499AE5BCA277388095A17BBF0C"
      unitRef="usd">1023000</us-gaap:UnrecognizedTaxBenefitsReductionsResultingFromLapseOfApplicableStatuteOfLimitations>
    <us-gaap:UnrecognizedTaxBenefits
      contextRef="FI2018Q4"
      decimals="-3"
      id="d9073545e3711-wk-Fact-8869AA9D37BF80F3C53D8095A1738EFE"
      unitRef="usd">7294000</us-gaap:UnrecognizedTaxBenefits>
    <us-gaap:UnrecognizedTaxBenefitsPeriodIncreaseDecrease
      contextRef="FD2019Q4YTD"
      decimals="-3"
      id="d9073545e3731-wk-Fact-76AFA16D5D9DD1ADDDF38095A1733F12"
      unitRef="usd">199000</us-gaap:UnrecognizedTaxBenefitsPeriodIncreaseDecrease>
    <us-gaap:UnrecognizedTaxBenefitsIncreasesResultingFromCurrentPeriodTaxPositions
      contextRef="FD2019Q4YTD"
      decimals="-3"
      id="d9073545e3751-wk-Fact-C6D7D5C699E247805DE88095A1730D01"
      unitRef="usd">5259000</us-gaap:UnrecognizedTaxBenefitsIncreasesResultingFromCurrentPeriodTaxPositions>
    <us-gaap:UnrecognizedTaxBenefitsReductionsResultingFromLapseOfApplicableStatuteOfLimitations
      contextRef="FD2019Q4YTD"
      decimals="-3"
      id="d9073545e3771-wk-Fact-9C30F44EC042FE10F8848095A17BDCBC"
      unitRef="usd">1161000</us-gaap:UnrecognizedTaxBenefitsReductionsResultingFromLapseOfApplicableStatuteOfLimitations>
    <us-gaap:UnrecognizedTaxBenefits
      contextRef="FI2019Q4"
      decimals="-3"
      id="d9073545e3797-wk-Fact-EF9C0F2CCA4B2FA5049E8095A1733A23"
      unitRef="usd">11591000</us-gaap:UnrecognizedTaxBenefits>
    <us-gaap:DeferredTaxLiabilitiesGrossNoncurrent
      contextRef="FI2019Q4"
      decimals="0"
      id="d9073545e3815-wk-Fact-9BAAA3E07235465230948095A17289CD"
      unitRef="usd">12591000</us-gaap:DeferredTaxLiabilitiesGrossNoncurrent>
    <us-gaap:LiabilityForUncertainTaxPositionsNoncurrent
      contextRef="FI2019Q4"
      decimals="0"
      id="d9073545e3819-wk-Fact-CB33FDED55453B9FEEC78095A1973B40"
      unitRef="usd">11563000</us-gaap:LiabilityForUncertainTaxPositionsNoncurrent>
    <cgnx:Unrecognizedtaxbenefitshownasareductiontononcurrentdeferredtaxassets
      contextRef="FI2019Q4"
      decimals="0"
      id="d9073545e3823-wk-Fact-31A76C0C66E31EF48EFB8095A18650E0"
      unitRef="usd">1028000</cgnx:Unrecognizedtaxbenefitshownasareductiontononcurrentdeferredtaxassets>
    <us-gaap:DeferredTaxLiabilitiesGrossNoncurrent
      contextRef="FI2018Q4"
      decimals="0"
      id="d9073545e3827-wk-Fact-63D5EB9180792EDA93948095A1727CDD"
      unitRef="usd">8134000</us-gaap:DeferredTaxLiabilitiesGrossNoncurrent>
    <us-gaap:LiabilityForUncertainTaxPositionsNoncurrent
      contextRef="FI2018Q4"
      decimals="0"
      id="d9073545e3831-wk-Fact-1256D772A5A703B754EA8095A173C879"
      unitRef="usd">7106000</us-gaap:LiabilityForUncertainTaxPositionsNoncurrent>
    <cgnx:Unrecognizedtaxbenefitshownasareductiontononcurrentdeferredtaxassets
      contextRef="FI2018Q4"
      decimals="0"
      id="d9073545e3836-wk-Fact-0EA1FE5E6CF08B0F0A128095A185A359"
      unitRef="usd">1028000</cgnx:Unrecognizedtaxbenefitshownasareductiontononcurrentdeferredtaxassets>
    <us-gaap:UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestAccrued
      contextRef="FI2019Q4"
      decimals="0"
      id="d9073545e3840-wk-Fact-3153B00C273772645F7C8095A172CEDF"
      unitRef="usd">1000000</us-gaap:UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestAccrued>
    <us-gaap:UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestAccrued
      contextRef="FI2018Q4"
      decimals="0"
      id="d9073545e3844-wk-Fact-4311816F8A6A92599C9E8095A197614E"
      unitRef="usd">840000</us-gaap:UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestAccrued>
    <cgnx:MinimumDecreaseInIncomeTaxExpenseDueToReleaseInReserves
      contextRef="FD2019Q4YTD"
      decimals="0"
      id="d9073545e3848-wk-Fact-5AAA73AF7A57805D79ED8095A1989F21"
      unitRef="usd">1300000</cgnx:MinimumDecreaseInIncomeTaxExpenseDueToReleaseInReserves>
    <cgnx:MaximumDecreaseInIncomeTaxExpenseDueToReleaseInReserves
      contextRef="FD2019Q4YTD"
      decimals="0"
      id="d9073545e3852-wk-Fact-1CFD815F942F1D3F86218095A1855256"
      unitRef="usd">1400000</cgnx:MaximumDecreaseInIncomeTaxExpenseDueToReleaseInReserves>
    <us-gaap:ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock
      contextRef="FD2019Q4YTD"
      id="TextSelection-1A7CD022AF7319C1E4138095A1A85EB6-0-wk-Fact-3D0C879D623DBF5B1B5A8095A197FB4C">&lt;div style="line-height:120%;padding-top:6px;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Deferred tax assets and liabilities, presented on a gross basis by jurisdiction, consisted of the following (in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:120%;font-size:10pt;"&gt;&lt;div style="padding-left:0px;text-indent:0px;line-height:normal;padding-top:10px;"&gt;&lt;table cellpadding="0" cellspacing="0" style="font-family:Times New Roman;font-size:10pt;width:99.80506822612085%;border-collapse:collapse;text-align:left;"&gt;&lt;tr&gt;&lt;td colspan="8"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="width:67%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:14%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:14%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="7" style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;span style="font-family:Arial;font-size:8pt;font-weight:bold;"&gt;December&#160;31,&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:8pt;"&gt;&lt;span style="font-family:inherit;font-size:8pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;span style="font-family:Arial;font-size:8pt;font-weight:bold;"&gt;2019&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;span style="font-family:Arial;font-size:8pt;"&gt;2018&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Non-current gross deferred tax assets:&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Intangible asset in connection with change in tax structure&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;437,500&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;&#x2014;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Stock-based compensation expense&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;15,042&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;13,818&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Federal and state tax credit carryforwards&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;8,491&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;7,395&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Foreign net operating losses&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;4,286&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;&#x2014;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Depreciation&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;3,522&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;2,475&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Inventory and revenue related&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;2,934&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;3,233&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Bonuses, commissions, and other compensation&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;1,609&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;5,470&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Other&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;3,550&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;2,425&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Gross non-current deferred tax assets&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;476,934&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-top:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;34,816&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-top:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Valuation allowance&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;(7,312&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;)&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;(6,112&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;)&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;469,622&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;28,704&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;height:18px;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;height:18px;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;height:18px;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;height:18px;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Non-current gross deferred tax liabilities:&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;GILTI tax basis differences in connection with change in tax structure&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;(350,000&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;)&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;&#x2014;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Other GILTI tax basis differences&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;(2,446&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;)&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;&#x2014;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Nondeductible intangible assets&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;&#x2014;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;(44&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;)&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Other&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;&#x2014;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;(962&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:1px solid #000000;padding-right:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;)&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;(352,446&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;)&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;(1,006&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;)&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;</us-gaap:ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock>
    <cgnx:DeferredTaxAssetsIntangibleAssetChangeinTaxStructure
      contextRef="FI2019Q4"
      decimals="-3"
      id="d9073545e4026-wk-Fact-477DF04A5C1BA1CF1B2DC8F88601DDF0"
      unitRef="usd">437500000</cgnx:DeferredTaxAssetsIntangibleAssetChangeinTaxStructure>
    <cgnx:DeferredTaxAssetsIntangibleAssetChangeinTaxStructure
      contextRef="FI2018Q4"
      decimals="-3"
      id="d9073545e4045-wk-Fact-F3D0F711B613BFED8347FDC98EDB46CE"
      unitRef="usd">0</cgnx:DeferredTaxAssetsIntangibleAssetChangeinTaxStructure>
    <us-gaap:DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost
      contextRef="FI2019Q4"
      decimals="-3"
      id="d9073545e4060-wk-Fact-7A103465A997101D5EC28095A196BA1D"
      unitRef="usd">15042000</us-gaap:DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost>
    <us-gaap:DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost
      contextRef="FI2018Q4"
      decimals="-3"
      id="d9073545e4079-wk-Fact-07EB26588EC19FDB40D48095A19754A9"
      unitRef="usd">13818000</us-gaap:DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost>
    <us-gaap:DeferredTaxAssetsOperatingLossCarryforwardsDomestic
      contextRef="FI2019Q4"
      decimals="-3"
      id="d9073545e4099-wk-Fact-AADCAAABC861BCC991BF8095A1965387"
      unitRef="usd">8491000</us-gaap:DeferredTaxAssetsOperatingLossCarryforwardsDomestic>
    <us-gaap:DeferredTaxAssetsOperatingLossCarryforwardsDomestic
      contextRef="FI2018Q4"
      decimals="-3"
      id="d9073545e4118-wk-Fact-E25148BD032DB2F175268095A1978BD3"
      unitRef="usd">7395000</us-gaap:DeferredTaxAssetsOperatingLossCarryforwardsDomestic>
    <us-gaap:DeferredTaxAssetsOperatingLossCarryforwardsForeign
      contextRef="FI2019Q4"
      decimals="-3"
      id="d9073545e4138-wk-Fact-89242891A86E5B5E5660FDC6C2BB20ED"
      unitRef="usd">4286000</us-gaap:DeferredTaxAssetsOperatingLossCarryforwardsForeign>
    <us-gaap:DeferredTaxAssetsOperatingLossCarryforwardsForeign
      contextRef="FI2018Q4"
      decimals="-3"
      id="d9073545e4157-wk-Fact-80E0F5B9AA357FEAAE35FDC6C2B4389D"
      unitRef="usd">0</us-gaap:DeferredTaxAssetsOperatingLossCarryforwardsForeign>
    <cgnx:NoncurrentDeferredTaxAssetsDeprecation
      contextRef="FI2019Q4"
      decimals="-3"
      id="d9073545e4177-wk-Fact-BC3E87C5DEA4BA9561CCC8FA87138E29"
      unitRef="usd">3522000</cgnx:NoncurrentDeferredTaxAssetsDeprecation>
    <cgnx:NoncurrentDeferredTaxAssetsDeprecation
      contextRef="FI2018Q4"
      decimals="-3"
      id="d9073545e4196-wk-Fact-3DF77CFC2118BA1B5674C8FAA358F14C"
      unitRef="usd">2475000</cgnx:NoncurrentDeferredTaxAssetsDeprecation>
    <us-gaap:DeferredTaxAssetsInventory
      contextRef="FI2019Q4"
      decimals="-3"
      id="d9073545e4216-wk-Fact-D0C10D360E96FA85F7EAC8F806F04902"
      unitRef="usd">2934000</us-gaap:DeferredTaxAssetsInventory>
    <us-gaap:DeferredTaxAssetsInventory
      contextRef="FI2018Q4"
      decimals="-3"
      id="d9073545e4235-wk-Fact-DE129CBA63542268CECCC8F82BE3E5EA"
      unitRef="usd">3233000</us-gaap:DeferredTaxAssetsInventory>
    <us-gaap:DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsOther
      contextRef="FI2019Q4"
      decimals="-3"
      id="d9073545e4255-wk-Fact-339EA61A72EF1C2D272E8095A1980B7C"
      unitRef="usd">1609000</us-gaap:DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsOther>
    <us-gaap:DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsOther
      contextRef="FI2018Q4"
      decimals="-3"
      id="d9073545e4274-wk-Fact-7F48F6DBA5FA47649DCB8095A196450D"
      unitRef="usd">5470000</us-gaap:DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsOther>
    <cgnx:DeferredTaxAssetsOtherNoncurrent
      contextRef="FI2019Q4"
      decimals="-3"
      id="d9073545e4294-wk-Fact-EA21E1E90EB615B8356F8095A1979C54"
      unitRef="usd">3550000</cgnx:DeferredTaxAssetsOtherNoncurrent>
    <cgnx:DeferredTaxAssetsOtherNoncurrent
      contextRef="FI2018Q4"
      decimals="-3"
      id="d9073545e4313-wk-Fact-9E88A9791AA3832A0BCA8095A197EDA5"
      unitRef="usd">2425000</cgnx:DeferredTaxAssetsOtherNoncurrent>
    <us-gaap:DeferredTaxAssetsGrossNoncurrent
      contextRef="FI2019Q4"
      decimals="-3"
      id="d9073545e4334-wk-Fact-560C9D33F887970E52E28095A1963A9E"
      unitRef="usd">476934000</us-gaap:DeferredTaxAssetsGrossNoncurrent>
    <us-gaap:DeferredTaxAssetsGrossNoncurrent
      contextRef="FI2018Q4"
      decimals="-3"
      id="d9073545e4353-wk-Fact-973696FBBA4C2F1E32D98095A197F9AA"
      unitRef="usd">34816000</us-gaap:DeferredTaxAssetsGrossNoncurrent>
    <us-gaap:DeferredTaxAssetsValuationAllowanceNoncurrent
      contextRef="FI2019Q4"
      decimals="-3"
      id="d9073545e4373-wk-Fact-E9FF3A718F38D24BAAB18095A197EC9E"
      unitRef="usd">7312000</us-gaap:DeferredTaxAssetsValuationAllowanceNoncurrent>
    <us-gaap:DeferredTaxAssetsValuationAllowanceNoncurrent
      contextRef="FI2018Q4"
      decimals="-3"
      id="d9073545e4393-wk-Fact-C93300EC3FECAF76F2DA8095A19844D0"
      unitRef="usd">6112000</us-gaap:DeferredTaxAssetsValuationAllowanceNoncurrent>
    <us-gaap:DeferredTaxAssetsLiabilitiesNetNoncurrent
      contextRef="FI2019Q4"
      decimals="-3"
      id="d9073545e4419-wk-Fact-EB986891E4D74FAABFAD8095A1965C31"
      unitRef="usd">469622000</us-gaap:DeferredTaxAssetsLiabilitiesNetNoncurrent>
    <us-gaap:DeferredTaxAssetsLiabilitiesNetNoncurrent
      contextRef="FI2018Q4"
      decimals="-3"
      id="d9073545e4438-wk-Fact-81159A867D8C5B501E148095A196757E"
      unitRef="usd">28704000</us-gaap:DeferredTaxAssetsLiabilitiesNetNoncurrent>
    <cgnx:DeferredTaxLiabilitiesTaxCutsAndJobsActGlobalIntangibleLowTaxIncome
      contextRef="FI2019Q4"
      decimals="-3"
      id="d9073545e4540-wk-Fact-BD4A018C444DA254204C172F04A8473E"
      unitRef="usd">350000000</cgnx:DeferredTaxLiabilitiesTaxCutsAndJobsActGlobalIntangibleLowTaxIncome>
    <cgnx:DeferredTaxLiabilitiesTaxCutsAndJobsActGlobalIntangibleLowTaxIncome
      contextRef="FI2018Q4"
      decimals="-3"
      id="d9073545e4560-wk-Fact-2ABDE05D9BC9B2301FE1FDC545272347"
      unitRef="usd">0</cgnx:DeferredTaxLiabilitiesTaxCutsAndJobsActGlobalIntangibleLowTaxIncome>
    <cgnx:DeferredTaxLiabilitiesTaxCutsAndJobsActOtherGlobalIntangibleLowTaxIncome
      contextRef="FI2019Q4"
      decimals="-3"
      id="d9073545e4575-wk-Fact-813A77F350001315036B16B4569DA27D"
      unitRef="usd">2446000</cgnx:DeferredTaxLiabilitiesTaxCutsAndJobsActOtherGlobalIntangibleLowTaxIncome>
    <cgnx:DeferredTaxLiabilitiesTaxCutsAndJobsActOtherGlobalIntangibleLowTaxIncome
      contextRef="FI2018Q4"
      decimals="-3"
      id="d9073545e4595-wk-Fact-3549544550935FBFDFB416B477157916"
      unitRef="usd">0</cgnx:DeferredTaxLiabilitiesTaxCutsAndJobsActOtherGlobalIntangibleLowTaxIncome>
    <us-gaap:DeferredTaxLiabilitiesGoodwillAndIntangibleAssetsIntangibleAssets
      contextRef="FI2019Q4"
      decimals="-3"
      id="d9073545e4617-wk-Fact-5D6002EBFB881BC91CD4FDC2FA16CC0C"
      unitRef="usd">0</us-gaap:DeferredTaxLiabilitiesGoodwillAndIntangibleAssetsIntangibleAssets>
    <us-gaap:DeferredTaxLiabilitiesGoodwillAndIntangibleAssetsIntangibleAssets
      contextRef="FI2018Q4"
      decimals="-3"
      id="d9073545e4636-wk-Fact-CB1000B398F299B5D58BFDC2FA1D1870"
      unitRef="usd">44000</us-gaap:DeferredTaxLiabilitiesGoodwillAndIntangibleAssetsIntangibleAssets>
    <us-gaap:DeferredTaxLiabilitiesOther
      contextRef="FI2019Q4"
      decimals="-3"
      id="d9073545e4657-wk-Fact-22482CD11A8806B832EC8095A1967899"
      unitRef="usd">0</us-gaap:DeferredTaxLiabilitiesOther>
    <us-gaap:DeferredTaxLiabilitiesOther
      contextRef="FI2018Q4"
      decimals="-3"
      id="d9073545e4676-wk-Fact-00AAB48B8B7F15C3D3568095A197439E"
      unitRef="usd">962000</us-gaap:DeferredTaxLiabilitiesOther>
    <us-gaap:DeferredTaxLiabilitiesGrossCurrent
      contextRef="FI2019Q4"
      decimals="-3"
      id="d9073545e4702-wk-Fact-B5BDC6A1C6467BDCFA8F8095A196B730"
      unitRef="usd">352446000</us-gaap:DeferredTaxLiabilitiesGrossCurrent>
    <us-gaap:DeferredTaxLiabilitiesGrossCurrent
      contextRef="FI2018Q4"
      decimals="-3"
      id="d9073545e4722-wk-Fact-9F65032ADCCC0F45163B8095A19749F8"
      unitRef="usd">1006000</us-gaap:DeferredTaxLiabilitiesGrossCurrent>
    <us-gaap:DeferredTaxAssetsValuationAllowance
      contextRef="FI2019Q4_us-gaap_TaxCreditCarryforwardAxis_us-gaap_ResearchMember"
      decimals="0"
      id="d9073545e4741-wk-Fact-AC8E9440026AD6B8A70B8095A172C552"
      unitRef="usd">1200000</us-gaap:DeferredTaxAssetsValuationAllowance>
    <us-gaap:DeferredTaxAssetsTaxCreditCarryforwardsResearch
      contextRef="FI2019Q4_us-gaap_TaxCreditCarryforwardAxis_cgnx_StateResearchAndExperimentationMember"
      decimals="0"
      id="d9073545e4745-wk-Fact-FB8AF5C656465F5E385D8095A17C4BF6"
      unitRef="usd">9519000</us-gaap:DeferredTaxAssetsTaxCreditCarryforwardsResearch>
    <us-gaap:IncomeTaxesPaidNet
      contextRef="FD2019Q4YTD"
      decimals="0"
      id="d9073545e4759-wk-Fact-65F619ED81E1A7198AC08095A197B221"
      unitRef="usd">13443000</us-gaap:IncomeTaxesPaidNet>
    <us-gaap:IncomeTaxesPaidNet
      contextRef="FD2018Q4YTD"
      decimals="0"
      id="d9073545e4767-wk-Fact-E8F883DD58F340C9D6E78095A1730B6E"
      unitRef="usd">41430000</us-gaap:IncomeTaxesPaidNet>
    <us-gaap:IncomeTaxesPaidNet
      contextRef="FD2017Q4YTD"
      decimals="0"
      id="d9073545e4775-wk-Fact-1B000663C57AA7D5F1E08095A17B3C35"
      unitRef="usd">11802000</us-gaap:IncomeTaxesPaidNet>
    <us-gaap:EarningsPerShareTextBlock
      contextRef="FD2019Q4YTD"
      id="TextSelection-1D67AAA49869F5A658C38095A1A83E9B-0-wk-Fact-F8FDA550A4AD75035A1D8095A19872ED">Weighted Average Shares&lt;div style="line-height:120%;padding-top:6px;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Weighted-average shares were calculated as follows (in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:120%;font-size:10pt;"&gt;&lt;div style="padding-left:0px;text-indent:0px;line-height:normal;padding-top:10px;"&gt;&lt;table cellpadding="0" cellspacing="0" style="font-family:Times New Roman;font-size:10pt;width:99.80506822612085%;border-collapse:collapse;text-align:left;"&gt;&lt;tr&gt;&lt;td colspan="9"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="width:56%;"/&gt;&lt;td style="width:13%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:13%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:13%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:8pt;"&gt;&lt;span style="font-family:inherit;font-size:8pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="8" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;span style="font-family:Arial;font-size:8pt;font-weight:bold;"&gt;Year Ended December&#160;31,&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;span style="font-family:Arial;font-size:8pt;font-weight:bold;"&gt;2019&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;span style="font-family:Arial;font-size:8pt;"&gt;2018&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;span style="font-family:Arial;font-size:8pt;"&gt;2017&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Basic weighted-average common shares outstanding&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;171,194&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;172,333&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;border-top:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;173,287&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;border-top:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Effect of dilutive stock awards&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;4,075&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;5,073&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;6,264&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Diluted weighted-average common and common-equivalent shares outstanding&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;175,269&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;177,406&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;179,551&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Stock options to purchase &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;5,735,608&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;, &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;2,650,164&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;, and &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;3,363,141&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt; shares of common stock, on a weighted-average basis, were outstanding in &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;2019&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;, &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;2018&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;, and &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;2017&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;, respectively, but were not included in the calculation of dilutive net income per share because they were anti-dilutive. Restricted stock units totaling &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;13,092&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt; shares of common stock, on &lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;a weighted-average basis, were outstanding in 2019, but were not included in the calculation of dilutive net income per share because they were anti-dilutive.  There were no restricted stock units outstanding that were anti-dilutive in 2018 or 2017.&lt;/span&gt;&lt;/div&gt;</us-gaap:EarningsPerShareTextBlock>
    <us-gaap:ScheduleOfWeightedAverageNumberOfSharesTableTextBlock
      contextRef="FD2019Q4YTD"
      id="TextSelection-5234DBF5DED64AF1E19F8095A1A810EC-0-wk-Fact-11DF87553B54382AD1B28095A1980F16">&lt;div style="line-height:120%;padding-top:6px;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Weighted-average shares were calculated as follows (in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:120%;font-size:10pt;"&gt;&lt;div style="padding-left:0px;text-indent:0px;line-height:normal;padding-top:10px;"&gt;&lt;table cellpadding="0" cellspacing="0" style="font-family:Times New Roman;font-size:10pt;width:99.80506822612085%;border-collapse:collapse;text-align:left;"&gt;&lt;tr&gt;&lt;td colspan="9"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="width:56%;"/&gt;&lt;td style="width:13%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:13%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:13%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:8pt;"&gt;&lt;span style="font-family:inherit;font-size:8pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="8" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;span style="font-family:Arial;font-size:8pt;font-weight:bold;"&gt;Year Ended December&#160;31,&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;span style="font-family:Arial;font-size:8pt;font-weight:bold;"&gt;2019&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;span style="font-family:Arial;font-size:8pt;"&gt;2018&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;span style="font-family:Arial;font-size:8pt;"&gt;2017&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Basic weighted-average common shares outstanding&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;171,194&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;172,333&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;border-top:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;173,287&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;border-top:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Effect of dilutive stock awards&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;4,075&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;5,073&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;6,264&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Diluted weighted-average common and common-equivalent shares outstanding&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;175,269&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;177,406&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;179,551&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;</us-gaap:ScheduleOfWeightedAverageNumberOfSharesTableTextBlock>
    <us-gaap:WeightedAverageNumberOfSharesOutstandingBasic
      contextRef="FD2019Q4YTD"
      decimals="-3"
      id="d9064452e767-wk-Fact-7088F56A600431DA334F8095A18F2AB4"
      unitRef="shares">171194000</us-gaap:WeightedAverageNumberOfSharesOutstandingBasic>
    <us-gaap:WeightedAverageNumberOfSharesOutstandingBasic
      contextRef="FD2018Q4YTD"
      decimals="-3"
      id="d9064452e781-wk-Fact-D3C52957E5467B5121488095A18E5877"
      unitRef="shares">172333000</us-gaap:WeightedAverageNumberOfSharesOutstandingBasic>
    <us-gaap:WeightedAverageNumberOfSharesOutstandingBasic
      contextRef="FD2017Q4YTD"
      decimals="-3"
      id="d9064452e795-wk-Fact-F100B30FB31E7AE1BF208095A17B8FE2"
      unitRef="shares">173287000</us-gaap:WeightedAverageNumberOfSharesOutstandingBasic>
    <us-gaap:WeightedAverageNumberDilutedSharesOutstandingAdjustment
      contextRef="FD2019Q4YTD"
      decimals="-3"
      id="d9064452e810-wk-Fact-450123041FF15A58C3008095A1970F95"
      unitRef="shares">4075000</us-gaap:WeightedAverageNumberDilutedSharesOutstandingAdjustment>
    <us-gaap:WeightedAverageNumberDilutedSharesOutstandingAdjustment
      contextRef="FD2018Q4YTD"
      decimals="-3"
      id="d9064452e824-wk-Fact-A666B713FF00DF7A02AF8095A199BEA3"
      unitRef="shares">5073000</us-gaap:WeightedAverageNumberDilutedSharesOutstandingAdjustment>
    <us-gaap:WeightedAverageNumberDilutedSharesOutstandingAdjustment
      contextRef="FD2017Q4YTD"
      decimals="-3"
      id="d9064452e838-wk-Fact-33D3CA91C065F2AE60658095A198C684"
      unitRef="shares">6264000</us-gaap:WeightedAverageNumberDilutedSharesOutstandingAdjustment>
    <us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding
      contextRef="FD2019Q4YTD"
      decimals="-3"
      id="d9064452e853-wk-Fact-D5734F0FAB5E10C2BF8F8095A18E8C75"
      unitRef="shares">175269000</us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding>
    <us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding
      contextRef="FD2018Q4YTD"
      decimals="-3"
      id="d9064452e867-wk-Fact-8C961D180BA7FE998E388095A17C4AED"
      unitRef="shares">177406000</us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding>
    <us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding
      contextRef="FD2017Q4YTD"
      decimals="-3"
      id="d9064452e881-wk-Fact-F0CCA5ACB6DDF0BB1FA98095A18E3C36"
      unitRef="shares">179551000</us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding>
    <us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount
      contextRef="FD2019Q4YTD_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis_us-gaap_EmployeeStockOptionMember"
      decimals="0"
      id="d9064452e899-wk-Fact-4117423BECB481BF4B158095A1977385"
      unitRef="shares">5735608</us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount>
    <us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount
      contextRef="FD2018Q4YTD_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis_us-gaap_EmployeeStockOptionMember"
      decimals="0"
      id="d9064452e903-wk-Fact-B6FA46513F2A20BE323B8095A19834E2"
      unitRef="shares">2650164</us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount>
    <us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount
      contextRef="FD2017Q4YTD_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis_us-gaap_EmployeeStockOptionMember"
      decimals="0"
      id="d9064452e907-wk-Fact-82E74C14F5D1B42C7A218095A198E0BA"
      unitRef="shares">3363141</us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount>
    <us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount
      contextRef="FD2019Q4YTD_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis_us-gaap_RestrictedStockMember"
      decimals="0"
      id="d9064452e924-wk-Fact-9B300B2687978988600017384782D4F4"
      unitRef="shares">13092</us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount>
    <us-gaap:SegmentReportingDisclosureTextBlock
      contextRef="FD2019Q4YTD"
      id="TextSelection-E1E1B093FF819F8DDE228095A1A873FB-0-wk-Fact-D6E7361E5848FA308EF18095A17A48CD">Segment and Geographic Information&lt;div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;The Company operates in &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;one&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt; segment, machine vision technology.  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.  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="line-height:120%;padding-top:6px;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;The following table summarizes information about geographic areas (in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:120%;font-size:10pt;"&gt;&lt;div style="padding-left:0px;text-indent:0px;line-height:normal;padding-top:10px;"&gt;&lt;table cellpadding="0" cellspacing="0" style="font-family:Times New Roman;font-size:10pt;width:99.80506822612085%;border-collapse:collapse;text-align:left;"&gt;&lt;tr&gt;&lt;td colspan="20"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="width:31%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:11%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:11%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:11%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:11%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:11%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;span style="font-family:Arial;font-size:8pt;font-weight:bold;"&gt;United&#160;States&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;span style="font-family:Arial;font-size:8pt;font-weight:bold;"&gt;Europe&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;span style="font-family:Arial;font-size:8pt;font-weight:bold;"&gt;Greater China &lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;span style="font-family:Arial;font-size:8pt;font-weight:bold;"&gt;Other&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;span style="font-family:Arial;font-size:8pt;font-weight:bold;"&gt;Total&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Year Ended December 31, 2019&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Revenue&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;247,689&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;227,738&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;115,061&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;135,137&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;725,625&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Long-lived assets&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;68,496&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;21,691&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;1,487&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;3,602&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;95,276&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Year Ended December 31, 2018&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Revenue&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;231,760&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;311,914&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;123,708&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;138,956&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;806,338&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Long-lived assets&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;67,156&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;23,948&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;1,482&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;2,735&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;95,321&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Year Ended December 31, 2017&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Revenue&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;180,248&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;328,826&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;108,738&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;148,271&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;766,083&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Long-lived assets&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;53,983&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;22,437&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;1,594&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;2,525&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;80,539&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Revenue is presented geographically based upon the customer&#x2019;s country of domicile.  Revenue from a single customer accounted for &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;15%&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt; and &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;20%&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt; of total revenue in 2018 and 2017, respectively. Accounts receivable from the same customer accounted for &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;24%&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;, &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;30%&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;, and &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;40%&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt; of total accounts receivable as of December 31, 2019, 2018, and 2017, respectively. In 2019, no customer accounted for greater than 10% of total revenue.&lt;/span&gt;&lt;/div&gt;</us-gaap:SegmentReportingDisclosureTextBlock>
    <us-gaap:NumberOfReportableSegments
      contextRef="FD2019Q4YTD"
      decimals="INF"
      id="d9068546e643-wk-Fact-9E19FA7DF0B34FF0DE6B8095A1733177"
      unitRef="Segment">1</us-gaap:NumberOfReportableSegments>
    <us-gaap:ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsByGeographicalAreasTableTextBlock
      contextRef="FD2019Q4YTD"
      id="TextSelection-CEB1BF2B35A4B1D6CCE38095A1A894EF-0-wk-Fact-9D5C73563D7E0A36A2568095A1794DB1">&lt;div style="line-height:120%;padding-top:6px;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;The following table summarizes information about geographic areas (in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:120%;font-size:10pt;"&gt;&lt;div style="padding-left:0px;text-indent:0px;line-height:normal;padding-top:10px;"&gt;&lt;table cellpadding="0" cellspacing="0" style="font-family:Times New Roman;font-size:10pt;width:99.80506822612085%;border-collapse:collapse;text-align:left;"&gt;&lt;tr&gt;&lt;td colspan="20"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="width:31%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:11%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:11%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:11%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:11%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:11%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;span style="font-family:Arial;font-size:8pt;font-weight:bold;"&gt;United&#160;States&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;span style="font-family:Arial;font-size:8pt;font-weight:bold;"&gt;Europe&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;span style="font-family:Arial;font-size:8pt;font-weight:bold;"&gt;Greater China &lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;span style="font-family:Arial;font-size:8pt;font-weight:bold;"&gt;Other&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;span style="font-family:Arial;font-size:8pt;font-weight:bold;"&gt;Total&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Year Ended December 31, 2019&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Revenue&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;247,689&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;227,738&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;115,061&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;135,137&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;725,625&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Long-lived assets&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;68,496&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;21,691&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;1,487&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;3,602&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;95,276&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Year Ended December 31, 2018&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Revenue&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;231,760&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;311,914&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;123,708&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;138,956&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;806,338&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Long-lived assets&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;67,156&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;23,948&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;1,482&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;2,735&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;95,321&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Year Ended December 31, 2017&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Revenue&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;180,248&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;328,826&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;108,738&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;148,271&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;766,083&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Long-lived assets&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;53,983&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;22,437&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;1,594&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;2,525&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;80,539&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;</us-gaap:ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsByGeographicalAreasTableTextBlock>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="FD2019Q4YTD_srt_StatementGeographicalAxis_country_US"
      decimals="-3"
      id="d9068546e912-wk-Fact-B2A4F2CECB43EFF5EB788095A173398E"
      unitRef="usd">247689000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="FD2019Q4YTD_srt_StatementGeographicalAxis_srt_EuropeMember"
      decimals="-3"
      id="d9068546e931-wk-Fact-4A22F78C245DA60EE1438095A1973821"
      unitRef="usd">227738000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="FD2019Q4YTD_srt_StatementGeographicalAxis_cgnx_GreaterChinaMember"
      decimals="-3"
      id="d9068546e950-wk-Fact-30EB577D07973FA5B10F8095A19737BE"
      unitRef="usd">115061000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="FD2019Q4YTD_srt_StatementGeographicalAxis_cgnx_OtherGeographicAreaMember"
      decimals="-3"
      id="d9068546e970-wk-Fact-113F5873F36A078DD72E8095A1722F41"
      unitRef="usd">135137000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="FD2019Q4YTD"
      decimals="-3"
      id="d9068546e989-wk-Fact-B06BBDF776878FE4B2BC8095A17D5E83"
      unitRef="usd">725625000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:NoncurrentAssets
      contextRef="FI2019Q4_srt_StatementGeographicalAxis_country_US"
      decimals="-3"
      id="d9068546e1004-wk-Fact-DDCF94F184066CD760388095A173018B"
      unitRef="usd">68496000</us-gaap:NoncurrentAssets>
    <us-gaap:NoncurrentAssets
      contextRef="FI2019Q4_srt_StatementGeographicalAxis_srt_EuropeMember"
      decimals="-3"
      id="d9068546e1023-wk-Fact-B562E7FAAA8C8B88C0D58095A17355BA"
      unitRef="usd">21691000</us-gaap:NoncurrentAssets>
    <us-gaap:NoncurrentAssets
      contextRef="FI2019Q4_srt_StatementGeographicalAxis_cgnx_GreaterChinaMember"
      decimals="-3"
      id="d9068546e1042-wk-Fact-DDB3B6F64DD9B4FA91A08095A1986B32"
      unitRef="usd">1487000</us-gaap:NoncurrentAssets>
    <us-gaap:NoncurrentAssets
      contextRef="FI2019Q4_srt_StatementGeographicalAxis_cgnx_OtherGeographicAreaMember"
      decimals="-3"
      id="d9068546e1062-wk-Fact-1B7A50415605DE270DF28095A1722276"
      unitRef="usd">3602000</us-gaap:NoncurrentAssets>
    <us-gaap:NoncurrentAssets
      contextRef="FI2019Q4"
      decimals="-3"
      id="d9068546e1086-wk-Fact-4F4221F6AE74C3921EF78095A1986096"
      unitRef="usd">95276000</us-gaap:NoncurrentAssets>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="FD2018Q4YTD_srt_StatementGeographicalAxis_country_US"
      decimals="-3"
      id="d9068546e1208-wk-Fact-64C507366D0E056E8E598095A1983614"
      unitRef="usd">231760000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="FD2018Q4YTD_srt_StatementGeographicalAxis_srt_EuropeMember"
      decimals="-3"
      id="d9068546e1227-wk-Fact-A3C61C1D09BD291DC6B88095A197A9C4"
      unitRef="usd">311914000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="FD2018Q4YTD_srt_StatementGeographicalAxis_cgnx_GreaterChinaMember"
      decimals="-3"
      id="d9068546e1246-wk-Fact-E4401311B4DC979D24148095A1969303"
      unitRef="usd">123708000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="FD2018Q4YTD_srt_StatementGeographicalAxis_cgnx_OtherGeographicAreaMember"
      decimals="-3"
      id="d9068546e1266-wk-Fact-F174E7A5EFCCEDADAED18095A17344F7"
      unitRef="usd">138956000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="FD2018Q4YTD"
      decimals="-3"
      id="d9068546e1285-wk-Fact-D6E1BF373058FA9CCF958095A18F656B"
      unitRef="usd">806338000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:NoncurrentAssets
      contextRef="FI2018Q4_srt_StatementGeographicalAxis_country_US"
      decimals="-3"
      id="d9068546e1300-wk-Fact-2EB3824814316CA299158095A172C058"
      unitRef="usd">67156000</us-gaap:NoncurrentAssets>
    <us-gaap:NoncurrentAssets
      contextRef="FI2018Q4_srt_StatementGeographicalAxis_srt_EuropeMember"
      decimals="-3"
      id="d9068546e1319-wk-Fact-B983968F2A98764B88898095A1735521"
      unitRef="usd">23948000</us-gaap:NoncurrentAssets>
    <us-gaap:NoncurrentAssets
      contextRef="FI2018Q4_srt_StatementGeographicalAxis_cgnx_GreaterChinaMember"
      decimals="-3"
      id="d9068546e1338-wk-Fact-7F28786178B7E6C2EFD98095A198F81E"
      unitRef="usd">1482000</us-gaap:NoncurrentAssets>
    <us-gaap:NoncurrentAssets
      contextRef="FI2018Q4_srt_StatementGeographicalAxis_cgnx_OtherGeographicAreaMember"
      decimals="-3"
      id="d9068546e1358-wk-Fact-83885535E368BDBA4F028095A1987246"
      unitRef="usd">2735000</us-gaap:NoncurrentAssets>
    <us-gaap:NoncurrentAssets
      contextRef="FI2018Q4"
      decimals="-3"
      id="d9068546e1382-wk-Fact-7FB59056D197AD49CB278095A1715F1E"
      unitRef="usd">95321000</us-gaap:NoncurrentAssets>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="FD2017Q4YTD_srt_StatementGeographicalAxis_country_US"
      decimals="-3"
      id="d9068546e1504-wk-Fact-8BB26DD71F5D239503E28095A17455DE"
      unitRef="usd">180248000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="FD2017Q4YTD_srt_StatementGeographicalAxis_srt_EuropeMember"
      decimals="-3"
      id="d9068546e1523-wk-Fact-8FAC4E07DE74039DB1D38095A1970DBC"
      unitRef="usd">328826000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="FD2017Q4YTD_srt_StatementGeographicalAxis_cgnx_GreaterChinaMember"
      decimals="-3"
      id="d9068546e1542-wk-Fact-0060F6986FB9683616C98095A1960597"
      unitRef="usd">108738000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="FD2017Q4YTD_srt_StatementGeographicalAxis_cgnx_OtherGeographicAreaMember"
      decimals="-3"
      id="d9068546e1562-wk-Fact-200C5106F894944999048095A173CC87"
      unitRef="usd">148271000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="FD2017Q4YTD"
      decimals="-3"
      id="d9068546e1581-wk-Fact-53B0A8CFBD2030E181408095A17CDF23"
      unitRef="usd">766083000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:NoncurrentAssets
      contextRef="FI2017Q4_srt_StatementGeographicalAxis_country_US"
      decimals="-3"
      id="d9068546e1596-wk-Fact-A298F974D182695792F98095A19846C8"
      unitRef="usd">53983000</us-gaap:NoncurrentAssets>
    <us-gaap:NoncurrentAssets
      contextRef="FI2017Q4_srt_StatementGeographicalAxis_srt_EuropeMember"
      decimals="-3"
      id="d9068546e1615-wk-Fact-B0448AA36A3CFAE17E7D8095A1976AC8"
      unitRef="usd">22437000</us-gaap:NoncurrentAssets>
    <us-gaap:NoncurrentAssets
      contextRef="FI2017Q4_srt_StatementGeographicalAxis_cgnx_GreaterChinaMember"
      decimals="-3"
      id="d9068546e1634-wk-Fact-7593AB385104FBBD77A28095A174481C"
      unitRef="usd">1594000</us-gaap:NoncurrentAssets>
    <us-gaap:NoncurrentAssets
      contextRef="FI2017Q4_srt_StatementGeographicalAxis_cgnx_OtherGeographicAreaMember"
      decimals="-3"
      id="d9068546e1654-wk-Fact-C115F60B06B2C6C648D58095A174BC43"
      unitRef="usd">2525000</us-gaap:NoncurrentAssets>
    <us-gaap:NoncurrentAssets
      contextRef="FI2017Q4"
      decimals="-3"
      id="d9068546e1678-wk-Fact-622D84CF4EDDC532EDDF8095A17374D5"
      unitRef="usd">80539000</us-gaap:NoncurrentAssets>
    <us-gaap:ConcentrationRiskPercentage1
      contextRef="FD2018Q4YTD_us-gaap_ConcentrationRiskByBenchmarkAxis_us-gaap_SalesRevenueNetMember_us-gaap_ConcentrationRiskByTypeAxis_us-gaap_CustomerConcentrationRiskMember"
      decimals="2"
      id="d9068546e1700-wk-Fact-C99A11D1D7C7FB0D4D418095A174FE11"
      unitRef="number">0.15</us-gaap:ConcentrationRiskPercentage1>
    <us-gaap:ConcentrationRiskPercentage1
      contextRef="FD2017Q4YTD_us-gaap_ConcentrationRiskByBenchmarkAxis_us-gaap_SalesRevenueNetMember_us-gaap_ConcentrationRiskByTypeAxis_us-gaap_CustomerConcentrationRiskMember"
      decimals="2"
      id="d9068546e1704-wk-Fact-37F06A08A56D414C68058095A17AD3E0"
      unitRef="number">0.20</us-gaap:ConcentrationRiskPercentage1>
    <us-gaap:ConcentrationRiskPercentage1
      contextRef="FD2019Q4YTD_us-gaap_ConcentrationRiskByBenchmarkAxis_us-gaap_AccountsReceivableMember_us-gaap_ConcentrationRiskByTypeAxis_us-gaap_CustomerConcentrationRiskMember"
      decimals="2"
      id="d9068546e1708-wk-Fact-E317B01F0B0E0AF5CF7C16BA7A2E21D8"
      unitRef="number">0.24</us-gaap:ConcentrationRiskPercentage1>
    <us-gaap:ConcentrationRiskPercentage1
      contextRef="FD2018Q4YTD_us-gaap_ConcentrationRiskByBenchmarkAxis_us-gaap_AccountsReceivableMember_us-gaap_ConcentrationRiskByTypeAxis_us-gaap_CustomerConcentrationRiskMember"
      decimals="2"
      id="d9068546e1712-wk-Fact-710F521155730E38C21D8095A17A09AE"
      unitRef="number">0.30</us-gaap:ConcentrationRiskPercentage1>
    <us-gaap:ConcentrationRiskPercentage1
      contextRef="FD2017Q4YTD_us-gaap_ConcentrationRiskByBenchmarkAxis_us-gaap_AccountsReceivableMember_us-gaap_ConcentrationRiskByTypeAxis_us-gaap_CustomerConcentrationRiskMember"
      decimals="2"
      id="d9068546e1716-wk-Fact-9F118FEC5AB84499760C8095A17A2D0A"
      unitRef="number">0.40</us-gaap:ConcentrationRiskPercentage1>
    <us-gaap:BusinessCombinationDisclosureTextBlock
      contextRef="FD2019Q4YTD"
      id="TextSelection-BD089F10A939A09700088095A1A888D9-0-wk-Fact-448C37113264EF59E4258095A1977FA0">Acquisitions&lt;div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;The Company completed &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;one&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt; business acquisition in 2019 and &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;two&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt; business acquisitions in 2017.  All of these transactions were accounted for as business combinations.  Pro-forma information for these acquisitions is not presented because they are not significant, either individually or in the aggregate.  Revenue and earnings since the dates of the acquisitions included in the Company's Consolidated Statements of Operations are also not presented because they are not material.  &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;background-color:#ffffff;"&gt;Transaction costs were immaterial and were expensed as incurred.&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt; &lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Assets acquired and liabilities assumed have been recorded at their estimated fair values as of the acquisition date.  Contingent consideration is remeasured each reporting period with changes in fair value recorded in "Other income (expense)" on the Consolidated Statements of Operations. &lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-style:italic;"&gt;Sualab Co., Ltd.&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&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 &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;$194,642,000&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt; included cash payments of &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;$170,602,000&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt; upon closing.  The remaining consideration consists of deferred payments of &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;$24,040,000&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt; that may become payable on the fourth anniversary date of the closing, contingent upon continued employment of key talent, and will be recorded as compensation expense over this four year period. &lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Sualab's intellectual property, engineering expertise, and market coverage are expected to increase the Company's existing deep learning capabilities.  Combined with intellectual property acquired from ViDi Systems S.A. in 2017, the Company is now a leading provider of deep learning-based industrial vision software. &lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;The purchase price that was not related to employment was allocated as follows (in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"&gt;&lt;div style="padding-left:0px;text-indent:0px;line-height:normal;padding-top:10px;"&gt;&lt;table cellpadding="0" cellspacing="0" style="font-family:Times New Roman;font-size:10pt;width:100%;border-collapse:collapse;text-align:left;"&gt;&lt;tr&gt;&lt;td colspan="4"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="width:86%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:12%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Cash and cash equivalents&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;3,691&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Current investments&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;9,487&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Accounts receivable&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;1,200&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Inventories&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;115&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Prepaid expenses and other current assets&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;252&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Property, plant, and equipment&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;726&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Operating lease assets&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;2,792&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Deferred income tax asset&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;3,087&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Other assets&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;513&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Accounts payable&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;(28&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;)&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Accrued expenses&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;(2,633&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;)&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Deferred revenue and customer deposits&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;(764&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;)&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Operating lease liabilities&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;(448&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;)&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Non-current operating lease liabilities&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;(2,344&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;)&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Deferred income tax liabilities&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;(7,926&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;)&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Other liabilities&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;(10&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;)&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Completed technologies&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;18,300&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;In-process technologies&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;8,200&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Customer relationships&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;5,800&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Non-compete agreements&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;340&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Trademarks&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;110&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Goodwill&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;130,142&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:36px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Purchase price&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;170,602&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;border-top:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:120%;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:120%;text-align:justify;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;The completed technologies, in-process technologies, customer relationships, trademarks, and non-compete agreements are included in "Intangible assets" on the Consolidated Balance &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;background-color:#ffffff;"&gt;Sheet.  The completed technologies are being amortized to cost of revenue over&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;background-color:#ffffff;"&gt; &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;background-color:#ffffff;"&gt;&lt;span&gt;eight years&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;background-color:#ffffff;"&gt;, the customer relationships are being amortized to SG&amp;amp;A expenses over&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;background-color:#ffffff;"&gt; &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;background-color:#ffffff;"&gt;&lt;span&gt;seven years&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;background-color:#ffffff;"&gt;, the trademarks are being amortized to SG&amp;amp;A expenses over&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;background-color:#ffffff;"&gt; &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;background-color:#ffffff;"&gt;&lt;span&gt;two years&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;background-color:#ffffff;"&gt;, and the non-compete agreements are being amortized to RD&amp;amp;E expenses over six to&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;background-color:#ffffff;"&gt; &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;background-color:#ffffff;"&gt;&lt;span&gt;seven years&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;background-color:#ffffff;"&gt;.  The in-process technology will be amortized to cost of revenue over its estimated useful life once the technology is finalized.  The portion of the acquired goodwill deductible for tax purposes is&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;background-color:#ffffff;"&gt; &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;background-color:#ffffff;"&gt;&lt;span&gt;$104,609,000&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;background-color:#ffffff;"&gt;.&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-style:italic;"&gt;GVi Ventures, Inc.&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;On April 12, 2017, the Company acquired selected assets and assumed selected liabilities of GVi Ventures, Inc., a privately-held maker of pre-configured vision solutions for common automotive applications based in the United States.  The total purchase price of &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;$5,368,000&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt; included cash payment of &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;$4,069,000&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt; and contingent consideration valued at &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;$1,299,000&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt; as of the acquisition date.  In addition, the Company entered into special incentive payments tied to employment, none of which are material, that are being recorded as compensation expense. &lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;The Company recorded fair value adjustments in non-operating expense totaling &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;$282,000&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt; in 2017 and &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;$1,065,000&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt; in 2018, and paid out &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;$1,000,000&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt; in 2018 of the contingent consideration.  In 2019, the remaining contingent consideration liability was reduced to &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;zero&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt; as a result of a lower level of revenue in the America's automotive industry.  The undiscounted potential outcomes related to future contingent consideration range from &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;$0&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt; to &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;$2,500,000&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt; based upon certain revenue levels over the next three years. &lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Under this transaction, in addition to customer relationships and completed technologies, the Company acquired a team of software engineers that are expected to develop new products and increase the Company's ability to serve large customers in the automotive industry.  &lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;The purchase price was allocated as follows (in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"&gt;&lt;div style="padding-left:0px;text-indent:0px;line-height:normal;padding-top:10px;"&gt;&lt;table cellpadding="0" cellspacing="0" style="font-family:Times New Roman;font-size:10pt;width:100%;border-collapse:collapse;text-align:left;"&gt;&lt;tr&gt;&lt;td colspan="4"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="width:86%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:12%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Accounts receivable&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;423&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Inventories&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;120&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Prepaid expenses and other current assets&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;1&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Accounts payable&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;(152&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;)&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Accrued expenses&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;(10&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;)&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Completed technologies&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;910&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Customer relationships&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;2,600&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Goodwill&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;1,476&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:36px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Purchase price&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;5,368&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;border-top:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;The customer relationships and completed technologies are included in "Intangible assets" on the Consolidated Balance &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;background-color:#ffffff;"&gt;Sheet.  The customer relationships are being amort&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;ized to selling, general, and administrative e&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;background-color:#ffffff;"&gt;xpenses over&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;background-color:#ffffff;"&gt; &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;background-color:#ffffff;"&gt;&lt;span&gt;eight years&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;background-color:#ffffff;"&gt;, and the completed technologies are being amortized to cost of revenue over&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;background-color:#ffffff;"&gt; &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;background-color:#ffffff;"&gt;&lt;span&gt;five years&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;background-color:#ffffff;"&gt;, both on a straigh&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;t-line basis.  The portion of the acquired goodwill deductible for tax purposes is &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;$443,000&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;. &lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-style:italic;"&gt;ViDi Systems S.A.&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;On April 4, 2017, the Company acquired all of the outstanding shares of ViDi Systems, S.A. (ViDi), a privately-held vision software company based in Switzerland.  The total purchase price of &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;$23,015,000&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt; included cash payment of &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;$20,019,000&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;, with the remaining &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;$2,996,000&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt; recorded as a holdback to secure potential claims under the agreement that was paid in 2018.  In addition, the Company entered into a special incentive payment tied to employment, which is not material, that is being recorded as compensation expense.&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Under this transaction, in addition to completed technologies, the Company acquired a team of software engineers that are expected to help the Company broaden the scope of applications that can be addressed with Cognex vision.   ViDi's deep learning software solves complex applications that are too complicated and time-consuming to program and maintain with traditional machine vision rules-based algorithms.  Using feedback, ViDi's software trains the system to distinguish between acceptable variations and defects. &lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;The purchase price was allocated as follows (in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:8px;text-align:center;font-size:10pt;"&gt;&lt;div style="padding-left:0px;text-indent:0px;line-height:normal;padding-top:10px;"&gt;&lt;table cellpadding="0" cellspacing="0" style="font-family:Times New Roman;font-size:10pt;margin-left:auto;margin-right:auto;width:100%;border-collapse:collapse;text-align:left;"&gt;&lt;tr&gt;&lt;td colspan="4"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="width:86%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:12%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Cash&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;146&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Accounts receivable&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;425&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Prepaid expenses and other current assets&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;129&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Property, plant, and equipment&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;40&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Deferred income tax asset&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;620&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Accounts payable&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;(98&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;)&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Accrued expenses&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;(716&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;)&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Deferred income tax liability&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;(1,008&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;)&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Non-compete agreement&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;370&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Completed technologies&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;4,774&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Goodwill&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;18,333&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;padding-left:36px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Purchase price&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;23,015&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;border-top:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;The non-compete agreement and completed technology are included in "Intangible assets" on the Consolidated Balance Sheet.  The non-compete agreement are being amortized to research, development and engineering expenses over &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;three years&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;, and the completed technology are being amortized to cost of revenue over &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;six years&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;, both on a straight-line basis.  The portion of the acquired goodwill deductible for tax purposes is &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;$5,112,000&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;.&lt;/span&gt;</us-gaap:BusinessCombinationDisclosureTextBlock>
    <us-gaap:NumberOfBusinessesAcquired
      contextRef="FD2019Q4YTD"
      decimals="INF"
      id="d9074118e640-wk-Fact-849F23CAF89FF66CBA2F8095A17CC2D0"
      unitRef="acquisition">1</us-gaap:NumberOfBusinessesAcquired>
    <us-gaap:NumberOfBusinessesAcquired
      contextRef="FD2017Q4YTD"
      decimals="INF"
      id="d9074118e644-wk-Fact-8D84EB5AF4D3AFBAB9D2FD4E5AF63C84"
      unitRef="acquisition">2</us-gaap:NumberOfBusinessesAcquired>
    <us-gaap:BusinessCombinationConsiderationTransferred1
      contextRef="D2019Q4Oct16_us-gaap_BusinessAcquisitionAxis_cgnx_SualabCo.Ltd.Member"
      decimals="-3"
      id="d9074118e661-wk-Fact-637A6F14EE83BC7733AAFD535306CC6F"
      unitRef="usd">194642000</us-gaap:BusinessCombinationConsiderationTransferred1>
    <us-gaap:PaymentsToAcquireBusinessesGross
      contextRef="D2019Q4Oct16_us-gaap_BusinessAcquisitionAxis_cgnx_SualabCo.Ltd.Member"
      decimals="-3"
      id="d9074118e665-wk-Fact-3335FA829DA432DBD534FD55CAF4D732"
      unitRef="usd">170602000</us-gaap:PaymentsToAcquireBusinessesGross>
    <us-gaap:BusinessCombinationContingentConsiderationLiability
      contextRef="I2019Q3_us-gaap_BusinessAcquisitionAxis_cgnx_SualabCo.Ltd.Member"
      decimals="-3"
      id="d9074118e669-wk-Fact-DAEBA2DDD21164F50E7CFD56937064DB"
      unitRef="usd">24040000</us-gaap:BusinessCombinationContingentConsiderationLiability>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCashAndEquivalents
      contextRef="I2019Q3_us-gaap_BusinessAcquisitionAxis_cgnx_SualabCo.Ltd.Member"
      decimals="-3"
      id="d9074118e705-wk-Fact-5C88EB4DEED733EE9D3CFD656C635A73"
      unitRef="usd">3691000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCashAndEquivalents>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsMarketableSecurities
      contextRef="I2019Q3_us-gaap_BusinessAcquisitionAxis_cgnx_SualabCo.Ltd.Member"
      decimals="-3"
      id="d9074118e720-wk-Fact-11D1B6E2E91A094CCBA7FD663CECA5A1"
      unitRef="usd">9487000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsMarketableSecurities>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsReceivables
      contextRef="I2019Q3_us-gaap_BusinessAcquisitionAxis_cgnx_SualabCo.Ltd.Member"
      decimals="-3"
      id="d9074118e740-wk-Fact-A7F42F2B41F3773F3D57FD67A292BC28"
      unitRef="usd">1200000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsReceivables>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedInventory
      contextRef="I2019Q3_us-gaap_BusinessAcquisitionAxis_cgnx_SualabCo.Ltd.Member"
      decimals="-3"
      id="d9074118e760-wk-Fact-39A22C351933D71439F8FD67BD38BC9B"
      unitRef="usd">115000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedInventory>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsPrepaidExpenseAndOtherAssets
      contextRef="I2019Q3_us-gaap_BusinessAcquisitionAxis_cgnx_SualabCo.Ltd.Member"
      decimals="-3"
      id="d9074118e780-wk-Fact-59B0B20E93AF73290CA3FD67EF1A0879"
      unitRef="usd">252000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsPrepaidExpenseAndOtherAssets>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment
      contextRef="I2019Q3_us-gaap_BusinessAcquisitionAxis_cgnx_SualabCo.Ltd.Member"
      decimals="-3"
      id="d9074118e800-wk-Fact-973B41DE7B523E0509C3FD689A1D25CB"
      unitRef="usd">726000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment>
    <cgnx:BusinessCombinationRecognizedIdentifiableAssetsAcquiredandLiabilitiesAssumedOperatingLeaseRightofUseAsset
      contextRef="I2019Q3_us-gaap_BusinessAcquisitionAxis_cgnx_SualabCo.Ltd.Member"
      decimals="-3"
      id="d9074118e820-wk-Fact-4E4E32AAE89D4E84E073FD6A8DFCD050"
      unitRef="usd">2792000</cgnx:BusinessCombinationRecognizedIdentifiableAssetsAcquiredandLiabilitiesAssumedOperatingLeaseRightofUseAsset>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxAssets
      contextRef="I2019Q3_us-gaap_BusinessAcquisitionAxis_cgnx_SualabCo.Ltd.Member"
      decimals="-3"
      id="d9074118e840-wk-Fact-1324AC726FBA77D3026EFD6B005BE4D8"
      unitRef="usd">3087000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxAssets>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNoncurrentAssets
      contextRef="I2019Q3_us-gaap_BusinessAcquisitionAxis_cgnx_SualabCo.Ltd.Member"
      decimals="-3"
      id="d9074118e860-wk-Fact-A33883573C9296F901FBFD6B3BFF7CA8"
      unitRef="usd">513000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNoncurrentAssets>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccountsPayable
      contextRef="I2019Q3_us-gaap_BusinessAcquisitionAxis_cgnx_SualabCo.Ltd.Member"
      decimals="-3"
      id="d9074118e880-wk-Fact-B3CAEABAFDE77AC6147AFD6B58E60B76"
      unitRef="usd">28000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccountsPayable>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilities
      contextRef="I2019Q3_us-gaap_BusinessAcquisitionAxis_cgnx_SualabCo.Ltd.Member"
      decimals="-3"
      id="d9074118e901-wk-Fact-80C3916B37FC3EC534BDFD6B8AD6E80F"
      unitRef="usd">2633000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilities>
    <cgnx:BusinessCombinationRecognizedIdentifiableAssetsAcquiredandLiabilitiesAssumedCurrentLiabilitiesDeferredRevenueandCustomerDeposits
      contextRef="I2019Q3_us-gaap_BusinessAcquisitionAxis_cgnx_SualabCo.Ltd.Member"
      decimals="-3"
      id="d9074118e923-wk-Fact-5719F5A2403AAAEB57E0FD6C5011FAA0"
      unitRef="usd">764000</cgnx:BusinessCombinationRecognizedIdentifiableAssetsAcquiredandLiabilitiesAssumedCurrentLiabilitiesDeferredRevenueandCustomerDeposits>
    <cgnx:BusinessCombinationRecognizedIdentifiableAssetsAcquiredandLiabilitiesAssumedOperatingLeaseLiabilityCurrent
      contextRef="I2019Q3_us-gaap_BusinessAcquisitionAxis_cgnx_SualabCo.Ltd.Member"
      decimals="-3"
      id="d9074118e944-wk-Fact-80C17D505890158BAEDDFD73D753BEE2"
      unitRef="usd">448000</cgnx:BusinessCombinationRecognizedIdentifiableAssetsAcquiredandLiabilitiesAssumedOperatingLeaseLiabilityCurrent>
    <cgnx:BusinessCombinationRecognizedIdentifiableAssetsAcquiredandLiabilitiesAssumedOperatingLeaseLiabilityNoncurrent
      contextRef="I2019Q3_us-gaap_BusinessAcquisitionAxis_cgnx_SualabCo.Ltd.Member"
      decimals="-3"
      id="d9074118e965-wk-Fact-FE4188BAE3F045238E3BFD76CFDD63AC"
      unitRef="usd">2344000</cgnx:BusinessCombinationRecognizedIdentifiableAssetsAcquiredandLiabilitiesAssumedOperatingLeaseLiabilityNoncurrent>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesDeferredRevenue
      contextRef="I2019Q3_us-gaap_BusinessAcquisitionAxis_cgnx_SualabCo.Ltd.Member"
      decimals="-3"
      id="d9074118e986-wk-Fact-CF7B2B9D2609EA1BE179FD776B5F6DA9"
      unitRef="usd">7926000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesDeferredRevenue>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNoncurrentLiabilitiesOther
      contextRef="I2019Q3_us-gaap_BusinessAcquisitionAxis_cgnx_SualabCo.Ltd.Member"
      decimals="-3"
      id="d9074118e1007-wk-Fact-7CA9DD22679FCBE68004FD778256CF4D"
      unitRef="usd">10000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNoncurrentLiabilitiesOther>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibleAssetsOtherThanGoodwill
      contextRef="I2019Q3_us-gaap_BusinessAcquisitionAxis_cgnx_SualabCo.Ltd.Member_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_cgnx_CompletedTechnologyMember"
      decimals="-3"
      id="d9074118e1028-wk-Fact-B77E70C512E0CCBE7649FD81DAEF40ED"
      unitRef="usd">18300000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibleAssetsOtherThanGoodwill>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibleAssetsOtherThanGoodwill
      contextRef="I2019Q3_us-gaap_BusinessAcquisitionAxis_cgnx_SualabCo.Ltd.Member_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_cgnx_InprocessTechnologyMember"
      decimals="-3"
      id="d9074118e1048-wk-Fact-A801643D896B03988909FD81DB0B2967"
      unitRef="usd">8200000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibleAssetsOtherThanGoodwill>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibleAssetsOtherThanGoodwill
      contextRef="I2019Q3_us-gaap_BusinessAcquisitionAxis_cgnx_SualabCo.Ltd.Member_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_CustomerRelationshipsMember"
      decimals="-3"
      id="d9074118e1068-wk-Fact-A7C569BDCC65A2A31C29FD81DB214F81"
      unitRef="usd">5800000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibleAssetsOtherThanGoodwill>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibleAssetsOtherThanGoodwill
      contextRef="I2019Q3_us-gaap_BusinessAcquisitionAxis_cgnx_SualabCo.Ltd.Member_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_NoncompeteAgreementsMember"
      decimals="-3"
      id="d9074118e1088-wk-Fact-3A1682A2265B47381018FD81DB3D5EE1"
      unitRef="usd">340000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibleAssetsOtherThanGoodwill>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibleAssetsOtherThanGoodwill
      contextRef="I2019Q3_us-gaap_BusinessAcquisitionAxis_cgnx_SualabCo.Ltd.Member_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_TrademarksMember"
      decimals="-3"
      id="d9074118e1108-wk-Fact-36F6830CCDA3370891B0FD81DB531B8D"
      unitRef="usd">110000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibleAssetsOtherThanGoodwill>
    <us-gaap:Goodwill
      contextRef="I2019Q3_us-gaap_BusinessAcquisitionAxis_cgnx_SualabCo.Ltd.Member"
      decimals="-3"
      id="d9074118e1128-wk-Fact-28BF9EA780EB88234753FD78EE00120B"
      unitRef="usd">130142000</us-gaap:Goodwill>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet
      contextRef="I2019Q3_us-gaap_BusinessAcquisitionAxis_cgnx_SualabCo.Ltd.Member"
      decimals="-3"
      id="d9074118e1154-wk-Fact-058A8E4F51EAC1210F54FD79621F6724"
      unitRef="usd">170602000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet>
    <us-gaap:AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife
      contextRef="D2019Q4Oct16_us-gaap_BusinessAcquisitionAxis_cgnx_SualabCo.Ltd.Member_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_cgnx_CompletedTechnologyMember"
      id="d9074118e1171-wk-Fact-AC1A4506DB1DE9488A5017B18E53A2FF">P8Y</us-gaap:AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife>
    <us-gaap:AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife
      contextRef="D2019Q4Oct16_us-gaap_BusinessAcquisitionAxis_cgnx_SualabCo.Ltd.Member_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_CustomerRelationshipsMember"
      id="d9074118e1177-wk-Fact-7FBADB9CD82368F4BBFA17B48D58A9DA">P7Y</us-gaap:AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife>
    <us-gaap:AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife
      contextRef="D2019Q4Oct16_us-gaap_BusinessAcquisitionAxis_cgnx_SualabCo.Ltd.Member_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_TrademarksMember"
      id="d9074118e1183-wk-Fact-0E784963522944BD65CA17B33971BD3F">P2Y</us-gaap:AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife>
    <us-gaap:AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife
      contextRef="D2019Q4Oct16_srt_RangeAxis_srt_MaximumMember_us-gaap_BusinessAcquisitionAxis_cgnx_SualabCo.Ltd.Member_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_NoncompeteAgreementsMember"
      id="d9074118e1190-wk-Fact-BA00A8F7192B5196AB81FD879B6AC329">P7Y</us-gaap:AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife>
    <us-gaap:BusinessAcquisitionPurchasePriceAllocationGoodwillExpectedTaxDeductibleAmount
      contextRef="I2019Q3_us-gaap_BusinessAcquisitionAxis_cgnx_SualabCo.Ltd.Member"
      decimals="-3"
      id="d9074118e1196-wk-Fact-0891969405133F193866FD8E86E0AC6C"
      unitRef="usd">104609000</us-gaap:BusinessAcquisitionPurchasePriceAllocationGoodwillExpectedTaxDeductibleAmount>
    <us-gaap:BusinessCombinationConsiderationTransferred1
      contextRef="D2017Q2Apr12-Apr12_us-gaap_BusinessAcquisitionAxis_cgnx_GViVenturesInc.Member"
      decimals="-3"
      id="d9074118e1207-wk-Fact-1D7BA11E9C9E5962FEA18095A17CAB08"
      unitRef="usd">5368000</us-gaap:BusinessCombinationConsiderationTransferred1>
    <us-gaap:PaymentsToAcquireBusinessesGross
      contextRef="D2017Q2Apr12-Apr12_us-gaap_BusinessAcquisitionAxis_cgnx_GViVenturesInc.Member"
      decimals="-3"
      id="d9074118e1211-wk-Fact-E8B724D8962E4A921ED38095A17C5878"
      unitRef="usd">4069000</us-gaap:PaymentsToAcquireBusinessesGross>
    <us-gaap:BusinessCombinationContingentConsiderationLiability
      contextRef="I2017Q2Apr12_us-gaap_BusinessAcquisitionAxis_cgnx_GViVenturesInc.Member"
      decimals="-3"
      id="d9074118e1215-wk-Fact-FE563A946524C3DB33288095A17BD0EE"
      unitRef="usd">1299000</us-gaap:BusinessCombinationContingentConsiderationLiability>
    <us-gaap:BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1
      contextRef="FD2018Q4YTD_us-gaap_BusinessAcquisitionAxis_cgnx_GViVenturesInc.Member"
      decimals="-3"
      id="d9074118e1222-wk-Fact-99DBB7D28596A22540858095A17C1644"
      unitRef="usd">282000</us-gaap:BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1>
    <us-gaap:BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1
      contextRef="FD2019Q4YTD_us-gaap_BusinessAcquisitionAxis_cgnx_GViVenturesInc.Member"
      decimals="-3"
      id="d9074118e1226-wk-Fact-275831D786477DFAA7DB8095A185E7B4"
      unitRef="usd">1065000</us-gaap:BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1>
    <us-gaap:PaymentsForPreviousAcquisition
      contextRef="FD2018Q4YTD_us-gaap_BusinessAcquisitionAxis_cgnx_GViVenturesInc.Member"
      decimals="-3"
      id="d9074118e1230-wk-Fact-E878977F75F3DABF457DFD9416F602A5"
      unitRef="usd">1000000</us-gaap:PaymentsForPreviousAcquisition>
    <us-gaap:BusinessCombinationContingentConsiderationLiability
      contextRef="FI2019Q4_us-gaap_BusinessAcquisitionAxis_cgnx_GViVenturesInc.Member"
      decimals="INF"
      id="d9074118e1234-wk-Fact-FE95DF2C1C9913617B33FD96BB6C7C34"
      unitRef="usd">0</us-gaap:BusinessCombinationContingentConsiderationLiability>
    <us-gaap:BusinessCombinationContingentConsiderationArrangementsChangeInTheRangeOfOutcomesContingentConsiderationLiabilityValueLow
      contextRef="FD2019Q4YTD_us-gaap_BusinessAcquisitionAxis_cgnx_GViVenturesInc.Member"
      decimals="INF"
      id="d9074118e1238-wk-Fact-63B8988ADC71716FA909FD965C5965B5"
      unitRef="usd">0</us-gaap:BusinessCombinationContingentConsiderationArrangementsChangeInTheRangeOfOutcomesContingentConsiderationLiabilityValueLow>
    <us-gaap:BusinessCombinationContingentConsiderationArrangementsChangeInTheRangeOfOutcomesContingentConsiderationLiabilityValueHigh
      contextRef="FD2019Q4YTD_us-gaap_BusinessAcquisitionAxis_cgnx_GViVenturesInc.Member"
      decimals="INF"
      id="d9074118e1243-wk-Fact-A031898215833FE170DAFD9612B977F9"
      unitRef="usd">2500000</us-gaap:BusinessCombinationContingentConsiderationArrangementsChangeInTheRangeOfOutcomesContingentConsiderationLiabilityValueHigh>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsReceivables
      contextRef="I2017Q2Apr12_us-gaap_BusinessAcquisitionAxis_cgnx_GViVenturesInc.Member"
      decimals="-3"
      id="d9074118e1282-wk-Fact-F12D659DA2A3E74A38828095A1709C3D"
      unitRef="usd">423000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsReceivables>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedInventory
      contextRef="I2017Q2Apr12_us-gaap_BusinessAcquisitionAxis_cgnx_GViVenturesInc.Member"
      decimals="-3"
      id="d9074118e1297-wk-Fact-083D099A548D0E6D93248095A17143A4"
      unitRef="usd">120000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedInventory>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsPrepaidExpenseAndOtherAssets
      contextRef="I2017Q2Apr12_us-gaap_BusinessAcquisitionAxis_cgnx_GViVenturesInc.Member"
      decimals="-3"
      id="d9074118e1317-wk-Fact-5413F9D31CDDCCF172828095A171A6C5"
      unitRef="usd">1000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsPrepaidExpenseAndOtherAssets>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccountsPayable
      contextRef="I2017Q2Apr12_us-gaap_BusinessAcquisitionAxis_cgnx_GViVenturesInc.Member"
      decimals="-3"
      id="d9074118e1337-wk-Fact-24CDDC246809594A7C278095A1719417"
      unitRef="usd">152000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccountsPayable>
    <cgnx:BusinessCombinationRecognizedIdentifiableAssetsAcquiredandLiabilitiesAssumedCurrentLiabilitiesAccruedExpenses
      contextRef="I2017Q2Apr12_us-gaap_BusinessAcquisitionAxis_cgnx_GViVenturesInc.Member"
      decimals="-3"
      id="d9074118e1358-wk-Fact-BBB7FC0607521EF879A88095A1997BD7"
      unitRef="usd">10000</cgnx:BusinessCombinationRecognizedIdentifiableAssetsAcquiredandLiabilitiesAssumedCurrentLiabilitiesAccruedExpenses>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles
      contextRef="I2017Q2Apr12_us-gaap_BusinessAcquisitionAxis_cgnx_GViVenturesInc.Member_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_TechnologyBasedIntangibleAssetsMember"
      decimals="-3"
      id="d9074118e1379-wk-Fact-4BD78244B42EA1D44ADF8095A172637C"
      unitRef="usd">910000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles
      contextRef="I2017Q2Apr12_us-gaap_BusinessAcquisitionAxis_cgnx_GViVenturesInc.Member_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_CustomerRelationshipsMember"
      decimals="-3"
      id="d9074118e1399-wk-Fact-E3685273DF2057CB0A428095A1998454"
      unitRef="usd">2600000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles>
    <us-gaap:Goodwill
      contextRef="I2017Q2Apr12_us-gaap_BusinessAcquisitionAxis_cgnx_GViVenturesInc.Member"
      decimals="-3"
      id="d9074118e1419-wk-Fact-0BE9A416E99DF2C355468095A19847BF"
      unitRef="usd">1476000</us-gaap:Goodwill>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet
      contextRef="I2017Q2Apr12_us-gaap_BusinessAcquisitionAxis_cgnx_GViVenturesInc.Member"
      decimals="-3"
      id="d9074118e1444-wk-Fact-FA0171FCE055FB42ACA98095A172AFE4"
      unitRef="usd">5368000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet>
    <us-gaap:AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife
      contextRef="D2017Q2Apr12-Apr12_us-gaap_BusinessAcquisitionAxis_cgnx_GViVenturesInc.Member_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_CustomerRelationshipsMember"
      id="d9074118e1466-wk-Fact-EC90556D08B2FBE08F4617C365032299">P8Y</us-gaap:AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife>
    <us-gaap:AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife
      contextRef="D2017Q2Apr12-Apr12_us-gaap_BusinessAcquisitionAxis_cgnx_GViVenturesInc.Member_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_TechnologyBasedIntangibleAssetsMember"
      id="d9074118e1472-wk-Fact-82B8C92217624F38018917C1E178BBD2">P5Y</us-gaap:AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife>
    <us-gaap:BusinessAcquisitionPurchasePriceAllocationGoodwillExpectedTaxDeductibleAmount
      contextRef="I2017Q2Apr12_us-gaap_BusinessAcquisitionAxis_cgnx_GViVenturesInc.Member"
      decimals="-3"
      id="d9074118e1479-wk-Fact-327042132F1D9DA2BA6E8095A17A1916"
      unitRef="usd">443000</us-gaap:BusinessAcquisitionPurchasePriceAllocationGoodwillExpectedTaxDeductibleAmount>
    <us-gaap:BusinessCombinationConsiderationTransferred1
      contextRef="D2017Q2Apr04-Apr04_us-gaap_BusinessAcquisitionAxis_cgnx_ViDiSystemsS.A.Member"
      decimals="-3"
      id="d9074118e1489-wk-Fact-18D8317B442E20B007838095A17CD435"
      unitRef="usd">23015000</us-gaap:BusinessCombinationConsiderationTransferred1>
    <us-gaap:PaymentsToAcquireBusinessesGross
      contextRef="D2017Q2Apr04-Apr04_us-gaap_BusinessAcquisitionAxis_cgnx_ViDiSystemsS.A.Member"
      decimals="-3"
      id="d9074118e1493-wk-Fact-17AFD4C138C9482899A78095A17DBCFA"
      unitRef="usd">20019000</us-gaap:PaymentsToAcquireBusinessesGross>
    <us-gaap:BusinessCombinationConsiderationTransferredLiabilitiesIncurred
      contextRef="D2017Q2Apr04-Apr04_us-gaap_BusinessAcquisitionAxis_cgnx_ViDiSystemsS.A.Member"
      decimals="-3"
      id="d9074118e1497-wk-Fact-67077684DD70A2A601F08095A17CADBE"
      unitRef="usd">2996000</us-gaap:BusinessCombinationConsiderationTransferredLiabilitiesIncurred>
    <us-gaap:ScheduleOfIndefiniteLivedIntangibleAssetsAcquiredAsPartOfBusinessCombinationTextBlock
      contextRef="FD2019Q4YTD"
      id="TextSelection-F90F4445AC997D13BD5F8095A1A8282C-0-wk-Fact-3D41151FCBC08DE2855C8095A171BC5A">&lt;div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;The purchase price was allocated as follows (in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:8px;text-align:center;font-size:10pt;"&gt;&lt;div style="padding-left:0px;text-indent:0px;line-height:normal;padding-top:10px;"&gt;&lt;table cellpadding="0" cellspacing="0" style="font-family:Times New Roman;font-size:10pt;margin-left:auto;margin-right:auto;width:100%;border-collapse:collapse;text-align:left;"&gt;&lt;tr&gt;&lt;td colspan="4"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="width:86%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:12%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Cash&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;146&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Accounts receivable&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;425&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Prepaid expenses and other current assets&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;129&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Property, plant, and equipment&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;40&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Deferred income tax asset&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;620&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Accounts payable&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;(98&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;)&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Accrued expenses&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;(716&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;)&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Deferred income tax liability&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;(1,008&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;)&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Non-compete agreement&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;370&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Completed technologies&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;4,774&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Goodwill&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;18,333&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;padding-left:36px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Purchase price&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;23,015&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;border-top:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;The purchase price was allocated as follows (in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"&gt;&lt;div style="padding-left:0px;text-indent:0px;line-height:normal;padding-top:10px;"&gt;&lt;table cellpadding="0" cellspacing="0" style="font-family:Times New Roman;font-size:10pt;width:100%;border-collapse:collapse;text-align:left;"&gt;&lt;tr&gt;&lt;td colspan="4"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="width:86%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:12%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Accounts receivable&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;423&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Inventories&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;120&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Prepaid expenses and other current assets&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;1&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Accounts payable&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;(152&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;)&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Accrued expenses&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;(10&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;)&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Completed technologies&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;910&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Customer relationships&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;2,600&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Goodwill&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;1,476&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:36px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Purchase price&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;5,368&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;border-top:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;The purchase price that was not related to employment was allocated as follows (in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"&gt;&lt;div style="padding-left:0px;text-indent:0px;line-height:normal;padding-top:10px;"&gt;&lt;table cellpadding="0" cellspacing="0" style="font-family:Times New Roman;font-size:10pt;width:100%;border-collapse:collapse;text-align:left;"&gt;&lt;tr&gt;&lt;td colspan="4"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="width:86%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:12%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Cash and cash equivalents&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;3,691&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Current investments&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;9,487&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Accounts receivable&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;1,200&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Inventories&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;115&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Prepaid expenses and other current assets&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;252&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Property, plant, and equipment&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;726&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Operating lease assets&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;2,792&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Deferred income tax asset&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;3,087&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Other assets&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;513&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Accounts payable&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;(28&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;)&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Accrued expenses&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;(2,633&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;)&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Deferred revenue and customer deposits&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;(764&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;)&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Operating lease liabilities&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;(448&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;)&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Non-current operating lease liabilities&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;(2,344&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;)&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Deferred income tax liabilities&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;(7,926&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;)&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Other liabilities&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;(10&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;)&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Completed technologies&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;18,300&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;In-process technologies&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;8,200&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Customer relationships&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;5,800&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Non-compete agreements&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;340&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Trademarks&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;110&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Goodwill&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;130,142&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:36px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Purchase price&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;font-weight:bold;"&gt;&lt;span&gt;170,602&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;border-top:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;</us-gaap:ScheduleOfIndefiniteLivedIntangibleAssetsAcquiredAsPartOfBusinessCombinationTextBlock>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCashAndEquivalents
      contextRef="I2017Q2Apr04_us-gaap_BusinessAcquisitionAxis_cgnx_ViDiSystemsS.A.Member"
      decimals="-3"
      id="d9074118e1536-wk-Fact-01627683A77FDBFD511D8095A17C0DAE"
      unitRef="usd">146000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCashAndEquivalents>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsReceivables
      contextRef="I2017Q2Apr04_us-gaap_BusinessAcquisitionAxis_cgnx_ViDiSystemsS.A.Member"
      decimals="-3"
      id="d9074118e1551-wk-Fact-90C27B84955C7563BE6C8095A1989FE7"
      unitRef="usd">425000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsReceivables>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsPrepaidExpenseAndOtherAssets
      contextRef="I2017Q2Apr04_us-gaap_BusinessAcquisitionAxis_cgnx_ViDiSystemsS.A.Member"
      decimals="-3"
      id="d9074118e1571-wk-Fact-D96C2000205EF6185CAC8095A172A970"
      unitRef="usd">129000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsPrepaidExpenseAndOtherAssets>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment
      contextRef="I2017Q2Apr04_us-gaap_BusinessAcquisitionAxis_cgnx_ViDiSystemsS.A.Member"
      decimals="-3"
      id="d9074118e1591-wk-Fact-87DE1B3E6ADDF6EF0EC88095A1719F33"
      unitRef="usd">40000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxAssets
      contextRef="I2017Q2Apr04_us-gaap_BusinessAcquisitionAxis_cgnx_ViDiSystemsS.A.Member"
      decimals="-3"
      id="d9074118e1611-wk-Fact-4836D083B048A1D6DA988095A198A427"
      unitRef="usd">620000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxAssets>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccountsPayable
      contextRef="I2017Q2Apr04_us-gaap_BusinessAcquisitionAxis_cgnx_ViDiSystemsS.A.Member"
      decimals="-3"
      id="d9074118e1631-wk-Fact-0BCA833138BE45A6122E8095A1982FD8"
      unitRef="usd">98000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccountsPayable>
    <cgnx:BusinessCombinationRecognizedIdentifiableAssetsAcquiredandLiabilitiesAssumedCurrentLiabilitiesAccruedExpenses
      contextRef="I2017Q2Apr04_us-gaap_BusinessAcquisitionAxis_cgnx_ViDiSystemsS.A.Member"
      decimals="-3"
      id="d9074118e1652-wk-Fact-7F135D4FE77619BB82138095A171347A"
      unitRef="usd">716000</cgnx:BusinessCombinationRecognizedIdentifiableAssetsAcquiredandLiabilitiesAssumedCurrentLiabilitiesAccruedExpenses>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxLiabilities
      contextRef="I2017Q2Apr04_us-gaap_BusinessAcquisitionAxis_cgnx_ViDiSystemsS.A.Member"
      decimals="-3"
      id="d9074118e1673-wk-Fact-CDF9818F9D3D39C5D8088095A171BE9B"
      unitRef="usd">1008000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxLiabilities>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles
      contextRef="I2017Q2Apr04_us-gaap_BusinessAcquisitionAxis_cgnx_ViDiSystemsS.A.Member_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_NoncompeteAgreementsMember"
      decimals="-3"
      id="d9074118e1694-wk-Fact-E29037B4B1245768CDE08095A198FCE1"
      unitRef="usd">370000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles
      contextRef="I2017Q2Apr04_us-gaap_BusinessAcquisitionAxis_cgnx_ViDiSystemsS.A.Member_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_TechnologyBasedIntangibleAssetsMember"
      decimals="-3"
      id="d9074118e1714-wk-Fact-E43282F2BEEF71261AE28095A16B2A82"
      unitRef="usd">4774000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles>
    <us-gaap:Goodwill
      contextRef="I2017Q2Apr04_us-gaap_BusinessAcquisitionAxis_cgnx_ViDiSystemsS.A.Member"
      decimals="-3"
      id="d9074118e1734-wk-Fact-33BBB06A300EEFBD19C18095A172A34F"
      unitRef="usd">18333000</us-gaap:Goodwill>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet
      contextRef="I2017Q2Apr04_us-gaap_BusinessAcquisitionAxis_cgnx_ViDiSystemsS.A.Member"
      decimals="-3"
      id="d9074118e1760-wk-Fact-8CDEFAD563A0F55F52878095A1986989"
      unitRef="usd">23015000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet>
    <us-gaap:AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife
      contextRef="D2017Q2Apr04-Apr04_us-gaap_BusinessAcquisitionAxis_cgnx_ViDiSystemsS.A.Member_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_NoncompeteAgreementsMember"
      id="d9074118e1775-wk-Fact-811FE2EBB632271B338017CA7C3AC18D">P3Y</us-gaap:AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife>
    <us-gaap:AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife
      contextRef="D2017Q2Apr04-Apr04_us-gaap_BusinessAcquisitionAxis_cgnx_ViDiSystemsS.A.Member_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_TechnologyBasedIntangibleAssetsMember"
      id="d9074118e1779-wk-Fact-931D0F9237D32429E8C417C95983B23D">P6Y</us-gaap:AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife>
    <cgnx:Taxdeductiblegoodwill
      contextRef="I2017Q2Apr04_us-gaap_BusinessAcquisitionAxis_cgnx_ViDiSystemsS.A.Member"
      decimals="-3"
      id="d9074118e1783-wk-Fact-502E9A5098C44BE39E7A8095A199E0FF"
      unitRef="usd">5112000</cgnx:Taxdeductiblegoodwill>
    <us-gaap:SubsequentEventsTextBlock
      contextRef="FD2019Q4YTD"
      id="TextSelection-A5E4658F70D98CE105768095A1A8DBDF-0-wk-Fact-3015DE184542CE640AE98095A1966EB2">Subsequent Events&lt;div style="line-height:120%;padding-top:8px;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;On February 13, 2020, the Company's Board of Directors declared a cash dividend of &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;$0.055&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt; per share.  The dividend is payable &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;&lt;span style="white-space:nowrap"&gt;March 13, 2020&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt; to all shareholders of record as of the close of business on &lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;&lt;span style="white-space:nowrap"&gt;February 28, 2020&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;.&lt;/span&gt;&lt;/div&gt;</us-gaap:SubsequentEventsTextBlock>
    <us-gaap:DividendsPayableAmountPerShare
      contextRef="I2020Q1_us-gaap_SubsequentEventTypeAxis_us-gaap_SubsequentEventMember"
      decimals="INF"
      id="d9072824e640-wk-Fact-89B04E442D32320FA1F98095A197EED9"
      unitRef="usdPerShare">0.055</us-gaap:DividendsPayableAmountPerShare>
    <us-gaap:DividendsPayableDateDeclaredDayMonthAndYear
      contextRef="D2020Q1_us-gaap_SubsequentEventTypeAxis_us-gaap_SubsequentEventMember"
      id="d9072824e644-wk-Fact-AA38E464F2F5CEEB3E1F8095A17A8B99">2020-03-13</us-gaap:DividendsPayableDateDeclaredDayMonthAndYear>
    <us-gaap:DividendsPayableDateOfRecordDayMonthAndYear
      contextRef="D2020Q1_us-gaap_SubsequentEventTypeAxis_us-gaap_SubsequentEventMember"
      id="d9072824e648-wk-Fact-6CEC9731C92CC15F9CF38095A1732CAE">2020-02-28</us-gaap:DividendsPayableDateOfRecordDayMonthAndYear>
    <us-gaap:QuarterlyFinancialInformationTextBlock
      contextRef="FD2019Q4YTD"
      id="TextSelection-8EDA4F43255B7549B2B98095A1A8C561-0-wk-Fact-02B64052736790F248D38095A17C7B1E">&lt;div style="line-height:120%;text-align:center;font-size:10pt;"&gt;&lt;div style="padding-left:0px;text-indent:0px;line-height:normal;padding-top:10px;"&gt;&lt;table cellpadding="0" cellspacing="0" style="font-family:Times New Roman;font-size:10pt;margin-left:auto;margin-right:auto;width:100%;border-collapse:collapse;text-align:left;"&gt;&lt;tr&gt;&lt;td colspan="16"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="width:53%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:9%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:9%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:9%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:9%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:8pt;"&gt;&lt;span style="font-family:inherit;font-size:8pt;color:#ee2724;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="15" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;span style="font-family:Arial;font-size:8pt;font-weight:bold;"&gt;Quarter Ended&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:8pt;"&gt;&lt;span style="font-family:inherit;font-size:8pt;color:#ee2724;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:center;font-size:7pt;"&gt;&lt;span style="font-family:Arial;font-size:7pt;font-weight:bold;"&gt;March 31,                             2019&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:center;font-size:7pt;"&gt;&lt;span style="font-family:Arial;font-size:7pt;font-weight:bold;"&gt;June 30,                                 2019&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:center;font-size:7pt;"&gt;&lt;span style="font-family:Arial;font-size:7pt;font-weight:bold;"&gt;September 29,                           2019&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:center;font-size:7pt;"&gt;&lt;span style="font-family:Arial;font-size:7pt;font-weight:bold;"&gt;December&#160;31,&lt;br/&gt;2019&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:8pt;"&gt;&lt;span style="font-family:inherit;font-size:8pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="15" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;span style="font-family:Arial;font-size:8pt;"&gt;(In thousands, except per share amounts)&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:9pt;"&gt;&lt;span style="font-family:Arial;font-size:9pt;"&gt;Revenue&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:9pt;"&gt;&lt;span style="font-family:Arial;font-size:9pt;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:9pt;"&gt;&lt;span style="font-family:Arial;font-size:9pt;"&gt;&lt;span&gt;173,484&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:9pt;"&gt;&lt;span style="font-family:Arial;font-size:9pt;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:9pt;"&gt;&lt;span style="font-family:Arial;font-size:9pt;"&gt;&lt;span&gt;199,047&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:9pt;"&gt;&lt;span style="font-family:Arial;font-size:9pt;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:9pt;"&gt;&lt;span style="font-family:Arial;font-size:9pt;"&gt;&lt;span&gt;183,325&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:9pt;"&gt;&lt;span style="font-family:Arial;font-size:9pt;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:9pt;"&gt;&lt;span style="font-family:Arial;font-size:9pt;"&gt;&lt;span&gt;169,769&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:9pt;"&gt;&lt;span style="font-family:Arial;font-size:9pt;"&gt;Gross margin&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:9pt;"&gt;&lt;span style="font-family:Arial;font-size:9pt;"&gt;&lt;span&gt;127,200&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:9pt;"&gt;&lt;span style="font-family:Arial;font-size:9pt;"&gt;&lt;span&gt;148,080&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:9pt;"&gt;&lt;span style="font-family:Arial;font-size:9pt;"&gt;&lt;span&gt;135,693&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:9pt;"&gt;&lt;span style="font-family:Arial;font-size:9pt;"&gt;&lt;span&gt;124,898&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:9pt;"&gt;&lt;span style="font-family:Arial;font-size:9pt;"&gt;Operating income&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:9pt;"&gt;&lt;span style="font-family:Arial;font-size:9pt;"&gt;&lt;span&gt;30,147&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:9pt;"&gt;&lt;span style="font-family:Arial;font-size:9pt;"&gt;&lt;span&gt;51,756&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:9pt;"&gt;&lt;span style="font-family:Arial;font-size:9pt;"&gt;&lt;span&gt;43,092&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:9pt;"&gt;&lt;span style="font-family:Arial;font-size:9pt;"&gt;&lt;span&gt;17,607&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;height:13px;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;height:13px;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;height:13px;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;height:13px;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;height:13px;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;height:13px;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;height:13px;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;height:13px;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:9pt;"&gt;&lt;span style="font-family:Arial;font-size:9pt;"&gt;Net income&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:9pt;"&gt;&lt;span style="font-family:Arial;font-size:9pt;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"&gt;&lt;div style="text-align:right;font-size:9pt;"&gt;&lt;span style="font-family:Arial;font-size:9pt;"&gt;&lt;span&gt;33,104&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;border-top:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:9pt;"&gt;&lt;span style="font-family:Arial;font-size:9pt;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"&gt;&lt;div style="text-align:right;font-size:9pt;"&gt;&lt;span style="font-family:Arial;font-size:9pt;"&gt;&lt;span&gt;48,749&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;border-top:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:9pt;"&gt;&lt;span style="font-family:Arial;font-size:9pt;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"&gt;&lt;div style="text-align:right;font-size:9pt;"&gt;&lt;span style="font-family:Arial;font-size:9pt;"&gt;&lt;span&gt;41,685&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;border-top:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:9pt;"&gt;&lt;span style="font-family:Arial;font-size:9pt;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"&gt;&lt;div style="text-align:right;font-size:9pt;"&gt;&lt;span style="font-family:Arial;font-size:9pt;"&gt;&lt;span&gt;80,327&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;border-top:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;height:13px;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;height:13px;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;height:13px;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;height:13px;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;height:13px;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;height:13px;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;height:13px;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;height:13px;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:9pt;"&gt;&lt;span style="font-family:Arial;font-size:9pt;"&gt;Basic net income per share&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:9pt;"&gt;&lt;span style="font-family:Arial;font-size:9pt;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:9pt;"&gt;&lt;span style="font-family:Arial;font-size:9pt;"&gt;&lt;span&gt;0.19&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:9pt;"&gt;&lt;span style="font-family:Arial;font-size:9pt;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:9pt;"&gt;&lt;span style="font-family:Arial;font-size:9pt;"&gt;&lt;span&gt;0.28&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:9pt;"&gt;&lt;span style="font-family:Arial;font-size:9pt;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:9pt;"&gt;&lt;span style="font-family:Arial;font-size:9pt;"&gt;&lt;span&gt;0.24&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:9pt;"&gt;&lt;span style="font-family:Arial;font-size:9pt;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:9pt;"&gt;&lt;span style="font-family:Arial;font-size:9pt;"&gt;&lt;span&gt;0.47&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:9pt;"&gt;&lt;span style="font-family:Arial;font-size:9pt;"&gt;Diluted net income per share&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:left;font-size:9pt;"&gt;&lt;span style="font-family:Arial;font-size:9pt;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:9pt;"&gt;&lt;span style="font-family:Arial;font-size:9pt;"&gt;&lt;span&gt;0.19&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:left;font-size:9pt;"&gt;&lt;span style="font-family:Arial;font-size:9pt;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:9pt;"&gt;&lt;span style="font-family:Arial;font-size:9pt;"&gt;&lt;span&gt;0.28&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:left;font-size:9pt;"&gt;&lt;span style="font-family:Arial;font-size:9pt;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:9pt;"&gt;&lt;span style="font-family:Arial;font-size:9pt;"&gt;&lt;span&gt;0.24&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:left;font-size:9pt;"&gt;&lt;span style="font-family:Arial;font-size:9pt;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:9pt;"&gt;&lt;span style="font-family:Arial;font-size:9pt;"&gt;&lt;span&gt;0.46&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:12px;text-align:center;font-size:10pt;"&gt;&lt;div style="padding-left:0px;text-indent:0px;line-height:normal;padding-top:10px;"&gt;&lt;table cellpadding="0" cellspacing="0" style="font-family:Times New Roman;font-size:10pt;margin-left:auto;margin-right:auto;width:100%;border-collapse:collapse;text-align:left;"&gt;&lt;tr&gt;&lt;td colspan="16"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="width:53%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:9%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:9%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:9%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:9%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:8pt;"&gt;&lt;span style="font-family:inherit;font-size:8pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="15" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;span style="font-family:Arial;font-size:8pt;font-weight:bold;"&gt;Quarter Ended&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:8pt;"&gt;&lt;span style="font-family:inherit;font-size:8pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;border-top:1px solid #000000;"&gt;&lt;div style="text-align:center;font-size:7pt;"&gt;&lt;span style="font-family:Arial;font-size:7pt;font-weight:bold;"&gt;April 1,                        2018&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;border-top:1px solid #000000;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;border-top:1px solid #000000;"&gt;&lt;div style="text-align:center;font-size:7pt;"&gt;&lt;span style="font-family:Arial;font-size:7pt;font-weight:bold;"&gt;July 1,                                 2018&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;border-top:1px solid #000000;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;border-top:1px solid #000000;"&gt;&lt;div style="text-align:center;font-size:7pt;"&gt;&lt;span style="font-family:Arial;font-size:7pt;font-weight:bold;"&gt;September 30,                           2018&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;border-top:1px solid #000000;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;border-top:1px solid #000000;"&gt;&lt;div style="text-align:center;font-size:7pt;"&gt;&lt;span style="font-family:Arial;font-size:7pt;font-weight:bold;"&gt;December&#160;31,&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:center;font-size:7pt;"&gt;&lt;span style="font-family:Arial;font-size:7pt;font-weight:bold;"&gt;2018&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:8pt;"&gt;&lt;span style="font-family:inherit;font-size:8pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="15" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;span style="font-family:Arial;font-size:8pt;"&gt;(In thousands, except per share amounts)&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:9pt;"&gt;&lt;span style="font-family:Arial;font-size:9pt;"&gt;Revenue&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:9pt;"&gt;&lt;span style="font-family:Arial;font-size:9pt;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:9pt;"&gt;&lt;span style="font-family:Arial;font-size:9pt;"&gt;&lt;span&gt;169,567&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:9pt;"&gt;&lt;span style="font-family:Arial;font-size:9pt;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:9pt;"&gt;&lt;span style="font-family:Arial;font-size:9pt;"&gt;&lt;span&gt;211,264&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:9pt;"&gt;&lt;span style="font-family:Arial;font-size:9pt;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:9pt;"&gt;&lt;span style="font-family:Arial;font-size:9pt;"&gt;&lt;span&gt;232,221&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:9pt;"&gt;&lt;span style="font-family:Arial;font-size:9pt;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:9pt;"&gt;&lt;span style="font-family:Arial;font-size:9pt;"&gt;&lt;span&gt;193,286&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:9pt;"&gt;&lt;span style="font-family:Arial;font-size:9pt;"&gt;Gross margin&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:9pt;"&gt;&lt;span style="font-family:Arial;font-size:9pt;"&gt;&lt;span&gt;129,369&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:9pt;"&gt;&lt;span style="font-family:Arial;font-size:9pt;"&gt;&lt;span&gt;157,095&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:9pt;"&gt;&lt;span style="font-family:Arial;font-size:9pt;"&gt;&lt;span&gt;173,361&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:9pt;"&gt;&lt;span style="font-family:Arial;font-size:9pt;"&gt;&lt;span&gt;140,461&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:9pt;"&gt;&lt;span style="font-family:Arial;font-size:9pt;"&gt;Operating income&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:9pt;"&gt;&lt;span style="font-family:Arial;font-size:9pt;"&gt;&lt;span&gt;34,596&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:9pt;"&gt;&lt;span style="font-family:Arial;font-size:9pt;"&gt;&lt;span&gt;63,455&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:9pt;"&gt;&lt;span style="font-family:Arial;font-size:9pt;"&gt;&lt;span&gt;77,844&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:9pt;"&gt;&lt;span style="font-family:Arial;font-size:9pt;"&gt;&lt;span&gt;45,247&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;height:13px;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;height:13px;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;height:13px;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;height:13px;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;height:13px;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;height:13px;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;height:13px;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;height:13px;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:9pt;"&gt;&lt;span style="font-family:Arial;font-size:9pt;"&gt;Net income&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:9pt;"&gt;&lt;span style="font-family:Arial;font-size:9pt;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"&gt;&lt;div style="text-align:right;font-size:9pt;"&gt;&lt;span style="font-family:Arial;font-size:9pt;"&gt;&lt;span&gt;37,217&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;border-top:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:9pt;"&gt;&lt;span style="font-family:Arial;font-size:9pt;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"&gt;&lt;div style="text-align:right;font-size:9pt;"&gt;&lt;span style="font-family:Arial;font-size:9pt;"&gt;&lt;span&gt;56,196&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;border-top:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:9pt;"&gt;&lt;span style="font-family:Arial;font-size:9pt;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"&gt;&lt;div style="text-align:right;font-size:9pt;"&gt;&lt;span style="font-family:Arial;font-size:9pt;"&gt;&lt;span&gt;80,436&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;border-top:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:9pt;"&gt;&lt;span style="font-family:Arial;font-size:9pt;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"&gt;&lt;div style="text-align:right;font-size:9pt;"&gt;&lt;span style="font-family:Arial;font-size:9pt;"&gt;&lt;span&gt;45,418&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;border-top:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;height:13px;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;height:13px;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;height:13px;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;height:13px;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;height:13px;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;height:13px;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;height:13px;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;height:13px;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:9pt;"&gt;&lt;span style="font-family:Arial;font-size:9pt;"&gt;Basic net income per share&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:9pt;"&gt;&lt;span style="font-family:Arial;font-size:9pt;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:9pt;"&gt;&lt;span style="font-family:Arial;font-size:9pt;"&gt;&lt;span&gt;0.21&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:9pt;"&gt;&lt;span style="font-family:Arial;font-size:9pt;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:9pt;"&gt;&lt;span style="font-family:Arial;font-size:9pt;"&gt;&lt;span&gt;0.33&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:9pt;"&gt;&lt;span style="font-family:Arial;font-size:9pt;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:9pt;"&gt;&lt;span style="font-family:Arial;font-size:9pt;"&gt;&lt;span&gt;0.47&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:9pt;"&gt;&lt;span style="font-family:Arial;font-size:9pt;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:9pt;"&gt;&lt;span style="font-family:Arial;font-size:9pt;"&gt;&lt;span&gt;0.26&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:9pt;"&gt;&lt;span style="font-family:Arial;font-size:9pt;"&gt;Diluted net income per share&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:left;font-size:9pt;"&gt;&lt;span style="font-family:Arial;font-size:9pt;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:9pt;"&gt;&lt;span style="font-family:Arial;font-size:9pt;"&gt;&lt;span&gt;0.21&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:left;font-size:9pt;"&gt;&lt;span style="font-family:Arial;font-size:9pt;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:9pt;"&gt;&lt;span style="font-family:Arial;font-size:9pt;"&gt;&lt;span&gt;0.32&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:left;font-size:9pt;"&gt;&lt;span style="font-family:Arial;font-size:9pt;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:9pt;"&gt;&lt;span style="font-family:Arial;font-size:9pt;"&gt;&lt;span&gt;0.45&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:left;font-size:9pt;"&gt;&lt;span style="font-family:Arial;font-size:9pt;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:9pt;"&gt;&lt;span style="font-family:Arial;font-size:9pt;"&gt;&lt;span&gt;0.26&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:120%;font-size:9pt;"&gt;&lt;span style="font-family:inherit;font-size:9pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;</us-gaap:QuarterlyFinancialInformationTextBlock>
    <us-gaap:ScheduleOfQuarterlyFinancialInformationTableTextBlock
      contextRef="FD2019Q4YTD"
      id="TextSelection-E8ECB086D8CAEFB6DE178095A1A8DDA7-0-wk-Fact-2998E20FAA57570F49BA8095A17C5D5D">&lt;div style="line-height:120%;text-align:center;font-size:10pt;"&gt;&lt;div style="padding-left:0px;text-indent:0px;line-height:normal;padding-top:10px;"&gt;&lt;table cellpadding="0" cellspacing="0" style="font-family:Times New Roman;font-size:10pt;margin-left:auto;margin-right:auto;width:100%;border-collapse:collapse;text-align:left;"&gt;&lt;tr&gt;&lt;td colspan="16"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="width:53%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:9%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:9%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:9%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:9%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:8pt;"&gt;&lt;span style="font-family:inherit;font-size:8pt;color:#ee2724;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="15" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;span style="font-family:Arial;font-size:8pt;font-weight:bold;"&gt;Quarter Ended&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:8pt;"&gt;&lt;span style="font-family:inherit;font-size:8pt;color:#ee2724;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:center;font-size:7pt;"&gt;&lt;span style="font-family:Arial;font-size:7pt;font-weight:bold;"&gt;March 31,                             2019&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:center;font-size:7pt;"&gt;&lt;span style="font-family:Arial;font-size:7pt;font-weight:bold;"&gt;June 30,                                 2019&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:center;font-size:7pt;"&gt;&lt;span style="font-family:Arial;font-size:7pt;font-weight:bold;"&gt;September 29,                           2019&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:center;font-size:7pt;"&gt;&lt;span style="font-family:Arial;font-size:7pt;font-weight:bold;"&gt;December&#160;31,&lt;br/&gt;2019&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:8pt;"&gt;&lt;span style="font-family:inherit;font-size:8pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="15" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;span style="font-family:Arial;font-size:8pt;"&gt;(In thousands, except per share amounts)&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:9pt;"&gt;&lt;span style="font-family:Arial;font-size:9pt;"&gt;Revenue&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:9pt;"&gt;&lt;span style="font-family:Arial;font-size:9pt;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:9pt;"&gt;&lt;span style="font-family:Arial;font-size:9pt;"&gt;&lt;span&gt;173,484&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:9pt;"&gt;&lt;span style="font-family:Arial;font-size:9pt;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:9pt;"&gt;&lt;span style="font-family:Arial;font-size:9pt;"&gt;&lt;span&gt;199,047&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:9pt;"&gt;&lt;span style="font-family:Arial;font-size:9pt;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:9pt;"&gt;&lt;span style="font-family:Arial;font-size:9pt;"&gt;&lt;span&gt;183,325&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:9pt;"&gt;&lt;span style="font-family:Arial;font-size:9pt;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:9pt;"&gt;&lt;span style="font-family:Arial;font-size:9pt;"&gt;&lt;span&gt;169,769&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:9pt;"&gt;&lt;span style="font-family:Arial;font-size:9pt;"&gt;Gross margin&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:9pt;"&gt;&lt;span style="font-family:Arial;font-size:9pt;"&gt;&lt;span&gt;127,200&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:9pt;"&gt;&lt;span style="font-family:Arial;font-size:9pt;"&gt;&lt;span&gt;148,080&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:9pt;"&gt;&lt;span style="font-family:Arial;font-size:9pt;"&gt;&lt;span&gt;135,693&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:9pt;"&gt;&lt;span style="font-family:Arial;font-size:9pt;"&gt;&lt;span&gt;124,898&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:9pt;"&gt;&lt;span style="font-family:Arial;font-size:9pt;"&gt;Operating income&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:9pt;"&gt;&lt;span style="font-family:Arial;font-size:9pt;"&gt;&lt;span&gt;30,147&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:9pt;"&gt;&lt;span style="font-family:Arial;font-size:9pt;"&gt;&lt;span&gt;51,756&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:9pt;"&gt;&lt;span style="font-family:Arial;font-size:9pt;"&gt;&lt;span&gt;43,092&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:9pt;"&gt;&lt;span style="font-family:Arial;font-size:9pt;"&gt;&lt;span&gt;17,607&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;height:13px;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;height:13px;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;height:13px;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;height:13px;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;height:13px;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;height:13px;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;height:13px;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;height:13px;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:9pt;"&gt;&lt;span style="font-family:Arial;font-size:9pt;"&gt;Net income&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:9pt;"&gt;&lt;span style="font-family:Arial;font-size:9pt;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"&gt;&lt;div style="text-align:right;font-size:9pt;"&gt;&lt;span style="font-family:Arial;font-size:9pt;"&gt;&lt;span&gt;33,104&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;border-top:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:9pt;"&gt;&lt;span style="font-family:Arial;font-size:9pt;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"&gt;&lt;div style="text-align:right;font-size:9pt;"&gt;&lt;span style="font-family:Arial;font-size:9pt;"&gt;&lt;span&gt;48,749&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;border-top:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:9pt;"&gt;&lt;span style="font-family:Arial;font-size:9pt;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"&gt;&lt;div style="text-align:right;font-size:9pt;"&gt;&lt;span style="font-family:Arial;font-size:9pt;"&gt;&lt;span&gt;41,685&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;border-top:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:9pt;"&gt;&lt;span style="font-family:Arial;font-size:9pt;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"&gt;&lt;div style="text-align:right;font-size:9pt;"&gt;&lt;span style="font-family:Arial;font-size:9pt;"&gt;&lt;span&gt;80,327&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;border-top:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;height:13px;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;height:13px;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;height:13px;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;height:13px;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;height:13px;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;height:13px;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;height:13px;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;height:13px;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:9pt;"&gt;&lt;span style="font-family:Arial;font-size:9pt;"&gt;Basic net income per share&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:9pt;"&gt;&lt;span style="font-family:Arial;font-size:9pt;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:9pt;"&gt;&lt;span style="font-family:Arial;font-size:9pt;"&gt;&lt;span&gt;0.19&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:9pt;"&gt;&lt;span style="font-family:Arial;font-size:9pt;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:9pt;"&gt;&lt;span style="font-family:Arial;font-size:9pt;"&gt;&lt;span&gt;0.28&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:9pt;"&gt;&lt;span style="font-family:Arial;font-size:9pt;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:9pt;"&gt;&lt;span style="font-family:Arial;font-size:9pt;"&gt;&lt;span&gt;0.24&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:9pt;"&gt;&lt;span style="font-family:Arial;font-size:9pt;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:9pt;"&gt;&lt;span style="font-family:Arial;font-size:9pt;"&gt;&lt;span&gt;0.47&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:9pt;"&gt;&lt;span style="font-family:Arial;font-size:9pt;"&gt;Diluted net income per share&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:left;font-size:9pt;"&gt;&lt;span style="font-family:Arial;font-size:9pt;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:9pt;"&gt;&lt;span style="font-family:Arial;font-size:9pt;"&gt;&lt;span&gt;0.19&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:left;font-size:9pt;"&gt;&lt;span style="font-family:Arial;font-size:9pt;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:9pt;"&gt;&lt;span style="font-family:Arial;font-size:9pt;"&gt;&lt;span&gt;0.28&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:left;font-size:9pt;"&gt;&lt;span style="font-family:Arial;font-size:9pt;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:9pt;"&gt;&lt;span style="font-family:Arial;font-size:9pt;"&gt;&lt;span&gt;0.24&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:left;font-size:9pt;"&gt;&lt;span style="font-family:Arial;font-size:9pt;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:9pt;"&gt;&lt;span style="font-family:Arial;font-size:9pt;"&gt;&lt;span&gt;0.46&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style="line-height:120%;padding-top:12px;text-align:center;font-size:10pt;"&gt;&lt;div style="padding-left:0px;text-indent:0px;line-height:normal;padding-top:10px;"&gt;&lt;table cellpadding="0" cellspacing="0" style="font-family:Times New Roman;font-size:10pt;margin-left:auto;margin-right:auto;width:100%;border-collapse:collapse;text-align:left;"&gt;&lt;tr&gt;&lt;td colspan="16"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="width:53%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:9%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:9%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:9%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:9%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:8pt;"&gt;&lt;span style="font-family:inherit;font-size:8pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="15" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;span style="font-family:Arial;font-size:8pt;font-weight:bold;"&gt;Quarter Ended&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:8pt;"&gt;&lt;span style="font-family:inherit;font-size:8pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;border-top:1px solid #000000;"&gt;&lt;div style="text-align:center;font-size:7pt;"&gt;&lt;span style="font-family:Arial;font-size:7pt;font-weight:bold;"&gt;April 1,                        2018&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;border-top:1px solid #000000;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;border-top:1px solid #000000;"&gt;&lt;div style="text-align:center;font-size:7pt;"&gt;&lt;span style="font-family:Arial;font-size:7pt;font-weight:bold;"&gt;July 1,                                 2018&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;border-top:1px solid #000000;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;border-top:1px solid #000000;"&gt;&lt;div style="text-align:center;font-size:7pt;"&gt;&lt;span style="font-family:Arial;font-size:7pt;font-weight:bold;"&gt;September 30,                           2018&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;border-top:1px solid #000000;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;border-top:1px solid #000000;"&gt;&lt;div style="text-align:center;font-size:7pt;"&gt;&lt;span style="font-family:Arial;font-size:7pt;font-weight:bold;"&gt;December&#160;31,&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:center;font-size:7pt;"&gt;&lt;span style="font-family:Arial;font-size:7pt;font-weight:bold;"&gt;2018&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:8pt;"&gt;&lt;span style="font-family:inherit;font-size:8pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="15" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;span style="font-family:Arial;font-size:8pt;"&gt;(In thousands, except per share amounts)&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:9pt;"&gt;&lt;span style="font-family:Arial;font-size:9pt;"&gt;Revenue&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:9pt;"&gt;&lt;span style="font-family:Arial;font-size:9pt;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:9pt;"&gt;&lt;span style="font-family:Arial;font-size:9pt;"&gt;&lt;span&gt;169,567&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:9pt;"&gt;&lt;span style="font-family:Arial;font-size:9pt;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:9pt;"&gt;&lt;span style="font-family:Arial;font-size:9pt;"&gt;&lt;span&gt;211,264&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:9pt;"&gt;&lt;span style="font-family:Arial;font-size:9pt;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:9pt;"&gt;&lt;span style="font-family:Arial;font-size:9pt;"&gt;&lt;span&gt;232,221&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:9pt;"&gt;&lt;span style="font-family:Arial;font-size:9pt;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:9pt;"&gt;&lt;span style="font-family:Arial;font-size:9pt;"&gt;&lt;span&gt;193,286&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:9pt;"&gt;&lt;span style="font-family:Arial;font-size:9pt;"&gt;Gross margin&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:9pt;"&gt;&lt;span style="font-family:Arial;font-size:9pt;"&gt;&lt;span&gt;129,369&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:9pt;"&gt;&lt;span style="font-family:Arial;font-size:9pt;"&gt;&lt;span&gt;157,095&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:9pt;"&gt;&lt;span style="font-family:Arial;font-size:9pt;"&gt;&lt;span&gt;173,361&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:9pt;"&gt;&lt;span style="font-family:Arial;font-size:9pt;"&gt;&lt;span&gt;140,461&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:9pt;"&gt;&lt;span style="font-family:Arial;font-size:9pt;"&gt;Operating income&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:9pt;"&gt;&lt;span style="font-family:Arial;font-size:9pt;"&gt;&lt;span&gt;34,596&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:9pt;"&gt;&lt;span style="font-family:Arial;font-size:9pt;"&gt;&lt;span&gt;63,455&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:9pt;"&gt;&lt;span style="font-family:Arial;font-size:9pt;"&gt;&lt;span&gt;77,844&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:9pt;"&gt;&lt;span style="font-family:Arial;font-size:9pt;"&gt;&lt;span&gt;45,247&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;height:13px;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;height:13px;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;height:13px;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;height:13px;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;height:13px;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;height:13px;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;height:13px;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;height:13px;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:9pt;"&gt;&lt;span style="font-family:Arial;font-size:9pt;"&gt;Net income&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:9pt;"&gt;&lt;span style="font-family:Arial;font-size:9pt;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"&gt;&lt;div style="text-align:right;font-size:9pt;"&gt;&lt;span style="font-family:Arial;font-size:9pt;"&gt;&lt;span&gt;37,217&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;border-top:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:9pt;"&gt;&lt;span style="font-family:Arial;font-size:9pt;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"&gt;&lt;div style="text-align:right;font-size:9pt;"&gt;&lt;span style="font-family:Arial;font-size:9pt;"&gt;&lt;span&gt;56,196&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;border-top:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:9pt;"&gt;&lt;span style="font-family:Arial;font-size:9pt;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"&gt;&lt;div style="text-align:right;font-size:9pt;"&gt;&lt;span style="font-family:Arial;font-size:9pt;"&gt;&lt;span&gt;80,436&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;border-top:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:9pt;"&gt;&lt;span style="font-family:Arial;font-size:9pt;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"&gt;&lt;div style="text-align:right;font-size:9pt;"&gt;&lt;span style="font-family:Arial;font-size:9pt;"&gt;&lt;span&gt;45,418&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;border-top:1px solid #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;height:13px;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;height:13px;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;height:13px;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;height:13px;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;height:13px;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;height:13px;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;height:13px;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;height:13px;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:9pt;"&gt;&lt;span style="font-family:Arial;font-size:9pt;"&gt;Basic net income per share&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:9pt;"&gt;&lt;span style="font-family:Arial;font-size:9pt;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:9pt;"&gt;&lt;span style="font-family:Arial;font-size:9pt;"&gt;&lt;span&gt;0.21&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:9pt;"&gt;&lt;span style="font-family:Arial;font-size:9pt;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:9pt;"&gt;&lt;span style="font-family:Arial;font-size:9pt;"&gt;&lt;span&gt;0.33&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:9pt;"&gt;&lt;span style="font-family:Arial;font-size:9pt;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:9pt;"&gt;&lt;span style="font-family:Arial;font-size:9pt;"&gt;&lt;span&gt;0.47&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:9pt;"&gt;&lt;span style="font-family:Arial;font-size:9pt;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:9pt;"&gt;&lt;span style="font-family:Arial;font-size:9pt;"&gt;&lt;span&gt;0.26&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:9pt;"&gt;&lt;span style="font-family:Arial;font-size:9pt;"&gt;Diluted net income per share&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:left;font-size:9pt;"&gt;&lt;span style="font-family:Arial;font-size:9pt;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:9pt;"&gt;&lt;span style="font-family:Arial;font-size:9pt;"&gt;&lt;span&gt;0.21&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:left;font-size:9pt;"&gt;&lt;span style="font-family:Arial;font-size:9pt;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:9pt;"&gt;&lt;span style="font-family:Arial;font-size:9pt;"&gt;&lt;span&gt;0.32&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:left;font-size:9pt;"&gt;&lt;span style="font-family:Arial;font-size:9pt;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:9pt;"&gt;&lt;span style="font-family:Arial;font-size:9pt;"&gt;&lt;span&gt;0.45&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:left;font-size:9pt;"&gt;&lt;span style="font-family:Arial;font-size:9pt;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:9pt;"&gt;&lt;span style="font-family:Arial;font-size:9pt;"&gt;&lt;span&gt;0.26&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;border-bottom:3px double #000000;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;</us-gaap:ScheduleOfQuarterlyFinancialInformationTableTextBlock>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="FD2018Q1QTD"
      decimals="-3"
      id="d9078709e916-wk-Fact-0F3D5AFD180ED4C710508095A17C6F61"
      unitRef="usd">173484000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="FD2018Q2QTD"
      decimals="-3"
      id="d9078709e935-wk-Fact-2AEE00AD41DEDFDC36558095A182F2C7"
      unitRef="usd">199047000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="FD2018Q3QTD"
      decimals="-3"
      id="d9078709e954-wk-Fact-A13214538EC8FB6D8ECA8095A19083CB"
      unitRef="usd">183325000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="FD2018Q4QTD"
      decimals="-3"
      id="d9078709e974-wk-Fact-B6F1583CF9D9BAA053A58095A17A0AF8"
      unitRef="usd">169769000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:GrossProfit
      contextRef="FD2018Q1QTD"
      decimals="-3"
      id="d9078709e989-wk-Fact-76218B24ECBAD1824E658095A172DF0E"
      unitRef="usd">127200000</us-gaap:GrossProfit>
    <us-gaap:GrossProfit
      contextRef="FD2018Q2QTD"
      decimals="-3"
      id="d9078709e1008-wk-Fact-BD48B730ECF0E6C1B7478095A17A395D"
      unitRef="usd">148080000</us-gaap:GrossProfit>
    <us-gaap:GrossProfit
      contextRef="FD2018Q3QTD"
      decimals="-3"
      id="d9078709e1027-wk-Fact-2CEA2D8D97A0320FFF698095A17B69D8"
      unitRef="usd">135693000</us-gaap:GrossProfit>
    <us-gaap:GrossProfit
      contextRef="FD2018Q4QTD"
      decimals="-3"
      id="d9078709e1047-wk-Fact-A99FD87EBD0677D598278095A17C1AD5"
      unitRef="usd">124898000</us-gaap:GrossProfit>
    <us-gaap:OperatingIncomeLoss
      contextRef="FD2018Q1QTD"
      decimals="-3"
      id="d9078709e1067-wk-Fact-7C09B9903B72A023AA808095A17A81A9"
      unitRef="usd">30147000</us-gaap:OperatingIncomeLoss>
    <us-gaap:OperatingIncomeLoss
      contextRef="FD2018Q2QTD"
      decimals="-3"
      id="d9078709e1086-wk-Fact-F40D42F67F6266FE45388095A17B1884"
      unitRef="usd">51756000</us-gaap:OperatingIncomeLoss>
    <us-gaap:OperatingIncomeLoss
      contextRef="FD2018Q3QTD"
      decimals="-3"
      id="d9078709e1105-wk-Fact-8C5B008D76B94430B1958095A17151D7"
      unitRef="usd">43092000</us-gaap:OperatingIncomeLoss>
    <us-gaap:OperatingIncomeLoss
      contextRef="FD2018Q4QTD"
      decimals="-3"
      id="d9078709e1125-wk-Fact-D5F331CD899920F7DAC08095A17C2B93"
      unitRef="usd">17607000</us-gaap:OperatingIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="FD2018Q1QTD"
      decimals="-3"
      id="d9078709e1232-wk-Fact-D5578E1170B89D5F74E38095A18D05EE"
      unitRef="usd">33104000</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="FD2018Q2QTD"
      decimals="-3"
      id="d9078709e1251-wk-Fact-6473E2F43C985901CF948095A18D7790"
      unitRef="usd">48749000</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="FD2018Q3QTD"
      decimals="-3"
      id="d9078709e1270-wk-Fact-445525DB6B298C47ED6D8095A17CECF0"
      unitRef="usd">41685000</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="FD2018Q4QTD"
      decimals="-3"
      id="d9078709e1290-wk-Fact-A45C846CB093036178468095A182AB74"
      unitRef="usd">80327000</us-gaap:NetIncomeLoss>
    <us-gaap:EarningsPerShareBasic
      contextRef="FD2018Q1QTD"
      decimals="2"
      id="d9078709e1392-wk-Fact-E0CCC95456D13D06C3798095A17B4409"
      unitRef="usdPerShare">0.19</us-gaap:EarningsPerShareBasic>
    <us-gaap:EarningsPerShareBasic
      contextRef="FD2018Q2QTD"
      decimals="2"
      id="d9078709e1411-wk-Fact-A2AFAA983C37044FBAB28095A17C97B5"
      unitRef="usdPerShare">0.28</us-gaap:EarningsPerShareBasic>
    <us-gaap:EarningsPerShareBasic
      contextRef="FD2018Q3QTD"
      decimals="2"
      id="d9078709e1430-wk-Fact-C384FDB707F6EFD87AEB8095A17AA09A"
      unitRef="usdPerShare">0.24</us-gaap:EarningsPerShareBasic>
    <us-gaap:EarningsPerShareBasic
      contextRef="FD2018Q4QTD"
      decimals="2"
      id="d9078709e1450-wk-Fact-198AD9898DB0CAF58D268095A1871E47"
      unitRef="usdPerShare">0.47</us-gaap:EarningsPerShareBasic>
    <us-gaap:EarningsPerShareDiluted
      contextRef="FD2018Q1QTD"
      decimals="2"
      id="d9078709e1470-wk-Fact-DE41B93CE9099F3C2AE98095A17C2523"
      unitRef="usdPerShare">0.19</us-gaap:EarningsPerShareDiluted>
    <us-gaap:EarningsPerShareDiluted
      contextRef="FD2018Q2QTD"
      decimals="2"
      id="d9078709e1489-wk-Fact-61DF10345D2563EA48598095A17CB34A"
      unitRef="usdPerShare">0.28</us-gaap:EarningsPerShareDiluted>
    <us-gaap:EarningsPerShareDiluted
      contextRef="FD2018Q3QTD"
      decimals="2"
      id="d9078709e1508-wk-Fact-C338B540480747BF07478095A17CA1C5"
      unitRef="usdPerShare">0.24</us-gaap:EarningsPerShareDiluted>
    <us-gaap:EarningsPerShareDiluted
      contextRef="FD2018Q4QTD"
      decimals="2"
      id="d9078709e1528-wk-Fact-675FB3CEB3AA26E788DF8095A17A4274"
      unitRef="usdPerShare">0.46</us-gaap:EarningsPerShareDiluted>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="FD2017Q1QTD"
      decimals="-3"
      id="d9078709e1819-wk-Fact-3920CB17D50C4C7E31118095A186DFB8"
      unitRef="usd">169567000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="FD2017Q2QTD"
      decimals="-3"
      id="d9078709e1838-wk-Fact-BDFADE43B52F26242F578095A1868239"
      unitRef="usd">211264000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="FD2017Q3QTD"
      decimals="-3"
      id="d9078709e1857-wk-Fact-0D47646625B7A55C88B68095A186D2BE"
      unitRef="usd">232221000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="FD2017Q4QTD"
      decimals="-3"
      id="d9078709e1877-wk-Fact-E070F7CD5428A6D36EF78095A1866DA9"
      unitRef="usd">193286000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:GrossProfit
      contextRef="FD2017Q1QTD"
      decimals="-3"
      id="d9078709e1892-wk-Fact-CC8C7B729AC3A6E3852C8095A18682DD"
      unitRef="usd">129369000</us-gaap:GrossProfit>
    <us-gaap:GrossProfit
      contextRef="FD2017Q2QTD"
      decimals="-3"
      id="d9078709e1911-wk-Fact-7656529E037498B80CE98095A17C46F4"
      unitRef="usd">157095000</us-gaap:GrossProfit>
    <us-gaap:GrossProfit
      contextRef="FD2017Q3QTD"
      decimals="-3"
      id="d9078709e1930-wk-Fact-880A0D9DADC95E28A1CD8095A1854925"
      unitRef="usd">173361000</us-gaap:GrossProfit>
    <us-gaap:GrossProfit
      contextRef="FD2017Q4QTD"
      decimals="-3"
      id="d9078709e1950-wk-Fact-B464132035DF5045367E8095A17C1E82"
      unitRef="usd">140461000</us-gaap:GrossProfit>
    <us-gaap:OperatingIncomeLoss
      contextRef="FD2017Q1QTD"
      decimals="-3"
      id="d9078709e1970-wk-Fact-0E76742FEA1ADDD4F8DA8095A1868115"
      unitRef="usd">34596000</us-gaap:OperatingIncomeLoss>
    <us-gaap:OperatingIncomeLoss
      contextRef="FD2017Q2QTD"
      decimals="-3"
      id="d9078709e1989-wk-Fact-04B78E66E1ADC131DC598095A17CDBCB"
      unitRef="usd">63455000</us-gaap:OperatingIncomeLoss>
    <us-gaap:OperatingIncomeLoss
      contextRef="FD2017Q3QTD"
      decimals="-3"
      id="d9078709e2008-wk-Fact-69C20E0FCCDEE049E4438095A185077A"
      unitRef="usd">77844000</us-gaap:OperatingIncomeLoss>
    <us-gaap:OperatingIncomeLoss
      contextRef="FD2017Q4QTD"
      decimals="-3"
      id="d9078709e2028-wk-Fact-D653218595578EE2CB0F8095A18C3AFE"
      unitRef="usd">45247000</us-gaap:OperatingIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="FD2017Q1QTD"
      decimals="-3"
      id="d9078709e2135-wk-Fact-79E12800BDA3FAF722788095A1858389"
      unitRef="usd">37217000</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="FD2017Q2QTD"
      decimals="-3"
      id="d9078709e2154-wk-Fact-0AB620A4E6AC09D08F5E8095A1854DE6"
      unitRef="usd">56196000</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="FD2017Q3QTD"
      decimals="-3"
      id="d9078709e2173-wk-Fact-8DB6F42D0F6AAAA648D48095A17C357C"
      unitRef="usd">80436000</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="FD2017Q4QTD"
      decimals="-3"
      id="d9078709e2193-wk-Fact-71E6715CBE47C8DFE2938095A17C5E16"
      unitRef="usd">45418000</us-gaap:NetIncomeLoss>
    <us-gaap:EarningsPerShareBasic
      contextRef="FD2017Q1QTD"
      decimals="2"
      id="d9078709e2295-wk-Fact-C27190E20EFAA3BC73F98095A18793E7"
      unitRef="usdPerShare">0.21</us-gaap:EarningsPerShareBasic>
    <us-gaap:EarningsPerShareBasic
      contextRef="FD2017Q2QTD"
      decimals="2"
      id="d9078709e2314-wk-Fact-8EC5F5D9BD734083F7F38095A17C2C84"
      unitRef="usdPerShare">0.33</us-gaap:EarningsPerShareBasic>
    <us-gaap:EarningsPerShareBasic
      contextRef="FD2017Q3QTD"
      decimals="2"
      id="d9078709e2333-wk-Fact-14335D8C6430ED3321FD8095A18589F1"
      unitRef="usdPerShare">0.47</us-gaap:EarningsPerShareBasic>
    <us-gaap:EarningsPerShareBasic
      contextRef="FD2017Q4QTD"
      decimals="2"
      id="d9078709e2353-wk-Fact-D149391872D6571B1D288095A1864389"
      unitRef="usdPerShare">0.26</us-gaap:EarningsPerShareBasic>
    <us-gaap:EarningsPerShareDiluted
      contextRef="FD2017Q1QTD"
      decimals="2"
      id="d9078709e2373-wk-Fact-88198E2D41D3A77972E68095A185A367"
      unitRef="usdPerShare">0.21</us-gaap:EarningsPerShareDiluted>
    <us-gaap:EarningsPerShareDiluted
      contextRef="FD2017Q2QTD"
      decimals="2"
      id="d9078709e2392-wk-Fact-B1009FCA9253C6B9FD2B8095A18678C0"
      unitRef="usdPerShare">0.32</us-gaap:EarningsPerShareDiluted>
    <us-gaap:EarningsPerShareDiluted
      contextRef="FD2017Q3QTD"
      decimals="2"
      id="d9078709e2411-wk-Fact-5629BF34845CE9940A688095A1709EF0"
      unitRef="usdPerShare">0.45</us-gaap:EarningsPerShareDiluted>
    <us-gaap:EarningsPerShareDiluted
      contextRef="FD2017Q4QTD"
      decimals="2"
      id="d9078709e2431-wk-Fact-1B693266F959B0690E848095A187CC10"
      unitRef="usdPerShare">0.26</us-gaap:EarningsPerShareDiluted>
    <srt:ScheduleOfValuationAndQualifyingAccountsDisclosureTextBlock
      contextRef="FD2019Q4YTD"
      id="TextSelection-20F28FE9E976D6378BB18095A1A8F99D-0-wk-Fact-C6944E86A28583F59EEF8095A17AF6B7">SCHEDULE II &#x2013; VALUATION AND QUALIFYING ACCOUNTS&lt;div style="line-height:120%;font-size:10pt;"&gt;&lt;div style="padding-left:0px;text-indent:0px;line-height:normal;padding-top:10px;"&gt;&lt;table cellpadding="0" cellspacing="0" style="font-family:Times New Roman;font-size:10pt;width:100%;border-collapse:collapse;text-align:left;"&gt;&lt;tr&gt;&lt;td colspan="25"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="width:28%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:8%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:8%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:8%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:8%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:4%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:8%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:4%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;td style="width:8%;"/&gt;&lt;td style="width:1%;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:8pt;"&gt;&lt;span style="font-family:inherit;font-size:8pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:8pt;"&gt;&lt;span style="font-family:inherit;font-size:8pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="7" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;span style="font-family:Arial;font-size:8pt;font-weight:bold;"&gt;Additions&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:8pt;"&gt;&lt;span style="font-family:inherit;font-size:8pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:8pt;"&gt;&lt;span style="font-family:inherit;font-size:8pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:8pt;"&gt;&lt;span style="font-family:inherit;font-size:8pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:8pt;"&gt;&lt;span style="font-family:inherit;font-size:8pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:8pt;"&gt;&lt;span style="font-family:inherit;font-size:8pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;span style="font-family:Arial;font-size:8pt;font-weight:bold;"&gt;Description&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;span style="font-family:Arial;font-size:8pt;font-weight:bold;"&gt;Balance&#160;at&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;span style="font-family:Arial;font-size:8pt;font-weight:bold;"&gt;Beginning&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;span style="font-family:Arial;font-size:8pt;font-weight:bold;"&gt;of Period&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;span style="font-family:Arial;font-size:8pt;font-weight:bold;"&gt;Charged&#160;to&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;span style="font-family:Arial;font-size:8pt;font-weight:bold;"&gt;Costs and&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;span style="font-family:Arial;font-size:8pt;font-weight:bold;"&gt;Expenses&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;span style="font-family:Arial;font-size:8pt;font-weight:bold;"&gt;Charged&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;span style="font-family:Arial;font-size:8pt;font-weight:bold;"&gt;to Other&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;span style="font-family:Arial;font-size:8pt;font-weight:bold;"&gt;Accounts&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;span style="font-family:Arial;font-size:8pt;font-weight:bold;"&gt;Deductions&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:8pt;"&gt;&lt;span style="font-family:inherit;font-size:8pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;span style="font-family:Arial;font-size:8pt;font-weight:bold;"&gt;Other&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:8pt;"&gt;&lt;span style="font-family:inherit;font-size:8pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;span style="font-family:Arial;font-size:8pt;font-weight:bold;"&gt;Balance&#160;at&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;span style="font-family:Arial;font-size:8pt;font-weight:bold;"&gt;End of&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;span style="font-family:Arial;font-size:8pt;font-weight:bold;"&gt;Period&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="23" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:center;font-size:8pt;"&gt;&lt;span style="font-family:Arial;font-size:8pt;"&gt;(In thousands)&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Reserve&#160;for&#160;Uncollectible Accounts Receivable and Sales Returns:&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;2019&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;1,646&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;440&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&#x2014;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;(286&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;)&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;(a)&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;21&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;(b)&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;1,821&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;2018&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;1,568&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;464&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&#x2014;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;(343&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;)&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;(a)&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;(43&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;)&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;(b)&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;1,646&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;2017&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;873&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;724&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&#x2014;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;(116&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;)&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;(a)&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;87&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;(b)&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;1,568&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Deferred Tax Valuation Allowance:&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;2019&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;6,112&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;1,200&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&#x2014;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;&#x2014;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;&#x2014;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;7,312&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;2018&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;5,309&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;803&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&#x2014;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;&#x2014;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;&#x2014;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;6,112&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;background-color:#cceeff;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;2017&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;4,116&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;1,193&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&#x2014;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;&#x2014;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;&#x2014;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"&gt;&lt;div style="overflow:hidden;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;$&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"&gt;&lt;div style="text-align:right;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;span&gt;5,309&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;div style="text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:inherit;font-size:10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;/div&gt;&lt;table cellpadding="0" cellspacing="0" style="padding-top:12px;font-family:Times New Roman; font-size:10pt;"&gt;&lt;tr&gt;&lt;td style="width:48px;"/&gt;&lt;td/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:top"&gt;&lt;div style="line-height:120%;font-size:10pt;padding-left:0px;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;(a)&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:top;"&gt;&lt;div style="line-height:120%;text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Specific write-offs&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;div style="line-height:120%;font-size:10pt;padding-left:0px;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;(b)&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:120%;text-align:left;font-size:10pt;"&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Foreign currency exchange rate changes&lt;/span&gt;&lt;/div&gt;</srt:ScheduleOfValuationAndQualifyingAccountsDisclosureTextBlock>
    <us-gaap:ValuationAllowancesAndReservesBalance
      contextRef="FI2018Q4_us-gaap_ValuationAllowancesAndReservesTypeAxis_us-gaap_UncollectibleReceivablesMember"
      decimals="-3"
      id="d9079139e1228-wk-Fact-87E4FC26CB72303A53708095A17BF063"
      unitRef="usd">1646000</us-gaap:ValuationAllowancesAndReservesBalance>
    <us-gaap:ValuationAllowancesAndReservesChargedToCostAndExpense
      contextRef="FD2019Q4YTD_us-gaap_ValuationAllowancesAndReservesTypeAxis_us-gaap_UncollectibleReceivablesMember"
      decimals="-3"
      id="d9079139e1247-wk-Fact-7B6C589C200613BAD24D8095A17C6A10"
      unitRef="usd">440000</us-gaap:ValuationAllowancesAndReservesChargedToCostAndExpense>
    <us-gaap:ValuationAllowancesAndReservesDeductions
      contextRef="FD2019Q4YTD_us-gaap_ValuationAllowancesAndReservesTypeAxis_us-gaap_UncollectibleReceivablesMember"
      decimals="-3"
      id="d9079139e1286-wk-Fact-A65365A258FB3647599F8095A17DAC72"
      unitRef="usd">286000</us-gaap:ValuationAllowancesAndReservesDeductions>
    <us-gaap:ValuationAllowancesAndReservesAdjustments
      contextRef="FD2019Q4YTD_us-gaap_ValuationAllowancesAndReservesTypeAxis_us-gaap_UncollectibleReceivablesMember"
      decimals="-3"
      id="d9079139e1306-wk-Fact-879A387494417E59E1988095A18341E4"
      unitRef="usd">21000</us-gaap:ValuationAllowancesAndReservesAdjustments>
    <us-gaap:ValuationAllowancesAndReservesBalance
      contextRef="FI2019Q4_us-gaap_ValuationAllowancesAndReservesTypeAxis_us-gaap_UncollectibleReceivablesMember"
      decimals="-3"
      id="d9079139e1326-wk-Fact-8222489A5C62A576883C8095A18346F1"
      unitRef="usd">1821000</us-gaap:ValuationAllowancesAndReservesBalance>
    <us-gaap:ValuationAllowancesAndReservesBalance
      contextRef="FI2017Q4_us-gaap_ValuationAllowancesAndReservesTypeAxis_us-gaap_UncollectibleReceivablesMember"
      decimals="-3"
      id="d9079139e1351-wk-Fact-89C9C310EEFCB41784538095A17B2DE3"
      unitRef="usd">1568000</us-gaap:ValuationAllowancesAndReservesBalance>
    <us-gaap:ValuationAllowancesAndReservesChargedToCostAndExpense
      contextRef="FD2018Q4YTD_us-gaap_ValuationAllowancesAndReservesTypeAxis_us-gaap_UncollectibleReceivablesMember"
      decimals="-3"
      id="d9079139e1370-wk-Fact-E177AF9ACCD4716C4AD08095A183160F"
      unitRef="usd">464000</us-gaap:ValuationAllowancesAndReservesChargedToCostAndExpense>
    <us-gaap:ValuationAllowancesAndReservesDeductions
      contextRef="FD2018Q4YTD_us-gaap_ValuationAllowancesAndReservesTypeAxis_us-gaap_UncollectibleReceivablesMember"
      decimals="-3"
      id="d9079139e1409-wk-Fact-1FFB429A537E4C5CE51F8095A1857350"
      unitRef="usd">343000</us-gaap:ValuationAllowancesAndReservesDeductions>
    <us-gaap:ValuationAllowancesAndReservesAdjustments
      contextRef="FD2018Q4YTD_us-gaap_ValuationAllowancesAndReservesTypeAxis_us-gaap_UncollectibleReceivablesMember"
      decimals="-3"
      id="d9079139e1429-wk-Fact-11AE063E18784FFBA1088095A1826551"
      unitRef="usd">-43000</us-gaap:ValuationAllowancesAndReservesAdjustments>
    <us-gaap:ValuationAllowancesAndReservesBalance
      contextRef="FI2018Q4_us-gaap_ValuationAllowancesAndReservesTypeAxis_us-gaap_UncollectibleReceivablesMember"
      decimals="-3"
      id="d9079139e1450-wk-Fact-87E4FC26CB72303A53708095A17BF063"
      unitRef="usd">1646000</us-gaap:ValuationAllowancesAndReservesBalance>
    <us-gaap:ValuationAllowancesAndReservesBalance
      contextRef="FI2016Q4_us-gaap_ValuationAllowancesAndReservesTypeAxis_us-gaap_UncollectibleReceivablesMember"
      decimals="-3"
      id="d9079139e1475-wk-Fact-FCBA7C324AACCB28B7DF8095A17C94AF"
      unitRef="usd">873000</us-gaap:ValuationAllowancesAndReservesBalance>
    <us-gaap:ValuationAllowancesAndReservesChargedToCostAndExpense
      contextRef="FD2017Q4YTD_us-gaap_ValuationAllowancesAndReservesTypeAxis_us-gaap_UncollectibleReceivablesMember"
      decimals="-3"
      id="d9079139e1494-wk-Fact-D49A9232DF37B0F3C1FE8095A185074A"
      unitRef="usd">724000</us-gaap:ValuationAllowancesAndReservesChargedToCostAndExpense>
    <us-gaap:ValuationAllowancesAndReservesDeductions
      contextRef="FD2017Q4YTD_us-gaap_ValuationAllowancesAndReservesTypeAxis_us-gaap_UncollectibleReceivablesMember"
      decimals="-3"
      id="d9079139e1533-wk-Fact-2D57E67BFA036544552D8095A1837277"
      unitRef="usd">116000</us-gaap:ValuationAllowancesAndReservesDeductions>
    <us-gaap:ValuationAllowancesAndReservesAdjustments
      contextRef="FD2017Q4YTD_us-gaap_ValuationAllowancesAndReservesTypeAxis_us-gaap_UncollectibleReceivablesMember"
      decimals="-3"
      id="d9079139e1553-wk-Fact-A75B46C0A167028388288095A17D9C31"
      unitRef="usd">87000</us-gaap:ValuationAllowancesAndReservesAdjustments>
    <us-gaap:ValuationAllowancesAndReservesBalance
      contextRef="FI2017Q4_us-gaap_ValuationAllowancesAndReservesTypeAxis_us-gaap_UncollectibleReceivablesMember"
      decimals="-3"
      id="d9079139e1573-wk-Fact-89C9C310EEFCB41784538095A17B2DE3"
      unitRef="usd">1568000</us-gaap:ValuationAllowancesAndReservesBalance>
    <us-gaap:ValuationAllowancesAndReservesBalance
      contextRef="FI2018Q4_us-gaap_ValuationAllowancesAndReservesTypeAxis_us-gaap_ValuationAllowanceOfDeferredTaxAssetsMember"
      decimals="-3"
      id="d9079139e1726-wk-Fact-0A4F3A50380CCF5EB6188095A17D04ED"
      unitRef="usd">6112000</us-gaap:ValuationAllowancesAndReservesBalance>
    <us-gaap:ValuationAllowancesAndReservesChargedToCostAndExpense
      contextRef="FD2019Q4YTD_us-gaap_ValuationAllowancesAndReservesTypeAxis_us-gaap_ValuationAllowanceOfDeferredTaxAssetsMember"
      decimals="-3"
      id="d9079139e1745-wk-Fact-E3E43B67FDC6A2DD3BC98095A1843AAB"
      unitRef="usd">1200000</us-gaap:ValuationAllowancesAndReservesChargedToCostAndExpense>
    <us-gaap:ValuationAllowancesAndReservesDeductions
      contextRef="FD2019Q4YTD_us-gaap_ValuationAllowancesAndReservesTypeAxis_us-gaap_ValuationAllowanceOfDeferredTaxAssetsMember"
      decimals="-3"
      id="d9079139e1784-wk-Fact-9ABFF64C7B0DBFF0A97B8095A183EF8D"
      unitRef="usd">0</us-gaap:ValuationAllowancesAndReservesDeductions>
    <us-gaap:ValuationAllowancesAndReservesAdjustments
      contextRef="FD2019Q4YTD_us-gaap_ValuationAllowancesAndReservesTypeAxis_us-gaap_ValuationAllowanceOfDeferredTaxAssetsMember"
      decimals="-3"
      id="d9079139e1803-wk-Fact-E2D77C7AC24D116090F68095A17DD555"
      unitRef="usd">0</us-gaap:ValuationAllowancesAndReservesAdjustments>
    <us-gaap:ValuationAllowancesAndReservesBalance
      contextRef="FI2019Q4_us-gaap_ValuationAllowancesAndReservesTypeAxis_us-gaap_ValuationAllowanceOfDeferredTaxAssetsMember"
      decimals="-3"
      id="d9079139e1823-wk-Fact-B2CEFB81D22439C2A6708095A17DE002"
      unitRef="usd">7312000</us-gaap:ValuationAllowancesAndReservesBalance>
    <us-gaap:ValuationAllowancesAndReservesBalance
      contextRef="FI2017Q4_us-gaap_ValuationAllowancesAndReservesTypeAxis_us-gaap_ValuationAllowanceOfDeferredTaxAssetsMember"
      decimals="-3"
      id="d9079139e1848-wk-Fact-AE88C301C1032988D07F8095A173C3EA"
      unitRef="usd">5309000</us-gaap:ValuationAllowancesAndReservesBalance>
    <us-gaap:ValuationAllowancesAndReservesChargedToCostAndExpense
      contextRef="FD2018Q4YTD_us-gaap_ValuationAllowancesAndReservesTypeAxis_us-gaap_ValuationAllowanceOfDeferredTaxAssetsMember"
      decimals="-3"
      id="d9079139e1867-wk-Fact-73BCBC71C789E54F8B818095A183319B"
      unitRef="usd">803000</us-gaap:ValuationAllowancesAndReservesChargedToCostAndExpense>
    <us-gaap:ValuationAllowancesAndReservesDeductions
      contextRef="FD2018Q4YTD_us-gaap_ValuationAllowancesAndReservesTypeAxis_us-gaap_ValuationAllowanceOfDeferredTaxAssetsMember"
      decimals="-3"
      id="d9079139e1906-wk-Fact-1320AFD2ED831E38A2D78095A183B378"
      unitRef="usd">0</us-gaap:ValuationAllowancesAndReservesDeductions>
    <us-gaap:ValuationAllowancesAndReservesAdjustments
      contextRef="FD2018Q4YTD_us-gaap_ValuationAllowancesAndReservesTypeAxis_us-gaap_ValuationAllowanceOfDeferredTaxAssetsMember"
      decimals="-3"
      id="d9079139e1925-wk-Fact-4CBB78BCB5BF39A0D1808095A17C1E6E"
      unitRef="usd">0</us-gaap:ValuationAllowancesAndReservesAdjustments>
    <us-gaap:ValuationAllowancesAndReservesBalance
      contextRef="FI2018Q4_us-gaap_ValuationAllowancesAndReservesTypeAxis_us-gaap_ValuationAllowanceOfDeferredTaxAssetsMember"
      decimals="-3"
      id="d9079139e1945-wk-Fact-0A4F3A50380CCF5EB6188095A17D04ED"
      unitRef="usd">6112000</us-gaap:ValuationAllowancesAndReservesBalance>
    <us-gaap:ValuationAllowancesAndReservesBalance
      contextRef="FI2016Q4_us-gaap_ValuationAllowancesAndReservesTypeAxis_us-gaap_ValuationAllowanceOfDeferredTaxAssetsMember"
      decimals="-3"
      id="d9079139e1970-wk-Fact-DDD60FBECD7A6F43D30D8095A1858BB3"
      unitRef="usd">4116000</us-gaap:ValuationAllowancesAndReservesBalance>
    <us-gaap:ValuationAllowancesAndReservesChargedToCostAndExpense
      contextRef="FD2017Q4YTD_us-gaap_ValuationAllowancesAndReservesTypeAxis_us-gaap_ValuationAllowanceOfDeferredTaxAssetsMember"
      decimals="-3"
      id="d9079139e1989-wk-Fact-EFEC1D19F1540731983E8095A19095D2"
      unitRef="usd">1193000</us-gaap:ValuationAllowancesAndReservesChargedToCostAndExpense>
    <us-gaap:ValuationAllowancesAndReservesDeductions
      contextRef="FD2017Q4YTD_us-gaap_ValuationAllowancesAndReservesTypeAxis_us-gaap_ValuationAllowanceOfDeferredTaxAssetsMember"
      decimals="-3"
      id="d9079139e2028-wk-Fact-8FDDA9B6BF6B548FF4518095A17DA80A"
      unitRef="usd">0</us-gaap:ValuationAllowancesAndReservesDeductions>
    <us-gaap:ValuationAllowancesAndReservesAdjustments
      contextRef="FD2017Q4YTD_us-gaap_ValuationAllowancesAndReservesTypeAxis_us-gaap_ValuationAllowanceOfDeferredTaxAssetsMember"
      decimals="-3"
      id="d9079139e2047-wk-Fact-34959B105093717C46378095A1840BD4"
      unitRef="usd">0</us-gaap:ValuationAllowancesAndReservesAdjustments>
    <us-gaap:ValuationAllowancesAndReservesBalance
      contextRef="FI2017Q4_us-gaap_ValuationAllowancesAndReservesTypeAxis_us-gaap_ValuationAllowanceOfDeferredTaxAssetsMember"
      decimals="-3"
      id="d9079139e2067-wk-Fact-AE88C301C1032988D07F8095A173C3EA"
      unitRef="usd">5309000</us-gaap:ValuationAllowancesAndReservesBalance>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant
      contextRef="FI2019Q4_us-gaap_AwardTypeAxis_us-gaap_EmployeeStockOptionMember"
      decimals="0"
      id="d9080387e842-wk-Fact-0D4573E0C663496D8B9A8095A197212A"
      unitRef="shares">17300802</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant>
    <link:footnoteLink
      xlink:role="http://www.xbrl.org/2003/role/link"
      xlink:type="extended">
        <link:loc
          xlink:href="#d9036001e2214-wk-Fact-024F97ED08CD171B6D408095A17B6DC2"
          xlink:label="d9036001e2214-wk-Fact-024F97ED08CD171B6D408095A17B6DC2"
          xlink:type="locator"/>
        <link:footnote id="TextSelection-C00ECF2D823D0F66DF8B8095A1A7CC9C-0-wk-Footnote-C00ECF2D823D0F66DF8B8095A1A7CC9C_lbl" xlink:label="TextSelection-C00ECF2D823D0F66DF8B8095A1A7CC9C-0-wk-Footnote-C00ECF2D823D0F66DF8B8095A1A7CC9C_lbl" xlink:role="http://www.xbrl.org/2003/role/footnote" xlink:type="resource" xml:lang="en-US">Prior period results have been adjusted to reflect the two-for-one stock split effected in the form of a stock dividend which occurred in the fourth quarter of 2017.2</link:footnote>
        <link:footnoteArc
          xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote"
          xlink:from="d9036001e2214-wk-Fact-024F97ED08CD171B6D408095A17B6DC2"
          xlink:to="TextSelection-C00ECF2D823D0F66DF8B8095A1A7CC9C-0-wk-Footnote-C00ECF2D823D0F66DF8B8095A1A7CC9C_lbl"
          xlink:type="arc"/>
        <link:loc
          xlink:href="#d9047537e1008-wk-Fact-0DFA7D0A63644E22B8DA8095A198BC5D"
          xlink:label="d9047537e1008-wk-Fact-0DFA7D0A63644E22B8DA8095A198BC5D"
          xlink:type="locator"/>
        <link:footnote id="TextSelection-72B67EF8074C859EFB238095A1A7DDDC-0-wk-Footnote-72B67EF8074C859EFB238095A1A7DDDC_lbl" xlink:label="TextSelection-72B67EF8074C859EFB238095A1A7DDDC-0-wk-Footnote-72B67EF8074C859EFB238095A1A7DDDC_lbl" xlink:role="http://www.xbrl.org/2003/role/footnote" xlink:type="resource" xml:lang="en-US">Prior period amounts have been adjusted to reflect the two-for-one stock split effected in the form of a stock dividend which occurred in the fourth quarter of 2017.</link:footnote>
        <link:footnoteArc
          xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote"
          xlink:from="d9047537e1008-wk-Fact-0DFA7D0A63644E22B8DA8095A198BC5D"
          xlink:to="TextSelection-72B67EF8074C859EFB238095A1A7DDDC-0-wk-Footnote-72B67EF8074C859EFB238095A1A7DDDC_lbl"
          xlink:type="arc"/>
        <link:loc
          xlink:href="#d9047537e1476-wk-Fact-0FA03F37FD8B58E284018095A198260E"
          xlink:label="d9047537e1476-wk-Fact-0FA03F37FD8B58E284018095A198260E"
          xlink:type="locator"/>
        <link:footnoteArc
          xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote"
          xlink:from="d9047537e1476-wk-Fact-0FA03F37FD8B58E284018095A198260E"
          xlink:to="TextSelection-72B67EF8074C859EFB238095A1A7DDDC-0-wk-Footnote-72B67EF8074C859EFB238095A1A7DDDC_lbl"
          xlink:type="arc"/>
        <link:loc
          xlink:href="#d9047537e3435-wk-Fact-14BD9D0FA11EC718E9C48095A18C0BCD"
          xlink:label="d9047537e3435-wk-Fact-14BD9D0FA11EC718E9C48095A18C0BCD"
          xlink:type="locator"/>
        <link:footnoteArc
          xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote"
          xlink:from="d9047537e3435-wk-Fact-14BD9D0FA11EC718E9C48095A18C0BCD"
          xlink:to="TextSelection-72B67EF8074C859EFB238095A1A7DDDC-0-wk-Footnote-72B67EF8074C859EFB238095A1A7DDDC_lbl"
          xlink:type="arc"/>
        <link:loc
          xlink:href="#d9047537e1339-wk-Fact-1E597A80A08359D5E82F8095A18DA81A"
          xlink:label="d9047537e1339-wk-Fact-1E597A80A08359D5E82F8095A18DA81A"
          xlink:type="locator"/>
        <link:footnoteArc
          xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote"
          xlink:from="d9047537e1339-wk-Fact-1E597A80A08359D5E82F8095A18DA81A"
          xlink:to="TextSelection-72B67EF8074C859EFB238095A1A7DDDC-0-wk-Footnote-72B67EF8074C859EFB238095A1A7DDDC_lbl"
          xlink:type="arc"/>
        <link:loc
          xlink:href="#d9047537e4499-wk-Fact-214CF4D911CA612E8EF28095A18DBA24"
          xlink:label="d9047537e4499-wk-Fact-214CF4D911CA612E8EF28095A18DBA24"
          xlink:type="locator"/>
        <link:footnoteArc
          xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote"
          xlink:from="d9047537e4499-wk-Fact-214CF4D911CA612E8EF28095A18DBA24"
          xlink:to="TextSelection-72B67EF8074C859EFB238095A1A7DDDC-0-wk-Footnote-72B67EF8074C859EFB238095A1A7DDDC_lbl"
          xlink:type="arc"/>
        <link:loc
          xlink:href="#d9047537e2775-wk-Fact-256ED19A8200F2A12B668095A18DD32A"
          xlink:label="d9047537e2775-wk-Fact-256ED19A8200F2A12B668095A18DD32A"
          xlink:type="locator"/>
        <link:footnoteArc
          xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote"
          xlink:from="d9047537e2775-wk-Fact-256ED19A8200F2A12B668095A18DD32A"
          xlink:to="TextSelection-72B67EF8074C859EFB238095A1A7DDDC-0-wk-Footnote-72B67EF8074C859EFB238095A1A7DDDC_lbl"
          xlink:type="arc"/>
        <link:loc
          xlink:href="#d9047537e969-wk-Fact-2EF0F520EF139C91289E8095A187EC0C"
          xlink:label="d9047537e969-wk-Fact-2EF0F520EF139C91289E8095A187EC0C"
          xlink:type="locator"/>
        <link:footnoteArc
          xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote"
          xlink:from="d9047537e969-wk-Fact-2EF0F520EF139C91289E8095A187EC0C"
          xlink:to="TextSelection-72B67EF8074C859EFB238095A1A7DDDC-0-wk-Footnote-72B67EF8074C859EFB238095A1A7DDDC_lbl"
          xlink:type="arc"/>
        <link:loc
          xlink:href="#d9047537e1082-wk-Fact-311BA7AD37578AB85D398095A199FF51"
          xlink:label="d9047537e1082-wk-Fact-311BA7AD37578AB85D398095A199FF51"
          xlink:type="locator"/>
        <link:footnoteArc
          xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote"
          xlink:from="d9047537e1082-wk-Fact-311BA7AD37578AB85D398095A199FF51"
          xlink:to="TextSelection-72B67EF8074C859EFB238095A1A7DDDC-0-wk-Footnote-72B67EF8074C859EFB238095A1A7DDDC_lbl"
          xlink:type="arc"/>
        <link:loc
          xlink:href="#d9047537e1200-wk-Fact-33A5CB8CFD9B87D3900B8095A18D5F11"
          xlink:label="d9047537e1200-wk-Fact-33A5CB8CFD9B87D3900B8095A18D5F11"
          xlink:type="locator"/>
        <link:footnoteArc
          xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote"
          xlink:from="d9047537e1200-wk-Fact-33A5CB8CFD9B87D3900B8095A18D5F11"
          xlink:to="TextSelection-72B67EF8074C859EFB238095A1A7DDDC-0-wk-Footnote-72B67EF8074C859EFB238095A1A7DDDC_lbl"
          xlink:type="arc"/>
        <link:loc
          xlink:href="#d9047537e4518-wk-Fact-359B3D32A906FF2F38BD8095A18DAB26"
          xlink:label="d9047537e4518-wk-Fact-359B3D32A906FF2F38BD8095A18DAB26"
          xlink:type="locator"/>
        <link:footnoteArc
          xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote"
          xlink:from="d9047537e4518-wk-Fact-359B3D32A906FF2F38BD8095A18DAB26"
          xlink:to="TextSelection-72B67EF8074C859EFB238095A1A7DDDC-0-wk-Footnote-72B67EF8074C859EFB238095A1A7DDDC_lbl"
          xlink:type="arc"/>
        <link:loc
          xlink:href="#d9047537e2499-wk-Fact-43A9A2EF2FE1D286A7538095A18D2CD1"
          xlink:label="d9047537e2499-wk-Fact-43A9A2EF2FE1D286A7538095A18D2CD1"
          xlink:type="locator"/>
        <link:footnoteArc
          xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote"
          xlink:from="d9047537e2499-wk-Fact-43A9A2EF2FE1D286A7538095A18D2CD1"
          xlink:to="TextSelection-72B67EF8074C859EFB238095A1A7DDDC-0-wk-Footnote-72B67EF8074C859EFB238095A1A7DDDC_lbl"
          xlink:type="arc"/>
        <link:loc
          xlink:href="#d9047537e1068-wk-Fact-466C7EDC72CEF90651EB8095A18785F4"
          xlink:label="d9047537e1068-wk-Fact-466C7EDC72CEF90651EB8095A18785F4"
          xlink:type="locator"/>
        <link:footnoteArc
          xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote"
          xlink:from="d9047537e1068-wk-Fact-466C7EDC72CEF90651EB8095A18785F4"
          xlink:to="TextSelection-72B67EF8074C859EFB238095A1A7DDDC-0-wk-Footnote-72B67EF8074C859EFB238095A1A7DDDC_lbl"
          xlink:type="arc"/>
        <link:loc
          xlink:href="#d9047537e2268-wk-Fact-4A5017B5BCB9D9B35EEC8095A170D8B2"
          xlink:label="d9047537e2268-wk-Fact-4A5017B5BCB9D9B35EEC8095A170D8B2"
          xlink:type="locator"/>
        <link:footnoteArc
          xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote"
          xlink:from="d9047537e2268-wk-Fact-4A5017B5BCB9D9B35EEC8095A170D8B2"
          xlink:to="TextSelection-72B67EF8074C859EFB238095A1A7DDDC-0-wk-Footnote-72B67EF8074C859EFB238095A1A7DDDC_lbl"
          xlink:type="arc"/>
        <link:loc
          xlink:href="#d9047537e3824-wk-Fact-4D85564413F6BE09D8918095A18DCB2D"
          xlink:label="d9047537e3824-wk-Fact-4D85564413F6BE09D8918095A18DCB2D"
          xlink:type="locator"/>
        <link:footnoteArc
          xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote"
          xlink:from="d9047537e3824-wk-Fact-4D85564413F6BE09D8918095A18DCB2D"
          xlink:to="TextSelection-72B67EF8074C859EFB238095A1A7DDDC-0-wk-Footnote-72B67EF8074C859EFB238095A1A7DDDC_lbl"
          xlink:type="arc"/>
        <link:loc
          xlink:href="#d9047537e3586-wk-Fact-54ACEEE7AC1CF0AF0EC18095A18D8654"
          xlink:label="d9047537e3586-wk-Fact-54ACEEE7AC1CF0AF0EC18095A18D8654"
          xlink:type="locator"/>
        <link:footnoteArc
          xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote"
          xlink:from="d9047537e3586-wk-Fact-54ACEEE7AC1CF0AF0EC18095A18D8654"
          xlink:to="TextSelection-72B67EF8074C859EFB238095A1A7DDDC-0-wk-Footnote-72B67EF8074C859EFB238095A1A7DDDC_lbl"
          xlink:type="arc"/>
        <link:loc
          xlink:href="#d9047537e2638-wk-Fact-550E5840D42187E40AB18095A186401E"
          xlink:label="d9047537e2638-wk-Fact-550E5840D42187E40AB18095A186401E"
          xlink:type="locator"/>
        <link:footnoteArc
          xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote"
          xlink:from="d9047537e2638-wk-Fact-550E5840D42187E40AB18095A186401E"
          xlink:to="TextSelection-72B67EF8074C859EFB238095A1A7DDDC-0-wk-Footnote-72B67EF8074C859EFB238095A1A7DDDC_lbl"
          xlink:type="arc"/>
        <link:loc
          xlink:href="#d9047537e3013-wk-Fact-5DDF74EC3124404949448095A198D9B6"
          xlink:label="d9047537e3013-wk-Fact-5DDF74EC3124404949448095A198D9B6"
          xlink:type="locator"/>
        <link:footnoteArc
          xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote"
          xlink:from="d9047537e3013-wk-Fact-5DDF74EC3124404949448095A198D9B6"
          xlink:to="TextSelection-72B67EF8074C859EFB238095A1A7DDDC-0-wk-Footnote-72B67EF8074C859EFB238095A1A7DDDC_lbl"
          xlink:type="arc"/>
        <link:loc
          xlink:href="#d9047537e3567-wk-Fact-5F02AAD6848DEB58B6878095A18DD83F"
          xlink:label="d9047537e3567-wk-Fact-5F02AAD6848DEB58B6878095A18DD83F"
          xlink:type="locator"/>
        <link:footnoteArc
          xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote"
          xlink:from="d9047537e3567-wk-Fact-5F02AAD6848DEB58B6878095A18DD83F"
          xlink:to="TextSelection-72B67EF8074C859EFB238095A1A7DDDC-0-wk-Footnote-72B67EF8074C859EFB238095A1A7DDDC_lbl"
          xlink:type="arc"/>
        <link:loc
          xlink:href="#d9047537e2367-wk-Fact-632A4D8EBB7BDB0786E68095A18D1DB4"
          xlink:label="d9047537e2367-wk-Fact-632A4D8EBB7BDB0786E68095A18D1DB4"
          xlink:type="locator"/>
        <link:footnoteArc
          xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote"
          xlink:from="d9047537e2367-wk-Fact-632A4D8EBB7BDB0786E68095A18D1DB4"
          xlink:to="TextSelection-72B67EF8074C859EFB238095A1A7DDDC-0-wk-Footnote-72B67EF8074C859EFB238095A1A7DDDC_lbl"
          xlink:type="arc"/>
        <link:loc
          xlink:href="#d9047537e3493-wk-Fact-696435B72DCA66F6B2C58095A1870320"
          xlink:label="d9047537e3493-wk-Fact-696435B72DCA66F6B2C58095A1870320"
          xlink:type="locator"/>
        <link:footnoteArc
          xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote"
          xlink:from="d9047537e3493-wk-Fact-696435B72DCA66F6B2C58095A1870320"
          xlink:to="TextSelection-72B67EF8074C859EFB238095A1A7DDDC-0-wk-Footnote-72B67EF8074C859EFB238095A1A7DDDC_lbl"
          xlink:type="arc"/>
        <link:loc
          xlink:href="#d9047537e2400-wk-Fact-6B3E373CC2BF2EA408BA8095A18F4592"
          xlink:label="d9047537e2400-wk-Fact-6B3E373CC2BF2EA408BA8095A18F4592"
          xlink:type="locator"/>
        <link:footnoteArc
          xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote"
          xlink:from="d9047537e2400-wk-Fact-6B3E373CC2BF2EA408BA8095A18F4592"
          xlink:to="TextSelection-72B67EF8074C859EFB238095A1A7DDDC-0-wk-Footnote-72B67EF8074C859EFB238095A1A7DDDC_lbl"
          xlink:type="arc"/>
        <link:loc
          xlink:href="#d9047537e2484-wk-Fact-78CA1F247A094B9A973B8095A18F7B2B"
          xlink:label="d9047537e2484-wk-Fact-78CA1F247A094B9A973B8095A18F7B2B"
          xlink:type="locator"/>
        <link:footnoteArc
          xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote"
          xlink:from="d9047537e2484-wk-Fact-78CA1F247A094B9A973B8095A18F7B2B"
          xlink:to="TextSelection-72B67EF8074C859EFB238095A1A7DDDC-0-wk-Footnote-72B67EF8074C859EFB238095A1A7DDDC_lbl"
          xlink:type="arc"/>
        <link:loc
          xlink:href="#d9047537e2249-wk-Fact-8196B1AF697B90749CC68095A1878769"
          xlink:label="d9047537e2249-wk-Fact-8196B1AF697B90749CC68095A1878769"
          xlink:type="locator"/>
        <link:footnoteArc
          xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote"
          xlink:from="d9047537e2249-wk-Fact-8196B1AF697B90749CC68095A1878769"
          xlink:to="TextSelection-72B67EF8074C859EFB238095A1A7DDDC-0-wk-Footnote-72B67EF8074C859EFB238095A1A7DDDC_lbl"
          xlink:type="arc"/>
        <link:loc
          xlink:href="#d9047537e2307-wk-Fact-87268108E9834933E8DA8095A199AF37"
          xlink:label="d9047537e2307-wk-Fact-87268108E9834933E8DA8095A199AF37"
          xlink:type="locator"/>
        <link:footnoteArc
          xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote"
          xlink:from="d9047537e2307-wk-Fact-87268108E9834933E8DA8095A199AF37"
          xlink:to="TextSelection-72B67EF8074C859EFB238095A1A7DDDC-0-wk-Footnote-72B67EF8074C859EFB238095A1A7DDDC_lbl"
          xlink:type="arc"/>
        <link:loc
          xlink:href="#d9047537e3961-wk-Fact-880A0D55DE9642B1D56B8095A18E82A2"
          xlink:label="d9047537e3961-wk-Fact-880A0D55DE9642B1D56B8095A18E82A2"
          xlink:type="locator"/>
        <link:footnoteArc
          xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote"
          xlink:from="d9047537e3961-wk-Fact-880A0D55DE9642B1D56B8095A18E82A2"
          xlink:to="TextSelection-72B67EF8074C859EFB238095A1A7DDDC-0-wk-Footnote-72B67EF8074C859EFB238095A1A7DDDC_lbl"
          xlink:type="arc"/>
        <link:loc
          xlink:href="#d9047537e3454-wk-Fact-895B97023DE93F1B398E8095A18712B2"
          xlink:label="d9047537e3454-wk-Fact-895B97023DE93F1B398E8095A18712B2"
          xlink:type="locator"/>
        <link:footnoteArc
          xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote"
          xlink:from="d9047537e3454-wk-Fact-895B97023DE93F1B398E8095A18712B2"
          xlink:to="TextSelection-72B67EF8074C859EFB238095A1A7DDDC-0-wk-Footnote-72B67EF8074C859EFB238095A1A7DDDC_lbl"
          xlink:type="arc"/>
        <link:loc
          xlink:href="#d9047537e3670-wk-Fact-8C5B3621FD304754CCC88095A18E09CD"
          xlink:label="d9047537e3670-wk-Fact-8C5B3621FD304754CCC88095A18E09CD"
          xlink:type="locator"/>
        <link:footnoteArc
          xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote"
          xlink:from="d9047537e3670-wk-Fact-8C5B3621FD304754CCC88095A18E09CD"
          xlink:to="TextSelection-72B67EF8074C859EFB238095A1A7DDDC-0-wk-Footnote-72B67EF8074C859EFB238095A1A7DDDC_lbl"
          xlink:type="arc"/>
        <link:loc
          xlink:href="#d9047537e4557-wk-Fact-9734CC62E5F44F81C8B48095A1988F00"
          xlink:label="d9047537e4557-wk-Fact-9734CC62E5F44F81C8B48095A1988F00"
          xlink:type="locator"/>
        <link:footnoteArc
          xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote"
          xlink:from="d9047537e4557-wk-Fact-9734CC62E5F44F81C8B48095A1988F00"
          xlink:to="TextSelection-72B67EF8074C859EFB238095A1A7DDDC-0-wk-Footnote-72B67EF8074C859EFB238095A1A7DDDC_lbl"
          xlink:type="arc"/>
        <link:loc
          xlink:href="#d9036001e2195-wk-Fact-97BE5E31F5F06BC065418095A17CCEAE"
          xlink:label="d9036001e2195-wk-Fact-97BE5E31F5F06BC065418095A17CCEAE"
          xlink:type="locator"/>
        <link:footnoteArc
          xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote"
          xlink:from="d9036001e2195-wk-Fact-97BE5E31F5F06BC065418095A17CCEAE"
          xlink:to="TextSelection-C00ECF2D823D0F66DF8B8095A1A7CC9C-0-wk-Footnote-C00ECF2D823D0F66DF8B8095A1A7CC9C_lbl"
          xlink:type="arc"/>
        <link:loc
          xlink:href="#d9047537e3553-wk-Fact-986704192B08E2CD48178095A18E4EAF"
          xlink:label="d9047537e3553-wk-Fact-986704192B08E2CD48178095A18E4EAF"
          xlink:type="locator"/>
        <link:footnoteArc
          xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote"
          xlink:from="d9047537e3553-wk-Fact-986704192B08E2CD48178095A18E4EAF"
          xlink:to="TextSelection-72B67EF8074C859EFB238095A1A7DDDC-0-wk-Footnote-72B67EF8074C859EFB238095A1A7DDDC_lbl"
          xlink:type="arc"/>
        <link:loc
          xlink:href="#d9047537e2894-wk-Fact-9FA6580A99EAF4A3A01815F853384C3B"
          xlink:label="d9047537e2894-wk-Fact-9FA6580A99EAF4A3A01815F853384C3B"
          xlink:type="locator"/>
        <link:footnoteArc
          xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote"
          xlink:from="d9047537e2894-wk-Fact-9FA6580A99EAF4A3A01815F853384C3B"
          xlink:to="TextSelection-72B67EF8074C859EFB238095A1A7DDDC-0-wk-Footnote-72B67EF8074C859EFB238095A1A7DDDC_lbl"
          xlink:type="arc"/>
        <link:loc
          xlink:href="#d9047537e1595-wk-Fact-A3239781C22A644465758095A17064B7"
          xlink:label="d9047537e1595-wk-Fact-A3239781C22A644465758095A17064B7"
          xlink:type="locator"/>
        <link:footnoteArc
          xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote"
          xlink:from="d9047537e1595-wk-Fact-A3239781C22A644465758095A17064B7"
          xlink:to="TextSelection-72B67EF8074C859EFB238095A1A7DDDC-0-wk-Footnote-72B67EF8074C859EFB238095A1A7DDDC_lbl"
          xlink:type="arc"/>
        <link:loc
          xlink:href="#d9047537e1101-wk-Fact-A7D16130C4381E01DCF48095A1980393"
          xlink:label="d9047537e1101-wk-Fact-A7D16130C4381E01DCF48095A1980393"
          xlink:type="locator"/>
        <link:footnoteArc
          xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote"
          xlink:from="d9047537e1101-wk-Fact-A7D16130C4381E01DCF48095A1980393"
          xlink:to="TextSelection-72B67EF8074C859EFB238095A1A7DDDC-0-wk-Footnote-72B67EF8074C859EFB238095A1A7DDDC_lbl"
          xlink:type="arc"/>
        <link:loc
          xlink:href="#d9047537e3725-wk-Fact-A821DDA6ECECA13BEF9B8095A18E66CE"
          xlink:label="d9047537e3725-wk-Fact-A821DDA6ECECA13BEF9B8095A18E66CE"
          xlink:type="locator"/>
        <link:footnoteArc
          xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote"
          xlink:from="d9047537e3725-wk-Fact-A821DDA6ECECA13BEF9B8095A18E66CE"
          xlink:to="TextSelection-72B67EF8074C859EFB238095A1A7DDDC-0-wk-Footnote-72B67EF8074C859EFB238095A1A7DDDC_lbl"
          xlink:type="arc"/>
        <link:loc
          xlink:href="#d9047537e3473-wk-Fact-A948B583008DE67591E98095A18DF5FE"
          xlink:label="d9047537e3473-wk-Fact-A948B583008DE67591E98095A18DF5FE"
          xlink:type="locator"/>
        <link:footnoteArc
          xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote"
          xlink:from="d9047537e3473-wk-Fact-A948B583008DE67591E98095A18DF5FE"
          xlink:to="TextSelection-72B67EF8074C859EFB238095A1A7DDDC-0-wk-Footnote-72B67EF8074C859EFB238095A1A7DDDC_lbl"
          xlink:type="arc"/>
        <link:loc
          xlink:href="#d9047537e3685-wk-Fact-AD52A0BD083F216E98D18095A170069F"
          xlink:label="d9047537e3685-wk-Fact-AD52A0BD083F216E98D18095A170069F"
          xlink:type="locator"/>
        <link:footnoteArc
          xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote"
          xlink:from="d9047537e3685-wk-Fact-AD52A0BD083F216E98D18095A170069F"
          xlink:to="TextSelection-72B67EF8074C859EFB238095A1A7DDDC-0-wk-Footnote-72B67EF8074C859EFB238095A1A7DDDC_lbl"
          xlink:type="arc"/>
        <link:loc
          xlink:href="#d9047537e4080-wk-Fact-AD63A240E975EA8D87988095A18E12CB"
          xlink:label="d9047537e4080-wk-Fact-AD63A240E975EA8D87988095A18E12CB"
          xlink:type="locator"/>
        <link:footnoteArc
          xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote"
          xlink:from="d9047537e4080-wk-Fact-AD63A240E975EA8D87988095A18E12CB"
          xlink:to="TextSelection-72B67EF8074C859EFB238095A1A7DDDC-0-wk-Footnote-72B67EF8074C859EFB238095A1A7DDDC_lbl"
          xlink:type="arc"/>
        <link:loc
          xlink:href="#d9047537e4537-wk-Fact-BE35B333560C4EBA7CFA8095A1871D2E"
          xlink:label="d9047537e4537-wk-Fact-BE35B333560C4EBA7CFA8095A1871D2E"
          xlink:type="locator"/>
        <link:footnoteArc
          xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote"
          xlink:from="d9047537e4537-wk-Fact-BE35B333560C4EBA7CFA8095A1871D2E"
          xlink:to="TextSelection-72B67EF8074C859EFB238095A1A7DDDC-0-wk-Footnote-72B67EF8074C859EFB238095A1A7DDDC_lbl"
          xlink:type="arc"/>
        <link:loc
          xlink:href="#d9047537e2381-wk-Fact-C0E209DF7E08550BB2978095A18E54F4"
          xlink:label="d9047537e2381-wk-Fact-C0E209DF7E08550BB2978095A18E54F4"
          xlink:type="locator"/>
        <link:footnoteArc
          xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote"
          xlink:from="d9047537e2381-wk-Fact-C0E209DF7E08550BB2978095A18E54F4"
          xlink:to="TextSelection-72B67EF8074C859EFB238095A1A7DDDC-0-wk-Footnote-72B67EF8074C859EFB238095A1A7DDDC_lbl"
          xlink:type="arc"/>
        <link:loc
          xlink:href="#d9047537e2287-wk-Fact-C1B23D0783F74535B02B8095A187BA66"
          xlink:label="d9047537e2287-wk-Fact-C1B23D0783F74535B02B8095A187BA66"
          xlink:type="locator"/>
        <link:footnoteArc
          xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote"
          xlink:from="d9047537e2287-wk-Fact-C1B23D0783F74535B02B8095A187BA66"
          xlink:to="TextSelection-72B67EF8074C859EFB238095A1A7DDDC-0-wk-Footnote-72B67EF8074C859EFB238095A1A7DDDC_lbl"
          xlink:type="arc"/>
        <link:loc
          xlink:href="#d9047537e950-wk-Fact-C7F6B3F4AEF84644AB198095A198B9A6"
          xlink:label="d9047537e950-wk-Fact-C7F6B3F4AEF84644AB198095A198B9A6"
          xlink:type="locator"/>
        <link:footnoteArc
          xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote"
          xlink:from="d9047537e950-wk-Fact-C7F6B3F4AEF84644AB198095A198B9A6"
          xlink:to="TextSelection-72B67EF8074C859EFB238095A1A7DDDC-0-wk-Footnote-72B67EF8074C859EFB238095A1A7DDDC_lbl"
          xlink:type="arc"/>
        <link:loc
          xlink:href="#d9047537e1185-wk-Fact-C8D55FB98AF7C910ACB38095A1874810"
          xlink:label="d9047537e1185-wk-Fact-C8D55FB98AF7C910ACB38095A1874810"
          xlink:type="locator"/>
        <link:footnoteArc
          xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote"
          xlink:from="d9047537e1185-wk-Fact-C8D55FB98AF7C910ACB38095A1874810"
          xlink:to="TextSelection-72B67EF8074C859EFB238095A1A7DDDC-0-wk-Footnote-72B67EF8074C859EFB238095A1A7DDDC_lbl"
          xlink:type="arc"/>
        <link:loc
          xlink:href="#d9036001e2176-wk-Fact-D15F9102957FCCB7DBF48095A17BDF77"
          xlink:label="d9036001e2176-wk-Fact-D15F9102957FCCB7DBF48095A17BDF77"
          xlink:type="locator"/>
        <link:footnoteArc
          xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote"
          xlink:from="d9036001e2176-wk-Fact-D15F9102957FCCB7DBF48095A17BDF77"
          xlink:to="TextSelection-C00ECF2D823D0F66DF8B8095A1A7CC9C-0-wk-Footnote-C00ECF2D823D0F66DF8B8095A1A7CC9C_lbl"
          xlink:type="arc"/>
        <link:loc
          xlink:href="#d9047537e988-wk-Fact-D4B78298C01F8897A8368095A18E0170"
          xlink:label="d9047537e988-wk-Fact-D4B78298C01F8897A8368095A18E0170"
          xlink:type="locator"/>
        <link:footnoteArc
          xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote"
          xlink:from="d9047537e988-wk-Fact-D4B78298C01F8897A8368095A18E0170"
          xlink:to="TextSelection-72B67EF8074C859EFB238095A1A7DDDC-0-wk-Footnote-72B67EF8074C859EFB238095A1A7DDDC_lbl"
          xlink:type="arc"/>
        <link:loc
          xlink:href="#d9047537e2539-wk-Fact-DD4A482523388BB758218095A18E8A82"
          xlink:label="d9047537e2539-wk-Fact-DD4A482523388BB758218095A18E8A82"
          xlink:type="locator"/>
        <link:footnoteArc
          xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote"
          xlink:from="d9047537e2539-wk-Fact-DD4A482523388BB758218095A18E8A82"
          xlink:to="TextSelection-72B67EF8074C859EFB238095A1A7DDDC-0-wk-Footnote-72B67EF8074C859EFB238095A1A7DDDC_lbl"
          xlink:type="arc"/>
        <link:loc
          xlink:href="#d9047537e1240-wk-Fact-F4A2613963AF0B8656F38095A18E3286"
          xlink:label="d9047537e1240-wk-Fact-F4A2613963AF0B8656F38095A18E3286"
          xlink:type="locator"/>
        <link:footnoteArc
          xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote"
          xlink:from="d9047537e1240-wk-Fact-F4A2613963AF0B8656F38095A18E3286"
          xlink:to="TextSelection-72B67EF8074C859EFB238095A1A7DDDC-0-wk-Footnote-72B67EF8074C859EFB238095A1A7DDDC_lbl"
          xlink:type="arc"/>
    </link:footnoteLink>
</xbrl>
</XML>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>137
<FILENAME>R11.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.19.3.a.u2</span><table class="report" border="0" cellspacing="2" id="idp6878213328">
<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, 2019</div></th></tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AccountingPoliciesAbstract', window );"><strong>Accounting Policies [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_SignificantAccountingPoliciesTextBlock', window );">Summary of Significant Accounting Policies</a></td>
<td class="text">Summary of Significant Accounting Policies<div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">The accompanying consolidated financial statements reflect the application of the significant accounting policies described below.</span></div><div style="line-height:120%;padding-bottom:6px;padding-top:12px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;text-decoration:underline;">Nature of Operations</span></div><div style="line-height:120%;padding-bottom:6px;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Cognex Corporation is a leading provider of machine vision products that capture and analyze visual information in order to automate manufacturing and distribution tasks where vision is required.</span></div><div style="line-height:120%;padding-bottom:6px;padding-top:12px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;text-decoration:underline;">Use of Estimates in the Preparation of Financial Statements</span></div><div style="line-height:120%;padding-bottom:6px;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">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, accounts receivable, inventories, leases, long-lived assets, internal-use software, goodwill, warranty obligations, contingencies, derivative instruments, stock-based compensation, income taxes, and business combinations.</span></div><div style="line-height:120%;padding-bottom:6px;padding-top:12px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;text-decoration:underline;">Basis of Consolidation</span></div><div style="line-height:120%;padding-bottom:6px;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">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="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;text-decoration:underline;">Foreign Currency Translation</span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">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 recorded in shareholders&#8217; equity as other comprehensive income (loss).</span></div><div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;text-decoration:underline;">Fair Value Measurements</span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">The Company applies a three-level valuation hierarchy for fair value measurements.  The categorization of assets and liabilities within the valuation hierarchy is based upon 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 upon 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="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;text-decoration:underline;">Cash, Cash Equivalents, and Investments</span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Money market instruments, as well as certificates of deposits and debt securities with original maturities of three months or less, are classified as cash equivalents and are stated at amortized cost.  Certificates of deposit and debt securities with original maturities greater than three months and remaining maturities of one year or less are classified as short-term investments.  Debt securities with remaining maturities greater than one year are classified as long-term investments.  It is the Company&#8217;s policy to invest in debt securities with effective maturities that do not exceed </span><span style="font-family:Arial;font-size:10pt;"><span>ten years</span></span><span style="font-family:Arial;font-size:10pt;">.</span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">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, recorded in shareholders&#8217; equity as other comprehensive income (loss).  Realized gains and losses are included in current operations, along with the amortization of the discount or premium on debt securities arising at acquisition, and are calculated using the specific identification method.  The Company&#8217;s limited partnership interest is accounted for using the cost method because the Company&#8217;s investment is less than </span><span style="font-family:Arial;font-size:10pt;"><span>5%</span></span><span style="font-family:Arial;font-size:10pt;"> of the partnership and the Company has no influence over the partnership&#8217;s operating and financial policies.  The carrying value of this investment has been reduced to zero, and therefore, distributions are recorded as investment income as they occur.  </span></div><div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Management monitors the carrying value of its investments in debt securities compared to their fair value to determine whether an other-than-temporary impairment has occurred.  If the fair value of a debt security is less than its amortized cost, the Company assesses whether the impairment is other-than-temporary.  In considering whether a decline in fair value is other-than-temporary, we consider many factors.  In its evaluation of its debt securities, management considers the type of security, the credit rating of the security, the length of time the security has been in a loss position, the size of the loss position, our intent and ability to hold the security to expected recovery of value, and other meaningful information.  An impairment is considered other-than-temporary if (i)&#160;the Company has the intent to sell the security, (ii)&#160;it is more likely than not that the Company will be required to sell the security before recovery of the entire amortized cost basis, or (iii)&#160;the Company does not expect to recover the entire amortized cost basis of the security.  If impairment is considered other-than-temporary based upon condition (i)&#160;or (ii)&#160;described above, the entire difference between the amortized cost and the fair value of the security is recognized in current operations.  If an impairment is considered other-than-temporary based upon condition (iii), the amount representing credit losses (defined as the difference between the present value of the cash flows expected to be collected and the amortized cost basis of the security) is recognized in current operations and the amount relating to all other factors is recognized in shareholders' equity as other comprehensive income (loss). </span></div><div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;text-decoration:underline;">Accounts Receivable</span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">The Company extends credit with various payment terms to customers based upon an evaluation of their financial condition.  Accounts that are outstanding longer than the payment terms are considered to be past due.  The Company establishes reserves against accounts receivable for potential credit losses and records bad debt expense in current operations when it determines receivables are at risk for collection based upon the length of time the receivable has been outstanding, the customer&#8217;s current ability to pay its obligations to the Company, general economic and industry conditions, as well as various other factors.  Receivables are written off against these reserves in the period they are determined to be uncollectible and payments subsequently received on previously written-off receivables are recorded as a reversal of the bad debt expense.</span></div><div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;text-decoration:underline;">Inventories</span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">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 prices in the ordinary course of business, less reasonably predictable costs of completion, disposal, and transportation.</span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">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 upon assumptions about future demand, product transitions, and market conditions, 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="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">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 would recognize a higher than normal gross margin if the reserved inventory were subsequently sold.</span></div><div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;text-decoration:underline;">Property, Plant, and Equipment</span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">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 </span><span style="font-family:Arial;font-size:10pt;"><span>39 years</span></span><span style="font-family:Arial;font-size:10pt;">, building improvements&#8217; useful lives are </span><span style="font-family:Arial;font-size:10pt;"><span>ten years</span></span><span style="font-family:Arial;font-size:10pt;">, and the useful lives of computer hardware and software, manufacturing test equipment, and furniture and fixtures range from </span><span style="font-family:Arial;font-size:10pt;">two</span><span style="font-family:Arial;font-size:10pt;"> to </span><span style="font-family:Arial;font-size:10pt;"><span>ten years</span></span><span style="font-family:Arial;font-size:10pt;">.  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="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;text-decoration:underline;">Leases</span></div><div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">The Company accounts for leases in accordance with Accounting Standard Codification (ASC) 842, "Leases."  The core principle of ASC 842 is that a lessee should recognize on the balance sheet the assets and liabilities that arise from leases.  </span></div><div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">At inception of a contract, the Company determines whether that contract is or contains a lease. The Company determines whether a contract 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="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">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="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Lease contracts may include 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="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">The Company classifies a lease as a finance lease when it meets any of the following criteria at the lease commencement date: a) the lease transfers ownership of the underlying asset to the Company by the end of the lease term; b) the lease grants the Company an option to purchase the underlying asset that the Company is reasonably certain to exercise; c) 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); d) 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 e) 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="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">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 is the three-month London Interbank Offered Rate (LIBOR) plus a 2.5% credit risk spread.</span></div><div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">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="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;text-decoration:underline;">Internal-use Software</span></div><div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Internal-use software is software acquired, internally developed, or modified solely to meet the entity'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 upon 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="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">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="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><br/></span></div><div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><br/></span></div><div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><br/></span></div><div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;text-decoration:underline;">Goodwill</span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Goodwill is stated at cost.  The Company evaluates the possible 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 macroeconomic conditions, industry and market considerations, overall financial performance (both current and projected), changes in management or 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 amount, the entity 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 amount 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 upon a discounted cash flow model.  In addition, the Company uses the market approach, which compares the reporting unit to publicly-traded companies and transactions involving similar businesses, to support the conclusions based upon the income approach. </span></div><div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;text-decoration:underline;">Intangible Assets</span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">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 upon facts and circumstances.  The useful lives of distribution networks range from </span><span style="font-family:Arial;font-size:10pt;">eleven</span><span style="font-family:Arial;font-size:10pt;"> to </span><span style="font-family:Arial;font-size:10pt;"><span>twelve years</span></span><span style="font-family:Arial;font-size:10pt;">, of completed technologies from </span><span style="font-family:Arial;font-size:10pt;">five</span><span style="font-family:Arial;font-size:10pt;"> to </span><span style="font-family:Arial;font-size:10pt;"><span>eight years</span></span><span style="font-family:Arial;font-size:10pt;">, of customer relationships from </span><span style="font-family:Arial;font-size:10pt;">five</span><span style="font-family:Arial;font-size:10pt;"> to </span><span style="font-family:Arial;font-size:10pt;"><span>eight years</span></span><span style="font-family:Arial;font-size:10pt;">, of non-compete agreements from </span><span style="font-family:Arial;font-size:10pt;">three</span><span style="font-family:Arial;font-size:10pt;"> to </span><span style="font-family:Arial;font-size:10pt;"><span>seven years</span></span><span style="font-family:Arial;font-size:10pt;">, and trademarks </span><span style="font-family:Arial;font-size:10pt;"><span>two years</span></span><span style="font-family:Arial;font-size:10pt;">.  In-process technology is  an indefinite-lived intangible asset until the technology is finalized, at which point it is amortized over its estimated useful life.  The Company evaluates the possible impairment of long-lived assets, including intangible assets, whenever events or circumstances indicate the carrying value of the assets may not be recoverable. At the occurrence of a certain event or change in circumstances, the Company evaluates the potential impairment of an asset by estimating the future undiscounted cash flows expected to result from the use and eventual disposition of the asset.  If the sum of the estimated future cash flows is less than the carrying value, the Company determines the amount of such impairment by comparing the fair value of the asset to its carrying value.  The fair value is based upon the present value of the estimated future cash flows using a discount rate commensurate with the risks involved.</span></div><div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;text-decoration:underline;">Warranty Obligations</span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">The Company warrants its products to be free from defects in material and workmanship for periods primarily ranging from </span><span style="font-family:Arial;font-size:10pt;">one</span><span style="font-family:Arial;font-size:10pt;"> to </span><span style="font-family:Arial;font-size:10pt;"><span>three years</span></span><span style="font-family:Arial;font-size:10pt;"> from the time of sale based upon 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 upon 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="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;text-decoration:underline;">Contingencies</span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">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, such as patent infringement matters, are expensed as incurred.</span></div><div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;text-decoration:underline;">Revenue Recognition</span></div><div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">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="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-style:italic;">Identifying the Contract with the Customer</span></div><div style="line-height:120%;padding-top:4px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">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.  </span></div><div style="line-height:120%;padding-top:8px;text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-style:italic;">Identifying the Performance Obligations in the Contract</span></div><div style="line-height:120%;padding-top:4px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">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 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, logistics, and automotive industries.   </span></div><div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">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="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">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="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-style:italic;">Determining the Transaction Price</span></div><div style="line-height:120%;padding-top:4px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">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="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">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 upon 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="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-style:italic;">Allocating the Transaction Price to the Performance Obligations</span></div><div style="line-height:120%;padding-top:4px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">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="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-style:italic;">Recognizing Revenue When (or As) the Performance Obligations are Satisfied</span></div><div style="line-height:120%;padding-top:4px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">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="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">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 will 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="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">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 specifications.  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 specifications 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="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">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 </span><span style="font-family:Arial;font-size:10pt;"><span>30</span></span><span style="font-family:Arial;font-size:10pt;"> to </span><span style="font-family:Arial;font-size:10pt;"><span>90 days</span></span><span style="font-family:Arial;font-size:10pt;"> 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 </span></div><div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">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="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">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="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;text-decoration:underline;">Research and Development</span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Research and development costs for internally-developed or acquired products 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="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;text-decoration:underline;">Advertising Costs</span></div><div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Advertising costs are expensed as incurred and totaled </span><span style="font-family:Arial;font-size:10pt;"><span>$1,385,000</span></span><span style="font-family:Arial;font-size:10pt;"> in </span><span style="font-family:Arial;font-size:10pt;">2019</span><span style="font-family:Arial;font-size:10pt;">, </span><span style="font-family:Arial;font-size:10pt;"><span>$1,662,000</span></span><span style="font-family:Arial;font-size:10pt;"> in </span><span style="font-family:Arial;font-size:10pt;">2018</span><span style="font-family:Arial;font-size:10pt;">, and </span><span style="font-family:Arial;font-size:10pt;"><span>$1,679,000</span></span><span style="font-family:Arial;font-size:10pt;"> in </span><span style="font-family:Arial;font-size:10pt;">2017</span><span style="font-family:Arial;font-size:10pt;">.</span></div><div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;text-decoration:underline;">Stock-Based Compensation</span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">The Company&#8217;s stock-based awards that result in compensation expense consist of stock options and restricted stock units (RSUs).  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 restricted stock units.  When a stock option is exercised or a restricted stock unit is settled, the Company issues new shares from this pool.  The fair values of stock options are estimated on the grant date using a binomial lattice model.  Management is responsible for determining the appropriate valuation model and estimating these fair values, and in doing so, considers a number of factors, including information provided by an outside valuation advisor.  The fair value of RSUs are determined based upon the market value of the Company's common stock on the grant date. </span></div><div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">The Company recognizes compensation expense related to stock options and RSUs 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 upon 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 upon 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="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;text-decoration:underline;">Taxes</span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">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="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">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="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Deferred tax assets and liabilities are determined based upon 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 upon 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="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">In December 2017, the Tax Cuts and Jobs Act (&#8220;Tax Act&#8221;) was signed into law. The Tax Act imposed a minimum tax on foreign earnings related to intangible assets, known as the Global Intangible Low-Taxed Income (GILTI) tax  In the fourth quarter of 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 the third quarter of 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="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">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="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;text-decoration:underline;">Net Income Per Share</span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">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="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;text-decoration:underline;">Comprehensive Income</span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">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 </span><span style="font-family:Arial;font-size:10pt;"><span>$38,027,000</span></span><span style="font-family:Arial;font-size:10pt;"> and </span><span style="font-family:Arial;font-size:10pt;"><span>$37,486,000</span></span><span style="font-family:Arial;font-size:10pt;">, as of December 31, </span><span style="font-family:Arial;font-size:10pt;">2019</span><span style="font-family:Arial;font-size:10pt;"> and December 31, </span><span style="font-family:Arial;font-size:10pt;">2018</span><span style="font-family:Arial;font-size:10pt;">, respectively; net unrealized gains on available-for-sale investments of </span><span style="font-family:Arial;font-size:10pt;"><span>$2,023,000</span></span><span style="font-family:Arial;font-size:10pt;"> as of December 31, 2019 and net unrealized losses on available-for-sale investments of </span><span style="font-family:Arial;font-size:10pt;"><span>$1,744,000</span></span><span style="font-family:Arial;font-size:10pt;"> as of December 31, 2018; and losses on currency swaps, net of gains on long-term intercompany loans of </span><span style="font-family:Arial;font-size:10pt;"><span>$1,271,000</span></span><span style="font-family:Arial;font-size:10pt;"> at each year end.</span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Amounts reclassified from accumulated other comprehensive income (loss) to investment income on the Consolidated Statements of Operations were net realized gains of </span><span style="font-family:Arial;font-size:10pt;"><span>$1,452,000</span></span><span style="font-family:Arial;font-size:10pt;">, </span><span style="font-family:Arial;font-size:10pt;"><span>$501,000</span></span><span style="font-family:Arial;font-size:10pt;">, and </span><span style="font-family:Arial;font-size:10pt;"><span>$829,000</span></span><span style="font-family:Arial;font-size:10pt;"> for </span><span style="font-family:Arial;font-size:10pt;">2019</span><span style="font-family:Arial;font-size:10pt;">, </span><span style="font-family:Arial;font-size:10pt;">2018</span><span style="font-family:Arial;font-size:10pt;">, and </span><span style="font-family:Arial;font-size:10pt;">2017</span><span style="font-family:Arial;font-size:10pt;">, respectively.</span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;text-decoration:underline;">Concentrations of Risk</span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Financial instruments that potentially subject the Company to concentrations of credit risk consist primarily of cash, cash equivalents, investments, and trade receivables.  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 not experienced any significant realized losses on its debt securities.</span></div><div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">The Company performs ongoing credit evaluations of its customers and maintains allowances for potential credit losses. The Company has not experienced any significant losses related to the collection of its accounts receivable.</span></div><div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">A significant portion of the Company's product is manufactured by a third-party contractor located in Indonesia.  This contractor has agreed to provide Cognex with termination notification periods and last-time-buy rights, if and when that may be applicable.  We rely upon this contractor to provide quality product and meet delivery schedules.  We engage in extensive product quality programs and processes, including actively monitoring the performance of our third-party manufacturers; however, we may not detect all product quality issues through these programs and processes.</span></div><div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Certain components are presently sourced from a single vendor that is selected based on price and performance considerations.  In the event of a supply disruption from a single-source vendor, these components may be purchased from alternative vendors, which may result in manufacturing delays based on the lead time of the new vendor.  Certain </span></div><div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">key electronic and mechanical components that are purchased from strategic suppliers, such as processors or imagers, are fundamental to the design of Cognex products.  A disruption in the supply of these key components, such as a last-time-buy announcement, natural disaster, financial bankruptcy, or other event, may require us to purchase a significant amount of inventory at unfavorable prices resulting in lower gross margins and higher risk of carrying excess inventory.  If we are unable to secure adequate supply from alternative sources, we may have to redesign our products, which may lead to a delay in manufacturing and a possible loss of sales.</span></div><div style="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;text-decoration:underline;">Derivative Instruments</span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Derivative instruments are recorded on the Consolidated Balance Sheets at fair value.  Changes in the fair value of derivatives are recorded each period in current operations or in shareholders' equity as other comprehensive income (loss), depending upon whether the derivative is designated as a hedge transaction and, if it is, the effectiveness of the hedge.  At the inception of the contract, the Company designates foreign currency forward exchange contracts as either a cash flow hedge of certain forecasted foreign currency denominated sales and purchase transactions or as an economic hedge.  Changes in the fair value of a derivative that is highly effective and that is designated and qualifies as a cash flow hedge are recorded in shareholders' equity as other comprehensive income (loss), and reclassified into current operations in the same period during which the hedged transaction affects current operations and in the same financial statement line item as that of the forecasted transaction.  Cash flow hedges are evaluated for effectiveness quarterly.  Any hedge ineffectiveness (which represents the amount by which the changes in the fair value of the derivative exceed the variability in the cash flows of the forecasted transaction) is recorded in current operations in the period in which ineffectiveness is determined.  Changes in the fair value of the Company&#8217;s economic hedges (not designated as a cash flow hedge) are reported in current operations.  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="line-height:120%;padding-top:12px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">The Company formally documents all relationships between hedging instruments and hedged items, as well as its risk-management objective and strategy for undertaking various hedge transactions.  This process includes linking all derivatives that are designated as cash flow hedges to specific forecasted transactions.  The Company also formally assesses (both at the hedge&#8217;s inception and on an ongoing basis) whether the derivatives that are used in hedging transactions have been highly effective in offsetting changes in the fair value or cash flows of hedged items and whether those derivatives may be expected to remain highly effective in future periods.  When it is determined that a derivative is not (or has ceased to be) highly effective as a hedge, the Company discontinues hedge accounting prospectively, as discussed below.</span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">The Company discontinues hedge accounting prospectively when (1) it determines that the derivative is no longer effective in offsetting changes in the cash flows of a hedged item; (2) the derivative expires or is sold, terminated, or exercised; (3) it is no longer probable that the forecasted transaction will occur; or (4) management determines that designating the derivative as a hedging instrument is no longer appropriate or desired.  When the Company discontinues hedge accounting because it is no longer probable that the forecasted transaction will occur in the originally expected period, the gain or loss on the derivative remains in accumulated other comprehensive income (loss) and is reclassified into current operations when the forecasted transaction affects current operations.  However, if it is probable that a forecasted transaction will not occur by the end of the originally specified time period or within an additional two-month period of time thereafter, the gain or loss that was accumulated in other comprehensive income (loss) is recognized immediately in current operations.  In all situations in which hedge accounting is discontinued and the derivative remains outstanding, the Company carries the derivative at fair value on the Consolidated Balance Sheets, recognizing changes in the fair value in current operations, unless it is designated in a new hedging relationship.</span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">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.  Accordingly, cash flow hedges are presented net on the Consolidated Balance Sheets.  </span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;text-decoration:underline;">Business Acquisitions</span></div><div style="line-height:120%;padding-top:6px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">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 contriubte 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 </span></div>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 upon 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 upon 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 each reporting period with changes in fair value recorded 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>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AccountingPoliciesAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AccountingPoliciesAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_SignificantAccountingPoliciesTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The entire disclosure for all significant accounting policies of the reporting entity.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 235<br> -URI http://asc.fasb.org/topic&amp;trid=2122369<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_SignificantAccountingPoliciesTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>nonnum:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>138
<FILENAME>R106.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.19.3.a.u2</span><table class="report" border="0" cellspacing="2" id="idp6865347248">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Acquisitions Acquisitions - (Details) - acquisition<br></strong></div></th>
<th class="th" colspan="2">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Dec. 31, 2019</div></th>
<th class="th"><div>Dec. 31, 2017</div></th>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_BusinessCombinationsAbstract', window );"><strong>Business Combinations [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="top.Show.showAR( this, 'defref_us-gaap_NumberOfBusinessesAcquired', window );">Number of acquisitions</a></td>
<td class="nump">1<span></span>
</td>
<td class="nump">2<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_BusinessCombinationsAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_BusinessCombinationsAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_NumberOfBusinessesAcquired">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The number of businesses acquired by the entity during the period.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_NumberOfBusinessesAcquired</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:integerItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>139
<FILENAME>R102.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.19.3.a.u2</span><table class="report" border="0" cellspacing="2" id="idp6887127200">
<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, 2019</div></th>
<th class="th"><div>Dec. 31, 2018</div></th>
<th class="th"><div>Dec. 31, 2017</div></th>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_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="top.Show.showAR( this, 'defref_us-gaap_WeightedAverageNumberOfSharesOutstandingBasic', window );">Basic weighted-average common shares outstanding</a></td>
<td class="nump">171,194<span></span>
</td>
<td class="nump">172,333<span></span>
</td>
<td class="nump">173,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="top.Show.showAR( this, 'defref_us-gaap_WeightedAverageNumberDilutedSharesOutstandingAdjustment', window );">Effect of dilutive stock options</a></td>
<td class="nump">4,075<span></span>
</td>
<td class="nump">5,073<span></span>
</td>
<td class="nump">6,264<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding', window );">Diluted weighted-average common and common-equivalent shares outstanding</a></td>
<td class="nump">175,269<span></span>
</td>
<td class="nump">177,406<span></span>
</td>
<td class="nump">179,551<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_EarningsPerShareAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_EarningsPerShareAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_WeightedAverageNumberDilutedSharesOutstandingAdjustment">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The 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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=6371337&amp;loc=d3e3550-109257<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The average number of shares or units issued and outstanding that are used in calculating diluted EPS or earnings per unit (EPU), determined based on the timing of issuance of shares or units in the period.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://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 (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=6371337&amp;loc=d3e3550-109257<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 45<br> -Paragraph 16<br> -URI http://asc.fasb.org/extlink&amp;oid=109260490&amp;loc=d3e1505-109256<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_WeightedAverageNumberOfSharesOutstandingBasic">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Number of [basic] shares or units, after adjustment for contingently issuable shares or units and other shares or units not deemed outstanding, determined by relating the portion of time within a reporting period that common shares or units have been outstanding to the total time in that period.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 45<br> -Paragraph 10<br> -URI http://asc.fasb.org/extlink&amp;oid=109260490&amp;loc=d3e1448-109256<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 1<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=6371337&amp;loc=d3e3550-109257<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_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>140
<FILENAME>R32.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.19.3.a.u2</span><table class="report" border="0" cellspacing="2" id="idp6659311568">
<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, 2019</div></th></tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_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="top.Show.showAR( this, 'defref_us-gaap_SubsequentEventsTextBlock', window );">Subsequent Events</a></td>
<td class="text">Subsequent Events<div style="line-height:120%;padding-top:8px;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">On February 13, 2020, the Company's Board of Directors declared a cash dividend of </span><span style="font-family:Arial;font-size:10pt;"><span>$0.055</span></span><span style="font-family:Arial;font-size:10pt;"> per share.  The dividend is payable </span><span style="font-family:Arial;font-size:10pt;"><span><span style="white-space:nowrap">March 13, 2020</span></span></span><span style="font-family:Arial;font-size:10pt;"> to all shareholders of record as of the close of business on </span><span style="font-family:Arial;font-size:10pt;"><span><span style="white-space:nowrap">February 28, 2020</span></span></span><span style="font-family:Arial;font-size:10pt;">.</span></div><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_SubsequentEventsAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The entire disclosure for significant events or transactions that occurred after the balance sheet date through the date the financial statements were issued or the date the financial statements were available to be issued. Examples include: the sale of a capital stock issue, purchase of a business, settlement of litigation, catastrophic loss, significant foreign exchange rate changes, loans to insiders or affiliates, and transactions not in the ordinary course of business.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 855<br> -URI http://asc.fasb.org/topic&amp;trid=2122774<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_SubsequentEventsTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>nonnum:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>141
<FILENAME>R36.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.19.3.a.u2</span><table class="report" border="0" cellspacing="2" id="idp6871321008">
<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, 2019</div></th></tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_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="top.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="line-height:120%;padding-top:6px;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">The following table summarizes the financial assets and liabilities measured at fair value on a recurring basis as of December&#160;31, </span><span style="font-family:Arial;font-size:10pt;color:#000000;text-decoration:none;">2019</span><span style="font-family:Arial;font-size:10pt;"> (in thousands):</span><div style="padding-left:0px;text-indent:0px;line-height:normal;padding-top:10px;"><table cellpadding="0" cellspacing="0" style="font-family:Times New Roman;font-size:10pt;width:93.56725146198829%;border-collapse:collapse;text-align:left;"><tr><td colspan="12"/></tr><tr><td style="width:50%;"/><td style="width:1%;"/><td style="width:14%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:14%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:14%;"/><td style="width:1%;"/></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;">Quoted&#160;Prices&#160;in</span></div><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;">Active Markets</span></div><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;">for Identical</span></div><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;">Assets (Level&#160;1)</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;">Significant&#160;Other</span></div><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;">Observable</span></div><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;">Inputs (Level&#160;2)</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:Arial;font-size:8pt;font-weight:bold;">Unobservable Inputs                       (Level 3)</span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Assets:</span></div></td><td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td></tr><tr><td style="vertical-align:top;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Money market instruments</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>15,933</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>&#8212;</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">&#8212;</span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Treasury bills</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>&#8212;</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>309,248</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td></tr><tr><td style="vertical-align:top;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Corporate bonds</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>&#8212;</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>212,098</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">&#8212;</span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Asset-backed securities</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>&#8212;</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>113,083</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">&#8212;</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Sovereign bonds</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>&#8212;</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>22,299</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">&#8212;</span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Municipal bonds</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>&#8212;</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>6,952</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td></tr><tr><td style="vertical-align:top;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Agency bonds</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>&#8212;</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>5,914</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">&#8212;</span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Certificate of deposit</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>&#8212;</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>4,328</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">&#8212;</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Economic hedge forward contracts</span></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span></span><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>857</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">&#8212;</span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Liabilities:</span></div></td><td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td></tr><tr><td style="vertical-align:top;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Economic hedge forward contracts</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>&#8212;</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>23</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">&#8212;</span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Contingent consideration liabilities</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>&#8212;</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>&#8212;</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">&#160;</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>1,153</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr></table></div><span style="font-family:inherit;font-size:10pt;"><br/></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="top.Show.showAR( this, 'defref_us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationTextBlock', window );">Fair Value, Liabilities Measured on Recurring Basis, Unobservable Input Reconciliation</a></td>
<td class="text"><div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">The following table summarizes the activity for the Company's liabilities measured at fair value using Level 3 inputs (in thousands):</span></div><div style="line-height:120%;padding-top:8px;text-align:justify;font-size:10pt;"><div style="padding-left:0px;text-indent:0px;line-height:normal;padding-top:10px;"><table cellpadding="0" cellspacing="0" style="font-family:Times New Roman;font-size:10pt;width:100%;border-collapse:collapse;text-align:left;"><tr><td colspan="4"/></tr><tr><td style="width:86%;"/><td style="width:1%;"/><td style="width:12%;"/><td style="width:1%;"/></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Balance as of December 31, 2017</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>3,557</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Payment of GVi contingent consideration</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>(1,000</span></span></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">)</span></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Fair value adjustment to GVi contingent consideration</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>1,065</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Fair value adjustment to Manatee contingent consideration</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>(1,350</span></span></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">)</span></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Fair value adjustment to Chiaro contingent consideration</span></div></td><td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>282</span></span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Balance as of December 31, 2018</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>2,554</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Fair value adjustment to GVi contingent consideration</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>(1,646</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">)</span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:12px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Fair value adjustment to Chiaro contingent consideration</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;"><span>245</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;">Balance as of December 31, 2019</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:Arial;font-size:10pt;font-weight:bold;"><span>1,153</span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr></table></div><span style="font-family:inherit;font-size:10pt;"><br/></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_FairValueDisclosuresAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_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_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Tabular disclosure of the fair value measurement of liabilities using significant unobservable inputs (Level 3), a reconciliation of the beginning and ending balances, separately presenting changes attributable to the following: (1) total gains or losses for the period (realized and unrealized), segregating those gains or losses included in earnings (or changes in net assets), and gains or losses recognized in other comprehensive income (loss) and a description of where those gains or losses included in earnings (or changes in net assets) are reported in the statement of income (or activities); (2) purchases, sales, issues, and settlements (each type disclosed separately); and (3) transfers in and transfers out of Level 3 (for example, transfers due to changes in the observability of significant inputs) by class of liability.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 820<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)<br> -URI http://asc.fasb.org/extlink&amp;oid=99377789&amp;loc=d3e19207-110258<br><br>Reference 2: 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 3<br> -URI http://asc.fasb.org/extlink&amp;oid=99377789&amp;loc=d3e19279-110258<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>nonnum:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ScheduleOfFairValueAssetsAndLiabilitiesMeasuredOnRecurringBasisTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Tabular disclosure of assets 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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 820<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -URI http://asc.fasb.org/extlink&amp;oid=99377789&amp;loc=d3e19190-110258<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_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>nonnum:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>142
<FILENAME>R57.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.19.3.a.u2</span><table class="report" border="0" cellspacing="2" id="idp6888356496">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Summary of Significant Accounting Policies - Comprehensive Income (Loss) (Details) - USD ($)<br></strong></div></th>
<th class="th" colspan="3">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Dec. 31, 2019</div></th>
<th class="th"><div>Dec. 31, 2018</div></th>
<th class="th"><div>Dec. 31, 2017</div></th>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_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="top.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">$ 38,027,000<span></span>
</td>
<td class="nump">$ 37,486,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="top.Show.showAR( this, 'defref_us-gaap_AccumulatedOtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax', window );">Net unrealized losses on available-for-sale investments, net of tax</a></td>
<td class="nump">2,023,000<span></span>
</td>
<td class="nump">1,744,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_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="top.Show.showAR( this, 'defref_us-gaap_OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax', window );">Net realized gains reclassified into current operations</a></td>
<td class="nump">1,452,000<span></span>
</td>
<td class="nump">501,000<span></span>
</td>
<td class="nump">$ 829,000<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_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="top.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="top.Show.showAR( this, 'defref_us-gaap_OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax', window );">Net realized gains reclassified into current operations</a></td>
<td class="nump">$ 1,452,000<span></span>
</td>
<td class="nump">$ 501,000<span></span>
</td>
<td class="nump">$ 829,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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Accumulated unrealized gain (loss), after tax, 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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section 45<br> -Paragraph 14A<br> -URI http://asc.fasb.org/extlink&amp;oid=114867106&amp;loc=SL7669686-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 14<br> -URI http://asc.fasb.org/extlink&amp;oid=114867106&amp;loc=d3e681-108580<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 10A<br> -Subparagraph (e)<br> -URI http://asc.fasb.org/extlink&amp;oid=114867106&amp;loc=SL7669646-108580<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 11<br> -URI http://asc.fasb.org/extlink&amp;oid=114867106&amp;loc=d3e637-108580<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Accumulated 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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 830<br> -SubTopic 30<br> -Section 50<br> -Paragraph 1<br> -URI http://asc.fasb.org/extlink&amp;oid=6450520&amp;loc=d3e32583-110901<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 14A<br> -URI http://asc.fasb.org/extlink&amp;oid=114867106&amp;loc=SL7669686-108580<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 11<br> -URI http://asc.fasb.org/extlink&amp;oid=114867106&amp;loc=d3e637-108580<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 14<br> -URI http://asc.fasb.org/extlink&amp;oid=114867106&amp;loc=d3e681-108580<br><br>Reference 5: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 830<br> -SubTopic 30<br> -Section 45<br> -Paragraph 12<br> -URI http://asc.fasb.org/extlink&amp;oid=109240241&amp;loc=d3e32022-110900<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 45<br> -Paragraph 10A<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=114867106&amp;loc=SL7669646-108580<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 830<br> -SubTopic 30<br> -Section 50<br> -Paragraph 1<br> -URI http://asc.fasb.org/extlink&amp;oid=6450520&amp;loc=d3e32583-110901<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<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 http://asc.fasb.org/extlink&amp;oid=82918529&amp;loc=d3e30304-110892<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 830<br> -SubTopic 30<br> -Section 45<br> -Paragraph 18<br> -URI http://asc.fasb.org/extlink&amp;oid=109240241&amp;loc=d3e32157-110900<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 830<br> -SubTopic 30<br> -Section 45<br> -Paragraph 20<br> -Subparagraph (b),(c)<br> -URI http://asc.fasb.org/extlink&amp;oid=109240241&amp;loc=d3e32211-110900<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount after tax of 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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section 45<br> -Paragraph 15<br> -URI http://asc.fasb.org/extlink&amp;oid=114867106&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 http://asc.fasb.org/extlink&amp;oid=114867106&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 http://asc.fasb.org/extlink&amp;oid=82897076&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 http://asc.fasb.org/extlink&amp;oid=114867106&amp;loc=SL34724391-108580<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_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>143
<FILENAME>R53.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.19.3.a.u2</span><table class="report" border="0" cellspacing="2" id="idp6887843728">
<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, 2019</div></th></tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_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="top.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="top.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="top.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="top.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="top.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="top.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="top.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="top.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="top.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="top.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="top.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="top.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="top.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="top.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="top.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="top.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="top.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="top.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="top.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="top.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="top.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="top.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="top.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="top.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="top.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="top.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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Useful life of finite-lived intangible assets, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents the reported fact of one year, five months, and thirteen days.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FiniteLivedIntangibleAssetUsefulLife</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:durationItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FiniteLivedIntangibleAssetsLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_RangeAxis=srt_MinimumMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_srt_RangeAxis=srt_MaximumMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_RangeAxis=srt_MaximumMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis=cgnx_CompletedTechnologiesAndOtherIntangibleAssetsMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis=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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis=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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_NoncompeteAgreementsMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_TrademarksMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_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>144
<FILENAME>R70.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.19.3.a.u2</span><table class="report" border="0" cellspacing="2" id="idp6865333200">
<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, 2019 </div>
<div>USD ($)</div>
</th>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_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="top.Show.showAR( this, 'defref_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths', window );">2020</a></td>
<td class="nump">$ 6,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="top.Show.showAR( this, 'defref_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo', window );">2021</a></td>
<td class="nump">5,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="top.Show.showAR( this, 'defref_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree', window );">2022</a></td>
<td class="nump">3,822<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour', window );">2023</a></td>
<td class="nump">3,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="top.Show.showAR( this, 'defref_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFive', window );">2024</a></td>
<td class="nump">927<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive', window );">Thereafter</a></td>
<td class="nump">310<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue', window );">Total</a></td>
<td class="nump">$ 20,182<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LeasesAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of lessee's undiscounted obligation for lease payments for operating lease.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 842<br> -SubTopic 20<br> -Section 50<br> -Paragraph 6<br> -URI http://asc.fasb.org/extlink&amp;oid=77888426&amp;loc=SL77918701-209980<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of lessee's undiscounted obligation for lease payments for operating lease, due after fifth fiscal year following latest fiscal year.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 842<br> -SubTopic 20<br> -Section 50<br> -Paragraph 6<br> -URI http://asc.fasb.org/extlink&amp;oid=77888426&amp;loc=SL77918701-209980<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of lessee's undiscounted obligation for lease payments for operating lease, due in next fiscal year following latest fiscal year.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 842<br> -SubTopic 20<br> -Section 50<br> -Paragraph 6<br> -URI http://asc.fasb.org/extlink&amp;oid=77888426&amp;loc=SL77918701-209980<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFive">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of lessee's undiscounted obligation for lease payments for operating lease, due in fifth fiscal year following latest fiscal year.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 842<br> -SubTopic 20<br> -Section 50<br> -Paragraph 6<br> -URI http://asc.fasb.org/extlink&amp;oid=77888426&amp;loc=SL77918701-209980<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFive</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of lessee's undiscounted obligation for lease payments for operating lease, due in fourth fiscal year following latest fiscal year.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 842<br> -SubTopic 20<br> -Section 50<br> -Paragraph 6<br> -URI http://asc.fasb.org/extlink&amp;oid=77888426&amp;loc=SL77918701-209980<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of lessee's undiscounted obligation for lease payments for operating lease, due in third fiscal year following latest fiscal year.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 842<br> -SubTopic 20<br> -Section 50<br> -Paragraph 6<br> -URI http://asc.fasb.org/extlink&amp;oid=77888426&amp;loc=SL77918701-209980<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of lessee's undiscounted obligation for lease payments for operating lease, due in second fiscal year following latest fiscal year.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 842<br> -SubTopic 20<br> -Section 50<br> -Paragraph 6<br> -URI http://asc.fasb.org/extlink&amp;oid=77888426&amp;loc=SL77918701-209980<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>145
<FILENAME>R80.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.19.3.a.u2</span><table class="report" border="0" cellspacing="2" id="idp6724694512">
<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, 2019</div></th>
<th class="th"><div>Dec. 31, 2018</div></th>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_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="top.Show.showAR( this, 'defref_us-gaap_DerivativeAssets', window );">Net amount of assets presented</a></td>
<td class="nump">$ 857<span></span>
</td>
<td class="nump">$ 1<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_DerivativeLiabilities', window );">Net amount of liabilities presented</a></td>
<td class="nump">23<span></span>
</td>
<td class="nump">106<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_HedgingDesignationAxis=us-gaap_NondesignatedMember', window );">Not Designated as Hedging Instrument [Member] | Prepaid Expenses and Other Current Assets [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_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="top.Show.showAR( this, 'defref_us-gaap_DerivativeAssets', window );">Net amount of assets presented</a></td>
<td class="nump">857<span></span>
</td>
<td class="nump">1<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_HedgingDesignationAxis=us-gaap_NondesignatedMember', window );">Not Designated as Hedging Instrument [Member] | Accrued Expenses [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_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="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_DerivativeLiabilities', window );">Net amount of liabilities presented</a></td>
<td class="nump">$ 23<span></span>
</td>
<td class="nump">$ 106<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DerivativeAssets">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Fair value, after the effects of master netting arrangements, of a financial asset or other contract with one or more underlyings, notional amount or payment provision or both, and the contract can be net settled by means outside the contract or delivery of an asset. Includes assets not subject to a master netting arrangement and not elected to be offset.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 20<br> -Section 55<br> -Paragraph 10<br> -URI http://asc.fasb.org/extlink&amp;oid=99393222&amp;loc=SL20226008-175313<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 825<br> -SubTopic 10<br> -Section 50<br> -Paragraph 10<br> -URI http://asc.fasb.org/extlink&amp;oid=109250915&amp;loc=d3e13433-108611<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 20<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -URI http://asc.fasb.org/extlink&amp;oid=51824906&amp;loc=SL20225862-175312<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DerivativeAssets</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DerivativeLiabilities">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Fair value, after the effects of master netting arrangements, of a financial 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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 20<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -URI http://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 825<br> -SubTopic 10<br> -Section 50<br> -Paragraph 10<br> -URI http://asc.fasb.org/extlink&amp;oid=109250915&amp;loc=d3e13433-108611<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 20<br> -Section 55<br> -Paragraph 10<br> -URI http://asc.fasb.org/extlink&amp;oid=99393222&amp;loc=SL20226008-175313<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_HedgingDesignationAxis=us-gaap_NondesignatedMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_BalanceSheetLocationAxis=us-gaap_PrepaidExpensesAndOtherCurrentAssetsMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_BalanceSheetLocationAxis=us-gaap_PrepaidExpensesAndOtherCurrentAssetsMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></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=cgnx_AccruedExpensesMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_BalanceSheetLocationAxis=cgnx_AccruedExpensesMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><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>146
<FILENAME>R84.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.19.3.a.u2</span><table class="report" border="0" cellspacing="2" id="idp6601127392">
<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, 2019</div></th>
<th class="th"><div>Dec. 31, 2018</div></th>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_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="top.Show.showAR( this, 'defref_us-gaap_CapitalizedContractCostGross', window );">Capitalized Contract Cost, Gross</a></td>
<td class="nump">$ 3,963,000<span></span>
</td>
<td class="nump">$ 3,514,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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount, before accumulated amortization and accumulated impairment loss, of asset recognized from cost incurred to obtain or fulfill contract with customer.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 340<br> -SubTopic 40<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=68051541&amp;loc=SL49131252-203054<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_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>147
<FILENAME>R74.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.19.3.a.u2</span><table class="report" border="0" cellspacing="2" id="idp6866156928">
<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, 2019</div></th>
<th class="th"><div>Dec. 31, 2017</div></th>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_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="top.Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths', window );">2019</a></td>
<td class="nump">$ 5,412<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo', window );">2020</a></td>
<td class="nump">5,232<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearThree', window );">2021</a></td>
<td class="nump">4,862<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFour', window );">2022</a></td>
<td class="nump">4,160<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFive', window );">2023</a></td>
<td class="nump">3,593<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive', window );">Thereafter</a></td>
<td class="nump">8,031<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="top.Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsNet', window );">Net Carrying Value</a></td>
<td class="nump">$ 31,290<span></span>
</td>
<td class="nump">$ 10,113<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of amortization expense for assets, excluding financial assets and goodwill, lacking physical substance with a finite life expected to be recognized after the fifth fiscal year following the latest fiscal year. Excludes interim and annual periods when interim periods are reported on a rolling approach, from latest balance sheet date.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of amortization expense for assets, excluding financial assets and goodwill, lacking physical substance with a finite life expected to be recognized during the next fiscal year following the latest fiscal year. Excludes interim and annual periods when interim periods are reported on a rolling approach, from latest balance sheet date.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 350<br> -SubTopic 30<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)(3)<br> -URI http://asc.fasb.org/extlink&amp;oid=66006027&amp;loc=d3e16323-109275<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFive">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of amortization expense for assets, excluding financial assets and goodwill, lacking physical substance with a finite life expected to be recognized during the fifth fiscal year following the latest fiscal year. Excludes interim and annual periods when interim periods are reported on a rolling approach, from latest balance sheet date.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 350<br> -SubTopic 30<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)(3)<br> -URI http://asc.fasb.org/extlink&amp;oid=66006027&amp;loc=d3e16323-109275<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFive</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFour">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of amortization expense for assets, excluding financial assets and goodwill, lacking physical substance with a finite life expected to be recognized during the fourth fiscal year following the latest fiscal year. Excludes interim and annual periods when interim periods are reported on a rolling approach, from latest balance sheet date.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 350<br> -SubTopic 30<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)(3)<br> -URI http://asc.fasb.org/extlink&amp;oid=66006027&amp;loc=d3e16323-109275<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFour</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearThree">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of amortization expense for assets, excluding financial assets and goodwill, lacking physical substance with a finite life expected to be recognized during the third fiscal year following the latest fiscal year. Excludes interim and annual periods when interim periods are reported on a rolling approach, from latest balance sheet date.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 350<br> -SubTopic 30<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)(3)<br> -URI http://asc.fasb.org/extlink&amp;oid=66006027&amp;loc=d3e16323-109275<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearThree</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of amortization expense for assets, excluding financial assets and goodwill, lacking physical substance with a finite life expected to be recognized during the second fiscal year following the latest fiscal year. Excludes interim and annual periods when interim periods are reported on a rolling approach, from latest balance sheet date.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 350<br> -SubTopic 30<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)(3)<br> -URI http://asc.fasb.org/extlink&amp;oid=66006027&amp;loc=d3e16323-109275<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FiniteLivedIntangibleAssetsNet">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount after amortization of assets, excluding financial assets and goodwill, lacking physical substance with a finite life.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 350<br> -SubTopic 30<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)(1)<br> -URI http://asc.fasb.org/extlink&amp;oid=66006027&amp;loc=d3e16323-109275<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FiniteLivedIntangibleAssetsNet</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_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>148
<FILENAME>R78.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.19.3.a.u2</span><table class="report" border="0" cellspacing="2" id="idp6872536832">
<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, 2019</div></th></tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_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="top.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="top.Show.showAR( this, 'defref_us-gaap_MaximumRemainingMaturityOfForeignCurrencyDerivatives1', window );">Maturities of forward of contracts</a></td>
<td class="text">45 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="top.Show.showAR( this, 'defref_us-gaap_HedgingDesignationAxis=us-gaap_DesignatedAsHedgingInstrumentMember', window );">Designated as Hedging Instrument [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_MaximumLengthOfTimeHedgedInCashFlowHedge1', window );">Maturities of foreign currency forward contracts</a></td>
<td class="text">18 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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">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_MaximumLengthOfTimeHedgedInCashFlowHedge1">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Maximum length of time over which the entity is hedging its exposure to the variability in future cash flows for forecasted transactions, excluding those forecasted transactions related to the payment of variable interest on existing financial instruments, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents the reported fact of one year, five months, and thirteen days.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 815<br> -SubTopic 30<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (d)<br> -URI http://asc.fasb.org/extlink&amp;oid=112277219&amp;loc=d3e80748-113994<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_MaximumLengthOfTimeHedgedInCashFlowHedge1</td>
</tr>
<tr>
<td style="padding-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_MaximumRemainingMaturityOfForeignCurrencyDerivatives1">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Maximum 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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_HedgingDesignationAxis=us-gaap_NondesignatedMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_HedgingDesignationAxis=us-gaap_DesignatedAsHedgingInstrumentMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_HedgingDesignationAxis=us-gaap_DesignatedAsHedgingInstrumentMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>149
<FILENAME>R88.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.19.3.a.u2</span><table class="report" border="0" cellspacing="2" id="idp6871506976">
<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, 2019</div></th>
<th class="th"><div>Dec. 31, 2018</div></th>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_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="top.Show.showAR( this, 'defref_us-gaap_ContractWithCustomerLiabilityCurrent', window );">Beginning balance</a></td>
<td class="nump">$ 9,845<span></span>
</td>
<td class="nump">$ 9,420<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_IncreaseDecreaseInContractWithCustomerLiability', window );">Increases to deferred revenue and customer deposits</a></td>
<td class="nump">53,422<span></span>
</td>
<td class="nump">63,231<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ContractWithCustomerLiabilityRevenueRecognized', window );">Recognition of revenue</a></td>
<td class="num">(48,730)<span></span>
</td>
<td class="num">(61,819)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_cgnx_ContractLiabilityForeignExchangeRateChanges', window );">Foreign exchange rate changes</a></td>
<td class="num">(105)<span></span>
</td>
<td class="num">(987)<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ContractWithCustomerLiabilityCurrent', window );">End balance</a></td>
<td class="nump">$ 14,432<span></span>
</td>
<td class="nump">$ 9,845<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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Contract Liability Foreign Exchange Rate Changes</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">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_CustomerContractsLiabilityCurrentRollForward">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Customer Contracts Liability Current [Roll Forward]</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of obligation to transfer good or service to customer for which consideration has been received or is receivable, classified as current.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 606<br> -SubTopic 10<br> -Section 45<br> -Paragraph 2<br> -URI http://asc.fasb.org/extlink&amp;oid=82913815&amp;loc=SL49130532-203044<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 606<br> -SubTopic 10<br> -Section 45<br> -Paragraph 1<br> -URI http://asc.fasb.org/extlink&amp;oid=82913815&amp;loc=SL49130531-203044<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 606<br> -SubTopic 10<br> -Section 50<br> -Paragraph 8<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=109196051&amp;loc=SL49130549-203045<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ContractWithCustomerLiabilityCurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ContractWithCustomerLiabilityRevenueRecognized">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of revenue recognized that was previously included in balance of obligation to transfer good or service to customer for which consideration from customer has been received or is due.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 606<br> -SubTopic 10<br> -Section 50<br> -Paragraph 8<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=109196051&amp;loc=SL49130549-203045<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ContractWithCustomerLiabilityRevenueRecognized</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of increase (decrease) in obligation to transfer good or service to customer for which consideration has been received or is receivable.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=109223946&amp;loc=d3e3602-108585<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_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>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
</SEC-DOCUMENT>
